ウインドウの作り方

MEL における GUI と簡単なウインドウ

Maya におけるウインドウやメニューなどの GUI は MEL によって作られています。
ですから MEL を使えば GUI のカスタマイズ・独自メニューの作成ができるようになります。

これから MEL コマンドや自作のプロシージャを操作するオリジナル GUI を作ってゆきましょう。
今回は簡単なスクリプトなので、プロシージャを宣言しないで Script Editor で読み込むと、すぐに実行できるようにコマンドをそのまま並べて作ってゆきます。
以下のスクリプトは Script Editor → File → Source Script で読み込んで実行してください。

ウインドウの作り方

ウインドウを作るには window コマンドを使用します。
ただし、ウインドウを実際に表示するためには、window コマンドに -visible true をつけて実行するか、このコマンドの後で showWindow コマンドを実行します。

スクリプトの解説

window -title "window1";
ウインドウバーに window1 というタイトルが表示されたウインドウを作成sします。
ただし、この時点では画面には表示されません。
window コマンドも sphere コマンドなどと同じく作られたオブジェクト(ウインドウ)の名前を返します。 このスクリプトでは返されたウインドウの名前は使っていませんが、必要ならばアサインによって変数に代入しておき、 後で使うこともできます。
なお、-title の後ろの window1 はタイトルであってウインドウの名前ではないので注意してください。
showWindow;
window コマンドで作られたウインドウを表示します。
このコマンドを忘れるとウインドウが表示されません。

ボタンのついたウインドウ

ウインドウにボタンなどを配置してゆくには、レイアウトコマンドが必要です。
レイアウトコマンドとはコントロールと呼ばれる部品(ボタンやスライダーなど)をどのような方法で並べるかを決めるためのものです。
レイアウトコマンドには他にも様々な種類がありますが、 上から順番に並べてゆくだけなら以下のように columnLayout を使用します。

スクリプトの解説

window -title "window2";
ウインドウバーに window2 というタイトルが表示されたウインドウを作成します。
ただし、この時点では画面には表示されないことに注意してください。
columnLayout;
レイアウトコマンドの実行します。
このコマンドの後に配置される GUI の部品(ここでは button)は縦1列に並べられます。
このコマンドから showWindow までの間に必要な GUI 部品を作るコマンドを実行してゆきます。
GUI の部品をウインドウに配置してゆく時にはレイアウトコマンドが必ず必要である。
button;
ボタンを 1 つ作ります。
ここではボタンを押した時に実行するコマンドを割り当てていないので押しても何も実行されません。
ボタン上のラベルには、何も指定されていなければ button1 などのボタンの名前が表示されます。
showWindow;
window コマンドで作られたウインドウを表示します。
このコマンドを忘れるとウインドウが表示されません。

ボタンにコマンドを割り当てる

ボタンが押された時などに特定のコマンドを実行させるためには -command フラグを使用します。

スクリプトの解説

window -title "window3";
ウインドウバーに window3 というタイトルが表示されたウインドウを作成します。
ただし、この時点では画面には表示されません。
columnLayout;
レイアウトコマンド。
このコマンドの後に実行される GUI の部品(ここでは button)は縦1列に並べられてゆきます。
button -label "sphere" -command "sphere";
ボタンを1つ作ります。
このボタンを押すと -command の後にある文字列(" から次の " まで)をコマンドとして実行します。 ここでは sphere コマンドが実行されて NURBS の球が作られます。
-command の後では MEL コマンドだけでなく自分で作ったプロシージャも実行できます。
また、2つ以上の複数のコマンドを実行することもできます。 (下の練習問題を参照してください)
-labelの後にある文字列 "sphere" がボタンの上に表示されるラベルになります。
showWindow;
window コマンドで作られたウインドウを表示します。
このコマンドを忘れるとウインドウが表示されません。

練習

まとめ

練習課題

参考


Prev | Next
Home | Contents
Mail