カスタム ユーザ インタフェースを作成する最初の手順として、ウィンドウを作成します。このウィンドウにはテキスト、ボタン、その他のコントロールなど、ユーザ インタフェースの要素が含まれます。
window -resizeToFitChildren 1; showWindow;
window コマンドの -resizeToFitChildren フラグは、ウィンドウにあるすべての要素が表示されるように、ウィンドウのサイズを自動的に変更します。このフラグは値を必要とし、値 1 はフラグをオンにし、値 0 はフラグをオフにします。
ウィンドウを作成した時点では、showWindow コマンドを使用するまでウィンドウは表示されません。showWindow コマンドを引数なしで使用すると、最後に作成されたウィンドウが表示されます。
MEL スクリプトを使用してウィンドウを作成する場合には、すべてのウィンドウとユーザ インタフェース コントロールに固有の名前が付けられてることを確認する必要があります。ウィンドウの名前を指定しないと、デフォルトの名前が付けられます。(前のプロシージャではウィンドウ名は使用しませんでしたが window1 という名前が付けられていました)。名前がわからないと、ウィンドウやコントロールの参照や修正を行えません。
window -resizeToFitChildren 1 testwindow; columnLayout; text -label "This is a test window you can close by\ clicking the button below."; button -label "Close" -command "deleteUI testwindow"; showWindow;
コントロールと呼ばれるユーザ インタフェースの要素をウィンドウに作成しました。すべてのユーザ インタフェース コントロールはレイアウト内に作成する必要があります。レイアウトとは、ユーザ インタフェース要素をウィンドウ内にどのように配置するかを Maya に指示するものです。
formLayout や rowLayout など、さまざまなタイプのレイアウトがありますが、もっともシンプルで使いやすいのは columnLayout です。columnLayout はコントロールを縦 1 列に下に向かって配置します。レイアウトの詳細については、『MEL とエクスプレッション』マニュアルの「 レイアウト(Layouts)」を参照してください。
text コマンドを使用して、レイアウト内にテキスト コントロールを作成しました。label フラグの引数はウィンドウに表示するテキストです。
ボタンは button コマンドで作成します。command フラグの引数は、ボタンを押した時に実行する MEL コマンドです。この例では、ボタンを押すと deleteUI コマンドが実行され、先に作成したウィンドウが削除されます。
上記スクリプトでは、個々のコマンドが複数行にまたがっています。コマンドは、行末文字をコマンドの末尾に付ければ、複数行にまたがって記述できます。MEL の規則として、上の例のように、コマンド キーワードは 1 行に入れますが、モディファイア フラグと値のペアはコマンドの下の別の行に入れてかまいません。
文字列は、特別な文字を使用しないと複数行にまたがって記述できません。文字を複数行に分けるには、バックスラッシュ(\)を使用します。例:
print "With the \\ character, you can \ split a string over \ multiple lines.";
文字列内にバックスラッシュを使用する場合は、バックスラッシュを 2 つ続けます。バックスラッシュはエスケープ文字です。エスケープ文字は、後続文字が文字列であることをスクリプト インタプリタに伝えます。エスケープ文字を他の文字と組み合わせて使用すれば、特別な記号を作成できます。たとえば、文字列で引用を表すには、次のようにします。
print "Jim said \"Hello!\" to the Maya user";