Animation DirectX中的分层动画和在同一网格上处理单独的动画?

Animation DirectX中的分层动画和在同一网格上处理单独的动画?,animation,directx,msdn,hierarchical,Animation,Directx,Msdn,Hierarchical,我在DirectX中有一个分层动画模型,该模型基于以下DirectX示例加载和制作动画: 正如示例一样,它并没有真正深入到我想要的动画的一些细节中。例如,如果我有一个网格,其中有一个运行动画和一个投掷动画作为单独的动画集,那么如何才能使髋部上方的骨骼发生投掷动画,使髋部下方的骨骼发生行走动画 另外,如果我想让这个人向左或向右倾斜,我是否只需要找到髋部的骨骼并将旋转矩阵乘以其矩阵?在这种情况下,我认为矩阵是m_amxbonesoffsets?好的,问题是运行动画应该稍微影响投掷动画。您需要研究的是

我在DirectX中有一个分层动画模型,该模型基于以下DirectX示例加载和制作动画:

正如示例一样,它并没有真正深入到我想要的动画的一些细节中。例如,如果我有一个网格,其中有一个运行动画和一个投掷动画作为单独的动画集,那么如何才能使髋部上方的骨骼发生投掷动画,使髋部下方的骨骼发生行走动画


另外,如果我想让这个人向左或向右倾斜,我是否只需要找到髋部的骨骼并将旋转矩阵乘以其矩阵?在这种情况下,我认为矩阵是m_amxbonesoffsets?

好的,问题是运行动画应该稍微影响投掷动画。您需要研究的是动画混合


我相信Valve写了一篇很好的论文,讲述了多年前他们在反恐斗争中是如何实施的。它不在阀门现场,所以我不确定我是从哪里得到这些内存的…

将多个动画合成为一个动画通常是动画系统的工作,这超出了D3D示例的范围

让我们看看你的两个例子:

跑步和投掷 在这种情况下,可以应用跑步动画中身体下部的动画和投掷动画中身体上部的动画。你会得到一个非常糟糕的结果

如何操作只是知道哪些骨骼在骨骼调色板中的位置(这取决于它们的存储方式和顺序,但本质上并不难。明确的参考应该是生成动画数据的工具的文档)

在实践中,最好使用2个动画的混合。总的来说,这是很难做到的,而且有软件包可以为您做到这一点,e、 g

或者,一个奔跑的家伙投掷的动画与一个站立的家伙投掷的动画完全不同,所以你最好有两个动画

倾向 如果将旋转矩阵应用于根骨骼,则只需旋转整个角色。 现在,如果旋转层次中的下一个骨骼(从脊椎开始),则将使依赖它的所有骨骼以同样的方式旋转。它可能会做你想做的事,但是有一个确定的方法可以找到。试试看