ここ数回にわたり、「プロシージャ」についてみてきましたが、やっと一段落付いたので本来の話であった「ウインドウの作成」に戻ります。
「ウインドウの作成」に関する最後のエントリは、2009年12月15日の「ウインドウの作成(2): ボタン」でした。
ウインドウの作成目的は、ユーザーとのなんらかのインタラクションですが、その代表的な物としてボタンを取り上げました。
そして、「ウインドウの作成(2):ボタン」の最後に、「sphere」コマンドを実行するボタンを備えたウインドウを作成しました。
しかしながらボタンから実行できるのが特定の「コマンド」に限定されてしまうと、その恩恵をうけることはほんのわずかになってしまいます。
そこでbuttonコマンドの-commandフラグで利用できるもう一つの選択肢「プロシージャ」を利用できるよう、いままでプロシージャを調べてきました。
今回でやっと、その知識が日の目を見ます。さっそく試してみましょう。
前回の「プロシージャの保存場所」で「M:\MelOnUSB」に「testPoly.mel」というスクリプト・ファイルを保存。
Maya.envファイルに「M:\MelOnUSB」を記述した状態でMayaを起動して、いつでも「testPoly」のプロシージャが利用できる状態にします。
では、これを「ウインドウの作成(2):ボタン」で作ったスクリプトに組み込んでみます。
{
if(`window -exists name`)
deleteUI name;
window name;
columnLayout;
button -label "makeSphere" -command "testPoly";
showWindow;
}
これによりボタンをおせば、「testPoly.mel」というファイルに保存された、外部プロシージャをコマンドとして実行できるウインドウが作成されました。
----------------------------------------
次に、外部のファイルとしてではなく、スクリプト自体にプロシージャを含む場合も試してみました。
{
if(`window -exists name`)
deleteUI name;
window name;
columnLayout;
button -label "makeCube" -command "testCube";
showWindow;
global proc testCube()
{
polyCube;
}
}
今回は「makeCube」ボタンを押せば「ポリゴン・キューブ」が作成されます。
ちなみにこの例では、「global proc testCube()」を「proc testCube()」にしても同じ結果です。
これは、「「グローバル・プロシージャ」と「ローカルプロシージャ」の違い」でも書いたようにブロック内で実行しただけでは、ローカルプロシージャとしては認識されていないためと思われるので、実際の動作とは異なる可能性があります。
どちらにしても、これでいろいろなスクリプトをウインドウから、実行することが出来るようになりました。
2009年12月19日土曜日
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿