《Maya总动员 动画编程篇》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:张宝荣,吕新欣等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302241782
  • 页数:602 页
图书介绍:本书以Maya 2010版及Maya 2011版本为依托,详细地介绍了Maya的动画编程技术。

第1章 表达式 1

1.1 动画表达式 1

1.1.1 动画表达式 1

1.1.2 创建动画表达式 2

1.1.3 每个属性只有一个驱动程序 3

1.1.4 时间和帧关键词 3

1.1.5 找到之前创建的动画表达式 4

1.1.6 编辑动画表达式中的文本 6

1.1.7 使用文本编辑器编辑动画表达式 7

1.1.8 删除动画表达式 10

1.2 粒子表达式 10

1.2.1 关于粒子表达式 10

1.2.2 粒子表达式 11

1.2.3 创建表达式的执行 12

1.2.4 运行时间表达式的执行 12

1.2.5 设置动态开始帧 12

1.2.6 设置原始状态使用的属性 13

1.2.7 编写创建表达式 13

1.2.8 编写运行时间表达式 14

1.2.9 运行粒子属性 18

1.2.10 添加动态属性 18

1.2.11 了解每粒子和每对象属性 18

1.2.12 了解原始状态属性 19

1.2.13 赋值自定义属性 23

1.2.14 赋值不同长度的粒子排列属性 24

1.2.15 在运行表达式中使用创建表达式的数值 25

1.2.16 运行位置、速度和加速度 25

1.2.17 运行颜色 27

1.2.18 运行发散的粒子 28

1.2.19 运行碰撞 28

1.2.20 运行使用期 32

1.2.21 运行特定粒子 32

1.2.22 赋值矢量和矢量排列 35

1.3 常用函数 42

1.3.1 极限函数 42

1.3.2 指数函数 45

1.3.3 三角函数 46

1.3.4 矢量函数 54

1.3.5 转化函数 56

1.3.6 数组函数 58

1.3.7 随机数函数 59

1.3.8 曲线函数 64

1.3.9 通用命令 70

1.4 表达式编辑器 73

第2章 MEL脚本 76

2.1 背景情况 76

2.1.1 MEL概述 76

2.1.2 MEL和表达式手册 76

2.1.3 编程器的MEL 76

2.2 运行MEL 79

2.2.1 运行MEL命令 79

2.2.2 查看或记录与作用相关的MEL命令 81

2.2.3 为脚本制作一个工具栏按钮 81

2.2.4 从MEL命令上得到帮助 82

2.3 数值和变量 82

2.3.1 整数和浮点数 82

2.3.2 字符串 82

2.3.3 显式输入和隐式输入 83

2.3.4 变量 83

2.3.5 分配数值到变量和属性上 84

2.3.6 输出数值 85

2.3.7 选择任意数字 86

2.4 排列、矢量和矩阵 86

2.4.1 排列 86

2.4.2 获取和改变排列的大小 87

2.4.3 矢量 88

2.4.4 矩阵 89

2.5 类型 89

2.5.1 MEL合适类型 89

2.5.2 使用空白区域 90

2.5.3 添加注释 90

2.5.4 变量命名 91

2.5.5 程序和脚本 91

2.5.6 完美脚本 92

2.6 控制脚本流量 92

2.6.1 测试和比较数值 92

2.6.2 布尔值 93

2.6.3 if...else if...else 93

2.6.4 ?:运算符 94

2.6.5 switch...case 94

2.6.6 while 96

2.6.7 do...while 97

2.6.8 for 97

2.6.9 for-in 98

2.6.10 hreak 98

2.6.11 continue 99

2.6.12 测试命令、对象和属性的存在 99

2.6.13 =和==的不同 100

2.6.14 常见问题 100

2.7 属性 102

2.7.1 属性概述 102

2.7.2 属性名称 102

2.7.3 属性的数据类型 103

2.7.4 获取和设置属性 104

2.7.5 获取和设置多值属性 105

2.8 程序 107

2.8.1 程序 107

2.8.2 定义程序 107

2.8.3 调用程序 109

2.8.4 全局和本地变量 110

2.8.5 测试功能在MEL中是否可用 111

2.8.6 检查程序的来源 112

2.9 I/O和互动 112

2.9.1 用户互动 112

2.9.2 读取和编写文件 114

2.9.3 测试文件存在、权限和其他属性 115

2.9.4 控制文件 116

2.9.5 运行目录 116

2.9.6 执行系统命令 117

2.9.7 读取并写入系统命令管线 118

2.9.8 从AppleScript中调用MEL,反之亦然 119

2.10 调试、优化和疑难解答 120

2.10.1 MEL调试特点 120

2.10.2 优化脚本和表达式速度 122

2.10.3 疑难解答 125

2.11 创建界面 129

2.11.1 ELF命令 129

2.11.2 窗口 129

2.11.3 控件 130

2.11.4 布局 130

2.11.5 分组 134

2.11.6 菜单 135

2.11.7 集合 135

2.11.8 母代与子代 135

2.11.9 命名 137

2.11.10 UI命令模板 138

2.11.11 删除UI元素 139

2.11.12 连接命令到UI元素 139

2.11.13 简单窗口 141

2.11.14 模式对话框 142

2.11.15 使用系统事件和scriptJobs 143

2.12 脚本节点 145

2.12.1 MEL脚本节点 145

2.12.2 生成或编辑脚本节点 145

2.12.3 打开文件时阻止脚本节点的运行 146

2.13 高级版本 147

2.13.1 高级程序课题 147

2.13.2 高级动画表达式课题 150

2.14 句法 164

2.14.1 祈使句法 164

2.14.2 分隔符和空白区域 166

2.14.3 表达式、运算符和语句 167

2.14.4 运算符优先顺序 168

2.14.5 组块 168

2.14.6 注释 169

2.14.7 表达式和MEL句法之间的不同 170

2.15 疑难问题解答 171

2.15.1 任务 171

2.15.2 脚本与句法 172

2.15.3 建模 175

2.15.4 动画、动力学和渲染 176

2.16 脚本范例 178

2.16.1 从Maya自带的脚本文件中学习 178

2.16.2 从文档文件中读取动画参数值 178

2.16.3 粒子碰撞边界 179

2.16.4 点爆炸 181

2.16.5 测试附加粒子属性 184

2.16.6 测试动力学事件 187

2.16.7 动态时间播放 190

2.16.8 寻找着色对象 192

第3章 Python 194

3.1 Python in Maya 194

3.2 Python的使用 195

3.3 Python和线程 203

3.4 Python from an external interpreter 204

3.5 MEL与Python中的重要差异 205

3.6 当前限制条件 207

3.7 Tips and tricks for scripters new to Python 208

第4章 程序编译和导出端口 212

4.1 程序编译 212

4.1.1 程序编译简介 212

4.1.2 FBX文件程序编译 212

4.1.3 IGES程序编译插件 214

4.1.4 StudioImport插件程序和程序编译 216

4.1.5 导出插件程序 217

4.1.6 Maya OpenFlight导入端口/导出端口 220

4.2 游戏 230

4.2.1 简介 230

4.2.2 VRML2程序编译 233

4.2.3 RTG应用程序和文件格式 241

4.2.4 游戏交流2程序编译 243

4.2.5 MDt API 247

第5章 Maya API简介 253

5.1 简介 253

5.2 安装插件程序 255

5.3 卸载插件程序 255

5.4 编写简单的插件程序 256

5.5 重要的插件程序特性 257

5.6 与Maya组合 260

5.7 MObject 260

5.8 包装器 261

5.9 对象和函数集 261

5.10 命名惯例 262

5.11 添加参数 262

5.12 错误检查 263

5.13 MStatus类 263

5.14 错误记录 264

第6章 使用API选择 265

6.1 使用API选择概述 265

6.2 MGlobal∷setActive-SelectionList() 265

6.3 MSelectionList 265

6.4 MItSelectionList 266

6.5 setObject()方法 267

6.6 MFn∷Type列举 268

6.7 MGlobal∷selectByName() 268

第7章 命令插件 269

7.1 添加命令给Maya概述 269

7.2 注册命令 269

7.3 MFnPlugin 269

7.4 initializePlugin() 270

7.5 uninitializePlugin() 271

7.6 创建者方法 271

7.7 MpxCommand 271

7.8 返回结果到MEL 278

7.9 语法对象 278

7.10 标志 279

7.11 背景 281

7.12 MPxContext 281

7.13 MPxContextCommand 285

7.14 工具属性表 287

7.15 MPxToolCommand 287

7.16 连接插件到Maya菜单 296

7.17 第三方插件程序的安装 297

第8章 DAG层次 298

8.1 DAG层次概述 298

8.2 节点 298

8.3 变形和形状 299

8.4 DAG路径 299

8.5 一般化的实例化 301

8.6 多个形状的变形 301

8.7 DAG行走实例 302

第9章 编写阴影节点 309

9.1 阴影节点插件程序概述 309

9.2 编写阴影节点插件程序 309

9.3 阴影节点插件程序分析 310

9.4 InterNode实例编码走查 312

9.5 阴影节点分类 320

9.6 Hypershade的阴影节点图标 323

9.7 特殊的阴影节点 323

9.8 阴影节点里的超级采样 323

9.9 赋值渲染背景外的阴影节点 324

第10章 从属图表插件程序 325

10.1 从属图表插件程序概述 325

10.2 母代类别描述 325

10.3 基础 326

10.4 从属图表(DG)节点 330

10.5 节点 332

10.6 属性和塞子 333

10.7 复杂属性 333

10.8 资料区 335

10.9 数据句柄 335

10.10 数据创建式 336

10.11 计算方法 336

10.12 更复杂的实例 337

10.13 MPxNode及其衍生类别 339

第11章 操纵器和形 342

11.1 操纵器 342

11.1.1 操纵器是什么 342

11.1.2 基础操纵器 342

11.1.3 编写操纵器 344

11.1.4 操纵器容器 345

11.1.5 操纵器和节点间的信息交流 347

11.1.6 连接操纵器到Show Manipulator Tool 351

11.2 形状 354

11.2.1 Maya形状 354

11.2.2 形状分类 354

11.2.3 写出形状 355

11.2.4 绘图与刷新 356

11.2.5 选择 358

11.2.6 组件 358

11.2.7 调整和内部属性 360

11.2.8 几何体数据 361

11.2.9 文件IO 361

11.2.10 变形器 361

11.2.11 标记菜单 363

11.2.12 形状实例 363

第12章 编写节点和文件编译程序 365

12.1 编写硬件着色节点 365

12.1.1 硬件着色节点插件程序概述 365

12.1.2 执行硬件着色节点插件 366

12.1.3 一个硬件着色节点插件的实例 370

12.1.4 改进硬件着色器的运行 379

12.1.5 硬件着色节点插件实例 379

12.2 编写自定义变形节点 380

12.2.1 自定义变形概述 380

12.2.2 执行自定义变形 381

12.2.3 自定义变形实例 382

12.2.4 自定义变形节点实例 388

12.3 编写变形器节点 388

12.3.1 变形器概述 388

12.3.2 执行变形器节点 389

12.3.3 变形器节点实例 389

12.3.4 变形器实例 392

12.4 编写文件编译程序 392

12.4.1 文件编译程序概述 392

12.4.2 执行文件编译程序 393

12.4.3 文件编译程序实例 393

第13章 多线程插件 394

13.1 简介 394

13.2 数据和任务对应 394

13.3 线程 394

13.4 锁定 395

13.5 OpenMP 396

13.6 Intel线程建构模块(TBB) 398

13.7 线程任务 398

13.8 内存分配 402

13.9 线程和Maya 402

13.10 其他对应类型 408

13.11 蟒蛇线程和Maya 409

13.12 第三方工具 409

13.13 API类别和插件 410

13.14 Mac OS X平台特定线程库问题 411

13.15 供应商特定OpenMP问题 411

第14章 多边形API和Maya Python API 412

14.1 多边形API 412

14.1.1 多边形API概述 412

14.1.2 如何内部控制多边形 412

14.1.3 五个基本多边形API类别 418

14.1.4 构建历史和调整 422

14.1.5 polyModifierCmd实例 424

14.1.6 splitUVCmd实例 440

14.1.7 多边导出端口插件 452

14.2 Maya python API 453

14.2.1 Maya Python API简介 453

14.2.2 开发工具 453

14.2.3 使用Maya Python API 454

14.2.4 C++Maya API和Maya Python API的差别 466

第15章 建立创建环境 468

15.1 创建插件和应用程序简介 468

15.2 编译程序的要求 468

15.3 Linux环境(64位) 468

15.4 Linux编译程序需要 470

15.5 使用调试器调试插件 471

15.6 Windows环境(32位和64位) 472

15.7 安装Maya Plug-in Wizard 474

15.7.1 Maya Plug-in Wizard 2.0(32位的版本) 474

15.7.2 Maya Plug-in Wizard 2.0(64位的版本) 475

15.8 Mac OS X环境 475

第16章 分配Maya插件 478

16.1 分配单独文件 478

16.2 分配多个文件的模块 479

16.3 模块限制 480

16.3.1 共享库 480

16.3.2 渲染全能的着色器 481

第17章 实例插件 482

17.1 实例插件概述 482

17.2 独立应用程序举例 488

17.3 C++插件实例描述 488

17.4 独立应用程序的描述举例 526

17.5 着色器源代码举例 526

17.6 ASHLI着色器 533

17.7 脚本插件程序举例 536

第18章 附录 546

18.1 附录A:NURBS图形 546

18.2 附录B:相关图渲染节点 549

18.3 附录C:渲染属性 551

18.4 附录D:常见问题解答 556

18.5 附录E:API和Devkit限制条件 571

18.6 附录F:添加图像插件程序 573