MEL には、Maya を使用するときのあらゆる状況に対応した、さまざまなコマンドが用意されています。たとえば、MEL コマンドを使用してすばやくオブジェクトを作成したり、正確に移動したりすることができます。また、オブジェクトの操作を効率化することも可能です。
たとえば、次の MEL コマンドで、半径 27.5 ユニットの bigBoy という球を作成することができます。
sphere -radius 27.5 -name "bigBoy";
その後、Z 軸を中心に bigBoy を 90 度回転させるには、次の MEL コマンドを使用します。
rotate -relative 0 0 90 "bigBoy";
別の例として、ジョイント ツールを使用してジョイントを作成し、X 軸方向にジョイントを 5 ユニット移動する場合、次の MEL コマンドを使用することができます。ジョイントの作成を中断する必要はありません。
move -relative 5 0 0;
慣例的に、多くのコマンドは名前を指定したオブジェクトに対して動作し、指定されていない場合には現在選択されているオブジェクトに対して動作します。
MEL コマンドは、命令構文と関数構文の 2 つの方法で使用することができます。
命令コマンドの構文は、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!";