您当前的位置: 首页 >  ue4

开发游戏的老王

暂无认证

  • 2浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

开发游戏的老王 发布时间:2020-12-27 21:28:27 ,浏览量:2

文章目录
      • 什么是动画通知状态(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:与上一帧的间隔时间

在这里插入图片描述

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

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

在这里插入图片描述

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0425s