如果你的游戏里有角色,动画系统是绕不过去的。

idle、走路、跑步、跳跃、攻击、受击、死亡……角色的每个动作,都是动画。UE5的动画系统比较庞杂,但核心就是让角色在不同的动画之间平滑过渡,并且能根据游戏逻辑动态切换

这篇文章把UE5动画系统的核心知识讲清楚。

动画资产类型

UE5里有几种动画相关的资产:

  • Animation Sequence(动画序列):一段单独的动画(比如”走路”动画、”跳跃”动画)
  • Blend Space(混合空间):让两个或多个动画根据参数平滑混合(比如根据移动速度,在”走路”和”跑步”之间过渡)
  • Anim Montage(动画蒙太奇):一段可以被打断、可以加通知的动画(比如”攻击”动画,可以在某一帧触发”检测伤害”的逻辑)
  • Anim Blueprint(动画蓝图):控制动画逻辑的蓝图(最核心的动画资产)
  • IK(Inverse Kinematics,反向动力学)设置:让角色的脚贴合地面、手抓握物体

动画蓝图(Anim Blueprint)核心概念

事件图表(Event Graph)

跟普通蓝图的事件图表类似,用来计算动画参数。比如:

  • 获取角色的移动速度(用Get Velocity节点,计算向量的长度)
  • 获取角色是否在空中(用Is Falling节点)
  • 把这些值传递给动画状态机

动画图表(Anim Graph)

这是动画蓝图最核心的部分。在这里搭建动画逻辑——哪些动画状态、怎么过渡、怎么混合。

动画图表里的节点,最终会输出一个Pose(姿势),这个Pose就是最终播放的动画。

状态机(State Machine):动画系统的核心

状态机定义了角色有哪些动画状态,以及怎么在这些状态之间切换

创建一个状态机

  1. 在动画图表里,右键 → State Machine,创建一个状态机节点
  2. 双击状态机节点,进入状态机编辑界面
  3. 右键 → Add State,添加状态(比如IdleWalkRunJump
  4. 右键状态 → Add Rule from Other State,创建状态切换规则

状态切换规则(Transition Rule)

每个状态切换都有一个规则(一条线连接两个状态)。双击这条线,可以编辑规则。

规则本质上是一个Boolean值:

  • 如果返回true,就切换状态
  • 如果返回false,就不切换

比如:从Idle切换到Walk的规则可以是:Speed > 10(移动速度大于10时,开始走路)。

混合时间(Blend Time)

状态切换时,不是瞬间切换的,而是有一个混合时间(比如0.2秒)。这样动画过渡更平滑,不会出现”瞬移”的感觉。

在切换规则里,可以设置Blend Time(混合时间)和Blend Option(混合曲线,比如Cubic让过渡更自然)。

混合空间(Blend Space):让动画过渡更细腻

状态机处理”离散”的状态切换(比如从”站立”到”走路”,是两个截然不同的状态)。但有些情况是”连续”的——比如移动速度从0到100,动画应该从”站立”平滑过渡到”走路”再到”跑步”。

混合空间就是干这个的。

创建1D混合空间

  1. 在Content Browser里右键 → Animation → Blend Space 1D
  2. 选择动画使用的骨骼(比如UE4_Mannequin_Skeleton
  3. 双击打开,设置:
    • Horizontal Axis > Name:轴名称(比如”Speed”)
    • Horizontal Axis > Min/Max:轴的最小值和最大值(比如0到375)
  4. 把动画序列拖到混合空间里对应的位置(比如”Idle”放在0的位置,”Walk”放在150的位置,”Run”放在375的位置)
  5. UE5会自动在它们之间做混合

创建2D混合空间

2D混合空间有两个轴,可以做更复杂的混合。比如:

  • X轴 = 移动速度(0-375)
  • Y轴 = 方向(-180到180度,或者”前进/后退/左移/右移”)

这样可以根据移动速度移动方向,混合出”前走”、”后走”、”左走”、”右走”的动画。

动画蒙太奇(Anim Montage):做”可打断”的动画

状态机里的动画是”循环的”(比如走路动画会一直播,直到切换到其他状态)。但有些动画是”一次性的”(比如攻击动作、受击动作),播完就回到之前的状态。

动画蒙太奇就是用来做这种一次性动画的。

创建和使用蒙太奇

  1. 把一个动画序列右键 → Create Anim Montage
  2. 双击打开,可以编辑:
    • Sections(段落):把蒙太奇分成几段,可以只播其中一段
    • Notifies(通知):在某一帧触发一个事件(比如”攻击”蒙太奇的第10帧,触发”检测伤害”的事件)
    • Branching Points(分支点):让蒙太奇可以在某一点停下来,等待蓝图指令再继续
  3. 在角色蓝图里,用Play Montage节点来播放蒙太奇

IK(反向动力学):让脚贴合地面

默认情况下,角色的脚是按照动画序列摆的——如果地面是斜的,脚可能会”悬空”或者”插到地下”。

IK就是解决这个问题的。 IK让你可以”指定脚应该放在哪里”,而不是”按照动画摆脚”。

在UE5里使用IK

  1. 在动画蓝图的Anim Graph里,添加Two Bone IK节点(用于手臂/腿的IK)或者FABRIK节点(更通用的IK解算器)
  2. 设置Effector Location(目标位置)—— 一般是用射线检测(Line Trace)来检测地面位置,把这个结果作为IK的目标位置
  3. 在角色骨骼里,要确保IK骨骼(比如ik_foot_lik_foot_r)已经设置好了(UE4/UE5的曼尼肯骨骼一般都有)

Sequencer:做动画短片/过场动画

前面讲的都是”实时动画”(游戏过程中,根据玩家输入实时播放的动画)。但如果你要做过场动画(Cutscene)影片,那就需要用Sequencer

Sequencer的核心概念

  • 镜头(Camera Shot):定义每个镜头的位置、角度、运动
  • 关键帧(Keyframe):在时间轴上打关键帧,Sequencer会自动补间
  • 轨道(Track):每个Actor有一条轨道,可以在上面 Key 它的属性(位置、旋转、缩放、材质参数等)

用Sequencer做过场动画的流程

  1. 在关卡里放置要参与表演的Actor(角色、摄像机、道具等)
  2. 打开Cinematics模式(工具栏里的电影图标),创建一个Level Sequence
  3. 在Sequencer里,给每个Actor添加轨道,Key关键帧
  4. 添加摄像机轨道,调整镜头角度和运动
  5. 播放预览,调整节奏
  6. 渲染输出(用Render Movie功能)

招聘需求参考(Boss直聘,2026年6月)

看了40多个”UE5动画”相关职位,总结:

  • 熟练使用动画蓝图:能搭建完整的状态机和混合空间
  • 会用Sequencer:能做过场动画、镜头运动
  • 了解IK:知道怎么让角色脚贴合地面
  • 会导入和使用动作捕捉数据:能把动捕数据转换成UE5的动画序列
  • 加分项:会用Control Rig(UE5的骨骼绑定和动画工具)、会做程序化动画(Procedural Animation)

相关课程: 火星人教育UE5动画系统培训课程,涵盖状态机、混合空间、蒙太奇、IK、Sequencer全流程。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。