우선 - 런타임에 Model
을 만들거나 수정할 수 없습니다 (details). 사실, 필요한 경우 implement your own으로되어 있습니다. Model
은 시작할 수있는 최소한의 기능입니다.
콘텐츠 파이프 라인을 통해 빌드시에 Model
을 만들 수 있습니다.
또는 더 구체적으로 NodeContent
을 출력하는 사용자 지정 콘텐츠 가져 오기 프로그램을 만들 수 있습니다. 차례로 이것은 내용 파이프 라인을 통해 ModelContent
을 출력하는 ModelProcessor
(또는 사용자가 파생 한 클래스)으로 전달할 수 있습니다. ModelContent
을 유용하게 수정할 수 없습니다. ModelContent
은 직렬화 된 다음 런타임에 Model
으로로드됩니다.
출력 할 NodeContent
은 모델을 나타내는 트리 구조입니다. 실제로 MeshContent
및 BoneContent
개의 노드 (이들은 NodeContent
에서 파생 된 클래스입니다)로 구성됩니다.
사실 트리의 정확한 구조는 추적하기가 까다 롭습니다. 문서는 매우 부족합니다. Here은 정확한 답을 찾아 줄 질문과 답변입니다. 행운을 빌어도 FbxImporter
내장 모델을 사용하고 행운을 빌어 XNA Content Pipeline Debugger (일반적으로 자신의 가져 오기 도구를 구현하는 동안 편리하게 사용할 수있는 도구)을 사용하여 출력을 검사 할 수 있습니다.
뼈 데이터 BoneContent.Transform
에서 Matrix
로서 저장된다. 이 행렬을 만들려면, 당신은 같은 것을 할 필요가 믿는 : 당신은 런타임에 Quaternion
로 뼈의 데이터를 유지하려면
boneContent.Transform = Matrix.Transform(
Matrix.CreateTranslation(customBone.positionRel),
customBone.rotationRel);
, 당신은 Model
에 자신의 대안을 구현해야합니다.