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;
按照惯例,在指定名称的情况下,大多数命令将在对象上操作,否则就会在当前选择上操作。
强制性命令语法类似于 UNIX 或 DOS 壳中的命令,在命令名称后可增加可选标志及参数:
sphere -name "martha" -radius 10;
强制性样式要求使用完整语句,应当以分号结尾。如果使用命令的强制性语法作为表达式的一部分,需要在命令外增加反引号。请参见下面的使用返回值:函数语法和反引号。
强制性语法 | 函数语法 |
---|---|
attributeExists visibility mySphere; |
attributeExists("visibility","mySphere"); |
abs -50; |
abs(-50); |
许多命令都具有基于一对特殊标志(-edit 和 -query)的不同行为。
sphere -name "george";
sphere -edit -radius 10 "george";
sphere -query -radius "george"; // Result: 10 //
使用命令的函数语法时,该命令将返回一个值。使用强制性语法时,命令只将其返回值传送到“脚本编辑器”(Script Editor),而不提供可用的返回值。在表达式中使用强制性语法将导致语法错误:
if (size($word)) print("Not empty.\n"); // Function syntax of size returns a value. // This is OK. if (size $word) print("Not empty.\n"); // Can't use imperative // This is a syntax error.
若要在表达式中使用强制性命令语法,必须在命令周围使用反引号:
if (`size $word`) print("Not empty.\n");
用户会经常通过反引号在表达式内的查询模式中使用命令的返回值:
if (`sphere -query -radius "mySphere"` == 5) print("This sphere has a radius of 5!";