【问题标题】:Hierarchical animations in DirectX and handling seperate animations on the same mesh?DirectX 中的分层动画和处理同一网格上的单独动画?
【发布时间】:2011-01-13 08:20:07
【问题描述】:

我在 DirectX 中有一个分层动画模型,它根据以下 DirectX 示例加载和动画:http://msdn.microsoft.com/en-us/library/ee418677%28VS.85%29.aspx

与示例一样好,它并没有真正涉及我想要的动画的一些细节。例如,如果我有一个网格,它有一个跑步动画和一个投掷动画作为单独的动画集,我怎样才能让臀部以上的骨骼发生投掷动画,而臀部以下的骨骼发生行走动画?

另外,如果我想让这个人向左或向右倾斜,我是否只需要找到臀部的骨头并通过它的矩阵多重播放一个旋转矩阵?在这种情况下,我认为矩阵是 m_amxBoneOffsets?

【问题讨论】:

    标签: animation directx msdn hierarchical


    【解决方案1】:

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

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

    跑步和投掷

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

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

    实际上,最好混合 2 个动画。通常,这很难,并且存在为您执行此操作的软件包。 Gamebryo,例如

    或者,一个跑步的人投掷的动画与一个站立的投掷的人有很大的不同,所以你最好有两个动画。

    倾斜

    如果您将旋转矩阵应用于根骨骼,您只需旋转整个角色。 现在,如果您旋转层次结构中的下一个骨骼(从脊椎),您将获得所有依赖它的骨骼以同样旋转。它可能会做你想做的事,但有一种确定的方法可以找出答案。试试看!

    【讨论】:

      【解决方案2】:

      问题是跑步动画应该稍微影响投掷动画。您需要研究的是动画混合

      我确信 Valve 写了一篇很好的论文,介绍了他们多年前在 Counter-strike 中是如何实现它的。虽然它不在阀门网站上,所以我不确定我从哪里得到这些记忆......

      【讨论】:

        猜你喜欢
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-05
        • 1970-01-01
        • 1970-01-01
        • 2017-07-24
        • 2017-07-11
        相关资源
        最近更新 更多