2025-02-05 22:39:45 +08:00
|
|
|
|
# 项目目标
|
|
|
|
|
|
|
|
|
|
我想做一个Maya的Metahuman自定义的插件,
|
|
|
|
|
|
|
|
|
|
语言:基于Python
|
|
|
|
|
|
|
|
|
|
Maya版本:2022, 2023, 2024, 2025
|
|
|
|
|
|
|
|
|
|
## 项目描述
|
|
|
|
|
|
|
|
|
|
本项目是一个Maya插件,主要功能是提供与MetaHuman相同拓扑的模型或者自定义的3d模型以来完成自定义绑定,编辑DNA,校准骨骼位置,保存DNA,载入DNA,导出fbx,保存DNA文件, 编辑BlendShape,等功能。
|
|
|
|
|
|
2025-02-05 23:03:56 +08:00
|
|
|
|
## 这个插件主要功能
|
2025-02-05 22:39:45 +08:00
|
|
|
|
|
|
|
|
|
提供与MetaHuman相同拓扑的模型或者自定义的3d模型以来完成自定义绑定,编辑DNA,校准骨骼位置,保存DNA,载入DNA,导出fbx,保存DNA文件, 编辑BlendShape,等功能。
|
|
|
|
|
|
|
|
|
|
## 注意Reference路径不参与参见功能实现,只作为参考。Reference只作为参考,可以从中拷贝必要的文件到当前项目中
|
|
|
|
|
|
2025-02-05 23:03:56 +08:00
|
|
|
|
## 代码实现
|
2025-02-05 22:39:45 +08:00
|
|
|
|
|
|
|
|
|
根据Maya和Python版本来获取plugin的路径,并尽可能使用PySide编写UI,要保证PySide的通用性,使用单独的ccs文件来定义定义样式。
|
|
|
|
|
|
|
|
|
|
根据Maya不同的版本来定义PySide的UI定义,版本通用性参考MSLiveLink。
|
|
|
|
|
|
2025-02-05 23:03:56 +08:00
|
|
|
|
## 参考代码
|
2025-02-05 22:39:45 +08:00
|
|
|
|
|
|
|
|
|
DNA_Calibration中主要参考DNA编辑等功能更,SuperRigigng主要参考UI样式并获取对应的功能的实现逻辑,MSLiveLink主要参开DNA编辑和文件处理方式。
|
|
|
|
|
|
2025-02-05 23:03:56 +08:00
|
|
|
|
## 产品功能对标
|
2025-02-05 22:39:45 +08:00
|
|
|
|
|
|
|
|
|
DNA Calibration Document : https://epicgames.github.io/MetaHuman-DNA-Calibration/index.html
|
|
|
|
|
|
|
|
|
|
MetaHuman-DNA-Calibration 代码:https://github.com/EpicGames/MetaHuman-DNA-Calibration
|
|
|
|
|
|
|
|
|
|
SuperRigging:https://docs.pointart.net/
|
|
|
|
|
|
|
|
|
|
AnimCraft:https://geekdaxue.co/read/animcraft@cn/
|
|
|
|
|
|
2025-02-05 23:03:56 +08:00
|
|
|
|
## 代码基本结构
|
2025-02-05 22:39:45 +08:00
|
|
|
|
|
2025-02-07 05:10:30 +08:00
|
|
|
|
以"\"结尾的行为文件夹
|
|
|
|
|
|
|
|
|
|
```.
|
2025-02-05 22:39:45 +08:00
|
|
|
|
├── dnacalib\
|
|
|
|
|
│ ├── CMakeModulesExtra\
|
|
|
|
|
│ ├── DNACalib\
|
|
|
|
|
│ ├── PyDNA\
|
|
|
|
|
│ ├── PyDNACalib\
|
|
|
|
|
│ ├── SPyUS\
|
|
|
|
|
│ ├── CMakeLists.txt
|
|
|
|
|
├── plugins\
|
|
|
|
|
│ └── Linux\
|
|
|
|
|
│ │ ├── 2022\
|
|
|
|
|
│ │ │ ├── _py3dnacalib.so
|
|
|
|
|
│ │ │ ├── dnacalib.py
|
|
|
|
|
│ │ │ ├── libdnacalib.so.6
|
|
|
|
|
│ │ │ ├── libembeddedRL4.so
|
|
|
|
|
│ │ │ ├── libembeddedRL4.so.8
|
|
|
|
|
│ │ │ ├── libembeddedRL4.so.8.0.8
|
|
|
|
|
│ │ │ ├── MayaUE4RBFPlugin2022.mll
|
|
|
|
|
│ │ │ ├── MayaUERBFPlugin.mll
|
|
|
|
|
│ │ ├── 2023\
|
|
|
|
|
│ │ │ ├── _py3dnacalib.so
|
|
|
|
|
│ │ │ ├── dnacalib.py
|
|
|
|
|
│ │ │ ├── libdnacalib.so.6
|
|
|
|
|
│ │ │ ├── libembeddedRL4.so
|
|
|
|
|
│ │ │ ├── libembeddedRL4.so.8
|
|
|
|
|
│ │ │ ├── libembeddedRL4.so.8.0.8
|
|
|
|
|
│ │ │ ├── MayaUE4RBFPlugin2023.mll
|
|
|
|
|
│ │ │ ├── MayaUERBFPlugin.mll
|
|
|
|
|
│ │ ├── 2024\
|
|
|
|
|
│ │ │ ├── _py3dnacalib.so
|
|
|
|
|
│ │ │ ├── dnacalib.py
|
|
|
|
|
│ │ │ ├── libdnacalib.so.6
|
|
|
|
|
│ │ │ ├── libembeddedRL4.so
|
|
|
|
|
│ │ │ ├── MayaUERBFPlugin.mll
|
|
|
|
|
│ │ ├── 2025\
|
|
|
|
|
│ │ │ ├── _py3dnacalib.so
|
|
|
|
|
│ │ │ ├── dnacalib.py
|
|
|
|
|
│ │ │ ├── embeddedRL4.so
|
|
|
|
|
│ │ │ ├── libdnacalib.so.6
|
|
|
|
|
│ │ │ ├── MayaUERBFPlugin.mll
|
|
|
|
|
│ │ ├── pydna\
|
|
|
|
|
│ │ │ ├── python3
|
|
|
|
|
│ │ │ │ ├── _py3dna.so
|
|
|
|
|
│ │ │ │ ├── dna.py
|
|
|
|
|
│ │ │ │ ├── libdna.so.7.1.0
|
|
|
|
|
│ │ │ ├── python311
|
|
|
|
|
│ │ │ │ ├── _py3dna.so
|
|
|
|
|
│ │ │ │ ├── dna.py
|
|
|
|
|
│ │ │ │ ├── libdna.so.7
|
|
|
|
|
│ │ │ ├── python397
|
|
|
|
|
│ │ │ │ ├── _py3dna.so
|
|
|
|
|
│ │ │ │ ├── dna.py
|
|
|
|
|
│ │ │ │ ├── libdna.so.7.1.0
|
|
|
|
|
│ │ │ ├── python3108
|
|
|
|
|
│ │ │ │ ├── _py3dna.so
|
|
|
|
|
│ │ │ │ ├── dna.py
|
|
|
|
|
│ │ │ │ ├── libdna.so.7.1.0
|
|
|
|
|
│ └── Windows\
|
|
|
|
|
│ │ ├── 2022\
|
|
|
|
|
│ │ │ ├── _py3dnacalib.pyd
|
|
|
|
|
│ │ │ ├── dnacalib.dll
|
|
|
|
|
│ │ │ ├── dnacalib.py
|
|
|
|
|
│ │ │ ├── embeddedRL4.mll
|
|
|
|
|
│ │ │ ├── MayaUE4RBFPlugin2022.mll
|
|
|
|
|
│ │ │ ├── MayaUERBFPlugin.mll
|
|
|
|
|
│ │ ├── 2023\
|
|
|
|
|
│ │ │ ├── _py3dnacalib.pyd
|
|
|
|
|
│ │ │ ├── dnacalib.dll
|
|
|
|
|
│ │ │ ├── dnacalib.py
|
|
|
|
|
│ │ │ ├── embeddedRL4.mll
|
|
|
|
|
│ │ │ ├── MayaUE4RBFPlugin2023.mll
|
|
|
|
|
│ │ │ ├── MayaUERBFPlugin.mll
|
|
|
|
|
│ │ ├── 2024\
|
|
|
|
|
│ │ │ ├── _py3dnacalib.pyd
|
|
|
|
|
│ │ │ ├── dnacalib.dll
|
|
|
|
|
│ │ │ ├── dnacalib.py
|
|
|
|
|
│ │ │ ├── embeddedRL4.mll
|
|
|
|
|
│ │ │ ├── MayaUERBFPlugin.mll
|
|
|
|
|
│ │ ├── 2025\
|
|
|
|
|
│ │ │ ├── _py3dnacalib.pyd
|
|
|
|
|
│ │ │ ├── dnacalib.dll
|
|
|
|
|
│ │ │ ├── dnacalib.py
|
|
|
|
|
│ │ │ ├── embeddedRL4.mll
|
|
|
|
|
│ │ │ ├── MayaUERBFPlugin.mll
|
|
|
|
|
│ │ ├── pydna\
|
|
|
|
|
│ │ │ ├── python3\
|
|
|
|
|
│ │ │ │ ├── _py3dna.pyd
|
|
|
|
|
│ │ │ │ ├── dna.dll
|
|
|
|
|
│ │ │ │ ├── dna.py
|
|
|
|
|
│ │ │ ├── python311\
|
|
|
|
|
│ │ │ │ ├── _py3dna.pyd
|
|
|
|
|
│ │ │ │ ├── _py3dna9_4_3.pyd
|
|
|
|
|
│ │ │ │ ├── dna.dll
|
|
|
|
|
│ │ │ │ ├── dna.py
|
|
|
|
|
│ │ │ │ ├── dna9_4_3.dll
|
|
|
|
|
│ │ │ │ ├── polyalloc1_3_12.dll
|
|
|
|
|
│ │ │ │ ├── statuscode1_2_6.dll
|
|
|
|
|
│ │ │ │ ├── trio4_0_16.dll
|
|
|
|
|
│ │ │ ├── python397\
|
|
|
|
|
│ │ │ │ ├── _py3dna.pyd
|
|
|
|
|
│ │ │ │ ├── dna.dll
|
|
|
|
|
│ │ │ │ ├── dna.py
|
|
|
|
|
│ │ │ ├── python3108\
|
|
|
|
|
│ │ │ │ ├── _py3dna.pyd
|
|
|
|
|
│ │ │ │ ├── dna.dll
|
|
|
|
|
│ │ │ │ ├── dna.py
|
|
|
|
|
├── Reference\ 参考模块(不引用,仅供参考)
|
|
|
|
|
│ ├── DNA_Calibration 参考模块:DNA_Calibration
|
|
|
|
|
│ ├── MSLiveLink 参考模块:MSLiveLink
|
|
|
|
|
│ ├── SuperRiggingEditor 参考模块:SuperRiggingEditor
|
|
|
|
|
├── resources\
|
2025-02-07 05:10:30 +08:00
|
|
|
|
│ ├── assets\
|
|
|
|
|
│ │ ├── YAxisUp\
|
|
|
|
|
│ │ │ ├── full_rig.mb Y轴向上全身绑定Maya基础文件
|
|
|
|
|
│ │ │ ├── sub_ctrl.mb Y轴向上次级控制器Maya基础文件
|
|
|
|
|
│ │ ├── ZAxisUp\
|
|
|
|
|
│ │ │ ├── full_rig.mb Z轴向上全身绑定Maya基础文件
|
|
|
|
|
│ │ │ ├── sub_ctrl.mb Z轴向上次级控制器Maya基础文件
|
2025-02-05 22:39:45 +08:00
|
|
|
|
│ ├── dna\
|
|
|
|
|
│ │ ├── NDA文件...
|
|
|
|
|
│ ├── icons\
|
|
|
|
|
│ │ ├── NDA图标...
|
2025-02-07 05:10:30 +08:00
|
|
|
|
│ ├── data\
|
|
|
|
|
│ │ ├── MetaHuman\
|
|
|
|
|
│ │ │ ├── Deploy.dna 部署dna
|
|
|
|
|
│ │ │ ├── JointsInfo.json 骨骼基础信息
|
|
|
|
|
│ │ │ ├── VertexsInfo.json 顶点基础信息
|
|
|
|
|
│ │ ├── ARKit.json ARKit基础信息
|
|
|
|
|
│ │ ├── BodyJoints.json 身体骨骼基础信息
|
|
|
|
|
│ │ ├── JointsInfluence.json 骨骼影响基础信息
|
|
|
|
|
│ │ ├── Topology.json 拓扑基础信息
|
|
|
|
|
│ ├── maps\ 贴图路径(DDS)
|
|
|
|
|
│ ├── mask\ Mask贴图路径(TGA)
|
|
|
|
|
│ ├── meta_anim\
|
|
|
|
|
│ │ ├── meta_body_anim.py MetaHuman Body Animation
|
|
|
|
|
│ │ ├── meta_face_anim.py MetaHuman Face Animation
|
|
|
|
|
│ ├── meta_body_ctrl\
|
|
|
|
|
│ │ ├── meta_body_ctrl.py MetaHuman Body Control
|
|
|
|
|
│ ├── meta_motion_apply\
|
|
|
|
|
│ │ ├── match_files\
|
|
|
|
|
│ │ │ ├── metahuman_match_file.txt MetaHuman Motion 资源依赖文件
|
|
|
|
|
│ │ │ ├── meta_motion_apply.py MetaHuman Motion 应用
|
|
|
|
|
│ ├── shaders\
|
|
|
|
|
│ │ ├── dx11_shd_body.fx DX11身体材质
|
|
|
|
|
│ │ ├── dx11_shd_eyeLeft.fx DX11左眼球材质
|
|
|
|
|
│ │ ├── dx11_shd_eyeRight.fx DX11右眼球材质
|
|
|
|
|
│ │ ├── dx11_shd_head.fx DX11头材质
|
|
|
|
|
│ │ ├── dx11_shd_teeth.fx DX11牙齿材质
|
|
|
|
|
│ ├── skinCluster\
|
|
|
|
|
│ │ ├── CTRL_Root_Face.skin Skin Cluster
|
|
|
|
|
│ ├── additional_assemble_script.py 附加组装脚本
|
|
|
|
|
│ ├── analog_gui.ma 模拟图形用户界面MA文件
|
|
|
|
|
│ ├── gui.ma Maya GUI文件
|
|
|
|
|
│ ├── vtx_color.py 顶点色配置
|
2025-02-05 22:39:45 +08:00
|
|
|
|
├── scripts\
|
|
|
|
|
│ ├── builder\
|
|
|
|
|
│ │ ├── maya\
|
|
|
|
|
│ │ │ ├── __init__.py
|
|
|
|
|
│ │ │ ├── mesh.py
|
|
|
|
|
│ │ │ ├── skin_weights.py
|
|
|
|
|
│ │ │ ├── util.py
|
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
│ │ ├── builder.py
|
|
|
|
|
│ │ ├── config.py
|
|
|
|
|
│ │ ├── joint.py
|
|
|
|
|
│ │ ├── mesh.py
|
|
|
|
|
│ │ ├── rig_builder.py
|
|
|
|
|
│ ├── config\
|
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
│ │ ├── data.py 配置变量
|
|
|
|
|
│ ├── dnalib\
|
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
│ │ ├── behavior.py
|
|
|
|
|
│ │ ├── definition.py
|
|
|
|
|
│ │ ├── descriptor.py
|
|
|
|
|
│ │ ├── dnalib.py
|
|
|
|
|
│ │ ├── geometry.py
|
|
|
|
|
│ │ ├── layer.py
|
|
|
|
|
│ ├── ui\
|
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
│ │ ├── Qt.py Qt模块:根据Maya不同版本来设置Qt相关的模块
|
|
|
|
|
│ │ ├── style.qss 样式文件
|
|
|
|
|
│ │ ├── menu.py 菜单UI模块
|
|
|
|
|
│ │ ├── toolshelf.py 工具栏UI模块
|
2025-02-07 05:10:30 +08:00
|
|
|
|
│ │ ├── mesh.py 模型UI模块
|
2025-02-05 22:39:45 +08:00
|
|
|
|
│ │ ├── rigging.py 绑定UI模块
|
|
|
|
|
│ │ ├── adjust.py 调整UI模块
|
|
|
|
|
│ │ ├── define.py 定义UI模块
|
2025-02-07 05:10:30 +08:00
|
|
|
|
│ │ ├── menu_utils.py 菜单UI功能模块(文件,语言,帮助菜单功能,编辑和工具菜单功能从其他功能模块引用)
|
|
|
|
|
│ │ ├── mesh_utils.py 模型UI功能模块
|
|
|
|
|
│ │ ├── rigging_utils.py 绑定UI功能模块
|
|
|
|
|
│ │ ├── adjust_utils.py 调整UI功能模块
|
|
|
|
|
│ │ ├── define_utils.py 定义UI功能模块
|
|
|
|
|
│ ├── utils\ 功能模块
|
2025-02-05 22:39:45 +08:00
|
|
|
|
│ │ ├── __init__.py
|
2025-02-07 05:10:30 +08:00
|
|
|
|
│ │ ├── ... 功能模块
|
2025-02-05 22:39:45 +08:00
|
|
|
|
│ ├── MetaFusion.py 插件启动框架
|
2025-02-07 05:10:30 +08:00
|
|
|
|
├── CleanPycache.bat
|
2025-02-05 22:39:45 +08:00
|
|
|
|
├── Install.mel 拖入maya安装文件
|
|
|
|
|
├── Install.py 安装执行文件
|
|
|
|
|
├── CleanPycache.bat
|
2025-02-07 05:10:30 +08:00
|
|
|
|
├── Metahuman.pdf 官方Metahuman解析说明文档```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 参考这些文件,并基于目前的项目文件来完善项目:
|
|
|
|
|
|
|
|
|
|
DNA Calibration Document : https://epicgames.github.io/MetaHuman-DNA-Calibration/index.html
|
|
|
|
|
MetaHuman-DNA-Calibration 代码:https://github.com/EpicGames/MetaHuman-DNA-Calibration
|
|
|
|
|
@Metahuman.pdf
|