インタフェース: CustomSceneStreamManager

3ds Max 2019 の 新機能: CustomSceneStreamManager インタフェースは、現在の 3ds Max シーン ファイルで CustomFileStreams をクエリ、追加、および削除する場合に使用されます。

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

   

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

フラグ値

カスタム ファイル ストリームには、CustomFileStreamManager での処理方法を決定する 3 つのフラグがあります。

持続性フラグ
このフラグが設定されている場合、CustomSceneStreamManager はシーン ファイルを保存するときにこのストリームをシーン ファイルに書き込んで、シーン ファイルをロードするときにストリームを読み取ってキャッシュに格納します。このフラグの値は、保存/ロード操作を行っても維持されます。このため、ロード/保存操作を複数回行った場合も、CustomFileStream は自動的に維持されます。「is/setStreamPersistent()」を参照してください。
保存フラグ
このフラグは、シーン ファイルを保存するときに CustomFileStream を保存するかどうかを示します。このフラグを設定すると、永続的でないストリームを追加して、シーン ファイルを保存するときに保存することができます。このフラグは永続的ではありません。シーン ファイルからストリームを読み取ると、クリアされます。
ロードなしフラグ
このフラグは、シーン ファイルをロードするときに CustomSceneStreamManager で CustomFileStream をロードするかどうかを示します。このフラグを使用すると、ファイル ロード時にロードされないストリームを作成できるため、外部ツールまたは外部ワークフローなどでデータを使用する場合に便利です。「getNoLoadOnSceneLoad()」および「setNoLoadOnSceneLoad()」を参照してください。
注: これらのフラグは、「プライベート」な 32 ビット整数(すべてのビットが 3ds Max で将来使用するために予約されている、シーン内でプライベートな整数)に格納されます。CustomSceneStreamManager インタフェースは、この整数値を取得する、または値内の個々のフラグを取得/設定するメソッドを公開しています。追加のカスタム フラグを定義するために使用できる「パブリック」な 32 ビット整数値もあります。
注: 保存フラグが設定されていて、持続性フラグおよびロードなしフラグが設定されていない場合は、ロード時に保存フラグがクリアされるため、ストリームは単一の保存/ロード操作を行っても維持されます。

通知

CustomSceneStreamManager コードのロードと起動は複数回実行される可能性があるため、システム構成によっては、システムまたは他の 3ds Max コンポーネントがファイル操作通知を受け取る順番を予測できない可能性があります。このため、CustomSceneStreamManager 自身またはシーン ファイルを操作する必要がある場合は(コピーして格納するなど)、インタフェースのメソッドを使用してコールバックを登録する必要があります。

プロパティ:

.numEntries : integer : Read

CustomSceneStreamManager のキャッシュ内のエントリ数です。

.locked : bool : Read|Write

CustomSceneStreamManager がロックされているかどうかを選択します。ロックされている場合、CustomSceneStreamManager は 3ds Max からの通知に反応しません。 これは、マネージャがデータ ストリームを自動的にロードまたは保存しないことを意味します。

メソッド:

<string>getStreamName <index>index

指定したキャッシュ エントリ インデックスのストリームの名前を返します。

<index>getStreamByName <string>name

指定したストリームのインデックスを返します。指定したストリームが存在しない場合は、例外が発生します。

<bool>doesStreamExist <value>which

指定したストリームが存在する場合、true を返します。which パラメータにはストリーム名またはストリームのインデックスを指定できます。

<integer>getStreamFlag <value>which
	privateFlag:<bool>
	privateFlag default value: false

<void>setStreamFlag <value>which
	<integer>value privateFlag:<bool>
	privateFlag default value: false

指定したストリームのパブリック フラグ値またはプライベート フラグ値を取得または設定します。「プライベート」整数の最初の 3 ビットには、持続性、保存、およびキャッシュのフラグが含まれています。残りのビットは将来の使用のために予約されています。「パブリック」整数には、任意のフラグ、または必要なその他のデータを含めることができます。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。

<bool>isStreamDataAnArray <value>which

指定したストリームの内容が文字列の配列である場合は、true を返します。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。

<string>getStreamData <value>which

指定したストリームの内容を文字列として返します。内容が文字列の配列である場合は、最初の文字列が返されます。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。

<string by value array>getStreamDataAsArray
	<value>which

指定したストリームの内容を文字列の配列として返します。内容が単一文字列の場合は、1 要素の配列が返されます。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。

<void>setStreamData <value>which
	<string>string

指定したストリームの内容を文字列として設定します。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。

<void>setStreamDataAsArray <value>which
	<&string array>string_array
	string_array is In parameter

指定したストリームの内容を文字列の配列として設定します。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。: 空の配列を保存した場合、isStreamDataAnArray() は false を返します。

<bool>isStreamPersistent <value>which

<void>setStreamPersistent <value>which
	<bool>persistent

シーン ファイルに書き込むときに、指定したストリームが永続的としてにフラグ設定されているかどうかを取得または設定します。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。

<bool>getSaveNonPersistentStream <value>which

<void>setSaveNonPersistentStream <value>which <bool>val

永続的ファイルとしてフラグ設定されていない場合でも、指定したストリームをシーン ファイルに書き込むようにフラグ設定されているかどうかを取得または設定します。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。

<bool>getNoLoadOnSceneLoad <value>which

<void>setNoLoadOnSceneLoad <value>which <bool>val

指定したストリームをシーン ファイルに書き込むときに、シーン ファイルのロード時にロードされないようにフラグ設定されているかどうかを取得または設定します。which パラメータにはストリーム名またはストリームのインデックスを指定できます。指定したストリームが存在しない場合は、例外が発生します。

<void>deleteStream <value>which

指定したストリームを削除します。which パラメータにはストリーム名またはストリームのインデックスを指定できます。

<index> createStream <string>name
persistent:<bool> saveNonPersistentStream:<bool>
noLoadOnSceneLoad:<bool>
persistent default value: true
saveNonPersistentStream default value: true
noLoadOnSceneLoad default value: false

指定した名前およびフラグ値を持つキャッシュ エントリを作成します。エントリの中身は空の文字列になります。同じ名前を持つキャッシュ エントリが既に存在する場合は、例外が発生します。

<void>registerCallback <value>callback_fn
<value>callback_id <enum>event
event enums: {#postLoad|#preSave|#postSave}

対応する CustomSceneStreamManager イベントが発生したときに呼び出されるコールバック関数を登録します。callback_id には名前値を指定する必要があります。コールバック関数には 2 つの引数を指定する必要があります。最初の引数はファイル名で、2 番目の引数は名前値となるイベントのタイプです(#postLoad#preSave、または #postSave)。コールバック関数の実行中に例外が発生した場合は、その関数が自動的に登録解除されます。

<void>unregisterCallbacks callback_fn:<value>
callback_id:<value> event:<enum>
callback_fn default value: undefined
callback_id default value: undefined
event enums: {#postLoad|#preSave|#postSave}
event default value: -1

キーワード引数で指定したすべての値と一致するコールバック関数を登録解除します。

<value>getCallbacks callback_fn:<value>
callback_id:<value> event:<enum>
callback_fn default value: undefined
callback_id default value: undefined
event enums: {#postLoad|#preSave|#postSave}
event default value: -1

キーワード引数で指定したすべての値と一致するすべてのコールバック関数の配列を返します。