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

UE5人物角色动画蓝图制作教程

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

UE5人物角色动画蓝图制作教程

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

本教程将详细介绍如何在Unreal Engine 5(UE5)中为人物角色创建动画蓝图。从基本的移动、待机状态到更复杂的发现敌人和攻击动作,通过状态机和随机序列播放器等工具,实现角色动画的流畅切换。

创建动画蓝图

首先在角色骨骼网格体上右键创建动画蓝图:

进入AnimGraph界面,创建一个状态机(stateMachine)。

Idle状态

在状态机中创建一个新的状态(State),命名为Idle。为了让待机状态更加自然,可以选择几个动画随机播放。

进入Idle状态,在右侧窗口添加几个想要播放的动画:

Walk状态

在Walk状态中,直接播放walk动画:

进入Walk状态,拉入跑步动画:

停步状态

首先需要判断角色是否在跑步。在EventGraph中通过角色获取加速度,加速度不等于0并且速度大于0就代表在移动:


在Idle状态之上创建一个停步状态,只需要播放停步的动画即可。

触发停步

在进入停步状态的条件判断中,判断当前速度大于一定值并且不是在移动即可。

回到Idle状态

在回到Idle的状态条件判断中,判断是否在移动即可:

再额外添加一个返回状态判断,勾上自动结束。

发现敌人、攻击状态

创建一个负责控制发现敌人,播放发现动作,攻击的状态:

进入并创建一个新的状态机(负责三种状态的转变),拉入发现敌人动画和跑步动画,直接连起来。再后面创建一个状态Attack,在里面使用跟Idle一样的随机序列播放:

进入从发现到跑步的条件,这里设置当发现的动作播放完百分之80就可以进入下一个(跑步):

管理状态

使用一个Enum枚举来管理不同的状态,创建枚举,添加4个状态。在AI角色蓝图中创建一个这个枚举类型的变量。在动画蓝图中,使用EventBlueprintInitializeAnimation(当初始化)来获取角色蓝图:

在Update中把角色里的枚举变量设置为本地:

Idle->Walk状态切换

在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号