天晴动作工具组文档
首页
C3相关
天晴盒子
脚本文档
开发公约
  • MAXScript2020 Help (opens new window)
  • 3dsmax-2023-MAXScript Help (opens new window)
  • 3dsmax-2023-Max-Python Help (opens new window)
  • DeveloperSDK2023 Help (opens new window)
教程
更新
关于
  • 动画重定向
  • 3ds Max 文件降版本
  • GIF播放器
  • 表情绑定助手
  • MAXtoUnrealTools
  • MMD4Max
  • AnimFiltersMax2021
  • 分类
  • 标签
  • 归档
首页
C3相关
天晴盒子
脚本文档
开发公约
  • MAXScript2020 Help (opens new window)
  • 3dsmax-2023-MAXScript Help (opens new window)
  • 3dsmax-2023-Max-Python Help (opens new window)
  • DeveloperSDK2023 Help (opens new window)
教程
更新
关于
  • 动画重定向
  • 3ds Max 文件降版本
  • GIF播放器
  • 表情绑定助手
  • MAXtoUnrealTools
  • MMD4Max
  • AnimFiltersMax2021
  • 分类
  • 标签
  • 归档
  • CATRig

    • 创建CAT
    • 创建特别注意
    • 动画-图层
    • 动画-IK_Arm_手
    • 动画-IK_Leg_腿
    • 动画-导入-bip
    • 动画-IK固定
    • 动画-缩放拉伸
    • 导出-Motion-Extraction-Node
  • NetSDK(C#)动画曲线插件课程
  • 蒙皮增强
  • 游戏中的动画拉伸效果 - 上
  • FBXMetaData
  • Engine

    • Unity上下半身动画融混合
    • Unity资源单位
    • UE4_AnimDynamics
    • UE4_Dynamic_Simulated_Ponytail
    • UE4_径向模糊
    • UE4CharacterMovement
    • montage
    • UE4基础材质
    • unity_DynamicBone
    • 快速创建包围盒UE4
    • 跳跃动作注意
    • 虚幻EditorUtilityBlueprint_动作资源批量工具
  • MaxPython_Msx

    • Python执行MAXScript
    • 3dsMax 安装 NumPy
    • Python 编译 pyd
    • Sublime Text 发送到 3ds Max
    • Visual Studio Code 发送到 3ds Max
    • 3dsMax_Python中文编码
    • 3dsMax PySide 控件键盘输入问题
    • Max不同版本的Python差异
    • FBX_SDK_动画操作
    • Python3编译Pyd-vc14.16
  • iPhone表情捕捉3dsMax流程
  • 面部蒙皮权重处理
  • Cascadeur动画调研
  • AI视频动捕产品调研
  • RigNet自动绑定角色-AI- 部署测试
  • MotoricaAI-MoGen 动画合成
  • 3dsMax与Spine互导工具
  • EasyMocap视频动捕部署测试
  • FreeMocap无标记视频动捕部署
  • RootMotion和InPlace动画差异
  • 虚幻物理资产导出XML
  • 关闭骨骼移动带转父级的特性
  • 简易Biped绑定框架方案
  • 关于蒙皮权重镜像匹配问题介绍以及解决方案
  • GVHMR视频动捕部署
  • UniRig自动骨骼蒙皮部署
    • 其他问题
      • 蒙皮预测
      • 骨骼预测
    • Articulation-XL2.0 数据集
      • 骨骼命名风格
    • 骨骼生成
    • 生成蒙皮
      • 身体
      • 披风
    • 使用huggingface 的国内镜像
    • 安装Blender 4.2
    • pyrender版本问题
  • 教程
2025-05-20
目录

UniRig自动骨骼蒙皮部署

XXBV3JI7ADQBA

2X7FJMQ7ABQHQ

UniRig由清华大学计算机系与VAST- Tripo3d 联合研发,是首个支持全类别3D模型的自动骨骼绑定框架。该框架创新性地将骨骼结构转换为序列化标记,利用自回归模型实现拓扑结构预测。

其突破在于使用包含14,000+模型的Rig-Articulation-XL2.0数据集,通过大规模训练使模型具备跨类别泛化能力。

# 结论

  • 生成人体主体骨骼比较准确,在无人工干预的情况下生成的 骨架和 Mixamo (opens new window) 人工干预生成的差不太多,但是还没达到能代替人工操作的精度,部分关节位置有少许偏差,但各种模型都能生成骨骼,Mixamo 只能生成人型。
  • 生成蒙皮权重一般,具体效果比 Mixamo (opens new window) 差一点,但胜在通用性,各种模型都能算,其蒙皮预测模型结构 比腾讯的 GoSkining 简单太多,最终效果更是无法比较。但和 meshy.ai (opens new window) 、accurig (opens new window) 这些比较还是要强些。
  • 适应性强,人,飞鸟,动物模型都能生成不错的骨骼(没有针对人型做特别训练)。
  • 受数据集影响 预训练模型比较差,全是 Mixamo (opens new window) ,VRoid Hub (opens new window)来的角色模型,原始训练数据中的关节位置,蒙皮权重都只有非常少量的人工参与或是由业余爱好者制作,训练出来的模型肯定不会太好。

# 其他问题

  • 目前生成的骨骼没有结构命名,关于骨骼属性预测相关功能,项目说后续会放出。
  • 生成的绑定模型,会将全部模型合并,并且是重心原点,而非通常的脚底原点。
  • 只支持 Blender 导出的 fbx 格式,3dsMax 导出的FBX无法正确读取。

# 蒙皮预测

随机从原数据集中拿一个模型进行测试,左侧图是 预测蒙皮权重,右侧是原始蒙皮权重。

CROZNMI7AAAGO

# 骨骼预测

与上图同样模型,红色为预测骨架,绿色为原始骨骼。

VVI23MI7ADQD2

DGV23MI7AAAH4

抛开手指偏差,整体还原度还是非常可以的,连手肘处关节的错误都是一样的。

# 核心方法:自回归预测与创新的 Tokenization

UniRig 的核心在于借鉴了 驱动语言 和 图像生成领域进步的大型自回归模型的力量。

实现这一目标的关键创新是骨骼树 Tokenization (Skeleton Tree Tokenization) 方法。

关节坐标:骨骼关节的离散化空间位置。

层级结构:明确的父子关系,确保生成有效的树状结构。

骨骼语义:使用特殊 Token 标识骨骼类型(例如,Mixamo 等标准模板骨骼,用于头发 / 布料模拟的动态弹簧骨骼)。

这种优化的 Tokenization 方案,与朴素方法相比,序列长度减少约 30%,使得基于 OPT 架构的自回归模型能够有效地学习骨骼结构的内在模式,并以形状编码器处理后的输入模型几何信息作为条件。

项目链接

VAST-AI-Research/UniRig: One Model to Rig Them All: Diverse Skeleton Rigging with UniRig (opens new window)

论文链接

[2504.12451] One Model to Rig Them All: Diverse Skeleton Rigging with UniRig (opens new window)

# Articulation-XL2.0 数据集

本项目的预训练模型使用的 是 南洋理工和字节跳动 联合发布的 Articulation-XL2.0 (opens new window) 数据集。

而角色模型基本是在 Github.com (opens new window) ,VRoid Hub (opens new window) 上找的公开角色 fbx,vrm 资源,而且在收集过程中 渲染每个模型,让视觉语言模型 ChatGPT-4 给每个模型生成描述标题。

  • 模型绑定骨骼数量在 10 - 256之间。

  • 总共分 8 个类型:

    • mixamo(单独分类)
    • 其他人型 (Biped)
    • 四足(Quadruped)
    • 鸟,飞行 (Bird Flyer)
    • 多足蜘蛛 (Insect Arachnid)
    • 水生怪物 (Water Creature)
    • 静态(Static)
    • 其他 (Other)

# 各类别占比

ZI6AHMQ7ABABE

# 模型骨骼数量分布

44RQJMQ7AAAHU

我随机下载两个,如下

VPUV7JI7ADADQ

mixamo的模型主要都是人体主体骨骼,很少有其他附加骨骼,而 VRiod 模型则会多出 裙摆、头发等Spring 骨骼。

论文上提到的 物理模拟辅助训练策略,是指在训练模型时,对飘带骨骼进行飘带计算,来评估骨骼和蒙皮效果(个人感觉完全没有必要,用随机旋转效果可能好),而其他类型的模型,如mixamo 类,直接加载一段动画来评估,其他怪物等,采用骨骼随机角度旋转的方式来评估蒙皮效果。

虽然在模型数量上 人型占大多数,但论文作者在预训练时,人为将人型类型采样概率调整 40%

VRoid 25%, Mixamo 5%,其他人型10% ,四足 20% ,飞行 15%,静态 5%,多足 10%,水生 怪 10 % ,也就是说为了发论文,论证该方案能适应多种模型,特意调低了人型的适应性。

如果要实际落地使用,应该为不同类别训练不同的模型,毕竟各类别蒙皮复杂度和骨骼结构差异毕竟大。

提示

数据集作者认为 VRoid 模型质量比较高,所以给的采样率高达 25% ,下图是 VRoid Hub 首页截图。 从下载的模型来看,其实整个训练数据集质量并不高。

部分角色模型名单: meta_Articulation_XL_2.0.csv · Seed3D/Articulation-XL2.0 at main (opens new window)

4HVTJMQ7ACAB4

# 骨骼命名风格

国内游戏行业常用的 骨架命名风格 :3dsMax - Biped , Maya - Adv

上面的 骨骼语义 是指骨骼名字,预测骨架,预测蒙皮权重,骨骼的命名有非常大的影响权重.

# mixamorig (opens new window)命名风格

/UniRig/configs/skeleton/mixamo.yaml

NJBTDMI7ACQFC

# Vroid (opens new window) 风格

/configs/skeleton/vroid.yaml

45LDXMI7ACAAU

尚不清楚,项目中内置的两个骨架命名风格有何作用,猜测是后续输出生成骨架的命名.

# 实际测试

目前项目只放出一个 run.py 应用测试脚本,具体参数设置等没有任何说明文档。

  1. 输入模型 生成骨骼。
  2. 输入模型和骨骼 生成蒙皮权重。
  • 本次测试分两类:

    • 从其训练的数据集里挑两个模型测试其还原效果。
    • 使用全新模型进行测试。
  • 重点是蒙皮权重,骨骼生成实际应用范围比较小。

提示

  • 目前生成的骨骼没有结构命名,关于骨骼属性预测相关功能项目说后续会放出。
  • 生成的绑定模型,会将全部模型合并,并且是重心原点,而非通常的脚底原点。
  • 只支持 Blender 导出的 fbx 格式,3dsMax 导出的FBX无法正确读取。

# 骨骼生成

输入模型,直接预测生成骨骼,如下图。

没找到什么控制参数,速度挺快,但是生成的骨骼不对称,无结构命名。

POXWDMA7ACAFY

WMBWFMA7ADAFK

  1. bash launch/inference/generate_skeleton.sh --input examples/test_HF.obj --output results/test_HF_skeleton.fbx

# 生成蒙皮

7EGJZMI7ACABQ

# 身体

主体骨架命名风格

EP673MA7AAAC2

# 披风

单层,实测双层披风权重效果和也差不多,只是里外层穿帮的多。

披风骨骼命名风格

IZQPXMA7AAAG4

效果还是不错,毕竟训练的数据集里,很少有披风的模型。

  1. bash launch/inference/generate_skin.sh --num_runs 4 --input examples/skeleton/test01/PC_HF_MB_Bow-UniRig-noSkin-bl.fbx --output results/PC_HF_MB_Bow-UniRig-Skin.fbx

# 部署

📌

在 192.168.239.199 的wsl2 Ubuntu 上部署,使用CUDA12.1 环境。

在 Ubuntu 上部署基本上没啥特别地方,基础要求是:

  • Python 3.11 + CUDA 12.1
conda create -n UniRig python=3.11
conda activate UniRig
1
2

在 Ubunte 上创建的py环境,默认路径 /home/nd/miniconda3/envs/ 其中的 nd 是我系统用户名。

创建环境之后,手动安装下面 4 个包。

  1. torch-2.4.0+cu121-cp311-cp311-win_amd64.whl
  2. torch_scatter-2.1.2+pt24cu121-cp311-cp311-win_amd64.whl
  3. torch_cluster-1.6.3+pt24cu121-cp311-cp311-win_amd64.whl
  4. torchvision-0.19.0+cu121-cp311-cp311-win_amd64.whl

可以从下面两个链接中找到上面 4 个包。

  • data.pyg.org/whl/ (opens new window)
  • download.pytorch.org/whl/ (opens new window)

进入上面创建的环境 目录,拉取Github 上的项目。

cd miniconda3/envs/UniRig/
git clone https://github.com/VAST-AI-Research/UniRig
cd UniRig
1
2
3

拉取完整之后,再cd 进入 项目文件夹中。最终项目路径 miniconda3/envs/UniRig/UniRig/名为 UniRig 的环境中有个 UniRig 项目文件夹。

📌

注意 项目的 examples 文件中的 glb 模型因 LFS问题无法拉取成功,可手动下载。

接着就执行 自动安装 环境 依赖。

pip install -r requirements.txt
1

最后 安装 3 个特定版本的 依赖包。

pip install spconv-cu121
pip install numpy==1.26.4
pip install fast_simplification==0.1.7
1
2
3

到此部署完成。

# 使用huggingface 的国内镜像

https://hf-mirror.com/ (opens new window)

运行时,相关的脚本会自动从 huggingface 下载模型,但是速度比较慢,还得设置代理,而直接使用国内镜像源,不用代理,速度也快。

export HF_ENDPOINT=https://hf-mirror.com
source ~/.bashrc

#查看是否正确添加 环境变量
echo $HF_ENDPOINT
1
2
3
4
5

📌

这种环境变量设置是临时,下次链接 WSL 主机时,就会被重置。

/home/nd/.cache/huggingface/hub/models--VAST-AI--UniRig/ 下载的模路径。

# 安装Blender 4.2

该项目输入模型 直接 多种 格式,其中包括 fbx , 但不支持对 3dsMax ,Maya 导出的Fbx 。

需要提前将你的 FBX 模型导入 Blender 中洗一次出来。

导入 带骨骼的FBX设置,如下图。

# 错误解决

# pyrender版本问题

项目使用的 pyrender 0.1.45 , 但是安装d 时候因为要 PyOpenGl 配合,实际安装是 pyrender 0.1.5

而0.1.5版本修改比较多。

# 缺少 shaders

如下图,找一个 pyrender 0.1.45 的shaders 文件复制过去就行。

# /home/nd/miniconda3/envs/UniRig/UniRig/src/data/vertex_group.py

修改显示方案为 osmeas

GLTF 修改成 pyrender.constants.GLTF.TRIANGLES

get_nodes 修改成 _get_nodes

#UniRig
GVHMR视频动捕部署

← GVHMR视频动捕部署

最近更新
01
GVHMR视频动捕部署
04-20
02
关于蒙皮权重镜像匹配问题介绍以及解决方案
03-19
03
简易Biped绑定框架方案
03-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 ND|99u:199505| 鄂ICP备2022012500号 | 鄂公网安备 42022202000122号

共产主义:是对生产资料的共享,不是对生活资料财产的均分

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×