同步组

概述

同步组 用于保持可能具有不同长度的相关动画同步。 比如,您可能有个循环走动动画和跑动动画,您想把它们混合到一起,以便角色可以平滑地加速或减速。 但是,如果这些动画的长度不一样,比如走动动画长度比跑动动画长很多的情况。 在这种情况中,直接将一个动画混合到另一个动画会产生不自然的结果,脚部动画切换时出现难看的“拍打”现象。

Sync Groups (同步组)通过使得一个主要的动画节点作为 Leader(主导者) ,所有其他相关动画将简单地缩放它们的时间长度来和主导者的时间长度相匹配。 一般,主导者是混合权重最大的节点。 随着权重混合,当跟随动画的权重超过主导动画的权重时,跟随动画 变为 主导动画。 通过这种方式,两个动画可以平滑地进行协作,产生从一个运动到另一个运动的无缝变换。

但是,应该注意的是,由于动画的时间是变化的,所以需要对某些动画进行一定的考虑。 比如,在混合两个不同长度的走动动画和跑动动画的例子中,您会想确保您的动画全都从同一只脚上开始及结束。 提前建立这些规则有助于使得所有动画进行更加平滑的混合!

团队角色: 主导者和跟随者

同步组是基于团队角色这个概念的,在这里,一个动画是 主导者 ,而所有其它动画是 跟随者

Leader(主导者)
  • 提供了所有跟随着使用的主要动画长度

  • 执行它的所有通知

Follower(跟随者)
  • 缩放其动画长度使其和主导动画长度相匹配

  • 禁用它的通知,延迟处理,而是先执行主导者的通知

通过比较哪个动画具有较大的混合权重,来简单地指定主导者和跟随者,正如下面的示例中所示:

图片 描述

diagram_RunAnimation.png

跑动动画,原始大小,设置为一个名称为 WalkRun 的同步组。

diagram_WalkAnimation.png

走动动画,原始大小,同样设置为一个名称为 WalkRun 的同步组。

diagram_walkAnimationScaledDown.png

在这个实例中,跑动动画的混合权重比走动动画的混合权重大。 由于它们在同一个同步组中,所以走动动画会缩短来和跑动动画的长度相匹配。

diagram_RunAnimationScaledUp.png

这里,权重情况已经发生改变,以便走动动画可以收到更大的混合权重。 这会导致跑动动画会增长来匹配走动动画的长度。

设置同步组

要想设置同步组,请在动画图表中选择该动画节点,并查看 详细信息 面板。 您将会看到同步组的属性。

AnimationSyncGroup.png

属性 描述
Group Name(组名称) 这是您输入同步组名称的地方。 一般,您将会把所有要混合到一起的相关动画(比如潜行、走动、跑动、疾跑的躯体动作)都放置到同一个同步组中。
团队角色 您可以在其中设置组中的成员类型(潜在的领导者,总是跟随者,等等...)

同步组可以在动画图表中的动画序列和混合空间节点中进行设置,同时也可以在状态机中进行设置。