文章目录
- 什么是动画通知(Anim Notify)?
- 动画通知的使用方法
- 1. 直接在动画编辑器中添加动画通知
- 2. 创建可复用的动画通知类(Anim Notify Class)
- 补充
什么是动画通知(Anim Notify)?
动画通知就是UE4的动画回调事件,它会被绑定(注册)到动画时间轴的时间点上(可以精确到毫秒),当动画播放到该点就会触发事件并执行我们想要的操作。常见的使用情景比如:在奔跑动画中,我们想让角色脚部和地面接触的时刻播放音效。
如果没有动画通知,我们必须人工计算出这些时间位置,然后在那个时间通执行相应程序。这样很难做到精确,而且效率极低,最头疼的是一旦动画的长短节奏有了变化,一切又要重新计算。
动画通知的使用方法
1. 直接在动画编辑器中添加动画通知
在UE4的动画编辑器中的时间轴上,可以找到一个名为Notifies
的区域,Notifies
的下面是用来管理动画通知的轨道Track
添加动画通知,必须把鼠标放到Notifies
的范围内,然后在相应的时间点右键调出添加菜单,输入动画通知的名字(本例中命名为:PlayStepSound)就可以了
动画通知的位置是可以调节的
接下来,我们就可以在使用了跑步动画的动画蓝图中调用PlayStepSound
事件了
实际上,UE4已经为我们预设了很多种动画通知以满足播放音效,粒子特效这样的常见需求
比如我们添加一个预设的PlaySound,可以直接在它的细节面板指定音效文件,连编程都省了。
有朋友可能奇怪,类似PlaySound
这样的“预设动画通知”是如何定义的,下面的部分咱们就来介绍一下。
2. 创建可复用的动画通知类(Anim Notify Class)
这些“预设动画通知”叫动画通知类(Anim Notify Class),是UE4提供的一种可复用的动画通知机制
自定义一个动画通知类
动画通知类没有事件图
两个需要override的方法是动画通知类的关键
Received_Notify
是当该事件触发时执行的逻辑
-
Mesh Comp
:网格组件对象 -
Animation
:动画实例对象
GetNotifyName
定义了这个动画通知在时间轴上显示的名称
在动画编辑器中添加我们自定义的可复用动画通知
补充
动画通知在动画编辑器的细节面板上还有一些参数,大家可以了解一下,需要时使用。