Unreal Engine 5.3, 5.4버전 애니메이션 리타겟팅
체인을 활용한 방식과 완전 자동 방식
0. 목표
- Unreal Engine 5.3, 5.4의 리타겟팅을 기능 사용해보기.
- 애니메이션이 없는 LowPoly 에셋을 타겟으로, 소스인 Mannequins와 Paragon-Drongo의 애니에이션을 리타겟팅하기.
리타겟팅이 없이 애니메이션을 적용하면 어떻게 되는가?
T 포즈만 취하고 있던 캐릭터에 Mannequins 에셋(TPS 템플릿에 적용되는 마네킹)의 AnimationBlueprint를 적용해보았다. 각 부위가 맞지않아 애니메이션이 기묘하게 동작하는 모습이다.
준비물
- 사용할 캐릭터 2개. 혹은 그 이상
- Mannequins Pack - Manny 스켈레탈 메시 및 애니메이션
- Mixamo - 아무 캐릭터나. 스켈레탈 메시에 T 포즈 적용해서.
- Paragon - Drongo 에셋
추가1 - 본을 보는 방법
스켈레탈 메시를 들어가도 정작 본 구조가 보이지 않는다면, 그건 설정을 안해서 그렇다. 설정해주자.
추가2 - Mixamo 임포트
Mixamo에서 다운받은 애니메이션을 에디터로 임포트 해야 사용할 수 있다. 지금 하는 과정에서는 Mixamo의 “캐릭터”를 얻어오는 과정이다. 따라서 Skeletal Mesh, Import Mesh 체크가 필요하며 Import Animation은 해제한다.
임포트한 스켈레톤과 다른 에셋의 스켈레톤을 비교하면 구조가 다른 것을 확인할 수 있다.
1. Unreal Engine 5.3 기준 리타겟팅 - 체인 활용
IK Rig, IK Retargeter 사용 이유
캐릭터 각각의 스켈레탈 메시 구조가 다르기 때문이다. 어떤 캐릭터는 팔에 조인트가 5개인데, 다른 캐릭터는 조인트가 2개일 수 있다. 난쟁이 비율의 스켈레탈에 맞춘 애니메이션을 거인 캐릭터에 1:1로 적용하기 어려운 이유이기도 하다.
이러한 차이 극복을 위해 리타겟 체인을 사용한다. 본과 조인트 하나하나가 아닌, 팔이나 다리와 같은 체인 단위로 매핑하는 것이다. 리타겟터는 이러한 체인을 활용하여 실질적인 리타겟팅을 진행한다.
IK Rig 생성하기
이번 테스트에서 사용할 스켈레탈 메시는 Manny(Mannequin)와 Worker(LowPoly)로 통칭한다.
-
Manny를 대상으로 할 IK Rig 에셋을 생성한다.
생성 직후에는 아무것도 없다. 프리뷰 스켈레탈 메시에 Manny Simple을 추가하면 이제서야 메시와 본이 보인다.
-
Worker 또한 동일한 동작을 수행한다.
리타겟팅 루트 설정하기
IK Retargeter 에서 사용할 체인을 작업하기 전에, 리타겟팅의 중심이 될 root를 지정한다.
-
계층 구조에서 pelvis(골반)을 선택
스켈레톤의 실제 root와 리타겟팅 root는 다를 수있다. 실제 root는 아래의 초록색으로 표시된 부분이지만, 리타겟팅 root는 척추와 다리가 만나는 조인트인 Pelvis를 선택했다.
-
선택한 본에서 우클릭 하면 메뉴가 나온다. 리타깃 루트로 설정.
준비해둔 두 스켈레톤 모두 Pelvis를 리타깃 루트로 설정한다. 그러면 IK 리타겟팅 항목에 리타깃 루트가 Pelvis라고 표시된다. 물론 스켈레톤마다 이름이나 루트가 다를 수 있다.
리타겟 체인 설정
위와같이 하나의 체인으로 묶고자 하는 항목들을 선택한다. 그리고 마우스 우클릭으로 새 리타깃 체인 추가 클릭. 선택한 지점의 시작과 끝을 확인하고 체인을 추가하면 된다.
체인 이름은 에디터에서 자동으로 추천해주지만, 두 IK Rig의 체인 이름을 같게 해야하므로 주의할 것.
불필요한 요소는 체인에 넣을 필요가 없다. 해당 문서를 참고하여 필요한 요소를 추가하자.
IK Retargeter
위에서 각 스켈레탈 메시의 IK Rig를 만들었다! 이제 IK Retargeter를 사용해 이 둘을 리타게팅 할 것이다.
- 우선 IK Retargeter에셋을 만들자. 이름은 IKR_MannyToWork로 지었다.
-
Source로는 Manny를, Target으로는 Worker를 지정했다.
강해보인다. 타겟 메시 오프셋을 조정하여 옆으로 이동시킬 수 있다.
-
둘의 포즈를 최대한 유사하게 만들어야한다.
현재는 DefaultPose로 Manny가 A포즈를, Worker가 T포즈를 취하고있다. 상단의 바에서 리타깃 포즈 편집을 통해 포즈를 변경할 수 있다.
일단 비슷하게 만들어줬다. 완벽하게 같을 필요는 없다고 한다. 다 맞췄으면 Showing RetargetPose 버튼을 클릭하자.
-
적용이 되었나 확인
에셋 브라우저를 보면 Target의 애니메이션 리스트를 확인할 수 있다. 아무 애니메이션이나 클릭하여 Source와 Target 양쪽이 동일하게 동작하는지 확인하자. 다른 부분은 위에서 처럼 조금씩 수정하면 된다.
적용 완료된 애니메이션 익스포트
원하는 애니메이션을 원하는 폴더에, 접두사나 접미사를 추가하여 저장할 수 있다. 이렇게 저장한 애니메이션은 시퀀서에서 다시 편집하여 사용 가능하다.
2. Unreal Engine 5.4 기준 리타겟팅
5.3버전에 비해서 훨씬 자동화된 리타겟팅이 가능하다!
소스 애니메이션 중 아무거나 우클릭해서 리타깃 애니메이션을 클릭한다.
소스, 타겟 스켈레탈 메시를 선택하면 이러한 모습이 된다. 따로 포즈를 지정해주지 않았음에도 동일한 포즈로 통일된다.
리타기터 자동 생성이 체크되어있는데, 진짜 자동으로 다 해준다. 세상에! 아래 애니메이션 목록에서 하나를 선택해보면 리타게팅된 애니메이션을 확인 가능하다.
애니메이션 목록 하단에는 리타겟 에셋 익스포트 버튼이 있다. 해당 버튼을 클릭하면 각각의 IK Rig와 IK Retargeter가 생성된다.
IK Rig 에셋을 열어보면 체인, 리타겟 루트, 손목과 발의 IK Goal까지 전부 자동으로 생성되어있다! 5.3 버전에서처럼 각각 IK Rig 에셋을 만들고 체인을 형성하는 방식도 동작한다. 하지만 5.4에서는 여기에 체인 자동 생성과 IK 자동 생성 기능이 추가되었다. 5.3에서 하나하나 확인해가며 체인은 생성할 필요가 없다. 그냥 클릭 한번이면 해결된다!!!
IK Retargeter 에셋을 열어보면 전과 다르게 양쪽 스켈레탈 메시의 포즈가 같은 것을 볼 수 있다. 이건 Auto Align이 진행되었기 때문이다. 자동 리타겟팅을 사용하지 않고 5.3 버전처럼 IK Retargeter를 만들어 스켈레탈 메시를 넣는다면 양쪽은 각각의 기본 포즈를 취하게 된다. 물론 이것도 직접 맞출 것 없이 Auto Align버튼을 통해 한번에 맞출 수 있다. 부자연스러운 부분은 선택하여 메시를 기준으로 재정렬 할 수도 있다.
5.4 버전에서 리타겟팅하고 5.3 버전으로 이주하기
5.4 버전의 방법이 5.3 버전보다 압도적으로 쉬웠기에 5.4 버전에서 리타겟팅한 에셋들을 5.3 버전으로 이주하는 방식을 시도했었다. 그러나 uasset을 인식하지 못하는 문제가 계속 발생했고, 인터넷을 뒤져봐도 버전 다운그레이드는 안된다는 말 뿐… 결국 이주는 실패했다.
대신 5.4 버전의 IK, RTG 세팅을 그대로 5.3으로 가져와 사용하였다.
완료!
참고자료
- https://dev.epicgames.com/documentation/ko-kr/unreal-engine/animation-retargeting-in-unreal-engine?application_version=5.3
- https://www.youtube.com/watch?v=wNlN4uDgIUM&ab_channel=3SGameStudio
- https://www.youtube.com/watch?v=f6tm7NXEs0I&ab_channel=SARKAMARI
- https://dev.epicgames.com/documentation/ko-kr/unreal-engine/ik-rig-animation-retargeting-in-unreal-engine