モディファイヤ スタック関連のメソッド

validModifier [<node> | <objectset> | <group> ] <modifier |modifier_class>

指定された <node> または、オブジェクト セットやグループ内のすべてのオブジェクトに特定のモディファイヤまたはモディファイヤ クラスが追加できるかどうかをテストします。追加できる場合は true を返し、そうでない場合は false を返します。

validModifier() メソッドは、モディファイヤの適用性を判断するときには[修正] (Modify)パネルと同様に機能します。変形可能なオブジェクトを受け入れるモディファイヤはすべて、ヘルプ以外のすべてのシーン オブジェクトに対して true を返します。これは、[ベンド] (Bend)、[テーパ] (Taper)などのモディファイヤを、ライト、カメラ、スペース ワープ オブジェクトなどの他に、ボックス、球などのジオメトリ タイプに対して適用できるようにする一方で、ダミーやボーンなどのヘルパーには適用できない修正パネルの動作に対応します。

validModifier() メソッドは、空の <objectset> が指定されるか、または <group> が指定されたグループのすべてのメンバに対応するモディファイヤが有効になっている場合は、true を返します。このような場合、addModifier() メソッドを使ったモディファイヤの適用は失敗します。これは、<objectset> が空である(最初のケース)か、グループの各オブジェク の親オブジェクトであるダミー オブジェクトにモディファイヤを適用できないためです。これらの条件については、スクリプトや「修正パネル」で説明されている modPanel.addModToSelection() メソッドを使ってテストする必要があります。

addModifier <node> <modifier> [before:index] -- mapped

関数が適用されるノードのすべての インスタンスにモディファイヤを追加します。オプションの before: キーワード引数を使用して、ノードのモディファイヤ スタックの最上位から見てインデックス付けされたモディファイヤの直前の位置にモディファイヤを挿入できます。

3ds Max 3 以降、addModifier() では、モディファイヤを追加するときに、モディファイヤ スタック内でアクティブである可能性のあるサブオブジェクト選択は保持されなくなりました。モディファイヤを追加すると同時にサブオブジェクト選択を保持する必要のある場合は、「[修正] (Modify)パネル」で説明されている modPanel.addModToSelection() メソッドを使用します。

<node> がコレクションの場合、モディファイヤのインスタンスはコレクション内のすべてのノードに配置されます。インタラクティブにモディファイヤを選択に対して適用するのとは異なり、各モディファイヤ インスタンスのギズモの位置とサイズは、モディファイヤ インスタンスを適用するノードの位置とサイズに対応します。3ds Maxがモディファイヤを適用するときと同じ方法で、コレクションにモディファイヤを適用するには、「[修正] (Modify)パネル」で説明されている modPanel.addModToSelection() メソッドを使用します。

注: このメソッドはローカル データをコピーしないため、たとえば、このメソッドを使用して既存のノード上にある操作済みのモディファイヤを別のノードにコピーした場合、変更内容もコピーされることはありません。この状況の処理方法については、以下の addModifierWithLocalData() を参照してください。

詳細は、「モディファイヤ および SpacewarpModifier」 を参照してください。

addModifierWithLocalData <destnode> <dest modifier> <srcnode> <src modifier_or_index> [before:index]

このメソッドは、ターゲット モディファイアをターゲット ノードにコピーします。2 つのモディファイヤは同じタイプである必要があります。ソースのローカル データがある場合は、このクローンが作成されて、ターゲット モディファイヤにアタッチされます。ソース モディファイヤにローカル データがない場合は、ターゲット モディファイヤに既定のローカル データの内容が格納されます(addModifier() メソッドで追加された場合と同様)。

たとえば、次のように使用されます。

addModifierWithLocalData destNode srcMmodifier srcNode srcMmodifier -- instance the modifier
addModifierWithLocalData destNode (copy srcMmodifier) srcNode srcMmodifier -- copy the modifier
addModifierWithLocalData destNode ((classof srcMmodifier)()) srcNode srcMmodifier -- new instance of the modifier's class
deleteModifier <node> <modifier_or_index> -- mapped

モディファイヤ スタックからモディファイヤを削除できます。<node> スタックに存在するモディファイヤの値を取るか、またはインデックスを取り、スタックの最上位から見て削除するモディファイヤのインデックスを指定します。

collapseStack <node> -- mapped

スタックからモディファイヤを集約して、スタックの最上位のノードのクラスに対応する編集可能基本オブジェクトを残します。これを呼び出すときにスタックの中にモディファイヤが存在しない場合は、何も行われません。オブジェクトを強制的に編集可能メッシュにする場合は、次の convertToMesh() 関数を使用します。