UniMate 3D 骨骼动画生成完整指南
【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate
UniMate 是 SIGGRAPH Asia 2026 发布的 3D 骨骼动画生成模型,给它任意一个绑好骨骼的 3D 资产加一句文字,就能实时生成动作。无需针对每个骨架重新训练,也无需测试时优化。
先看效果:UniMate 文字驱动的 3D 骨骼动画
- 文本即指令:写一句 "a dog walks forward",对应骨架就会动起来。
- 一个模型多种骨架:双腿、四足、鸟类、海洋生物、蛇形甚至铰接刚体,同一套权重通吃。
- 零重训零优化:单卡 GPU 实时出动作,换骨架不用改模型。
跑起来要多久
整个项目只依赖一个 conda 环境:Python 3.10、NVIDIA GPU(CUDA 12.4)。Blender 以 pip 模块(bpy)形式装好,不用单独安装。
git clone https://gitcode.com/GitHub_Trending/un/UniMate conda create -n unimate python=3.10 -y conda activate unimate pip install "setuptools<81" pip install -r requirements.txt --no-build-isolation| 场景 | 命令 |
|---|---|
| 训练 | accelerate launch -m unimate.training.train --config configs/uniml3d_60frames_graph_adaln.json |
| 文本生成动作 | python -m unimate.inference.sample --exp_dir <实验目录> --test_cases_json <用例文件> |
| 导出带动画网格 | SKIP_INVALID=1 bash scripts/run_animate_motion.sh <输出目录> |
8 份训练配置(4 种数据组合 × 2 种模型变体)都在 configs/,改 JSON 即可切换实验。scripts/ 下的封装脚本会自动挑显存最充足的 GPU,新手直接跑 shell 更省心。
它是怎么做到的
训练数据是UniML3D数据集:13,769 条带文本配对的运动片段,覆盖 7,430 个骨架。流水线先把不同来源的骨架做canonicalization(规范化:把各骨架的关节对齐到统一坐标系),模型就不必区分"后腿"和"左前腿"这类命名差异。
| 来源 | 内容 |
|---|---|
| Mixamo | Adobe 的人形角色动作库 |
| Truebones ZOO | 动物骨架动作资源包 |
| Objaverse-XL | 带绑定与动画的海量 3D 资产 |
训练范式是flow matching(流匹配:网络预测噪声到数据的中间速度场,采样时走几步 ODE 就能出图,比经典扩散更快更平滑)。去噪网络默认用图注意力(graph attention:沿骨架的父子拓扑处理关节,而不是把所有关节摊平),文字指令通过adaLN(自适应层归一化:用文本特征缩放、平移网络中间特征)注入每一层。文本编码器默认google/flan-t5-base,同一套机制也有全注意力 + cross-attention 的变体。
不止于演示
同一套权重免费解锁三个进阶功能,无需额外训练。它们共用替换式采样:约束帧在每一步去噪时都被精确保持,不是靠损失函数"软约束"。
动作补间:只给首尾关键帧就补全过渡
固定首尾两帧关键姿态,模型自动生成中间的平滑过渡。
适合关键帧动画场景:只 K 首尾两个 pose,用--keep_frames指定固定帧,如"0,-1"表示补齐首尾之间的全部中间帧。
文本引导动作编辑:锁定关节改动作
把指定关节锁在原轨迹上,其余部分按新提示词重新生成——保留该保留的,重动该动的。
适合手里已有一段好动作、只想改一部分的场景:--keep_joints传入关节名(如Neck,Head),配新提示词重采其余关节。
动作扩展:多段文本拼成长动画
把多条提示词排成队列,模型逐段生成并自动衔接接缝帧,串成一条连贯长序列。
适合需要长时长连续动作的场景:用例值写成提示词列表,--expand_overlap控制相邻段共享多少帧以平滑接缝。
代码地图
| 目录 | 职责 |
|---|---|
| unimate/models/ | 去噪网络与流匹配核心 |
| unimate/dataset/ | 数据加载与条件构造 |
| unimate/training/ | 训练循环、EMA 与日志 |
| unimate/inference/ | 采样入口与三大应用 |
| data_process/ | UniML3D 数据流水线 |
| configs/ | 8 份训练配置 JSON |
建议从采样入口 unimate/inference/sample.py 开始读,推理路径最短、最能看清整个数据流。
适合谁
- 🎨3D 内容创作者:为任意绑好的角色或资产批量生成动画,省去逐帧 K 帧。
- 🤖游戏与机器人研发:四足机器人、机械臂等非人形骨架也能直接出动作。
- 🔬研究者:统一骨架动画 + 流匹配的完整开源参考实现,可复现可魔改。
作者也坦诚这仍是"任意骨架文本生成动画"的早期探索,部分骨架和动作仍会失败。如果踩到坑,欢迎提 issue 反馈——这些失败案例正是让下一代模型变强的方式。
【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考