混合方法

本章定位:理解如何在动力学方法中引入运动学数据,实现高质量且符合物理的角色动画。


运动学 vs 动力学:优缺点对比

运动学方法

优点

  • 动作质量高:来自动捕数据,真实自然
  • 计算效率高:无需物理仿真,实时性好
  • 易于控制:直接输出姿态,可控性强

缺点

  • 不符合物理:穿模、滑步、浮空
  • 抗扰动能力差:受外力后无法恢复
  • 无法与环境交互:不能适应地形变化

动力学方法

优点

  • 符合物理:无穿模、滑步
  • 抗扰动能力强:受外力后可恢复平衡
  • 可与环境交互:适应地形、物体交互

缺点

  • 动作质量低:像机器人、僵硬
  • 计算成本高:需要物理仿真、优化/训练
  • 调参困难:需要大量手工调整

为什么要结合?

核心思想:取长补短

┌─────────────────────┐     ┌─────────────────────┐
│   运动学方法        │     │   动力学方法        │
│                     │     │                     │
│  ✓ 动作质量高       │     │  ✓ 物理真实         │
│  ✓ 计算效率高       │     │  ✓ 抗扰动强         │
│  ✓ 易于控制         │     │  ✓ 可交互           │
│                     │     │                     │
│  ✗ 不符合物理       │     │  ✗ 动作质量低       │
│  ✗ 抗扰动差         │     │  ✗ 计算成本高       │
│  ✗ 无法交互         │     │  ✗ 调参困难         │
└─────────────────────┘     └─────────────────────┘
            ↓                           ↓
            └──────────┬────────────────┘
                       │
                       ↓
            ┌─────────────────────┐
            │    混合方法         │
            │                     │
            │  ✓ 动作质量高       │
            │  ✓ 物理真实         │
            │  ✓ 抗扰动强         │
            │                     │
            │  ✗ 系统复杂         │
            │  ✗ 训练成本高       │
            └─────────────────────┘

混合方法的本质

┌─────────────────────────────────────────────────────────┐
│  混合方法 = 动力学方法 + 运动学数据                      │
│                                                         │
│  动力学方法提供:物理仿真、抗扰动能力                    │
│  运动学数据提供:高质量动作参考、风格先验                │
└─────────────────────────────────────────────────────────┘

与前面章节的关系

运动学方法 ──→ 提供数据/先验 ──┐
                              ├──→ 混合方法
动力学方法 ──→ 提供仿真/执行 ──┘

常见的结合套路

套路 1:先运动学,后动力学(串联)

运动学生成初值 → 动力学优化 → 输出

代表:DReCon(Motion Matching + 轨迹优化)

流程

  1. Motion Matching 从数据库中找到最匹配的 pose 作为初值
  2. 轨迹优化在初值基础上做物理适配
  3. PD 控制执行

优点:动作质量高,物理真实 缺点:系统复杂,需要维护数据库


套路 2:运动学指导动力学生成(并行)

运动学数据 → 学习先验 ──┐
                        ├──→ 动力学方法生成
动力学方法 ─────────────┘

代表:AMP(对抗式运动先验)

流程

  1. 用动捕数据训练判别器(学习风格先验)
  2. RL 策略生成动作,判别器判断"像不像"
  3. 策略不断优化,生成既符合物理又像动捕风格的动作

优点:推理时无需参考数据,可泛化 缺点:训练成本高,需要大量采样


套路 3:运动学作为跟踪目标(强耦合)

运动学轨迹 → 目标 → 动力学跟踪

代表:DeepMimic

流程

  1. 动捕轨迹作为参考目标
  2. RL 学习如何跟踪参考轨迹
  3. 跟踪策略输出关节力矩,通过仿真器执行

优点:动作质量高,抗扰动 缺点:推理时仍需参考轨迹,泛化能力有限


套路 4:端到端学习(隐式结合)

状态输入 → 神经网络 → 力矩/姿态输出
           (训练时用了运动学数据)

代表:UniPhys、CAMDM(Diffusion 模型)

流程

  1. 用动捕数据(状态 - 动作对)训练模型
  2. 模型直接输出力矩或姿态
  3. 端到端,无需手动设计接口

优点:系统简单,推理快 缺点:需要大量训练数据,可解释性差


与前面章节的关系

四种套路的对比

套路代表方法运动学数据形式动力学方法依赖程度
串联DReCon动作数据库轨迹优化
并行AMP风格先验RL 生成
强耦合DeepMimic完整轨迹RL 跟踪
端到端UniPhys状态 - 动作对Diffusion 策略

深入学习DeepMimic | AMP | DReCon | UniPhys


与前面章节的关系

章节与混合方法的关系
轨迹优化混合方法可以借用轨迹优化进行物理适配
角色控制混合方法可以看作"有数据引导的角色控制"
PD 控制混合方法的输出通常通过 PD 控制执行

本章重点问题

  1. 如何设计运动学数据与动力学方法的接口?

    • DeepMimic:参考轨迹作为 reward
    • AMP:动捕数据训练判别器
    • DReCon:数据库提供初值
  2. 如何平衡数据依赖与泛化能力?

    • 强依赖:动作质量高,但泛化差
    • 弱依赖:泛化好,但训练难
  3. 如何处理训练与推理的差异?

    • 训练时:可以用动捕数据
    • 推理时:根据方法不同,依赖程度不同

深入学习ReadPapers - Physics-based Character Control