您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > MAYA脚本语言MEL系列教程
1MAYA脚本语言MEL系列教程一、了解MELMEL(Maya埋入式语言)为Maya提供了基础。Maya界面的几乎每一个要点都是在MEL指令和脚本程序上建立的。由于Maya给出了对于MEL自身的完全的访问,你可以扩展和定制Maya。通过MEL,你可以进一步开发Maya使它成为你和你的项目的独特而创新的环境。为有效地使用Maya,你并不非得精通MEL。但是,熟悉MEL可以加深你使用Maya的专业能力。使用MEL的许多方面可以由只有很少编程经验或者没有经验者所使用。喜欢MEL并不非得喜欢编程。有一些方法,它们可以使你获得MEL的好处而不必考虑编程的细节。一旦当你进行了产生MEL脚本语言的尝试,你会发现MEL可以给你提供可以想象到的最先进的数字化画图的方法。为了获得Maya的输出,大部分可以使用MEL来做。这里是你可以使用MEL来工作的一些例子:·使用MEL指令脱开Maya的用户界面,快速地产生热键,访问更深的要点。·给属性输入准确的值,脱开由界面强制引起的拘谨的限制。·对特定的场景自定义界面,对一个特定的项目改变缺省设置。·产生MEL程序和执行用户建模、动画、动态和渲染任务的脚本程序。如何使用本教程本教程叙述如何学习和使用Maya埋入式语言(MEL)。如果你初次接触MEL,本教材帮助你在使用MEL指令和脚本程序方面开始起步。一旦当你开始开发MEL程序的时候,本教材将继续帮助你,讲解如何能够使你获得用MEL产生的更多的指令、宏、程序和用户界面元素的输出。本教材假定你对Maya已经有了基本的了解。如果你完全是新开始学习Maya,请看一下学习Maya的教材,并对在UsingMayadocumentationset中描述的要点进行开发。应该熟悉Maya的在线文件(见Onlinedocumentation)。特别是应该使你自己熟悉MELCommandReference和DGNodeReference。本教材的各处都有许多有关的MEL指令和程序码的例子。要运行例子程序,你可以把它们粘贴到Maya的脚本语言编辑器(ScriptEditor)里,并选择EditExecute就可以了。使自己进一步地熟悉脚本语言编辑器的要点,执行脚本程序,并把程序保存到Maya的script目录中的一个文件中,可以参考Maya文件和用户指南中的适当章节。如何学习更多的MEL内容为了学习更多的MEL内容,可以通过以下途径:在线文件训练课程网站资源在线文件本教材提供了一个使用MEL指令、程序和脚本语言的总的概览。有关特定的MEL指令的详细信息,请参阅MELCommandReference。当你学习MEL时,你会发现你需要学习更多的有关Maya的相关图节点(dependencygraphnode)的内容。在线的DGNodeReference文件详细地描述了Maya的相关图节点。训练课程为了学习更多的有关Maya和MEL的内容,请考虑学习Alias│Wavefront的训练课程。这些课程向你介绍MEL指令和脚本语言程序,还可以向你提供最主要的内容的深层知识。要学习更多有关MEL的内容,可以先从MEL基本教程开始。在Alias│Wavefront的网站aliaswavefront.com(ExpressLinktoTraining)中的课程安排和描述是有效的。关于课程的有效性、价格和登录的最新的信息,可发Email给training-info@aw.sgi.com,电话是416-874-8760或1-877-927-7478(option4),或FAX416-369-6131。网站资源2Alias│Wavefront的AssistantOnline提供了许多有关Maya的教材,包括含有产生MEL脚本程序的教材。更多信息可以访问Alias│Wavefront网站:aliaswavefront.com。另外,Highend3D的highend3d.com网站介绍了MEL脚本程序并连接到更多的有关MEL和Maya的信息。为了获得MEL和Maya的大部分的输出,请开发和利用这些训练课程和网站资源。二、MEL要点使用MEL的要点包括了使用MEL指令和产生MEL程序。本章包括以下内容:指令、程序、MayaGems共三个部分。本期介绍MAYA脚本语言MEL的指令。分为以下三个部分:1、了解指令;2、MEL指令文件;3、使用指令。1、了解指令MEL包括了涉及使用Maya的所有方面的全范围的指令。使用MEL指令的一些典型的例子包括快速产生物体、精确移动物体和对物体进行更有效的控制。如,可以使用下述的一个MEL指令产生一个半径准确的为27.5单位的叫做bigBoy的一个球体:sphere-radius27.5-namebigBoy;随后你还可以再输入一条MEL指令将bigBoy绕Z轴旋转90度:rotate-r0090bigBoy;另一个例子,假定你在用结点工具产生一个结点,你想把这个结点沿着X轴方向移动5个单位。你可以执行以下的MEL指令,而不需要打断结点的产生:move-r500;2、MEL指令文件Maya的在线库(OnlineLibrary)描述了每一条指令,提供了用法、格式、返回值和例子的信息。MEL的指令参考在线文件(CommandReferenceonlinedocumentation)提供了以字母顺序排列的指令,也以功能方式加以组织。3、使用指令包括内容有:输入指令、使用指令行、获得指令返回值、指令模式和指令在表达式中。⑴、输入指令Maya提供了一些输入MEL指令的方法;使用脚本语言编辑器(ScriptEditor)或者指令行(CommandLine)是最常用的方法。你也可以在脚本程序文件、MayaASCII(.ma)文件、工具柜图标(shelficons)、热键以及表达式中执行指令。但是最常用的还是在脚本语言编辑器中输入指令。无论如何输入指令,所有的MEL指令必须用一个分号结束。以下是MEL指令的一些例子:sphere-nameroundy;setAttrroundy.translateX7;whatIsls;helpls;ls-typnurbsSurface;⑵、使用指令行可以使用指令行输入MEL指令。如果指令行没有出现,在MAYA主菜单中选择OptionsCommandLine使指令行出现。虽然在指令行和脚本语言编辑器中都可以输入指令,但两者之间有一些重要的区别:你可以从指令行,使用数字键盘或字符键盘的Enter键输入指令。而脚本语言编辑器只能用数字键盘的Enter键。指令行只有一行,执行一个MEL指令。为了输入更多的MEL指令,指令之间可以?quot;;分开。指令行仅将结果的最后一行显示到右边。而脚本语言编辑器显示所有的结果。⑶、获得指令返回值3ManyMEL指令返回一个值。为了抓取这个返回值,可以用单引号或者eval指令。使用单引号获得指令返回值用单引号`将指令前后标注出来可以返回指令的输出。随后你可以把这个输出赋给一个变量并在脚本语言编辑器中显示它。例string$a[];$a=`particle-p505-nameSun`;print($a);第一条语句定义了一个名为$a的阵列。第二条语句执行引号中的MEL指令,并把指令的输出赋给$a。第三条指令把$a的内容显示给脚本语言编辑器,如下:SunSunShape可以对任何一个MEL指令保存和显示其结果。返回值的类型是由你使用的指令决定的。在以上例子中,粒子命令返回一个字符串阵列。所以,等式左边的变量符号也须要是接受这个返回值的字符串阵列的类型。使用eval指令获得指令返回值eval指令执行一个命令,也让你抓取返回值。它比起单引号有一个优点,因为你可以从一个字符串建立一个指令。象单引号方式那样,也可以把输出赋给一个变量并显示它。例string$command=sphere;eval($command+-r5);第一条语句把字符串sphere标注给变量$command。第二条指令给字符串sphere添加-r5,并执行完整的指令sphere-r5。它产生一个半径为5个格子单位的球体。有关eval指令的更多的信息,见掌管指令的在线文件。⑷、指令模式MEL指令选项典型地在以下一种或多种模式中起作用:query、编辑和产生。Query模式是用于找出一些事件的值;编辑模式是用于改变一些事件的值;产生模式是产生一些事件。在在线MEL指令参考中,指令选项的描述包括一个Q、E或C以指示query模式、编辑模式、产生模式。⑸、指令在表达式中可以在一个表达式中执行MEL指令和序列。但是,如果你执行以下的指令你的场景会产生故障:断开或连接属性删除或产生物体或者其他项在一个表达式中播放你的动画不会撤消MEL指令的执行。例如,如果你的表达式执行MEL指令产生了一对球体,播放这段动画时并不删除原来的球体。再次播放该场景时会产生另一对球体。不过你可以通过选择EditUndo撤消MEL指令,但是如果你的场景有故障时,它将会不工作。还要注意,你可以只撤消Queue尺寸的设置所允许的许多运算。为设立Queue尺寸,选择OptionsGeneralPreferences。当你从指令行执行一个指令时,状态信息出现在脚本语言编辑器中和指令行的响应区域里。当在一个表达式中执行指令时,不显示这个信息。关于表达式的更多的内容,请参考UsingMaya:Expressions。三、概述MAYA脚本语言本章包括以下内容:1、了解脚本语言;2、设立脚本语言环境。1、了解脚本语言编写脚本语言程序是产生Maya埋入式语言(MEL)脚本程序的过程。一个脚本语言程序是一个MEL指令或者MEL序列的集。通过产生脚本语言程序,你可以利用Maya的用户界面使执行任务自动化,可以获4得underthehood访问Maya所有的各个部分,还可以对界面进行扩展和自定义。2、设立脚本语言环境为了设立脚本语言环境,需要考虑以下内容:⑴、脚本语言文件⑵、建立脚本语言路径⑶、在脚本语言程序中使用程序⑴、脚本语言文件一个MEL脚本文件(*.mel)是一个包含MEL指令、MEL程序或者二者都有的文件。典型地,是用一个MEL脚本文件执行一系列的指令。如,可以写一个脚本程序以产生一个墙形状的物体,然后再给它施加一个砖的纹理。可以用一个文字编辑器写一个MEL脚本文件然后把它保存到磁盘的一个文件中。MEL脚本文件使用文件扩展名.mel。可以把脚本文件用于不同的场景中和不同的工作期间中。当执行一个MEL脚本文件时,它并不变成为场景的一个部分,因此如果你要想重复它的作用时,应该每次都执行该脚本程序。⑵、建立脚本文件路径在缺省状态下,Maya在你的scripts目录中查找MEL脚本文件。在缺省状态下,这个目录定义在你的login名下。例子如下:(IRIX)~elvis/maya/scripts(WindowsNT)C:\Aw\Elvis\maya\scripts使你的脚本文件可以运行的最简单的方法是把它们放在上述路径里。注意你的scripts目录缺省地包含了一些脚本文件。它们以menu_作为名字的开始,用于Maya内部。你可以给MAYA用于查找脚本文件的缺省路径增加目录。为脚本文件路径增加一个目录(在IRIX中):1--在一个IRIXshell中,设立环境变量MAYA_SCRIPT_PATH给附加目录的路径。2--从这个shell启动MAYA。为脚本文件路径增加一个目录(在WindowsNT中):1--使用WindowsNTExplorer或者MyComputer,显示MayaNTbin目录的内容。缺省时是C:\Aw\MayaX.X\bin。2--双击MayaEnvironment.exe启动该程序。这样显示出了你的home、project、plug-in、script和bitmap目录的路径。该路径包括在安装期间产生的缺省路径和你后来定义的任何路径。不能改变缺省路径。对于plug-in、script和bitmap路径,用分号(;)分离路径,这些项可以定位。在这个窗口中禁止编辑路径。但你可以用以下的
本文标题:MAYA脚本语言MEL系列教程
链接地址:https://www.777doc.com/doc-2882361 .html