본문 바로가기

유니티/애니메이션

[Unity] 애니메이션 리깅 (1) - Overview

반응형

애니메이션 제어 방법

애니메이션을 나타내는 방법은 두 종류가 있다. 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

반응형