ウインドウの作り方
 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 | Next
Home | Contents
abe@injapan.net