Wiki
723 words
4 minutes
虚幻动画
Updated 2025-05-25

为什么需要动画蓝图#

比如游戏中远程哥布林的攻击,我们希望骨骼的位置与哥布林手部的位置保持一致。我们需要知道该位置的旋转和位置信息,在手部的位置创建一个插槽

Validated Get#

蓝图中可以Variable的Get转换为 Validated Get,会需要接入流程节点。在进行Get之前会先查看是否可用 虚幻动画.png

动画蓝图为什么存在#

动画蓝图不是单纯“播放动画”的地方,而是把角色当前状态转换成最终姿势的中间层。

它主要解决:

  • 当前角色该播哪段动画
  • 多段动画如何混合
  • 战斗动作如何覆盖基础移动
  • 角色状态如何驱动动画切换

也就是说,角色逻辑负责产出“状态”,动画蓝图负责把状态变成“画面”。

插槽、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 放在哪一层
  • 动画问题很多时候不是动画错了,而是驱动参数错了
虚幻动画
https://fuwari.vercel.app/wiki/unreal/虚幻动画/
Author
Qingswe
Published at
2025-05-25
License
CC BY-NC-SA 4.0