오늘은 IK 와 FK의 차이점에 대해 공부하도록 하겠습니다.
1. 개요
보통 게임을 만들면 한 캐릭터의 스켈레탈 본을 놓고 상속계층을 가지고 있습니다.
하지만 보통 이 스켈레탈본도 부모에 따라 자식이 변경되나 자식에 따라 부모가 변경되냐에따라 애니메이션, 계단오르기 등 여러가지가 변경이 될수가 있습니다.
그러므로 오늘은 IK와 FK에 대해 하나식 공부해보도록 하겠습니다.
2. FK
FK는 Forward Kinematics 라고 하며 보통 개체 계층 구조에서 상위개체 즉 부모 개체가 변하면 자식 계체가 변형이 됩니다.
이 변형은 Pivot 점을 중심으로 하는 회전 각도, 피벗 축과 축 크기 조정 배율에 따른 변화가 정의됩니다.
각각의 개체는 상위 개체의 변형을 그 자체에 적용이 됩니다.
따라서 계층 구조인 모든 개체가 변형되는데, 이러한 방식을 FK(Forward Kinematics) 라고 불리며 정방향 운동학 이라고 합니다.
unreal은 자동적으로 FK를 사용하고있습니다.
3. IK
IK는 Inverse Kinematics 이며 하위 개층 즉 자식 개층에 변화에 따라 부모의 상위 개층를 변화시키는 기법입니다.
보통 역방향 운동학이라고 하며 보통 계단 및 지형지물에 자연스러운 모션을 위해 IK를 많이 사용합니다.
이유는 실제 사람도 계단을 올라갈때 한발이 위에있으면 무릎을 접어 맨 아래에 있는 발바닥이 자식이라고 하면
발바닥의 변화가 무릎과 그 위에있는 허벅지 부모까지 변화를 시켜주기 때문입니다.
하지만 FK는 변화가 되지 않으므로 그냥 일자로 쭉 올라가는 발만 보이지 다른 발은 공중에 붕 떠있는 일이 발생합니다.
왼쪽부터 오른쪽으로 부모 자식 관계가 성립되면
이떄 위의 운동은 자식이 변해도 부모에게 영향이 가지않지만 부모가 변하면 자식도 변하는 FK
아래는 운동은 자식이 변하면 유연하게 부모가 변화를 하는것이 IK입니다.
왼쪽이 FK
오른쪽이 IK
입니다.
4. 결론
보통은 IK를 사용하는 이유는 자연스러움때문이라고 생각합니다.
하지만 보통 2D같은 게임은 잘 사용하지 않지만 3D게임은 확실히 보이기 때문에 잘 사용하고 있다고 생각합니다.
- FK = 정방향 운동학 부모가 변화하면 자식이 변함 -> 자식이 변화하면 부모가 안변함
- IK = 역방향 운동학 자식이 변화하면 부모가 변함 -> 부모가 변화하면 자식이 안변함
5. Ref
https://bbagwang.com/unreal-engine/ik%EC%99%80-fk/
'개발자 면접 공부 > 그래픽스' 카테고리의 다른 글
1픽셀의 바이트 (0) | 2024.01.19 |
---|---|
벡터의 내적으로 라디안 및 디그리 구하기 (0) | 2023.09.29 |
쿼드 트리 & 옥 트리 (0) | 2022.11.16 |
퐁 모델 (2) | 2022.09.13 |
쉐이더란? (사용 이유) (0) | 2022.09.04 |