ウインドウの作り方

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

Maya の GUI におけるウインドウ(アトリビュートエディターその他)は MEL によって作られている。
つまり、MEL を使えば GUI のカスタマイズ・独自メニューの作成ができる。

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

ウインドウの作り方

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

スクリプトの解説

window -title "window1";
ウインドウバーに window1 というタイトルが表示されたウインドウを作成する。
ただし、この時点では画面には表示されない。
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
Home | Contents
Mail