3ds Max 2017 の 新機能 : このコア インタフェースは、シーン コンバータ システムおよびそのルールを設定するためのプロパティとメソッドを公開します。
プロパティ:
SceneConverter.visible : bool : Read|Write
シーン コンバータ ダイアログの表示状態を取得/設定します。
プロパティを True に設定するとダイアログは開き、False に設定するとダイアログは閉じます。
プロパティを取得する場合は、ダイアログが開いているか(True)、または閉じているか(False)を示します。
Scene_Converter: GlobalUtilityPlugin クラス、およびダイアログを開くために使用可能な .show() メソッドを公開する Actions MixinInterface も参照してください。
SceneConverter.OpenWhenNeededOnFileOpen : bool : Read|Write
[ファイルを開く時にプラグインが見つからない場合はシーン コンバータを開く](Open Scene Converter on file open when missing plugins)チェックボックスの状態を取得/設定します。
False(既定)に設定されている場合は、見つからないプラグインを含むシーンをロードするときにシーン コンバータが自動的に開きません。
True に設定されている場合は、見つからないプラグインが検出されると、シーン コンバータが自動的に開きます。
SceneConverter.BackupOriginalFiles : bool : Read|Write
バッチ変換を実行しているときに、元のファイルをバックアップするかどうかを取得/設定します。
True に設定されている場合は、サフィックス「_backup」の付いたバックアップ コピーが作成されます。
SceneConverter.ConvertOnlySelectedObjects : bool : Read|Write
[選択したオブジェクトのみに適用](Apply only to selected objects)チェックボックスの状態を取得/設定します。
False(既定)に設定されている場合、変換はシーン全体に適用されます。
true に設定されている場合、変換は選択したオブジェクトにのみ適用されます。
SceneConverter.ApplyOnlySelectedRules : bool : Read|Write
すべてのルールを適用するのか(False)、または選択したルールのみを適用するのか(True)を取得/設定します。
既定値は False です。
SceneConverter.FilterConversionTypesFromScene : bool : Read|Write
[現在のシーンに存在するタイプのみ表示](Only display types in the current scene)チェックボックスの状態を取得/設定します。
False(既定)に設定されている場合は、変換できるすべてのオブジェクト タイプがダイアログの[ソース](Source)リストに表示されます。
true に設定されている場合は、現在のシーン内にある変換可能なオブジェクト タイプのみが、ダイアログの[ソース](Source)リストに表示されます。
SceneConverter.ScriptFolder : string : Read|Write
シーン コンバータのスクリプト フォルダを取得/設定します。
既定は「C:\Program Files\Autodesk\3ds Max 2017\SceneConverter\」です。
このフォルダには 2 つのサブフォルダがあります。
個々のオブジェクト タイプの変換ルールを記述する MAXScript ファイルが格納された「\ConversionScripts」、および
レンダラー間の変換プリセットを記述する MAXScript ファイルが格納された「\ConversionPresets」
SceneConverter.BatchMode : enum : Read|Write
BatchMode 列挙: {#XRefs|#File|#Folder}
ダイアログの[オプション](Options)タブの下にある[バッチ変換](Batch Conversions)ラジオ ボタンの状態を取得/設定します。
有効な値は次のとおりです。
列挙の代わりに整数 0、1、2 を使用できますが、プロパティを取得する場合は、常に列挙名が返されます。
メソッド:
<integer>SceneConverter.UpdateStatus()
シーンを再び解析して、シーン コンバータの状態を更新します。たとえば、シーン オブジェクトが追加または削除された後などです。
見つからないプラグイン スタンドインの数を返します。
<bool>SceneConverter.ConvertScene()
ダイアログの[シーンを変換](Convert Scene)ボタンを押す操作と同等です。
設定されたルールに従って、現在のシーンを変換します。
成功した場合は True を、失敗した場合は False を返します。
<void>SceneConverter.CancelConversion()
ダイアログの[キャンセル](Cancel)ボタンを押す操作と同等です。
進行中のシーン変換プロセスをキャンセルします。
現在のシーン、他の MAX ファイル、外部参照、またはバッチ変換を含む、すべての有効な変換プロセスに適用します。
<void>SceneConverter.SaveSceneMaterialLibrary <filename>LibraryFullPathFilename
シーンのマテリアルと一緒に .MAT マテリアル ライブラリを保存します。
引数はマテリアル ライブラリの完全なファイル名およびパスです。
<void>SceneConverter.OverwriteFromMaterialLibrary <filename>LibraryFullPathFilename
シーンのマテリアルおよびマップを、指定した .MAT マテリアル ライブラリ内の同じ名前を持つマテリアルおよびマップで置き換えます。
引数はマテリアル ライブラリの完全なファイル名およびパスです。
<bool>SceneConverter.ConvertAllReferencedFiles()
現在のシーンを変換しないで、すべての外部参照ファイルを変換します。
成功した場合は True を、失敗した場合は False を返します。
<bool>SceneConverter.ConvertMaxFile <filename>MaxFullpathFilename
指定した .MAX ファイルを変換します。
成功した場合は True を、失敗した場合は False を返します。
<bool>SceneConverter.ConvertFolder <string>Folder
指定したフォルダおよびそのサブフォルダ内の .MAX ファイルを変換します。
成功した場合は True を、失敗した場合は False を返します。
<bool>SceneConverter.LoadConversionPreset <filename>presetFilename
指定した変換プリセットをロードします。
引数はプリセット スクリプト ファイルの完全修飾ファイル名およびパスです。
既存のプリセットを検索するには、SceneConverter.ScriptFolder フォルダ内の ConversionPresets サブフォルダ内を参照し、getFiles() を使用してすべての .MS ファイルを取得します。
次のメソッドは、内部専用の関数を公開します。
<void>SceneConverter.ClearInvalidClassIDs()
無効な classID の数をクリアします。
この呼び出しを行うと、メソッド SceneConverter.GetNumInvalidClassIDs() (以下を参照)は無効なクラス ID を返します。
内部でのみ使用されます。
<integer>SceneConverter.GetNumInvalidClassIDs <enum>classIDType
classIDType 列挙: {#eLight|#eMaterial|#eMap|#eGeometry|#eCamera|#eExposureControl|#eRenderEffect|#eRenderElement|#eOther}
指定したタイプのプラグイン クラスの中で見つからないものの数を返します。
内部でのみ使用されます。
<int by value array>SceneConverter.GetInvalidClassIDs <enum>classIDType <integer>index
classIDType 列挙: {#eLight|#eMaterial|#eMap|#eGeometry|#eCamera|#eExposureControl|#eRenderEffect|#eRenderElement|#eOther}
指定したタイプのインデックス付きプラグイン クラスの中で見つからないものの classID を返します。
内部でのみ使用されます。
例 |
--Load a scene containing a FumeFX grid into a 3ds Max without FumeFX installed... --The evaluate the following code: ( enums= #(#eLight, #eMaterial, #eMap, #eGeometry, #eCamera, #eExposureControl, #eRenderEffect, #eRenderElement, #eOther) for i in enums do ( count = (SceneConverter.GetNumInvalidClassIDs i) format "%: %\n" (i as string) count for j = 1 to count do ( id = SceneConverter.GetInvalidClassIDs i j format "\t%: %\n" j id ) ) ) |
出力 |
eLight: 3 1: #(112233, 554434) 2: #(112233, 554433) 3: #(861693276, 941707697) eMaterial: 1 1: #(1890604853, 1242969684) eMap: 2 1: #(2004031007, -1720943339) 2: #(1653483166, 1916299967) eGeometry: 3 1: #(771832789, 331352827) 2: #(1897859757, 471341833) 3: #(1689326601, 511318125) eCamera: 0 eExposureControl: -1 eRenderEffect: -1 eRenderElement: -1 eOther: 1 1: #(1932620593, 1226131043) OK |
<bool>SceneConverter.AddInvalidClassID <enum>classIDType <INT64 array>classIDAs2IntegersInATab
classIDType 列挙: {#eLight|#eMaterial|#eMap|#eGeometry|#eCamera|#eExposureControl|#eRenderEffect|#eRenderElement|#eOther}
内部でのみ使用されます。
<bool>SceneConverter.RemoveInvalidClassID <enum>classIDType <integer>index
classIDType 列挙: {#eLight|#eMaterial|#eMap|#eGeometry|#eCamera|#eExposureControl|#eRenderEffect|#eRenderElement|#eOther}
内部でのみ使用されます。
<void>SceneConverter.AddLoadedStandinRef <maxObject>standin <string>name <integer>isMentalRay
内部でのみ使用されます。
<bool>SceneConverter.AddConversionRule <INT64 array>sourceClassID <INT64 array>destinationClassID scriptID:<string> sourceAutodeskMaterialBaseType:<string> destinationAutodeskMaterialBaseType:<string>
scriptID の既定値: ""
sourceAutodeskMaterialBaseType の既定値: ""
destinationAutodeskMaterialBaseType の既定値: ""
内部でのみ使用されます。
<bool>SceneConverter.RemoveFromScene <INT64 array>sourceClassID sourceAutodeskMaterialBaseType:<string>
sourceAutodeskMaterialBaseType の既定値: ""
内部でのみ使用されます。
<bool>SceneConverter.DoNotConvert <INT64 array>sourceClassID sourceAutodeskMaterialBaseType:<string>
sourceAutodeskMaterialBaseType の既定値: ""
内部でのみ使用されます。
アクション: