ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RigNet 自动绑骨实战:3 步把静态 OBJ 变成可动 FBX

RigNet 自动绑骨实战:3 步把静态 OBJ 变成可动 FBX RigNet 自动绑骨实战3 步把静态 OBJ 变成可动 FBX【免费下载链接】RigNetCode for SIGGRAPH 2020 paper RigNet: Neural Rigging for Articulated Characters项目地址: https://gitcode.com/gh_mirrors/ri/RigNet你手里有一个没绑骨架的角色 OBJ 模型想让它自动长出骨骼并导出可动 FBX这篇 RigNet 教程就干这件事这个 SIGGRAPH 2020 项目用四条深度网络自动完成关节预测、骨骼连接、蒙皮权重最终生成 FBX。环境准备克隆、装依赖、放权重git clone https://gitcode.com/gh_mirrors/ri/RigNet cd RigNet conda create --name rignet python3.7 -y conda activate rignet conda install pytorch1.12.0 torchvision0.13.0 cudatoolkit11.3 -c pytorch pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-1.12.0cu113.html pip install torch-geometric1.7.2 pip install numpy scipy matplotlib tensorboard open3d0.9.0 opencv-python rtree0.8,0.9 trimesh[easy]再下载官方训练好的 checkpoints 压缩包解压到项目根目录让checkpoints/与quick_start.py平级——推理用的四个网络关节、根节点、骨骼连接、蒙皮权重都在里面不用自己训。核心工作流quick_start.py 一条流水线跑python quick_start.py脚本按数据流转依次做四件事输入归一化读quick_start/{model_id}_remesh.obj没有的话会自动把{model_id}_ori.obj二次边塌缩到 4000 顶点左右缩放到单位盒子并用仓库自带的binvox体素化成 88³ 网格后面靠它判断点/骨在模型内外。关节预测JointNet 先把顶点推到候选关节位置再走 meanshift 聚类 非极大值抑制得到一组关节点utils/cluster_utils.py 里的聚类逻辑。骨骼连接RootNet 定根节点BoneNet 给所有关节两两打分转成代价矩阵后跑对称版 Prim 最小生成树得到完整骨架层级。蒙皮权重SkinNet 对每个顶点只取最近的 5 根骨头、结合体积测地距离预测权重再做邻域平滑和截断归一化最后按最近邻把权重搬回原始网格落盘为quick_start/{model_id}_ori_rig.txtjoint/root/hier/skin四段文本。拿到 rig txt 后在 Maya或 mayapy里跑maya_save_fbx.py导入 OBJ、按 txt 建关节链和 skinCluster、赋权重导出{model_id}.fbx。一条命令就完成 FBX 生成。关键参数速查model_id→ 默认17872→ 决定跑哪个样例。换自己的模型就命名成{id}_ori.obj放进quick_start/脚本会自动 remesh。bandwidth/threshold→ 默认None网络预测值约 0.043/1e-5→ meanshift 带宽与关节密度过滤阈值。bandwidth 调大关节会合并、骨骼变稀疏threshold 调小则保留更多关节点假关节变多。陌生模型先按默认跑。downsample_skinning→ 默认True→ 用子采样加速体积测地距离计算改成False更准但吃 CPU 内存和时间。训练侧run_joint_pretrain.py、run_joint_finetune.py、run_pair_cls.py、run_root_cls.py、run_skinning.py真正影响结果的是lr、train_batch、epoch三个其余路径参数按 README 顺序填DATASET_DIR即可想复现全管线需先python gen_dataset.py生成训练数据。输出与验收产物一quick_start/{model_id}_ori_rig.txt。打开检查joint行应落在身体表面上hier行连成一棵树且只有一个root每个顶点的skin权重和为 1。产物二Maya 导出的 FBX。导入后随便摆几个 pose——关节处不撕裂、四肢能转动就算验收通过。跑的过程中会弹一个 Open3D 小窗口显示骨架叠加在网格上的效果utils/vis_utils.py关节位置对不对一眼就能看出来无头服务器上这一步会跳过。避坑提示⚠️ remesh 后顶点数建议控制在 1K~5K直接喂高模会让关节预测跑飞官方流程也是先降采样再推理。 ⚠️ Windows 用户要装预编译的 Rtreecp37 wheel且 open3d 必须钉死 0.9.0装新大版本会 API 报错。 ⚠️maya_save_fbx.py里model_id和D:\路径是硬编码的跑之前记得改成你的 OBJ 和 rig txt 位置。改完model_id重跑python quick_start.py去quick_start/看新生成的{model_id}_ori_rig.txt前几行joint是否长在身体上就是第一道检查。【免费下载链接】RigNetCode for SIGGRAPH 2020 paper RigNet: Neural Rigging for Articulated Characters项目地址: https://gitcode.com/gh_mirrors/ri/RigNet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表