ウインドウの作り方
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 というタイトルが表示されたウインドウを作成sします。
ただし、この時点では画面には表示されません。
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 の球、コーン、キューブを作るボタンを配置してください。
(ヒント)
キューブは nurbsCube コマンドで作ることができます。
- window4.mel を参考にして window5.mel を作り、ボタンを押すと X、Y、Z 方向に 2 倍にスケールされたプリミティブが作られるようにしてみましょう。
(ヒント)
ボタンが押された時に 2 つ以上のコマンドを実行するには各コマンドを ; (セミコロン)で区切って並べます。
まとめ
- ウインドウを作るには window コマンドを使用します。
- 実際にウインドウを表示するには showWindow コマンドを使用します。
- ウインドウに部品を配置するにはレイアウトコマンドが必要です。
- ボタンが押された時にコマンドを実行するには -command "MEL コマンド"を使います。
MEL コマンドの部分では ; で区切って複数のコマンドも実行できます。
練習課題
参考
- レイアウト
columnLayout以外のレイアウトの紹介。
- Maya
Maya, MEL 関係(Tips, FAQ, コマンド)のページ
- リファレンス
Prev | Next
Home | Contents
Mail