オレコンのすすめ(さわり編) 

Melの楽しみといえば、自作コントローラーにある。(以下、オレコン)
これ作らずしてMelは語れない。 
やはり、今回はオレコンの作り方でいってみよう。 

MelはMAYAを構成する、ライブラリーコマンドである。全てのMAYAの実行は 
Melによって行われる。MAYAの器もMelで書かれている。Melさえあれば、 
MAYAはいらないとも言える。 
よって、これを制する者は、MAYAと違う3Dソフトを作れる可能性もあるわけだ。 
3Dソフトの器はGUIであるから。自作GUIは自作アプリケーションを作っているような 
快感を得られるわけで、最高の道楽だと思える。 

てなわけで、基本から! 

window -title "OreKon"; 

showWindow; 

オレコンの第1歩、なんも出来ん、Windowが出来上がり。 
Windowで始まり、showWindowで終わる、HTMLみたいに囲んで終わらないと 
エラーになる。 
次は、ボタンがあるWindowを作ってみよう。 

window -title "OreKon"; 
columnLayout ground; 
button   -label "start" ; 
showWindow; 

ボタンを作る前に、columnLayoutを必ず作る。場所が無いとボタンを置く場所が 
無いのでエラーとなる 
OreKonというWindowの中に、groundという場所があり、startと書いてあるボタンがある 
何かが出来るボタンにしてみよう 

window -title "OreKon"; 
columnLayout ground; 
button -label "start" -command "sphere"
showWindow; 

ボタンを押す毎にNURBSのボールを作るようにしました。押しすぎは禁物です。 
ボタンに -commandフラグの後ろに、コマンドを書けばいろいろなことをするボタン 
の出来上がりである。 
やはりオレコン、ここは盛大にボタンを増やそう 

 window -title "OreKon";
columnLayout  ground;
    gridLayout -numberOfColumns 2 -cellWidth 70 -cellHeight 20;
button -label "sphere"
       -command "sphere" ;
button -label "circle" 
       -command "circle" ;
button -label "Plane" 
       -command "nurbsPlane" ;
button -label "cylinder"
       -command "cylinder" ;
  setParent ..; // frameLayout
showWindow;

ここで、Window内のレイアウトを行う、 gridLayoutが使われています。必ず終わりに setParent ..;で
囲まないとエラーが出ます。今回は gridLayoutで、横2列で横70縦20のボタンを
作るようにしました。
今度はもっと実用的な、画面ViewをコントロールするWindowです。
 

window -width 180 -height 700 -title "OreKon";
scrollLayout -width 16 -height 16 sl ;
columnLayout ground;
frameLayout -collapsable true -label "Window1**************";
    gridLayout -numberOfColumns 2 -cellWidth 70 -cellHeight 20;
button -label "persp" 
       -command "switchPanes single 0;lookThroughModelPanel persp modelPanel1;" ;
button -label "front" 
       -command "switchPanes single 0;lookThroughModelPanel front modelPanel1;" ;
button -label "side" 
       -command "switchPanes single 0;lookThroughModelPanel side modelPanel1;" ;
button -label "top"
       -command "switchPanes single 0;lookThroughModelPanel top modelPanel1;" ;
   setParent ..; // gridLayout
   setParent ..; // frameLayout
frameLayout -collapsable true -label "Window2**************";
    gridLayout -numberOfColumns 2 -cellWidth 70 -cellHeight 20;
button -label "myWindow1" 
       -command "switchPanes vertical2 0;outlinerPanel -e -rp modelPanel2 outlinerPanel1;" ;
button -label "myWindow2" 
       -command "switchPanes horizontal2 0;scriptedPanel -e -rp outlinerPanel1 graphEditor1;" ;
   setParent ..; // gridLayout
   setParent ..; // frameLayout
 showWindow;

今回はWindowのスクロールを行う、scrollLayoutと、画面を畳む、frameLayoutを使っています。
 frameLayoutは、 gridLayoutの時のようにsetParent ..;で囲んでください。
一度に二回もframeLayoutを使っているので、混乱するかもしれませんが、囲まれた2つの
frameLayoutが分かるよう色分けして置きました。
 自分が好きなWindowLayoutを後ろに入れて置きました。
カスタムなLayoutを自分で登録したりすると、もうオレコン道まっしぐらですね。