第1部分 Python和Maya的基础知识 1
第1章 Maya命令引擎和用户界面 2
1.1 与Maya进行交互 3
Maya嵌入式语言 3
Python 3
C++应用程序编程界面 3
Python API 4
1.2 在Maya中执行Python 4
命令行 4
脚本编辑器 5
Maya工具架 7
1.3 Maya命令和依存关系图 8
1.4 Python命令简介 10
1.5 标志参数和Python核心对象类型 14
数字 15
字符串 15
列表 15
元组 15
布尔型 15
标志=对象类型 15
1.6 命令模式和命令参数 16
创建模式 16
编辑模式 17
查询模式 17
1.7 Python命令参考 17
总览 18
返回值 18
相关 18
标志 19
Python示例 19
1.8 Python版本 19
1.9 Python在线文档 20
1.10 小结 20
第2章 Python数据基础知识 21
2.1 变量和数据 22
MEL中的变量 23
关键字 24
Python的数据模型 24
2.2 结合使用变量和Maya命令 27
捕获结果 28
getAttr和setAttr 28
connectAttr和disconnectAttr 29
2.3 使用数字 30
数字类型 30
基本运算符 31
2.4 使用布尔值 32
布尔运算符和位运算符 32
2.5 使用序列类型 33
运算符 33
字符串类型 36
格式化字符串 37
有关列表的更多内容 39
2.6 其他容器类型 41
集合 41
字典 42
2.7 小结 45
第3章 在Maya中编写Python程序 46
3.1 创建Python函数 47
函数定义剖析 47
函数参数 48
返回值 53
3.2 Maya命令 54
列出和选择节点 55
file命令 56
添加属性 57
3.3 迭代和分支 58
for语句 59
分支 62
列表解析 70
while语句 71
3.4 捕获错误 73
try、except、raise和finally 73
3.5 设计实用的工具 76
3.6 小结 86
第4章 模块 87
4.1 什么是模块 88
4.2 模块与范围 88
模块封装和属性 89
___main___模块 90
4.3 创建模块 91
spike模块 92
默认属性和help() 93
包 95
4.4 导入模块 97
import与reload()的比较分析 97
as关键字 98
from关键字 98
4.5 Python路径 99
sys.path 99
临时添加路径 100
userSetup脚本 101
sitecustomize模块 103
设置PYTHONPATH环境变量 105
4.6 使用Python IDE 109
下载IDE 109
基本IDE配置 110
4.7 小结 112
第5章 Maya中的面向对象编程 113
5.1 面向对象编程与过程式编程 114
在Python中实现类的基础知识 115
实例化 115
5.2 属性 116
数据属性 117
方法 119
类属性 123
Human类 125
5.3 继承 127
5.4 Maya中的过程式编程与面向对象编程 130
安装PyMEL 130
PyMEL介绍 130
PyNodes 131
PyMEL特性 131
优点和缺点 133
PyMEL示例 133
5.5 小结 135
第2部分 使用Python设计Maya工具 137
第6章 Maya工具设计原则 138
6.1 为用户设计的技巧 139
沟通和观察 139
准备、设置、规划 139
简化和培训 140
6.2 Maya中的工具 141
选择 141
标记菜单 143
选项窗口 145
6.3 小结 146
第7章 使用Maya命令创建基本工具 147
7.1 Maya命令与Maya GUI 147
7.2 基本GUI命令 149
窗口 149
7.3 构建窗口基类 150
菜单和菜单项 151
对GUI对象执行命令 154
布局和控件 159
完整的AR_OptionsWindow类 166
7.4 扩展GUI类 169
单选按钮组 170
框架布局和浮动字段组 171
颜色选取器 173
7.5 创建更高级的工具 174
姿势管理器窗口 175
将窗体与功能分开 176
使用cPickle模块序列化数据 176
使用文件对话框 178
7.6 小结 181
第8章 使用Qt设计高级图形用户界面 182
8.1 Qt与Maya 182
固定窗口 183
8.2 安装Qt工具 185
Qt SDK 186
8.3 Qt Designer 187
小组件 188
信号和插槽 188
Qt Designer实践 189
8.4 将Qt GUI加载到Maya中 192
loadUI命令 194
访问控件上的值 195
使用信号和插槽来映射小组件 196
8.5 PyQt 198
安装PyQt 198
在Maya 2011及更高版本中使用PyQt 199
在更低的Maya版本中使用PyQt 200
8.6 小结 201
第3部分 Maya Python API基础知识 203
第9章 理解C++和API文档 204
9.1 面向对象编程的高级主题 205
继承 206
虚拟函数和多态性 206
9.2 Maya API的结构 207
Maya的核心对象类MObject简介 207
9.3 Python与Maya API通信的方式 209
9.4 如何查阅API文档 210
9.5 Python与C++API之间的重要区别 218
MString和MStringArray 218
MStatus 218
Void*指针 218
代理类和对象所有权 218
带参数的命令 218
撤销 219
MScriptUtil 219
9.6 小结 219
第10章 设计命令 220
10.1 加载脚本化插件 221
10.2 脚本化命令剖析 222
OpenMayaMPx模块 223
命令类定义 223
doIt() 223
命令创建器 224
初始化和取消初始化 224
10.3 添加自定义语法 225
映射旋转顺序 228
类定义 229
语法创建器 230
语法的初始化 232
doIt() 233
doItQuery() 235
10.4 Maya的撤销/重做机制 238
10.5 支持多种命令模式和撤销/重做 241
撤销和重做 241
命令模式 242
语法创建器 244
_init_()方法 245
doIt() 246
redoIt() 250
undoIt() 251
10.6 小结 252
第11章 Maya中的数据流 253
11.1 依存关系图 253
依存关系节点 254
连接 257
调试依存关系图 259
dgTimer命令 261
11.2 有向无环图 262
DAG路径和实例化 265
对拓节点 267
11.3 小结 270
第12章 设计依存关系节点 271
12.1 脚本化节点剖析 271
ar_averageDoubles节点 272
节点类定义 273
节点创建器 274
节点初始化 274
compute() 275
初始化和取消初始化 277
12.2 属性和plug 278
属性的特性 279
可读、可写和可连接 279
可存储的属性和默认值 280
缓存的属性 280
使用数组 280
复合属性 286
12.3 小结 290