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;
脚本中经常会出现这样的命令,特别是只有一个单词的节点和属性名称等字符串。但初学者可能希望避免使用该功能,因为这会减弱字符串与关键字和命令的区别。
函数语法
函数语法类似于计算机语言中的标准函数调用。
| ||||||
|
标志
标志用于修改命令的工作方式。标志出现在命令名称后,前面是一个破折号 (-),后面是一个参数。
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!";