Journal

SKEL-Betweener: a Neural Motion Rig for Interactive Motion Authoring

Dhruv Agrawal, Jakob Buhmann, Dominik Borer, Robert W. Sumner, Martin Guay

ETH Zürich; DisneyResearch|Studios

一句话总结

SKEL-Betweener 提出一个”神经运动绑定”(Neural Motion Rig):只给两个姿态就能生成完整运动序列,并通过关节级的”神经运动曲线”进行实时细化与编辑,把神经运动模型第一次带进可交互的动画创作工作流。

研究背景

3D 角色动画是一项耗时的工作,动画师需要在大量时间步上操纵众多绑定控件(关键帧),再依赖插值填补平滑段。近年从大规模运动数据集学到的神经运动表示在运动补全上表现亮眼,但难以进入实际的交互式创作,主要有两个原因:

  • 需要稠密上下文:现有方法(如 TwoStage [Qin et al. 2022])要求提供密集的整帧姿态序列作为条件,而动画师能快速摆出稀疏姿态,逐帧铺满连续姿态却非常费时。
  • 缺乏关节级控制:现有方法只提供整体或半身约束,无法像传统绑定那样对单个关节手柄做实时细化;要探索和修改运动就得再补大量整身关键帧。

此外,现有生成模型只按约束生成运动,忽略已存在的运动内容,因此无法用于”编辑已有运动”(动作捕捉或文本生成的运动),而这一任务又因缺乏配对数据而难以学习。本文针对交互式创作这两大痛点提出解决方案。

方法

整体框架

SKEL-Betweener 不在整帧姿态空间建模,而是在骨骼关节层面用图神经网络建模,以捕获运动更”局部”的因果依赖,从而支持关节级控制。模型由三部分组成:关节编码器(Joint Encoder)、骨骼 Transformer(Skeletal Transformer)、关节解码器(Joint Decoder)。

flowchart LR
    A[稀疏约束<br/>两端姿态+中间手柄] --> B[插值初始化<br/>位置线性/朝向球面]
    B --> C[Joint Encoder<br/>身份向量+状态向量]
    C --> D[Skeletal Transformer<br/>N=18 层 时空图注意力]
    D --> E[Joint Decoder<br/>全局位置/朝向/接触]
    E --> F[稠密运动序列]
    F -.可选.-> G[神经运动曲线<br/>3D轨迹/1D图编辑器]
    G -.再生成.-> C

一个运动被定义为各关节在各时刻的全局位置与朝向,朝向采用 6D 表示(比四元数连续性更好);足部关节额外带一个二值地面接触标签。模型先用线性/球面插值把稀疏控制铺成稠密初始运动,再交给网络细化。

关键设计一:骨骼时空图注意力

骨骼 Transformer 为每个关节在每个时刻放置一个节点,共 \(T \times J\) 个节点。每个节点用两个向量表示:身份向量 \(Node_{emb}\) (关节 one-hot 嵌入、时间的正弦位置编码、约束掩码)和状态向量 \(Node_{state}\) (位置、朝向、接触标签)。节点通过注意力连接空间邻居(如肘部连接肩与腕)和时间邻居(相邻帧的同一关节)。注意力块用身份向量作 key/query,状态向量作 value:

\[Node^{i}_{state'} = \mathrm{MHA}(K=Q=Node_{emb},\ V=Node^{i-1}_{state})\] \[Node^{i}_{state} = \mathrm{FCN}(Node^{i}_{state'}) + Node^{i-1}_{state}\]

由于已约束节点的状态是给定的,各层只更新未约束节点。这种局部图结构让约束值可以在 Transformer 的后续层直接注入某个关节,信息从两端约束帧沿空间与时间邻域流向中间未约束帧,从而对稀疏约束的满足度和分布外(OOD)泛化都更好。

关键设计二:多项损失监督

总损失分为重建、手柄、接触三部分:\(L_{SB} = L_R + L_H + L_C\)。重建损失对位置用 \(L2\)、对朝向用测地距离(Geodesic):

\[Geo(R, \hat{R}) = \arccos\left[\left(\mathrm{tr}(\hat{R}^{\top}R) - 1\right)/2\right]\]

由于中间约束比整段运动稀疏得多,若不额外监督会被忽略,因此用掩码 \(mask_{*}\) 只在被约束的位置和旋转上再加一项手柄损失 \(L_H\)。接触损失监督地面接触标签并约束对应足部速度,以减少脚部滑动。

关键设计三:用自身模型合成配对数据实现运动编辑

“编辑已有运动”缺少(原运动、编辑、结果)的配对数据。作者用预训练好的 SKEL-Betweener 自己造数据:对一段带高频细节的真实运动,采样两组互不相交的约束;仅用第一组约束生成一段较平滑的新运动作为”基础运动”(base motion),于是原运动就可视为对该基础运动、用第二组约束进行编辑后的目标。用这种”合理”的配对数据训练带基础运动保持的模型(SKEL-Betweener*),网络以基础运动初始化关节状态,并加入基础运动保持损失:

\[L_{BM} = \lVert w_{ME} \odot (pos_{ME} - pos_{SB}) \rVert_2 + Geo(w_{ME} \odot rot_{ME},\ w_{ME} \odot rot_{SB})\]

其中 \(w_{ME}\) 是逐帧权重掩码,越靠近约束的帧越少惩罚编辑。完整编辑损失为 \(L_{ME} = L_{SB} + w_{BM} L_{BM}\)。作者指出:若像 [Agrawal et al. 2023] 那样随机采样基础运动,重建损失与保持损失会互相对抗,导致既学不好重建也满足不了约束,因此”合理造数据”是关键。

实验结果

在 Lafan1、AMASS、DanceDB 三个数据集上与改造过的 TwoStage 模型对比,窗口长度 10~30 帧。L2P 为全局位置的 \(L2\) 距离,GeoR 为全局旋转的测地距离,均越小越好;OOD 约束通过对中间约束加最多 28cm 随机噪声构造。

数据集 指标 类别 TwoStage SKEL-Betweener
Lafan1 L2P 整体运动 0.055 0.058
Lafan1 L2P 约束满足 0.013 0.021
Lafan1 L2P OOD 约束 0.043 0.032
AMASS GeoR 约束满足 0.083 0.045
AMASS L2P OOD 约束 0.093 0.060
DanceDB L2P 整体运动 0.083 0.050
DanceDB L2P OOD 约束 0.926 0.388
DanceDB GeoR OOD 约束 0.159 0.045

整体运动质量两者相当(TwoStage 在 Lafan1 略优,本方法在 DanceDB 更优),但在约束满足度、尤其是分布外约束的泛化上,本方法在所有数据集上几乎全面胜出。另外,SKEL-Betweener 无基础运动时需要 15%~20% 的额外约束才能达到 SKEL-Betweener*(以真值初始化、0 额外约束)的重建精度,说明专门为编辑训练的必要性。模型在 RTX3090 上单次推理约 27ms,在 Blender 中配合 SMPL 网格可稳定 24FPS 交互,操纵约束即时更新无卡顿。

用户研究(20 人:3 名专业动画师、15 名新手、2 名作者)让参与者在 15 分钟软时限内复刻 30 帧参考动画。新手用神经运动绑定(NMR)对比学习式逆运动学(LIK):Sprinting 场景关键帧数从 23.28 降到 13.42、误差从 8.87cm 降到 7.86cm;Walking 场景关键帧从 20.17 降到 11.66、误差从 5.84cm 降到 4.36cm。三组用户都用 NMR 得到最准的复刻结果,且起点更接近参考(得益于更好的插值)。

亮点与局限

亮点

  • 只需两帧即可生成完整运动,大幅降低创作输入负担;视频中一小时的”跑步+跳跃”序列用该系统几分钟即可完成。
  • 骨骼图网络带来真正的关节级实时控制,并首次在神经运动模型上实现”运动编辑”(保持已有运动的同时按约束修改)。
  • 神经运动曲线(NMC)自然融入 Blender/Maya 的 3D 视口与图编辑器工作流,3D 轨迹和 1D 旋转手柄兼顾,符合动画师既有习惯。
  • 用模型自身合成合理配对数据,巧妙绕开了运动编辑缺乏配对数据的难题。

局限

  • 与其他学习式模型一样存在硬约束满足问题:即便给了约束,隐式求解 IK 仍可能带偏移;后处理优化能改善但会拖慢推理并可能产生不自然姿态,尚不足以支撑生产级的非破坏性精确控制。
  • 迭代工作流中,若用上一次预测的位置/朝向新增一个约束,输出仍会变化,与传统绑定”相同输入相同输出”的预期不符,给用户造成困惑。
  • 局部注意力使感受野只线性增长,当前仅支持约 30 帧;扩展到更长序列需引入时间池化。
  • UI 上多个时间步的约束球在静止关节(如脚)处重叠,难以辨识与选取。

延伸思考

  • “用自身预训练模型合成配对数据来训练更强版本”是一种自举式思路,可迁移到其他缺乏配对监督的编辑类任务(如图像/视频编辑、几何编辑),关键在于生成的”基础样本”要足够合理,否则重建与保持损失会互相对抗。
  • 把稀疏控制先插值成稠密初始化再让网络学”增量”的做法,与运动补间中”学习相对插值关键帧的偏移”的经验一致,提示对结构化序列生成而言,一个好的确定性先验能显著减轻网络负担并提升泛化。
  • 作者为每个中间约束加”影响范围”(时空窗口)参数的设想很值得跟进——它能把神经生成的全局耦合与传统绑定的局部可控性结合,朝可预测、可信赖的生产级工具更进一步。
  • 相比扩散类运动模型,该确定性模型在精度与推理速度上更契合交互创作;两类方法其实互补:可先用生成模型快速铺陈,再用本文的编辑模型在稠密条件下细化。