MAXScript に関する質問と回答 > シーン ノードの操作 > 同じオブジェクト内にモディファイヤおよびコントロールのインスタンスを作成する方法はありますか。 |
MAXScript を介して既存のモディファイヤを読み込み、同じモディファイヤに適用すると、自動的にインスタンスが作成されます。
このように、MAXScript にすべての値を読み込みました。 これをもう一度使用すれば、このインスタンスが作成されます。
コンストラクタ式 (Bend()) が n 回評価されるため、一意のモディファイヤをすべてのオブジェクトに追加しています。 ここで、n は選択したオブジェクトの数になります。
この場合、単一のモディファイヤを作成し、それを変数に格納してから、選択内の各オブジェクトにモディファイヤのインスタンスを適用しています。
さらに、マップされた演算もインスタンス作成に適しています。次のように少ないコードで、上記と同じ結果を求めることができます。
このコンストラクタ式 (Bend()) は一度だけ評価され、続いて内部ループにおいて、コレクション内のすべてのオブジェクトにインスタンスとして適用されているため、選択したオブジェクトすべてに、同じベンド モディファイヤをインスタンスとして追加しています。
また、コントローラにも同じ方法を使用できます。たとえば、X_Position のコントローラのインスタンスを作成し、このインスタンスをベンド角に割り当てる場合、次のように記述します。