유니티 Animation Clip 조정하는 방법에 대해 배워보자!

애니메이션을 제작하다보면 가끔 디자이너로부터 잘못된 애니메이션 클립을 전달받는 경우가 생깁니다.

 

디자이너가 바쁘지 않다면 바로 수정해줄 수 있지만 여유가 없다면 유니티 개발자가 직접 수정하는 방법도 있습니다!

 

물론, 애니메이션 클립을 수정해주는 것이 가장 좋은 방법이라고 저는 생각합니다만 서로의 시간을 아끼기 위해 이번 포스팅에서는 개발자가 "직접" 애니메이션 클립을 조정하는 방법에 대해 알아보고자 합니다.


Animation Clip 조정해보기

Animation Clips / Animation Clip 옵션들

 

애니메이션 클립을 조정해보기 위해 애니메이션 클립 하나를 선택해봅니다.

 

애니메이션 클립을 눌러보면 Loop Time, Root Transform Rotation, Root Transfom Rotation(Y), Root Transfom Rotation(XZ) 옵션들이 있는 것을 볼 수 있습니다.

 

Root이라는 용어를 이해하기 위해서는 Root Motion이란 단어를 아셔야 합니다.


Root Motion이란?

(좌) Root Motion O / (우) Root Motion X

 

Root Motion은 애니메이션을 통해 해당 게임 오브젝트의 움직임을 제어할 수 있게 해주는 기능입니다.


다시 본론으로 돌아와서 Loop Time, Root Transform Rotation, Root Transfom Rotation(Y), Root Transfom Rotation(XZ)  옵션들에 대해 알아보겠습니다.

 

위 옵션들은 Root Motion이 활성화 될 때 유용하게 사용할 수 있습니다.

 

[Loop Time]

Loop Time 옵션은 애니메이션 클립이 끝나면 처음으로 돌아가서 반복되도록 설정합니다.

주로 걷기, 뛰기와 같은 연속적인 애니메이션에 유용하며, 이 옵션을 활성화하면 애니메이션 클립이 끝나면 자동으로 처음으로 돌아가 반복됩니다.


[Root Transform Rotation]

Bake into Pose: 이 옵션을 사용하면 해당 애니메이션 클립에 의해 게임 오브젝트가 회전하지 않음을 의미합니다. 이 옵션은 시작과 종료 루트 오리엔테이션이 유사한 애니메이션 클립에만 사용해야 합니다.

 

Based Upon

  • Original : 애니메이션 클립이 가져온 원래 오리엔테이션으로 설정합니다. 주로 키 프레임 데이터와 함께 사용되어 아티스트가 설정한 오리엔테이션을 유지합니다.
  • Body Orientation : 애니메이션  클립이 게임 오브젝트의 전방 벡터를 따르게 됩니다. 대부분의 모션에 잘 작동하지만, 이동이 몸의 전방 벡터에 수직인 경우에는 문제가 발할 수 있습니다. 이러한 경우에는 Offset 설정을 사용하여 수동으로 오리엔테이션을 조정할 수 있습니다.

Offset : Based Upon 옵션에서 해당 옵션을 선택했을 때 오프셋을 입력하는데 사용되는 값입니.


[Root Transfom Position(Y)]

Bake Into Pose: 애니메이션 클립이 게임 오브젝트의 위치 값 (Y)을 변경하지 않음을 의미합니다. 기존 게임오브젝트의 Transform 값을 유지할 수 있습니다.

 

Based Upon

  • Original: Root Transform의 위치 Y를 애니메이션 클립이 가져온 원래 위치로 설정합니다.
  • Mass Center (Body): Root Transform의 위치값 Y를 캐릭터의 질량 중심에 기반하여 설정합니다.
  • Feet: Root Transform의 위치값 Y가 모든 프레임에 대해 가장 낮은 발 Y와 일치하도록 합니다. 이렇게 하면 블렌딩 포인트는 항상 발 주변에 유지되어 블렌딩 또는 전환 시 떠다니는 문제를 방지할 수 있습니다.

Offset: 이 옵션은 애니메이션 클립의 회전을 수동으로 조정하기 위해 사용됩니다.

(좌)  Bake Into Pose, Feet옵션 적용 O & Offset 조정했을 때 / (우) 적용 X

 

엄마 캐릭터가 걸어다닐 때 발이 땅 아래에 움푹 파이는 문제가 있었습니다.

 

Root Transform Position(Y) 옵션인 Bake Into Pose, Feet을 적용하여 문제를 해결했습니다.

이때, Offset 값도 조절해주었습니다.


[Root Transfom Position(XZ) ]

Bake Into Pose: 애니메이션 클립이 게임 오브젝트의 위치 값 (X, Z)를 변경하지 않음을 의미합니다. 기존 게임오브젝트의 Transform 값을 유지할 수 있습니다.

 

Based Upon

  • Original:  Root Transform 위치(XZ)를 애니메이션 클립이 가져온 원래 위치로 설정합니다.
  • Mass Center :  애니메이션 클립의 수평 위치(XZ)를 캐릭터의 질량 중심에 기반하여 설정합니다.

(좌) Bake Into Pose, Original 옵션 적용 O / (우)  Bake Into Pose 옵션 적용 X

 

엄마 캐릭터가 놀라는 애니메이션이 실행될 때 자꾸 Rotation이 돌아가는 문제가 있었습니다.

 

Root Transform Position(XZ) 옵션인 Bake Into Pose 설정과 Base Upon - Original을 적용하여 문제를 해결했습니다.