언리얼5 애니메이션
1. 리타겟 애니메이션
해당 애니메이션 소스를 다른 모델링에 입히는 것을 의미한다.
애니메이션을 리타겟팅하게 되면 해당 모델링을 위한 애니메이션 작업을
다시 해줘야하는 번거로움에서 벗어날 수 있다.
리타겟 애니메이션을 위해서는 동일한 스켈레톤을 가진 모델링이여 하거나,
'릭'이라는 오브젝트를 사용하여 스켈레톤 정보를 호환할 수 있도록 해주어야 한다.
애니메이션 리타깃 방법
리타깃팅할 애니메이션 시퀀스를 선택한 후,
우클릭 - 애니메이션 에셋 리타깃 메뉴를 선택해 준다.
마켓플레이스에 있는 애니메이션 스타터 팩을 언리얼5의 임포트해주었다.
애니메이션 스타터 팩의 애니메이션 시퀀스는 언리얼4의 마네킹 스켈레톤 에셋을
기준으로 만들어졌기 때문에,
언리얼 5에서 바뀐 마네킹 스켈레톤 에셋에 리타게팅 해주어야 한다.
RTG_UE4Manny_UE5Manny 은 언리얼 4의 Manny에 해당되는 애니메이션을
언리얼 5의 Manny에 리타깃하겠다는 의미이고,
그 아래의 RTG_UE5Manny_UE4Manny는 반대의 의미이다. (From - to - 순으로 적용되는 듯 하다.)
접두사 및 접미사는 기존 애니메이션 시퀀스 이름 앞/뒤에
추가할 단어를 입력하여 리타깃 완료된 애니메이션 시퀀스 이름에 적용시킨다.
폴더 옆 변경 버튼을 클릭하여 리타깃 완료된 애니메이션 시퀀스를
저장할 경로를 변경할 수 있다.
리타깃이 잘 적용된 것을 볼 수 있다.
리타깃된 애니메이션을 idle 애니메이션으로 적용하기 위해,
캐릭터 블루프린트를 열고, 어떤 스켈레탈 메쉬가 사용되는 지 확인해보면,
Quinn 메쉬가 활용된 것을 볼 수 있다.
Quinn 메쉬가 적용된 애니메이션 블루프린트를 수정해보려고 들어가면
아무것도 정의되어 있지 않은 것을 볼 수 있는데,
이는 ABP Quinn(Quinn의 애니메이션 블루프린트)이 ABP Manny 클래스를 부모클래스로
두고 있기 때문이다. 따라서 Quinn은 오버라딩하지 않는 이상,
Manny의 블루프린트와 동일하게 작동하는 것으로 확인된다.
따라서 Quinn의 애니메이션을 수정해주기 위해서는
ABP Manny 블루프린트를 열고 Anim Graph를 수정해주어야 한다.
Anim Graph에서 Locomotion 부분을 더블클릭하면
스테이트 머신이 나오고,
idle 부분을 더블 클릭하여, idle 애니메이션을 수정해주도록 하자.
에셋 브라우저의 Manny_Idle_Rifle을
애니메이션 포즈 출력으로 새로 연결시켜 준다.
애니메이션이 적용된 모습인데,
어째서인지 캐릭터의 발이 바닥에서 떨어진 모습을 볼 수 있다.
MF_Idle과의 차이를 확인하기 위해
애니메이션 시퀀스를 열고 스켈레톤 트리를 확인해보면,
MF_Idle 애니메이션 시퀀스에서
Ik_foot 부분의 피봇 위치와 foot의 피봇 위치가 거의 동일한 것을 확인할 수 있다.
그렇지만, Manny_Idle_Rifle의 스켈레톤을 살펴보면,
피봇 위치가 확연하게 차이나는 것을 확인할 수 있는데,
이 때문에 캐릭터가 바닥에 붕 뜨게되는 현상이 생기는 것 같다.
(피봇 위치가 발 보다 살짝 위쪽에 위치해 있는 것 때문에 발이 바닥에서 뜨는 것 같음..)
ik_foot의 피봇 위치를
foot 피봇 위치로 조정해주기 위해
컨트롤 릭 부분을 수정해준다.
컨트롤 릭에 대한 부분은 아래의 글을 참조하면 될 듯 하다.
컨트롤 릭 애니메이션 블루프린트 노드
Control Rig, 컨트롤 릭 애니메이션 블루프린트 노드를 사용하여 컨트롤 릭 콘텐츠를 애니메이션 블루프린트에 통합하고 애니메잏션에서 릭 콘텐츠를 직접 블렌딩 또는 사용하는 법을 설명합니다.
docs.unrealengine.com
foot 의 트랜스폼 값을 가져와서,
ik_foot의 트랜스폼에 대입해준다.
컨트롤 릭의 시퀀스에서 A 시퀀스 부분이 foot에 관련된 부분이므로,
A 시퀀스에 연결해주도록 한다.
+
위의 과정을 전부 적용했을 때,
캐릭터의 발 부분이 조금 내려오긴 했지만
여전히 바닥에서 떨어져 보인다... 원인을 찾아보니..
Manny_Idle_Rifle 애니메이션의 foot의 피봇 또한 바닥에서 조금 떨어져 있는 것을 확인했다..
이 부분을 해결하면 캐릭터가
바닥에 잘 붙어있을 듯 한데,.. 해결 방법을 더 찾아봐야겠다..