Wiki
723 words
4 minutes
虚幻动画
Updated 2025-05-25
为什么需要动画蓝图
比如游戏中远程哥布林的攻击,我们希望骨骼的位置与哥布林手部的位置保持一致。我们需要知道该位置的旋转和位置信息,在手部的位置创建一个插槽
Validated Get
蓝图中可以Variable的Get转换为 Validated Get,会需要接入流程节点。在进行Get之前会先查看是否可用

动画蓝图为什么存在
动画蓝图不是单纯“播放动画”的地方,而是把角色当前状态转换成最终姿势的中间层。
它主要解决:
- 当前角色该播哪段动画
- 多段动画如何混合
- 战斗动作如何覆盖基础移动
- 角色状态如何驱动动画切换
也就是说,角色逻辑负责产出“状态”,动画蓝图负责把状态变成“画面”。
插槽、Montage、状态机的关系
这三个东西经常混在一起,但职责其实不一样。
状态机
负责稳定、持续的状态切换,例如:
- 待机
- 行走 / 奔跑
- 跳跃 / 下落
- 死亡
Montage
负责一次性、段落式动作,例如:
- 普攻
- 技能释放
- 受击
- 处决
Slot
负责把 Montage 插到姿势树的哪个位置。
例如:
UpperBody:只覆盖上半身FullBody:覆盖全身
所以关系可以概括成:
- 状态机负责基础持续状态
- Montage 负责事件型动作
- Slot 负责覆盖范围
为什么插槽很重要
如果没有 Slot,技能动作和基础移动往往只能二选一。
有了插槽后,就可以实现:
- 下半身继续跑
- 上半身播放施法或攻击
这对远程角色、施法角色尤其重要。
Validated Get
蓝图里的 Validated Get 很适合处理动画蓝图这种“引用不一定总是有效”的场景。
它的价值在于:
- 在取变量前先做一次有效性判断
- 避免动画蓝图里空引用直接报错
- 让状态获取逻辑更安全
动画蓝图经常会取:
- Owning Pawn
- Character
- Movement Component
- Combat Component
这些引用都值得谨慎处理。
调试动画时看什么
遇到动画不对时,我一般先分三层看:
状态层
- 速度、方向、是否在空中这些参数对不对
图结构层
- 状态机有没有进入正确状态
- Slot 有没有接到正确位置
- Montage 有没有真的在播
资源层
- 动画资源本身是否正确
- 骨骼是否匹配
- 根运动、通知、曲线是否配置正确
实践经验
- 基础移动优先交给状态机和 BlendSpace
- 技能动作优先交给 Montage
- 需要局部覆盖时,先想 Slot 放在哪一层
- 动画问题很多时候不是动画错了,而是驱动参数错了