애니메이션 제어 방법
애니메이션을 나타내는 방법은 두 종류가 있다. IK와 FK가 그것인데 이 둘은 어떻게 다를까?
FK (Forward Kinematic)
우리가 일반적으로 사용하는 애니메이션은 FK이다.
어떠한 3d 모델에 애니메이션을 적용하면 관절을 개별적으로 조작하여 움직임을 만들어낸다. 이때 각 관절은 상위 관절에 영향을 받지 않고 독립적으로 회전한다.
예를 들어, 걷는 모션이 있다고 했을 때 각 다리의 관절이 서로의 관절에 영향을 주지 않는다.
허벅지가 움직이고 무릎이 움직이고 발목이 움직인다고 했을 때, 각 부위는 하이라키의 계층 구조에 의해 오프셋만 조절될 뿐 어떠한 상호작용도 하지 않는다.
따라서 FK 방식은 간단하고 직관적이다는 장점이 있지만 구체적인 움직임을 구현하기는 어렵다.
IK (Inverse Kinematic)
자주 사용하지는 않지만 FK의 단점을 보완할 수 있는 애니메이션이 IK이다.
이름에서 알 수 있듯 역학을 역으로 계산한다.
다시 말하면 애니메이션을 계산에 의해 동작시키는 것이다. 그리고 이 과정은 계층 구조의 역순으로 동작한다.
예를 들어, 걷는 모션이 있다고 했을 때 FK와는 다르게 발목이 먼저 움직인다. 그리고 발목의 위치와 각도에 맞게 무릎이 재조정되고 무릎의 각도와 움직임에 따라 허벅지가 움직이는 것이다.
이 때문에 IK는 각 관절이 서로에 영향을 크게 준다. (계산에 의해 동작하기 때문에 절차적 애니메이션이라고도 한다.)
FK에 비해 동작 방식이 복잡하고 CPU에 부하를 줄 수 있지만, FK에서는 흉내 낼 수 없는 복잡한 애니메이션이 가능하다.
캐릭터가 어떤 물체를 지속적으로 바라보게 한다거나, 어떤 물체를 손에 계속 잡고 있게 할 수 있고 지면의 경사에 맞게 발을 위치시킬 수도 있다.
Animation Rigging
유니티에서는 IK를 사용하기 위한 에셋이 여럿 존재한다. 하지만 유니티 빌트인으로 패키지 매니저를 통해 관련 라이브러리를 받을 수 있다.
사용 방법은 Unity Document에 자세히 나와있다.
https://docs.unity3d.com/Packages/com.unity.animation.rigging@1.2/manual/index.html
'유니티 > 애니메이션' 카테고리의 다른 글
[Unity] 런타임 애니메이션 녹화 - GameObjectRecorder (0) | 2023.12.18 |
---|---|
[Unity] 애니메이션 리깅 (2) - Constraint (0) | 2023.06.27 |