203 lines
8.4 KiB
Markdown
203 lines
8.4 KiB
Markdown
|
# 项目目标
|
|||
|
|
|||
|
我想做一个Maya的Metahuman自定义的插件,
|
|||
|
|
|||
|
语言:基于Python
|
|||
|
|
|||
|
Maya版本:2022, 2023, 2024, 2025
|
|||
|
|
|||
|
## 项目描述
|
|||
|
|
|||
|
本项目是一个Maya插件,主要功能是提供与MetaHuman相同拓扑的模型或者自定义的3d模型以来完成自定义绑定,编辑DNA,校准骨骼位置,保存DNA,载入DNA,导出fbx,保存DNA文件, 编辑BlendShape,等功能。
|
|||
|
|
|||
|
## 这个插件主要功能:
|
|||
|
|
|||
|
提供与MetaHuman相同拓扑的模型或者自定义的3d模型以来完成自定义绑定,编辑DNA,校准骨骼位置,保存DNA,载入DNA,导出fbx,保存DNA文件, 编辑BlendShape,等功能。
|
|||
|
|
|||
|
## 注意Reference路径不参与参见功能实现,只作为参考。Reference只作为参考,可以从中拷贝必要的文件到当前项目中
|
|||
|
|
|||
|
## 代码实现:
|
|||
|
|
|||
|
根据Maya和Python版本来获取plugin的路径,并尽可能使用PySide编写UI,要保证PySide的通用性,使用单独的ccs文件来定义定义样式。
|
|||
|
|
|||
|
根据Maya不同的版本来定义PySide的UI定义,版本通用性参考MSLiveLink。
|
|||
|
|
|||
|
## 参考代码:
|
|||
|
|
|||
|
DNA_Calibration中主要参考DNA编辑等功能更,SuperRigigng主要参考UI样式并获取对应的功能的实现逻辑,MSLiveLink主要参开DNA编辑和文件处理方式。
|
|||
|
|
|||
|
## 产品功能对标:
|
|||
|
|
|||
|
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/
|
|||
|
|
|||
|
## 代码基本结构:
|
|||
|
|
|||
|
.
|
|||
|
├── 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\
|
|||
|
│ ├── dna\
|
|||
|
│ │ ├── NDA文件...
|
|||
|
│ ├── icons\
|
|||
|
│ │ ├── NDA图标...
|
|||
|
├── 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模块
|
|||
|
│ │ ├── models.py 模型UI模块
|
|||
|
│ │ ├── rigging.py 绑定UI模块
|
|||
|
│ │ ├── adjust.py 调整UI模块
|
|||
|
│ │ ├── define.py 定义UI模块
|
|||
|
│ ├── utils\
|
|||
|
│ │ ├── __init__.py
|
|||
|
│ │ ├── menu.py 菜单功能模块(文件,语言,帮助菜单功能,编辑和工具菜单功能从其他功能模块引用)
|
|||
|
│ │ ├── models.py 模型功能模块
|
|||
|
│ │ ├── rigging.py 绑定功能模块
|
|||
|
│ │ ├── adjust.py 调整功能模块
|
|||
|
│ │ ├── define.py 定义功能模块
|
|||
|
│ ├── MetaFusion.py 插件启动框架
|
|||
|
├── CleanPycache.bat
|
|||
|
├── Install.mel 拖入maya安装文件
|
|||
|
├── Install.py 安装执行文件
|
|||
|
├── CleanPycache.bat
|
|||
|
|