UE5人物角色动画蓝图创建详解
UE5人物角色动画蓝图创建详解
本文将详细介绍如何在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时,可以直接在右侧面板修改状态。