4. 캐릭터 애니메이션

4,341 views

Published on

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,341
On SlideShare
0
From Embeds
0
Number of Embeds
41
Actions
Shares
0
Downloads
30
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

4. 캐릭터 애니메이션

  1. 1. 캐릭터 애니메이션 박민근
  2. 2. [KGC2010] M2 프로젝트의 절차적 리깅 시스템
  3. 3. 애니메이션 1.Vertex Animation 2.Hierarchical Animation (계층적 애니메이션) 3.Bone Animation, Skeletal Animation 4.Skinning 5.Inverse Kinematics
  4. 4. Vertex Animation 각각의 버텍스를 직접 이동 = 모핑(morphing)
  5. 5. Hierarchy Animation 계층 구조를 만들어, 부모의 이동이 자식 노드에게 영향을 준다 모든 애니메이션 구조의 기본이 된다.
  6. 6. Skeletal Animation 뼈대(Bone)을 중심으로 각 버텍스가 어느 뼈대에 붙어있는지(가중치) 정의 되어 있고, 뼈대를 움직여서 애니메이션을 한다. 뼈대는 렌더링 되지 않는 모델링에 정의 되어 있는 계층적 자료 구조이다.
  7. 7. Skeletal Animation Bone이 애니메이션 하면, Bone에 영향을 받는 Vertex들도 따라서 이동 한다.
  8. 8. Skeletal Animation 본의 계층 구조가 같으면, 다른 모델에도 동일한 애니메이션을 적용 가능
  9. 9. Skinning http://cybershin.tistory.com/category/API.%20Programming/DirectX9 정점에 서로 다른 Bone에 대한 가중치를 주고 보간 한다.
  10. 10. Skinning 예를 들어, 영향을 받는 본의 개수가 2개일 때 Vertex[39] : Bone 7(0.3), Bone 8(0.7) 이런식으로 Mesh에 저장되어 있다.
  11. 11. Inverse Kinematic Leaf Bone의 위치가 결정됨에 따라서, 역으로 부모 본들의 위치가 실시간으로 변경되는 애니메이션
  12. 12. 애니메이션 블렌딩 2개 이상의 애니메이션을 섞는 것(블렌딩) 상하체 애니메이션 블렌딩 애니메이션 전환 블렌딩
  13. 13. [KGC2010] M2 프로젝트의 절차적 리깅 시스템
  14. 14. [KGC2010] M2 프로젝트의 절차적 리깅 시스템
  15. 15. DirectX Skinned Mesh
  16. 16. Skinning Animation 구현 1.SW 계산으로 구현 (CPU) 2.Fixed-Pipeline 사용 3.Fixed-Pipeline Index 사용 (매트릭스 팔레트) 4.셰이더 사용
  17. 17. D3DXFRAME Skeletal의 Bone 구조체
  18. 18. D3DXMESHCONTAINER Skinned Mesh의 정보를 담는 구조체
  19. 19. ID3DXAllocateHierarchy 각 Frame과 MeshContainer를 할당하고 해제하는 인터페이스 구현
  20. 20. 1. Shader File 로딩
  21. 21. 2. Mesh Hierarchy 로딩 D3DXLoadMeshHierarchyFromX 위 함수를 호출하면, CAllocateHierarchy 에 구현된 함수들이 호출 된다. SetupBoneMatrixPointers Mesh에 정의된 BoneMatrix들을 세팅한다
  22. 22. 3. CreateMeshContainer Mesh Data를 로딩하고, 생성하는 함수
  23. 23. 4. GenerateSkinnedMesh
  24. 24. 5. OnFrameMove
  25. 25. 6. UpdateFrameMatrices
  26. 26. 7. OnFrameRender 셰이더에 ViewProj Matrix 세팅
  27. 27. 8. DrawMeshContainer
  28. 28. 8. DrawMeshContainer
  29. 29. 9. SkinnedMesh.fx
  30. 30. Skinning 예를 들어, 영향을 받는 본의 개수가 2개일 때 Vertex[39] : Bone 7(0.3), Bone 8(0.7) 이런식으로 Mesh에 저장되어 있다.
  31. 31. 10. SkinnedMesh.fx
  32. 32. 참고자료 3D 게임 프로그래밍 – 애니메이션 챕터 DX9 게임 프로그래밍 – 애니메이션 챕터 게임 프로그래밍의 정석 – 애니메이션 챕터

×