中EN
概念页

动画蓝图与动画系统

Animation Blueprint & Animation System

UE5 角色动画以动画蓝图 (Animation Blueprint) 为核心:它每帧为骨骼网格体 (Skeletal Mesh) 计算最终姿势。动画蓝图内部用状态机 (State Machine) 组织“何时播什么”,用混合空间 (Blend Space) 按速度、方向等参数连续混合,用蒙太奇 (Animation Montage) 在插槽 (Slot) 中插播攻击、交互等一次性动作,用 Control Rig 做程序化骨骼控制(如贴地)。算出的骨骼姿势最终交给蒙皮 (Skinning) 驱动顶点。

整体结构

下图是一个典型角色的动画求值链:事件图更新变量,动画图中状态机(内含混合空间)产生基础姿势,插槽节点允许蒙太奇覆盖,Control Rig 节点再做程序化修正,最终姿势输出到骨骼网格体进行蒙皮。

flowchart LR
  EG["事件图:读取速度/方向等变量"] --> SM
  subgraph AG["动画图 AnimGraph"]
    SM["状态机<br/>Idle/Locomotion/Jump"] --> SLOT["Slot 插槽<br/>蒙太奇插入点"]
    SLOT --> CR["Control Rig 节点<br/>贴地/接触点"]
    CR --> OUT[Output Pose]
  end
  BS["混合空间"] -."被状态内引用".-> SM
  MT["蒙太奇 Montage"] -."播放到".-> SLOT
  OUT --> SK["骨骼网格体蒙皮"]

图中实线为姿势流向,虚线表示资产被引用或播放到某节点。蒙皮本身的数学(线性混合蒙皮等)见 顶点混合与蒙皮;表情等逐顶点形变见 变形动画。

动画蓝图 (Animation Blueprint)

动画蓝图是控制骨骼网格体动画的专用蓝图,在动画蓝图编辑器中混合动画、控制骨骼、编写决定每帧最终姿势的逻辑。创建时必须指定目标骨架 (Skeleton),可选模板动画蓝图或父类以做继承。要生效,需在骨骼网格体上把 Animation Mode 设为 Use Animation Blueprint 并把 Anim Class 设为该资产。其他特性包括链接动画实例 (Linked Anim Instances) 与作为蒙太奇入口的插槽。(Animation Blueprints)

状态机 (State Machine)

状态机是动画图中的子图,主要把动画与移动状态(待机、走、跑、跳)对应起来,避免把复杂混合全堆在一个动画图里。(State Machines)

元素作用要点
入口 (Entry)定义默认状态通常是 Idle
状态 (State)自带一层动画图,产出该状态的姿势只有激活时才执行其逻辑;Always Reset on Entry 决定重入时是否从头播
转换 (Transition)状态间的有向连接与规则单向,来回需要两条
导管 (Conduit)一对多、多对一、多对多的共享转换规则默认返回 false;可作入口以实现可变默认状态
状态别名 (State Alias)合并多个状态共有的转换,减少连线被勾选的状态共享同一套规则和混合时长;Global Alias 适合攻击等有限时长状态

状态机属性中,Max Transitions Per Frame 设为 1 可防止同一帧多个转换同时成立造成的竞争;Skip First Update Transition 控制初始化时是否直接跳到已满足条件的状态而不混合。状态还能在进入、离开、完全混合时发出骨架通知 (Skeleton Notify),在事件图中响应。(State Machines)

混合空间 (Blend Space)

混合空间是把多个动画或姿势作为样本 (Sample) 放到一维或二维图上的资产,运行时按各轴输入值在样本间插值,例如以速度和方向两轴混合八方向移动。(Blend Spaces)

类型说明
Blend Space / Blend Space 1D基础混合,常作为基础层
Aim Offset / Aim Offset 1D样本是网格空间叠加 (Mesh-Space Additive) 动画,用于瞄准/注视,节点需要输入一个基础姿势

关键设置(Blend Spaces):

  • 默认用三角剖分 (Triangulation) 混合,比旧的网格模式 (Use Grid) 更精确;网格模式一般只在需要 Wrap Input 等特殊布局时用。编辑器会把过细的三角形标红提示调整。
  • Wrap Input 让轴循环(如 −180°~180°),两端动画应相近以免跳变。
  • Smoothing Time / Type(含 Spring Damper)平滑轴输入的变化;Weight Speed 限制样本权重变化速度(2.0 表示半秒从 0 到 1)。官方提示二者一般不要同时用。
  • Notify Trigger Mode 决定混合时哪些样本的动画通知触发(全部 / 权重最高 / 无),避免脚步声重复等问题。

混合空间本质上是在参数空间中对姿势做重心插值,与 顶点混合与蒙皮 中按权重混合骨骼变换是同一类思想在不同层级的应用。

动画蒙太奇 (Animation Montage)

蒙太奇把多个动画序列组合成一个资产,并通过蓝图控制播放;可划分段 (Section),运行时按逻辑以任意顺序跳转(如连招的起手、循环、收招)。(Animation Montage)

  • 插槽与插槽组 (Slot / Slot Group):插槽占据网格体的全部或一部分;蒙太奇中的动画播放到动画蓝图中对应的 Slot 节点。同一插槽组内同一插槽的序列会互相覆盖;用上半身、下半身两个插槽可同时播放不同动画(边跑边换弹)。同一插槽内不要让动画重叠;多插槽时各轨总时长最好一致。(Animation Montage)
  • 子蒙太奇 (Child Montage) 继承父蒙太奇,只替换片段,引擎自动调整播放速率以对齐时长;子蒙太奇不能再作父级。(Animation Montage)
  • 网络:蒙太奇可用于在网络游戏中复制根运动 (Root Motion),但需要手动用 RPC 复制 PlayMontage 节点,且只有根运动的复制与校正会被带过去。(Animation Montage)动画蓝图本身不复制,应复制驱动动画的变量(Networking Overview),详见 网络复制与 RPC。在 GAS 中,与玩法相关的蒙太奇应通过 Play Montage Ability Task 播放,见 Gameplay 能力系统。

Control Rig

Control Rig 是在引擎内绑定 (Rigging) 和制作动画的工具集:可创建自定义控制器、在 Sequencer 中制作动画,提供模块化绑定、全身 IK (Full-Body IK)、样条绑定、约束、空间切换、Python 脚本等功能,从而减少对外部 DCC 的依赖。(Control Rig & Control Rig in Animation Blueprints)

在动画蓝图中通过 Control Rig 节点引用,用于程序化的玩法控制,官方举例为贴地 (Ground Alignment) 或任意接触点。节点可把 Control Rig 的变量和控制器暴露为引脚,或用动画曲线驱动浮点变量;Transfer Pose in Global Space 保证全局姿势一致,关闭可提升性能(仅当两边骨架层级不同时结果才有差别)。(Control Rig & Control Rig in Animation Blueprints)

全身 IK (Full-Body IK, FBIK):Control Rig 图中的 Full Body IK 节点(需启用 FullBodyIK 插件)基于位置型 IK (Position Based IK) 框架,支持逐骨骼设置、偏好角度、拉伸,定位为程序化修正工具(如贴地、伸手够物)。设置方法:指定根骨骼(通常是骨盆),每个控件对应一个效应器 (Effector),传入骨骼和变换。(Control Rig Full-Body IK)

调节项作用
旋转/位置刚度 (Stiffness)0 完全自由,1 完全锁定;如骨盆设 0.8 防止髋部乱动
偏好角度 (Preferred Angles)让关节优先沿某轴弯曲,解决腿僵直(膝盖 Z 轴 45)
限制 (Limits)每轴 Free / Limited(Min/Max)/ Locked,修正脚踝过度旋转
排除骨骼 (Excluded Bones)官方推荐优先排除,而不是把骨骼刚度设满
Iterations / Mass Multiplier迭代越多越收敛但 CPU 越贵;刚度、高质量系数和限制都会减慢收敛
Root BehaviorPre Pull(远距离更易收敛)、Pin to Input(局部肢体)、Free

(Control Rig Full-Body IK)取舍:FBIK 适合运行时微调姿势,不能代替动画本身;迭代次数直接计入动画线程的 CPU 开销。

取舍与常见坑

问题建议
动画图堆满混合节点用状态机拆分状态,用别名/导管减少连线
同帧多个转换竞争Max Transitions Per Frame 设为 1
混合空间输入抖动Smoothing Time 或 Weight Speed 二选一
蒙太奇覆盖了全身用上下半身插槽与分层混合
多人下动画不同步不要指望动画蓝图复制,复制驱动变量;根运动蒙太奇需 RPC 播放
动画逻辑写在哪动画蓝图事件图每帧运行,重计算放 C++,见 蓝图与 C++ 协作 与 委托与 Tick 机制

GEA 的视角:UE5 动画工具与通用动画架构(卷 II 13.4.7、13.6、13.10)

  • GEA 列出 UE5 的五个骨骼动画工具:骨架编辑器(绑定、给关节加插槽 socket,即其他引擎所说的挂接点)、骨骼网格体编辑器、动画编辑器(导入、调整压缩和片段时间,组合混合空间,创建蒙太奇)、动画蓝图编辑器(用蓝图控制角色的动画状态机)和物理编辑器(布娃娃刚体层级)(卷 II 13.10.3.2)。
  • 本页的概念大多能在 GEA 的通用架构里找到对应:
本页(UE5)GEA 通用概念
骨架 (Skeleton) 与多个骨骼网格体共享骨骼是中心,多个皮肤和片段都针对同一骨骼,以减少骨骼种类(卷 II 13.4.7)
状态机动作状态机 ASM(卷 II 13.10)
混合空间(三角剖分)通用二维 lerp 混合:Delaunay 三角剖分 + 重心坐标(卷 II 13.6.3.4)
Aim Offset(网格空间叠加)用叠加混合做瞄准与注视(卷 II 13.6.6.3)
插槽与上下半身分层状态层与部分骨骼混合(卷 II 13.6.4、13.10)
Control Rig / FBIK 贴地动画后处理中的 IK 与脚部 IK(卷 II 13.7.2、13.11.4)
  1. Animation Blueprints UE 5.8 文档
  2. State Machines UE 5.8 文档
  3. Blend Spaces UE 5.8 文档
  4. Animation Montage UE 5.8 文档
  5. Control Rig & Control Rig in Animation Blueprints UE 5.8 文档
  6. Networking Overview UE 5.8 文档
  7. Control Rig Full-Body IK UE 5.8 文档
  8. Game_Engine_Architecture_4th_Edtion_Volume_2_-_Jason_Gregory.pdf
  9. Jason Gregory《Game Engine Architecture》第 4 版(2026)卷 II 第 13 章 13.4.7、13.6、13.10 节

相关页面

游戏美术顶点混合与蒙皮Vertex Blending & Skinning顶点混合(也叫线性混合蒙皮、enveloping、骨骼子空间变形)让一个顶点受多根骨骼的变换影响,按权重混合结果,使关节处的"皮肤"连续弯曲。它非常适合在 GPU 上执行;主要缺点是关节折叠、扭转和自相交,可用双四元数蒙皮等方法改善。游戏美术变形动画Morphing变形在两个模型之间插值,需要解决顶点对应和插值两个问题。顶点一一对应时可以逐顶点线性插值;更直观可控的形式是变形目标/混合形状:在中性模型上叠加加权的差分向量,常用于面部动画。过场中无法用这些方法表达的动画,可以用压缩后的几何缓存逐帧回放。游戏开发 · UE5Gameplay 能力系统Gameplay Ability SystemGameplay 能力系统 (Gameplay Ability System, GAS) 是 UE 用来构建「Actor 可拥有并反复触发的能力」的框架:能力系统组件 (Ability System Component, ASC) 是持有者,Gameplay 能力 (Gameplay Ability) 编排执行过程,属性集 (Attribute Set) 存数值,Gameplay 效果 (Gameplay Effect, GE) 改数值和标签,Gameplay 标签 (Gameplay Tags) 做状态与互斥,Gameplay Cue 负责表现。它内建复制与客户端预测,代价是概念多、上手重,游戏开发 · UE5网络复制与 RPCNetwork Replication & RPCUE 采用服务器权威 (Server-Authoritative) 的客户端-服务器模型:游戏真正在服务器上进行,服务器把状态复制 (Replication) 给客户端,客户端通过远程过程调用 (Remote Procedure Call, RPC) 向服务器请求操作。开发者需要显式声明哪些 Actor、属性、函数要走网络,并借助所有权、网络角色、相关性、优先级控制“发给谁、发多少”。UE 5.8 提供通用复制系统、Replication Graph 和实验性的 Iris 三套复制系统。游戏开发 · UE5蓝图与 C++ 协作Blueprint & C++ InteropEpic 官方建议:多数项目混用蓝图 (Blueprint) 与 C++,以 C++ 作为基础、在其上构建蓝图类。C++ 适合“编程”——定义系统;蓝图适合“脚本”——在已有系统上定义具体行为。两者通过反射说明符互相调用:C++ 用 BlueprintCallable/BlueprintReadWrite 等暴露给蓝图,用 BlueprintImplementableEvent/BlueprintNativeEvent 让蓝图实现或覆盖 C++ 声明的函数。游戏开发 · UE5委托与 Tick 机制Delegates & TickUE 有两种驱动游戏逻辑的方式:事件驱动——委托 (Delegate) 在某事发生时回调绑定的函数;轮询驱动——Tick 每帧(或按最小间隔)调用 Actor/组件的更新函数,并按 Tick 组 (Tick Group) 与物理模拟排序。官方建议能用定时器、委托就不用 Tick,必须 Tick 时用 Tick 组和 Tick 依赖保证顺序,避免“差一帧”问题。游戏开发 · UE5Chaos 物理与碰撞Chaos Physics & CollisionChaos 是 UE5 的物理与破碎系统。日常最常打交道的是碰撞模型:每个物理体有对象类型 (Object Type) 和对其他类型的 Block/Overlap/Ignore 响应,结果由双方共同决定;Hit 与 Overlap 事件都要显式开启。骨骼网格通过物理资产 (Physics Asset) 获得刚体与约束(布娃娃、物理动画);Chaos 破碎基于几何集合 (Geometry Collection) 的分级断裂、簇阈值、连接图与缓存回放,并能把事件交给 Niagara。物理体用盒/球/胶囊/凸包代理,原理对应游戏数学中的包围体与相交测试。游戏开发 · UE5运动匹配Motion Matching运动匹配 (Motion Matching) 是 Pose Search 插件提供的动画蓝图节点,可以作为状态机和混合空间的动态替代:每次用 Schema 定义的通道(骨骼位置/速度、轨迹采样点等)构造查询,在数据库里的大量动画中找出代价最低的姿势,而不需要手工编写过渡和混合逻辑。增加动画数据就能提高保真度;代价是内存和查询开销会随通道、采样数和采样率增加。游戏开发 · UE5角色移动组件与 MoverCharacter Movement Component & Mover角色移动组件 (CMC) 用「客户端预测 + 服务器校验 + 纠正后重放」实现联网移动:自主代理先在本地移动并把操作存起来,用 ServerMove RPC 发给服务器重演,位置不符时服务器用 ClientAdjustPosition 纠正,客户端再按保存的操作重放;模拟代理只应用复制下来的移动并做平滑。实验性插件 Mover 计划接替 CMC,改用共享时间线、回滚与重模拟的模型,并且更模块化。游戏开发 · UE5IK Rig 与动画重定向IK Rig & RetargetingIK Rig 资产为某个骨骼网格定义 IK 目标 (Goal)、求解器栈 (Solver Stack) 和骨骼设置;IK Retargeter 用两个 IK Rig 中定义的重定向链 (retarget chains),在骨骼数量、骨骼名称和朝向都不同的骨架之间传递动画,还可以用 IK 保持手脚接触点的精确。参考姿势不同(例如 T 形与 A 形)时,需要编辑重定向姿势。游戏开发 · UE5Sequencer 过场动画SequencerSequencer 是 UE 的多轨道过场动画编辑器:在 Level Sequence 资产里添加轨道和关键帧,来驱动物体、角色和相机。数据存放在 Level Sequence 资产(内容浏览器中),由关卡里的 Level Sequence Actor 把它绑定到关卡并播放。Camera Cuts 轨道在播放时接管相机;最终的高质量输出通过 Movie Render Queue 完成,可以搭配路径追踪器。游戏开发 · UE5Chaos 载具Chaos VehiclesChaos Vehicles 是 UE5 的轮式载具物理插件:用骨骼网格加物理资产表示车身,用 ChaosVehicleWheel 蓝图配置车轮、悬挂和刹车,用扭矩曲线描述引擎,再由动画蓝图里的 Wheel Controller 节点驱动车轮转动和转向动画。另有 Chaos Modular Vehicle 插件,用几何体集合 (Geometry Collection) 拼装可拆解的模块化载具。游戏开发状态模式与有限状态机State Pattern & Finite State Machines状态模式 (State Pattern) 把对象“依赖状态的行为”分散到各个状态类中,对象只持有指向当前状态的指针并把调用委托给它,状态切换就是换指针。它是实现有限状态机 (Finite State Machine, FSM) 的一种方式。FSM 能用很强的结构约束理清一团乱麻的标志位代码;状态组合爆炸、需要复用和需要“回到之前状态”时,分别用并发状态机、分层状态机和下推自动机来扩展。游戏开发动画管线与动作状态机Animation Pipeline & Action State Machines低层动画管线把片段和混合规格变成局部姿势、全局姿势和蒙皮矩阵调色板;其上的动作状态机 (ASM) 给游戏代码提供"按状态驱动动画"的接口。每个状态是任意复杂的片段混合,跟踪当前所有片段的方式有扁平加权平均和混合树两种;过渡用数据驱动的过渡矩阵描述,控制参数通过节点搜索、命名变量或控制结构体暴露给代码(GEA4 卷 II 13.9–13.10)。游戏开发动画混合Animation Blending动画混合把两个或多个输入姿势合成一个输出姿势。基本工具是对每个关节的局部 SRT 分别做 lerp(旋转用 nlerp 或 slerp);在此之上有时间插值、交叉淡入淡出、方向移动、一维/二维混合空间、部分骨骼混合和叠加混合(差分片段)。前几种都是加权平均,叠加混合则是"加上一段变化"(GEA4 卷 II 13.6)。游戏开发动画约束与后处理Animation Constraints & Post-Processing片段混合之后、渲染之前,动画系统常常还要修改姿势,这叫动画后处理:程序化动画、逆向运动学 (IK)、布娃娃。另一大类需求是约束:把武器挂在手上(挂接点)、让多个角色对齐演出(参考定位器)、手抓物体(手部 IK)、脚不滑步(根运动提取与脚部 IK),以及注视、掩体、穿越辅助等(GEA4 卷 II 13.7、13.11)。游戏开发骨骼、姿势与动画片段Skeletons, Poses & Animation Clips角色动画系统的数据核心是三样东西:骨骼(关节层级)、姿势(每个关节的 SRT 变换)和动画片段(姿势随局部时间变化的采样)。GEA 把各种动画方法看成对"逐点控制表面"这一理想的不同压缩方式;骨骼蒙皮用少量关节驱动大量顶点,是今天最主流的方案(GEA4 卷 II 13.1–13.4)。游戏开发动画压缩Animation Compression未压缩的动画每关节每样本最多 10 个 32 位浮点通道,数据量巨大。GEA 列出的压缩手段按力度递增:省略无用通道、量化(如 16 位 RL 编码)、降低采样率或省略近似线性的关键帧、用 B 样条拟合曲线、小波压缩,以及最根本的:只把需要的片段放进内存(选择性加载与流式加载)(GEA4 卷 II 13.8)。综合游戏编程模式选型:解耦与性能Choosing Game Programming Patterns本页把《Game Programming Patterns》里的 19 个模式放到同一张取舍图上:大多数模式要么为了解耦(降低改代码时需要装进脑子里的知识量),要么为了性能(利用对数据和硬件的具体假设),而这两个目标经常互相拉扯。下面先讲全书的定位和 Nystrom 的架构观,再给出按问题选模式的路线和与 UE 的对照。游戏美术游戏动画五大基本功Five Fundamentals of Game AnimationDisney 的「动画十二原则」面向线性媒介;游戏动画还必须在玩家每秒级输入下既好看又好控。Jonathan Cooper 在《GAME ANIM》第 2 版中提出与之互补的五大基本功:手感 (Feel)、流畅性 (Fluidity)、可读性 (Readability)、上下文 (Context)、优雅 (Elegance)——目标是角色不仅「看起来对」,还要「操控起来对」。游戏美术游戏动画技术基础Game Animation Technical Foundations《GAME ANIM》第 5 章按基础→中级→高级梳理游戏动画师必须掌握的引擎侧概念:三类动画形态(循环 / 线性 / 过渡)、骨骼导出与数值运算、样条与碰撞移动、FK/IK,以及状态机、参数化混合、局部动画、叠加层、布娃娃,再到全身 IK、Look-At、混合形状与程序化系统。本页只收录书中实际讲到的内容,并与引擎架构页互链。游戏美术玩法动画Gameplay Animation第 9 章从 Three Cs(角色 Character、相机 Camera、控制 Control)出发,系统讲地面移动(idle、循环、原地 vs 向前、 strafing、起停过渡)、跳跃与攀爬度量、以及攻击/受击的预备—响应—可读性与连招切割。这是五大基本功在「每帧可玩」场景下的落地清单。游戏美术动作捕捉与 Motion MatchingMotion Capture & Motion Matching第 11 章回答「要不要动捕」、光学/惯性/深度/表演捕捉差异、拍摄规划与演员工作,以及后期的重定时、姿势夸张、偏移姿势、循环混合;并专节讲 Motion Matching 的适用边界与第三人称地面移动的 shot list。引擎实现细节见已有页 运动匹配(UE Pose Search);本页保留书中制作向观点。

被这些页面引用5 篇

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原