ウインドウの作り方
MEL における GUI と簡単なウインドウ
Maya の GUI におけるウインドウ(アトリビュートエディターその他)は MEL によって作られている。
つまり、MEL を使えば GUI のカスタマイズ・独自メニューの作成ができる。
これから MEL コマンドや自分で作ったプロシージャを操作するGUIを作ってゆこう。
今回は簡単なスクリプトなのでプロシージャではなく で読み込むと、すぐに実行できるようにコマンドをそのまま並べて書いてゆく。
ウインドウの作り方
ウインドウを作るには window コマンドを使用する。
ただしウインドウを実際に表示するためには、window コマンドに -visible true をつけて実行するか、このコマンドの後で showWindow コマンドを実行する。
- 何もないウインドウを表示する。
window1.mel に以下のコマンドを書き込んで、Script Editor から読み込み実行させる。
window -title "window1";
showWindow;
スクリプトの解説
-
window -title "window1";
- ウインドウバーに window1 というタイトルが表示されたウインドウを作成する。
ただし、この時点では画面には表示されない。
window コマンドも sphere コマンドなどと同じく作られたオブジェクト(ウインドウ)の名前を返す。
このスクリプトでは返されたウインドウの名前は使っていないが、必要ならばアサインによって変数に代入し、後で使うこともできる。
(-title の後ろの window1 はタイトルであってウインドウの名前ではないので注意すること)
-
showWindow;
- window コマンドで作られたウインドウを表示する。
このコマンドを忘れるとウインドウが表示されない。
ボタンのついたウインドウ
作られたウインドウにボタンなどを配置してゆくには、レイアウトコマンドを使用する。
レイアウトとは部品(ボタンなど)をどのような方法で並べるかを決めるものである。
上から順番に並べてゆくだけなら columnLayout を使用する。
- ボタンが1個ついたウインドウ。
window2.mel に以下のコマンドを書き込んで、Script Editor から読み込み実行させる。
window -title "window2";
columnLayout;
button;
showWindow;
スクリプトの解説
-
window -title "window2";
- ウインドウバーに window2 というタイトルが表示されたウインドウを作成する。
ただし、この時点では画面には表示されない。
-
columnLayout;
- レイアウトコマンドの実行。
このコマンドの後に配置される GUI の部品(ここでは button)は縦1列に並べられる。
このコマンドから showWindow までの間に必要な GUI 部品を作るコマンドを実行してゆく。
GUI の部品をウインドウに配置してゆく時にはレイアウトコマンドが必ず必要である。
レイアウトコマンドには他にも様々な種類がある。
-
button;
- ボタンを1つ作る。
コマンドを割り当てていないので押しても何も実行されない。
ボタン上のラベルには、何も指定されていなければ button1 などの文字が表示される。
-
showWindow;
- window コマンドで作られたウインドウを表示する。
このコマンドを忘れるとウインドウが表示されない。
ボタンにコマンドを割り当てる
ボタンが押された時などに特定のコマンドを実行させるためには -command フラグを使用する。
- ボタンが押されたら球を作る。
window3.mel に以下のコマンドを書き込んで、Script Editor から読み込み実行させる。
window -title "window3";
columnLayout;
button -label "sphere" -command "sphere";
showWindow;
スクリプトの解説
-
window -title "window3";
- ウインドウバーに window3 というタイトルが表示されたウインドウを作成する。
ただし、この時点では画面には表示されない。
-
columnLayout;
- レイアウトコマンド。
このコマンドの後に実行される GUI の部品(ここでは button)は縦1列に並べられてゆく。
-
button -label "sphere" -command "sphere";
- ボタンを1つ作る。
このボタンを押すと -command の後にある " から次の " までに書いてあるコマンドが実行される。
ここでは sphere コマンドが実行されて NURBS の球が作られる。
-command の後では MEL コマンドだけでなく自分で作ったプロシージャも実行できる。
また、2つ以上の複数のコマンドを実行することもできる。
(下の練習問題を参考のこと)
-labelの後にある文字列 sphere がボタンの上に表示されるラベルになる。
-
showWindow;
- window コマンドで作られたウインドウを表示する。
このコマンドを忘れるとウインドウが表示されない。
練習
- window4.mel を作り、ボタンを3つ並べて、それぞれのボタンで違う NURBS プリミティブを作るようにしてみよう。
上から順番に NURBS の球、コーン、キューブを作るボタンを配置する。
(ヒント)
cube は nurbsCube コマンドで作ることができる。
- window4.mel を参考にして window5.mel を作り、ボタンを押すと X、Y、Z 方向に2倍にスケールされたプリミティブが作られるようにしてみよう。
(ヒント)
ボタンが押された時に2つ以上のコマンドを実行するには各コマンドを ; (セミコロン)で区切って並べる。
まとめ
- ウインドウを作るには window コマンドを使用する。
- ウインドウに部品を配置するにはレイアウトコマンド(columnLayout など)を使用する。
- ボタン(button)でコマンドを実行するには -command " MEL コマンド"を使用する。
-commandでは ; で区切って複数のコマンドも実行できる。
練習課題
参考
Prev
Home | Contents
Mail