유니티 애니메이션 이동 오류
유니티 애셋 스토어나 믹사모에서 받은 애니메이션을 사용할 때 우리가 흔히 겪는 문제 중 하나는 이동 애니메이션이 원하는 목적지에서 멈추는 것이 아닌, 끝까지 실행되면서 이동하는 것이다.
애니메이션 이동 오류 발생 원인
이는 기본적으로 받아 온 이동 애니메이션이 좌표값까지 적용되었기 때문에 목적지를 넘어 계속 이동하는 것이다. 인스펙터 창에서 플레이해보면 제자리에서 애니메이션이 실행되는 경우와, 실제 좌표값의 이동까지 적용되는 경우가 있다. 이동 애니메이션에 관한 오류는 대부분 좌표값까지 적용되었기 때문이다. 즉, A에서 B 지점까지 이동은 스크립트로 실행하고 있는데, 애니메이션 좌표이동까지 중복해서 적용되는 의미이다. 이를 해결하는 방법은 다음과 같다.
애니메이션 이동 오류 해결 방법
원본 애니메이션 데이터를 확인해보면 인스펙터 창에 다음과 같은 애니메이션 세팅을 확인할 수 있다. 여기서 Root Transform Rotation / Root Transform Position(Y) / Root Transform Position(XZ)에서 Bake Into Pose 값의 체크 여부를 확인해주면 된다. 체크가 되어있지 않은 경우 XYZ 값의 좌표가 먹히고, 체크를 해주면 position 값은 먹히지 않고 애니메이션 동작만 먹히게 된다. 이를 Apply 해서 가져오면 정상적으로 애니메이션이 실행되는 것을 확인할 수 있다.
아울러, 믹사모에서도 다음과 같은 기능을 확인해 볼 수 있다. In Place를 체크해주면 좌표가 먹지 않고 애니메이션이 실행되는 것을 확인할 수 있다.
'게임 프로그래밍 > 유니티 프로젝트' 카테고리의 다른 글
[Unity] 애니메이션 이벤트 함수 설정 및 애니메이션 커스터마이징 팁 (0) | 2022.08.10 |
---|---|
[Unity] 피격 시 데미지UI 활성/비활성화 방법(코루틴 사용 X) (0) | 2022.08.09 |
[Unity] FPS에서 피격 시 KnockBack 넉백 피격효과 구현 (0) | 2022.08.05 |
[Unity] OnDrawGizmos() 함수를 사용하여 시각적으로 범위 체크하기 DrawLine, DrawRay (0) | 2022.08.05 |
[Unity] 타겟을 향한 오브젝트 회전, 캐릭터 컨트롤러 이동(transform.rotation, Quaternion.Lerp, Quaternion.LookRotation) (0) | 2022.08.05 |