UE4动画系统:什么是动画通知状态(Anim Notify State)

什么是动画通知状态(Anim Notify State)

先说说名字,动画通知状态听起来好像是一种状态,但实际上也是一种动画通知,所以,老王觉得翻译成“动画状态通知”也许更恰当。

如果你理解了老王前面介绍过的动画通知(见《UE4动画系统:什么是动画通知(Anim Notify)》),那么动画通知状态也不难理解了。二者都是动画调用游戏逻辑的机制动画通知对应动画时间轴上的一个时间点,而动画通知状态对应动画时间轴上的一个时间段

使用情景

在这里插入图片描述

举个格斗游戏的例子吧,假设我们用一个动画序列表现角色的酷炫超必杀,而角色做这个超必杀时
其攻击力和防御力被设计为以某种曲线波动的。

在这里插入图片描述

在整个释放必杀技的过程中甚至还有防御力为零的时刻(这种设计可以让水平高的玩家在最危险的时刻抓住机会反击,提高游戏的刺激感)。要满足这种需求,使用动画通知状态会是一个不错的选择。

动画通知状态的使用方法

动画通知状态,无法像动画通知那样直接在动画时间轴上创建

在这里插入图片描述
那咱们就派生一个AnimNotifyState

定义动画状态通知

在这里插入图片描述
在这里插入图片描述

可以override的4个方法

和动画通知相比,多了Received Notify BeginReceived Notify End以及Received Notify Tick三个方法正好对应着状态机中每个状态的常用方法

GetNotifyName:定义了这个动画通知状态在时间轴上显示的名称。和之前的动画通知一样。

本例中我把显示名设为"My Notify State"

在这里插入图片描述

Received Notify Begin:开始播放这个时间段(上面说过,动画通知状态对应的是时间段)的动画时就会触发这个事件。

  • Mesh Comp网格组件对象
  • Animation动画实例对象
  • Total Duration时间段的总时长

在这里插入图片描述

Received Notify End:结束播放这个时间段的动画时就会触发这个事件。

  • Mesh Comp网格组件对象
  • Animation动画实例对象

在这里插入图片描述

Received Notify Tick:播放这个时间段的动画时每一帧都会触发这个事件

  • Mesh Comp:网格组件对象
  • Animation:动画实例对象
  • Frame Delta Time:与上一帧的间隔时间

在这里插入图片描述

绑定(注册)动画通知状态

接下来我们就可以在动画时间轴上添加刚定义的动画通知状态,然后我们不仅可以调整它的位置,还可以调整它的长度。之前说过,动画通知状态对应的是时间段嘛。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发游戏的老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值