개발자 면접 공부/그래픽스

IK 와 FK의 차이점

chogyujin 2023. 5. 11. 22:25
728x90

오늘은 IK 와 FK의 차이점에 대해 공부하도록 하겠습니다.

 


1. 개요

보통 게임을 만들면 한 캐릭터의 스켈레탈 본을 놓고 상속계층을 가지고 있습니다.

언리얼 엔진의 스켈레탈 본

하지만 보통 이 스켈레탈본도 부모에 따라 자식이 변경되나 자식에 따라 부모가 변경되냐에따라 애니메이션, 계단오르기 등 여러가지가 변경이 될수가 있습니다.

 

그러므로 오늘은 IK와 FK에 대해 하나식 공부해보도록 하겠습니다.


2. FK

FK는 Forward Kinematics 라고 하며 보통 개체 계층 구조에서 상위개체 즉 부모 개체가 변하면 자식 계체가 변형이 됩니다.

이 변형은 Pivot 점을 중심으로 하는 회전 각도, 피벗 축과 축 크기 조정 배율에 따른 변화가 정의됩니다.

각각의 개체는 상위 개체의 변형을 그 자체에 적용이 됩니다.

따라서 계층 구조인 모든 개체가 변형되는데, 이러한 방식을 FK(Forward Kinematics) 라고 불리며 정방향 운동학 이라고 합니다.
unreal은 자동적으로 FK를 사용하고있습니다.

출처 : https://darkcatgame.tistory.com/23


3. IK

IK는 Inverse Kinematics 이며 하위 개층 즉 자식 개층에 변화에 따라 부모의 상위 개층를 변화시키는 기법입니다.

보통 역방향 운동학이라고 하며 보통 계단 및 지형지물에 자연스러운 모션을 위해 IK를 많이 사용합니다.

이유는 실제 사람도 계단을 올라갈때 한발이 위에있으면 무릎을 접어 맨 아래에 있는 발바닥이 자식이라고 하면

발바닥의 변화가 무릎과 그 위에있는 허벅지 부모까지 변화를 시켜주기 때문입니다.

하지만 FK는 변화가 되지 않으므로 그냥 일자로 쭉 올라가는 발만 보이지 다른 발은 공중에 붕 떠있는 일이 발생합니다.

출처 : https://bbagwang.com/unreal-engine/ik%EC%99%80-fk/

왼쪽부터 오른쪽으로 부모 자식 관계가 성립되면

 

이떄 위의 운동은 자식이 변해도 부모에게 영향이 가지않지만 부모가 변하면 자식도 변하는 FK

아래는 운동은 자식이 변하면 유연하게 부모가 변화를 하는것이 IK입니다.

 

출처 : https://darkcatgame.tistory.com/23

왼쪽이 FK

오른쪽이 IK

입니다.


4. 결론

보통은 IK를 사용하는 이유는 자연스러움때문이라고 생각합니다.

하지만 보통 2D같은 게임은 잘 사용하지 않지만 3D게임은 확실히 보이기 때문에 잘 사용하고 있다고 생각합니다.

 

  1. FK = 정방향 운동학 부모가 변화하면 자식이 변함 -> 자식이 변화하면 부모가 안변함
  2. IK  = 역방향 운동학 자식이 변화하면 부모가 변함 -> 부모가 변화하면 자식이 안변함

5. Ref

https://bbagwang.com/unreal-engine/ik%EC%99%80-fk/

 

IK와 FK – BBAGWANG

FK (Forward Kinematics) 란? IK는 역운동학이라고도 불린다. 여러 개체가 모두 부모-자식 관계 (예를 들면 Bone Hierarchy) 로 연결되어 있을 때 그 구조를 개체 계층 구조라고 한다. 개체 계층 구조에서 상

bbagwang.com

 

'개발자 면접 공부 > 그래픽스' 카테고리의 다른 글

1픽셀의 바이트  (0) 2024.01.19
벡터의 내적으로 라디안 및 디그리 구하기  (0) 2023.09.29
쿼드 트리 & 옥 트리  (0) 2022.11.16
퐁 모델  (2) 2022.09.13
쉐이더란? (사용 이유)  (0) 2022.09.04