UE5 基础应用 —— 08 - 动画蓝图 简单使用

发布于:2025-09-13 ⋅ 阅读:(27) ⋅ 点赞:(0)

一、动画蓝图

1.1 创建动画蓝图

动画蓝图 规范命名为 ABP_。

并选择合适的骨骼网格体。

1.2 动画蓝图组成
1.2.1 事件图表

  • Event Blueprint Update Animation:动画蓝图的 Tick
  • Try Get Pawn Owner:返回挂载 ABP 的 Pawn(需要 Cast To ***)

1.2.2 动画图表

1.3 混合空间(动画资产)

混合空间主要用于平滑地过渡和混合多个动画状态,以创建自然、流畅的动画过渡效果。

混合空间 规范命名为 BS_。

1.3.1 创建混合空间

并选择合适的骨骼网格体。

1.3.2 混合空间 1D 小案例

为了实现在锁定视角下角色在四个方向的移动动作,混合空间 1D 设置如下。

  • Name:MoveDir
  • 范围: -180° ~ 180°
  • Grid Divisions:沿 x 轴划分 4 个网格
  • Snap to Grid:吸附对齐
  • 取样平滑 - Weight Speed:使动画过渡自然

其中,按住 Ctrl 并滑动鼠标可查看动画效果。

1.4 状态机

通过状态机,你可以创建各种 状态(State),定义要在这些状态中播放的动画,并创建各类 转换(Transition)来控制何时切换到其他状态。

1.4.1 创建状态机

在动画图表中通过 State Machine 节点创建。

1.4.2 状态机 小案例

在事件图表中编写逻辑。

Get Velocity:得到角色当前的世界速度向量(包括速度和方向)

Get Actor Rotation:得到角色本身的朝向(只关心 Yaw)

Calculate Direction:得到角色移动方向相对角色朝向的夹角

Is Falling:Character Movement 组件实时计算的布尔值。它在离开地面的瞬间就变成 True,触地瞬间变成 False。

创建状态机,同时我们还可以把我们创建的状态机保存起来。

在 MoveStateMachine 中添加状态、给状态添加动画、设置转换条件。

在给状态添加动画时,我们可以添加单个动画、混合空间等(这里状态机也可以,但注意状态机不是动画资产)。同时我们可以根据需求选择是否勾选 Loop Animation。

设置转换条件如下:

当 Speed > 0 时,由 Idle 切换到 Jog。

当 Speed = 0 时,由 Jog 切换到 Idle。

在 JumpStateMachine 中添加状态、给状态添加动画、设置转换条件。

设置转换条件如下:

当角色起跳时,Is Falling 为 True,由 Move 切换到 JumpStart。

JumpStart ——> JumpApex ——> JumpLand 无需设置转换条件,勾选自动播放即可。

当角色触地时,Is Falling 为 False,由 JumpLand 切换到 JumpEnd。

如果角色一落地就 Move,Speed > 0,这时不必傻等落地动画播完,条件立刻为 True,第一时间切回 Move,角色响应更跟手。

Time Remaining:当前动画资产剩余秒数。

Time Remaining(ratio):当前动画资产剩余百分比。

当 Time Remaining < 0.2 时,即使玩家落地后一动不动,只要动画播到尾巴,条件就为 True,保证一定能回到 Move。

    如果角色刚触地又起跳,此时 Is Falling 又为 True。由 JumpEnd 切换到 JumpStart。