5. 본, 애니메이션
본, 애니메이션
본은 기본적으로 계층구조로 되어있다.
본이란, 모델에서 뼈 역할을 하는 렌더링되지 않
는 계층적 자료구조이다.
뼈이므로, 실제로 보이진 않지만 애니메이션에
따라 뼈를 움직여서 뼈에 붙은 피부를 움직일 수
있게 한다. (스키닝)
즉, 애니메이션에서 움직이는 것은 실제로 ‘본’이
며, ‘스킨‘은 뼈에 적절하게 붙어서 같이 움직일
뿐이다.
6. 그래서 IK란?
본, 애니메이션
본의 위치와 움직임은 그 부모 본, 조상 본들에게
도 영향을 받게 된다.
만약 캐릭터의 어깨를 움직인다면 팔목이나 손목
이 같이 움직이는 것처럼 부모 본의 움직임에 자
식 본이 영향을 받는다.
7. 그래서 IK란?
본, 애니메이션
그렇기에 본을 사용하는 애니메이션 또한 서로의
조상에 영향을 받게 된다.
그래서 자식 본에 애니메이션을 적용하고 올바른
월드 좌표에 위치시키기 위해서는, 자신의 모든
부모들의 변환행렬을 곱하게 된다.
계층구조에서 i번째 물체를 월드 공간으로
변환하는 행렬
(계속해서 부모의 변환행렬을 곱하게 된다)
요점 : 애니메이션은 부모 본의 영향을 받는다
8. 그래서 IK란?
본, 애니메이션
특정한 움직임을 취하는 애니메이션이 있다면,
본의 각각의 관절들을 적절한 위치로 움직여서 동
작을 만든다.
즉 자세를 표현하기 위해 애니메이션에 입력되
어 있는 관절(joint)의 회전각을 적용하는 것이
다.
9. 그래서 IK란?
본, 애니메이션
이러한 회전각은 이미 알고 있으므로, 정해진 회
전을 통해 애니메이션을 표현할 수 있다.
Forward Kinematics(FK)에서는 이렇게 미
리 정해진 회전을 기반으로 본의 위치를 조정한
다.
애니메이션에 필요한 이동, 회전, 스케일 값
은 이 행렬에 있을 것이다
10. 그래서 IK란?
본, 애니메이션
이 반대가 IK(Inverse Kinematic)이다.
만약 걷는 애니메이션이 있다면, 계단을 올라가
려고 하는 순간 계단을 뚫고 가게 된다.
이미 관절의 회전각이 정해져있는 애니메이션으
로는 계단에 대응할 수 없기 때문.
이럴 경우엔 일반적인 부모->자식 본 계층의 애
니메이션을 사용할 수 없다.
11. 그래서 IK란?
본, 애니메이션
그래서 ‘발’을 ‘계단 위’에 올리기 위해, 발목, 무
릎, 골반이 어떤 각도로 회전해야 하는지를 역순
으로 계산해줄 필요가 있다.
이것을 IK(Inverse Kinimatic)이라고 한다.
즉, IK란 특정한 목표(Target)의 위치에 특정한 본을 위
치시키기 위해 각각의 관절(Joint)들의 위치/회전을 계산
하는 것이다.
13. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
원하는 Target 의 위치
해당 Target의 공간
Target 공간을 ‘bone’으로 설정했을
경우, 해당 bone
IK를 적용할 가장 말단 본
(대개 손끝, 발끝 등..)
IK를 적용할 가장 최상단 본
(어깨, 허리, 골반, 허벅지 등..)
14. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
해당 연산의 정밀도
(CCD는 반복연산이므로 적절한 오차범위를
지정해야 연산 비용을 줄일 수 있다)
해당 연산의 최대 반복횟수
각 관절(Joint)들의 회전 한계값 설정
16. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 원리
1. 본 링크의 가장 말단부터 시작합니다.
해당 본을 회전시킬건데, Chain End가 Target을 바라볼
수 있게 회전시킵니다.
그러려면 관절(joint)의 적절한 회전각을 구해야 합니다.
우리는 Pivot(Joint좌표), Chain End, Target의 위치
를 알고 있다고 가정합니다.
17. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 원리
2. 그러면 그 세 개의 위치를 이용하여,
Pivot-Target, Pivot-ChainEnd 두 개의 벡터를 만들
수 있습니다.
𝑃𝑇
∘
𝑃𝐶
=
𝑃𝑇
*
𝑃𝐶
* cos⊝ 이므로,
cos−1(
𝑃𝑇
∘
𝑃𝐶
) = ⊝ 임을 알 수 있습니다.
단,
𝑃𝑇
,
𝑃𝐶
는 정규화된 벡터임.
𝑃𝑇
𝑃𝐶
18. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 원리
3. 그러면 그 방향대로 해당 본을 회전시킵니다. 단 회전 방
향이 시계방향일지 반시계방향일지를 정의해야 합니다. 𝑃𝑇
𝑃𝐶
𝑃𝐶
×
𝑃𝑇
를 통해 회전방향을 정의할 수 있습니다.
19. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 원리
4. 부모 본을 타고 올라가면서 모두 같은 동작을 반복합니다.
Root Bone까지 해당 동작을 완료하였다면,
이것이 1 Iteration(반복)입니다.
1회 반복을 하였을 때, 아직 Chain End가 Target에 원하
는 만큼 도달하지 않았다면 1~4의 과정을 계속해서 반복합
니다.
20. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 원리
이렇게 해서 Target에 도달하면 좋겠지만, 만약 Target
이 관절을 전부 뻗어도 닿지 않는 거리에 있거나, 지나치게
많은 반복을 하게되면 계속해서 회전 연산을 하게 되므로
성능 문제가 발생하게 됩니다.
그래서 CCD에서는 최대반복횟수와 허용오차범위를 미리
설정해 주어야 성능저하를 방지할 수 있습니다.
21. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
해당 연산의 정밀도
(CCD는 반복연산이므로 적절한 오차
범위를 지정해야 연산 비용을 줄일 수
있다)
해당 연산의 최대 반복횟수
각 관절(Joint)들의 회전 한계값 설정
22. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 장점
1. 비교적 간단한 구현방법
2. 회전각을 사용하기 때문에, 회전각의 최대값을 제한할 수 있다.
(회전각이 60도인데 제한값이 30도라면 30도만 움직이는 식으로)
그래서 각 뼈대 간의 관절 가동 범위가 제한적인 인간형 본의 IK에 어울린다.
CCD의 단점
1. 높은 연산 비용
2. 비교적 부정확한 결과(성능 저하를 막기 위해 오차범위를 두기 때문)
3. 작동 방식 때문에 리얼하지 않은 결과가 나올 수 있다.
23. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 장점
1. 비교적 간단한 구현방법
2. 회전각을 사용하기 때문에, 회전각의 최대값을 제한할 수 있다.
(회전각이 60도인데 제한값이 30도라면 30도만 움직이는 식으로)
그래서 각 뼈대 간의 관절 가동 범위가 제한적인 인간형 본의 IK에 어울린다.
CCD의 단점
1. 높은 연산 비용
2. 비교적 부정확한 결과(성능 저하를 막기 위해 오차범위, 최대반복횟수 를 두기 때문)
26. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
Target을 설정하는 부분
(위치, 공간)
전체적으로 CCD와 유사하다
Tip : 본 체인의 가장 말단 부분 (End
Effector)을 설정
Root : 본 체인의 가장 상단 부분(Root)을
설정
27. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
Target을 설정하는 부분
(위치, 공간)
전체적으로 CCD와 유사하다
Tip : 본 체인의 가장 말단 부분 (End
Effector)을 설정
Root : 본 체인의 가장 상단 부분(Root)을
설정
28. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
FABRIK의 원리
1. P0은 Root Point, P3은 End Point(본 체인의 가
장 말단에 있는 본의 끝) 이다. L1, l2, l3은 각 본을 의미
한다.
2. 우선 각 본의 길이 l1 , l2, l3을 합하여, 그 길이의 합이
Goal에 닿는지 확인한다. 이를 통해 IK시 목표에 닿을
수 있는지 여부를 확인할 수 있다.
X
29. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
FABRIK의 원리
3. Goal을 P3` (P3 Prime)으로 놓고, P2와 P3` 사이의 단
위벡터를 계산한다. 해당 단위벡터에 l3의 길이를 곱한다.
그러면 P3`으로부터 시작하여, P2로 향하지만 닿지 않는 그
런 벡터가 생성될 것이다.
이 벡터의 끝점을 P2`이라고 한다.
30. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
FABRIK의 원리
4. P3의 Pivot에서 시작하여, 나머지 P2, P1, P0 관절에
도 같은 방법을 반복한다.
여기까지가 Forward And Backward Reaching IK의
‘Backward’ 부분이다.
pivot
31. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
FABRIK의 원리
5. 이번에는 P0 관절을 P0``(P0 Prime Prime)으로 놓고,
P0``부터 P1` 까지의 단위벡터를 구한 다음, L1의 크기를 곱
하여 P0``에서 시작하여 P1`로 향하는 벡터를 만들어낸다.
32. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
FABRIK의 원리
6. 나머지 P1``, P2``, P3``에도 같은 방법을 반복한다.
그러면 이제 P0에서 시작하지만, 좀 더 Target(Goal)에
가까워진 본을 만들어낼 수 있다.
여기까지가 Forward 단계이다.
충분히 가까워지거나, Target에 도착할 때 까지
Backward-Forward 동작을 반복한다.
FABRIK 또한 CCD처럼 반복 연산이기 때문에, 허용오차와
반복횟수를 설정해 주어야 한다.
34. PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
FABRIK의 장점
1. 회전변환을 사용하지 않으며, 알고리즘이 심플하고
단순하기 때문에 CCD보다 빠르다.
2. 유연한 IK를 제공하기 때문에,
뱀, 괴물, 촉수 등의 유연한 본에 적절하다.
FABRIK의 단점
1. 기본적으로 반복하며 답을 찾아가는 휴리스틱
알고리즘이기 때문에, 반복회수와 정확도에 따라 성능적
문제가 발생할 수 있다.
2. 회전각을 쓰지 않기 때문에 회전각에 제약을 줄 수 없다.
(기본적인 FABRIK은 그렇고, 찾아보니 Constraint FABRIK에서는 제약을 줄 수 있다고 한다.)