WinCNT

계층 구조와 애니메이션 보간 기초 본문

게임 프로그래밍(학습 내용 정리)/게임 수학

계층 구조와 애니메이션 보간 기초

WinCNT_SSS 2022. 1. 11. 14:30

계층 구조 구현 방법

부모-자식 관계를 설정해서 변환 행렬을 누적해서 곱하는 것으로 계층 구조를 구현할 수 있다

 

인간의 몸은 트리 구조로 되어 있으므로

보통 인간의 계층 최상도(루트)는 골반, 혹은 허리로 지정하는 게 국룰이다

그래서 허리를 움직이면 모든 부분이 움직인다

(고급 기술인 IK - Inverse Kinematics는  다른 영역)

 

인간과 같은 관절체를 움질일 때는 결국 구현은 행렬의 곱이다

자식에서 부모로 누적해서 행렬을 곱하는 것이 

계층 구조를 구현하는 방법이다

키프레임 애니메이션

블렌더나 맥스에서 애니메이션 트랙이라는 것이 존재한다

0번 트랙에 초기 동작(T자형 캐릭터 등)을 설정함

T자형이 기본인 이유는 리깅할 때 본이 영향을 미치는 영역을 명확하게 하기 위해서이다

예를 들어 100번째 프레임에 이동할 지점을 설정해두면

50번째 프레임에 대한 애니메이션을 따로 설정하지 않더라도

중간 지점에 있겠다고 게임 엔진에서 계산을 할 수 있다

 

그래서 아트 팀이 애니메이션을 제작할 때는 중요한 프레임에만 지점을 설정한다

그 애니메이션의 중간 값을 만들어주는 것을 인터폴레이션(보간)이라고 단다

 

제일 간단한 보간은은 선형(리니어) 보간, 일차 보간이다

줄여서 Lerp(함수명이기도 함)라고 부르기도 한다

간단한 선형 보간 공식
A x (1 - alpha) + B x alpha
1차원이든 2차원이든 3차원이든 동일한 공식을 쓸 수 있다(벡터 관련)
0프레임일 때 alpha가 0 / 50프레임일 때 alpha가 0.5 / 100프레임일 때 alpha가 1 

 

회전 보간은 슬러프 보간이라는 것을 사용한다

선형 보간보다는 식이 어렵다...하지만 이쪽도 Slerp()라는 함수가 있어서 사용한느 것은 어렵지 않다

 

SSS

'게임 프로그래밍(학습 내용 정리) > 게임 수학' 카테고리의 다른 글

PBR  (0) 2022.01.11
조명 처리  (0) 2022.01.11
변환 파이프라인  (0) 2022.01.04
좌표계  (0) 2021.12.28
행렬  (0) 2021.12.21