MetaHuman custom tool
Go to file
2025-02-10 03:31:15 +08:00
.cursor/rules Update 2025-02-09 22:11:50 +08:00
assets Update 2025-02-09 21:35:41 +08:00
icons Update 2025-02-09 21:35:41 +08:00
plugins Update 2025-02-09 20:24:08 +08:00
scripts Updated 2025-02-10 03:19:08 +08:00
.gitattributes Update 2025-02-09 21:35:41 +08:00
.gitignore Update 2025-02-09 22:11:50 +08:00
CleanPycache.bat Create CleanPycache.bat 2025-01-06 23:40:23 +08:00
Install.mel Update 2025-01-11 16:53:48 +08:00
Install.py Update 2025-02-09 21:35:41 +08:00
README.md Update README.md 2025-02-10 03:31:15 +08:00

Always respond in 中文,

先阅读知识库,并按照 Readme.md 来查看文件路径以及参考品文档和参考代码来协助用户完成项目

MetaFusion 开发文档

一 本地知识库导航

1 文档

Reference\docs\Metahuman解析.pdf Reference\docs\SuperRiggingEditor使用文档.pdf Reference\DNA_Calibration\docs\dna_api.md Reference\DNA_Calibration\docs\dna_viewer_api_build_meshes.md Reference\DNA_Calibration\docs\dna_viewer_api_build_rig.md Reference\DNA_Calibration\docs\dna_viewer_API.md Reference\DNA_Calibration\docs\dna_viewer_maya.md Reference\DNA_Calibration\docs\dna_viewer.md Reference\DNA_Calibration\docs\dna.md Reference\DNA_Calibration\docs\dnacalib_api.md Reference\DNA_Calibration\docs\dnacalib.md Reference\DNA_Calibration\docs\faq.md Reference\DNA_Calibration\docs\repository_organization.md DNA_Calibration在线文档: https://epicgames.github.io/MetaHuman-DNA-Calibration

2 代码参考

Reference\DNA_Calibration Reference\MSLiveLink Reference\SuperRiggingEditor Reference\Utils

3 UI参考图片

Reference\UI

二 项目描述

1 目标

做一个Maya的Metahuman自定义的插件语言:基于PythonMaya版本:2022, 2023, 2024, 2025

项目描述

  • 本项目是一个Maya插件主要功能是提供与MetaHuman相同拓扑的模型或者自定义的3d模型以来完成自定义绑定编辑DNA校准骨骼位置保存DNA载入DNA导出fbx保存DNA文件, 编辑BlendShape,等功能。

2 主要功能

  • 提供与MetaHuman相同拓扑的模型或者自定义的3d模型以来完成自定义绑定编辑DNA校准骨骼位置保存DNA载入DNA导出fbx保存DNA文件, 编辑BlendShape,等功能。

3 注意Reference路径不参与参见功能实现只作为参考。Reference只作为参考可以从中拷贝必要的文件到当前项目中

4 代码规范

  • 所有代码必须使用UTF-8编码
  • 所有模块开头必须添加
#!/usr/bin/env python
# -*- coding: utf-8 -*-
  • 代码必须考虑兼容 Maya2022, Maya2023, Maya2024, Maya2025
  • 代码必须考虑兼容 Python3.10, Python3.11, Python3.12
  • 所有模型引用关系自动更新修正
  • UI样式必须统一的一个样式文件来实现
  • 所有UI必须使用Qt来实现
  • 所有Pyside代码必须使用 widget, layout, connection 的结构来实现
  • 文件夹结构尽量以目前的代码结构来触发实现,各个模块各功能给要条理清晰
  • 使用config.py文件来统一实现配置文件
  • 使用style.qss文件来实现UI样式
  • 功能函数放在utils文件夹中

5 文件基本结构 (参考), 以""结尾的行为文件夹

MetaFusion 文件基本结构

├── assets\
│   ├── dna\                          DNA文件路径
│   ├── img\                          DNA图标路径
│   ├── maya\                         Maya资源文件路径
│   ├── MH.2\                         MetaHuman 2.0文件路径
│   ├── MH.4\                         MetaHuman 4.0文件路径
├── icons\                            插件图标路径
├── plugins\
│   └── Linux\
│   │   ├── 2022\
│   │   ├── 2023\
│   │   ├── 2024\
│   │   ├── 2025\
│   │   ├── pydna\
│   │   │   ├── python3\
│   │   │   ├── python311\
│   │   │   ├── python397\
│   │   │   ├── python3108\
│   └── Windows\
│   │   ├── 2022\
│   │   ├── 2023\
│   │   ├── 2024\
│   │   ├── 2025\
│   │   ├── pydna\
│   │   │   ├── python3\
│   │   │   ├── python311\
│   │   │   ├── python397\
│   │   │   ├── python3108\
├── Reference\                       参考模块(不引用,仅供参考)
│   ├── DNA_Calibration              参考模块DNA_Calibration
│   ├── MSLiveLink                   参考模块MSLiveLink
│   ├── SuperRiggingEditor           参考模块SuperRiggingEditor
├── 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
│   ├── dnacalib\
│   │   ├── CMakeModulesExtra\
│   │   ├── DNACalib\
│   │   ├── PyDNA\
│   │   ├── PyDNACalib\
│   │   ├── SPyUS\
│   │   ├── CMakeLists.txt
│   ├── dnalib\
│   │   ├── __init__.py
│   │   ├── behavior.py
│   │   ├── definition.py
│   │   ├── descriptor.py
│   │   ├── dnalib.py
│   │   ├── geometry.py
│   │   ├── layer.py
│   ├── ui\
│   │   ├── __init__.py
│   │   ├── style.qss                   UI样式文件
│   │   ├── menu.py                     UI菜单UI文件
│   │   ├── toolshelf.py                UI工具架UI文件
│   │   ├── meshes.py                   UI模型UI文件
│   │   ├── rigging.py                  UI绑定UI文件
│   │   ├── behaviour.py                UI行为UI文件
│   │   ├── definition.py               UI定义UI文件
│   ├── utils\                          功能模块路径
│   │   ├── __init__.py
│   │   ├── ...                         
│   ├── MetaFusion.py                   插件主文件
│   ├── config.py                       配置文件                   
├── Install.mel                         拖入maya安装文件
├── Install.py                          安装执行文件
├── CleanPycache.bat                    清除pycache文件不修改
├── README.md                           开发文档

6 UI界面风格

  • 扁平化设计风格,
  • 要有高级感和科幻未来感
  • 圆角设计
  • 中文要清晰大气
  • 英文要简洁明了
  • 颜色要统一
  • 字体要统一
  • 字体大小要统一
  • 按钮要统一
  • 输入框要统一
  • 标签要统一

7 UI界面

UI参考图片 Reference\UI\01_Menu_File.jpg Reference\UI\02_Menu_Edit.jpg Reference\UI\03_Menu_Tools.jpg Reference\UI\04_Language.jpg Reference\UI\05_Menu_Help.jpg Reference\UI\06_Tool_Shelf.jpg Reference\UI\07_Meshes_LOD0.jpg Reference\UI\08_Meshes_LOD1.jpg Reference\UI\09_Meshes_LOD2.jpg Reference\UI\10_Meshes_LOD3.jpg Reference\UI\11_Meshes_LOD4.jpg Reference\UI\12_Meshes_LOD5.jpg Reference\UI\13_Meshes_LOD6.jpg Reference\UI\14_Meshes_LOD7.jpg Reference\UI\15_Rigging.jpg Reference\UI\16_Behaviour.jpg Reference\UI\17_Definitions.jpg

MetaFusion UI 结构

一、菜单栏
1. 文件菜单 (File)
  • 打开 DNA | icons\open.png
  • 保存 DNA | icons\save.png
  • 加载当前项目 DNA | icons\open.png
  • 修改混合目标名称 | icons\rename.png
  • 重置混合目标名称 | icons\resetname.png
  • 导出 FBX | icons\export.png
  • 退出 | icons\exit.png
2. 编辑菜单 (Edit)
  • 创建 RL4 节点 | icons\connect.png
  • 删除 RL4 节点 | icons\disconnect.png
  • 镜像左至右 | icons\mirrorL.png
  • 镜像右至左 | icons\mirrorR.png
  • 姿势由 A 型转 T 型 | icons\pose_A_To_T.png
  • 姿势由 T 型转 A 型 | icons\pose_T_To_A.png
  • 传输 LOD 贴图 | icons\locator.png
  • 设置关节颜色 | icons\color.png
  • 取消全部标记 | icons\unmark_all.png
  • 重建所有目标 | icons\rebuildTargets.png
  • 为所有表情设置关键帧 | icons\bakeAnimation.png
  • 烘焙所有表情的关键帧 | icons\centerCurrentTime.png
3. 工具菜单 (Tools)
  • 导出蒙皮 | icons\export_skin.png
  • 导入蒙皮 | icons\import_skin.png
  • 拷贝装皮 | icons\copy_skin.png
  • RBF变形器 | icons\blendShape.png
  • 快速绑定服装 | icons\clothing_weight.png
  • 克隆混合变形 | icons\blendShape.png
  • UV传递点序 | icons\repair_vertex_order.png
  • 面部生成控制器 | icons\controller.png
  • 提取52BS | icons\ARKit52.png
  • 关节轴向修复 | icons\joint.png
  • 生成身体控制器 | icons\create_body_ctrl.png
  • 导入面部动画 | icons\import_face_anim.png
  • 导入身体动画 | icons\import_body_anim.png
4. 语言菜单 (Language)
  • 中文 | icons\chinese.png
  • English | icons\english.png
5. 帮助菜单 (Help)
  • 检查更新 | icons\update.png
  • 帮助文档 | icons\help.png
  • 关于 | icons\about.png
二、工具架 横向排列
  • 保存 DNA | icons\save.png
  • 加载当前项目 DNA | icons\open.png
  • 分隔符 separator
  • 创建RL4节点 | icons\connect.png
  • 删除RL4节点 | icons\disconnect.png
  • 分隔符 separator
  • 导出 蒙皮 | icons\export_skin.png
  • 导入 蒙皮 | icons\import_skin.png
  • 复制 蒙皮 | icons\copy_skin.png
  • 分隔符 separator
  • 帮助文档 | icons\help.png
  • 关于 | icons\about.png
三、主界面功能区
1. 模型视图 (Meshes)

####### LOD选项卡 (LOD0-LOD7)

每个LOD包含以下模型项

  • LOD0: ["*头部", "*牙齿", "*牙龈", "*左眼", "*右眼", "*虹膜", "*睫毛", "*眼睑", "*软骨", "*身体"]
  • LOD1: ["头部", "牙齿", "牙龈", "左眼", "右眼", "虹膜", "睫毛", "眼睑", "软骨", "身体"]
  • LOD2: ["头部", "牙齿", "牙龈", "左眼", "右眼", "虹膜", "睫毛", "眼睑", "身体"]
  • LOD3: ["头部", "牙齿", "左眼", "右眼", "虹膜", "睫毛", "眼睑", "身体"]
  • LOD4: ["头部", "牙齿", "左眼", "右眼", "虹膜"]
  • LOD5: ["头部", "牙齿", "左眼", "右眼"]
  • LOD6: ["头部", "牙齿", "左眼", "右眼"]
  • LOD7: ["头部", "牙齿", "左眼", "右眼"]

####### 功能按钮 是在LOD0-LOD7中的底部

自动加载模型icons\load_meshes.png标准化命名icons\standardize_name.png自动分组icons\auto_group.png

####### 工具栏功能

第一行:拓扑结构(下拉框,默认MetaHuman选择LOD下拉框默认LOD0LOD1~LOD7创建LODicons\create_lod.png

第二行模型分离icons\separate.png生成面部配件icons\face_accessory.png

第三行修复法线icons\fix_normal.png修复点序icons\fix_vertex_order.png

第四行修复接缝icons\fix_seam.png

2. 绑定视图 (Rigging)

####### 预设

  • DNA浏览器
  • 图标缩放滑条; - 导入/导出设置按钮

####### 资产

  • 项目路径: 输入框; 加载按钮
  • 预设文件: 输入框; 加载按钮
  • 数据分层: 下拉框(默认:行为(包括基础定义)); - 勾选框(勾选):覆盖表情

####### 描述

  • 名称输入框默认Archetype; - 变换单位:下拉框(默认:厘米)
  • 原型:下拉框(默认:亚洲人); - 旋转单位:下拉框(默认:角度)
  • 性别:下拉框(默认:女性); - 向上轴标下拉框默认Z轴向上
  • 年龄数值调节默认24 - LOD计数数值调节默认8

####### 功能按钮

  • 清空选项icons\delete.png - 导入骨架icons\HIKCharacterToolSkeleton.png - 创建骨架icons\HIKcreateControlRig.png
3. 行为视图 (Behaviour)

####### Raw Control [000/000] (在行为视图的左侧)

  • 搜索过滤
  • BlendShape列表
  • 恢复表情按钮;- 混合筛选按钮
  • 全部按钮2按钮3按钮4按钮5按钮6按钮
  • 范围控制0.010),滑块,勾选框(未勾选), 文字"全部"
  • 范围+按钮,范围-按钮

####### Related Blend Shapes [000/000] (在行为视图的右侧)

  • 关联BlendShape列表
  • 范围控制0.000),滑块,勾选框(未勾选), 文字"全部"
  • 翻转目标 - 镜像目标 - 查找翻转目标
  • 添加混合目标 - 删除混合目标 - 批量混合目标
  • 重建混合目标 - 重建所有混合目标
  • 范围控制0.010),滑块,勾选框(未勾选), 文字"全部"
  • 范围+按钮,范围-按钮

####### 功能按钮

  • 第一行 PSD - BSE - KEY - MIR - ARK - CTR
  • 第二行 范围控制0.000),滑块,"+"按钮, 勾选框(未勾选), 文字"全部"
  • 第三行 按钮:还原默认表情;查找选择表情;写入当前表情
  • 第四行 按钮:控制面板查找;选择关联关节;写入镜像表情
4. 定义视图 (Definition)

####### LODs列表

  • LOD 0-7
  • Define Joint For LOD

####### Meshes [010/54]

  • head_lod0_mesh (000)
  • teeth_lod0_mesh (001)
  • saliva_lod0_mesh (002)
  • eyeLeft_lod0_mesh (003)
  • eyeRight_lod0_mesh (004)
  • eyeshell_lod0_mesh (005)
  • eyelashes_lod0_mesh (006)
  • eyeEdge_lod0_mesh (007)
  • Create Geometry 按钮

####### Joints [840/870]

  • FACIAL_C_NeckB Group: 001

  • FACIAL_L_NeckB1 Group: 002

  • FACIAL_R_NeckB1 Group: 003

  • FACIAL_L_NeckB2 Group: 002

  • FACIAL_R_NeckB2 Group: 003

  • FACIAL_C12PV_NeckB1 Group: 001

####### Blend Shapes [782/782]

  • brow_down_L 000

  • brow_down_R 001

  • brow_lateral_L 002

  • brow_lateral_R 003

  • brow_raiseIn_L 004

  • brow_raiseIn_R 005

####### AnimatedMap [082/82]

  • head_cm2_color.head_wm2.browsDown 000

  • head_cm2_color.head_wm2.browsDown 001

  • head_cm2_color.head_wm2.browsLate 002

  • head_cm2_color.head_wm2.browsLate 003

  • head_cm1_color.head_wm1.browsRais 004

  • head_cm1_color.head_wm1.browsRais 005

####### 操作区域

  • Write
    • Write Neutral Pose Joint Position
    • Write Geometry
    • Write Skin Weights
    • Write Blend Shapes Targets
  • Create
    • Create Blend Shapes For Mesh
    • Bind Skin For Mesh
    • Unbind Skin For Mesh
  • Tools
    • New Neutral Joint Transform
    • Quickly Create Presets