アサイン

アサインとは

コマンド・プロシージャーなどからの返り値を別のコマンドで利用したいときには バッククォート ` を使って変数に代入する。
$変数名 = ` コマンド ` ;
例えば、ls -slというコマンドを使うと、現在選択されているオブジェクト名が表示される(返ってくる)が、それらのオブジェクト名を変数に代入するには以下のようにする。
$names = `ls -sl`;
また、getAttrで球(nurbsSphere1)のアトリビュート(x軸方向の移動値tx)を変数に代入する時は以下のようにする。
$tx = `getAttr nurbsSphere1.tx`;

アサインの例

選択された物体のx座標が$disより大きければ、その物体を消去するMELスクリプト。

  1. 以下のMELスクリプトをdeleteObjects1.melという名前で作る。
    global proc deleteObjects1(float $dis)
    {
    	$names = `ls -sl`;
    	for( $n in $names )
    	{
    		$x = `getAttr ($n + ".tx")`;
    		if($x > $dis)
    		{
    			delete $n;
    		}
    	}
    }
    
  2. MAYAを立ち上げる。
  3. 一番上のメニューバーから Window -> General Editors -> Script Editor によって Script Editor を表示する。
  4. Script Editorの File -> Source Script によってdeleteObjects1.melを読み込む。
  5. 球その他のオブジェクトを適当に作っておく。
  6. そのオブジェクトのいくつかを選択する。
  7. コマンドラインからdeleteObjects1(5);と打ち込んで実行する。
  8. 選択されたオブジェクトでx座標が5以上のものが消去される。
    [before deleteObjects(5)] -> [after deleteObjects(5)]

練習

まとめ

参考


Prev | Next
Home | Contents
abe@injapan.net