반응형

 

 

 

"IK(Inverse Kinematics) 애니메이션"

 

 

개발을 하다보면 캐릭터 손이 문고리를 정확히 잡아야 하거나, 

총을 들었는데 조준 방향에 맞춰 팔이 따라가야 하는 것 처럼 

자연스럽게 보정해야 할 때가 있다.

 


그런데 이런 상황을 애니메이션 클립만으로 해결하려고 하면, 

각도/환경/거리마다 클립을 계속 새로 만들게 되고 보여지는 결과도 어색해진다.

 


이때 손/발 같은 끝점(End Effector)을 목표(Target)에 맞추면 엔진이 알아서 나머지 관절 회전을 계산해주는 방식이 있는데

그게 바로 'IK(Inverse Kinematics)'다.

 


오늘은 IK 애니메이션이 뭐고 왜 쓰는지,

그리고 Unity에서 어떻게 적용되는지 간단히 정리해볼 예정이다.

 

 

 


 

 

 

1) IK 애니메이션이란?



IK(Inverse Kinematics)는 말 그대로 역(逆)운동학인데,

애니메이션 관점에선 아래와 같이 이해한다.

 

 


FK(Forward Kinematics)

어깨 → 팔꿈치 → 손목… 처럼 관절을 하나씩 돌려서 손 위치가 결정됨

(Animator + Animation Clip이 곧 FK 방식)

 


IK(Inverse Kinematics)

마리오네트 인형처럼 끝점(손/발)을 목표에 두면,

관절 회전은 역으로 계산됨

 

 

 

(손목이나 발을 움직이면 팔이나 다리의 관절들이 그것에 맞춰 움직이는 마리오네트 인형)

 

 

FK: (관절을 돌린다)                 IK: (목표를 찍는다)
어깨 회전 → 팔꿈치 회전 → 손 위치    손 목표(Target) → (어깨/팔꿈치가 자동 계산)

 

 

 


 

 

 

2) IK가 필요한 이유는?


IK는 애니메이션을 대체한다기보다,

클립 기반 모션을 상황에 맞게 보정하는 데 강하다.

 

 


+++

 



IK의 특징

환경 적응: 경사/계단에서도 발이 바닥을 잘 딛게 보정(Foot IK)

정확한 상호작용: 문고리/레버/아이템을 정확히 잡기(Hand IK)

조준/시선 정렬: 타겟 방향으로 팔/머리/상체가 자연스럽게 따라가기(Aim/Look IK)

클립 재사용성 증가: 같은 걷기/잡기 클립을 다양한 거리/높이에 대응

 

 

 


 

 

 

3) IK는 언제 쓰면 좋을까?



Foot IK

울퉁불퉁 지형에서 발이 떠 있거나 땅을 뚫는 문제 완화

 


Hand IK

무기 그립(양손), 버튼/핸들/문고리 같은 상호작용

 


Aim/Look IK

조준점과 캐릭터 상체 방향이 따로 노는 문제 완화

 

 

 


 

 

 

4) Unity에서 IK 는?



Unity에서 IK는 크게 내장 Animator IK와 Animation Rigging으로 나뉜다.

 


Animator IK

애니메이션이 재생되는 도중에 손/발 목표를 코드로 넣어주면, Animator가 IK를 계산해 보정한다.

 


Animation Rigging

리그(제약 장치)를 에디터에서 미리 조립해두고, 런타임에는 Target만 움직이면 IK가 계속 따라오게 만든다.

 

 

[Animator IK]
애니메이션 클립 재생
   ↓
OnAnimatorIK(코드)에서 목표/가중치 지정
   ↓
Animator가 IK 계산 → 포즈 보정

[Animation Rigging]
에디터에서 Rig(제약/IK) 구조 구성
   ↓
런타임에서 Target/Hint만 움직임
   ↓
Rig가 계속 계산 → 포즈 유지/보정

 

 


 


(a) Animator IK (OnAnimatorIK)

Humanoid 캐릭터에서 많이 쓰는 '코드로 즉석 보정하는 방식'이다.

 

걷기/달리기 같은 기본 모션(FK)이 먼저 나오고, 

그 위에 손/발을 목표 지점에 살짝 붙이는 보정을 얹는 느낌이다.

 

 

OnAnimatorIK()에서 IK Target(목표) + Weight(얼마나 적용할지)를 지정하고,
Animator Controller 레이어에서 IK Pass를 켜야 적용된다.

 

 


 

 

(b) Animation Rigging 패키지

리깅 장치를 만들어두고 Target만 움직이는 방식이다.


이 방식은 Animator IK처럼 '즉석 보정'이라기보다,
캐릭터에 IK 장치(Constraint/리그)를 붙여서 계속 동작하게 만드는 구조에 가깝다.

 


대표적으로 팔/다리에 쓰는 Two Bone IK는 아래와 같다.

 

 

+++


Target

손/발이 도달해야 하는 목표 위치


Hint

팔꿈치/무릎이 어느 방향으로 굽을지 결정하는 가이드


+++

 


무기 양손 그립, 조준(Aim), 상체 보정 같은 곳에서 특히 체감이 크다

 

[Two Bone IK를 마리오네트 인형으로 비유해본다면?]
    
Target = 인형 손이 가야 할 곳(목표점)
Hint   = 팔꿈치가 꺾일 방향을 잡아주는 보조 끈

→ Target만 움직여도, 팔(어깨/팔꿈치)이 자동으로 따라 맞춰짐

 

 

 


 

 

 

5) 오늘의 한 줄 요약


IK 애니메이션은 손·발 같은 끝부분을 목표 위치에 맞추면, 관절이 알아서 자연스럽게 따라 움직이게 하는 방식이다.

반응형

+ Recent posts