モデルはXNAで正しく表示されず、一部の骨の変形を無視します。返信見積もり編集私は3Dモデリングに非常に慣れていませんが、実施したプロジェクトでいくつかの作業を行う必要があります。
基本的な原則は、ユーザーの測定値に合わせて変形できる人間のモデルが必要であるということです(Kinectを使用して測定されますが、それは別の話です!)。たとえば、大規模なユーザーなどのために胃の領域を伸ばしたいです。
3Ds Maxを使用して、Bipedを使用して人間のモデルをリギングし、さらに骨を追加して胃を変更することができました。
これはすべて見栄えが良く、XNAにロードすると、胃の変形がなくなりました-
なぜこれが起こったのか、そしてどんな提案も大歓迎だろうか、あるいはこの種のことをどのように行うべきかについてのチュートリアルへのリンクについて、私は幾分途方に暮れています。
さらに、QuickTime用のFBXビューアプラグインでエクスポートされたFBXを表示すると、変形が非常にうまく表示されます。
モデルを表示するためのコード(そのF#コード、変換された形式のac#の例ですが、元のc#コードで試してみたところ、同じ結果が得られました)は次のとおりです。
override this.Draw(gameTime)=
// Copy any parent transforms.
let (transforms:Matrix array) = Array.zeroCreate model.Bones.Count
model.CopyAbsoluteBoneTransformsTo(transforms);
this.Game.GraphicsDevice.BlendState <- BlendState.Opaque
this.Game.GraphicsDevice.DepthStencilState <- DepthStencilState.Default
// Draw the model. A model can have multiple meshes, so loop.
for mesh in model.Meshes do
// This is where the mesh orientation is set, as well
// as our camera and projection.
for e:Effect in mesh.Effects do
let effect = e :?> BasicEffect
effect.EnableDefaultLighting()
effect.World <- mesh.ParentBone.Transform *
Matrix.CreateRotationZ(modelRotation)
* Matrix.CreateTranslation(modelPosition)
effect.View <- Matrix.CreateLookAt(cameraPosition,
focusPoint, Vector3.Up)
effect.Projection <- Matrix.CreatePerspectiveFieldOfView(
MathHelper.ToRadians(45.0f), aspectRatio,
1.0f, 10000.0f)
// Draw the mesh, using the effects set above.
mesh.Draw();
base.Draw(gameTime);
何がうまくいかなかったのか、これをどのように分類するのかについて誰かが何か考えを持っているかどうか疑問に思います。
任意の提案をいただければ幸いです。
ありがとう