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