Class GameDev* SheepAdult

[Unreal Engine 5] Animation Retarget 애니메이션 리타겟 본문

Unreal Engine

[Unreal Engine 5] Animation Retarget 애니메이션 리타겟

SheepAdult 2023. 6. 12. 15:43

ue5의 애니메이션 리타겟이 ue4와는 조금 달라졌다. 기존 ue4는 스켈레탈 애셋 내의 리타겟 매니저의 Set up Rig 카테고리에서 진행했었다. Select Rig에서 휴머노이드 릭을 선택하고 각 본에 맞게 리타겟을 해주는 방식이었다.

ue4의 Set up Rig 카테고리.

하지만 ue5에는 이 Set up Rig 카테고리가 없다. 대신에 아예 블루프린트로 독립되어 있다.

 

 먼저, 콘텐츠 브라우저에서 마우스 오른쪽 클릭->애니메이션->IK 릭에서 IK 릭을 선택한 후, 리타겟 시킬 두 스켈레탈의 블루프린트를 각각 생성한다.

그 후, 블루프린트를 보면 오른쪽 아래에 "IK리타기팅" 창이 있다. 해당 창에서 "새 체인 추가"라는 버튼이 있는데, 이는 본들을 그룹화하는 역할을 한다. 예를 들어, spine이란 이름들을 가진 본들을 다중 선택한 후 "새 체인 추가" 버튼을 누르면  아래와 같은 차이 뜬다. 체이닝을 진행하는 방법은 아래 창에서 "확인" 버튼을 누른 후 IK를 사용하지 않는 상황에서 "목표 없음"을 누르면 된다.

좌 확인 -> 우 목표 없음

왼쪽 사진의 "시작 본"부터 "끝 본" 까지 그룹이 된다는 말이며, 이는 리타겟 시킬 본과 리타겟 될 본 각각의 본들이 그룹화된 본들을 덩어리로 리타겟을 진행하므로 이전 방식에 비해 비교적 간편하다. 하지만 주의할 점이 있는데, 각 본들의 부모자식 관계를 고려해 가며 그룹화를 시켜야 한다. 모든 스켈레톤의 본들은 제작자가 본의 부모자식 관계를 어떻게 설정할지 모르기 때문이다.

 아래를 보자.

모델 A의 스켈레탈 하이어라키                                                                            모델 B의 스켈레탈 하이어라키

 각 모델들의 팔 부분을 전체 다중 선택한 후, 리타겟을 진행한다면 엉망이 될 것이다. 왜냐하면 A는 손과 검지 손가락이 연결되어 있는 반면, B는 손과 엄지 손가락이 연결되어 있기 때문이다. 그러므로 세밀한 부분은 직접 선택해가며 체이닝을 진행해야 한다.

 또한, 자식에 형제가 있거나 자식의 마지막 세대 이후로도 다중 선택이 되어 있다면, 체이닝할 때 여러 번 어떻게 진행할 거냐고 물어볼 것이다. 아래가 예시이다.

ik_foot_l 과 ik_foot_r은 형제이므로 중간에 한 번 끊고 다시 체이닝을 진행할 것이며, ik_hand_root 이전에 세대?가 끝났으므로 다시 한 번 목표를 추가할 지 물어봐 총 3회 체이닝을 진행한다.

여러 번 체이닝을 진행할 때는 부모 자식 형제 기준으로 끊어 체이닝하므로 의도와 다르게 분리되지 않도록 주의해야 한다.

아래는 체이닝을 진행한 결과의 예시이다.

모델 A                                                                                                                  모델 B

이제 리타깃을 진행해 보자.

아래와 같이 IK리타기터를 생성한다. 리타깃 되는 애셋이 아닌 리타깃 할 IK Rig을 선택한 후 생성하면 된다.

왼쪽 그림에서 리타겟이 될 IKRig 선택(A->B 중 A선택)

그 후 두 모델의 기본 포즈를 동일하게 맞춰야 한다. T-Pose로 웬만하면 맞추고, 어깨 / 팔 / 다리 각도 등 거의 비슷하게 맞춰야 자연스럽게 리타깃 된다. 포즈를 맞춘 후, 오른쪽 아래에 체인 매핑이라는 창에서 소스체인 칼럼을 각 이름에 맞게 설정해 주면 된다.

대충 이름을 맞추면 편할 것 같다.

그 후 에셋 브라우저 창에서 애니메이션을 눌러 잘 실행되는지 확인하면 된다. 아래는 결과이다.

이제 애니메이션을 누른 후 "애니메이션 리타겟"을 누르고 사용할 IK 리타기터 블루프린트 에셋을 선택하면 된다.