[修正]パネル
 
 
 

以下のメソッドは、[修正]パネルに関連しています。

[スタックをロック]ボタン

modpanel.getPinStack()

[スタックをロック]ボタンが押された場合は true を、押されていない場合、または[修正]パネルにない場合は false を返します。

3ds Max 2010 以降で使用可能です。

   

modpanel.isPinStackEnabled() 		

[スタックをロック]ボタンが有効な場合は true を、有効ではない場合、または[修正]パネルにない場合は false を返します。

3ds Max 2010 以降で使用可能です。

   

modpanel.setPinStack <bool		> 	 

[スタックをロック]ボタンが有効である場合に、[スタックをロック]ボタンを指定された状態に設定します。

3ds Max 2010 以降 で使用可能です。

[最終結果を表示]ボタン

enableShowEndRes <boolean>   

このメソッドは、[最終結果を表示]アイコンのチェックボタン/ボタンの動作を設定します。

ブール値のパラメータが true である場合は、[最終結果表示]ボタンを押し込まれたままの状態にできるため、チェックボタンのように動作させることができます。

ブール値のパラメータが false である場合は、[最終結果表示]ボタンは押した後にオフの状態に戻り、ボタンのように動作させることができます。

このメソッドでは、他のオブジェクトやモディファイヤを選択する場合、または[修正]パネルと他のパネルなどを切り替える場合に、その効果が「スティッキー」になるため、 true / false のいずれかを使用しなければなりません。

   

showEndResult 

[修正]パネルの[最終結果を表示]アイコンの状態を取得および設定する、3ds Maxシステム グローバル変数 です。ブール値が含まれ、[最終結果表示]がオンの場合は true 、オフの場合は false になります。

サブオブジェクト選択

enableSubObjSel <boolean> 

ブール値のパラメータが true の場合、サブオブジェクト モードが定義されているオブジェクトやモディファイヤに対して、サブオブジェクト モードに入ることができます。 false の場合、[サブオブジェクト]ボタンは使用できなくなります。このメソッドでは、他のオブジェクトやモディファイヤを選択する場合、または[修正]パネルと他のパネルなどを切り替える場合に、その効果が「スティッキー」になるため、 true / false のいずれかを使用しなければなりません。

   

IsSubSelEnabled() 

サブオブジェクト モードに入ることができる場合は true を、入ることができない場合は false を返します。

   

numSubObjectLevels 

読み出し専用の 3ds Max システム グローバル変数 で、オブジェクトによってサポートされているサブオブジェクト レベルの数を取得したり、モディファイヤ スタック内で現在選択されている内容を修正したりすることができます。

[修正]パネルが開いていない場合、またはオブジェクトが選択されていない場合、グローバル変数には undefined の値が含まれます。

   

subObjectLevel 

[修正]パネルが開いている場合に、[修正]パネルのサブオブジェクト レベルを取得および設定する 3ds Maxシステム グローバル変数 です。

この値は 0 以上の整数で、最大値は現在開いているモディファイヤでサポートされるサブオブジェクト レベル数です。通常、この値は[サブオブジェクト]ドロップダウン リストに表示される順番になります。

subObjectLevel がゼロの場合は、サブオブジェクト モードがオフであることを意味します。

[修正]パネルが開いていない場合、またはサブオブジェクト レベルの設定が現在のモディファイヤで許可されていない場合、このグローバル変数には undefined の値が含まれます。

例:

b=box() -- ボックスを作成します。
em=edit_mesh() -- メッシュ編集モディファイヤを作成します。
addModifier $box01 em -- メッシュ編集モディファイヤを追加します。
print subObjectLevel -- 現在のサブオブジェクト レベルを出力します。
max modify mode -- モディファイヤ パネルを開きます。
select $box01 -- オブジェクト box01 を選択します。
print subObjectLevel -- 現在のサブオブジェクト レベルを出力します。
subObjectLevel = 2 -- サブオブジェクト レベルを Edge に設定します。

[出力]

$Box:Box01 @ [0.000000,0.000000,0.000000]
Edit_Mesh:Edit Mesh
OK
undefined
undefined
OK
OK
0
0
2

サブオブジェクト レベルの取得および設定には、次のメソッドも使用できます。

getSelectionLevel <maxobject> 

MAXObject の subObject レベルを取得します。MAXObject がノードである場合、このメソッドは基本オブジェクト上で機能します。このメソッドは編集可能な基本オブジェクトに適用され、モディファイヤを選択して編集します。

注:このメソッドは、SplineSelect モディファイヤおよび PatchSelect モディファイヤでは動作しません

   

setSelectionLevel <maxobject> {#object | #vertex | #edge | #face} 

MAXObject の subObject レベルを設定します。MAXObject がノードである場合、このメソッドは基本オブジェクト上で機能します。このメソッドは編集可能な基本オブジェクトに適用され、モディファイヤを選択して編集します。

注:このメソッドは、SplineSelect モディファイヤおよび PatchSelect モディファイヤでは動作しません

選択にモディファイヤを追加

modPanel.addModToSelection <modifier> 

[修正]パネルで現在開いている選択範囲にモディファイヤを適用します。

これは、ターゲットが選択範囲やグループの場合、または[修正]パネルの特定の場所にスタックが開いていて、サブオブジェクト選択がアクティブになっており、この選択にモディファイヤを適用する場合に addModifier() の代わりに使用します。

addModifier() は、モディファイヤを選択範囲またはグループ内の各オブジェクトに個別に適用し、どのような場合でも、現在アクティブなサブオブジェクトの選択範囲を優先することはありません。詳細は、「ノードの共通プロパティ - モディファイヤ スタック関連のメソッド」を参照してください。

[修正]パネルが開いていないと、この関数は何も実行しません。

[修正]パネルのオブジェクトへのアクセス

modPanel.getCurrentObject() 

[修正]パネルのスタックで現在選択されているモディファイヤまたは基本オブジェクトを返します。

[修正]パネルが開かれていない場合は、 undefined を返します。[修正]パネルに切り替える場合は、 max modify mode コマンドを使用します。

   

modPanel.setCurrentObject < modifier | node | node_baseobject > [node:<node>] [ui:<boolean>] 

指定したオブジェクトがモディファイヤ スタック内でアクティブなオブジェクトになるように設定します。[修正]パネルが開いていなければなりません。[修正]パネルが開いていないと、何も実行されません。

node : が指定されている場合は、モディファイヤまたは基本オブジェクトが指定されたノード内だけを検索します。通常、これを指定するのは、どのノードを検索するかわかっていて、モディファイヤまたは基本オブジェクトが別のノード内でインスタンス化されているときです。引数がノードの場合、ノード キーワード引数の既定値はそのノードです。

ui : を true に設定すると、コマンド パネルが[修正]モードに切り替わります。既定値は false です。

   

modPanel.getModifierIndex <node> <modifier> 

指定したノードに対し、モディファイヤ スタック内にある指定されたモディファイヤのインデックスを返します。

このインデックスは、 <node>.modifiers 配列におけるモディファイヤの位置に対応します。

この関数は、指定したモディファイヤがノードのモディファイヤ スタックにない場合、 undefined を返します。

   

modPanel.validModifier (< modifier > | < modifier_class >). 

[修正]パネルが開かれていて、1 つまたは複数のノードが選択されており、指定したモディファイヤがスタック内の現在の編集レベルにあるすべてのノードに適用可能な場合は、 true を返します。

3ds Max 6 以降では、ノード/ノード コレクションまたはモディファイヤ/モディファイヤ クラスのいずれかが「undefined」である場合、またはノード コレクションが空の場合、 modPanel.validModifier メソッドは false を返します。

例:

modPanel.addModToSelection (bend()) -- 現在の選択に bend モディファイヤを適用します。
modPanel.getModifierIndex $ foo -- モディファイヤ foo のインデックスを返します。
modPanel.setCurrentObject $ -- 基本オブジェクトで開きます。
modPanel.setCurrentObject $.baseObject -- 上と同じです。
modPanel.setCurrentObject $.taper -- オブジェクト内のテーパ モディファイヤで開きます。
modPanel.setCurrentObject $.modifiers[3] -- 3 番目のモディファイヤで開きます。
modPanel.setCurrentObject foo -- foo オブジェクトまたはモディファイヤで開きます。
関連事項