Journal

Sketch2Anim: Towards Transferring Sketch Storyboards into 3D Animation

Lei Zhong, Chuan Guo, Yiming Xie, Jiawei Wang, Changjian Li

University of Edinburgh

Sketch2Anim: Towards Transferring Sketch Storyboards into 3D Animation

一句话总结

把分镜草图(2D 关键姿态 + 关节轨迹 + 动作词)自动翻译成高质量 3D 动画,核心是用 3D 条件训练、2D 条件推理的”神经映射器”跨越 2D–3D 域差,再用”轨迹 ControlNet + 关键姿态适配器”同时注入多种控制信号。

研究背景

分镜(storyboard)是 3D 动画创作的常用起点:动画师在若干 2D 草图帧里画出角色的关键姿态、关节运动轨迹,并标注一个动作词(如 Jump、Kick)。传统流程中,动画师要以这些草图为参照,手动摆放预定义的 3D 骨骼去匹配 2D 姿态,再反复试错让 3D 运动符合轨迹和动作语义。这一过程高度依赖多年经验,既费力又耗时,因此把 2D 分镜直接翻译成 3D 动画的自动化方法需求很高,但此前几乎无人系统研究。

早期最相关的工作是基于草图的运动检索:从草图抽取手工特征(关节角、骨骼向量)在预采集数据库里找最近似的动画。这类方法受限于数据库的覆盖范围,可扩展性和表现力都不足;当同时存在多种草图类型(关键姿态与轨迹)时,也很难设计合理的匹配打分函数。

作者把问题重新表述为条件运动生成,并拆成两个子问题:一是从原始草图中获得准确的 2D 关键姿态与轨迹(已有 Sketch2Pose 等成熟方案,作者直接复用其 2D 关节检测),二是在 2D 关键姿态、轨迹、动作词共同约束下生成高质量运动片段——本文聚焦第二个子问题。

关键难点在于 2D 输入与 3D 运动之间的巨大域差:检测到的 2D 关键姿态在像素空间,2D 轨迹在时空 4D 空间,都是想象中 3D 运动的投影,直接以 2D 为条件很难学好。而 3D 关键姿态与轨迹信息量更大、指导更明确,但已有条件运动生成方法通常只能吃一到两个控制信号(如文本、文本+3D 轨迹),无法同时服从动作词、关键姿态和轨迹三种约束。

方法

整体受传统动画流程两个操作的启发:把 2D 关键姿态和轨迹”抬升”到 3D,再据此雕琢生动运动。Sketch2Anim 没有做数学意义上的显式抬升,而是设计了两个核心模块。

flowchart TD
    A[分镜草图帧] --> B[Sketch2Pose 检测 2D 关节点]
    A --> C[UI 追踪 2D 轨迹笔画]
    A --> D[动作词 W_a / OCR]
    B --> E["2D 关键姿态 K_2D"]
    C --> F["2D 轨迹 Tr_2D"]
    E --> G[2D-3D 神经映射器]
    F --> G
    G -->|共享嵌入空间| H["3D 关键姿态/轨迹嵌入"]
    D -->|CLIP| I[动作词嵌入 a]
    H --> J[多条件运动生成器]
    I --> J
    J --> K[3D 运动片段 m]
    K --> L[运动融合 Blending]
    L --> M[完整 3D 动画 M]

核心思想:训练阶段用信息量更大、更精确的 3D 关键姿态和轨迹作为条件;推理阶段则依靠一个把 2D 与 3D 对齐到同一嵌入空间的神经映射器,直接吃分镜里检测出的 2D 关键姿态和轨迹。

统一表示

关键姿态、轨迹、运动都用统一矩阵表示。2D 关键姿态(22 个 2D 关节)填入首帧或末帧,记作 \(K_{2D}\in\mathbb{R}^{N\times J\times 2}\),其 3D 对应为 \(K_{3D}\in\mathbb{R}^{N\times J\times 3}\);轨迹同理为 \(Tr_{2D}\) 和 \(Tr_{3D}\)。运动沿用 HumanML3D 的冗余表示(含局部与全局的位置和旋转),单个片段 \(\boldsymbol{m}\in\mathbb{R}^{N\times D}\),默认 \(N=40\) 帧(2 秒),\(D=263\)。

多条件运动生成器

建立在潜空间运动扩散模型之上。给定 3D 关键姿态、轨迹和动作词嵌入 a,第 \(t\) 步去噪定义为在潜码上预测噪声。两个关键设计:

  • 轨迹 ControlNet \(F_{tr}\):扩散模型 Transformer 编码器的可训练副本,每层接一个零初始化线性层。轨迹编码器把轨迹嵌入注入噪声潜码得到条件潜码,再经 ControlNet 预测残差特征 r:

\[\boldsymbol{z}'_t = \boldsymbol{z}_t + E^{3D}_{tr}(Tr_{3D}), \quad r = F_{tr}(\boldsymbol{z}'_t, t, a)\]

  • 轨迹感知的关键姿态适配器 \(F_k\):置于 ControlNet 与扩散模型之间。作者认为关键姿态是对”动作如何执行”的细化解释,因此把关键姿态嵌入与动作词嵌入相加得到”接地动作嵌入” a′:

\[\boldsymbol{a}' = \boldsymbol{a} + E^{3D}_k(K_{3D})\]

适配器接收 ControlNet 的残差 r、噪声潜码和 a′,学习残差修正 r′ 再注入扩散模型:

\[r' = F_k(\boldsymbol{z}_t, t, r, \boldsymbol{a}')\]

\[\epsilon_t = \epsilon_\theta(\boldsymbol{z}_t, t, a) + Z(r')\]

这个设计的巧妙之处在于分工:轨迹捕捉全局动态和时间关系,关键姿态只在特定时刻施加局部静态约束。让适配器在 ControlNet 已建立的全局运动基础上”精修局部姿态”,避免了两个条件互相干扰——这也解决了多个 ControlNet 残差融合难、损失权重难平衡的问题(消融显示关键姿态收敛比轨迹快近十倍)。

训练损失

冻结扩散模型,只训练 ControlNet 和适配器。除标准噪声重建损失 \(L_{recon}\) 外,还在关节全局绝对位置空间加两项约束:轨迹损失 \(L_{tr}\)(掩码加权的生成与真值轨迹 \(L_2\) 距离)和关键姿态损失 \(L_{key}\)(先转全局位置再减去根关节位置以忽略全局摆放):

\[L_{gen} = L_{recon} + \lambda_{tr}L_{tr} + \lambda_{key}L_{key}\]

2D-3D 关键姿态与轨迹对齐

生成器训练完成后,冻结 3D 编码器,单独训练 2D 轨迹编码器和 2D 关键姿态编码器去对齐 3D 对应物。损失包含:配对匹配损失 \(L_{match}\)(拉近 2D/3D 配对嵌入)、2D 条件下的噪声重建损失 \(L_{recon}\)(保证 2D 条件也能生成合理运动)、以及 CLIP 式对比损失 \(L_{contrast}\):

\[L_{align} = L_{match} + \lambda_r L_{recon} + \lambda_c L_{contrast}\]

推理与融合

推理时直接输入 2D 关键姿态和轨迹,采用无分类器引导(scale \(w_c=7.5\));再借鉴分类器引导做推理引导,每步去噪迭代 4 次,最小化生成运动投影轨迹与 2D 轨迹的差异。多个片段之间用线性混合初始化过渡运动,再经 DDIM 反演加引导去噪精修,最终拼成完整动画。

实验结果

在 HumanML3D 数据集(14,646 条运动、44,970 条标注)上训练与评测,单卡 RTX 4090。生成器训练约 1000 epoch(12 小时),2D-3D 对齐约 100 epoch(3 小时)。推理时生成一个 40 帧片段约 0.5 秒,两片段融合约 1 秒。评测三个维度:运动真实感(FID、脚部滑动比)、控制精度(MPJPE-2D/3D、轨迹 Avg. Err.-2D/3D)、文本-运动匹配(MM Dist、R-precision Top-3)。

对比三个自建基线(Motion Retrieval、Lift-and-Control、Direct 2D-to-Motion),主表(Average 模式)关键数字:

方法 FID ↓ 脚滑 ↓ MPJPE-2D ↓ Avg.Err.-2D ↓ MM Dist ↓ R-prec(Top3) ↑
Motion Retrieval 0.690 0.0640 0.0570 0.290 4.060 0.640
Lift-and-Control 0.979 0.0885 0.0537 0.261 3.297 0.752
Direct 2D-to-Motion 2.553 0.112 0.0403 0.193 3.723 0.687
Ours 0.525 0.103 0.0360 0.0867 3.077 0.802

本方法在控制精度和文本匹配上全面领先:相比 Direct 2D-to-Motion,FID 约低 5 倍,印证了”用 3D 输入作训练替身”的价值;相比 Lift-and-Control,2D 轨迹误差从 0.261 降到 0.0867,说明嵌入对齐比显式抬升更能规避误差。Motion Retrieval 因为直接用真实运动片段,真实感指标近乎最优,但控制精度和文本匹配受限于数据库覆盖。

消融实验(用 3D 条件,Average 模式)验证了生成器设计:

变体 FID ↓ 脚滑 ↓ MPJPE-3D ↓ Avg.Err.-3D ↓ MM Dist ↓ R-prec ↑
Single ControlNet 0.746 0.107 0.0566 0.257 3.077 0.787
Double ControlNet 0.608 0.0933 0.0428 0.246 3.046 0.790
Global Keypose 0.462 0.0958 0.0413 0.190 2.932 0.806
Full Method 0.446 0.0953 0.0399 0.162 2.884 0.814

单 ControlNet 因关键姿态比轨迹稀疏得多而最差(多项指标掉 50% 以上);双 ControlNet 因两者竞争、训练曲线震荡而次之;把关键姿态嵌入加到噪声潜码(全局控制)会干扰轨迹,轨迹误差在两种模式下分别退化 17.2% 和 11.0%。完整方法(关键姿态嵌入加到动作词)几乎全面最优。

58 人参与的成对主观评测中,本方法相对 Direct 2D-to-Motion 在真实感/轨迹/关键姿态三项胜率为 88%/87%/90%,相对 Lift-and-Control 均超 82%,相对 Motion Retrieval 在轨迹与关键姿态精度上超 74%,仅在真实感上以 69% 略胜(因检索片段是真实捕捉数据、伪影少)。

应用方面:支持真实世界复杂草图(非只有火柴人);作为副产品天然支持 3D 编辑——用户可拖拽关键姿态/轨迹采样点重新生成运动(如修正脚穿过桌面);也验证了 Sketch2Pose 在潦草草图上的 2D 关节检测鲁棒,而其 3D 抬升不可靠,这正是本文只用 2D 关节作条件的原因。

亮点与局限

亮点:

  • 首个把分镜草图直接翻译成高质量 3D 动画的方法,并配套基于草图的 Blender 动画设计系统。
  • “3D 训练、2D 推理”的神经映射器思路优雅地绕过了 2D–3D 显式抬升的误差累积。
  • 轨迹 ControlNet + 关键姿态适配器的层级式设计,解决了多条件运动生成中残差融合难、收敛速度悬殊的实际问题。
  • 天然支持交互式 3D 运动编辑,无需修改模型。

局限:

  • 不考虑角色-物体交互,如打高尔夫时双手不会握住球杆。
  • 缺乏物理约束,可能生成物理错误的姿态(如倒立结尾时身体折叠悬浮空中)。
  • 高度依赖 Sketch2Pose 的关节检测,草图偏离合理人体太多时会失败,需重画或手动调整关节点。

延伸思考

本文最值得借鉴的是”用高信息量模态在训练期作替身、用低信息量模态在推理期对齐”这一范式,本质上把困难的跨域抬升问题转化为可学习的嵌入对齐问题,对任何”输入信号退化但存在更丰富配对信号”的生成任务都有参考价值。层级式条件注入(一个条件建立全局骨架、另一个只精修局部)也提示:与其让多个平行控制器竞争,不如让它们在功能上分工递进。局限中提到的物理约束与角色-物体交互,恰是后续可以引入物理仿真损失或接触/抓握先验来补齐的方向;而对 Sketch2Pose 的强依赖也说明端到端联合训练草图理解与运动生成仍有空间。