インタフェース: maxOps

インタフェース > コア インタフェース > maxOps

 

   

コア インタフェース - クイック ナビゲーション

このコア インタフェースは、さまざまな 3ds Max システム プロパティおよびメソッドを MAXScript に公開します。

トピック ナビゲーション  

バージョンおよびライセンス情報

Progressive モード

[作成](Create)タブ

[モーション](Motion)タブ > [軌道](Trajectory)

セット キー モード

ペイント選択のブラシ

ビューポート表示

反復レンダリング

ノード名のサフィックスの長さ

領域選択/交差選択タイプ

ID で色分け

マテリアル エディタ モード

トラックバー、コントローラ

アニメーションを削除

[階層](Hierarchy)タブ

[表示](Display)タブ

オート キー の既定値のキー

ビットマップ読み込み

カスタム ユーザ インタフェース

レンダリング要素マネージャ

ノードの集約とクローン

ノード ハンドル

ノードを検索

バージョンおよびライセンス情報

プロパティ:

maxOps.IsRenderActive : boolean : Read 

3ds Max 2016 の 新機能 : レンダラーがアクティブの場合は True を返します。

   

maxOps.productAppID: enum : Read 		

productAppID enums: {#max} 	 

アプリケーション ID を返します。

返される enum 値:

#max - 3ds Max

注:3ds Max 2016 より前のバージョンでは次の値が使用可能でした。

#none - ID なし

#viz - Autodesk VIZ

#gmax - gmax

#vizR - VIZrender

   

maxOps.productID : enum : Read   

productID enums: {#3dsMax} 

3ds Max の「種類」を返します。

返される enum 値:

#3dsMax - 3ds Max Entertainment バージョン

注:3ds Max 2016 より前のバージョンでは #3dsMaxDesign 値が使用可能でした。

#3dsMaxDesign - 3ds Max Design バージョン

   

maxOps.productVersion : enum : Read 

productVersion enums: {#productVersionDevel|#productVersionTrial|#productVersionOrdinary|#productVersionEdu|#productVersionNFR} 

製品のバージョン タイプを返します。

返される enum 値は、以下のとおりです。

#productVersionDevel - デバッグ ビルドまたは社内ライセンス

#productVersionTrial - トライアル ライセンス

#productVersionOrdinary - 製品版ライセンス

#productVersionNFR - 再販不可

#productVersionEdu - 教育版または学生版ライセンス

注: 3ds Max のすべてのコピーは、猶予期間中およびオーソライズされるまで、「-1」の hardwarelockid を返します。その数値を確認して、独自のデモ モードを開始することもできます。

   

maxOps.licenseBehavior : enum : Read 

licenseBehavior enums: {#licenseBehaviorPermanent|#licenseBehaviorExtendable|#licenseBehaviorNonextendable} 

ライセンス期間を返します。

返される enum 値は、以下のとおりです。

#licenseBehaviorPermanent - 永久ライセンスまたはハードウェア ロック

#licenseBehaviorExtendable - 期間ライセンス(延長可能)

#licenseBehaviorNonextendable - 期間ライセンス(延長不可)

   

maxOps.licenseDaysLeft : integer : Read 

戻り値は、ライセンス期間の残りの日数を示す整数です。0 (ゼロ)の値は、今日が有効期間の最終日であることを意味します。永久ライセンスの場合、10 年以上有効であることを示す固定値が返されます。

   

maxOps.isNetworkLicense 

プロパティは読み込み専用であり、ブール値を持ちます。 true はネットワーク ライセンス、 false はローカル ライセンスを意味します。

例:

--This example displays the values of your Cdilla license:
rollout CdillaOPS "License Properties" width:220 height:270
(
groupBox grp1 "License Values" pos:[18,18] width:180 height:265
button btn5 "Days until Expiration" pos:[50,45] width:119 height:18
editText edt5 "" pos:[50,75] width:119 height:18
button btn6 "License Version" pos:[50,105] width:119 height:18
editText edt6 "" pos:[50,135] width:119 height:18
button btn7 "License Behavior" pos:[50,165] width:119 height:18
editText edt7 "" pos:[50,195] width:119 height:18
button btn8 "Hardware Lock ID" pos:[50,225] width:119 height:18
editText edt8 "" pos:[50,255] width:119 height:18
on btn5 pressed do
(
edt5.text = (maxOps.licenseDaysLeft as string)
)
on btn6 pressed do
(
version = maxOps.productVersion as string
edt6.text = substring version 15 version.count
)
on btn7 pressed do
(
version = maxOps.licenseBehavior as string
edt7.text = substring version 16 version.count
)
on btn8 pressed do
edt8.text = (hardwarelockid as string)
)
rof = newRolloutFloater "License Status" 230 380
addRollout CdillaOPS rof

   

メソッド:

maxOps.isFeatureLicensed <integer>featureNumber 

指定された機能にライセンスが付与されている場合は true 、それ以外の場合は false を返します。

   

トラックバー、コントローラ

プロパティ:

maxOps.trackbar : Interface : Read 

トラックバー インタフェースが含まれます。

   

maxOps.overrideControllerRangeDefault : boolean : Read|Write 

true に設定すると、一般的に範囲を必要とする新しい手続き型コントローラは、無限の範囲に設定されます。false に設定すると (3ds Max 8 より前の既定動作)、このようなコントローラの範囲は現行アニメーションの範囲に明示的に設定され、シーン アニメーション範囲をあとで拡大しても、コントローラはその範囲の最終フレーム後に更新を停止します。3ds Max 8 以降 で使用可能です。

   

maxOps.springQuickEditMode : boolean : Read|Write 

[スプリング クイック編集](Spring Quick Edit)モードの有効/無効を取得/設定します。[基本設定](Preferences)ダイアログの[アニメーション](Animation)タブにあるチェックボックスに対応します。

   

maxOps.springRollingStart : integer : Read|Write 

スプリング コントローラの[Rolling Start]値を取得/設定します。[基本設定](Preferences)ダイアログの[アニメーション](Animation)タブにある[ロールバック](Rollback)の値に対応します。

メソッド:

maxOps.getTrackBar() 

トラックバーに対するインタフェースを返します。「インタフェース : Trackbar」を参照してください。

   

Progressive モード

プロパティ:

maxOps.inProgressiveMode : boolean : Read 

3ds Max がプログレッシブ モードの場合は true を返し、それ以外の場合は false を返します。

行列の時系列が計算されており、それを、回転に標準の PRS コントローラと標準の Euler XYZ コントローラが採用されているノードの変換行列に割り当てる必要のある場合、現在のフレームのオイラー角度がその前のフレームからの角度に基づいて計算されていれば、よりすぐれたアニメーション結果が得られます。Progressive モードでは、オイラー コントローラは 1 つ前のフレームに基づいて角度を派生するように指示されます。このモードでは、ノード変換は厳密に時間配列順に設定されることが前提となっています。

後の beginProgressiveMode() メソッドと endProgressiveMode() メソッドも参照してください。

   

メソッド:

<void>maxOps.beginProgressiveMode() 

Progressive モードを有効にします。前の maxOps.inProgressiveMode プロパティも参照してください。

   

<void>maxOps.endProgressiveMode() 

Progressive モードを無効にします。前の maxOps.inProgressiveMode プロパティも参照してください。

   

アニメーションを削除

メソッド:

<void>deleteSelectedAnimation() 

選択したアニメーションを削除します。

   

[作成](Create)タブ

プロパティ:

maxOps.autoGrid : boolean : Read|Write 

[オート グリッド](AutoGrid)オプションを有効/無効にします。

   

maxOps.startNewShapeLock : boolean : Read|Write 

[新規シェイプの開始](Start New Shape)オプション チェックボックスを有効/無効にします。

   

メソッド:

<void>startNewShape() 

新規シェイプの作成を開始します。

   

[階層](Hierarchy)タブ

プロパティ:

maxOps.pivotMode : enum : Read|Write 

pivotMode enums: {#none | #pivotOnly | #objectOnly | #hierarchyOnly} 

このプロパティは、[階層](Hierarchy)パネルの[基点](Pivot)サブパネルにある基点のボタンに対応しています。

   

[モーション](Motion)タブ > [軌道](Trajectory)

プロパティ:

maxOps.trajectoryMode : bool : Read|Write 					 

true に設定すると、コマンド パネルの[階層](Hierarchy)タブは軌道モードに切り替わります。

false に設定すると、コマンド パネルの[階層](Hierarchy)タブはパラメータ モードに切り替わります。

コマンド パネルが[階層](Hierarchy)タブになっていない場合は、自動的に切り替わります。

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

 

maxOps.trajectoryKeySubMode : bool : Read|Write 				  

true に設定すると、軌道モードはキー サブオブジェクト モードに切り替わります。

コマンド パネルが[階層](Hierarchy)タブになっていない場合は、自動的に切り替わります。

maxops.trajectoryMode=true を設定したり、マウス操作で切り替えたりすることによって[階層](Hierarchy)が軌道モードに設定されていない場合は、自動的に軌道モードに設定されます。

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

 

maxOps.trajectoryAddKeyMode : bool : Read|Write 				

true に設定されている場合は、コマンド パネルの[階層](Hierarchy)タブにある[軌道](Trajectories)ロールアウトの[キーを追加](Add Key)モードが有効になります。false の場合は、無効になります。

コマンド パネルが[階層](Hierarchy)タブになっていない場合は、自動的に切り替わります。

maxops.trajectoryMode=true を設定したり、マウス操作で切り替えたりすることによって[階層](Hierarchy)が軌道モードに設定されていない場合は、自動的に軌道モードに設定されます。

maxops.trajectoryKeySubMode=true を設定したり、マウス操作で切り替えたりすることによって軌道モードがキー サブオブジェクト モードでない場合は、自動的にキー サブオブジェクト モードに設定されます。

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

メソッド:

   

<void>maxOps.deleteSelectedTrajectoryKey() 

選択されている軌道キーを削除します。3ds Max 2008 以降 で使用可能です。

[表示](Display)タブ

プロパティ:

maxOps.hideFrozenObjects : boolean : Read|Write 

[表示](Display)タブにある[ロックされたオブジェクトをオフ](Hide Frozen Objects)チェックボックスの状態を取得/設定します。

注:このプロパティの設定後に completeRedraw() を呼び出す必要があります。

セット キー モード

プロパティ:

maxOps.setKeyMode : boolean : Read|Write 

セット キー モード状態を取得/設定します。

   

maxOps.setKeySuspend : boolean : Read|Write 

セット キー中止モード状態を取得/設定します。

   

maxOps.setKeyFilters : enum by value array : Read 

setKeyFilters enums: {#all | #position | #rotation | #scale | #ikParams | #objParams | #custAttribs | #modifiers | #materials|#other} 

常にフィルタ名の固定リストを返します。

   

maxOps.setKeyNodeSets : String array : Read 

ノード セットの配列を返します。

注:

この配列には "選択" は含まれません。

   

maxOps.setKeyNodeSetCurrent : String : Read|Write 

現在の setKey ノード セットが "選択" の場合、"" を返します。"" に設定すると、現在の setKey ノード セットが "選択" に設定されます。

注:

「SetKey NodeSet」とは、ステータス パネルの[キー フィルタ](Key Filters)ボタンの上にあるドロップダウン リストに表示されるものです。このドロップダウンの最初のエントリは "選択" で、これは "" というセット名に対応しています。残りの項目は、シーン内のすべてのキャラクタ ノードと、シーン内のすべての名前付き選択セットです。

メソッド:

   

<boolean>maxOps.getSetKeyMode() 

セット キー モードがアクティブな場合は true を返し、アクティブでない場合は false を返します。

   

maxOps.getSetKeyFilterState <enum>filter 

filter enums: {#position | #rotation | #scale | #ikParams | #objParams | #custAttribs | #modifiers | #materials} 

指定した セット キー フィルタの状態を返します。

   

maxOps.setSetKeyFilterState <enum>filter <bool>onOff 

filter enums: {#position | #rotation | #scale | #ikParams | #objParams | #custAttribs | #modifiers | #materials} 

指定した セット キー フィルタの状態を設定します。

例:

-- print SetKey Filters state
for filter in maxops.setKeyFilters do
format "% : %\n" (filter as string) (maxops.getSetKeyFilterState filter)
-- turn all on
for filter in maxops.setKeyFilters do
maxops.setSetKeyFilterState filter true

   

<void>maxOps.getDefaultTangentType<&enum>dfltInTangentType <&enum>dfltOutTangentType 

dfltInTangentType enums: {#smooth|#linear|#step|#fast|#slow|#custom|#flat} 
dfltInTangentType is Out parameter 
dfltOutTangentType enums: {#smooth|#linear|#step|#fast|#slow|#custom|#flat} 
dfltOutTangentType is Out parameter 

既定のインとアウトの接線タイプを、参照によって渡される 2 つの出力パラメータに返します。

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

   

<void>maxOps.setDefaultTangentType <enum>dfltInTangentType <enum>dfltOutTangentType writeInCfgFile:<boolean> 

dfltInTangentType enums: {#smooth|#linear|#step|#fast|#slow|#custom|#flat} 
dfltOutTangentType enums: {#smooth|#linear|#step|#fast|#slow|#custom|#flat} 
writeInCfgFile default value: true 

既定のインとアウトの接線タイプを設定します。 writeInCfgFile: true に設定すると(既定値)、変更内容も設定ファイルに記録され、3ds Max セッション間で維持されます。

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

例:

maxops.setDefaultTangentType #slow #fast
--> OK
maxops.getDefaultTangentType &inTangent &outTangent
--> OK
inTangent
--> #slow
outTangent
--> #fast
注:3ds Max GUI のフライアウトでは、イン接線とアウト接線が等しい場合にのみアイコンが提供されます。上記のメソッドでは、既定値の接線を、フライアウト アイコンでは表現できないイン接線タイプおよびアウト接線タイプの任意の組み合わせに設定することができます。このような場合、疑問符(?)の付いた特殊なアイコンが GUI に表示されます。

オート キー の既定値のキー

プロパティ:

   

maxOps.autoKeyDefaultKeyOn: boolean : Read|Write 

このオプションが true (既定値)に設定されている場合は、 maxops.autoKeyDefaultKeyTime で指定されているフレーム以外のフレームにオート キー モードでキーを作成すると、 maxops.autoKeyDefaultKeyTime によって指定されたフレームに、アニメートされたプロパティの初期値を使用してキーが作成されます。これは、3ds Max の初期リリース時からの既定値の動作です。

このオプションが false に設定されている場合は、現在のフレームにあるキー以外のキーがオート キー機能によって作成されることはありません。

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

   

maxOps.autoKeyDefaultKeyTime : time : Read|Write 

maxops.autoKeyDefaultOn true に設定されている場合は、この時間値によって定義されるフレーム上に自動的にキーが作成されます。

有効な値は 0f および 1f です。

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

ペイント選択のブラシ

プロパティ:

maxOps.paintSelBrushSize : integer : Read|Write 

[ペイント選択のブラシサイズ](size of the Paint Selection brush)を取得/設定します。ペイント選択は、選択領域のフライアウトを通してアクセスできる選択モードです。この値は、[カスタマイズ](Customize) > [基本設定](Preferences) > [一般](General) > [シーン選択](Scene Selection)にある[ペイント選択のブラシサイズ](Paint Selection Brush Size)の値に対応します。メイン ツールバーの[ペイント選択](Paint Selection )アイコンをマウスの右ボタンでクリックすると、[基本設定](Preferences)ダイアログ ボックスが開くことに注意してください。

   

ビットマップ読み込み

メソッド:

<bool>maxOps.canImportBitmap <filename>fileName 

ファイル名拡張子のビットマップ読み込みが存在する場合は true 、それ以外の場合は false を返します。ビットマップ ファイルが存在するかどうか、または有効なビットマップ ファイルであるかどうかは確認しません。

   

ビューポート表示

メソッド:

bool>maxOps.displayActiveCameraViewWithMultiPassEffect() 

アクティブ ビューがカメラ ビューのときに、カメラのプロパティのマルチパス効果がオンになっている場合は、この関数は true を返します。それ以外の場合は何も実行せずに false を返します。

   

maxOps.setActiveViewportTransparencyDisplay <integer>transparencyLevel 

以下のいずれかの整数を、引数として指定します。

0 - アクティブ ビューポートの透明度をオフにします。

1 - アクティブ ビューポートの透明度をスクリーンドアに設定します。

2 - アクティブ ビューポートの透明度を混合透明度に設定します。

   

<IObject>maxops.getViewportShadingSettings() 

高度なビューポート シェーディング コントロールに関連するいくつかのインタフェースを公開する <IObject:ViewportShadingSettings> オブジェクトを返します。

詳細は「ビューポート シェーディングの設定」を参照してください。

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

例:

vss = maxops.getViewportShadingSettings()
<IObject:ViewportShadingSettings>
showInterfaces vss

カスタム ユーザ インタフェース

メソッド:

<bool>maxOps.loadCUIFile <filename>fileName 

成功の場合は true 、それ以外の場合は false を返します。

   

反復レンダリング

プロパティ:

<bool>maxOps.rendUseIterative 

反復レンダリングモードを取得/設定します。3ds Max 2009 以降で使用可能です。

true に設定した場合、現在のフレームだけがレンダリングされ、ディスクにはファイルが保存されません。

false に設定した場合、[レンダリング設定](Render Scene Dialog)の[時間出力](Time Output)と[ファイルを保存](File Saving)の設定が考慮されます(これは既定値であり、3ds Max 2009 より前のリリースでは唯一の動作です)。

注:

反復レンダリングは、 render() メソッドを使用してアクティブにすることはできません

maxOps.rendUseIterative を true に設定した後、 max クイック レンダリング を使用して、反復レンダリングを実行できます。

   

レンダリング要素マネージャ

メソッド:

maxOps.GetCurRenderElementMgr() 

現在のレンダリング要素マネージャを返します。

   

maxOps.GetRenderElementMgr <enum> 

{#Production|#Draft}

特定のレンダリング要素マネージャを取得します。

注:

#Draft レンダラーは 3ds Max 6 で廃止されました。

3ds Max 6 以降 #Draft 引数を指定してこのメソッドを呼び出すと、 undefined を返します。

   

ノードの集約とクローン

プロパティ:

<integer>maxOps.nameSuffixLength 

新規に作成されたシーン ノード、レイヤなどの名前に接尾辞として追加される、桁の数をコントロールします。

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

注:

3ds Max 2011 では、既定値が 2 から 3 に変わり、3dsmax.ini ファイルの[Preferences]カテゴリの「NameSuffixLength」キーによってコントロールされるようになりました。

これにより、MAXScript の sort() メソッドを使用して最大 999 個までのオブジェクトをソートできるようになります。1000 以上のオブジェクトを操作する場合は、maxOps.nameSuffixLength の値を 4 またはそれ以上に増大して十分な先行ゼロを持つようにすることが可能です。

また、新たに作成されたノードは、数字のギャップを埋めたりせずに、シーン内の最大の数字よりも 1 つ大きい数字を受け取ることになります。たとえば、オブジェクト Box001、Box002、および Box003 を作成して Box002 を削除した場合、次の新たなノードの名前は Box 002 ではなく自動的に Box004 になります。

   

ノードの集約とクローン

メソッド:

<bool>maxOps.CollapseNode <node>node <boolean>noWarning 

ノードの完全なモディファイヤ スタックを集約します。

noWarning を true に設定すると、プロンプトは表示されません。成功の場合は true 、それ以外の場合は false を返します。

   

<bool>maxOps.CollapseNodeTo <node>node <index>modIndex <boolean>noWarning 

インデックス指定されたモディファイヤまでモディファイヤ スタックを集約します。

モディファイヤはスタックの上からカウントされます。指定したもの以下のすべてのモディファイヤが集約されます。

noWarning を true に設定すると、プロンプトは表示されません。

正常に終了した場合は true 、それ以外の場合は false を返します。

   

<bool>maxOps.CloneNodes <&node array>nodes offset:<point3> expandHierarchy:<boolean> cloneType:<enum> actualNodeList:<&node array> newNodes:<&node array> 

このメソッドは、正常に終了した場合は true 、それ以外の場合は false を返します。

<&node array>nodes 

これは、クローンを作成するノードのリストです。 nodes は In パラメータです。

<&point3>offset 

クローン ノードに適用される位置オフセット。 offset は In パラメータです。

expandHierarchy:<boolean> 

expandHierarchy default value: false 

階層内に子のクローンを作成するかどうかを示します。

cloneType:<enum> 

cloneType enums: {#copy|#instance|#reference} 
cloneType default value: #copy

クローン タイプとして、コピー、インスタンス、または参照を指定します。

 actualNodeList:<&node array> 

actualNodeList default value: #() 

このノード配列には、クローンを作成する元のノードを入力します。これは、ノード間に従属関係が存在し、他のノードをリストに追加する可能性があるためです。たとえば、ライト/カメラ ターゲット、システムの一部またはグループの一部であるノード、展開された階層などの場合です。

newNodes:<&node array> newNodes default value: #() 

このノード配列には、新しいクローン ノードを入力します。actualNodeList 配列内と newNodes 配列内で返されるノード間には、1 対 1 の関係があります。

注:

actualNodeList および newNodes は、引数 <&node array> を受け取る Out パラメータです。このことは次の理由により重要です。

1) これらの変数は参照で渡す必要があります。

2) これらの変数は Out パラメータであるため、変数を配列に渡すときに初期化する必要はありません(MAXScript は渡された値を配列に変換しません)。

たとえば、次のようになります。

s=sphere()

-- variables not passed by reference, does not work right
maxops.clonenodes s actualNodeList:a newNodes:b
a --> undefined
b --> undefined

-- variables passed by reference without initializing, works right
maxops.clonenodes s actualNodeList:&c newNodes:&d
c --> #($sphere01)
d --> #($sphere03)

また、最初の引数のタイプは In パラメータ <&node array>nodes として指定されます。この引数は In パラメータであるため、このメソッドは渡された配列の内容を変更しません。このため、この配列を参照で渡しても意味はありません。

更に、MAXScript は一時的な配列に渡される単一引数を自動的にラップするため、 #(s) の代わりに s を使用してノード配列を渡すことができます。

警告

undo off コンテキスト内では maxOps.cloneNodes は 使用できません。[元に戻す](Undo)機能を使用したときに 3ds Max がクラッシュしてしまうからです。

領域選択/交差選択タイプ

メソッド:

maxOps.setSelectionType <boolean>auto <enum>method 

method enums: {#window|#crossing|#leftToRight|#rightToLeft} 

選択ツールの領域内/交差モードをコントロールします。

1 番目の引数を true に設定すると、[カスタマイズ](Customize) > [基本設定](Preferences) > [一般タブ](General tab) > [自動的に方向で領域内/交差](Auto Window/Crossing By Direction)オプションが有効になります。2 番目の引数には 0 または 1、あるいはそれと等価の列挙値 #leftToRight および #rightToLeft を指定できます。

1 番目の引数を false に設定すると、メイン ツールバーの[領域内/交差](Window/Crossing )アイコンの状態が設定され、[カスタマイズ](Customize) > [基本設定](General tab) > [一般タブ](Preferences) > [自動的に方向で領域内/交差](Auto Window/Crossing By Direction)は無効になります。2 番目の引数には 0 または 1、あるいはそれと等価の列挙値 #window および #crossing を指定できます。

つまり、次のようになります。

true 1 - 自動領域内/交差は有効、左から右への移動が交差選択

true 0 - 自動領域内/交差は有効、右から左への移動が交差選択

false 1 - 自動領域内/交差は無効、交差選択は ON

false 0 - 自動領域内/交差は無効、交差選択は OFF

このメソッドは、成功の場合は true 、それ以外の場合は false を返します。

   

ノード ハンドル

メソッド:

maxOps.getNodeByHandle <DWORD>handle 

指定されたハンドルに関連付けられているノードを返します。

   

ID で色分け

メソッド:

<void>maxOps.colorById <DWORD>id <&color>color 

color is Out parameter   

渡された一意の ID ごとに特定のカラーを返します。結果は参照によって Out パラメータに書き込まれます。

このメソッドは内部で使用され、それぞれの RenderElements でマテリアルとオブジェクトの ID を表すカラーが生成されます。

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

例:

for i = 0 to 9 do
(
 maxops.colorById i &theColor
 format "ID:% Color:%\n" i theColor
)

結果:

ID:0 Color:(color 100 100 100)
ID:1 Color:(color 213 16 100)
ID:2 Color:(color 70 188 100)
ID:3 Color:(color 183 104 100)
ID:4 Color:(color 40 20 100)
ID:5 Color:(color 153 192 100)
ID:6 Color:(color 10 108 100)
ID:7 Color:(color 123 24 100)
ID:8 Color:(color 236 196 100)
ID:9 Color:(color 93 112 100)

ノードを検索

メソッド:

<void>maxOps.findNodes <&node array>templateNodes <&node array>foundNodes nodePropsToMatch:<&enum array> 

templateNodes is In parameter 
foundNodes is Out parameter 
nodePropsToMatch enums: {#nodePropMaterial|#nodePropLayer} 
nodePropsToMatch default value: #() 
nodePropsToMatch is In parameter 

テンプレートで指定されたノードと類似したノードを検索します。オプションでマテリアルおよびレイヤのプロパティを一致させることもできます。

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

例:

(
resetMaxFile #noPrompt --reset max file
--create 10 boxes and 10 spheres:
for i = 1 to 10 do box pos:[i*50,0,0]
for i = 1 to 10 do sphere pos:[i*50,100,0]
$Box*.material = standard() --assign standard material to all boxes
$Box001.material = multiMaterial() --change material of first box
--find all objects similar to the Box01 and Sphere01
--that have the same material as the template object
maxOps.findNodes #($Box001,$Sphere001) &foundNodes nodePropsToMatch:#(#nodePropMaterial)
print foundNodes --print the resulting array
)

結果:

$Box:Box001 @ [50.000000,0.000000,0.000000]
$Sphere:Sphere001 @ [50.000000,100.000000,0.000000]
$Sphere:Sphere002 @ [100.000000,100.000000,0.000000]
$Sphere:Sphere003 @ [150.000000,100.000000,0.000000]
$Sphere:Sphere004 @ [200.000000,100.000000,0.000000]
$Sphere:Sphere005 @ [250.000000,100.000000,0.000000]
$Sphere:Sphere006 @ [300.000000,100.000000,0.000000]
$Sphere:Sphere007 @ [350.000000,100.000000,0.000000]
$Sphere:Sphere008 @ [400.000000,100.000000,0.000000]
$Sphere:Sphere009 @ [450.000000,100.000000,0.000000]
$Sphere:Sphere010 @ [500.000000,100.000000,0.000000]
OK

ご覧のように、他のボックスはマテリアルが異なるので、1 つ目のボックスのみが収集されました。

すべての球は同じマテリアル(マテリアルがまったくない)なので、$Sphere01 と同じように収集されます。

マテリアル エディタ モード

プロパティ:

maxOps.mtlDlgMode 

マテリアル エディタ モードを取得/設定します。3ds Max 2011 以降で使用可能です。

マテリアル エディタが既に開いている場合、このプロパティを設定すると即座にエディタが指定のモードに切り替わります。

有効な値は次のとおりです。

#basic(0) - コンパクト マテリアル エディタ モード

#advanced(1) - スレート マテリアル エディタ モード

関連するメソッドの詳細情報については、「MatEditor - マテリアル エディタを開く/閉じる」トピックを参照してください。

maxOps.mtlDlgMode プロパティは、MatEditor 構造体を通しても便宜的に利用できます。