次のメソッドは、シーンで使われるビットマップ ファイルのリストを収集します。
ビットマップ値に関連付けられている、ビットマップ ファイルの読み込みと書き込みを含むプロパティとメソッドについては、「ビットマップ値」を参照してください。
enumerateFiles [ <maxwrapper_obj> ] <function> [ <arg> ] \
[#inactive] [#videoPost] [#render] [#missing] \
[#localOnly ] [#skipCustAttributes ] [#skipVPRender] [#firstSubOnly] \
[#skipSubFiles] [#visitOnce] [#useEnumAccessor]
シーンまたは個別のオブジェクトで使用するすべてのビットマップ ファイルに目を通すことができます。ビデオポスト、レンダラー、または非アクティブか足りないものをフィルタすることができます。
エニュメレータは、各ファイル名に 1 度だけ与えられる関数を呼び出すことによって作動し、フィルタに対応するスイッチ、または設定した他の引数を検索します。
必要な引数は <function>
引数です。
詳細は以下のとおりです。
<maxwrapper_obj>
ノードまたはマテリアルなどの、オプションの 3ds Max オブジェクトです。この引数を与えると、エニュメレータはこのオブジェクトに関連するファイルだけを考慮します。詳細については、#localOnly
スイッチを参照してください。
<function>
検索される各ファイルを呼び出す関数です。この関数の引数は 1 つまたは 2 つでなければなりません。最初の引数は、エニュメレータによって提供されるファイル名の文字列です。下の例を参照してください。
<arg>
指定すると、エニュメレータの第 2 引数として <function>
へ渡されます。 特定のエニュメレータで引き渡す引数によって条件付けることができる汎用のエニュメレータ関数がある場合、または検索した名前を追加する配列に引き渡したい場合に有効です。
#inactive
非アクティブ ファイルを含みます。
#videoPost
ビデオポストで使用されるファイルを含みます。
#render
レンダリング中に使用されるファイルを含みます。
#missing
ファイル システムに足りないファイルを含みます。
上記のフィルタ フラグを指定しない場合、すべて のファイルが列挙されます。
#localOnly
<maxwrapper_obj>
引数と連動して使用します。指定すると、列挙されるファイルがオブジェクト内で直接使われるファイルに制限されます。指定しないと、参照オブジェクトがすべてスキャンされて列挙されます。
#skipCustAttributes
カスタム アトリビュートは列挙しません。
#skipVPRender
ビューポート レンダリングだけに必要なファイルは除きます。
#firstSubOnly
見つからないファイルの検索中に、見つからなかった最初のサブ ファイルが見つかった場合は、検索を停止します。これは、アセットにサブ ファイルを使用するオブジェクトに適用されます。たとえば、.ifl ファイルで指定されたビットマップ ファイルや、ポイント キャッシュ モディファイヤで使用されるフレームごとのキャッシュ ファイルなどです。
#skipSubFiles
アセットのサブ ファイルをスキップします。これは、アセットにサブ ファイルを使用するオブジェクトに適用されます。たとえば、.ifl ファイルで指定されたビットマップ ファイルや、ポイント キャッシュ モディファイヤで使用されるフレームごとのキャッシュ ファイルなどです。
#visitOnce
<maxwrapper_obj>
引数と連動して使用します。指定した場合、オブジェクトによって保持されるすべての参照が 1 回スキャンされます。大規模なシーンでは、このオプションを使用すると操作の負荷が大きくなることがあります。
#useEnumAccessor
[アセット トラッキング](Asset Tracking)ダイアログで使用される、代替のアセット記録方式を使用してください。これは主に、オブジェクト EnumAuxFiles
のメソッドをテストするために公開されています。このオプションを使用している場合は、サブ ファイルの処理が異なります。最初のサブ ファイルは常に記録され、その後は失われているサブ ファイルのみが記録されます。
例:
function get_names name a = append a name files = #() enumerateFiles get_names files #missing
次のスクリプトは、現在のシーン ファイルで使われているすべてのビットマップ ファイルをソートしたリストを出力します。
例:
( local mapfiles=#() fn addmap mapfile = ( local mapfileN=mapfile as name local index=finditem mapfiles mapfileN if index == 0 do append mapfiles mapfileN ) enumeratefiles addmap --line 9 sort mapfiles for mapfile in mapfiles do print (mapfile as string) )
9 行目を次のように記述すると、
enumeratefiles addmap #missing
足りないビットマップ ファイルだけが出力されます。