3dsMAXScript脚本语言完全学习手册
《3ds MAXScript脚本语言完全学习手册》(适用版本8.0/7.0/6.0/5.0)的最大特点是用实例程序对MAXScfipt脚本语言的功能进行演示,实用性强,特别适合有一定3dsmax使用基础的读者阅读,对于专业动画创作人员,《3ds MAXScript脚本语言完全学习手册》(适用版本8.0/7.0/6.0/5.0)也有很高的参考价值,可作为工具书随用随查。, MAXScript语言是3ds max自带的脚本语言,它不但拥有一般程序语言的所有特点,而且可以在程序内实现几乎所有在3ds max界面下的交互操作,功能非常强大,而且语法比较简单,容易上手。前言使用 MAXScript脚本语言的原因3 ds max是目前国内动画行业使用最普遍的、功能强大的三维动画设计软件,它除了具有交互操作方式外,还提供了编程开发工具— MAXScript脚本语言。 MAXScript是3dsmax众多插件中最有特色的一个。MAXScript脚本语言具有强大的功能,主要表现在以下几个方面:· MAXScrpt是一种面向对象的程序设计语言,没有很严格的格式要求,易于掌握。· MAXScript不但拥有一般程序设计语言的所有特点,而且几乎可以在程序内实现所有在3dsmx界面下的交互操作,覆盖了3 ds max的绝大部分功能,如可进行建模、动画设置、材质调制、灯光设置、渲染处理等。·可以建立批处理工具,这样可以把3 ds max从业人员从一些简单重复的工作中解脱出来。例如建立一次可以渲染多个场景文件的 MAXScript脚本语言程序。·用 MAXScript进行动画设计是动画创作的较高层次,由 MAXScript生成的动画往往有出神入化、令人惊叹的效果。例如,用 MAXScript可以轻松地模拟有上千个球体的星系,可以生成逼真的群鸟飞翔的动画,可以使物体按某个特定的数学曲线运动,而这些恰恰是传统的交互操作方式很难完成的。·可以定制自己的卷展栏( Rollout)界面、鼠标工具、插件、工具按钮等本书的写作目的作者具有十余年的3 ds max使用经验,因为工作需要,早在五六年前就开始了对MAX Script脚本语言的研究,随着对其了解得越深入,就越发现其魅力无穷,同时作者的职场生涯也因 MAXScript而受益匪浅。许多3 ds max中文用户也很想对 MAXScript脚本语言有系统的了解,但比较普遍的情况是:英文程度不够,直接阅读联机帮助都比较有难度另外还有一点就是从事动画行业的人编程水平普遍都不高,所以往往半途而废。直以来,虽然市面上有关3 ds max的专业书籍多如牛毛,却只有个别的书里面会有关于 MAXScript脚本语言的比较简单的介绍,但常常都是蜻蜓点水,一带而过:网络上也仅能见到关于 MAXScript语言某一方面功能的零星文章。对于3 ds max的众多插件中最有特色,也是功能最强大的 MAXScript脚本语言却没有一本完全的教材!因此我萌生了写作本书的想法,希望通过本书的出版,完全改变3 ds max中文用户学习 MAXScript脚本语言的现状,让国内的3 ds max同行真正从日常重复的工作中解放出来,轻松实现对三维建模、动画的精确控制,从而为3 ds max的中文用户找到一条全面提升3dsmx专业水准的捷径。我相信在本书之后将会有越来越多的3 ds max同行开始这方面的研究,将有更多的3 ds max同行从中受益。本书的读者对象本书实用性很强,特别适合有一定3 ds max使用基础的读者阅读,对专业动画创作人员也有很高的参考价值。由于 MAXScnpt脚本语言没有严格的格式要求且易于掌握,所以对于没有多少编程语言基础的读者亦非常适合。本书的主要内容本书从最基本的内容讲起,对 MAXScript脚本语言的强大功能做了详细、系统、全面的介绍。本书无论对 MAXScript脚本语言的初学者还是对有使用经验的读者都具有一定的学习和参考价值。全书分成4部分,共23章。下面详细介绍各章的内容。第1部分— MAXScript语法基础第1章“了解 MAXScript”讲述了如何开始 MAX Script。对新建、编辑、运行脚本程序及与 MAXScript语言有关的两个窗口都有详细的讲解,最后通过一个简单的例子来引导读者编写简单的 MAXScript脚本语言。通过本章,读者可以对脚本语言有一个初步的印象。第2章“ MAXScript语言基础”主要介绍了关于 MAXScript语言脚本源程序编写的些基础知识,指明了读者需要预先掌握的知识。对一些基本概念如“字面常量”、“标识符”、保留关键字”等做了详细介绍:本章还讲述了 MAXScript脚本语言的表达式和赋值语句,以及语法定义的格式说明等。第3章“ MAXScript数据类型”讲述了 MAXScript脚本语言的数据的操作符和方法,并详细讲解了各种数据类型。第4章“ MAXScript语言的变量和表达式”介绍了变量的赋值、求值顺序、局部变量和全局变量以及表达式等方面的内容。第5章“控制 MAXScript程序流程”介绍了程序流程控制,其中包括i、case、 while、do、for、 continue、 exit.、try语句。第6章“ MAXScript自定义函数”集中讨论了函数,包括如何创建自定义函数和调用函数、如何向函数传递参数以及如何从函数返回值等。第2部分——用 MAXScript操作场景对象第7章“对象超级类 MAXWrapper”介绍了 MAXWrapper的通用属性和方法及其扩展数据。第8章“创建Node(节点)对象”详细介绍了所有场景对象的属性以及创建方法。这是 MAXScript脚本语言在“建模”方面的应用。第9章“ Editable Mesh、 SplineShape、 Patch和 Editable Poly”对 Editable Mesh、Spline Shape、Path、 Editable Poly的构造函数、操作符、属性、方法等方面做了详细介绍。第10章“ Modifier(对象空间修改器)和 Spacewarp(世界空间修改器)”讲解了MAXScript脚本语言在修改模型方面的应用,即对各种对象空间修改器和世界空间修改器做了详细介绍。第11章“ Material(材质)和 Texture Map(贴图)”讲述了如何使用 MAXScript脚本语言对各种类型的材质以及其贴图进行调整。第12章“动画控制器”详述了各种动画控制器的属性及其与控制有关的方法。这是MAX Script脚本语言在精确控制动画方面的应用。第13章“ Atmospheric(环境效果)”讲解了各种环境效果的属性和方法。第14章“ RenderEffect(渲染效果)”详细介绍了各种类型渲染效果的属性和方法。第3部分——用 MAXScript创建实用工具、用户界面第15章“创建脚本工具程序Uiy”介绍了如何定制和定义脚本工具程序 Utility,对Utility、 Rollout以及各种控件、图像按钮等做了详细介绍。第16章“ CmEnu(右键菜单)”讲解了 ReMen子句、用户界面控件、菜单项、分隔行、子菜单。第17章“宏脚本( MacroScnipt)”讲解了宏脚本的定义和图标位图文件的创建。第18章“脚本鼠标工具”介绍了脚本鼠标工具定义和 MouseTool子句。第19章“脚本插件”讲解了各类脚本插件,包括 Shape类、 Light类、 Modifier类、Material类、 Tex tureMap类等脚本插件。还介绍了 Plug-in子句以及如何定制用户界面卷展栏等问题。第4部分— MAXScript的高级应用第20章“在 MAXScript里与用户界面交互”讲述如何在脚本程序里控制3 ds max用户界面,包括按下命令按钮、打开和关闭触发器以及打开对话框等。第21章“在 MAXScnpt里存取文件”介绍了场景文件的装载、保存以及脚本文件的加密等方面的问题第22章“事件侦测和信号反馈机制”讲解了事件侦测和when构造函数、时间改变信号反馈机制、视窗刷新信号反馈机制以及通用事件反馈机制。第23章“ MAXSCπit杂项函数”介绍了如何暂停脚本执行、如何控制渲染器、如何执行外部命令或程序、如何使用时间计算函数以及如何退出和重置3 ds max系统等。如何使用本书不管何种学习,模仿都是最行之有效的方法。在讲述 MAXScript脚本语言的过程中提供了一系列的实例程序,每个程序对 MAXScript脚本语言的某个特定的功能做了例证,对学习和掌握 MAXScript脚本语言很实用。读者应该认真阅读这些实例,并以此为参照,写出自己需要的脚本程序本书亦可以作为工具书,以备日常使用中查找需要了解的内容,这一点可以通过详细的目录轻松实现。其实阅读本书,也是对3 ds max从另一个角度上的全面了解,本书几乎涉及3 ds max的方方面面。因作者水平有限,书中错误在所难免,读者在阅读本书时有任何问题或不同见解,请不吝赐教!作者的E-mail:wanghuawh(ahotmail.com。最后,特别感谢刘立平先生对本书写作所作出的重大贡献。编者目录第1部分 MAXScript语法基础第1章了解 MAXScript.211如何开始 MAXScript……21.2如何新建、编辑、运行脚本文件13在3 ds max开始运行时加载所需的脚本文件14 MAXScript Listener窗口…14.1 MAXScript Listener窗口的功能及特点……111111614.2 MAXScript Listener命令714.3宏记录器( MacroRecorder)……181.4.4 Listener日志文件….1111111111111915 MAXScript Editor窗口,……………1111015.1 MAXScript Editor窗口功能及特点……1111101.52 MAXScript Editor窗口的菜单命令16 MAXScript桌面状态1217快速学习 MAXScript语言的两个方法,…1318一个简单的 MAXScript例子…1318.1用 MAXScript创建一个简单的Box对象…1131.8.2修改Box对象…141.8.3Box对象的标准转换1718.4Box对象的更多转换191.8.5为Box对象创建动画19第2章 MAXScript语言基础22.1脚本文件里命令的求值.…1111111112122把脚本文件包含在另一个脚本文件中……2123向 MAXScript里输入数据信息2.4使用“?”号.11112.5脚本运行过程的错误信息2.6用Esc键中断程序运行27在 MAXScript中使用3 ds max命令…….242.8语法定义的格式说明……11131MAXScript脚本编程手册29 MAXScript里的数学运算…1111322.10源代码布局規则与注释………--------111--1132.11赋值……32.12属性、方法、操作符、字面常量2.13标识符……11113332.14保留关键字、标点、符号…1111111111362.14.1保留关键字……11111362.14.2标点、符号…111111111137第3章 MAXScript数据类型383.1数据的操作符和方法…:383.1.1操作符3.1.2方法383.2基本数据类型…1403.2.1 Number……1111113.2.2 String…...1111111433.2.3Name,3.2. 4 Boolean class mmmmmmm 483.2.5 Color3.2.6 Point3,…1111111111111111111111503.2.7 Point2..533.28Ray.….1111543.2.9Quat.….1.1543.2.10 AngleAxis.3.2.11 EulerAngles .3,2.12 Matrix3…11111111593.2. 13 BimAtrix63,2,14Box2,…633.215 Bitarray…,…3.2.16Time653.2.17 Interval.111663. 2.18 Bitmap663,2,19 Stream,,,,733,3特殊数据类型7633.1 undefined类763.3.2OK.11…7633,3 unsupplied,1111111763. 3, 4 Dont Collect……7734高级数据类型非4非非主丰4非非非4非主14非非非主4非主4非非非非非非非E非非非主非非E非非非主非非非非1非非非丰非非主非非主非非非非非非非非非非主④非非非1非非非非丰非非非非非非非77目录34.1 Structure(结构)…111111111117734.2 MarKey类3.4.3 NoteTrack……111111111182344 Collection(集合类数据)O3.5集合类数据类型…::1:1113.5.1Aray(数组)3.52 PathName(路径名)…11111113.5.3 Object Set(对象集)……111111893.54 Selection Set(选择集903.55 Selection Set Array(选择集数组)3.56 Node Children Array(子对象数组)…923.5.7 Vertex Selection(顶点选择集)…:::::923.58 Facesclection(面选择集)3.59 Deselection(边选择集)…mmmm953.510 MaxKey Array(关键帧数组)…97351 MaxNotcKeyArray(Note轨迹关键帧数组)…93.5.12 Modificrarray(修改器数组),13.513 MaterialLibrary(材质库)…11993514 ArrayParameter(数组参数类)…非有非丰非非非非非非非车非非非车车非非第4章 MAXScript语言的变量和表达式…1034.1变量赋值…1111111111111111034.2变量的求值顺序….1111044.3变量的作用域……1:1111044.4局部变量和全局变量….--1111111084.5保留全局变量1104.5.1预定义全局变量…,1104.523 ds max系统变量…11111111111104.53 MAXScript系统变量….1154.6持续型全局变量……64.7变量的几个特性…11-111111174.8表达式……1949简单表达式12049.1数学表达式…11111112049.2比较表达式…12149.3逻辑表达式…1111112149.4函数调用表达式49.5块表达式…11224.10关联表达式1非主非非非4非非丰4非非非非非非主车非非主有非主4非非非非非非非非非非非E非非主非非非主非非非非非非非日非非非非非日日非非非非非非非非非日日非非122MAXScript脚本编程手册4.10,1 animate…:1234. 10.2 at level, in.m...mmmm.. 1234.10.3 at time…11111111111111244. 10.4 coords4. 10.5 aboutx1254.10.6undo,,…1254.10.7关联语句的选加.11111111264.10.8关联语句嵌套…1111264.10.9持续关联语句…127第5章控制 MAXScript程序流程……...1285.1if表达式…1285.2case表达式……111111111112853 while循环和do循环…1154for循环,…1305.5 continue语句13156cxit语句13157try表达式…,…1132第6章 MAXScript自定义函数13361创建自定义函数…1111111336.2函数变量1356.3函数参数13664 return表达式非非非非非非非非非主非非非非车非非非丰非非非非非非非非非非非非非非非1386.5函数调用的优先级4444非414非4414非非非4非4非非丰非非4a非非1非44非非4车非非非4非非4车非1车非44非4非非主非日非非非138第2部分用 MAXScript操作场景对象第7章对象超级类 MAXWrapper.....14071 MAXWrapper的通用属性和方法….140711 MAXWrapper值和类的通用属性…1407.12 MAXWrapper值和类的通用方法14172 MAX Wrapper的扩展数据…1111143第8章创建Node(节点)对象1458.1Node类构造函数14582Node类方法…::::::1468.2.1通用方法146822与渲染有关的方法,…:1149目录823与组( Group)有关的方法…::1111111582.4与视窗状态有关的方法…15182.5与对象选择有关的方法…………………1528.26与修改器堆栈( Modifier Stack)有关的方法……152827与对象 Modifier关联转换有关的方法,82.8与对象转换有关的方法154829与用户定制属性有关的方法1558.2.10与K属性有关的方法…:.568.2.1Nodc类其他方法…115783Node类对象属性15783.1Node通用属性…15783.2与 Target/ LookAt有关的属性…111159833与视窗有关的属性159834与层有关的属性……1111116083.5与渲染有关的属性.…11116183.6与转换有关的属性,…:111116283.7使用Node对象的转换属性…16483.8定制Node属性……11111111111116884Node子类非丰丰④丰④非非非非非非非非非④非非非非非主车非丰非E车非丰半非非E车车非非非车非非主车非非非非主非非图非非道非非非非非非主道车车非非非主主车非非非非1698.4.1 Geometry Class: Node16984.2 GcomctryClass的操作符和方法,1117084.3 Gcomctry-Standard Primitives(标准基本体)…17084.4 Geometry- Extended Primitives(扩展基本体)…17684.5 Gcomctry-Dynamics Objects(动力学对象)…18684.6 Geomctry-Compound Objects(复合对象)19084.7 Gcometry-Door和 Window(门窗建筑对象)….19884.8 Stair:: Geometry Class(楼梯建筑对象)……1120384.9 Gcomctry-Patch Objects(面片栅格对象)84.10 Geometry-Particle Systems(粒子系统)……11111184.l1 Gcometry-NURBS Objects( NURBS对象)…2368.5 Shape:Node………11111111237851 Shape类方法1111111112378.52 Shape-Spline(样条曲线)…11111111112398.53 Spline类Shap对象通用属性和方法2398.54 NURBS曲线,…18.6 Light:Node,1111111111186.1 Light通用属性、操作符和方法2528. 7 Camera: Node2635
用户评论