概念页
IK Rig 与动画重定向
IK Rig & Retargeting
IK Rig 资产为某个骨骼网格定义 IK 目标 (Goal)、求解器栈 (Solver Stack) 和骨骼设置;IK Retargeter 用两个 IK Rig 中定义的重定向链 (retarget chains),在骨骼数量、骨骼名称和朝向都不同的骨架之间传递动画,还可以用 IK 保持手脚接触点的精确。参考姿势不同(例如 T 形与 A 形)时,需要编辑重定向姿势。
IK Rig
- IK Rig 编辑器用来设置 IK Rig 和重定向:可以创建不同的求解器、调整骨骼设置并预览结果。创建 IK Rig 资产时要选择一个骨骼网格(Add > Animation > IK Rig)。(IK Rig in Unreal Engine)
- 编辑器包含:重置 IK 目标的按钮、显示骨骼、IK 目标和设置的层级面板,以及列出所用求解器的求解器栈。(IK Rig in Unreal Engine)全身 IK 求解器的细节见 动画蓝图与动画系统 中的 Control Rig 部分。
重定向:与旧方式的区别
官方:IK Rig 重定向与传统的动画重定向不同,可以在骨骼数量、骨骼名称和朝向都不同的骨架之间传递动画,还能选择用 IK 保持精确的手部或脚部接触点。重定向让多个不同骨架共享动画数据,无需在 UE 之外另做动画。(IK Rig Animation Retargeting in Unreal Engine)蒙皮本身的原理见 顶点混合与蒙皮。
flowchart LR S["源 IK Rig<br/>重定向链:脊柱、手臂、腿…"] --> RT["IK Retargeter<br/>Op Stack 自上而下执行"] T["目标 IK Rig<br/>同名重定向链"] --> RT P["重定向姿势<br/>对齐 T 形 / A 形"] --> RT RT --> O["目标角色上的动画<br/>可导出为新动画资产"]
图中源和目标各自定义同名的重定向链,Retargeter 先用重定向姿势对齐两者,再按操作栈从上到下处理,输出目标角色的动画。
| 概念 | 说明 |
|---|---|
| 重定向链 | 要传递的四肢和附属部位,必须在源和目标两个 IK Rig 上都定义;可以用 Auto Create Retarget Chains 自动生成 |
| 根运动 | 单独定义,以便角色的根运动按比例传递 |
| Op Stack | 重定向编辑器按从上到下的顺序执行各个操作;可以用 C++ 编写自定义操作 |
| 重定向姿势 | 源和目标参考姿势不同(如 T 形与 A 形)时需要编辑;姿势越接近,重定向越准确 |
| 资产浏览器 | 预览源动画并导出重定向后的动画 |
(IK Rig Animation Retargeting in Unreal Engine)
坑
- 两个 IK Rig 的链定义不匹配时,对应部位不会被传递;先检查链。(依据「链必须在两边都定义」归纳)
- 参考姿势差异是重定向误差的主要来源之一,官方的建议是匹配重定向姿势。(IK Rig Animation Retargeting in Unreal Engine)
GEA 的视角:重定向与 IK 的通用背景(卷 II 13.4.7.1、13.7.2、13.11.3)
- GEA 指出动画片段通常只适用于制作它的那套骨骼,重定向就是把为一套骨骼做的动画用在另一套上。两套骨骼形态完全相同时,重定向只是关节索引重映射;不同时问题复杂得多。Naughty Dog 的做法是让动画师定义一个重定向姿势 (retarget pose),记录源骨骼与目标骨骼绑定姿势之间的本质差异,运行时据此调整源姿势(卷 II 13.4.7.1)。UE5 也有同名概念:本页表中的"重定向姿势"用于对齐源和目标的参考姿势,且姿势越接近重定向越准确(IK Rig Animation Retargeting in Unreal Engine)。差别在于 GEA 描述的是 Naughty Dog 自研系统的做法,UE5 另外用重定向链和 IK 处理骨骼数量、名称、朝向都不同的骨架。
- GEA 把 IK 看作误差最小化:在关节角构成的构形空间里寻找末端执行器到目标距离的极小值;IK 只适合小误差修正,多数算法只解位置不解朝向(卷 II 13.7.2、13.11.3)。详见 动画约束与后处理 与 骨骼、姿势与动画片段。
出处
- IK Rig in Unreal Engine UE 5.8 文档
- IK Rig Animation Retargeting in Unreal Engine UE 5.8 文档
- Game_Engine_Architecture_4th_Edtion_Volume_2_-_Jason_Gregory.pdf
- Jason Gregory《Game Engine Architecture》第 4 版(2026)卷 II 第 13 章 13.4.7.1、13.7.2、13.11.3 节
相关页面
游戏开发 · UE5动画蓝图与动画系统Animation Blueprint & Animation SystemUE5 角色动画以动画蓝图 (Animation Blueprint) 为核心:它每帧为骨骼网格体 (Skeletal Mesh) 计算最终姿势。动画蓝图内部用状态机 (State Machine) 组织“何时播什么”,用混合空间 (Blend Space) 按速度、方向等参数连续混合,用蒙太奇 (Animation Montage) 在插槽 (Slot) 中插播攻击、交互等一次性动作,用 Control Rig 做程序化骨骼控制(如贴地)。算出的骨骼姿势最终交给蒙皮 (Skinning) 驱动顶点。游戏开发 · UE5运动匹配Motion Matching运动匹配 (Motion Matching) 是 Pose Search 插件提供的动画蓝图节点,可以作为状态机和混合空间的动态替代:每次用 Schema 定义的通道(骨骼位置/速度、轨迹采样点等)构造查询,在数据库里的大量动画中找出代价最低的姿势,而不需要手工编写过渡和混合逻辑。增加动画数据就能提高保真度;代价是内存和查询开销会随通道、采样数和采样率增加。游戏美术顶点混合与蒙皮Vertex Blending & Skinning顶点混合(也叫线性混合蒙皮、enveloping、骨骼子空间变形)让一个顶点受多根骨骼的变换影响,按权重混合结果,使关节处的"皮肤"连续弯曲。它非常适合在 GPU 上执行;主要缺点是关节折叠、扭转和自相交,可用双四元数蒙皮等方法改善。游戏开发 · UE5MetaHuman 数字人MetaHumanMetaHuman 是 Epic 的一套完整框架,用来创建、驱动和使用带完整绑定、照片级的数字人。从 UE 5.6 起,MetaHuman Creator 完全集成进引擎(双击 MetaHuman Character 资产打开),可以把角色组装 (Assembly) 成针对不同目标环境优化的资产。在引擎层面,最需要关心的是 LOD:MetaHuman 由多个 LOD 数量不同的组件组成,由 LODSync 组件统一切换;毛发是 Groom 资产,可以在发丝、发片、网格三种几何之间按 LOD 切换。游戏开发动画约束与后处理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)。游戏美术技术动画Technical Animation第 8 章「Our Project: Technical Animation」覆盖角色从建模约束、蒙皮、绑定,到命名/目录、引用、导出格式与引擎规则、内存与切片、引擎内事件标签与混合时间、测试关与资产卫生。目标是让动画师少踩导出坑、系统可共享缩放。游戏美术动作捕捉与 Motion MatchingMotion Capture & Motion Matching第 11 章回答「要不要动捕」、光学/惯性/深度/表演捕捉差异、拍摄规划与演员工作,以及后期的重定时、姿势夸张、偏移姿势、循环混合;并专节讲 Motion Matching 的适用边界与第三人称地面移动的 shot list。引擎实现细节见已有页 运动匹配(UE Pose Search);本页保留书中制作向观点。