0

ちょっと私の問題は、私が 3dsMax で必要とする完璧なモデルを作成したことです。

エンベロープを正しく配置し、フレームを使用して Biped をアニメートし、 としてエクスポートして、.fbxを使用して XNA にロードしましたSkinnedModelPipeline

XNA に読み込まれると、モデルが変形し、モデルの右腕にしかないように見えます。

私はまだ新しいメンバーなので、現時点では画像を投稿できないため、画像へのリンクをオンラインで送信しています。

3dsMax モデル:

ここに画像の説明を入力

読み込まれたモデル

ここに画像の説明を入力

モデルの描画機能

//an array of the current positions of the model meshes
this.bones = animationPlayer.GetSkinTransforms();

for (int i = 0; i < bones.Length; i++)
{
       bones[i] *= Transform.World;                   
}

//remember we can move this code inside the first foreach loop below
//and use mesh.Name to change the textures applied during the effect
customEffect.CurrentTechnique = customEffect.Techniques[technique];
customEffect.Parameters["DiffuseMapTexture"].SetValue(diffuseMap);

customEffect.Parameters["Bones"].SetValue(bones);
customEffect.Parameters["View"].SetValue(Game.CameraManager.ActiveCamera.ViewProperties.View);
customEffect.Parameters["Projection"].SetValue(Game.CameraManager.ActiveCamera.ProjectionProperties.Projection);

foreach (ModelMesh mesh in model.Meshes)
{
    //move code above here to change textures and settings based on mesh.Name
    //e.g. if(mesh.Name.Equals("head"))
    //then set technique and all params

    foreach (ModelMeshPart part in mesh.MeshParts)
    {
        part.Effect = customEffect;
    }
    mesh.Draw();
}

私は長い間ゴーグルしてきましたが、この問題を解決するものは何も見つかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

ボーンを変換するとき、「ワールド」空間でボーンを移動しません。親の変換を継承する必要があるため、すべてのボーンを親に関連して移動する必要があります。

また、3dsmax のスケール\変換マトリックスの問題により、同様の外観の問題が発生する可能性があります。これは、FBX を 3dsmax に再インポートすることで確認できます。それを行った後に問題がなければ、問題はコードにあります。

于 2014-03-25T08:10:55.997 に答える