目录
1.6.1 Layered blend per bone(骨骼分层混合)
一、动画蓝图
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.3.2 混合空间 2D 小案例
其实我感觉混合空间 2D 更像一个容器。。。


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。
【重点1】这里在设置 Move Dir 时,前面为什么要加一个判断语句呢?
因为这里有一个不起眼的小bug:角色停下时 Velocity 为零,导致 CalculateDirection 返回错误方向(0),从而一直让动画误判为“向前停”。加 Speed > 0 的判断是为了在停下时“冻结”方向,避免错误更新。
【重点2】注意角色跳跃时也有 z 轴的速度,我在案例 1.3.2 中曾经忽略了这一点。需要使用 Vector Length XY 节点(忽略 z 轴速度)。

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

在 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):当前动画剩余百分比。

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

这样我们的动画逻辑就制作好啦,当然控制角色真实地走、跑、跳,还需要在蓝图中创建实际操作。

1.4.3 案例二 —— 男剑士
在事件图表中编写逻辑。与案例一相同,不做赘述。
创建状态机,同时我们还可以把我们创建的状态机保存起来。

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

设置转换条件如下:
当 Speed > 0 时,由 Idle 切换到 Walk。

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

当 Speed > 220 时,由 Walk 切换到 Run。

当 Speed <= 200 时,由 Run 切换到 Walk。

在 JumpStateMachine 中添加状态、给状态添加动画、设置转换条件。
此处略。
这样我们的动画逻辑就制作好啦,当然控制角色真实地走、跑、跳,还需要在蓝图中创建实际操作。


【补充】男剑士有两个切换状态的动画蒙太奇,内部有通知负责更新 bool 变量(用于切换正常 / 持剑状态)和更换武器插槽。

1.5 动画蒙太奇
动画蒙太奇 规范命名为 AM_。
在动画蒙太奇中,动画资产以 组(Groups) 和 插槽(Slots) 分类。其中,组和插槽是 全局级别,不同的动画蒙太奇(同骨骼)都可以访问。

1019

被折叠的 条评论
为什么被折叠?



