IK 与重定向
自动关联目录:IK 与重定向
官方依据:Control Rig(UE 5.8 Documentation,覆盖其 3 个章节:Starting Out / Creating Rigs / Creating Animation)。官方该大类与 Sequencer 深度绑定。
1. 定位
IK(反向动力学)解决"末端定在哪,反推关节怎么弯":脚踩在斜坡上、手扶住栏杆、视线看向目标。
重定向(Retargeting)解决"同一套动画用在另一副骨架上"。
一句话定位:IK 是运行时的姿势修正,重定向是资产层面的骨架适配——两者都能让"一套动画适配多种情况",但作用阶段完全不同。
2. Control Rig
Control Rig 是引擎内的绑定与动画系统:用蓝图图表把骨骼变换应用到骨架,可编辑或新建动画,输出到 Sequencer 播放或烘焙成独立资源。
官方列出的能力范围(Creating Rigs 章节):
| 能力 | 说明 |
|---|---|
| Control Rig 编辑器 | 在引擎内构建绑定 |
| 模块化绑定 | 拆分与复用绑定模块 |
| 控件 / 骨骼 / 空对象 | 绑定的基本元素 |
| 解算方向(Solve Direction) | 正向/反向解算 |
| 全身 IK(Full Body IK) | 全身协同的 IK 解算 |
| 样条绑定 | 用于脊柱、尾巴等链状结构 |
| 姿势缓存(Pose Cache) | 存/取姿势 |
| 控件形状与库 | 可视化与复用 |
| 组件 / 函数库 | 组织与复用 |
| Python 脚本 | 程序化生成与批处理 |
| 调试工具 | — |
Creating Animation 章节则包括:动画模式、在 AnimBP 中使用 Control Rig、FK Control Rig、约束、空间切换(Space Switching)、Python 驱动动画。
3. AnimBP 里常用的 IK 节点
| 节点 | 用途 | 代价 |
|---|---|---|
| Two Bone IK | 两骨 IK(四肢) | 低,最常用 |
| FABRIK | 多骨链(尾巴、触手) | 中 |
| CCDIK | 迭代式多骨 | 较高 |
Look At | 头部/眼睛朝向 | 低 |
| Control Rig 节点 | 在 AnimBP 里跑 Control Rig | 取决于 Rig 复杂度 |
| Full Body IK | 全身协同 | 最贵 |
四肢够用就用 Two Bone IK——它便宜、稳定、参数直观。FABRIK/CCDIK 只在链确实长时才需要。
4. 脚步 IK(最常见的实战)
1. 从脚骨位置向下做射线
2. 得到地面高度与法线
3. 用 Two Bone IK 把脚放到地面上
4. 用地面法线旋转脚掌
5. 根据脚的偏移量反向调整骨盆高度(否则会出现"腿够不着")| 要点 | 说明 |
|---|---|
| 射线 | 只在游戏线程做,结果传进动画线程 |
| 骨盆补偿 | 最容易被漏掉的一步,没有它腿会拉伸 |
| 混出 | 用插值平滑,避免抖动 |
| 关闭时机 | 空中、乘车、播 Montage 时应关掉 |
5. 重定向
| 方式 | 说明 |
|---|---|
| IK Rig + IK Retargeter | UE5 的现代方案 |
| 骨骼映射(Bone Mapping) | 建立源骨架与目标骨架的对应 |
| Retarget Pose | 定义"参考姿势",解决比例差异 |
| 曲线重定向 | 动画曲线的映射 |
| 旧方案(Rig 匹配 / Humanoid Rig) | 历史项目仍在用 |
重定向质量取决于 Retarget Pose 是否调好,不是骨骼映射。常见的问题(手穿模、脚悬空、肩膀扭曲)几乎都是参考姿势没对齐。
6. 代价与权衡
| 设计 | 收益 | 代价 | 什么时候不该用 |
|---|---|---|---|
| Two Bone IK | 便宜、稳定 | 只能处理两骨链 | 长链用 FABRIK |
| Full Body IK | 全身协同,效果最好 | 最贵 | 只需要手足 IK 时不该上 |
| Control Rig in AnimBP | 灵活、可复用 | 每帧跑 Rig 的成本 | 简单 IK 用节点更快 |
| Control Rig in Sequencer | 影视级控制、可烘焙 | 运行时成本更高 | 实时游戏逻辑不该放这里 |
| 重定向 | 一套动画复用多角色 | 需要调 Retarget Pose | 同骨架直接复制即可 |
| Python 批处理 | 批量生成/修正 | 工具链维护 | 少量资产不值得 |
7. 踩坑与排查
| 坑 | 现象 | 怎么验证 |
|---|---|---|
| 脚悬空/陷入地面 | 射线没做或骨盆没补偿 | 检查射线与骨盆偏移 |
| 腿被拉伸 | 没有骨盆补偿 | 加上基于脚偏移的骨盆调整 |
| IK 在播 Montage 时抽搐 | 没关 | Montage 期间降低 IK 权重 |
| 空中还在做脚步 IK | 脚跟着乱动 | 用 IsFalling 关掉 |
| 重定向后手穿模 | Retarget Pose 没调 | 重调参考姿势 |
| 肩膀/髋部扭曲 | 骨骼映射或参考姿势问题 | 检查映射表 |
| 全身 IK 太卡 | 成本过高 | 降级到 Two Bone IK |
| Control Rig 在 AnimBP 里开销大 | 每帧解算 | 简化 Rig 或只在必要时启用 |
| 曲线丢失 | 重定向没配曲线映射 | 检查曲线的重定向设置 |
8. 排查顺序
1. IK 完全没效果?→ 节点是否生效、权重是否为 0
2. 姿势怪异?→ 链的定义与极性问题
3. 脚不对?→ 射线 + 骨盆补偿
4. 该关没关?→ 空中/乘车/Montage 的权重控制
5. 重定向不对?→ 优先调 Retarget Pose,其次查骨骼映射
6. 太贵?→ 降级 IK 方案参考
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/43c1b1a2.html
更新于:2026年10月10日