何时使用混合树与状态机进行动画制作


13

我是一位经验丰富的游戏开发者,最喜欢用3d动画角色制作游戏(在Unity中),并且努力弄清楚何时使用混合树与动画状态机。我从概念上理解了两者,但是在Unity和其他来源的大量教程中都看到了混合树和用于角色动画的动画状态机。我不确定何时/为什么一个人比另一个人更好,希望有人能指出我正确的方向。

我的游戏是第三人称角色扮演游戏rpg a'la WoW或KOTOR或Mass Effect(我知道不同的系统,但视角和战斗风格在较高水平上是相近的)。我有无数动画来制作攻击,格挡,假装,死亡,行走,奔跑,跳跃,射击等,但是我不清楚如何自然地将它们排序。

我已经看到用于运动的混合树在尝试保持角色运动流畅性时对我来说很有意义,但是我不明白如何从该混合树进入攻击状态,到目前为止,我还没有看到任何东西超出运动范围(没有攻击等等)。我需要从运动状态到攻击/死亡/闪避状态制作混合树吗?我是否仅使用状态机就拥有更多控制权?我对状态机有点谨慎,因为它们非常常见,而且我怀疑在不混合的情况下,变态动画排序的潜力更大。

我打算使用Unity字符控制器并编写自己的逻辑脚本来驱动它。对于AI,我将使用内置的导航网格物体代理。角色控制器动画的处理方式是否与AI动画不同?

任何见解都将受到欢迎!

谢谢

Answers:


21

我在Unity中与Mecanim进行了相当多的合作,并且对它的工作原理有很好的了解。

就像您说的那样,混合树几乎绝对是进行运动的方法。混合树通常用于您想要连续混合动画以创建最终输出的情况。就像让玩家控制化身的运行速度。

所有单个操作都可能最好保留为一个单独的状态,您可以将其转换为该状态。根据游戏的激烈程度,您甚至可以考虑使用“ 任意状态”作为出发点,以快速进行跳跃,攻击等,而不必等待其他动画完成。

在运行时从混合树进行混合的关键是使用transitions。使外观看起来很棒没有什么魔术,只有仔细计划并在Unity中预览过渡时进行调整。许多工作都依赖动画师来为成功的过渡奠定基础。

进行过渡时要记住的一点是,找到过渡时看起来不错的平衡,并为玩家提供预期的反馈。您可能会发现快速过渡最适合游戏感觉,而较慢的过渡看起来更好,但会让您的玩家想扔掉控制器。

下面是一个稍微简单的设置,其中的箭头指示过渡的过程。过渡基于输入的条件,在动画结束或满足给定条件时退出。这也意味着一个状态可以根据不同的条件进入其他各种状态。

状态机

您可能会注意到,这很快会变成一大堆“意大利面”,而避免此类混乱的一种方法是利用上图中也包含的Any State

任何国家拥有的能够转换到任何给定的时间什么好处。过渡效果仍然可以用于混合动画,但是,您需要在黑暗中进行更多的工作,以使其外观看起来更加生动。设置时可以从各种状态进行预览。

您没有提到的是Layers,它对于使您的角色受伤或覆盖上半身以携带不同的武器,同时为所有武器的腿使用相同的动画非常有用。图层也可以混合并且可以逐渐调整,例如,角色可能或多或少地受到伤害。另一个示例是将角色手臂悬空(如果角色已投降或其他原因),同时使所有其他动画保持相同。

但是设置一个可靠的动画控制器并不是一件耗时的工作。这需要一些计划,我只能鼓励您尝试设置一个具有两种攻击的简单状态机:一次跳跃,一个空闲和一个步行/跑步混合树。您可能还会发现Unity 5中引入的行为对于控制脚本或与脚本进行交互非常有用。

我有99%的把握,AI的行为方式将与播放器控制器相同,因为通过脚本控制动画从状态到状态的参数是变化的。

摘要

  • 运动的混合树
  • 美国单,定义的动作或简单的循环状态。
  • 子状态,用于组织一系列状态,例如跳跃。
  • 转变为不同的状态之间的混合/转变(状态也可以是共混物树)。
  • 用于覆盖或添加到基本动画的图层

因此,将混合树视为扩展状态,它们也基于参数值起作用。

漫长的漫游,但我希望它能使您对这个问题有所了解:)


感谢您的
出色

太棒了,很乐意为您提供帮助:)
Morten Andersen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.