目录
前言
在上一篇文章基础上(【UE5.1 角色练习】01-使用小白人蓝图控制商城角色移动)继续实现角色的慢走、快速跑以及蹲伏功能
步骤
一、慢走
- 打开项目设置,添加一个操作映射,这里按住Shift来使角色走路
- 打开我们控制的角色的蓝图,添加如下节点,这里我们只需限制行走速度,动画蓝图会自动根据我们此时的速度来播放相应的移动动画。
此时效果如下,可以明显看到跑步与走路的对比
二、快速跑
- 在项目设置中再添加一个操作映射
- 同样可以通过修改最大行走速度实现角色快速移动
- 我们还需要将跑步的动画变快。打开混合空间1D,将最大轴值改为1000
我们之前的三个动画的坐标分别在0、300、600
我们需要在坐标轴的1000处再添加一个跑步的动画序列,这里的跑步动画可以和600处的动画是一个动画
只要将1000处的动画的比率缩放改大一点即可,此时可以在预览中看到角色在速度1000处时的步伐频率更快
此时快速跑效果如下:
三、蹲伏
- 在项目设置中继续添加一个操作映射
- 在角色事件图表中继续添加蹲伏功能
选中角色移动组件,勾选"可蹲伏"
我们可以看到默认的最大蹲伏行走速度为300cm/s
- 下面还需要蹲伏的动画,找到小白人蹲伏的动画序列(一个是原地蹲伏,一个是蹲伏行走)
双击这两个动画序列,然后使用"SK_Man_Skeleton"骨骼来替换这两个动画序列
- 打开其中一个动画序列,创建一个混合空间1D
设置最大轴值为300
将两个蹲伏动画拖入坐标轴
- 在动画蓝图中添加一个蹲伏的状态
添加一个布尔类型的变量用于表示当前是否需要蹲伏
双击打开"Idle"到"Crouch"的条件
值是True就蹲伏
打开"Crouch"到"Idle"的条件
当布尔值为false时执行该条件
右半部分同理
打开"Crouch"节点
通过行走速度控制混合空间输出蹲伏动画
那么如何来设置布尔变量"IsCrouch"的值呢?我们可以在动画蓝图的事件图表中设置
通过"正在蹲伏"方法来设置"IsCrouch"为True还是False
此时运行可以看到蹲伏功能可以正常使用: