オレコンのすすめ(さわり編)
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を自分で登録したりすると、もうオレコン道まっしぐらですね。
|