우선, MMD 모델을 Blender 로 불러들여서 이를 다시 언리얼 엔진에 적용한 캐릭터에 루트 모션이 아래와 같이 적용이 되지 않는 문제가 있었다.
위와 같이 Retargeter 에서는 미리보기가 잘 되지만, 실제로 적용하면 아래와 같이 루트모션이 애니메이션에 적용이 안되는 현상 때문에 거의 하루를 꼬박 고민했다..
(만약, 루트 모션이 제대로 적용이 되는 것이라면 루트 모션이 적용되는 본의 경로가 왼쪽과 같이 빨간색으로 표시가 되어야 한다. 즉 아래가 제대로 루트 모션이 적용된 예이다.)
이럴 때 여러가지 해결책이 있을 수 있는데
첫번째는 Retargeter의 Root Setting 에서 Translation Mode 를 Globall Scaled 로 맞추는 것이다.
리타겟 하는 경우, 원래의 본과 사용하려는 본이 크기와 계층 구조가 다를 수 있기 때문에 Translation 을 전역 스케일로 맞춰주면 루트 모션이 적용될 수 있다는 것이다.
대부분은 이런 문제로 인해 해당 현상이 발생하는 것이므로, 나도 시도해 봤지만 아무것도 바뀌는 것이 없었다. (젠장)
두번째는 해당 Skeleton 에서 리타겟 옵션을 조절하는 것이다.
우리가 리타겟하여 움직여야 하는 본들이 리타겟된 모션을 따라갈지, 본의 설정은 어떻게 할지를 정하는 옵션인데
여기에서도 Root나 Pelvis 를 모션에 맞춰 전환되게 하면 루트 모션이 적용될 수 있다고 생각했으나, 이것 역시 아무 효과가 없었다. (제기랄!)
세번째로는 모션 자체의 루트 모션 세팅이 뭔가 꼬여서 그런건가..? 싶어서 모든 경우의 수를 테스트해 보았으나..
이 역시 아무 의미가 없었다. 여기에서 알게 된 것이라면, 리타겟 하려는 모션에 대해 저렇게 개별적으로 루트 모션을 켜고 끌 수 있다는 것 정도.
더이상 관련 자료가 없어 좌절하고 있던 찰나...
역시나 오늘도 깨닫는다. 나는 정말 멍청하다.
Blender 의 리깅 구조가 Max나 Maya와는 조금 달라서 헷갈렸는데
Blender 에서는 Root 가 그냥 Armature 그 자체였다..
그러니까, IK Rig를 정의할 때 Root나 하위 본을 루트로 정의하는게 아니라
이렇게 그냥 Armature 자체가 루트였던 것이다... 이런 하나님 맙소사
결론적으로 루트를 제대로 정해 주니 루트 모션이 아주 잘 적용이 되었다.
혹시라도 Blender 모델을 사용하여 나와 같은 문제를 겪고 있다면, 루트를 이상한 본으로 선택하진 않았는지?
당신이 아는 루트가 루트가 아닐 수도 있다.........
이것으로 도움이 되길 바란다...
'Unreal 5 > 문제해결' 카테고리의 다른 글
[Unreal 5] UE5.4 모션 매칭 (Motion Matching) 문제 (0) | 2024.05.24 |
---|---|
[Unreal 5] 5.4버전 Retarget 문제 (0) | 2024.05.24 |
[Unreal 5] 5.1 에서 5.4 버전으로 Migrate 하기 (Migrate Error) (0) | 2024.05.19 |