Choose your operating system:
Windows
macOS
Linux
同步组 使相关的动画相互保持同步,即使它们长度不一也不例外。例如,可以制作要混合在一起的行走循环和跑步循环,使角色能够流畅地加速或减速。但是,同一个角色的行走循环通常会明显比跑步循环长。在这种情况下,直接将两者混合会产生不自然的结果,比如脚部动画切换时会有很难看的"节拍"动作。
同步组解决这个问题的办法是将一个主要动画节点指定为 领导者 ,并调整所有相关动画的长度,使其与领导者的长度匹配。通常领导者就是具有最大混合权重的节点。随着权重混合,跟随者的权重超过领导者的权重,跟随者就会成为领导者。通过这种方式,两种动画可以流畅地相互配合,提供从一种动作到另一种动作的无缝转换。
但是请注意,由于动画的时长改变,需要考虑某些动画方面的因素。以行走循环和跑步循环的混合为例,两种动画都应该在同一只脚上开始和结束。及早建立这些标准将有助于使所有动画的混合难度大大降低!
组角色:领导者和跟随者
同步助利用组角色的概念工作,以一个动画作为"领导者",而其他所有动画都作为"跟随者"。
领导者 |
|
跟随者 |
|
指定领导者和跟随者的标准很简单,就看哪个动画的混合权重更大,如下例所示:
图像 |
说明 |
---|---|
|
跑步动画,原始大小,设置到一个名为WalkRun的同步组。 |
|
行走动画,原始大小,也设置到名为WalkRun的同步组。 |
|
在此示例中,跑步动画的混合权重将大于行走动画。因为它们在同一个同步组中,所以要按比例缩短行走动画,使其长度与跑步动画相符。 |
|
在这里权重发生了切换,使得行走动画得到了更大的混合权重。这使得跑步动画按比例拉长到行走动画的长度。 |
设置同步组
要设置同步组,请选择"动画图(AnimGraph)"中的动画节点,然后查看 细节(Details) 面板。你将会看到"同步组(Sync Group)"属性。
属性 |
说明 |
---|---|
Group Name(组名称) |
在这里可以设置同步组。通常你会希望所有应该混合在一起的相关动画(例如潜行、行走、跑步、冲刺的身体动作)都在同一个同步组中。 |
Group Role(组角色) |
在这里可以设置组中成员的类型。可用的值是"可以作为领导者(Can Be Leader)"(默认)、"始终作为领导者(Always Leader)"和"从不作为领导者(Never Leader)"。 |
可以在"动画图(AnimGraph)"中的"动画序列(AnimSequence)"和"混合空间(BlendSpace)"节点上设置同步组,也可以在状态机内部设置。
基于标记的动画同步
除了同步组以外,还可以在动画中使用标记来同步动画。
要添加同步标记,在动画序列的 动画通知(通知) 轨迹中,右键单击并选择 添加同步标记(Add Sync Marker) 。
使用同步标记时要考虑的某些元素:
-
只有同一个同步组中的动画才会同步,而且领导者决定了同一个同步组中跟随者的位置。
-
播放速率始终以主动画为准(当前未提供播放速率调节功能)。
-
只有同一个组中所有动画共有的标记才会同步。
-
例如,如果有一个动画缺少"右脚落下"标记,那么在决定该帧的位置时就会忽略其他所有动画中的该标记。
-
-
位置是根据领导者相对于其共有标记的位置而同步的。
-
例如,如果领导者位于左脚标记和右脚标记之间25%的地方,那么跟随者都将同步到各自左脚标记和右脚标记之间25%的位置。
-
-
如果同步组中的动画有足够的匹配标记,就会自动使用基于标记的同步。否则使用原来的调整长度同步行为。
-
动画蒙太奇 也在混出时支持基于标记的同步,因此你可以无缝地过渡到其他动画。
-
可以在"动画蒙太奇(AnimMontage)"中找到同步组设置 资源细节 面板。
-
也可以通过在动画中设置和应用 动画修改器 来自动添加同步标记。