DreamWall Picker
Animation picker for Autodesk Maya 2017 (or higher)
作者
- Lionel Brouyère
- Olivier Evers
This tool is a fork of Hotbox Designer (Lionel Brouyère). A menus, markmenu and hotbox designer cross DCC. https://github.com/luckylyk/hotbox_designer
🔧 版本兼容性
支持的 Maya 版本
- Maya 2017-2024 - 使用 PySide2
- Maya 2025+ - 使用 PySide6
- 自动适配 - 运行时自动检测 Maya 版本并使用对应的 Qt 绑定
Qt 兼容性
- PySide2 - Maya 2017-2024(自动)
- PySide6 - Maya 2025+(自动)
- Python 2/3 - 完全兼容
兼容性特性
- 自动 Qt 检测 - 根据 Maya 版本自动选择 PySide2 或 PySide6
- API 映射 - PySide6 API 自动映射到 PySide2 兼容接口
- 向后兼容 - 支持旧版本 picker 文件的自动升级
- 跨版本数据 - Picker 文件在不同 Maya 版本间通用
功能特性
- 简单快速的 picker 创建
- 导入 2022 年之前的 AnimSchool pickers
- 在 Maya 场景中存储 picker
- 高级 picker 编辑器
- 实现 AnimSchool picker 的所有功能,甚至更多...
使用方法
在 Python 中启动
import animation_tools.dwpicker
animation_tools.dwpicker.show()
带参数启动
import animation_tools.dwpicker
# 只读模式
animation_tools.dwpicker.show(editable=False)
# 加载指定的 picker 文件
animation_tools.dwpicker.show(pickers=['/path/to/picker.json'])
# 忽略场景中的 pickers
animation_tools.dwpicker.show(ignore_scene_pickers=True)
模块修改说明
此模块已从原始的 dwpicker 包修改为 animation_tools.dwpicker 子模块:
- 主模块导入(dwpicker/*.py):
from dwpicker.xxx→from .xxx - 一级子模块导入(designer/*.py):
- 引用父模块:
from dwpicker.xxx→from ..xxx - 引用同级:
from .canvas→ 保持不变
- 引用父模块:
- 二级子模块导入(ingest/animschool/*.py):
- 引用根模块:
from dwpicker.xxx→from ...xxx(三个点) - 引用同级:
from .parser→ 保持不变
- 引用根模块:
- 跨模块导入:
from dwpicker import xxx→from .. import xxx - 代码执行模板:
import dwpicker→import animation_tools.dwpicker as dwpicker - 保持所有原始功能不变
💡 技术架构
核心模块
- main.py - 主窗口和核心逻辑
- picker.py - Picker 画布和交互
- designer/ - Picker 设计器模块
- pyside.py - Qt 版本兼容层
- compatibility.py - 数据格式兼容性处理
兼容性层次
┌─────────────────────────────┐
│ DwPicker UI │
└──────────┬──────────────────┘
│
┌──────────▼──────────────────┐
│ pyside.py (兼容层) │
│ - PySide6 (Maya 2025+) │
│ - PySide2 (Maya 2017-2024) │
└──────────┬──────────────────┘
│
┌──────────▼──────────────────┐
│ Maya API │
│ - maya.cmds │
└─────────────────────────────┘
官方文档
更多信息请访问 Official Documentation