# 项目目标 我想做一个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