XNAでモデルが正しく表示されず、骨の変形が無視されます。返信引用編集 私は3Dモデルを初めて使い慣れています。モデルがXNAで正しく表示されない
基本的な原理は、ユーザーの測定値に変形することができる人間のモデルが必要だということです(Kinectを使って測定しましたが、これは別の話です)。たとえば、私は大規模ユーザーのために胃のエリアを伸ばしたいなど
3ds Maxのを使用して、私は二足歩行を用いてヒトモデルリグにできて、その後、胃を変更するには、いくつかの余分な骨を追加しています
このすべては、私はXNAにそれをロードするときしかし、胃の変形が、私は、これは時間を持っている理由として損失でやや午前vanished-
を持ち、十分とよさそうですどのような提案が最も歓迎されるでしょうか、またはこの種のことがどのように行われるべきかに関するチュートリアルへのリンクです。
また、エクスポートされたFBXをQuickTimeの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);
誰かが何が間違っているか、これをどのように並べ替えるかについてのアイデアがあるかどうか分かりません。
ご提案いただければ幸いです。
おかげ
サンプルを勉強しながら、サンプルのアニメーションの面ではなく、BlendWeight&BlendIndicesの概念に集中してください。 –
OK、すばらしい、これは多くの助けになると確信しています。とにかく多くの意味があります!私は良い外観を持って、私はそれを働かせることができるかどうかを確認します。 ご協力いただきありがとうございます –