表达式与MEL语言

副标题:无

作   者:王澄宇编著

分类号:

ISBN:9787115305435

微信扫一扫,移动浏览光盘

简介

  表达式与MEL语言是Maya脚本制作的核心,是利用Maya在三维世界里自由创作所必需的语言和工具。《Maya脚本应用手册——表达式与MEL语言》将MEL语言和表达式制作过程相结合,并通过详细讲解如直升机螺旋桨、滚动的箱子、推拉门和龙卷风等案例的制作过程来揭示具体问题的解决方法,为读者最终熟练掌握Maya工具奠定了实践基础。   《Maya脚本应用手册——表达式与MEL语言》适用于已经掌握Maya用户界面操作的读者,同时也可以作为Maya高级用户的参考书籍,以及美术设计等相关院校和培训机构的教材。

目录

目 录

第1章 表达式、脚本和Plug-in 1
1.1 超越Maya界面 1
1.2 Maya表达式 2
1.2.1 表达式与动画 2
1.2.2 表达式与材质 6
1.2.3 表达式与动力学 6
1.3 脚本 7
1.3.1 脚本应用 7
1.3.2 脚本与表达式 10
1.3.3 MEL脚本 11
1.4 Plug-in 12
1.5 内容回顾 13

第2章 第一个表达式——直升机螺旋桨 14
2.1 例2-1:螺旋桨的旋转 14
2.1.1 案例制作 14
2.1.2 实例说明 16
2.1.3 匀速变化的动画曲线与运动规律 17
2.2 例2-2:螺旋桨启动——加速运动 19
2.2.1 案例制作 19
2.2.2 实例说明 19
2.2.3 螺旋桨的完成动作——重新构造表达式 22
2.3 表达式编辑窗口 23
2.3.1 表达式操作过程 24
2.3.2 表达式编辑窗口菜单 25
2.4 Maya的预定义函数 25
Maya预定义函数的类型 26
2.5 内容回顾 27

第3章 滚动的箱子(一) 28
3.1 任务分析 28
3.2 例3-1:用表达式控制骨链动画 30
3.2.1 案例制作 30
3.2.2 表达式分析说明 36
3.3 数据变量 40
3.3.1 变量的类型 40
3.3.2 变量的定义 40
3.3.3 变量的匹配 41
3.3.4 变量的表示 42
3.4 运算 43
3.4.1 数学运算 43
3.4.2 关系运算 46
3.4.3 逻辑运算 47
3.5 条件语句 48
3.5.1 if语句 48
3.5.2 switch语句 49
3.6 重新构造表达式 51
3.7 内容回顾 53

第4章 滚动的箱子(二) 54
4.1 任务分析 54
4.2 用表达式控制箱子滚动 55
4.2.1 转动第一个90° 55
4.2.2 找到通用公式 56
4.2.3 修改动画 57
4.3 滚动五棱柱 58
4.3.1 分析五棱柱的滚动过程 58
4.3.2 用表达式控制五棱柱的滚动 59
4.4 滚动六棱柱 61
4.5 内容回顾 61

第5章 推拉门 62
5.1 任务分析 62
5.2 用locator的移动控制推拉门 64
5.2.1 一个推拉单元 64
5.2.2 两个推拉单元 66
5.2.3 分析N个单元的推拉门 68
5.2.4 表达式控制的完整推拉门 69
5.2.5 重写控制推拉门的表达式 73
5.2.6 对新表达式的说明 74
5.3 数组变量 75
5.4 循环语句 76
5.4.1 循环语句的基本形式 76
5.4.2 while循环 76
5.4.3 do-while循环 78
5.4.4 for循环 79
5.4.5 for-in循环 81
5.4.6 continue 语句和break语句 82
5.5 表达式与MEL命令 84
5.6 内容回顾 86

第6章 音响指示灯 87
6.1 任务分析 87
6.2 例6-1——简单音响灯效果 87
6.3 案例说明 92
6.4 例6-2——音响设备指示灯组 93
6.5 案例补充说明 100
6.6 内容回顾 101

第7章 动力学表达式——龙卷风 102
7.1 粒子系统的特性 102
7.1.1 多态性 103
7.1.2 生命值 103
7.1.3 过程控制与初始状态 103
7.1.4 粒子系统的表达式 103
7.2 任务分析 105
7.3 例7-1——龙卷风的制作过程 106
7.4 表达式分析 113
7.4.1 运动分解 113
7.4.2 例7-2——粒子沿曲线运动 115
7.4.3 圆周运动的数学描述 118
7.4.4 例7-3——粒子的圆周运动 119
7.4.5 例7-4——沿螺旋线运动的粒子 120
7.4.6 例7-5——沿渐开螺旋线运动的粒子 121
7.4.7 描述龙卷风的外轮廓线 122
7.4.8 例7-6——龙卷风雏形 125
7.4.9 例7-7——分散粒子分布 126
7.4.10 加入控制曲线影响 127
7.5 内容回顾 127

第8章 海面 129
8.1 海面制作 129
8.1.1 操作步骤 129
8.1.2 制作分析 132
8.1.3 改进控制 136
8.1.4 重新制作海面 137
8.2 内容回顾 143

第9章 MEL概述 144
9.1 自己的第一个脚本 144
9.1.1 记录一个MEL命令 144
9.1.2 Scripts Editor操作说明 145
9.1.3 深入了解sphere命令 147
9.1.4 sphere命令的其他状态 149
9.2 MEL命令的一般形式 152
9.2.1 MEL命令的使用格式 152
9.2.2 MEL命令的修饰词 153
9.2.3 MEL中的常用符号 154
9.2.4 MEL命令与脚本命令 158
9.3 物体的显隐开关 158
9.3.1 制作一个物体显隐切换开关 158
9.3.2 简化脚本 159
9.3.3 修改脚本 160
9.4 内容回顾 160

第10章 建立操作窗口 162
10.1 Maya窗口元素 162
10.1.1 Attribute Editor窗口元素 162
10.1.2 窗口命令的分类 163
10.2 建立窗口 164
10.2.1 定义新窗口命令——Window 164
10.2.2 显示窗口命令——showWindow 167
10.3 窗口布局 168
10.3.1 formLayout命令 168
10.3.2 columnLayout命令 174
10.3.3 rowLayout 命令 176
10.3.4 scrollLayout命令 180
10.3.5 frameLayout命令 181
10.3.6 setParent 命令 184
10.3.7 deleteUI 命令 185
10.4 控制体的一般工作方式 187
10.4.1 反应方式 187
10.4.2 控制过程 188
10.5 颜色控制体 188
10.5.1 attrColorSliderGrp命令 189
10.5.2 colorIndexSliderGrp命令 191
10.6 数字输入控制体 193
10.6.1 数字输入控制体所包含的内容 193
10.6.2 floatField命令 194
10.6.3 floatFieldGrp命令 195
10.6.4 floatSlider 命令 198
10.6.5 floatSliderButtonGrp 命令 198
10.6.6 floatSliderGrp 命令 199
10.6.7 intField 命令 199
10.6.8 intFieldGrp 命令 199
10.6.9 intSlider 命令 199
10.6.10 intSliderGrp 命令 199
10.7 文字控制体 199
10.7.1 text 命令 199
10.7.2 textField 命令 200
10.7.3 textFieldButtonGrp 命令 200
10.7.4 textFieldGrp 命令 202
10.8 选择控制体 202
10.8.1 radioButton 命令 203
10.8.2 radioButtonGrp 命令 204
10.8.3 checkBoxGrp 命令 205
10.9 按钮命令——button 206
10.10 内容回顾 208

第11章 用户菜单文件 211
11.1 制作菜单 211
11.1.1 menu命令 211
11.1.2 menuItem命令 212
11.1.3 setParent命令 213
11.2 自动调用的用户菜单 215
11.2.1 用户菜单文件 215
11.2.2 菜单文件的调用过程 216
11.3 内容回顾 217

第12章 属性编辑工具 218
12.1 任务分析 218
12.2 录入脚本 219
12.3 脚本剖析 224
12.3.1 窗口内容分析 224
12.3.2 调用内容分析 225
12.4 操作窗口 225
12.4.1 操作窗口界面代码 225
12.4.2 操作窗口代码中的固定格式 228
12.4.3 操作窗口代码中的容错处理 229
12.4.4 操作窗口的界面元素 231
12.4.5 窗口界面元素布局调整 236
12.4.6 操作窗口状态切换 237
12.5 场景操作 239
12.5.1 脚本任务分析 239
12.5.2 脚本内容 240
12.5.3 脚本固定格式行 242
12.5.4 读取窗口参数信息 242
12.5.5 物体列表 245
12.5.6 nodeType命令 247
12.5.7 节点类型判断 249
12.5.8 修改属性状态操作 249
12.6 编辑、保存脚本文件 250
12.6.1 编辑脚本文件 250
12.6.2 保存文件 250
12.7 内容回顾 251

第13章 自定义符号 253
13.1 任务分析 254
13.2 合并物体形状节点 255
13.2.1 parent命令 256
13.2.2 改变形状节点父节点 258
13.3 撰写脚本 259
13.3.1 脚本工作方式 259
13.3.2 脚本工作内容列表 259
13.3.3 脚本逻辑过程 260
13.3.4 脚本内容 260
13.3.5 测试脚本 261
13.3.6 Freeze Transformations操作 262
13.3.7 makeIdentity命令 262
13.3.8 修改脚本 267
13.3.9 脚本剖析 267
13.4 内容回顾 269

第14章 尾巴控制系统 270
14.1 任务说明 270
14.1.1 控制方式 270
14.1.2 控制系统关联关系 272
14.1.3 脚本操作方式 274
14.1.4 脚本任务列表 275
14.2 相关命令 276
14.2.1 createNode 命令 276
14.2.2 listRelatives 命令 277
14.2.3 ikHandle命令 277
14.2.4 spaceLocator 命令 277
14.2.5 xform 命令 278
14.2.6 group 命令 280
14.2.7 move 命令 281
14.2.8 stringArrayRemove 命令 281
14.2.9 aimConstraint命令 281
14.2.10 pointConstraint命令 281
14.2.11 orientConstraint命令 281
14.2.12 connectAttr命令 281
14.3 脚本内容说明 282
14.3.1 脚本代码 282
14.3.2 脚本结构 289
14.3.3 创建控制器模块 289
14.3.4 创建IK系统模块 291
14.3.5 制作控制关系模块 293
14.3.6 操作窗口模块 296
14.3.7 工具起动模块 296
14.4 脚本不足之处 297
14.5 内容回顾 298

第15章 绘制玫瑰线 299
15.1 任务说明 299
15.2 curve命令 300
15.3 eval命令 301
15.4 脚本剖析 302
15.4.1 编辑脚本 302
15.4.2 调用脚本 304
15.4.3 脚本分析 305
15.4.4 脚本改进 307
15.5 内容回顾 307

第16章 文件检查 308
16.1 任务说明 308
16.2 字符串操作命令 312
16.2.1 substituteAllString命令 312
16.2.2 tokenize命令 313
16.3 文件操作命令 314
16.3.1 fopen命令 314
16.3.2 fprint命令 315
16.3.3 fgetline命令 315
16.3.4 fclose命令 315
16.3.5 workspace命令 316
16.3.6 file命令 316
16.3.7 filetest命令 317
16.4 其他命令 318
16.4.1 symbolButton命令 318
16.4.2 confirmDialog命令 319
16.4.3 脚本命令setWorkingDirectory和fileBrowser 321
16.5 文件检查脚本 321
16.5.1 脚本内容 321
16.5.2 脚本剖析 325
16.5.3 特殊模块说明 332
16.6 内容回顾 333

第17章 物体批量改名 334
17.1 脚本的工作方式 334
17.2 脚本说明 344
17.2.1 脚本内容 344
17.2.2 操作窗口 352
17.2.3 改名操作主程序 356
17.2.4 给指定物体加前缀 359
17.2.5 给指定物体加后缀 360
17.2.6 替换物体名中的字符 361
17.2.7 物体形状节点改名 362
17.2.8 重新命名指定物体 363
17.2.9 文件结构 364
17.3 内容回顾 364

附录A Maya函数 365
A.1 限制函数 365
A.1.1 取整函数 365
A.1.2 ceil向上取整 365
A.1.3 floor向下取整 366
A.1.4 trunc截断取整 366
A.1.5 int取整 367
A.1.6 abs绝对值函数 368
A.1.7 clamp夹函数 368
A.1.8 min函数 369
A.1.9 max函数 369
A.1.10 sign符号函数 370
A.2 幂函数 370
A.2.1 幂函数的数学含义 370
A.2.2 exp函数 371
A.2.3 log函数 372
A.2.4 log10函数 372
A.2.5 pow函数 373
A.2.6 sqrt函数 373
A.3 三角函数 374
A.3.1 三角函数概述 374
A.3.2 cos函数 375
A.3.3 cosd函数 376
A.3.4 sin函数 377
A.3.5 sind函数 378
A.3.6 tan函数 379
A.3.7 tand函数 380
A.3.8 acos函数 380
A.3.9 acosd函数 381
A.3.10 asin函数 382
A.3.11 asind函数 382
A.3.12 atan函数 383
A.3.13 atand函数 384
A.3.14 atan2函数 384
A.3.15 atan2d函数 385
A.4 向量函数 385
A.4.1 mag模函数 385
A.4.2 unit单位函数 386
A.4.3 angle夹角函数 386
A.4.4 cross叉积函数 387
A.4.5 dot点积函数 387
A.4.6 rot旋转函数 388
A.5 转换函数 389
A.5.1 deg_to_rad 389
A.5.2 rad_to_deg 389
A.5.3 hsv_to_rgb 390
A.5.4 rgb_to_hsv 390
A.6 阵列函数 391
A.6.1 size函数 391
A.6.2 sort函数 392
A.6.3 clear函数 393
A.7 随机函数 393
A.7.1 gauss函数 393
A.7.2 noise函数 396
A.7.3 dnoise 函数 397
A.7.4 rand 函数 397
A.7.5 sphrand 函数 399
A.7.6 seed 402

附录B 常用MEL命令 404
B.1 通用MEL命令 404
B.1.1 ls命令 404
B.1.2 select命令 406
B.1.3 getAttr命令 407
B.1.4 setAttr命令 408
B.1.5 parent命令 409
B.1.6 makeIdentity命令 409
B.1.7 group 命令 410
B.1.8 move 命令 411
B.1.9 spaceLocator 命令 412
B.1.10 xform 命令 412
B.2 用户窗口命令 413
B.2.1 定义新窗口命令——window 413
B.2.2 显示窗口命令——showWindow 414
B.3 窗口布局 414
B.3.1 formLayout命令 414
B.3.2 columnLayout命令 416
B.3.3 rowLayout 命令 418
B.3.4 scrollLayout命令 422
B.3.5 frameLayout命令 423
B.3.6 setParent 命令 426
B.3.7 deleteUI 命令 426
B.4 颜色控制体 427
B.4.1 attrColorSliderGrp命令 427
B.4.2 colorIndexSliderGrp命令 429
B.5 数字输入控制体 432
B.5.1 数字输入控制体所包含的内容 433
B.5.2 floatField命令 434
B.5.3 floatFieldGrp命令 435
B.5.4 floatSlider 命令 439
B.5.5 floatSliderButtonGrp 命令 440
B.5.6 floatSliderGrp 命令 444
B.5.7 intField 命令 449
B.5.8 intFieldGrp 命令 450
B.5.9 intSlider 命令 454
B.5.10 intSliderGrp 命令 455
B.6 文字控制体 460
B.6.1 text 命令 460
B.6.2 textField 命令 461
B.6.3 textFieldButtonGrp 命令 462
B.6.4 textFieldGrp 命令 466
B.7 选择控制体 470
B.7.1 radioButton 命令 470
B.7.2 radioButtonGrp 命令 472
B.7.3 radioCollection 命令 478
B.7.4 checkBoxGrp 命令 478
B.8 按钮命令——button 480
B.9 菜单命令 481
B.9.1 menu命令 481
B.9.2 menuItem命令 482
B.10 其他窗体命令 484
B.10.1 symbolButton命令 484
B.10.2 confirmDialog命令 485
B.10.3 脚本命令setWorkingDirectory和fileBrowser 487
B.11 NURBS相关常用命令 487
B.11.1 pointOnCurve命令 487
B.11.2 pointOnSurface命令 488
B.12 节点操作命令 489
B.12.1 createNode 命令 489
B.12.2 nodeType命令 490
B.12.3 listRelatives 命令 490
B.12.4 connectAttr命令 490
B.13 字符处理 491
B.13.1 tokenize命令 491
B.13.2 stringArrayRemove 命令 491
B.14 设置操作命令 492
B.14.1 ikHandle 命令 492
B.14.2 aimConstraint命令 492
B.14.3 pointConstraint 命令 492
B.14.4 orientConstraint 命令 492
B.14.5 expression命令 492
B.14.6 dynExpression 命令 493
B.15 文件操作命令 493
B.15.1 fopen命令 493
B.15.2 fprint命令 494
B.15.3 fgetline命令 494
B.15.4 fclose命令 494
B.15.5 workspace命令 495
B.15.6 file命令 495
B.15.7 filetest命令 496

附录C 常用MEL命令列表 497

附录D 向量的点乘与叉乘 510
D.1 向量的点乘(dot product) 510
D.2 向量的叉积(矢性积)(cross product) 511

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

表达式与MEL语言
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon