调用程序

 
 
 

使用定义的 MEL 程序与使用任何其他 MEL 命令或函数一样。若要执行上述 MEL 程序 helloValue,请在脚本、“脚本编辑器”(Script Editor)“命令行”(Command Line)中输入 MEL 程序的名称。

helloValue( 1, "Jake" );
// Result: Hello Jake, number 1 //

为了成功调用,helloValue 程序必须包含整数和字符串参数。执行该程序的另一种方法是不使用圆括号或逗号。例如,若要按此方法执行 helloValue 程序,请输入以下内容:

helloValue 7 "Torq";
// Result: Hello Torq, number 7 //

调用外部程序

如果 Maya 遇到没有定义的命令,则将搜索与该命令相同的 MEL 脚本的脚本路径(在文件名中去掉 .mel 扩展名)。

如果找到该文件,将在该文件内声明所有的全局 MEL 程序,如果该文件内存在已调用的程序,则执行此程序。

例如,用户在其中某个脚本文件夹中含有文件 sayWhat.mel,该文件内容如下:

// This is a local procedure
// that is only visible to the code in this file.
proc red5() {print("red5 standing by...\n");}
// This is a global procedure. When this file
// is sourced, this procedure will become
// available.
global proc GoGo() {print("GoGo online\n");}
// This procedure has the same name as this file
// (without .mel on the end).
global proc sayWhat() {print("sayWhat online\n");}

现在,如果尝试在命令行上调用函数 sayWhat

  1. 由于没有内部命令 sayWhat,Maya 将搜索文件名为 sayWhat 或 sayWhat.mel 的文件的所有脚本路径。
  2. 如果在其中某个脚本目录中找到文件 sayWhat.mel 脚本,Maya 将检查文件中是否存在尝试调用的程序。如果有,Maya 将调用该程序。在本示例中,文件中已存在名为 sayWhat 的程序,因此可以执行并打印:
sayWhat online
  1. 由于已声明 GoGo 全局程序,因此现在可以在“命令行”(Command Line)“脚本编辑器”(Script Editor)中键入 GoGo 以执行该程序。
    注意

    在创建和保存新的 MEL 脚本时,在外部调用新脚本中编码的程序之前必须获取其源脚本。这是因为 Maya 源脚本在启动时和执行命令行时调用,而不是尝试从“命令行”(Command Line)“脚本编辑器”(Script Editor)中调用。若要获取源脚本,可以在“脚本编辑器”(Script Editor)中使用“File > Source Script”命令,或可以重新启动 Maya。有关源脚本的详细信息,请参见脚本文件