UniMate快速上手指南:15分钟从环境搭建到生成你的第一个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模型,它就能自动生成人物、动物、机器人甚至植物身上自然连贯的动作,无需针对每种骨骼单独训练。本快速上手指南带你用 15 分钟完成 UniMate 环境搭建,并跑出你的第一个文生3D动画结果。
1️⃣ UniMate能做什么?
一句话:一个模型,驱动所有骨架。
- 🧍任意骨骼:人形、四足动物、鸟类、昆虫、机器人、机械臂,甚至花朵开合,同一套权重直接生成
- ✍️文本驱动:
"a dog walks forward"这样的自然语言提示即可控制动作内容 - ⚡零成本适配:不用为新骨架重新训练,也不需要推理时优化,实时生成
- 🎨免费加餐:同一个模型还能做动作补间(in-betweening)、文本编辑动作(motion editing)、动作扩展(motion expansion)
2️⃣ 环境搭建:4条命令搞定(约5分钟)
硬件要求:一块 NVIDIA GPU(CUDA 12.4)、Python 3.10、已安装 conda。
# 1. 克隆仓库 git clone https://gitcode.com/GitHub_Trending/un/UniMate.git cd UniMate # 2. 创建并激活统一的 conda 环境 conda create -n unimate python=3.10 -y conda activate unimate # 3. 安装全部依赖(训练/推理/渲染共用一个环境) pip install "setuptools<81" pip install -r requirements.txt --no-build-isolation📌 几点说明:
- 依赖一次性写全在 requirements.txt 里:PyTorch cu124、Blender 模块
bpy、T5 文本编码器等,--no-build-isolation是官方要求,别省 - 首次运行时 T5 文本编码器(
google/flan-t5-base)会从 Hugging Face 自动下载,需联网 - 官方在 Hugging Face 的
Linzhan/UniMate仓库发布了训练好的 checkpoint,下载后按下面第 4 节的目录结构放到outputs/<实验名>/即可直接推理
3️⃣ 推理前的准备:找到你的实验目录(约2分钟)
推理的起点是一个训练输出的目录,里面必须有这三样(官方 checkpoint 也是这个布局):
| 文件 | 作用 |
|---|---|
config.json | 模型结构配置,推理时据此重建网络 |
dataset_stats.npy | 归一化统计量 |
checkpoints/checkpoint_step_*.pt | 模型权重(含 EMA) |
另外,目标骨架的 T-pose 来自数据集特征目录dataset/features/<数据集名>/,所以推理机上必须存在训练时使用的该目录。
4️⃣ 生成你的第一个3D动画(约5分钟)
第 1 步:写测试用例。新建一个test_cases.json,格式为"<物体类型>-<自定义标签>": "英文动作描述"(物体类型必须存在于数据集):
{ "Dog-walk": "a dog walks forward at a steady pace", "Dragon-takeoff": "a dragon flaps its wings and takes off" }第 2 步:一条命令出动画。推荐用仓库自带的封装脚本(自动激活 conda 环境、自动选择空闲显存最多的 GPU):
bash scripts/run_sample_motion_text.sh \ outputs/uniml3d_60frames_graph_adaln test_cases.json或者直接调用推理入口 unimate/inference/sample.py:
python -m unimate.inference.sample \ --exp_dir outputs/uniml3d_60frames_graph_adaln \ --test_cases_json test_cases.json \ --num_repetitions 3第 3 步:看结果。输出目录(默认<exp_dir>/samples)里会生成:
motions/*.npy—— 生成动作特征(T, J, 12)animations/*_fk.mp4—— 每条样本的骨架渲染视频 🎬animations/<物体类型>_tpos.png—— 作为条件的 T-pose 图captions.json—— 每个.npy对应的提示词
🔧常用参数速查:
| 参数 | 作用 |
|---|---|
--cfg_scale | 文本引导强度(≥1.0,默认读训练配置) |
--model_path | 指定某个 checkpoint,默认取最新步数 |
--num_repetitions | 每个用例生成几条样本 |
--seed | 固定随机种子,结果可复现 |
--batch_size | 推理批大小,显存不够就调小 |
--only_save_motion | 只存.npy跳过渲染,速度更快 |
5️⃣ 进阶玩法:同一个模型再送三个应用
不需要任何额外训练,只需换个脚本参数:
动作补间(In-betweening)——固定首尾关键帧,自动生成中间过渡:
KEEP_FRAMES="0,-1" bash scripts/run_sample_motion_inbetween.sh \ outputs/uniml3d_60frames_graph_adaln cases.json文本编辑动作(Motion Editing)——锁定部分骨骼(如躯干),用新提示词重生成其余部位:
KEEP_JOINTS="Hips,Spine,Neck,Head" bash scripts/run_sample_motion_edit.sh \ outputs/uniml3d_60frames_graph_adaln cases.json动作扩展(Motion Expansion)——把多条提示词串成一段长动作,段间自动重叠衔接:
EXPAND_OVERLAP=10 bash scripts/run_sample_motion_expand.sh \ outputs/uniml3d_60frames_graph_adaln cases.json💡 补间和编辑的
cases.json键必须是数据集里真实存在的<物体类型>-<片段ID>,GT 动作会保存在结果旁边方便对比;三种模式都要求--cfg_scale > 1.0且互斥。
6️⃣ 常见问题 FAQ
Q:想自己训练一个新模型?复制一份 configs/uniml3d_60frames_graph_adaln.json 改参数,然后:
bash scripts/run_train.sh configs/uniml3d_60frames_graph_adaln.json -- --batch_size 8多 GPU 则用accelerate launch --num_processes 8 -m unimate.training.train --config <配置>。
Q:显存不够 / 爆显存?优先调小--batch_size(推理)或training.batch_size(训练),显存占用约正比于 batch × 帧数 × 关节数。
Q:训练不稳定、loss 出现尖刺?官方提示大概率是数据问题(如 Objaverse 中姿态异常的 rig),建议先用 Mixamo + Truebones 子集验证。详见 README.md 的 Troubleshooting 一节。
Q:生成失败或效果不佳?UniMate 自称是早期版本,部分动作和骨架仍会失败,欢迎在仓库 issue 区反馈帮助改进。
7️⃣ 资料导航
| 想了解 | 看这里 |
|---|---|
| 项目总览与完整文档 | README.md |
| 全部依赖与环境说明 | requirements.txt |
| 8 套训练配置(数据组合 × 注意力变体) | configs/ |
| 推理入口与全部命令行参数 | unimate/inference/sample.py |
| 三大应用实现 | unimate/inference/ |
| 数据流水线(下载→渲染→标注→动画) | data_process/README.md |
| 驱动网格模型导出 GLB/FBX | data_process/mesh_animation/ |
| 许可证(MIT) | LICENSE |
按照上面的步骤走完,你已经完成了 UniMate 从环境搭建到文生3D动画的完整闭环。下一步不妨尝试用--save_ric对比两种渲染,或者把.npy交给 scripts/run_animate_motion.sh 驱动真实网格——你的第一个 3D 动画角色已经在动了 🎬
【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考