2005/06/14

スクリプトの便利な使い方③

最近、手軽にスクリプトを書くことで作業効率がアップするいいアイデアがなかったのですが、今回は「複数オブジェクトと同じ位置にオブジェクトを1つずつコピーする方法」を書いてみます。



まず、上の画像のようにランダムに配置されたボックスがあったとします。このボックスと同じ位置に右上にある球体をコピーします。以下のスクリプトをボックスを選択した状態で実行してみてください。

----------------------------------------
for i in selection do
(
new_obj = copy $Sphere01
new_obj.pos = i.pos
)

----------------------------------------

1行目はfor文を使ってオブジェクト数分の処理を繰り返すことを意味しています。3行目は"new_obj"という変数に画像右上にある球体"Sphere01"をコピーしたものを代入しています。4行目で"new_obj"の位置を選択オブジェクト"i"の位置と同じにしています。コピーするオブジェクトをインスタンスにしたい場合は3行目の"copy"を"instace"に、参照は"reference"にするとできます。ジオメトリでなくてもライトやダミーなどでも可能なので"$Sphere01"を"$omni01","$Dummy01"などとすればOKです。