MayaMel基础教程(3)

4/5/2006来源:Maya教程人气:8862

MayaMel基础教程
概述MAYA脚本语言本章包括以下内容:1、了解脚本语言;2、设立脚本语言环境。

1、了解脚本语言

编写脚本语言程序是产生Maya埋入式语言(MEL)脚本程序的过程。一个脚本语言程序是一个MEL指令或者MEL序列的集。通过产生脚本语言程序,你可以利用Maya的用户界面使执行任务自动化,可以获得"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路径,用分号(;)分离路径,这些项可以定位。

在这个窗口中禁止编辑路径。但你可以用以下的步骤代替。

重要事项:
如果你的计算机上安装了MayaNT的多个版本,你会看到一个版本的路径。版本号是在窗口的标题栏里。为了看另外的版本的路径,点击Previous或Next。为了保存一个版本的路径,点击Save。如果你的计算机只装了一个版本,这些键会变暗。

3--点击MayaScriptPath框旁边的Change键。

注意,如果你改变了Home路径,这就按照新的home路径改变了project、plug-in、script和bitmap路径。会询问你是否想这样做。点击Cancel可以放弃这个改变。

4--在ChangeSetting窗口中输入(或者编辑)一个路径。

一般地,可以增加缺省路径,但是不能重置它们。当你定义路径时使用左斜线或者右斜线。

为了定义一个远程路径,可以将一个隐含目录与你的计算机上的一个驱动器字符对应起来。细节请看你的WindowsNT文件。

如果需要输入多个路径,使用分号把这些路径分离开。

如果要使用一个文件浏览器从别的文件系统查找和选择一个路径,点击Browse。

为了返回到你原来的缺省路径中,点击RestoreDefault。这对于当你定义了一个不正确的路径或者想删除废弃的路径是非常有用的。

5--点击OK。

例子(IRIX)

为了给scripts路径增加~/maya/scripts/clipFXandremote/X/scripts目录,在启动MAYA之前给IRIX增加以下目录:

setenvMAYA_SCRIPT_PATH~/maya/scripts/clipFX:/remote/X/scripts

随后Maya将能够在~/maya/scripts,~/maya/scripts/clipFX,或者/remote/X/scripts中找到你的脚本文件。

⑶、在脚本文件中使用程序

你可以在MEL脚本文件中使用全局和局部程序。全局程序在它们的文件外边是可见的;局部程序仅在它们的文件内部是可见的。

如果Maya遇到一个没有定义的指令,它会为找到一个与该指令有相同基名的MEL脚本文件搜索脚本路径。当它找到该文件之后,它在该文件中会声明所有的全局MEL程序。任何具有与该指令有相同基名的全局程序会被执行。

如,假定你在运行一个sayWhat指令。因为没有这样的一个sayWhat指令,Maya会在它的所有的script路径中对一个叫做sayWhat或者sayWhat.mel的文件进行搜索。如果在一个script目录中,它找到了有以下内容的sayWhat.mel脚本文件:

procred5(){print("red5standingby...\n");}
globalprocsayWhat(){print("sayWhatonline\n");}
globalprocGoGo(){print("GoGoonline\n");}

然后全局程序sayWhat和GoGo被声明,并执行sayWhat程序。结果是:

sayWhatonline

因为GoGo全局程序已经声明过了;现在就可以在指令行中或者在脚本语言编辑器中输入GoGo运行它。

使用MAYA内部脚本文件

Maya有一些用于它的用户界面和其他运算细节的MEL脚本文件。你可以在Alias|Wavefront中查找这些脚本文件,学习专业脚本程序作者的这些技术。这些脚本文件是在由缺省定义的以下述目录开始的目录中:

(IRIX)/usr/aw/mayaX.X/scripts

(WindowsNT)C:\Aw\MayaX.X\scripts

其中X.X是Maya的版本号。

注意:
不要在这个目录中修改或者插入脚本文件;该目录是保留Maya用户界面工作用的脚本文件的。改变这些文件可能会影响Maya的操作。

如果你想在这个目录中修改脚本程序以改变Maya的界面,先要把它们拷贝到你的局部scripts目录中。如果你的局部scripts目录中有与Maya内部script文件目录中相同名字的脚本文件,那你的局部scripts目录中的文件会被运行。