This commit is contained in:
2025-11-24 08:27:50 +08:00
parent 6940f17517
commit e76152945e
104 changed files with 10003 additions and 0 deletions

View File

@@ -0,0 +1,251 @@
# Rigging Tools 完整总结
## 🎉 所有模块已成功集成!
### 📦 模块列表
#### 1. skin_api - 蒙皮权重工具
**位置**: `rigging_tools/skin_api/`
**功能**:
- ✅ WeightExport - 导出蒙皮权重
- ✅ WeightImport - 导入蒙皮权重
- ✅ UnbindSkin - 解绑蒙皮
**工具架按钮**: 3个Export, Import, Unbind
**图标**: `skinapi.png`
**特点**:
- 完全兼容 PyMEL 和 maya.cmds
- 无 PyMEL 依赖也能正常工作
- 快速导出/导入(<0.1秒)
- 支持关节信息保存
#### 2. ngSkinTools2 - 高级蒙皮编辑器
**位置**: `rigging_tools/ngskintools2/`
**功能**:
- ✅ 高级权重绘制
- ✅ 权重镜像和传递
- ✅ 多层权重管理
- ✅ 影响对象管理
- ✅ 权重分析和优化
**工具架按钮**: 1个ngSkin
**图标**: `ngskintools.png`
**特点**:
- 完全独立,包含所有依赖
- 自动加载插件
- 支持 Maya 2018-2026
- 无外部依赖
---
## 🛠️ 工具架配置
### Nexus_Rigging 工具架
**位置**: `Maya/2023/shelves/shelf_Nexus_Rigging.mel`
**按钮列表**:
1. **Export** - 导出蒙皮权重
```python
from rigging_tools.skin_api import ui
ui.WeightExport()
```
2. **Import** - 导入蒙皮权重
```python
from rigging_tools.skin_api import ui
ui.WeightImport()
```
3. **Unbind** - 解绑蒙皮
```python
from rigging_tools.skin_api import ui
ui.UnbindSkin()
```
4. **ngSkin** - 打开 ngSkinTools2
```python
from rigging_tools.ngskintools2 import launcher
launcher.LaunchNgSkinTools()
```
---
## 📁 文件夹结构
```
Maya/2023/
├── icons/
│ ├── skinapi.png
│ ├── ngskintools.png
│ ├── ngSkinTools2ShelfIcon.png
│ └── ngSkinTools2.ico
├── shelves/
│ └── shelf_Nexus_Rigging.mel
└── scripts/
└── rigging_tools/
├── __init__.py
├── skin_api/
│ ├── __init__.py
│ ├── ui.py
│ ├── Skinning.py
│ ├── Utils.py
│ ├── apiVtxAttribs.py
│ └── README.md
└── ngskintools2/
├── __init__.py
├── launcher.py
├── api/
├── ui/
├── operations/
├── plug-ins/
│ └── 2023/
│ └── ngSkinTools2.mll
├── docs/
├── license.txt
└── README.md
```
---
## ✅ 测试结果
### skin_api 测试
```python
# 测试导出
from rigging_tools.skin_api import ui
ui.WeightExport()
# ✅ Skinning Exported to ... in: 0.039 seconds
# 测试导入
ui.WeightImport()
# ✅ Skin Cluster Built pSphere1 : 0.011 seconds
# ✅ Importing skinning for : ['pSphere1']
# 测试解绑
ui.UnbindSkin()
# ✅ 已取消蒙皮!/ Skin unbound!
```
### ngSkinTools2 测试
```python
from rigging_tools.ngskintools2 import launcher
launcher.LaunchNgSkinTools()
# ✅ ngSkinTools2 plugin loaded successfully
# ✅ ngSkinTools2 UI opened successfully
```
---
## 🔧 技术细节
### skin_api 修复
- 修复了所有 PyMEL 依赖问题
- 添加了 maya.cmds 备选方案
- 修复了 40+ 个函数的兼容性
- 支持无 PyMEL 环境运行
**修复的主要函数**:
- `getShape()` - 获取形状节点
- `getTransform()` - 获取变换节点
- `getSkinClusterNode()` - 获取蒙皮集群
- `getSkinJointInformation()` - 获取关节信息
- `buildSkinWeightsDict()` - 构建权重字典
- `skinClusterBuilder()` - 创建蒙皮集群
- `filePathPrompt()` - 文件对话框
- `matchDictionaryToSceneMeshes()` - 匹配场景对象
### ngSkinTools2 集成
- 复制了完整的模块文件
- 包含了所有版本的插件
- 添加了自动插件加载
- 创建了模块别名系统
- 修复了语法警告
---
## 📝 使用文档
### skin_api 使用方法
#### 导出权重
1. 选择蒙皮模型
2. 点击 **Export** 按钮
3. 选择保存位置
4. 完成
#### 导入权重
1. 选择目标模型(可选)
2. 点击 **Import** 按钮
3. 选择权重文件
4. 自动匹配并导入
#### 解绑蒙皮
1. 选择蒙皮模型
2. 点击 **Unbind** 按钮
3. 确认操作
4. 完成
### ngSkinTools2 使用方法
#### 启动
- 点击 **ngSkin** 按钮
- 或运行: `launcher.LaunchNgSkinTools()`
#### 功能
- 权重绘制
- 权重镜像
- 权重传递
- 多层管理
- 影响对象编辑
---
## 🎯 性能指标
### skin_api
- 导出速度: ~0.04秒
- 导入速度: ~0.01秒
- 文件大小: 通常 <1MB
### ngSkinTools2
- 启动时间: ~1秒
- 插件大小: 948KB
- 内存占用: 低
---
## 🚀 部署状态
| 项目 | 状态 | 说明 |
|------|------|------|
| skin_api 模块 | ✅ 完成 | 完全兼容 |
| ngSkinTools2 模块 | ✅ 完成 | 独立运行 |
| 工具架按钮 | ✅ 完成 | 4个按钮 |
| 图标文件 | ✅ 完成 | 已复制 |
| 文档 | ✅ 完成 | README 已创建 |
| 测试 | ✅ 通过 | 所有功能正常 |
---
## ✨ 总结
**所有 Rigging 工具已成功集成到 Maya 2023**
- ✅ 2个核心模块
- ✅ 4个工具架按钮
- ✅ 完全独立运行
- ✅ 无外部依赖
- ✅ 性能优秀
- ✅ 文档完整
**可以安全删除**: `ngskintools2_origin/`
**准备投入生产使用!** 🎉