Skip to main content

动画通知

概述

通知(Notify)可定位动画序列(Animation Sequence)蒙太奇(Montage)特定的时间点,后续在所添加通知的特定点上设置事件发生。通知在动画序列或蒙太奇中一般添加的是声音和粒子之类的效果,可增添动它们的丰富度,多方面满足创建游戏时产生的需求。

状态通知(State Notify)可以在动画上附加基于关键帧并持续一段时间的通知,逻辑层可以基于状态通知做一些由动作驱动并需要持续一段时间的表现,比如蓄力攻击。非状态通知可以在动画上附加基于关键帧的通知,动画播放到这一帧后,逻辑层可以收到回调,并负载一些额外数据。

添加通知

动画编辑器(Animation Editor)中打开动画序列或蒙太奇,在通知(Notify)轨道空白处右击打开快捷菜单,可创建各种类型的通知。

image-20230608152233879

创建新通知。在通知(Notify)轨道空白处右键,依次选择添加通知(Add Notify)-> 新通知(New Notify),在弹出的新建通知(New Notify)窗口中输入通知名称完成创建。

image-20230608152257086

添加状态通知

状态通知(State Notify)基本与上面所提到的标准通知相同。与之不同的是,它可以设置通知的开始帧、结束帧和所持续的时间。

通知(Notify)轨道空白处右键,依次选择添加通知(Add Notify)-> 新状态通知(New State Notify),在弹出的新建通知(New Notify)窗口中输入通知名称完成创建。

image-20230608153438144

同步标记

同步标记(Sync Marker)用于标记动画同步区间,在不同动画中找到同步动作添加同步标记,拥有相匹配标记的动画将可以完成同步。

添加同步标记

通知(Notify)轨道空白处右键,依次点击添加同步标记(Add Sync Marker) -> 新同步标记(New Sync Marker),在弹出的新建同步标记(New Sync Marker)窗口中输入同步标记名称完成创建。

image-20220906095509830

image-20220909104406070

有关应用同步标记的内容详见动画同步文档。

其它通知

脚步

脚部(Foot Step)通知可将音频与组合体(Actor)进行绑定,在组合体移动时播放对应绑定的音频。若组合体脚下的材质已配置声音,则播放材质的声音;若未配置材质声音,则会播放通知绑定的声音。

创建脚步通知。在通知(Notify)轨道空白处右击打开快捷菜单,依次点击添加通知(Add Notify) -> 脚步(Foot Step)

image-20230608150753959

创建完成:

image-20230608134140091

通知(Notify)轨道上点击脚步(Foot Step)通知,详细面板(Details Panel)中会显示其相关属性。

image-20230620153335651

属性说明
位置(Position)以声源生成点处为基础,调整声源的偏移位置。
角度(Angle)用于调整声源的朝向。
显示调试线(Show Debug Line)用于调试参考,启用后,显示当前踩点和当前材质名。
事件名称(Event Name)用于选择播放的音频文件。
切换(Switches)用于指定播放的音频。
绑定点(Bind Point)声源位置,设置音频绑定在模型何处。
RTPC名称(RTPC Name)实时参数控制的参数名称,用于根据实时参数变化,实时控制各种Wwise对象的特性属性,如音量、音高等。
参数(Parameters)设置实时参数控制的参数值。

有关脚步(Foot Step)通知的应用可参考Wwise声音系统文档的给生态添加脚步声部分。

播放声音

播放声音(Play Sound)通知可给指定动画添加音效,每当执行该动画就会播放所绑定的音效,并可以不断循环播放,如射击声等。播放声音通知也可添加脚步声,但不会有脚步(Foot Step)通知中的材质判断。

创建播放声音通知。在通知(Notify)轨道空白处右击打开快捷菜单,依次点击添加通知(Add Notify) -> 播放声音(Play Sound)

image-20230608150817667

创建完成:

image-20230608134655252

通知(Notify)轨道上点击播放声音(Play Sound)通知,详细面板(Details Panel)中会显示其相关属性。

image-20230608134924429

有关播放声音(Play Sound)通知属性的介绍可参考上述脚步(Foot Step)通知的属性。

播放特效

播放特效(Play Effect)通知可在动画指定帧创建并播放特效。

创建播放特效通知。在通知(Notify)轨道空白处右击打开快捷菜单,依次点击添加通知(Add Notify) -> 播放特效(Play Effect)

image-20230608150838924

创建完成:

image-20230608135415847

通知(Notify)轨道上点击播放特效(Play Effect)通知,详细面板(Details Panel)中会显示其相关属性。

image-20230608135511730

属性说明
位置(Position)用于调整特效播放的位置。
角度(Angle)用于调整特效自身的旋转角度。
缩放(Scale)用于调整特效的缩放。
初始配置(Config Ini)用于选择特效配置文件。
配置名称(Config Name)特效名称。
节点(Node)已弃用。
执行(Followed)已弃用。
循环次数(Loop Count)用于设置循环播放特效的数量。

播放粒子

播放粒子(Play Particle)通知可在动画的指定帧创建并播放粒子。

创建播放粒子通知。在通知(Notify)轨道空白处右击打开快捷菜单,依次点击添加通知(Add Notify) -> 播放粒子(Play Particle)

image-20230608150910470

创建完成:

image-20230608150013549

通知(Notify)轨道上点击播放粒子(Play Particle)通知,详细面板(Details Panel)中会显示其相关属性。

image-20230608140045829

属性说明
位置(Position)用于调整粒子播放的位置。
角度(Angle)用于调整粒子本身的旋转角度。
缩放(Scale)用于调整播放粒子的缩放。
初始配置(Config Ini)用于选择粒子配置文件。
配置名称(Config Name)粒子名称。
节点(Node)已弃用。
执行(Followed)已弃用。
循环次数(Loop Count)用于设置循环播放粒子的数量。

物理操作

物理操作(Physics Operate)通知可在动画指定帧处激活角色布娃娃物理,或开启角色物理动画。

创建物理操作通知。在通知(Notify)轨道空白处右击打开快捷菜单,依次点击添加通知(Add Notify) -> 物理操作(Physics Operate)

image-20230608150948455

创建完成:

image-20230608142217336

通知(Notify)轨道上点击物理操作(Physics Operate)通知,详细面板(Details Panel)中会显示其相关属性。

image-20230608142315879

属性说明
激活(Active)用于控制角色布娃娃模拟。
  • 无(None):不做任何操作。
  • 是(Yes):开启角色布娃娃模拟。
  • 否(No):关闭角色布娃娃模拟。
  • 物理动画(Physics Animation)用于控制角色物理动画。
  • 无(None):不做任何操作。
  • 是(Yes):开启角色物理动画。
  • 否(No):关闭角色物理动画。
  • 碰撞检测

    在角色动画的指定帧区间内,生成开始、更新、结束的碰撞检测通知(Collision Detection Notify)。该通知一般配合LMeleeCollisionComponent组件使用,实现角色近战攻击时的肢体或武器的碰撞检测。

    创建碰撞检测通知。在通知(Notify)轨道空白处右击打开快捷菜单,依次点击添加通知(Add Notify) -> 碰撞检测通知(Collision Detection Notify)

    image-20230608151025305

    创建完成:

    image-20230608143539780

    通知(Notify)轨道上点击碰撞检测通知(Collision Detection Notify)通知,详细面板(Details Panel)中会显示其相关属性。

    image-20230608143621086

    属性说明
    武器组(Weapon Group)与LMeleeCollisionComponent组件上每把武器的武器组(Weapon Group)值一一对应,武器组值相匹配的武器会在碰撞检测通知(Collision Detection Notify)触发时,开启或结束碰撞检测。

    有关碰撞检测通知(Collision Detection Notify)的应用可参考近战(Melee)组件使用说明文档的快速入门部分。

    运动扭曲

    运动扭曲(Motion Warping)通知可在动画的指定区域内进行运动扭曲。

    创建运动扭曲通知。在通知(Notify)轨道空白处右击打开快捷菜单,依次点击添加通知(Add Notify) -> 运动扭曲(Motion Warping),在弹出的新建通知(New Notify)窗口中输入名称后点击确定(OK)按钮完成创建。

    image-20230621132213477

    创建完成:

    image-20230621132250995

    通知(Notify)轨道上点击运动扭曲(Motion Warping)通知,详细面板(Details Panel)中会显示其相关属性。

    image-20230621132446626

    属性说明
    类型(Type)该参数指定应用算法的类型。
    目标名称(Target Name)该参数指定场景中目标的标签名称。
    扭曲平移(Warp Translation)该参数指定是否开启平移的调整。
    扭曲旋转(Warp Rotation)该参数指定是否开启旋转的调整。
    旋转扭曲类型(Rotation Warping Type)该参数指定用于调整旋转的方式。
    • 对齐目标(Align To Target):在过程中与目标保持朝向的一致。
    • 查看目标(Look At Target):在过程中始终朝向目标。
    有关运动扭曲通知的应用可参考[运动扭曲](/Character-and-Skinned-Animation/Examples/Post-Adjustment/Motion-Warping/)文档。

    编辑通知

    移动通知

    在单个轨道内或多个轨道间可通过拖拽通知对它进行位置上的调整。

    单个轨道内:

    多个轨道间:

    调整状态通知

    通知(Notify)轨道中,可通过拖拉状态通知左右两边调整状态通知的持续时间。左侧的拖拉区域是整个文本区域,右侧的则为右侧边缘处(当出现双箭头图标时可拖拉调整结束时间)。

    StateNotify

    通知窗口

    通知(Notify)轨道中的通知和同步标记图标上右键打开相应的编辑窗口,可对它们进行删除(Delete)替换(Replace)等操作。

    通知

    image-20230621133726292

    名称说明
    通知开始时间(Notify Start Time)该通知关键帧处在动画中的时间(单位:秒(s))。
    通知开始帧(Notify Start Frame)该通知关键帧处在动画中的时间(单位:帧)。
    触发权重(Trigger Weight)触发通知的阈值,只有当前动画的权重超过此处设定的触发权重时,动画系统才会触发该通知。
    删除(Delete)删除该通知。
    替换(Replace)可选择其他已存在的通知来替换该通知。

    状态通知

    image-20230621133808370

    名称说明
    通知开始时间(Notify Start Time)该状态通知在动画中的起始时间(单位:秒(s))。
    通知开始帧(Notify Start Frame)该状态通知在动画中的起始时间(单位:帧)。
    触发权重(Trigger Weight)只有当前动画的权重超过此处设定的触发权重时,动画系统才会触发该通知。
    持续时间(Duration)该状态通知所持续的时间。
    通知结束帧(Notify End Frame)该状态通知在动画中的结束时间(单位:帧)。
    删除(Delete)删除该状态通知。
    替换(Replace)可选择其他已存在的状态通知来替换该状态通知。

    同步标记

    image-20230621133908568

    名称说明
    名称(Name)该同步标记的名称。
    通知时间(Notify Time)该同步标记关键帧处在动画中的时间(单位:秒(s))。
    通知帧(Notify Frame)该同步标记关键帧处在动画中的时间(单位:帧)。
    删除(Delete)删除该同步标记。

    管理通知

    通知(Notify)轨道空白处右键,选择管理通知(Manage Notifies)管理状态通知(Manage State Notifies)后,可在详细面板(Details Panel)中删除已存在的通知,也可以修改它们的名称(Name)

    image-20230609133702808