下载
加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 3d max完全学校手册

3d max完全学校手册.pdf

3d max完全学校手册

苦茶读计算机
2014-03-07 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《3d max完全学校手册pdf》,可适用于IT/计算机领域

dsMAXScript脚本语言完全学习手册王华编著北京科海电子出版社内容简介MAXScript语言是dsmax自带的脚本语言它不但拥有一般程序语言的所有特点而且可以在程序内实现几乎所有在dsmax界面下的交互操作功能非常强大而且语法比较简单容易上手。本书详细、系统地介绍了MAXScript语言。全书分成部分共章。第部分详细介绍了MAXScript语言的基础知识、数据类型、变量、表达式、函数及程序流程控制等语法方面的基础知识第部分讲述了MAXScript语言如何创建和修改模型、如何对材质以及动画进行控制第部分详述了用MAXScript语言创建实用工具、用户界面等方面的知识第部分讲述了如何在脚本程序里控制dsmax用户界面、如何暂停脚本执行、如何控制渲染器、如何执行外部命令或程序以及如何退出和重置dsmax系统等方面的问题。本书的最大特点是用实例程序对MAXScript脚本语言的功能进行演示实用性强特别适合有一定dsmax使用基础的读者阅读对于专业动画创作人员本书也有很高的参考价值可作为工具书随用随查。图书在版编目(CIP)数据dsMAXScript脚本语言完全学习手册王华编著北京:兵器工业出版社北京科海电子出版社ISBNⅠM…Ⅱ王…Ⅲ三维动画图形软件dsmax程序设计手册ⅣTP中国版本图书馆CIP数据核字()第号出版发行:兵器工业出版社北京科海电子出版社封面设计:林陶邮编社址:北京市海淀区车道沟号责任编辑:李翠兰陈洁北京市海淀区上地七街国际创业园号楼层责任校对:刘雪莲wwwkhpcomcn印数:–电话:()开本:×经销:各地新华书店印张:印刷:北京科普瑞印刷有限责任公司字数:千字版次:年月第版第次印刷定价:元(版权所有翻印必究印装有误负责调换)前言使用MAXScript脚本语言的原因dsmax是目前国内动画行业使用最普遍的、功能强大的三维动画设计软件它除了具有交互操作方式外还提供了编程开发工具MAXScript脚本语言。MAXScript是dsmax众多插件中最有特色的一个。MAXScript脚本语言具有强大的功能主要表现在以下几个方面:●MAXScript是一种面向对象的程序设计语言没有很严格的格式要求易于掌握。●MAXScript不但拥有一般程序设计语言的所有特点而且几乎可以在程序内实现所有在dsmax界面下的交互操作覆盖了dsmax的绝大部分功能如可进行建模、动画设置、材质调制、灯光设置、渲染处理等。●可以建立批处理工具这样可以把dsmax从业人员从一些简单重复的工作中解脱出来。例如建立一次可以渲染多个场景文件的MAXScript脚本语言程序。●用MAXScript进行动画设计是动画创作的较高层次由MAXScript生成的动画往往有出神入化、令人惊叹的效果。例如用MAXScript可以轻松地模拟有上千个球体的星系可以生成逼真的群鸟飞翔的动画可以使物体按某个特定的数学曲线运动而这些恰恰是传统的交互操作方式很难完成的。●可以定制自己的卷展栏(Rollout)界面、鼠标工具、插件、工具按钮等。本书的写作目的作者具有十余年的dsmax使用经验因为工作需要早在五六年前就开始了对MAXScript脚本语言的研究随着对其了解得越深入就越发现其魅力无穷同时作者的职场生涯也因MAXScript而受益匪浅。许多dsmax中文用户也很想对MAXScript脚本语言有系统的了解但比较普遍的情况是:英文程度不够直接阅读联机帮助都比较有难度另外还有一点就是从事动画行业的人编程水平普遍都不高所以往往半途而废。一直以来虽然市面上有关dsmax的专业书籍多如牛毛却只有个别的书里面会有关于MAXScript脚本语言的比较简单的介绍但常常都是蜻蜓点水一带而过网络上也仅能见到关于MAXScript语言某一方面功能的零星文章。对于dsmax的众多插件中最有特色也是功能最强大的MAXScript脚本语言却没有一本完全的教材!因此我萌生了写作本书的想法希望通过本书的出版完全改变dsmax中文用户学习MAXScript脚本语言的现状让国内的dsmax同行真正从日常重复的工作中解放出来轻松实现对三维建模、动画的精确控制从而为dsmax的中文用户找到一条全面提升dsmax专业水准的捷径。我相信在本书之后将会有越来越多的dsmax同行开始这方面的研究将有更多的dsmax同行从中受益。本书的读者对象本书实用性很强特别适合有一定dsmax使用基础的读者阅读对专业动画创作人员也有很高的参考价值。由于MAXScript脚本语言没有严格的格式要求且易于掌握所以对于没有多少编程语言基础的读者亦非常适合。本书的主要内容本书从最基本的内容讲起对MAXScript脚本语言的强大功能做了详细、系统、全面的介绍。本书无论对MAXScript脚本语言的初学者还是对有使用经验的读者都具有一定的学习和参考价值。全书分成部分共章。下面详细介绍各章的内容。第部分MAXScript语法基础第章“了解MAXScript”讲述了如何开始MAXScript。对新建、编辑、运行脚本程序及与MAXScript语言有关的两个窗口都有详细的讲解最后通过一个简单的例子来引导读者编写简单的MAXScript脚本语言。通过本章读者可以对脚本语言有一个初步的印象。第章“MAXScript语言基础”主要介绍了关于MAXScript语言脚本源程序编写的一些基础知识指明了读者需要预先掌握的知识。对一些基本概念如“字面常量”、“标识符”、“保留关键字”等做了详细介绍本章还讲述了MAXScript脚本语言的表达式和赋值语句以及语法定义的格式说明等。第章“MAXScript数据类型”讲述了MAXScript脚本语言的数据的操作符和方法并详细讲解了各种数据类型。第章“MAXScript语言的变量和表达式”介绍了变量的赋值、求值顺序、局部变量和全局变量以及表达式等方面的内容。第章“控制MAXScript程序流程”介绍了程序流程控制其中包括if、case、while、do、for、continue、exit、try语句。第章“MAXScript自定义函数”集中讨论了函数包括如何创建自定义函数和调用函数、如何向函数传递参数以及如何从函数返回值等。第部分用MAXScript操作场景对象第章“对象超级类MAXWrapper”介绍了MAXWrapper的通用属性和方法及其扩展数据。第章“创建Node(节点)对象”详细介绍了所有场景对象的属性以及创建方法。这是MAXScript脚本语言在“建模”方面的应用。第章“EditableMesh、SplineShape、Patch和EditablePoly”对EditableMesh、SplineShape、Patch、EditablePoly的构造函数、操作符、属性、方法等方面做了详细介绍。第章“Modifier(对象空间修改器)和Spacewarp(世界空间修改器)”讲解了MAXScript脚本语言在修改模型方面的应用即对各种对象空间修改器和世界空间修改器做了详细介绍。第章“Material(材质)和TextureMap(贴图)”讲述了如何使用MAXScript脚本语言对各种类型的材质以及其贴图进行调整。第章“动画控制器”详述了各种动画控制器的属性及其与控制有关的方法。这是MAXScript脚本语言在精确控制动画方面的应用。第章“Atmospheric(环境效果)”讲解了各种环境效果的属性和方法。第章“RenderEffect(渲染效果)”详细介绍了各种类型渲染效果的属性和方法。第部分用MAXScript创建实用工具、用户界面第章“创建脚本工具程序Utility”介绍了如何定制和定义脚本工具程序Utility对Utility、Rollout以及各种控件、图像按钮等做了详细介绍。第章“RcMenu(右键菜单)”讲解了RcMenu子句、用户界面控件、菜单项、分隔行、子菜单。第章“宏脚本(MacroScript)”讲解了宏脚本的定义和图标位图文件的创建。第章“脚本鼠标工具”介绍了脚本鼠标工具定义和MouseTool子句。第章“脚本插件”讲解了各类脚本插件包括Shape类、Light类、Modifier类、Material类、TextureMap类等脚本插件。还介绍了Plugin子句以及如何定制用户界面卷展栏等问题。第部分MAXScript的高级应用第章“在MAXScript里与用户界面交互”讲述如何在脚本程序里控制dsmax用户界面包括按下命令按钮、打开和关闭触发器以及打开对话框等。第章“在MAXScript里存取文件”介绍了场景文件的装载、保存以及脚本文件的加密等方面的问题。第章“事件侦测和信号反馈机制”讲解了事件侦测和when构造函数、时间改变信号反馈机制、视窗刷新信号反馈机制以及通用事件反馈机制。第章“MAXScript杂项函数”介绍了如何暂停脚本执行、如何控制渲染器、如何执行外部命令或程序、如何使用时间计算函数以及如何退出和重置dsmax系统等。如何使用本书不管何种学习模仿都是最行之有效的方法。在讲述MAXScript脚本语言的过程中提供了一系列的实例程序每个程序对MAXScript脚本语言的某个特定的功能做了例证对学习和掌握MAXScript脚本语言很实用。读者应该认真阅读这些实例并以此为参照写出自己需要的脚本程序。本书亦可以作为工具书以备日常使用中查找需要了解的内容这一点可以通过详细的目录轻松实现。其实阅读本书也是对dsmax从另一个角度上的全面了解本书几乎涉及dsmax的方方面面。因作者水平有限书中错误在所难免读者在阅读本书时有任何问题或不同见解请不吝赐教!作者的Email:wanghuawhhotmailcom。最后特别感谢刘立平先生对本书写作所作出的重大贡献。编者第部分MAXScript语法基础第部分MAXScript语法基础第章了解MAXScript本章讲述了从哪里开始MAXScript脚本语言新建、编辑、运行脚本程序及与MAXScript语言有关的两个窗口最后通过一个简单的MAXScript例题演示了用脚本语言可以做哪些事情。通过本章的阅读将对脚本语言有一个初步的印象。在本章中会涉及到一些函数和专业术语你可能会感到很陌生可以先跳过它们在以后的章节中会一一介绍到。开如何始MAXScriptMAXScript是dsmaxR版以后增加的一种内嵌的脚本语言因此它只能在dsmax界面下使用。有两种方法可以在dsmax里打开MAXScript。最简单的方法是在MAXScript菜单栏里选择MAXScriptListener可以打开MAXScriptListener窗口如图所示。在一个dsmax窗口里一次只能打开一个MAXScriptListener窗口该窗口是一个大小可调的无模式窗口用户可以在其和别的软件窗口之间任意切换。现在我们来认识一下Listener窗口。Listener窗口分成上下两部分:上部分(粉红色)为宏记录区域下部分(白色)为输出区域。如果宏记录区域在Listener窗口打开后不可见用鼠标按住分隔条向下拖拉就可以打开该区域。用户操作dsmax过程中每一条可记录的命令都会作为一行脚本语言显示在Listener窗口的宏记录区域里。用户在两个区域里都可以进行文本的复制、剪切、粘贴、拖拉、编辑和选择运行源程序代码。另一种方法是在命令面板里按下选择UTILITY|MAXScript可以打开MAXScript卷展栏显示如图所示。图MAXScriptListener窗口图MAXScript卷展栏第章了解MAXScriptMAXScript卷展栏各按钮说明如下:‹OpenListener打开MAXScriptListener窗口。‹NewScript打开一个新的MAXScriptEditor窗口来写入新的脚本。‹OpenScript打开一个已存储的脚本文件该脚本文件会被显示在一个新的MAXScriptEditor窗口里。‹RunScript打开并运行脚本文件运行过程的所有输出都会显示在Listener窗口的输出区域里。‹Utilities显示当前可用的脚本工具清单只有显示在该清单里的脚本工具MAXScript才能执行它。有关脚本工具的更多内容请参见本书第章。如何编辑新建、运、行脚本文件我们已经知道如何开始MAXScript了接下来将学习如何新建、编辑、运行已有的脚本文件。脚本文件后缀为*ms或*mse。新建脚本文件新建一个脚本文件有下面两种方法:方法一:在MAXScript菜单栏下选择NewScript。方法二:在UTILITY命令面板里展开MAXScript卷展栏按下NewScript按钮。编辑脚本文件同样编辑一个已有的脚本文件也有下面两种方法:方法一:在MAXScript菜单栏下选择OpenScript。方法二:在UTILITY命令面板里展开MAXScript卷展栏按下OpenScript按钮在弹出的文件选择对话框里选择要编辑的脚本文件。用别的文本编辑工具如写字板也可以新建、编辑脚本文件。运行脚本文件运行dsmax脚本文件的方法有下面四种:方法一:在MAXScript菜单栏里选择RunScript。在弹出的文件选择对话框中选择要运行的脚本文件后单击Open按钮MAXScript就立刻开始执行指定的脚本文件。方法二:在UTILITY命令面板里展开MAXScript卷展栏单击RunScript按钮。方法三:从Windows命令行里直接运行脚本。可以在启动dsmax的同时运行一个指定的脚本文件。为了达到此目的要用到dsmax的一个命令行开关“U”如下例:c:dsmaxdsMAXUMAXScriptrendercamsms脚本文件rendercamsms自动装入两个场景并对每个摄影机进行渲染:第部分MAXScript语法基础loadMaxFile"foomax"forcincamerasdorendercamera:coutpile:("foo"cname"bmp")loadMaxFile"bazmax"forcincamerasdorendercamera:coutpile:("baz"cname"bmp")quitMax#noPrompt要实现在Windows命令行里直接运行上面的脚本文件有下面两种方法:()选择dsmax桌面图标按右键选择“属性|快捷方式”标签修改“目标(T)”为“c:dsmaxdsmaxUMAXScriptrendercamsms”如图所示。()选择“开始|运行”在“打开(O)”栏里输入“c:dsmaxdsmaxUMAXScriptrendercamsms”如图所示。图dsmax快捷方式建立窗口图选择Windows运行窗口方法四:可以在Listener窗口或其他脚本文件中用下面函数运行脚本:filein<filenamestring>quiet:<boolean>其中参数<filenamestring>为指定脚本文件的字符串或求值结果为字符串的表达式参数quiet:为可选参数指定当装载文件时是否在Listener窗口里列出程序代码清单默认值为quiet:True表示不列出清单。例如:filein"myscriptms"在dsmax开运时载始行加所需的脚本文件熟悉AutoCAD的内嵌语言AutoLISP的读者应该知道:AutoCAD在每次启动时都会在文件搜索路径里查找文件acadlsp一旦找到该文件就会自动装载它。在dsmax里也有类似功能。假如我们有一个函数库并且每次在MAXScript里都需要预先装载它们用来对界面作一些设置、装载一些工具卷展栏脚本时如果这些工作都能在启动dsmax时由系统自动第章了解MAXScript进行将会大大简化我们的工作。在dsmax里启动脚本文件startupms就可以实现这种功能。设置自动查找启动脚本文件的功能的方法为:在dsmax菜单中选择Customize|Preference在弹出的PreferenceSettings对话框里选择MAXScript选项卡然后按如图所示进行设置。图PreferenceSettings对话框按图设置好后每次启动dsmax时系统会按下面的顺序查找脚本文件:()首先MAXScript按下面路径顺序查找名为startupms的文件并把它装入系统:Scripts路径→StartupScripts路径→dsmax主路径→位WindowsNT系统路径(system)→位WindowsNT系统路径(system)→Windows路径→在Windows系统PATH环境变量里列出的路径。其中Scripts路径与StartupScripts路径可以在dsmax的Customize|ConfigurePaths对话框里进行定义如图所示。()当找到第一个startupms文件后MAXScript会停止查找然后MAXScript会对Plugins路径和StartupScripts路径以及其下级路径进行扫描所有以*ms和*mse为后缀的脚本文件都会被自动装入系统。在此过程中如果又发现名为startupms的文件系统会自动跳过它。如果我们不希望某一个下级路径里的文件被系统自动装入可以把路径名用括号括起来如“(oldversion)”。第部分MAXScript语法基础图ConfigurePaths设置窗口MAXScriptListener窗口MAXScriptListener窗口的功能及特点MAXScriptListener窗口兼有文本编辑和命令提示的功能它既可以执行用户窗口里输入的命令也可以对该命令进行编辑然后执行修改后的命令。关于Listener窗口的使用有下面几点提示:编辑、执行窗口中间的命令可以执行或编辑Listener窗口中已有的文本区分这两者的方法为:()在当前鼠标位置按下Enter键插入一个空行。()按ShiftEnter键或数字键盘的Enter键执行鼠标所在行执行命令产生的输出信息或错误信息会显示在Listener窗口输出区域的当前行之后。文本末的命令使用Listener窗口最简单的方法就是在已有文本的末尾输入命令按Enter键执行这叫做“endoftextcompilation”(文本末编译)。选择并执行命令我们可以选择多行文本然后按ShiftEnter键来逐行执行所选择的文本也可以仅选择一行命令里能构成一个有效的MAXScript表达式的一部分按ShiftEnter键来执行。执行表达式块MAXScript命令可能是单行或多行命令也可以是一个由许多命令组成的表达式块。如果用户想在已有的命令中加入一个表达式块或多行命令可以先按Enter键插入所有行后选择它们然后按ShiftEnter键来执行。如果用户想在Listener窗口的文本末尾输入一个多行命令或表达式块当每次按下Enter键时系统将编译每一行但只有在多行命令或表达式块输入完整后才会被执行。我们仅能在按下Enter键之前修改本行命令而不能对多行命令或表达式块的前面部分进行第章了解MAXScript修改。用户也可以按Esc键取消本次多行命令或表达式块的编译。将表达式块定制成宏脚本可以选择一行或多行命令将它们拖至dsmax工具栏创建一个包含这些命令的宏脚本。有关宏脚本的更多信息请参见本书第章。Listener窗口具有以下特点:‹当用户把鼠标移到左边边框边缘时会变成一个指向右边的箭头单击鼠标可以选取整行文本按住鼠标拖动可以进行多行选择。‹可以在Listener窗口内或与MAXScriptEditor窗口之间进行文本的拖拉复制。‹当用户执行Listener窗口下Search|FindorSearch或Replace命令时用户刚刚选择的文本将自动作为查找内容。‹对输入文本、输出文本、错误信息都使用不同的颜色显示以便于区别。有三个MAXScript系统变量控制这三种颜色用户可以将它们改变成自已喜欢的颜色。如下表所示。文本类型系统变量默认值输入文本inputTextColorBlack(黑色)输出文本outputTextColorBlue(蓝色)错误信息messageTextColorRed(红色)MAXScriptListener命令下表是Listener窗口里的菜单命令和快捷键其中Edit命令也可以在单击鼠标右键的弹出菜单里找到。命令名称快捷键说明File|CloseCtrlW关闭当前Listener窗口File|SaveAsCtrlS将当前Listener窗口里的脚本存为另一个文件File|NewScriptCtrlN打开一个新的脚本文件File|RunScriptCtrlR运行Listener窗口里的脚本文件Edit|UndoCtrlZ取消上一次操作Edit|CutCtrlX文本剪切Edit|CopyCtrlC文本复制Edit|PasteCtrlV文本粘贴Edit|DeleteDel文本删除Edit|ClearAll清除活动Listener窗口里所有内容Edit|SelectAllCtrlA选取Listener窗口里的全部文本Search|FindCtrlF字符查找Search|FindNextCtrlG再次查找字符Search|ReplaceCtrlH字符替换第部分MAXScript语法基础(续表)命令名称快捷键说明Help|HelpF显示MAXScript在线帮助Help|AboutMAXScript显示AboutMAXScript对话框CtrlB选择当前括号内的文本。这样可以帮助我们检查一段很长的源程序的括号匹配情况。括号可以是()、[]、{}。将鼠标置于源程序任意位置按下CtrlB如果鼠标处于一个括号之后那么从该括号开始直至与之匹配的括号结束的程序代码将被选择。如果鼠标没有紧跟在一个括号之后最近的一个括号对里包含的程序代码被选择第二次按下CtrlB上一层括号对里的代码将被选择反复按下CtrlB将遍历程序里所有的括号嵌套。如果在某一点发现括号不匹配系统会给出蜂鸣提示不选择任何文本宏记录器(MacroRecorder)Listener窗口还有一个很重要的功能:记录用户在dsmax界面里的大部分操作。每一个可记录的命令会作为一个命令行显示在Listener窗口的宏记录区域里。这种功能类似于录音机的录音功能我们称之为“宏记录”(MacroRecorder)。对绝大多数菜单栏上的按钮、工具栏、状态栏、Create命令面板、Modify命令面板的操作都会产生MacroRecorder输出。但是如果这些按钮激活一个对话框在这个对话框里进行的修改设置MacroRecorder将不作记录。在Create面板和Modify面板里用MAXScript能创建的所有对象类型的操作都会产生MacroRecorder输出。下面列出了Listener窗口里MacroRecorder菜单项下的所有开关选项。Enable如果Enable被选择宏记录才会在Listener窗口里生成相应MAXScript命令。ExplicitSceneObjectNamesSelectionRelativeSceneObjectNames一对互斥开关指定在生成的宏记录中使用对象名还是选择符“$”。如果选择ExplicitSceneObjectNames生成的宏记录为如下形式:move$Sphere,,如果选择SelectionRelativeSceneObjectNames生成的宏记录为如下形式:move$,,AbsoluteTransformAssignmentsRelativeTransformOperations一对互斥开关指定在生成的宏记录中使用绝对转换赋值还是相对转换操作。如果选择AbsoluteTransformAssignments当在视窗里移动一个对象选集时生成的宏记录为如下形式:$position=,,如果选择RelativeTransformOperations相应的宏记录为如下形式:move$,,第章了解MAXScript当选择AbsoluteTransformAssignments选项时绝对转换赋值仅用于单个对象被转换的情况如果对象选择集里有多个对象产生的宏记录仍然使用相对转换操作。ExplicitSubobjectSetsSelectionRelativeSubobjectSets一对互斥开关指定在生成的宏记录中使用子对象标识符还是子对象选择集属性。如果选择ExplicitSubobjectSets生成的宏记录为如下形式:move$Sphereverts#{,},,如果选择SelectionRelativeSubobjectSets生成的宏记录为如下形式:move$SphereselectedVerts,,如果使用SelectionRelativeSubobjectSets选项记录下来的脚本也可以用于别的选择集这样可以生成一些通用的脚本。如果用户希望脚本总是对同一子对象进行操作而不是当前的选择集就可以使用ExplicitSubobjectSets选项。CommandPanelSwitchings如果选择CommandPanelSwitchings选项宏记录会为不同命令面板之间的切换生成脚本命令。在绝大多数情况下记录命令面板之间的切换是多余的因为大多数脚本并不依赖用户界面的状态。ToolSelections如果选择ToolSelections选项当用户按下dsmax的工具栏里的某一按钮时宏记录会生成一条命令。在绝大多数情况下记录工具栏里的按钮状态是多余的。MenuItemSelections如果选择MenuItemSelections选项当用户按下dsmax的某一菜单项时宏记录会生成一条命令。Listener日志文件当用Listener窗口工作时我们可以使用日志文件来记录所有输入、输出文本。日志文件可以记录输入到Listener窗口的文本(上下两个区域都可以)和显示在输出区域的输出结果。但宏记录器(MacroRecorder)的输出结果不能被记录。用下面的函数可以打开一个日志文件:openLog<filenamestring>mode:"w"|"a"outputOnly:<boolean>例如:openLog"mylogtxt"mode:"a"outputOnly:True函数的几个参数说明如下:‹<filenamestring>是一个字符串或返回字符串的表达式指定了要创建日志文件的文件名。‹mode是一个可选参数指定了文件打开的模式默认模式“w”将创建一个新文件或覆盖已有的同名文件。模式“a”把记录加到文件的末尾如果指定文件不存在将导致一个错误信息。第部分MAXScript语法基础‹outputOnly指定了记录的内容默认值为False记录输入和输出。如果指定outputOnly:True将仅记录输出内容。日志文件数据并不被连续地写入日志文件而是先被写入内存缓冲当内存缓冲被写满时系统再把缓冲里的数据写入日志文件可以用函数flushLog()来保证所有数据都被写入文件。函数closeLog()可以做下面三件事情:停止记录、刷新日志缓冲、关闭日志文件。如果在调用函数flushLog()或closeLog()时并没有打开日志文件系统不会给出错误信息。MAXScriptEditor窗口MAXScriptEditor窗口功能及特点MAXScriptEditor窗口是一个文本编辑窗口用户可以在dsmax里用它进行文本文件(主要是MAXScript脚本文件)的创建、编辑。如图所示。图MAXScriptEditor窗口MAXScriptEditor窗口的功能和菜单项与Windows自带的记事本相似可以同时打开任意数量的Editor窗口适合于编制复杂的脚本文件、工具和函数库其功能如下:‹可以选择Editor窗口里一行或几行脚本将其拖拉至dsmax的工具栏创建一个脚本宏。‹可以通过调用edit()函数在Listener窗口中或其他正在运行的脚本文件中打开一个MAXScriptEditor窗口其语法为:edit<filenamestring>其中参数<filenamestring>为一个字符串或求值结果为字符串的表达式它指定了要装入MAXScriptEditor窗口的脚本文件名例如:Scriptfile="myscriptms"第章了解MAXScript‹可以在Listener窗口或正在运行的脚本文件中创建一个新的脚本文件其语法为:newScript()下面的例子将创建一个新的脚本文件然后把一些中间结果写入文件中:debug=newScript()print$footo:debugformat"nameis|n"objnameto:debug‹如果我们需要查找某一个脚本函数在哪一个脚本文件中被定义可以使用下面的方法:showSource<fn>系统会打开一个新的MAXScriptEditor窗口显示定义该函数的脚本文件并将光标定位在该函数定义的起点。MAXScriptEditor窗口具有与Listener窗口相同的特点请参见节。MAXScriptEditor窗口的菜单命令下表是MAXScriptEditor窗口的所有菜单命令和快捷键其中Edit菜单命令也可以用右键弹出菜单得到如图所示。命令名称快捷键说明File|NewCtrlN打开一个新Editor窗口File|OpenCtrlO打开一个FileOpen对话框让用户选择一个已有的脚本文件并在一个新的Editor窗口里打开该文件File|CloseCtrlW关闭当前MAXScriptEditor窗口File|SaveAsCtrlS存储MAXScriptEditor窗口里的内容到当前文件名里然后关闭MAXScriptEditor窗口。如果还没有文件名会打开一个FileSave对话框File|EvaluateAllCtrlE对当前窗口内全部内容求值Edit|UndoCtrlZ取消上一次操作仅支持一级取消Edit|CutCtrlX文本剪切Edit|CopyCtrlC文本复制Edit|PasteCtrlV文本粘贴Edit|DeleteDel文本删除Edit|SelectAllCtrlA选取Editor窗口里的全部文本Search|FindCtrlF字符查找Search|FindNextCtrlG再次查找字符Search|ReplaceCtrlH字符替换Help|HelpF显示MAXScript在线帮助第部分MAXScript语法基础(续表)命令名称快捷键说明Help|AboutMAXScript显示AboutMAXScript提示信息ShiftEnter执行选择的命令行如果没有选择文本则执行光标所在行Ctrl右击鼠标显示一个弹出菜单里面包含当前脚本中定义的所有工具(UTILITY)、结构(structure)、用户界面、函数、插件、工具、脚本宏、右键菜单选择其中一个可以把鼠标定位在定义该项的脚本起始处这点可以帮助我们快速定位如图所示CtrlD在MAXScriptEditor窗口里执行一次语法着色每按一次CtrlD窗口就被刷新一次。分别使用下面的颜色:注释用绿色MAXScript保留字用蓝色其他字符串用浅红色。这在阅读大型、复杂的程序时很有帮助新输入的文本总是用黑色显示所以要用CtrlD快捷键重新着色。语法着色仅作为一个编程的辅助手段它不会影响脚本的执行CtrlR定位鼠标至上一个单击的位置或查找操作的位置CtrlB选择当前括号内的文本。这样可以帮助我们检查一段很长的源程序的括号匹配情况。括号可以是()、[]、{}。将鼠标置于源程序任意位置按下CtrlB如果鼠标处于一个括号之后那么从该括号开始直至与之匹配的括号结束的程序代码将被选择。如果鼠标没有紧跟在一个括号之后最近的一个括号对里包含的程序代码被选择第二次按下CtrlB上一层括号对里的代码将被选择反复按下CtrlB将遍历程序里所有的括号嵌套。如果在某一点发现括号不匹配系统会给出蜂鸣提示不选择任何文本图Ctrl右击鼠标弹出窗口MAXScript桌状态面MAXScript可以保存上一次退出dsmax时的桌面状态包括活动Editor窗口和Listener第章了解MAXScript窗口的位置当用户再一次启动dsmax时这些窗口会自动被恢复。桌面状态存储在一个名为MAXScriptdsk的文件里该文件在dsmax的执行路径里用户可以改变它的名字或以另外一个文件取代它也可以简单地把它删除那样桌面状态将不会被自动恢复。学习快速MAXScript语两个言的方法通过一个脚本文件学习MAXScript最好的学习MAXScript命令和语法的方法是在MAXScriptEditor窗口中调入一个脚本文件逐行运行它然后观察Listener窗口和用户界面的反应:()在MAXScriptEditor窗口中打开一个脚本文件。()把光标放在第一个命令行按下数字键盘区的Enter键运行当前行输出信息会在Listerner窗口的输出区域显示。()移动鼠标至下一行重复步骤()。通过宏记录器(MacroRecorder)学习MAXScript如果你想知道MAXScript怎样执行一个任务你可以从MacroRecorder开始。宏记录器捕捉绝大多数命令执行的操作并产生与这些操作相应的MAXScript命令。宏记录器输出在MAXScriptListener窗口的粉红色区域。个一简单的MAXScript例子通过前面的讲述读者应该对MAXScript脚本语言已经有一个比较初步的认识了通过下面的例题将对MAXScript语言如何创建和修改场景对象有一个比较具体的了解。这些例题中有一些内容可能读者觉得很陌生不要紧这些内容在以后的章节里会慢慢涉及到。用MAXScript创建一个简单的Box对象用MAXScript可以创建常见的对象如Box和Cylinder等比如在Listener窗口输入:Box()将在dsmax视窗里用参数默认值创建一个Box对象。也可以将该对象赋给一个变量以便在随后的运算中引用它:myBox=Box()如果在创建对象时不指定任何参数必须在函数名后加一对括号“()”这样MAXScript才能知道使用参数的默认值来创建对象如果在调用函数时指定了一个或多个参数的值则不需要再在后面加括号了如:myBox=Boxlength:width:height:第部分MAXScript语法基础请读者注意上面参数指定的格式:参数名后跟一个冒号“:”再接着参数值有关参数调用请读者参见本书节。对上面的语句Listener窗口在输出区域里返回下面的语句:$Box:Box,,该语句的第一部分为路径名。路径名与Windows系统里的路径名相似如:“C:dsmaxexamplesfilemax”表示一个特定文件所处的路径层级结构。在MAXScript里采用相似的路径概念但是MAXScript的路径指向一个特定的对象而不是文件。路径名总是以“$”开始更详细的有关路径名的信息请参见节。该语句的第二部分是对象名:Box。当用户用SelectbyName工具栏选择对象时出现在SelectObject对话框里的是该对象名称Box而不是变量名myBox。方括号里的数字代表Box几何中心的x、y、z坐标。这时在视窗里会画出该Box对象如图所示。图创建Box窗口修改Box对象在上一节里我们创建了一个Box对象并把它赋给了变量myBox现在我们能很容易地获取Box对象的所有属性获取属性的方法是在变量名后加一个点“”号再紧跟着属性名如myBoxheight可以看作对象myBox的高度属性。对象属性有以下几类:创建类属性如Box对象的height、width、lengthCircle对象的radius变形类属性如scale、rotation、position通用属性如wireColor等。如果想改变对象属性用户可以给它们赋一个新值。如果不喜欢Box对象默认的名字Box可以重新给name属性赋值在Listener窗口输入:myBoxname="BlueBox"获取对象的参数在Modify面板的Parameters卷展栏里用户可以看到对象的所有创建参数并可以改变它们。但如果我们希望在MAXScript里改变这些参数就需要先知道这些参数的语法有两种方法可以获得对象的所有参数设置。showClass()函数showClass()函数可用来显示指定类的全部属性或指定属性的数据类型。格式为:第章了解MAXScriptshowClass<patternstring>:<stream>其中参数<patternstring>为一个可以包含通配符的字符串可以为dsmax的类名、超类名和属性名其格式为:"<classname>:<superclassname><propertyname>"可选参数:<stream>必须指定一个stream类(数据流)值用来指定输出信息显示在哪里。例如:showClass"Box*"MAXScript会在Listener窗口的输出区域里显示Box对象的所有属性。这些属性与用户在Modify面板的Parameters卷展栏里看到的属性相对应内容包括Box对象所属的类和属性的数据类型如图所示。我们可以用匹配符“*”来一次查看多个类的参数如果输入:showClass"Box**"MAXScript会显示Box和BoxGizmo两个类如图所示。图showClass"Box*"窗口图showClass"Box**"窗口下面列出了该函数的一些其他用法读者可以在Listener窗口里输入这些命令来查看其作用:showClass"path*"显示所有类名以path开头的类showClass"noise*"显示noise类贴图所有可存取的属性showClass"*:mod*"显示所有modifier类showClass"**rad*"显示拥有属性名中包含字符rad的属性的所有类showClass"**"to:f显示所有类、超类、属性并输出到指定文件showClass"*:*controller*"显示所有在其超类名中包含字符controller的类showProperties()函数showProperties()函数用来显示某一特定MAXWrapper类对象的属性。如果在场景里有一个具体的对象可以用本函数来取代showClass()函数。和函数showClass()不同本函数会显示“动态属性”

用户评价(1)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/49

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利