1

正確な「骨」の上で、モデルを別のモデルに取り付ける難しさに応えます。いくつかのフォーラムを検索しましたが、結果はありませんでした。多くの人が同じ質問をしているのを見ましたが、実際の結果には反応がありません。スレッドが見つかりました:

https://gamedev.stackexchange.com/questions/21129/how-to-attach-two-xna-models-together

https://gamedev.stackexchange.com/questions/44515/how-can-i-attach-a-model-to-the-bone-of-another-model

https://stackoverflow.com/questions/11391852/attach-model-xna

しかし、それは可能だと思います。

これが私のプレーヤーの手の「立方体」に添付された私のコード例です

private void draw_itemActionAttached(Model modelInUse)
    {
        Matrix[] Model1TransfoMatrix = new Matrix[this.player.Model.Bones.Count];
        this.player.Model.CopyAbsoluteBoneTransformsTo(Model1TransfoMatrix);
        foreach (ModelMesh mesh in modelInUse.Meshes)
        {
            foreach (BasicEffect effect in mesh.Effects)
            {
                Matrix model2Transform = Matrix.CreateScale(1f) * Matrix.CreateFromYawPitchRoll(0, 0, 0);

                effect.World = model2Transform * Model1TransfoMatrix[0]; //root bone index
                effect.View = arcadia.camera.View;
                effect.Projection = arcadia.camera.Projection;
            }
            mesh.Draw();
        }
    }
4

1 に答える 1

2

アプローチはさまざまですが、これを行う一般的な方法は、ハンドヘルドかどうかに関係なく、1 つまたは複数のボーンを「equippables」に追加することです。こうすることで、実行時にオブジェクトのボーンをプレイヤーのボーンに追加できるため、目的の場所にアイテムを「装備」できます。

いくつかの読書: http://en.csharp-online.net/XNA_Game_Programming%E2%80%94PlayerWeapon

于 2012-12-19T10:42:14.960 に答える