第1章 表达式、脚本和Plug-in
1.1 超越Maya界面
1.2 Maya表达式
1.2.1 表达式与动画
1.2.2 表达式与材质
1.2.3 表达式与动力学
1.3 脚本
1.3.1 脚本应用
1.3.2 脚本与表达式
1.3.3 MEL脚本
1.4 Plug-in
1.5 内容回顾
第2章 第一个表达式——直升机螺旋桨
2.1 例2-1:螺旋桨的旋转
2.1.1 案例制作
2.1.2 实例说明
2.1.3 匀速变化的动画曲线与运动规律
2.2 例2-2:螺旋桨启动——加速运动
2.2.1 案例制作
2.2.2 实例说明
2.2.3 螺旋桨的完成动作——重新构造表达式
2.3 表达式编辑窗口
2.3.1 表达式操作过程
2.3.2 表达式编辑窗口菜单
2.4 Maya的预定义函数
Maya预定义函数的类型
2.5 内容回顾
第3章 滚动的箱子(一)
3.1 任务分析
3.2 例3-1:用表达式控制骨链动画
3.2.1 案例制作
3.2.2 表达式分析说明
3.3 数据变量
3.3.1 变量的类型
3.3.2 变量的定义
3.3.3 变量的匹配
3.3.4 变量的表示
3.4 运算
3.4.1 数学运算
3.4.2 关系运算
3.4.3 逻辑运算
3.5 条件语句
3.5.1 if语句
3.5.2 switch语句
3.6 重新构造表达式
3.7 内容回顾
第4章 滚动的箱子(二)
4.1 任务分析
4.2 用表达式控制箱子滚动
4.2.1 转动第一个90°
4.2.2 找到通用公式
4.2.3 修改动画
4.3 滚动五棱柱
4.3.1 分析五棱柱的滚动过程
4.3.2 用表达式控制五棱柱的滚动
4.4 滚动六棱柱
4.5 内容回顾
第5章 推拉门
5.1 任务分析
5.2 用locator的移动控制推拉门
5.2.1 一个推拉单元
5.2.2 两个推拉单元
5.2.3 分析N个单元的推拉门
5.2.4 表达式控制的完整推拉门
5.2.5 重写控制推拉门的表达式
5.2.6 对新表达式的说明
5.3 数组变量
5.4 循环语句
5.4.1 循环语句的基本形式
5.4.2 while循环
5.4.3 do-while循环
5.4.4 for循环
5.4.5 for-in循环
5.4.6 continue 语句和break语句
5.5 表达式与MEL命令
5.6 内容回顾
第6章 音响指示灯
6.1 任务分析
6.2 例6-1——简单音响灯效果
6.3 案例说明
6.4 例6-2——音响设备指示灯组
6.5 案例补充说明
6.6 内容回顾
第7章 动力学表达式——龙卷风
7.1 粒子系统的特性
7.1.1 多态性
7.1.2 生命值
7.1.3 过程控制与初始状态
7.1.4 粒子系统的表达式
7.2 任务分析
7.3 例7-1——龙卷风的制作过程
7.4 表达式分析
7.4.1 运动分解
7.4.2 例7-2——粒子沿曲线运动
7.4.3 圆周运动的数学描述
7.4.4 例7-3——粒子的圆周运动
7.4.5 例7-4——沿螺旋线运动的粒子
7.4.6 例7-5——沿渐开螺旋线运动的粒子
7.4.7 描述龙卷风的外轮廓线
7.4.8 例7-6——龙卷风雏形
7.4.9 例7-7——分散粒子分布
7.4.10 加入控制曲线影响
7.5 内容回顾
第8章 海面
8.1 海面制作
8.1.1 操作步骤
8.1.2 制作分析
8.1.3 改进控制
8.1.4 重新制作海面
8.2 内容回顾
第9章 MEL概述
9.1 自己的第一个脚本
9.1.1 记录一个MEL命令
9.1.2 Scripts Editor操作说明
9.1.3 深入了解sphere命令
9.1.4 sphere命令的其他状态
9.2 MEL命令的一般形式
9.2.1 MEL命令的使用格式
9.2.2 MEL命令的修饰词
9.2.3 MEL中的常用符号
9.2.4 MEL命令与脚本命令
9.3 物体的显隐开关
9.3.1 制作一个物体显隐切换开关
9.3.2 简化脚本
9.3.3 修改脚本
9.4 内容回顾
第10章 建立操作窗口
10.1 Maya窗口元素
10.1.1 Attribute Editor窗口元素
10.1.2 窗口命令的分类
10.2 建立窗口
10.2.1 定义新窗口命令——Window
10.2.2 显示窗口命令——showWindow
10.3 窗口布局
10.3.1 formLayout命令
10.3.2 columnLayout命令
10.3.3 rowLayout 命令
10.3.4 scrollLayout命令
10.3.5 frameLayout命令
10.3.6 setParent 命令
10.3.7 deleteUI 命令
10.4 控制体的一般工作方式
10.4.1 反应方式
10.4.2 控制过程
10.5 颜色控制体
10.5.1 attrColorSliderGrp命令
10.5.2 colorIndexSliderGrp命令
10.6 数字输入控制体
10.6.1 数字输入控制体所包含的内容
10.6.2 floatField命令
10.6.3 floatFieldGrp命令
10.6.4 floatSlider 命令
10.6.5 floatSliderButtonGrp 命令
10.6.6 floatSliderGrp 命令
10.6.7 intField 命令
10.6.8 intFieldGrp 命令
10.6.9 intSlider 命令
10.6.10 intSliderGrp 命令
10.7 文字控制体
10.7.1 text 命令
10.7.2 textField 命令
10.7.3 textFieldButtonGrp 命令
10.7.4 textFieldGrp 命令
10.8 选择控制体
10.8.1 radioButton 命令
10.8.2 radioButtonGrp 命令
10.8.3 checkBoxGrp 命令
10.9 按钮命令——button
10.10 内容回顾
第11章 用户菜单文件
11.1 制作菜单
11.1.1 menu命令
11.1.2 menuItem命令
11.1.3 setParent命令
11.2 自动调用的用户菜单
11.2.1 用户菜单文件
11.2.2 菜单文件的调用过程
11.3 内容回顾
第12章 属性编辑工具
12.1 任务分析
12.2 录入脚本
12.3 脚本剖析
12.3.1 窗口内容分析
12.3.2 调用内容分析
12.4 操作窗口
12.4.1 操作窗口界面代码
12.4.2 操作窗口代码中的固定格式
12.4.3 操作窗口代码中的容错处理
12.4.4 操作窗口的界面元素
12.4.5 窗口界面元素布局调整
12.4.6 操作窗口状态切换
12.5 场景操作
12.5.1 脚本任务分析
12.5.2 脚本内容
12.5.3 脚本固定格式行
12.5.4 读取窗口参数信息
12.5.5 物体列表
12.5.6 nodeType命令
12.5.7 节点类型判断
12.5.8 修改属性状态操作
12.6 编辑、保存脚本文件
12.6.1 编辑脚本文件
12.6.2 保存文件
12.7 内容回顾
第13章 自定义符号
13.1 任务分析
13.2 合并物体形状节点
13.2.1 parent命令
13.2.2 改变形状节点父节点
13.3 撰写脚本
13.3.1 脚本工作方式
13.3.2 脚本工作内容列表
13.3.3 脚本逻辑过程
13.3.4 脚本内容
13.3.5 测试脚本
13.3.6 Freeze Transformations操作
13.3.7 makeIdentity命令
13.3.8 修改脚本
13.3.9 脚本剖析
13.4 内容回顾
第14章 尾巴控制系统
14.1 任务说明
14.1.1 控制方式
14.1.2 控制系统关联关系
14.1.3 脚本操作方式
14.1.4 脚本任务列表
14.2 相关命令
14.2.1 createNode 命令
14.2.2 listRelatives 命令
14.2.3 ikHandle命令
14.2.4 spaceLocator 命令
14.2.5 xform 命令
14.2.6 group 命令
14.2.7 move 命令
14.2.8 stringArrayRemove 命令
14.2.9 aimConstraint命令
14.2.10 pointConstraint命令
14.2.11 orientConstraint命令
14.2.12 connectAttr命令
14.3 脚本内容说明
14.3.1 脚本代码
14.3.2 脚本结构
14.3.3 创建控制器模块
14.3.4 创建IK系统模块
14.3.5 制作控制关系模块
14.3.6 操作窗口模块
14.3.7 工具起动模块
14.4 脚本不足之处
14.5 内容回顾
第15章 绘制玫瑰线
15.1 任务说明
15.2 curve命令
15.3 eval命令
15.4 脚本剖析
15.4.1 编辑脚本
15.4.2 调用脚本
15.4.3 脚本分析
15.4.4 脚本改进
15.5 内容回顾
第16章 文件检查
16.1 任务说明
16.2 字符串操作命令
16.2.1 substituteAllString命令
16.2.2 tokenize命令
16.3 文件操作命令
16.3.1 fopen命令
16.3.2 fprint命令
16.3.3 fgetline命令
16.3.4 fclose命令
16.3.5 workspace命令
16.3.6 file命令
16.3.7 filetest命令
16.4 其他命令
16.4.1 symbolButton命令
16.4.2 confirmDialog命令
16.4.3 脚本命令setWorkingDirectory和fileBrowser
16.5 文件检查脚本
16.5.1 脚本内容
16.5.2 脚本剖析
16.5.3 特殊模块说明
16.6 内容回顾
第17章 物体批量改名
17.1 脚本的工作方式
17.2 脚本说明
17.2.1 脚本内容
17.2.2 操作窗口
17.2.3 改名操作主程序
17.2.4 给指定物体加前缀
17.2.5 给指定物体加后缀
17.2.6 替换物体名中的字符
17.2.7 物体形状节点改名
17.2.8 重新命名指定物体
17.2.9 文件结构
17.3 内容回顾
附录A Maya函数
A.1 限制函数
A.1.1 取整函数
A.1.2 ceil向上取整
A.1.3 floor向下取整
A.1.4 trunc截断取整
A.1.5 int取整
A.1.6 abs绝对值函数
A.1.7 clamp夹函数
A.1.8 min函数
A.1.9 max函数
A.1.10 sign符号函数
A.2 幂函数
A.2.1 幂函数的数学含义
A.2.2 exp函数
A.2.3 log函数
A.2.4 log10函数
A.2.5 pow函数
A.2.6 sqrt函数
A.3 三角函数
A.3.1 三角函数概述
A.3.2 cos函数
A.3.3 cosd函数
A.3.4 sin函数
A.3.5 sind函数
A.3.6 tan函数
A.3.7 tand函数
A.3.8 acos函数
A.3.9 acosd函数
A.3.10 asin函数
A.3.11 asind函数
A.3.12 atan函数
A.3.13 atand函数
A.3.14 atan2函数
A.3.15 atan2d函数
A.4 向量函数
A.4.1 mag模函数
A.4.2 unit单位函数
A.4.3 angle夹角函数
A.4.4 cross叉积函数
A.4.5 dot点积函数
A.4.6 rot旋转函数
A.5 转换函数
A.5.1 deg_to_rad
A.5.2 rad_to_deg
A.5.3 hsv_to_rgb
A.5.4 rgb_to_hsv
A.6 阵列函数
A.6.1 size函数
A.6.2 sort函数
A.6.3 clear函数
A.7 随机函数
A.7.1 gauss函数
A.7.2 noise函数
A.7.3 dnoise 函数
A.7.4 rand 函数
A.7.5 sphrand 函数
A.7.6 seed
附录B 常用MEL命令
B.1 通用MEL命令
B.1.1 ls命令
B.1.2 select命令
B.1.3 getAttr命令
B.1.4 setAttr命令
B.1.5 parent命令
B.1.6 makeIdentity命令
B.1.7 group 命令
B.1.8 move 命令
B.1.9 spaceLocator 命令
B.1.10 xform 命令
B.2 用户窗口命令
B.2.1 定义新窗口命令——window
B.2.2 显示窗口命令——showWindow
B.3 窗口布局
B.3.1 formLayout命令
B.3.2 columnLayout命令
B.3.3 rowLayout 命令
B.3.4 scrollLayout命令
B.3.5 frameLayout命令
B.3.6 setParent 命令
B.3.7 deleteUI 命令
B.4 颜色控制体
B.4.1 attrColorSliderGrp命令
B.4.2 colorIndexSliderGrp命令
B.5 数字输入控制体
B.5.1 数字输入控制体所包含的内容
B.5.2 floatField命令
B.5.3 floatFieldGrp命令
B.5.4 floatSlider 命令
B.5.5 floatSliderButtonGrp 命令
B.5.6 floatSliderGrp 命令
B.5.7 intField 命令
B.5.8 intFieldGrp 命令
B.5.9 intSlider 命令
B.5.10 intSliderGrp 命令
B.6 文字控制体
B.6.1 text 命令
B.6.2 textField 命令
B.6.3 textFieldButtonGrp 命令
B.6.4 textFieldGrp 命令
B.7 选择控制体
B.7.1 radioButton 命令
B.7.2 radioButtonGrp 命令
B.7.3 radioCollection 命令
B.7.4 checkBoxGrp 命令
B.8 按钮命令——button
B.9 菜单命令
B.9.1 menu命令
B.9.2 menuItem命令
B.10 其他窗体命令
B.10.1 symbolButton命令
B.10.2 confirmDialog命令
B.10.3 脚本命令setWorkingDirectory和fileBrowser
B.11 NURBS相关常用命令
B.11.1 pointOnCurve命令
B.11.2 pointOnSurface命令
B.12 节点操作命令
B.12.1 createNode 命令
B.12.2 nodeType命令
B.12.3 listRelatives 命令
B.12.4 connectAttr命令
B.13 字符处理
B.13.1 tokenize命令
B.13.2 stringArrayRemove 命令
B.14 设置操作命令
B.14.1 ikHandle 命令
B.14.2 aimConstraint命令
B.14.3 pointConstraint 命令
B.14.4 orientConstraint 命令
B.14.5 expression命令
B.14.6 dynExpression 命令
B.15 文件操作命令
B.15.1 fopen命令
B.15.2 fprint命令
B.15.3 fgetline命令
B.15.4 fclose命令
B.15.5 workspace命令
B.15.6 file命令
B.15.7 filetest命令
附录C 常用MEL命令列表
附录D 向量的点乘与叉乘
D.1 向量的点乘(dot product)
D.2 向量的叉积(矢性积)(cross product)