Files
Nexus/2023/scripts/animation_tools/atools/FINAL_STRUCTURE.md
2025-11-25 02:04:55 +08:00

5.7 KiB

aTools 最终结构说明

扁平化结构完成

文件结构(最终版本)

animation_tools/
└── atools/                         # aTools 模块
    ├── __init__.py                # 主入口模块
    ├── setup.py                   # 设置模块
    ├── README.md                  # 使用文档
    ├── TEST_ATOOLS.py             # 测试脚本
    ├── CHECKLIST.md               # 功能检查清单
    ├── MIGRATION_COMPLETE.md      # 迁移文档
    ├── FINAL_STRUCTURE.md         # 本文件
    ├── animTools/                 # 动画工具 (22 文件)
    │   ├── animBar/
    │   │   ├── animBarUI.py
    │   │   └── subUIs/
    │   ├── animationCrashRecovery.py
    │   ├── framePlaybackRange.py
    │   └── jumpToSelectedKey.py
    ├── commonMods/                # 通用模块 (6 文件)
    │   ├── animMod.py
    │   ├── aToolsMod.py
    │   ├── commandsMod.py
    │   ├── uiMod.py
    │   └── utilMod.py
    ├── generalTools/              # 通用工具 (7 文件)
    │   ├── aToolsClasses.py
    │   ├── aToolsGlobals.py
    │   ├── generalToolsUI.py
    │   ├── hotkeys.py
    │   └── ...
    └── img/                       # UI 图标 (159 文件)

🔄 改动说明

1. 移除了 aTools/ 子文件夹

之前(两层嵌套):

atools/
└── aTools/          # ❌ 额外的一层
    ├── animTools/
    ├── commonMods/
    └── generalTools/

现在(扁平化):

atools/              # ✅ 扁平化
├── animTools/
├── commonMods/
├── generalTools/
├── img/
└── setup.py

2. 修改了所有导入语句

修改前(使用绝对路径):

from aTools.generalTools.aToolsGlobals import aToolsGlobals as G
from aTools.commonMods import animMod
from aTools.animTools.animBar import animBarUI
from aTools import setup

修改后(使用相对导入):

from generalTools.aToolsGlobals import aToolsGlobals as G
from commonMods import animMod
from animTools.animBar import animBarUI
import setup

修改的关键文件:

  • animBarUI.py - 主 UI 入口
  • generalToolsUI.py - 通用工具 UI
  • offlineInstall.py - 离线安装
  • setup.py - 设置模块
  • 以及其他 24+ 个模块文件

3. 更新的文件

Python 文件 - 28 个文件的导入已修改

  • animTools/ - 18 个文件
  • commonMods/ - 4 个文件
  • generalTools/ - 5 个文件
  • setup.py - 1 个文件

模块文件

  • __init__.py - 更新导入路径
  • TEST_ATOOLS.py - 更新测试路径
  • README.md - 更新文档

📋 修改统计

  • 总文件数: 195+ 个
  • 修改的 Python 文件: 28 个
  • 导入语句修改: 100+ 处
  • 文档更新: 3 个文件

🎯 使用方法(不变)

# 从 Python
import animation_tools.atools
animation_tools.atools.show()

# 从 Maya Shelf
# 点击 aTools 按钮

# 从 MEL
python("import animation_tools.atools; animation_tools.atools.show()");

优势

  1. 结构更清晰 - 少了一层嵌套
  2. 导入更简洁 - from commonMods import 而不是 from aTools.commonMods import
  3. 易于理解 - 文件组织更直观
  4. 维护更方便 - 减少路径复杂度

🔍 工作原理

1. 用户调用

import animation_tools.atools
animation_tools.atools.show()

2. atools/__init__.py 执行

def _ensure_atools_loaded():
    # 添加 atools 文件夹到 sys.path
    if _current_dir not in sys.path:
        sys.path.insert(0, _current_dir)

3. 导入链(扁平化后)

sys.path 包含: .../animation_tools/atools/
                                    ├── animTools/        ← 直接在这里
                                    │   ├── animBar/
                                    │   │   ├── animBarUI.py
                                    │   │   └── subUIs/
                                    │   └── ...
                                    ├── commonMods/       ← 直接在这里
                                    │   ├── animMod.py
                                    │   ├── utilMod.py
                                    │   └── ...
                                    ├── generalTools/     ← 直接在这里
                                    │   ├── aToolsGlobals.py
                                    │   └── ...
                                    ├── img/              ← 159 个图标
                                    └── setup.py

4. 所有导入正常工作

# 在 atools 模块内部
from animTools.animBar import animBarUI                    # ✅ 成功
from commonMods import animMod                              # ✅ 成功
from generalTools.aToolsGlobals import aToolsGlobals as G  # ✅ 成功
import setup                                                # ✅ 成功

# 外部调用(用户使用)
import animation_tools.atools                               # ✅ 成功
animation_tools.atools.show()                               # ✅ 成功

📝 测试清单

  • 在 Maya 中导入模块
  • 启动 Animation Bar
  • 测试 Tween Machine
  • 测试关键帧工具
  • 测试特殊工具
  • 验证 UI 图标显示
  • 测试所有子工具

🎉 完成状态

文件结构 - 扁平化完成
导入修改 - 28 个文件已更新
文档更新 - README 和测试脚本已更新
准备测试 - 可以在 Maya 中测试


最后更新: 2025-11-25
状态: 扁平化完成,准备测试