文字目录 23
Dynamics动力学篇 23
第1章 NURBS基础知识 23
1.1 理解粒子 23
1.2 创建粒子 25
1.2.1 设置Particle Tool(粒子工具)选项 26
1.2.2 在物体的表面上放置粒子 28
1.3 动画粒子运动 28
1.4 理解粒子属性 29
1.4.1 静态属性 29
1.4.2 动态属性 29
1.4.3 自定义属性 31
1.4.4 Per object属性和Per particle属性 31
1.5 编辑粒子属性 31
1.6 选择粒子渲染类型 32
1.6.1 Points类型 33
1.6.2 MultiPoint类型 34
1.6.3 Streak类型 35
1.6.4 MultiStreak类型 36
1.6.5 Sprites类型 36
1.6.5.1 使用Sprite Wizard 37
1.6.5.2 为sprite渲染类型设置属性 38
1.6.5.3 用Sprite Wizard自定义Sprite 38
1.6.6 Spheres类型 39
1.6.7 Numeric渲染类型 40
1.6.8 Blobby surface渲染类型 41
1.6.9 Cloud类型 42
1.6.10 Tube渲染类型 43
1.7 使用灯光、反射、折射和阴影 43
朱圣娥1.7.2 将灯光用于运动的粒子 44
1.7.1 添加反射、折射和阴影 44
1.8 设置粒子颜色 45
1.9 设置粒子透明度 46
1.10 设置粒子寿命 47
1.10.1 设置per object寿命 48
1.10.2 添加和设置per particle寿命 48
1.10.3 如何决定寿命 49
1.11 设置单粒子属性 50
1.11.1 设置per particle属性方法 50
1.12 使用元素编辑器设置per particle属性 51
1.13 用ramp纹理设置粒子属性 52
1.13.1 使用颜色ramp 52
1.13.2 使用灰度ramps 54
1.13.3 定义使用ramp的per particle属性控制 55
1.13.4 Ramp关联 58
1.14.1 创建动画关联 60
1.14 动画几何体的关联作为粒子 60
1.14.1.1 关联几何体定向 62
1.14.2 粒子关联选项 62
1.15 关联PaintEffects 中的笔划 66
1.15.1 将笔划放在粒子的中心 66
第2章 发射器 68
2.1 理解发射器 68
2.2 创建发射器 69
2.3 编辑发射器的属性 72
2.3.1 通过面板设置发射器属性 72
2.3.1.1 Basic Emitter Attributes(基本发射器属性) 72
2.3.1.2 Distance/DirectionAttributes 74
2.3.1.3 Basic Emission Speed Attributes 74
2.3.1.4 Volume Emitter Attributes 75
2.3.1.5 Volume Speed Attributes 76
2.3.2 使用工作区操纵手柄改变发射器属性 77
2.4 编辑已发射粒子的属性 78
2.4.1 设置已发射粒子的变换属性 79
2.4.2 减少发射数量 79
2.5 复制发射器 80
2.6 连接发射器和粒子 81
2.7 从点发射器的不同点改变发射 82
2.8 使用纹理去着色发射器或缩放速度 83
2.9 使用发射的随机性 87
2.10 从NURBS表面均衡地传播发射 88
2.11 发射器属性和Power Animator 中的对应设置 88
3.1.1 独立场 92
3.1.2 物体场 92
3.1 理解场 92
第3章 动力场 92
3.1.3 体积场 93
3.2 创建场并连接物体到场 93
3.3 编辑场属性 95
3.3.1 设置体积控制属性 95
3.4 空气场 97
3.5 拖动场 101
3.6 重力场 102
3.7 牛顿场 103
3.8 放射场 104
3.9 振荡场 105
3.10 统一场 106
3.11 旋涡场 107
3.12 体积轴场 108
3.13 使用操作手柄设置动力场属性 110
3.13.1 使用操纵手柄图标 111
3.14 复制场 112
第4章 粒子碰撞 113
4.1 使粒子碰撞表 113
4.2 编辑粒子碰撞属性 114
4.2.1 设置几何体弹跳 114
4.2.2 设置每个粒子物体弹跳 115
4.2.3 避免意外粒子穿透几何体 116
4.3 复制碰撞效果 116
4.4 在碰撞过程中粒子的发射、消失和分裂 117
第5章 目标 120
5.1 理解目标 120
5.1.1 粒子目标 120
5.1.3 多个目标 121
5.2 创建目标 121
5.1.2 非粒子目标 121
5.3 编辑目标属性 122
5.3.1 在per object基础上设置目标权重 122
5.3.2 在per-particle基础上设置目标权重 123
5.3.3 指定目标的NURBS UV位置 123
5.3.4 指定目标位置的偏移量 124
5.4 动画目标行为 124
第6章 柔体 126
6.1 理解柔体 126
6.2 创建柔体 126
6.3 复制柔体 128
6.4 用运动模糊渲染柔体 129
6.5 绘制柔体权重工具 129
6.6 柔体的特殊用途 131
6.6.1 制作皮肤柔体 131
6.6.3 制作线柔体 132
6.6.4 制作IK样条曲线柔体 132
6.6.2 制作晶格柔体 132
6.6.5 制作运动路径柔体 133
6.6.6 从一个柔体制作模型 133
6.7 应用于高级操作的属性 133
6.7.1 EnforceCount FromHistory 134
6.7.2 InputGeom Space 134
6.7.3 Target Geom Space 135
第7章 弹簧 136
7.1 理解弹簧 136
7.2 创建弹簧 137
7.3 编辑弹簧操作 138
7.3.1 设置弹簧属性 138
7.3.2 添加弹簧或在创建后去除弹簧 140
7.4 编辑弹簧的静止长度、刚性和阻尼 141
7.5 处理播放问题 141
8.1 理解刚体 145
第8章 刚体 145
8.2 创建刚体 146
8.2.1 将修剪表面创建为刚体 146
8.2.2 将带有变形、皮肤或屈肌的物体创建为刚体 147
8.3 编辑刚体属性 147
8.4 编辑刚体解算器的属性 150
8.5 控制复杂的运动和力量 152
8.5.1 为刚体的推动力设置关键帧 153
8.5.2 合成刚体动力和关键帧 153
8.5.3 获取速度、力量和碰撞的数据 154
8.6 将刚体动画转化为关键帧动画 156
8.7 用多个解算器隔离碰撞 156
8.8 处理刚体中出现的问题 157
8.8.1 创建刚体时出现的错误 157
8.8.3 刚体碰撞失败时的错误信息 158
8.8.2 设置质量中心时的警告信息 158
8.8.5 解算器计算刚体动力时出现的错误信息 159
8.8.6 删除刚体连接时的警告信息 159
8.8.4 缓存刚体时的警告信息 159
第9章 刚体约束 160
9.1 创建钉约束 160
9.2 创建销约束 161
9.3 创建铰链约束 162
9.4 创建弹簧约束 163
9.5 创建屏障约束 163
9.6 编辑约束 164
9.6.1 调整最初位置和方向 165
9.6.2 改变或关闭约束类型 165
9.7 为约束设置关键帧和将约束制作为子物体 166
9.8 解决多个约束的冲突 167
10.1.1 为使用火焰效果做准备 169
第10章 粒子效果 169
10.1 火焰 169
10.1.2 使用火焰效果 170
10.1.3 编辑火焰效果属性 171
10.2 烟雾 172
10.2.1 使用烟雾效果的准备 173
10.2.2 使用烟雾效果 173
10.2.3 编辑烟雾效果属性 174
10.3 烟火效果 175
10.3.1 创建烟火效果 176
10.3.2 编辑综合烟火属性 178
10.3.3 编辑火箭位置、时间、和颜色 179
10.4 闪电 182
10.4.1 创建闪电 182
10.4.2 编辑闪电属性 184
10.4.3 闪电位置 186
10.4.4 调节闪电材质 186
10.5 破碎 187
10.5.1 创建面碎片 187
10.5.2 创建固体碎片 188
10.5.3 创建碎裂碎片 188
10.5.4 设置碎裂选项 189
10.5.5 给碎片连接动力场 191
10.5.6 连接原始面和碎片 191
10.5.7 改变碎片的挤压值 193
10.5.8 设置柔体碎片的目标权重 194
10.5.9 分配材质组 195
10.6 曲线流动效果 195
10.6.1 编辑流动效果属性 196
10.6.2 使用流动位置器 197
10.7 表面流动 199
10.7.1 创建面流动 199
10.7.2 编辑面流动 201
10.7.3 将分离面上的流动连接起来 203
10.7.4 删除流动 204
10.7.5 在流动操作器中避免扭曲 204
10.7.6 面流动程序 205
第11章 播放动力学动画 207
11.1 设置动力学物体的初始状态 207
11.2 使用动力学动画的run-up 208
11.3 减少动力学动画播放的时间 208
11.3.1 使粒子或刚体的动力学失效 209
第12章 粒子缓存 210
12.1 粒子磁盘缓存 210
12.1.3 创建粒子磁盘缓存 211
12.1.2 确定帧范围 211
12.1.1 指定缓存文件存贮的位置 211
12.1.4 设置粒子磁盘缓存选项 212
12.1.5 编辑粒子磁盘缓存设置 212
12.1.6 播放不同缓存 213
12.1.7 重新创建缓存 214
12.1.8 粒子磁盘缓存文件 214
12.1.9 删除缓存文件 214
12.1.10 缓存技巧 214
12.2 粒子启动缓存 215
12.2.1 使用启动缓存 216
12.2.2 设置缓存的位置和名称 216
12.2.3 批渲染时使用启动缓存 217
12.2.4 使用磁盘缓存和启动缓存 217
12.3 内存缓存 217
13.1 理解动力学关联编辑器 219
第13章 动力学关联编辑器 219
13.2 建立连接 220
13.3 连接和断开重力场 220
13.4 连接到选择的场或物体的发射器 222
第14章 渲染粒子 224
14.1 硬件渲染粒子 224
14.1.1 准备预览或硬件渲染粒子 225
14.1.2 预览硬件粒子 226
14.1.3 渲染硬件粒子 227
14.1.4 观看渲染的粒子 228
14.2 软件渲染粒子 229
14.3 使用Particle Cloud材质 229
14.3.1 Particle Cloud属性 229
14.4 为粒子创建光线追踪 232
14.5.1 粒子取样信息节点的应用 233
14.5 Particle SampleInfoNode(粒子取样信息节点) 233
14.5.2 创建粒子取样信息节点 234
14.5.3 使用粒子取样信息节点的例子 234
14.5.4 设置粒子取样信息节点的属性 240
14.5.5 重新使用粒子取样信息节点 242
14.5.6 使用自定义的属性 243
第15章 高级粒子主题 245
15.1 控制复杂运动和力量 245
15.1.1 缩放动力作用 245
15.1.2 联合设置关键帧的变换属性和动力学 245
15.1.3 制作动力学运动的子物体 246
15.1.4 调整逐帧速度Conserve属性 246
15.1.5 在物体局部坐标空间应用力 248
15.1.6 获得世界空间位置、速度和质心 248
15.2.1 改变粒子物体的开始帧 249
15.2 控制粒子动力的执行时间 249
15.1.7 使用属性连接设置输入力 249
15.2.2 控制粒子动力的时间 250
15.2.3 在粒子动力学后执行表达式 252
15.3 复制粒子物体 252
15.4 为sprites分配图像序列 253
15.5 输出粒子数据 256
15.6 粒子属性列表 256
附录A PDC文件格式 265
Expressions表达式篇 269
第1章 表达式简介 269
1.1 关于表达式 269
1.2 创建表达式的位置 270
第2章 表达式语法 271
2.1 表达式和MEL 271
2.2 表达式元素 272
2.3 属性 273
2.3.1 静态属性 273
2.3.2 动态属性 273
2.3.3 自定义属性 274
2.3.4 属性名称 274
2.3.5 属性的数据类型 275
2.3.6 给属性赋值 276
2.4 变量 278
2.4.1 变量的数据类型 278
2.4.2 预定义变量 278
2.4.3 自定义变量 280
2.5 常量 282
2.6 算术、逻辑和关系运算符 282
2.6.1 算术运算符 282
2.6.2 关系运算符 284
2.6.3 逻辑运算符 285
2.7 运算符的优先级 286
2.8 条件语句 287
2.8.1 If语句 287
2.8.2 if-else语句 287
2.8.3 else if语句 288
2.9 一般语法规则 290
2.10 表达式的注释 292
2.11 编程语言功能 292
2.11.1 C程序员需注意的问题 292
2.11.2 表达式语言关键字 293
2.11.3 流程控制语句 293
2.11.4 流程控制中的差错 303
2.11.5 字符串的用法 305
2.11.7 快捷自增和自减运算符 306
2.11.6 快捷赋值运算符 306
2.11.8 数组 307
2.11.9 布尔符号常量 308
2.12 常见表达式错误 309
2.12.1 错误信息格式 309
2.12.2 常见错误信息 310
第3章 编辑表达式 312
3.1 查找表达式 312
3.1.1 通过表达式名称查找 312
3.1.2 通过选取的物体查找 313
3.1.3 通过项目类型查找 313
3.1.4 使用选项列表 314
3.1.5 在Selection列表中筛选属性 315
3.2 在文本区中编辑表达式 315
3.3 使用文本编辑器编辑表达式 316
3.3.1 选择文本编辑器(Windows) 317
3.3.2 选择文本编辑器(UNIX) 317
3.3.3 使用一个没有列在Editor菜单中的编辑器(UNIX) 318
3.3.4 改变编辑器的操作设置(UNIX) 318
3.3.5 将编辑器设为默认的(UNIX) 319
3.4 创建新表达式 319
3.5 删除表达式 320
3.6 在表达式中使用属性名称 320
3.6.1 使用简化属性名称 320
3.6.2 在表达式中省略一个物体名称 322
3.6.3 合成缩写名称技术 322
第4章 高级表达式 323
4.1 表达式执行的频率 323
4.2 在表达式中使用自定义属性 324
4.4 重复的随机性 327
4.3 显示属性和变量内容 327
4.5 加速表达式执行 330
4.6 减少不必要的表达式执行 332
4.7 从表达式中删除属性 332
4.8 断开属性 333
4.8.1 在表达式中显示断开的属性 333
4.8.2 给占位符连接属性 334
4.9 重命名一个物体 336
4.10 在表达式中执行MEL命令 336
4.11 了解路径名称 339
4.12 了解意外的属性值 340
4.12.1 返回后的值 340
4.12.2 递增操作 340
4.12.3 数据类型转换 341
5.1 了解粒子表达式 344
第5章 粒子表达式 344
5.2 了解creation表达式的执行 345
5.2.1 设置动力学开始帧 345
5.2.2 设置属性的初始状态 345
5.3 编写creation表达式 346
5.4 了解执行表达式的运行时间 346
5.5 编写表达式的运行时间 347
5.6 使用粒子属性 351
5.6.1 添加动态属性 351
5.6.2 了解per particle和per object属性的关系 351
5.6.3 了解初始状态属性 352
5.6.4 给动态per particle属性指定值 353
5.6.5 为per object属性赋值的例子 355
5.6.6 给自定义属性指定值 355
5.6.7 指定不同长度的粒子数组属性 358
5.6.8 使用位置、速率和加速度属性 360
5.6.9 使用颜色 362
5.6.11 创建碰撞 365
5.6.10 创建发射粒子 365
5.6.12 使用粒子的寿命属性 369
5.6.13 使用特殊粒子 369
5.7 给向量和向量数组指定值 372
5.8 粒子属性列表 374
第6章 函数 382
6.1 了解函数 382
6.2 函数语法 383
6.2.1 数据类型 384
6.2.2 了解本节中的函数例子 384
6.3 限制函数 385
6.3.1 abs 385
6.3.4 clamp 386
6.3.2 ceil 386
6.3.3 floor 386
6.3.5 min 387
6.3.6 max 387
6.3.7 sign 388
6.3.8 trunc 388
6.4 指数函数 389
6.4.1 exp 389
6.4.2 log 389
6.4.3 log10 389
6.4.4 pow 390
6.4.5 sqrt 390
6.5 三角函数 390
6.5.1 cos 391
6.5.3 sin 392
6.5.2 cosd 392
6.5.4 sind 396
6.5.5 tan 396
6.5.6 tand 397
6.5.7 acos 397
6.5.8 acosd 398
6.5.9 asin 398
6.5.10 asind 398
6.5.11 atan 398
6.5.12 atand 399
6.5.13 atan2 399
6.5.14 atan2d 399
6.5.15 hypot 400
6.6 向量函数 400
6.6.1 angle 400
6.6.3 dot 401
6.6.2 cross 401
6.6.4 mag 402
6.6.5 rot 402
6.6.6 unit 403
6.7 转换函数 404
6.7.1 deg_to_rad 404
6.7.2 rad_to_deg 404
6.7.3 hsv_to_rgb 405
6.7.4 rgb_to_hsv 405
6.8 数组函数 405
6.8.1 clear 405
6.8.2 size 406
6.8.3 sort 406
6.9 随机数字函数 407
6.9.1 gauss 407
6.9.2 noise 409
6.9.4 rand 410
6.9.3 dnoise 410
6.9.5 sphrand 411
6.9.6 seed 412
6.10 曲线函数 414
6.10.1 linstep 414
6.10.2 Smoothstep 416
6.10.3 hermite 418
6.11 常用命令 421
6.11.1 eval 421
6.11.2 print 422
6.11.3 System 424
6.12 其他函数和命令 425
1.1 理解MEL 429
1.2 如何使用本篇 429
MEL脚本语言篇 429
第1章 MEL简介 429
第2章 MEL功能 430
第3章 命令简介 431
3.1 理解命令 431
3.2 MEL命令文档 431
3.3 用MEL自定义设置 431
第4章 使用命令 432
4.1 输入命令 432
4.2 使用命令行 432
4.3 获取命令的返回值 432
4.3.1 使用左单引号 432
4.4 命令的方式 433
4.5 表达式中的命令 433
4.3.2 使用eval命令 433
第5章 MEL的自定义操作 435
5.1 创建工具箱图标 435
5.2 创建热键 435
5.3 使用脚本userSetup.mel保存参数 436
5.4 添加Heads Up Display对象 436
第6章 编写脚本 439
6.1 初识脚本 439
6.2 设置脚本环境 439
6.2.1 脚本文件 439
6.2.2 设置脚本路径 439
6.2.3 使用脚本中的程序 441
7.2 编辑快捷键 443
7.3 打开脚本 443
第7章 脚本编辑器的使用 443
7.1 打开脚本编辑器 443
7.4 源化(Sourcing)脚本 444
7.5 保存脚本 444
7.6 执行脚本 445
7.7 清除状态信息 445
7.8 清除命令输入 445
7.9 回显(.Echoing)命令 445
7.11 显示堆栈跟踪 446
7.10 显示脚本的行号 446
第8章 脚本节点的使用 447
8.1 了解脚本节点 447
8.2 创建脚本节点 447
8.3 测试脚本 448
8.4 编辑脚本节点 448
8.5 设置脚本节点的执行 449
8.6 删除脚本节点 449