目录 5
EXPRESSIONS篇 5
第1部分 EXPRESSIONS BASIC 5
1 EXPRESSIONS简介 5
关于EXPRESSIONS 5
从何处创建EXPRESSIONS 6
2 EXPRESSIONS语法 9
EXPRESSIONS和MEL 9
EXPRESSIONS元素 10
属性 11
静态属性 12
动态属性 12
自定义属性 12
属性名 13
属性的数据类型 14
为属性赋值 16
变量 17
变量数据类型 17
预定义变量 18
自定义变量 19
常量 22
算术运算符、逻辑运算符和关系运算符 22
算术运算符 22
关系运算符 24
逻辑运算符 26
运算符优先级 26
if语句 27
条件语句 27
if-else语句 28
else if语句 29
常用语法规则 30
EXPRESSIONS中的注释 32
编程特性 32
C语言程序员的注意事项 32
EXPRESSIONS关键字 33
流控制语句 33
流控制错误 42
字符串用法 43
赋值运算符简写 44
快捷增量运算符和减量运算符 45
数组 45
布尔符号常量 47
常见的程序错误 47
错误信息格式 47
常见错误信息 48
查找EXPRESSIONS 53
通过EXPRESSIONS名查找 53
3 编辑EXPRESSIONS 53
第2部分 USING EXPRESSIONS 53
通过选定对象查找 54
通过选项类型查找 55
使用Selection列表 56
从Selection列表中筛选属性 57
在EXPRESSIONS中编辑文本 57
使用文本编辑器编辑EXPRESSIONS 58
选择文本编辑器(UNIX) 59
选择文本编辑器(Windows) 59
使用Editor菜单中没有列出的编辑器(UNIX) 60
更改编辑器的操作设置(UNIX) 60
选择默认启动的编辑器(UNIX) 61
创建一个新EXPRESSIONS 62
删除一个EXPRESSIONS 62
在EXPRESSIONS中使用属性名 62
使用属性名缩写 63
在EXPRESSIONS中省略对象名 64
综合运用缩写技巧 65
4 高级内容 67
EXPRESSIONS执行的频率 67
在EXPRESSIONS中使用自定义属性 68
显示属性和变量的内容 71
重现随机 71
加快EXPRESSIONS执行 74
减少冗余EXPRESSIONS的执行 77
从EXPRESSIONS中移除一个属性 78
解除属性联系 78
在EXPRESSIONS中显示被解除联系的属性 79
连接属性和符号占位符 80
重命名对象 82
在EXPRESSIONS中执行MEL命令 83
理解路径名 86
理解无法预料的属性值 86
倒放操作后的值 86
递增操作 87
数据类型转换 88
理解粒子EXPRESSIONS 91
5 粒子EXPRESSIONS 91
理解CREATION EXPRESSIONS的执行 92
设置动力学起始帧 93
为初始状态使用设置属性 93
编写CREATION EXPRESSIONS 94
理解RUNTIME EXPRESSIONS的执行 94
编写RUNTIME EXPRESSIONS 95
使用粒子属性 99
添加动态属性 100
理解per particle属性和per object属性 100
理解初始状态属性 101
为动态per particle属性赋值的示例 103
为动态per object属性赋值的示例 104
为自定义属性赋值 105
为不同长度的粒子形数组属性赋值 108
在runtime EXPRESSIONS中使用creation EXPRESSIONS的值 108
使用位置、速度和加速度 109
使用颜色 111
使用发射粒子 111
使用碰撞 112
使用特定的粒子 116
使用lifespan 116
为矢量和矢量数组赋值 120
粒子属性列表 122
第3部分 FUNCTION 133
6 函数 133
理解函数 133
函数语法 134
数据类型 135
abs函数 136
理解本章中的函数示例 136
界限函数 136
ceil函数 137
floor函数 137
clamp函数 138
min函数 138
max函数 139
sign函数 139
trunc函数 139
log函数 140
log10函数 140
指数函数 140
exp函数 140
pow函数 141
sqrt函数 141
三角函数 142
cos函数 142
cosd函数 143
sin函数 144
sind函数 147
tan函数 148
tand函数 148
acos函数 148
acosd函数 149
asin函数 149
asind函数 149
atan2d函数 150
atan2函数 150
atand函数 150
atan函数 150
hypot函数 151
矢量函数 151
angle函数 151
Cross函数 152
dot函数 152
mag函数 153
rot函数 154
rad_to_deg函数 155
deg_to_rad函数 155
unit函数 155
转换函数 155
hsv_to_rgb函数 156
rgb_to_hsv函数 156
数组函数 157
clear函数 157
size函数 157
sort函数 158
gauss函数 159
随机函数 159
noise函数 160
dnoise函数 161
rand函数 161
sphrand函数 162
seed函数 163
曲线函数 165
linstep函数 165
smoothstep函数 168
hermite函数 169
常见命令 173
eval函数 173
print函数 175
system函数 177
其他函数和命令 178
索引 179
如何使用本书 211
理解MEL 211
1 MEL简介 211
第1部分 MEL和MAYA 211
MEL篇 211
2 MEL功能 213
第2部分 COMMANDS 217
3 命令简介 217
理解命令 217
MEL命令文档 217
使用MEL自定义 217
使用命令行 219
输入命令 219
4 使用命令 219
获得命令返回值 220
命令模式 220
EXPRESSIONS中的命令 221
5 使用MEL自定义 223
创建工具架图标 223
创建快捷键 223
使用UsERSetup.MEL保存参数 224
添加Heads Up Display对象 224
第3部分 SCRIPTING 229
6 脚本编辑简介 229
理解脚本编辑 229
脚本编辑环境设置 229
脚本文件 229
设置脚本路径 229
打开脚本 231
编辑命令 231
打开Script Editor 231
7 使用Script Editor 231
指定源脚本 232
保存脚本文本 232
执行脚本 233
清除状态信息 233
清除命令输入 233
回应命令 233
显示堆栈跟踪 234
显示脚本行号 234
8 使用脚本节点 237
理解脚本节点 237
创建脚本节点 237
测试脚本 238
编辑脚本节点 239
设置脚本节点执行过程 239
删除脚本节点 239
9 变量和常量 241
变量 241
数据类型转换 250
常量 250
局限性 252
10 编写语句 255
理解语句和运算符 255
赋值运算 255
算术运算 256
关系运算 260
条件运算 262
分组操作 263
运算符优先级别 263
11 流控制 265
理解动作和流控制 265
分组 265
条件动作 266
循环 271
12 提取动作 277
程序 277
脚本 278
ELF命令 279
13 创建界面 279
理解界面创建 279
UI元素 280
父对象和子对象 286
默认父对象 286
命名 288
UI命令模板 289
删除UI元素 290
为UI元素添加命令 290
一个简单的窗口 292
模式对话框 293
使用系统事件和脚本作业 294
14 风格 297
理解风格 297
风格技巧 297
使用非显示符 297
添加注释 298
命名变量 298
保护脚本编辑 300
程序和脚本 300
15 常见问题解答 301
基本的常见问题解答 301
命令常见问题解答 305
属性常见问题解答 306
变量常见问题解答 307
字符串常见问题解答 308
矢量常见问题解答 309
数组常见问题解答 309
矩阵常见问题解答 310
流控制常见问题解答 311
程序和函数常见问题解答 314
建模常见问题解答 316
动画常见问题解答 317
动力学常见问题解答 317
渲染常见问题解答 318
系统交互的常见问题解答 318
文件控制常见问题解答 319
项目控制常见问题解答 319
脚本路径常见问题解答 320
Script Editor常见问题解答 321
自定义界面常见问题解答 322
其他常见问题解答 323
第4部分 MAYA GEMS 327
16 Maya Gems简介 327
粒子碰撞边界 327
dynFuncBoundary.mel 327
点爆炸 329
dynFuncExplosion.mel 330
测试附加的粒子属性 333
dynTestAddAttr.mel 333
测试动力学事件 336
dynTestEvent.mel 336
动态时间播放 340
dynTimePlayback.mel 340
查找未贴图对象 343
findUnshadedObjects.mel 343
索引 345