본문 바로가기

레퍼런스

리타게팅 에러 루트모션 Translate mode

리타게팅후 인포즈가 아니라 달리는 현상이 나타났다.

IK_Foot

IK_HandRoot

 

 

애니메이션 리타게팅 시, 기존 애니메이션에 없었던 루트 모션이 적용되어 캐릭터가 애니메이션에 의해 움직이는 현상이 있을 수 있다.

 

원인

리타게터 파일의 Root 체인의 옵션이 제대로 설정되어 있지 않을 때, 이런 현상이 일어난다.

해결 방법

리타게터 파일을 열어서 Root 체인을 눌러서 디테일 창을 확인한다.

디테일 창에서 Translation Mode가 None으로 되어있을건데, Globally Scaled로 설정해준다.

 

결과

위의 캐릭터가 Translation Mode가 None인 상태로 리타게팅 했을 경우, 아래 캐릭터가 Translation Mode가 Globally Scaled 상태로 리타게팅 했을 경우의 애니메이션 시퀀스이다.

 

 

※ 해당 포스팅에 사용하는 Foot IK 관련 Control Rig는 기존 Third person template에 존재하는 Mannequin Control Rig를 복사해서 사용했으므로 VRM 대상으로 하는 Foot IK는 Mannequin Control Rig를 복사해서 사용하기 바람.

 

애니메이션을 리타게팅하여 적용했을 때, Foot IK가 적용이 되지 않아 다리가 바닥에 붙어버리는 문제가 있다.

이 문제는 리타게터에 IK 관련 체인이 설정되어 있지 않기 때문이다. Mannequin 기준으로 IK 본을 가져와 Control Rig에서 IK 조절을 하는데, 해당 본이 정상적으로 리타게팅이 되지 않았으니 바닥에 다리가 붙어버리게 된다.

 

 

 

원인

위에서 언급했다시피, 애니메이션 시퀀스파일이나 리타게터 파일을 열어서 IK 본을 한번 확인해볼 수 있다.

애니메이션 시퀀스나 리타게터 파일을 열어서 애니메이션을 실행시킨 다음, 스켈레톤 트리에서 IK_foot 관련 본을 눌러보면 위와같이 본의 실시간 위치를 확인할 수 있는데, 제자리에 고정되어 있는것을 확인할 수 있다.

이제 저 본을 체인으로 설정하여 리타게팅 시, 애니메이션에 정상적으로 적용될 수 있게 해야한다.

 

해결방법

1. IK Rig 파일에 체인 생성 및 리타게터 소스체인 설정

체인 생성 및 리타게터 소스체인 설정은 해당 포스팅 제일 위에 걸어놓은 링크를 확인하여 수정하면 된다.

 

2. Translation Mode 설정

리타게터에서 소스체인 설정 후, 해당 타겟 체인을 클릭해서 디테일 창을 확인해보면 Translation Mode라는 항목이 존재하는데 해당 항목으로 Absolute로 설정해 준다.

 

위와 같이 설정을 한 뒤, 리타게터에서 IK_foot 본을 확인해보면 정상적으로 본의 위치가 변경되는 것을 눈으로 확인할 수있다.

결과

 

 

 

※ 혹시나 다리의 애니메이션이 어색해보일 경우(다리를 크게 찢어서 달린다던지..), 위에서 설정했던 리타게터 창의 디테일 창에서 Translation Alpha 옵션을 조절하여 적당한 위치를 잡아주면 된다.

※ 리타게터를 수정할 수 없는 경우, 애니메이션 시퀀스의 키값을 변경하는 방법이 있는거 같은데 장기적으로 봤을 때 이런 방법은 좀 무식해보이는것 같다. 근본적 원인은 리타게터에 있으니 어지간하면 리타게터를 수정하는게 좋을것 같다.

 

애니메이션 시퀀스 키값 변경 방법은 아래 영상 참고

 

 

 

'레퍼런스' 카테고리의 다른 글

Player Start Actor  (0) 2024.04.25
Thirdperson Animation Blueprint  (0) 2024.04.25
흐름제어 Flow Controll  (0) 2024.04.21
Widget GamePause GameEnd 위젯  (0) 2024.04.19
매크로 함수 이벤트 차이 Macro Function Event  (0) 2024.04.17