同步组

通过同步组,你可以让长度不一的动画保持同步。

Windows
MacOS
Linux

同步组 使相关的动画相互保持同步,即使它们长度不一也不例外。例如,可以制作要混合在一起的行走循环和跑步循环,使角色能够流畅地加速或减速。但是,同一个角色的行走循环通常会明显比跑步循环长。在这种情况下,直接将两者混合会产生不自然的结果,比如脚部动画切换时会有很难看的“节拍”动作。

同步组解决这个问题的办法是将一个主要动画节点指定为 领导者,并调整所有相关动画的长度,使其与领导者的长度匹配。通常领导者就是具有最大混合权重的节点。随着权重混合,跟随者的权重超过领导者的权重,跟随者就会成为领导者。通过这种方式,两种动画可以流畅地相互配合,提供从一种动作到另一种动作的无缝转换。

但是请注意,由于动画的时长改变,需要考虑某些动画方面的因素。以行走循环和跑步循环的混合为例,两种动画都应该在同一只脚上开始和结束。及早建立这些标准将有助于使所有动画的混合难度大大降低!

组角色:领导者和跟随者

同步助利用组角色的概念工作,以一个动画作为“领导者”,而其他所有动画都作为“跟随者”。

领导者

  • 提供所有跟随者使用的主动画长度。

  • 执行它的所有通知。

跟随者

  • 按比例调整其动画长度,使它与领导者相符。

  • 抑制其通知,服从领导者的通知。

指定领导者和跟随者的标准很简单,就看哪个动画的混合权重更大,如下例所示:

图像

说明

diagram_RunAnimation.png

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

diagram_WalkAnimation.png

行走动画,原始大小,也设置到名为WalkRun的同步组。

diagram_walkAnimationScaledDown.png

在此示例中,跑步动画的混合权重将大于行走动画。因为它们在同一个同步组中,所以要按比例缩短行走动画,使其长度与跑步动画相符。

diagram_RunAnimationScaledUp.png

在这里权重发生了切换,使得行走动画得到了更大的混合权重。这使得跑步动画按比例拉长到行走动画的长度。

设置同步组

要设置同步组,请选择“动画图(AnimGraph)”中的动画节点,然后查看 细节(Details) 面板。你将会看到“同步组(Sync Group)”属性。

AnimationSyncGroup.png

属性

说明

Group Name(组名称)

在这里可以设置同步组。通常你会希望所有应该混合在一起的相关动画(例如潜行、行走、跑步、冲刺的身体动作)都在同一个同步组中。

Group Role(组角色)

在这里可以设置组中成员的类型。可用的值是“可以作为领导者(Can Be Leader)”(默认)、“始终作为领导者(Always Leader)”和“从不作为领导者(Never Leader)”。

可以在“动画图(AnimGraph)”中的“动画序列(AnimSequence)”和“混合空间(BlendSpace)”节点上设置同步组,也可以在状态机内部设置。

基于标记的动画同步

除了同步组以外,还可以在动画中使用标记来同步动画。

AddSyncMarker.png

要添加同步标记,在动画序列的 动画通知(通知) 轨迹中,右键单击并选择 添加同步标记(Add Sync Marker)

使用同步标记时要考虑的某些元素:

  • 只有同一个同步组中的动画才会同步,而且领导者决定了同一个同步组中跟随者的位置。

  • 播放速率始终以主动画为准(当前未提供播放速率调节功能)。

  • 只有同一个组中所有动画共有的标记才会同步。

    • 例如,如果有一个动画缺少“右脚落下”标记,那么在决定该帧的位置时就会忽略其他所有动画中的该标记。

  • 位置是根据领导者相对于其共有标记的位置而同步的。

    • 例如,如果领导者位于左脚标记和右脚标记之间25%的地方,那么跟随者都将同步到各自左脚标记和右脚标记之间25%的位置。

  • 如果同步组中的动画有足够的匹配标记,就会自动使用基于标记的同步。否则使用原来的调整长度同步行为。

  • 动画蒙太奇 也在混出时支持基于标记的同步,因此你可以无缝地过渡到其他动画。

    • 可以在“动画蒙太奇(AnimMontage)”中找到同步组设置 资源细节 面板。

也可以通过在动画中设置和应用 动画修改器 来自动添加同步标记。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback