본문 바로가기

Programming/DirectX

애니메이션 1

3D 게임에서 나오는 캐릭터를 동작시키는 방법은 크게 두가지 형태가 있다.

1번은 매쉬애니. 2번은 본애니.


1번은 아마도 처음 해 본 사람은 누구나 알것이다.

매쉬애니는 2D시절 스프라이트 애니와 흡사하다.

스프라이트 애니는 한장면 한장면 다 그려서 동작을 만든다.

매쉬애니도 이와 동일하다.


매쉬의 정보를 동작동작다 만들어 놓고, 시간에 맞추어서 그 매쉬를 찍는것이 바로 매쉬애니이다.


2번 본애니는 무엇인가?


사람과 같이 오브젝트에 뼈를 넣고, 그 뼈를 움직이게 하여, 뼈에 붙어있는 피부가 움직이듯, 오브젝트를 변화시키는 것이 바로 본애니다.

본애니에는 피부. 그러니까 매쉬에 어떻게 영향을 주느가에 따라서 스키닝 애니와 스티칭 애니로 나뉜다.

일단 매쉬에 영향을 주는 두 방식에 관해서는 차후에 (과연 그날이 올지 의문이지만..) 이야기 하도록 하자.

일단 기본적인 매쉬를 움직이는 본에 관해서 이야기 해보자.


본구조는 계층적구조로 이루어 져있다. 계층적 구조라 하면, 최상의 부모가 있고,

 그 밑으로 자식이 있고, 자식밑에 자식. 자식밑에 자식....등등. 계층적으로 연결되어

부모를 움직이면 그 밑의 자식들도 다 움직이게 되고, 자식이 움직이면 자식만 움직이는 형태가

 되는 것이다.


본에 있는 정보는 보통 두가지다. 부모로 부터의 상대위치와 회전값이다. 추가를 한다면 확대값을 넣을수도 있을 것이다.

이런 위치와 회전, 확대값은 하나의 매트릭스로 적용이 가능하다.

(어째서냐고 묻는다면 기초 3D라 하는 매트릭스를 공부하자.)

위 본정보를 하나의 매트릭스로 만들고, 마찬기지로 만들어진 부모의 매트릭스를 곱하면, 그뼈의 월드 매트릭스가 만들어지는 것이다.

이것이 계층적인 본구조를 계산하는 방식이다.

'Programming > DirectX' 카테고리의 다른 글

애니메이션 2  (0) 2009.11.09
애니메이션 3  (0) 2009.11.09
애니메이션 4  (0) 2009.11.09
내적(dot product) 외적(cross product) 이용  (0) 2009.11.06
방향넣으면 각도 출력하는 함수  (0) 2009.11.06