Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 把我的武器放在骨头后面_C#_Animation_Xna - Fatal编程技术网

C# 把我的武器放在骨头后面

C# 把我的武器放在骨头后面,c#,animation,xna,C#,Animation,Xna,我正试图展示一件武器,它跟随着一块用XNAnimation制作动画的骨骼。 我的武器跟随骨骼,但我需要应用偏移,因为武器在手上的位置不好,我有一个屏幕打印: 事实上,弯刀离我们很远。。。多亏了这个矩阵,我才画出来: public Matrix GetBoneMatrix(string boneName, float scale) { int index = skinnedModel.Model.Bones[boneName].Index;

我正试图展示一件武器,它跟随着一块用XNAnimation制作动画的骨骼。 我的武器跟随骨骼,但我需要应用偏移,因为武器在手上的位置不好,我有一个屏幕打印:

事实上,弯刀离我们很远。。。多亏了这个矩阵,我才画出来:

        public Matrix GetBoneMatrix(string boneName, float scale)
    {
        int index = skinnedModel.Model.Bones[boneName].Index;

        Matrix boneLocal = animationController.SkinnedBoneTransforms[index];

        boneLocal =     Matrix.CreateTranslation(new Vector3(0f))
                        * Matrix.CreateScale(scale)
                        * Matrix.Invert(skinnedModel.SkeletonBones[index].InverseBindPoseTransform)
                        * animationController.SkinnedBoneTransforms[index]
                        * _rotation 
                        * Matrix.CreateTranslation(_position);

        return boneLocal;
    }
我在绘图函数中使用此函数:

foreach (ModelMesh mesh in weap.GetModel(weap._selectedWeapon).Meshes) 
        {
            foreach (BasicEffect effect in mesh.Effects)  
            {
                // Draw the weapon thanks to bones position
                effect.World = _handAnimation.GetBoneMatrix("hand_R", 0.02f);

                effect.View = view;
                effect.Projection = projection;
            }
            mesh.Draw();
        }
我没有找到如何正确定位武器。。。 如果你有任何想法:)


谢谢你的回答,我为我的英语道歉

很好!是否导出原点居中的模型?否则,每次渲染它时,它都会有一个偏移量。谢谢:我从9月1日起就在它上面了。我在正常情况下从混合器的O-O-O位置导出,我不需要创建偏移,但我做到了:)它工作得很好,非常感谢:D