第三人称角色动画
配置角色运动动画
在UE5里为第三人称角色制作动画,核心是理解动画蓝图(Animation Blueprint)。它负责根据角色的状态(如速度、是否在空中)来决定播放哪段动画,并让过渡流畅自然。
简单来说,整套系统的工作流通常包含这几个关键部分:
创建混合空间,在水平坐标中配置好角色的移动速度,动画平滑。将移动资产添加到混合空间中。混合空间之所以叫混合空间,是因为它能把多个动画混合在一起,组成一套完整的角色动画,让它们之间能够进行一个丝滑的过渡。
创建动画蓝图,将混合空间添加到动画蓝图中。通过事件图表来实施将速度传递进混合空间播放器,从而播放动画。
- 在获取pawn拥有者后添加获取移动组件,因为角色的速度是存放在这里的。在获取一个速度(会记录角色往哪个方向移动),为了把这个方向过滤掉,所以还要添加一个获取向量长度的节点(XY),并将输出的参数保存起来,创建一个变量speed。
将获取到的速度传递给混合空间播放器,从而完成配置。
- 完成后记得将动画蓝图与角色绑定。
角色跳跃动画
跳跃不是单纯地播放动画,而是由“起跳 ➡ 空中 ➡ 着陆”三个状态组成的连贯动作序列。
基础操作: 在input中添加跳跃输入,并将值类型设置为布尔值,因为跳跃是一个开关,要么发生,要么不发生。在操作映射输入中绑定跳跃按键。
利用动画蓝图中的状态机,将跳跃拆分成三个子状态,各个子状态之间进行过渡。
Jump Start(起跳):触发于角色离开地面的瞬间(Is Falling)和在z轴上有一个速度(Z Speed)的时候,播放起跳动画。两个条件用and连接。
Jump Loop(空中):触发于角色在空中的时候,播放空中动画。在角色完成起跳动作后,通过获取原状态中动画的剩余时间(<=0.1)来决定播放时间。
Jump End(着陆):触发于角色着陆的时候,播放着陆动画。在空中状态动画播放完毕后,用not与is falling来决定播放着陆动画。如果角色落地,则is falling输出值为false,经过not反转成true,从而触发着陆动画。
最后,还要将Jump End与原始状态连接起来。在过度条件中用speed(>=1),z speed(>=1)和动画剩余时间(<=0.1))与or连接,来让角色从跳跃恢复到初始状态。





