Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 벡터
- working set
- ColorGradingLutPass
- Cell Look
- Windows Build
- Toon Shader
- C언어
- OculusMotionVectorPass
- 메모리 누수
- Specular
- 프로그래밍 기초
- Virtual Byte
- AppSW
- 3d
- Rim Light
- 개인 바이트
- Private Bytes
- 게임 수학
- URP
- Cell Shader
- Cartoon Rendering
- Three(Two) Tone Shading
- ASW(Application SpaceWarp)
- 가상 바이트
- URP로 변경
- 작업 집합
- VR
Archives
- Today
- Total
WinCNT
계층 구조와 애니메이션 보간 기초 본문
계층 구조 구현 방법
부모-자식 관계를 설정해서 변환 행렬을 누적해서 곱하는 것으로 계층 구조를 구현할 수 있다
인간의 몸은 트리 구조로 되어 있으므로
보통 인간의 계층 최상도(루트)는 골반, 혹은 허리로 지정하는 게 국룰이다
그래서 허리를 움직이면 모든 부분이 움직인다
(고급 기술인 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