问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

UE5人物角色动画蓝图创建详解

创作时间:
作者:
@小白创作中心

UE5人物角色动画蓝图创建详解

引用
CSDN
1.
https://m.blog.csdn.net/Moving_piont_P/article/details/139465071

本文将详细介绍如何在Unreal Engine 5(UE5)中创建人物角色动画蓝图。从基本的Idle(待机)状态到复杂的发现敌人和攻击状态,文章将通过具体的节点操作和状态机搭建,帮助开发者掌握动画蓝图的创建方法。

创建动画蓝图

首先在角色骨骼网格体上右键创建动画蓝图,进入AnimGraph界面后创建一个状态机(stateMachine)。

Idle(待机)状态

在状态机中创建一个新的状态(State),命名为Idle。为了实现随机播放效果,需要在该状态下新建一个RandomSequencePlayer节点,并在右侧窗口添加几个想要播放的动画。

Walk(行走)状态

在Walk状态下,直接播放walk动画。将跑步动画拉入Walk状态中即可。

停步状态

停步状态的实现需要先判断角色是否在移动。在EventGraph中通过角色获取加速度,当加速度不等于0且速度大于0时,表示角色正在移动。


在Idle状态之上创建一个停步状态,并在Stop中播放停步动画。

触发停步

停步状态的触发条件是当前速度大于一定值且不在移动。在回到Idle状态的条件判断中,只需判断是否在移动即可。


在停步状态中额外添加一个返回状态判断,勾选自动结束。

发现敌人与攻击状态

创建一个负责控制发现敌人、播放发现动作和攻击的状态。进入并创建一个新的状态机(负责三种状态的转变)。

将发现敌人动画和跑步动画连接起来,并在后面创建一个Attack状态。在Attack状态中使用与Idle相同的随机序列播放方式。

在从发现到跑步的条件判断中,设置当发现的动作播放到80%时进入下一个状态(跑步)。通过搜索remain节点来实现这一功能。

状态管理

使用一个Enum枚举来管理不同的状态。创建枚举并添加4个状态(Idle、Walk、Run_Attack、Stop)。

在AI角色蓝图中创建一个该枚举类型的变量。在动画蓝图中,通过EventBlueprintInitializeAnimation节点获取角色蓝图,并在Update中将角色里的枚举变量设置为本地。

状态转换

  • Idle->Walk:判断当前的枚举状态是否是walking
  • Idle->Run_Attack:判断枚举是否running
  • Walk->Run_Attack:判断是否running
  • Run_Attack->Walk:判断是否walking
  • Run_Attack内部:
  • run->Attack:判断是否attack
  • attack->run:判断是否running

在行为树中实现状态管理

由于动画蓝图是根据角色蓝图中的变量做改变,因此需要在行为树上对角色蓝图的变量进行修改。创建一个task,创建一个上面用到的枚举变量,并将其暴露在外部以便修改。

使用该Task时,可以直接在右侧面板修改状态。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号