2005/05/22

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

その①でパラメーターワイヤリングを使用せずにパラメーターを一括変更する方法を書きましたが、今度は同じモディファイヤを複数オブジェクトに適用させる場合はどうでしょう?その①で使用した方法(マクロレコーダーの構文をそのまま利用)でやってみると、複数オブジェクトを選択してモディファイヤを適用した状態と同じになってしまいます。(ギズモが選択オブジェクト全体の大きさになる)
 → 


「これを1つ1つに適用させた状態にまとめてできないか?」

オブジェクトを複数選択した状態で、次のようにするとできます。(UVWマップを適用する場合)
---------------------------------------
for i in selection do
(
addmodifier i (uvwmap())
)

---------------------------------------
これはfor文というもので()内に記載された動作を「i」回繰り返し行うというものです。それを今回は選択オブジェクト分1回1回モディファイヤを適用させてほしいので「in selection」というのをつけています。詳しくはヘルプを見てください。マクロレコーダーで調べてみると、
「modPanel.addModToSelection (Uvwmap ()) ui:on」
と出るのですがこのままでは使えません。「(Uvwmap())」というのだけが使用できるので他のモディファイヤで行う時も「(SliceModifier ())」といった感じで
「addmodefier i」の後にコピーしてください。モディファイヤのパラメーターをまとめて変更したい時は前回説明した方法でやればいいと思います。