MEL 包含使用 Maya 全部功能的各种命令。关于使用 MEL 命令的典型示例包括:快速创建对象、精确移动对象,以及更高效地使用对象等。        

例如,可以使用 MEL 命令创建一个名为 bigBoy 的、半径精确到 27.5 个单位的球体:        

sphere -radius 27.5 -name "bigBoy";

然后,可以输入该 MEL 命令,让 bigBoy 绕 Z 轴旋转 90 度:        

rotate -relative 0 0 90 "bigBoy";

另外,如果要创建带关节工具的关节,并希望该关节沿 X 轴方向移动 5 个单位,可以执行下列 MEL 命令,而无需中断关节创建:        

move -relative 5 0 0;

按照惯例,在指定名称的情况下,大多数命令将在对象上操作,否则就会在当前选择上操作。        

有两种方式来使用 MEL 命令:强制性语法和函数语法。        

强制性语法

强制性命令语法类似于 UNIX 或 DOS 壳中的命令,在命令名称后可增加可选标志及参数:

sphere -name "martha" -radius 10;

强制性样式要求使用完整语句,应当以分号结尾。如果使用命令的强制性语法作为表达式的一部分,需要在命令外增加反引号。请参见下面的使用返回值:函数语法和反引号

未加引号的字符串              

当使用该强制性命令语法时(与下面介绍的函数语法相反),可选择在单字字符串周围去掉引号。因此,可编写如下的球体命令:              

sphere -name martha -radius 10;

脚本中经常会出现这样的命令,特别是只有一个单词的节点和属性名称等字符串。但初学者可能希望避免使用该功能,因为这会减弱字符串与关键字和命令的区别。              

函数语法

函数语法类似于计算机语言中的标准函数调用。        

 

强制性语法函数语法
attributeExists visibility mySphere;
attributeExists("visibility","mySphere");
abs -50;
abs(-50);

标志

标志用于修改命令的工作方式。标志出现在命令名称后,前面是一个破折号 (-),后面是一个参数。

sphere -radius 5;

在本示例中,radius 标志的参数是 5。

创建、编辑和查询模式

许多命令都具有基于一对特殊标志(-edit-query)的不同行为。  

  • 如果未包含 -edit 或 -query 标志,将在创建模式中运行一个命令。在该模式中,命令将在场景图中创建命名对象/节点。

sphere -name "george";

  • 如果命令中包含 -edit 标志,该命令将改命名对象的一个或多个属性(由其他标志决定)。              

sphere -edit -radius 10 "george";

  • 如果命令中包含 -query 标志,该命令会返回命名对象的属性值(由另一个标志决定)。              

sphere -query -radius "george"; // Result: 10 //

每个命令的“Maya 帮助”(Maya Help)中均列出了可用于创建、编辑和查询模式的标志。

使用返回值:函数语法和反引号

使用命令的函数语法时,该命令将返回一个值。使用强制性语法时,命令只将其返回值传送到“脚本编辑器”(Script Editor),而不提供可用的返回值。在表达式中使用强制性语法将导致语法错误:

if (size($word)) print("Not empty. "); // Function syntax of size returns a value. // This is OK. if (size $word) print("Not empty. "); // Can't use imperative // This is a syntax error.

若要在表达式中使用强制性命令语法,必须在命令周围使用反引号:

if (`size $word`) print("Not empty. ");

用户会经常通过反引号在表达式内的查询模式中使用命令的返回值:

if (`sphere -query -radius "mySphere"` == 5) print("This sphere has a radius of 5!";

,