언리얼 기초 42 리타겟팅 (1)

언리얼 Third Person 마네킹 캐릭터에 기디언 에셋의 메쉬를 적용해보자.

기본 리타겟팅(Retargeting) 실패

사전 GameMode 설정 만들어둔 GameMode 블루프린트 -> Default Pawn Class 설정 -> 마네킹 캐릭터로 세팅 -> Compile -> Save

마네킹 블루프린트에 기디언 메시 설정

Content 폴더 -> ThirdPerson 폴더 -> Blueprints 폴더 -> BP_ThirdPersonCharacter -> (경우에 따라 Open Full Blueprint Editor 클릭) -> 좌측 Components 탭 -> BP_thirdPersonCharacter (Self) 선택 -> Details 패널 -> Mesh 항목 -> Skeletal mesh Asset 옵션 -> Gideon 스켈렉탈 메쉬 선택 -> Compile -> Save

이제 플레이 해보면 기디언의 모습은 아래와 같다.

뭔가 어색하다. 키가 작아졌고 팔이 늘어나있다.

마네킹과 기디언의 뼈구조에 차이가 있기 때문, 특히 root본에 차이가 있다. 마네킹은 루트뼈가 골반까지, 기디언은 명치까지 와있다.

화면 좌측 뼈 트리의 구조와 뼈 이름들도 제법 다르다. (같은것도 있다)

Root 본

애니메이션 중, 캐릭터가 뒤로 넉백되는 동작, 구르기 동작 등, 위치가 이동하는 애니메이션들이 있다.

이런 애니메이션을 루트 모션 애니메이션이라 한다.

이런 위치 변화는 애니메이션을 플레이하고 있는 당사자(캐릭터)에게 반영해줄 필요가 있다.

캐릭터의 최상위 뼈가 root 본일(양발사이 바닥) 경우, 루트 모션 애니메이션이 플레이되면서 변한 위치값을 이것으로 잘 표현할수 있다.

마네킹 블루프린트에 기디언 세팅

마네킹 블루프린트에는 마네킹용 애니메이션 블루프린트(ABP)가 등록되어있다.

이 애니메이션 블루프린트는 마네킹용 애니메이션들을 구동한다

MF_Idle, MF_Run_Fwd 등등..

이 애니메이션들은 마네킹 뼈구조를 바탕으로 움직임을 묘사한다.

그럼에도 저 난장이 기디언의 어깨와 팔이 흔들리고 있는걸로 보아 마네킹 Idle 애니메이션은 기디언을 통해서 구동중이다.

이처럼 얼리얼은 두 뼈 구조 사이에 어느 정도 유사성이 있으면(적당히 표준을 따랐으면) 적당히 맞춰서 돌려준다.

뼈 구조가 이보다 더 유사하다면 우리는 멀쩡한 기디언이 멀쩡하게 움직이는 걸 볼 수 있다.

스켈렉톤 정보

보통 캐릭터의 에셋들을 보면 그것의 메인형상인 스켈레탈 메시(어두 SKM_)와 스켈렉톤 에셋이 (어두 SK_)따로 존재한다.

후자는 순수 뼈정보, 전자는 뼈와 메시 정보를 다 가지고 있지만 후자를 항상 기본 속성으로 등록해두고 관계를 유지하고 있다.

사실 뼈와 메시는 뗄레야 뗄수없다.

어떤 뼈에 어떤 살이 얼마나 붙어있는지도 중요한 정보니까. 단순한 뼈에셋은 의미 없어 보인다.

마네킹의 경우 남자 마네킹과 여자 마네킹이 같은 뼈 에셋을 공유하고 있다. 이는 우린 같은 방식으로 다루면 되요라는 일종의 표시가 된다.

이 경우 남자 마네킹과 여자 마네킹은 애니메이션과 포함 모든 자원을 공유하며, 캐릭터 블루프린트에서도 어떤 메시을 사용하든 상관없다.

심지어 뼈가 이렇게 동일할 필요도 없다, 구조만 비슷해도 거의 호환이 된다.

기디언과 마네킹은 이 정도 상호 호환은 안되고 있다. 기본적인 리타겟팅(Retargeting)에는 실패한 것.

이제 수작업 리타겟팅을 하자.

Leave a Comment