SlideShare une entreprise Scribd logo
1  sur  35
언리얼에서 사용되는 IK
Inverse Kinematics
데브루키 박수찬(ACA)
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
목차
1. IK란?
2. CCDIK
3. FABRIK
IK 소개
IK 소개
본, 애니메이션
본, 애니메이션
본은 기본적으로 계층구조로 되어있다.
본이란, 모델에서 뼈 역할을 하는 렌더링되지 않
는 계층적 자료구조이다.
뼈이므로, 실제로 보이진 않지만 애니메이션에
따라 뼈를 움직여서 뼈에 붙은 피부를 움직일 수
있게 한다. (스키닝)
즉, 애니메이션에서 움직이는 것은 실제로 ‘본’이
며, ‘스킨‘은 뼈에 적절하게 붙어서 같이 움직일
뿐이다.
그래서 IK란?
본, 애니메이션
본의 위치와 움직임은 그 부모 본, 조상 본들에게
도 영향을 받게 된다.
만약 캐릭터의 어깨를 움직인다면 팔목이나 손목
이 같이 움직이는 것처럼 부모 본의 움직임에 자
식 본이 영향을 받는다.
그래서 IK란?
본, 애니메이션
그렇기에 본을 사용하는 애니메이션 또한 서로의
조상에 영향을 받게 된다.
그래서 자식 본에 애니메이션을 적용하고 올바른
월드 좌표에 위치시키기 위해서는, 자신의 모든
부모들의 변환행렬을 곱하게 된다.
계층구조에서 i번째 물체를 월드 공간으로
변환하는 행렬
(계속해서 부모의 변환행렬을 곱하게 된다)
요점 : 애니메이션은 부모 본의 영향을 받는다
그래서 IK란?
본, 애니메이션
특정한 움직임을 취하는 애니메이션이 있다면,
본의 각각의 관절들을 적절한 위치로 움직여서 동
작을 만든다.
즉 자세를 표현하기 위해 애니메이션에 입력되
어 있는 관절(joint)의 회전각을 적용하는 것이
다.
그래서 IK란?
본, 애니메이션
이러한 회전각은 이미 알고 있으므로, 정해진 회
전을 통해 애니메이션을 표현할 수 있다.
Forward Kinematics(FK)에서는 이렇게 미
리 정해진 회전을 기반으로 본의 위치를 조정한
다.
애니메이션에 필요한 이동, 회전, 스케일 값
은 이 행렬에 있을 것이다
그래서 IK란?
본, 애니메이션
이 반대가 IK(Inverse Kinematic)이다.
만약 걷는 애니메이션이 있다면, 계단을 올라가
려고 하는 순간 계단을 뚫고 가게 된다.
이미 관절의 회전각이 정해져있는 애니메이션으
로는 계단에 대응할 수 없기 때문.
이럴 경우엔 일반적인 부모->자식 본 계층의 애
니메이션을 사용할 수 없다.
그래서 IK란?
본, 애니메이션
그래서 ‘발’을 ‘계단 위’에 올리기 위해, 발목, 무
릎, 골반이 어떤 각도로 회전해야 하는지를 역순
으로 계산해줄 필요가 있다.
이것을 IK(Inverse Kinimatic)이라고 한다.
즉, IK란 특정한 목표(Target)의 위치에 특정한 본을 위
치시키기 위해 각각의 관절(Joint)들의 위치/회전을 계산
하는 것이다.
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
원하는 Target 의 위치
해당 Target의 공간
Target 공간을 ‘bone’으로 설정했을
경우, 해당 bone
IK를 적용할 가장 말단 본
(대개 손끝, 발끝 등..)
IK를 적용할 가장 최상단 본
(어깨, 허리, 골반, 허벅지 등..)
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
해당 연산의 정밀도
(CCD는 반복연산이므로 적절한 오차범위를
지정해야 연산 비용을 줄일 수 있다)
해당 연산의 최대 반복횟수
각 관절(Joint)들의 회전 한계값 설정
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
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의 위치
를 알고 있다고 가정합니다.
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 원리
2. 그러면 그 세 개의 위치를 이용하여,
Pivot-Target, Pivot-ChainEnd 두 개의 벡터를 만들
수 있습니다.
𝑃𝑇
∘
𝑃𝐶
=
𝑃𝑇
*
𝑃𝐶
* cos⊝ 이므로,
cos−1(
𝑃𝑇
∘
𝑃𝐶
) = ⊝ 임을 알 수 있습니다.
단,
𝑃𝑇
,
𝑃𝐶
는 정규화된 벡터임.
𝑃𝑇
𝑃𝐶
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 원리
3. 그러면 그 방향대로 해당 본을 회전시킵니다. 단 회전 방
향이 시계방향일지 반시계방향일지를 정의해야 합니다. 𝑃𝑇
𝑃𝐶
𝑃𝐶
×
𝑃𝑇
를 통해 회전방향을 정의할 수 있습니다.
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의 과정을 계속해서 반복합
니다.
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 원리
이렇게 해서 Target에 도달하면 좋겠지만, 만약 Target
이 관절을 전부 뻗어도 닿지 않는 거리에 있거나, 지나치게
많은 반복을 하게되면 계속해서 회전 연산을 하게 되므로
성능 문제가 발생하게 됩니다.
그래서 CCD에서는 최대반복횟수와 허용오차범위를 미리
설정해 주어야 성능저하를 방지할 수 있습니다.
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
해당 연산의 정밀도
(CCD는 반복연산이므로 적절한 오차
범위를 지정해야 연산 비용을 줄일 수
있다)
해당 연산의 최대 반복횟수
각 관절(Joint)들의 회전 한계값 설정
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. 작동 방식 때문에 리얼하지 않은 결과가 나올 수 있다.
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
CCD의 장점
1. 비교적 간단한 구현방법
2. 회전각을 사용하기 때문에, 회전각의 최대값을 제한할 수 있다.
(회전각이 60도인데 제한값이 30도라면 30도만 움직이는 식으로)
그래서 각 뼈대 간의 관절 가동 범위가 제한적인 인간형 본의 IK에 어울린다.
CCD의 단점
1. 높은 연산 비용
2. 비교적 부정확한 결과(성능 저하를 막기 위해 오차범위, 최대반복횟수 를 두기 때문)
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
Target을 설정하는 부분
(위치, 공간)
전체적으로 CCD와 유사하다
Tip : 본 체인의 가장 말단 부분 (End
Effector)을 설정
Root : 본 체인의 가장 상단 부분(Root)을
설정
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
Target을 설정하는 부분
(위치, 공간)
전체적으로 CCD와 유사하다
Tip : 본 체인의 가장 말단 부분 (End
Effector)을 설정
Root : 본 체인의 가장 상단 부분(Root)을
설정
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
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`이라고 한다.
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
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`로 향하는 벡터를 만들어낸다.
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처럼 반복 연산이기 때문에, 허용오차와
반복횟수를 설정해 주어야 한다.
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
FABRIK(Forward And Backward Reaching Inverse Kinematics)
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에서는 제약을 줄 수 있다고 한다.)
PPTPRESENTATION
Enjoy your stylish business and campus life with BIZCAM
감사합니다.

Contenu connexe

Tendances

06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
noerror
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
henjeon
 

Tendances (20)

제3회 오픈 로보틱스 세미나 (제12세션) : 로봇 암 모델링과 MoveIt! 사용법
제3회 오픈 로보틱스 세미나 (제12세션) : 로봇 암 모델링과 MoveIt! 사용법제3회 오픈 로보틱스 세미나 (제12세션) : 로봇 암 모델링과 MoveIt! 사용법
제3회 오픈 로보틱스 세미나 (제12세션) : 로봇 암 모델링과 MoveIt! 사용법
 
Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)
 
Screen space reflection
Screen space reflectionScreen space reflection
Screen space reflection
 
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기
 
Data-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSData-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTS
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
20191019 sinkhorn
20191019 sinkhorn20191019 sinkhorn
20191019 sinkhorn
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
 
20160427 ROS 4차 강의 (for 아스라다 팀)
20160427 ROS 4차 강의 (for 아스라다 팀)20160427 ROS 4차 강의 (for 아스라다 팀)
20160427 ROS 4차 강의 (for 아스라다 팀)
 
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)
 
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약Effective c++ chapter 1,2 요약
Effective c++ chapter 1,2 요약
 

Similaire à 데브루키 IK 1편 (6)

KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
 
[Gpg1권]skinning
[Gpg1권]skinning[Gpg1권]skinning
[Gpg1권]skinning
 
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터][NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]
[NDC14] 라이브중인 2D게임에 시스템 변경 없이 본 애니메이션 도입하기[던전앤파이터]
 
역동적인 애니메이션 Ik
역동적인 애니메이션 Ik역동적인 애니메이션 Ik
역동적인 애니메이션 Ik
 
Let'Swift 2022 PencilKit과 Point in Polygon 알고리즘을 활용한 올가미 툴 개발기
Let'Swift 2022 PencilKit과 Point in Polygon 알고리즘을 활용한 올가미 툴 개발기Let'Swift 2022 PencilKit과 Point in Polygon 알고리즘을 활용한 올가미 툴 개발기
Let'Swift 2022 PencilKit과 Point in Polygon 알고리즘을 활용한 올가미 툴 개발기
 
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
 

데브루키 IK 1편

  • 1. 언리얼에서 사용되는 IK Inverse Kinematics 데브루키 박수찬(ACA)
  • 2. PPTPRESENTATION Enjoy your stylish business and campus life with BIZCAM 목차 1. IK란? 2. CCDIK 3. FABRIK
  • 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)들의 위치/회전을 계산 하는 것이다.
  • 12. PPTPRESENTATION Enjoy your stylish business and campus life with BIZCAM CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
  • 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)들의 회전 한계값 설정
  • 15. PPTPRESENTATION Enjoy your stylish business and campus life with BIZCAM CCD(Cyclic Coordinate Descent : 순환 좌표 하강법)
  • 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. 비교적 부정확한 결과(성능 저하를 막기 위해 오차범위, 최대반복횟수 를 두기 때문)
  • 24. PPTPRESENTATION Enjoy your stylish business and campus life with BIZCAM FABRIK(Forward And Backward Reaching Inverse Kinematics)
  • 25. PPTPRESENTATION Enjoy your stylish business and campus life with BIZCAM FABRIK(Forward And Backward Reaching Inverse Kinematics)
  • 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처럼 반복 연산이기 때문에, 허용오차와 반복횟수를 설정해 주어야 한다.
  • 33. PPTPRESENTATION Enjoy your stylish business and campus life with BIZCAM FABRIK(Forward And Backward Reaching Inverse Kinematics)
  • 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에서는 제약을 줄 수 있다고 한다.)
  • 35. PPTPRESENTATION Enjoy your stylish business and campus life with BIZCAM 감사합니다.