본문 바로가기
공부/Unreal Engine 5

[언리얼5] 스켈레톤 리타겟(IK릭, IK리타기터)

by MY블로그 2023. 11. 7.

언리얼의 플레이어 에셋에 원하는 애니메이션이 없어서 외부의 애니메이션을 사용하고자 할때

스켈레톤이 일치하지 않으면 사용할 수 없습니다.

아래는 외부에서 가져온 애니메이션을 리타깃 하지 않고 그대로 적용시켰을떄 입니다.

뭔가 움직이기는하는데.. 왜..

때문에 스켈레톤을 일치시키는 작업을 하는 방법을 정리합니다.

 

우선 시험적으로 믹사모에서 애니메이션을 다운로드하여 블렌더를 통해서 언리얼에서 사용가능한 에셋으로 변환 작업을 진행합니다. 해당 작업은 이전 정리한 글을 참고합니다.

https://rhksgml78.tistory.com/462

 

[블렌더] 믹사모에셋을 언리얼에셋으로

믹사모의 에셋을 언리얼에서 사용할때 블렌더를 사용하여 변환하는 방법을 정리합니다. 1. 블렌더 설치 블렌더 공식 홈페이지에서 블렌더를 설치합니다 https://www.blender.org/download/ 2. 믹사모 컨버

rhksgml78.tistory.com

 

믹사모에서 변환한 에셋은 샘플로 3가지입니다.

1. 사용하고싶은 애니메이션 1 (With  Out Skin)

2. 사용하고싶은 애니메이션 2 (With  Out Skin)

3. 기본 스켈레톤이있는 모델

원하는 애니메이션을 사용하기위해서는 해당애니메이션을 재생할 스켈레탈이 필요하기때문에

모델에셋 + 애니메이션에셋 을 같이 준비했습니다.

 

1. 언리얼5에 임포트

먼저 모델에셋을 임포트 합니다.

모델에셋을 임포트는 애니메이션 임포트를 해제하고, 씬유닛 변환을 체크 하고 모두임포트 합니다.

 

이후 애니메이션을 임포트는 먼저 모델이 임포트하고 생성된 스켈레톤이 기본으로 설정됩니다.

애니메이션은 메시가 필요없으므로 메시 임포트를 해제하고 모두임포트 합니다.

 

임포트가 완료되면 아래와 같은 에셋들이 생성됩니다.

2. IK릭 생성하기

콘텐츠드로어창에서 우클릭>애니메이션>리타기팅>IK릭 을 2개 생성합니다.

2개인 이유는 리타깃할 원본의IK릭과 외부에서 가져온 애니메이션이 적용된 IK릭 입니다.

 

각각의 IK릭을 실행시키고 우측 디테일에서 프리뷰 스켈레탈 메시에

원본과 가져온 스켈레탈 2개를 각각 불러와 계층구조의 체인을 만들어 줍니다.

 

저는 화면두개를 띄워두고 몸체를 머리,양팔,허리,양다리 크게 5개의 묶음으로 체인을 구성하였습니다.

 

체인을 구성할때 개인적으로 주의해야할점은

각파츠 별로 나눌때 이름을 동일하게 설정해서 체인을 만들어야 나중에 리타깃 작업이 수월한 것 같습니다.

위의 이미지에서 봤을때 가져온 에셋은 완벽한 사람타입으로 머리 팔 몸통 다리가 정확하게 나뉘어져있지만

로봇 모델은 머리가 두갈래로.. 더듬이까지 있으며 손가락은 4개였습니다.

하지만 일단 무시하고 각각 체인을 추가하여 줍니다.

 

3. IK리타기터 생성하기

콘텐츠드로어창에서 우클릭>애니메이션>리타기팅>IK리타기터를 1개 생성합니다.

리타기터를 생성하고 소스와 타깃을 지정하여 줍니다.

저는 로봇에 외부에서 가져온 애니메이션을 지정하고 싶기때문에 소스에는 외부에서 가져와만든 IK릭을

타깃에는 로봇으로 만든 IK릭을 지정하였습니다.

위의 화면처럼 좌측에는 소스와 타깃의 본, 체인의 정보를 볼수있으며 우측에는 디테일과 체인매핑 창을 볼수있습니다.

아까 언급한것처럼 로봇은 손가락이 네게이고.. 더듬이로 인하여 머리가 두개의 체인이 되어있기때문에

좌측창에 본과 체인의 이름이 흐릿하게 미적용 된것이 보입니다.

 

우측의 체인 매핑에서 타깃체인의 LeftHead, RightHead (더듬이때문에 나뉘어진 체인)의 소스체인 설정이 None 으로 되어있음을 확인할 수 있습니다.

이때 당황하지 않고 소스체인을 Head 하나로 지정해준다면 큰 영향은 없습니다.

 

체인매핑 설정이 끝났다면 에셋브라우저 창에서 사용하고자하는 애니매이션을 선택하여 실행시켜 보도록 합니다.

로봇의몸 비율때문에 조금은 어색하지만 원하는 대로 움직이는 것을 볼 수 있습니다.

이렇게 적용이 완료된 것을 확인한 뒤

필요한 에셋들을 선택하고 에셋브라우저 창의 [선택된 애니메이션 익스포트]를 사용하여

저장해준다면 로봇이 사용할수있는 애니메이션으로 리타깃이 완료됩니다.

 

리타깃한 애니메이션을 기존 프로젝트의 플레이어에 적용해보기

 

 

언리얼4처럼 리타깃을 하는 것이아닌 조금 다른방법이 되어 정신없이 정리한 것 같습니다.

자료를 찾아다니며 공부하기 때문에 부족한 정보도 있을 수 있습니다.

부족한 부분은 알려주신다면 감사하겠습니다 : )

댓글