☰
UniMate 上手指南:3D 骨骼动画生成,一句话让任意骨架动起来
2026/10/22 7:00:13 网站建设 项目流程

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 资产——人形、机器人、动物,甚至一朵花——再附一句文字指令,它就能实时产出自然连贯的动作。不用为每种骨架单独训练,测试时也不做任何优化。本文面向刚接触文本驱动 3D 动作生成的新手,从环境安装、训练与推理命令,讲到补间、局部编辑、长动作拼接等进阶玩法,带你完整跑通这个开源项目。

先跑起来:UniMate 安装环境与推理命令

先看怎么把环境搭好、命令跑通,再回头理解模型内部是怎么回事。

三步装好环境

整个项目只需要一个 conda 环境,三步搞定:

git clone https://gitcode.com/GitHub_Trending/un/UniMate conda create -n unimate python=3.10 -y pip install -r requirements.txt --no-build-isolation

依赖清单在 requirements.txt 中,训练与推理共用同一套环境,无需额外配置。

训练与推理怎么跑

两条命令开箱即用:

场景命令
训练accelerate launch -m unimate.training.train --config configs/uniml3d_60frames_graph_adaln.json
推理python -m unimate.inference.sample --exp_dir <实验目录> --test_cases_json <用例文件>
  • configs/ 里备有 8 份训练配置,覆盖 4 种数据组合 × 2 种模型变体,改 JSON 即可切换实验
  • scripts/run_train.sh、scripts/run_sample_motion_text.sh 等封装脚本会自动激活 conda 环境、挑选显存最充足的 GPU 再启动,新手直接跑 shell 脚本最省心

核心能力:一句话驱动任意骨架动起来(文本驱动的 3D 动作生成)

传统做法是给每类骨架单独训练模型:四足机器人动不了、动物也带不动,换个骨架就得重来一遍,成本又高、覆盖又窄。UniMate 反其道而行——一个统一模型,多种骨架通吃:双腿、四足、鸟类、海洋生物、昆虫、蛇形,甚至铰接刚体,这些骨架结构都能跑。

具体用法:输入一个 JSON 测试用例,内容是"骨架类型 → 提示词"的对应关系,写一句 "a dog walks forward",对应骨架就会迈开步伐。模型随即为每种骨架生成整段动画并渲染成 MP4。仓库展示的生成结果里,履带机器人原地打转、人形机器人张开双臂、四足机器人迈开步伐、植物张开"嘴"咬向前方——全部出自同一个模型,没有针对任何一种骨架做专门训练。

原理上,模型走的是扩散 / 流匹配路线:把一段纯噪声逐步"去噪",一点点还原出真实动作,而文字指令像导航一样在每一步指引方向,最终得到 60 帧左右的连贯动画。

生成的动作存成.npy文件后,还能"贴回"原始网格:把它交给数据流水线的第 5 阶段,scripts/run_animate_motion.sh 一行命令就能导出带动画的 GLB / FBX,直接进 DCC 工具。

数据底座:UniML3D 数据集

UniMate 的效果来自 UniML3D 数据集:共 13,006 条带文本配对的运动序列,把不同来源的骨架统一到同一规范下。来源有三处:

来源内容
MixamoAdobe 的人形角色动作库
Truebones ZOO丰富的动物骨骼动作
Objaverse-XL海量 3D 资产的绑定与动画

从上图能看到数据覆盖面:人类踢腿、飞行动作、螃蟹爬行、蛇扭身、猎豹扑击,各取一段,每条都带自然语言描述——这正是"文本驱动动画"能成立的根基。

数据处理流水线从下载到动画驱动共 7 个阶段,完整说明在 data_process/README.md,各阶段脚本放在 data_process/scripts/ 下。

进阶玩法:关键帧补间、局部编辑、长序列拼接

除了"文生动作",同一模型还顺带提供三件工具,下面按"能做什么 → 怎么做"的顺序讲。

关键帧补间:首尾帧之间自动过渡

只给出动作片段的开头帧和结尾帧,中间的平滑过渡由模型自己补出——相当于把动画师手 K"中间帧"的活交给了模型。只需准备首尾两个姿势,整段过渡动作即可自动长出来,比如示例里的"蹲下再站起"。

局部编辑:锁定部分关节只改其余部分

想让角色换一套动作、但躯干姿态保持原样?用--keep_joints把髋部、脊柱等关节固定在原轨迹上,再换一句提示词重新生成剩下的部分——想留的留住,该动的动。改完之后,同样可以把输出动作导出回原网格,走 scripts/run_animate_motion.sh 产出 GLB / FBX。

长动画拼接:多段提示词接成长动作

把多条提示词排成队列,模型逐段生成并自动衔接接缝帧。"站起来 → 向前走 → 原地转身"三段文字,由此串成一条连贯的长动作序列,而不是三条互相脱节的短片段。

实现上,三者共用同一套替换式采样机制(unimate/inference/):被约束的帧在每一步去噪时都精确保持,而不是靠损失函数"软约束",因此关键帧始终纹丝不动,其余部分再自然生长。

目录速查与许可证

目录职责
unimate/models/去噪网络(图注意力 / 全注意力两种变体),以及扩散与流匹配核心
unimate/dataset/数据加载、增强与条件构造
unimate/training/训练循环、EMA 与日志记录,入口为 train.py
unimate/inference/采样入口 sample.py,以及补间 / 编辑 / 扩展三大应用
data_process/UniML3D 数据流水线(Blender 导出、渲染、VLM 字幕、关节标注)
configs/8 份训练配置 JSON
assets/论文配图资源

代码以MIT License开放,研究与商业场景都能用;不过 UniML3D 由三方数据汇成,使用时需分别遵守 Mixamo、Objaverse-XL、Truebones 各自的源许可。

适合谁用,以及几句实话

  • 🎨3D 内容创作者:给任意已绑定的角色或资产批量出动画,免去逐帧 K 帧的重复劳动
  • 🤖游戏与机器人研发:四足机器人、机械臂这类非人形骨架的动作,也能直接用
  • 🔬研究者:统一骨架动画 + 流匹配训练的完整开源参考,可作起点改造

也要说句实话:任意骨架的文本生成动画,目前仍属早期探索阶段,个别骨架配个别动作会生成失败。若踩到这类坑,欢迎提 issue 反馈——这些真实问题,正是下一代 3D 骨骼动画模型变强的养料。

【免费下载链接】UniMate[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons项目地址: https://gitcode.com/GitHub_Trending/un/UniMate

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询