这个XNA 4 Morph目标动画有什么问题

时间:2012-11-12 15:27:33

标签: c# animation xna

我在Youtube上找到了XNA 3 Morph目标动画的演示:

http://www.youtube.com/watch?v=e6PLtA7wgg0

以下是下载链接:

http://mvinetwork.co.uk/permanent/morphtargets/MorphTargetAnimation.zip

此项目在XNA 3(VS2008)

中正常工作

enter image description here

然后我尝试将其升级到XNA 4(VS2010)

enter image description here

我知道有什么不对,有人能从技术上告诉我出了什么问题吗?

欢迎使用任何提示,关键字。

您可以在此处找到我升级的项目:

http://code.google.com/p/stack-overflow-questions/downloads/list

1 个答案:

答案 0 :(得分:2)

问题似乎是动画的计算错误。 Morph-Targets通常具有介于0f-1f之间的值,具体取决于变形的强度。当计算错误时,它可能会上升到更高的水平。在计算多个变形目标之间的混合时也可能是个问题。

简单变形的一些数学代码:

  

vertexPosition =((morphVertex - originalVertex)* morphValue)+ originalVertex

现在,如果你想在不同的变形目标之间变换,a.e。对于说话角色,您必须为每个动画计算morphValue

如果此代码错误,顶点可能会在不应该的位置结束。想象一下以下示例(仅限One Axis):

  

morphVertexResult [0] =(((1f - 0.2f)* 0.6f)+ 0.2f)= 0.68f
  morphVertexResult [1] =(((0.5f - 0.2f)* 0.7f)+ 0.2f)= 0.41f
  vertexPosition = morphVertexResult [0] + morphVertexResult [1] = 1.09f

在这种情况下,您获得的值为1.09f,但期望值必须介于1f0.2f之间。正确的计算有点复杂,上次我使用变形目标时,我从3Ds Max中获取变形值,并且它们已经被标准化。