Programming/UnrealEngine

[UnrealEngine5] UunrealEngine4 Mannequin Animation, UE5로 이식하기(retargeting)

stein 2022. 8. 22. 17:55

서론

 Unreal Engine은 현재 UnrealEngine 4(4.27, 이하 UE4)에서 비교적 최근에 Unreal Engine 5(5.0, 이하 UE5)으로 업그레이드 되었다. 그래서 참고할 자료들은 상당수 UE4 기준으로 구현되어 있고, Asset들도 마찬가지다.

Asset이 5.0에 맞지 않다고 에러가 발생하고, Select Version에서 4.27로 변경해 주어야 Add to Project가 가능해진다.

 그래도 다행인건, Unreal Engine은 하위 버전들과 호환이 가능하기 때문에, UE5에서 UE4의 Asset은 사용가능하다. 그리고 Blueprint의 문법도 크게 변화하지 않았기 때문에 강좌들도 보는데 큰 문제가 없다.

 

 하지만 UE에서 기본으로 제공해주는 Manny와 Quinn이란 사람 skeleton, mesh, animation은 변경되었기 때문에, 아무 변환 없이 바로 사용하는 것은 불가능하다.

UE4 Mannequin(좌), UE5 Manny와 Quinn(우)

 

기본 달리기, 점프 애니메이션은 UE4, UE5 상관없이 프로젝트를 생성하면 기본으로 제공하기에 바로 사용할 수 있지만 Asset store에 free로 올라온 Animation Starter Pack은 UE4에의 Mannequin에서만 사용가능하다. 

Free Asset으로 올라온 Animation Starter Pack. 총기 관련 애니메이션으로 구성되어있다.

 본 게시글에서는 UE4의 Mannequin 애니메이션을 UE5의 Mannequin으로 이식하는 과정을 설명한다.

UE5 Manny로 구현한 Animation Starter Pack

과정

1. Animation retargeting

2. Foot Ik 변환

 

1. Animation retargeting

Animation Starter Pack에 포함된 애니메이션들

먼저 Animation Starter Pack의 Animation들을 따로 추려낸다. 그리고 Blend Space(주황색), Animation Sequence(연두색) 순서로 Retarget Animation Assets>Duplicate and Retarget Animation Assets를 클릭한다. 그러면 IK Retargeter를 넣으라 하는데, 이 때 RTG_UE4Manny_UE5Manny를 선택해준다.(Unreal Engine에서 migration을 고려해서 미리 넣어준 것으로 보인다! 감사하다)

Animation Retargeting

짠, 아주 간단하게 UE5로 변환된 Animation들이 생겼다.

 

2. Foot Ik 변환

 하지만 실제로 Animation을 적용해보면 문제가 있다는 것을 바로 알 수 있다!

어그적어그적

 

 발이 움직이질 않는다!(그 와중에 발가락은 움직인다)

 

 Animation만 따로 재생할 때는 잘 움직이기 때문에, 처음에는 Animation state의 문제일 줄 알았으나 아래의 포럼글을 통해 Control rig의 문제라는 것을 알 수 있었다. (Control Rigging과 애니메이션에 대해 알고 싶다면 [UnrealEngine5] 네이버 웹툰[화산귀환] 3d로 구현해보기(1) - 캐릭터 리깅과 애니메이션을 참고!)

 

 

Retargeted Metahuman Player characters feet stick to/slide on ground

you saved my life. thank you !!!

forums.unrealengine.com

 위 게시글에는 여러가지 방식이 설명 되어있으나, 그 중에 가장 잘 작동한 한 가지 방식을 소개하려한다. 다른 방식들이 궁금하다면 포럼글을 한 번 읽어 보시길!

 

먼저 사용할 UE5 캐릭터의 Animation Blueprint(ABP)에 들어가면 Control Rig 노드가 있고, 해당 노드에는 CR_Mannequin_BasicFookIk가 할당되어 있을 것이다.

 그 CR_Mannequin_BasicFookIk에 들어가서 위와 같이 Bone Get/Set Transform을 추가해주면 모든 애니메이션이 잘 작동한다! UE5의 IK_foot에 대응하는 node(bone)이 UE4에 없어서 생긴 이슈가 아닐까 생각한다.

 위 방식처럼 Control Rig를 설정하지 않는다면 높이차가 있는 바닥에 캐릭터가 서있을 때, 발을 자연스럽게 두는 애니메이션이 불가능해진다!

 위에서도 이미 본 Animation이다. 오르막에서 발을 자연스럽게 두는 장면을 유의하면서 다시 봐보자.

 

결론

 해결 방법은 의외로 복잡하지 않으나, 포럼글이 없었더라면, 아마 오래동안 해결하기 힘든 이슈였을 것 같다.

 

 포럼글을 한국어로 옮긴 수준의 포스팅이지만, 한참 모자란 UE 관련 한국어 자료를 추가한다 생각하고, 필요한 사람에게 도움이 되길 바란다.