动画同步
概述
动画同步(Animation Syncing)支持基于比例的同步和基于标记的同步。使用该功能后,可以减少两个动画进行混合时的跳变。例如从行走切换到跑步时,使用动画同步后,可以让两个动画的脚步同步。
基于比例的同步
通过添加相同的同步组(Sync Group)可以实现基于比例的动画同步。
基于比例的同步可解决不同长度动画的同步问题。在同一个同步组(Sync Group)中的动画,按照相同的比例值进行播放。例如,总时长不相同的动画,其中一个播放到一半 ,另一个动画也将会播放到它自身的一半。从而可以解决动画混合时因为时长周期不同产生的脚步跳变问题,使得动画混合得更加自然。
在动画编辑器(Animation Editor)中打开需要进行同步的动画资产,在资产细项(Asset Details)面板中的同步组(Sync Group)中输入同一个名称,将这些动画归为同一个组中。
注意:
- 使用同步组(Sync Group)的动画需要有类似的动作
- 在同一组中的动画时长不能相差过大
在行走和跑步动画序列资产的资产细项(Asset Details)面板中,将同步组(Sync Group)的名称设置为同一个。
在动画树编辑器(Anim Tree Editor)中,创建一个状态机节点并连接到最终动画姿势(Final Animation Pose)节点,双击进入到该节点的状态图中,创建行走到跑步的状态迁移。状态机的相关操作可参考状态机节点。
双击walk状态节点,添加walk序列播放节点并连接至最终动画姿势(Final Animation Pose)节点。
双击run状态节点,添加run序列播放节点并连接至最终动画姿势(Final Animation Pose)节点。
在动画参数(Animation Parameter)窗口中,添加一个浮点型参数Speed。
设置walk→run的状态迁移条件为:Speed大于0.1。
设置run→walk的状态迁移条件为:Speed小于0.1。
在动画树编辑器(Anim Tree Editor)上方,将初始对象(Init Object)切换为预览对象(Preview Object),用于后续预览效果。
点击应用(Apply)后,通过在动画参数(Animation Parameter)窗口的参数实例值(Parameter Instance Value)中输入不同的值来切换状态。值的输入参考状态迁移条件的设定。
基于标记的同步
除了可以使用同步组(Sync Group)进行基于比例的同步外,引擎还提供了基于标记的同步功能。
在动画编辑器(Animation Editor)中动画资产的通知(Notify)处可设置同步标记(Sync Marker),在不同动画中的相同动作处添加同步标记(Sync Marker),播放动画时将会根据相同的同步标记(Sync Marker)完成动画同步。
在动画编辑器中的通知(Notify)轨道上右击打开快捷菜单,依次选择添加同步标记(Add Sync Marker) -> 新同步标记(New Sync Marker),在弹出的新同步标记(New Sync Marker)窗口中输入同步标记名称后点击确定(OK)按钮完成创建。
注意:使用同步标记(Sync Marker)的动画须确保它们在同一个同步组(Sync Group)中,引擎只会匹配同一个同步组中的相同同步标记。
根据上述方法在行走和跑步动画中相同的动作处(两脚落地时)添加对应的同步标记(Sync Marker)。
在资产细项(Asset Details)面板中将这两个动画置于同一个同步组(Sync Group)。
将所设置的动画资产全部保存后,在动画树编辑器(Anim Tree Editor)中,切换状态可看到同步后的效果。
效果
未使用同步标记(Sync Marker)和同步组(Sync Group):
使用同步组(Sync Group):
使用同步标记(Sync Marker)和同步组(Sync Group):