致谢 xi引言:欢迎使用maya python xii第 1 部分 python和maya的基础知识 1第 1 章 maya 命令引擎和用户界面 21.1 与maya 进行交互 3 maya 嵌入式语言 3 python 3 c++ 应用程序编程界面 3 python api 41.2 在maya 中执行python 4 命令行 4 脚本编辑器 5 maya 工具架 71.3 maya 命令和依存关系图 81.4 python 命令简介 101.5 标志参数和python 核心对象类型 14 数字 15 字符串 15 列表 15 元组 15 布尔型 15 标志=对象类型 151.6 命令模式和命令参数 16 创建模式 16 编辑模式 17 查询模式 171.7 python命令参考 17 总览 18 返回值 18 相关 18 标志 19 python 示例 191.8 python 版本 191.9 python 在线文档 201.10 小结 20第 2 章 python 数据基础知识 212.1 变量和数据 22 mel 中的变量 23 关键字 24 python 的数据模型 242.2 结合使用变量和maya 命令 27 捕获结果 28 getattr 和setattr 28 connectattr 和disconnectattr 292.3 使用数字 30 数字类型 30 基本运算符 312.4 使用布尔值 32 布尔运算符和位运算符 322.5 使用序列类型 33 运算符 33 字符串类型 36 格式化字符串 37 有关列表的更多内容 392.6 其他容器类型 41 集合 41 字典 422.7 小结 45第 3 章 在maya 中编写python 程序 463.1 创建python 函数 47 函数定义剖析 47 函数参数 48 返回值 533.2 maya 命令 54 列出和选择节点 55 file 命令 56 添加属性 573.3 迭代和分支 58 for语句 59 分支 62 列表解析 70 while 语句 713.4 捕获错误 73 try、except、raise 和finally 733.5 设计实用的工具 763.6 小结 86第 4 章 模块 874.1 什么是模块 884.2 模块与范围 88 模块封装和属性 89 _main_模块 904.3 创建模块 91 spike模块 92 默认属性和help() 93 包 954.4 导入模块 97 import 与reload() 的比较分析 97 as 关键字 98 from关键字 984.5 python 路径 99 sys.path 99 临时添加路径 100 usersetup 脚本 101 sitecustomize 模块 103 设置pythonpath 环境变量 1054.6 使用python ide 109 下载ide 109 基本ide 配置 1104.7 小结 112第 5 章 maya 中的面向对象编程 1135.1 面向对象编程与过程式编程 114 在python 中实现类的基础知识 115 实例化 1155.2 属性 116 数据属性 117 方法 119 类属性 123 human 类 1255.3 继承 1275.4 maya 中的过程式编程与面向对象编程… 130 安装pymel 130 pymel 介绍 130 pynodes 131 pymel 特性 131 优点和缺点 133 pymel 示例 1335.5 小结 135第 2 部分 使用python 设计maya 工具 137第 6 章 maya 工具设计原则 1386.1 为用户设计的技巧 139 沟通和观察 139 准备、设置、规划 139 简化和培训 1406.2 maya 中的工具 141 选择 141 标记菜单 143 选项窗口 1456.3 小结 146第 7 章 使用maya 命令创建基本工具 1477.1 maya 命令与maya gui 1477.2 基本gui 命令 149 窗口 1497.3 构建窗口基类 150 菜单和菜单项 151 对gui 对象执行命令 154 布局和控件 159 完整的ar_optionswindow 类 1667.4 扩展gui 类 169 单选按钮组 170 框架布局和浮动字段组 171 颜色选取器 1737.5 创建更高级的工具 174 姿势管理器窗口 175 将窗体与功能分开 176 使用cpickle 模块序列化数据 176 使用文件对话框 1787.6 小结 181第 8 章 使用qt 设计高级图形用户界面 1828.1 qt 与maya 182 固定窗口 1838.2 安装qt 工具 185 qt sdk 1868.3 qt designer 187 小组件 188 信号和插槽 188 qt designer 实践 1898.4 将qt gui 加载到maya 中 192 loadui 命令 194 访问控件上的值 195 使用信号和插槽来映射小组件 1968.5 pyqt 198 安装pyqt 198 在maya 2011 及更高版本中使用pyqt 199 在更低的maya 版本中使用pyqt 2008.6 小结 201第 3 部分 maya python api 基础知识 203第 9 章 理解c++ 和api 文档 2049.1 面向对象编程的高级主题 205 继承 206 虚拟函数和多态性 2069.2 maya api 的结构 207 maya 的核心对象类mobject 简介 2079.3 python 与maya api 通信的方式 2099.4 如何查阅api文档 2109.5 python与c++ api 之间的重要区别 218 mstring 和mstringarray 218 mstatus 218 void* 指针 218 代理类和对象所有权 218 带参数的命令 218 撤销 219 mscriptutil 2199.6 小结 219第 10 章 设计命令 22010.1 加载脚本化插件 22110.2 脚本化命令剖析 222 openmayampx 模块 223 命令类定义 223 doit() 223 命令创建器 224 初始化和取消初始化 22410.3 添加自定义语法 225 映射旋转顺序 228 类定义 229 语法创建器 230 语法的初始化 232 doit() 233 doitquery() 23510.4 maya 的撤销/ 重做机制 23810.5 支持多种命令模式和撤销/ 重做 241 撤销和重做 241 命令模式 242 语法创建器 244 _init_() 方法 245 doit() 246 redoit() 250 undoit() 25110.6 小结 252第 11 章 maya 中的数据流 25311.1 依存关系图 253 依存关系节点 254 连接 257 调试依存关系图 259 dgtimer 命令 26111.2 有向无环图 262 dag 路径和实例化 265 对拓节点 26711.3 小结 270第 12 章 设计依存关系节点 27112.1 脚本化节点剖析 271 ar_averagedoubles 节点 272 节点类定义 273 节点创建器 274 节点初始化 274 compute() 275 初始化和取消初始化 27712.2 属性和plug 278 属性的特性 279 可读、可写和可连接 279 可存储的属性和默认值 280 缓存的属性 280 使用数组 280 复合属性 28612.3 小结 290