インタフェース: FileResolutionManager

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

 

   

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

FileResolutionManager コア インタフェースによって、3ds Max 2010 で導入された新しいシステムが公開されています。これはプラグインがファイル アセットのパスの解決のために内部で使用するためのものです。

   

3ds Max 2010 より前のリリースでは、アセット ファイルの解決はプラグインのコードでローカルに実行されるか、3ds Max が提供するメソッドの 1 つを使用して行われていました。

3ds Max 2010 以降、アセット ファイルの解決はすべて、新しいアセット ファイル解決マネージャを使用するAssetUser オブジェクトで実行する必要があります。このファイル解決マネージャは、アセットの解決にも使用できます。その他の解決メソッドはすべて削除されました。また、プラグインにファイル アセットのパスを解決するための独自のルールを実装することは推奨されません。ファイル解決はアセット ファイル名、アセット タイプ、およびそのアセットに依存するシーンのファイル パスに基づいています。

ファイル解決マネージャは、パスのキャッシュ メカニズムも備えています。プラグインおよびスクリプトで、キャッシュの有効/無効状態、キャッシュ期間の制御を行ったり、解決されたパスを取得するときにキャッシュをバイパスするのに使用できる一連のメソッドが公開されています。

   

メソッド:

<bool>FileResolutionManager.getFullFilePath <&TSTR>filePath <enum>assetType byPassCache:<bool> 	 

filePath is In and Out parameter 	 
assetType enums: {#Other | #Bitmap | #XRef | #Photometric | #Animation | #VideoPost | #BatchRender | #ExternalLink | #RenderOutput | #PreRenderScript | #PostRenderScript | #Sound | #Container | #MaxCreationGraph} 	 
byPassCache default value: false

1 番目の参照渡しの引数を変更することにより、ファイルのフル パスを返します。2 番目の引数はファイルが属するアセット タイプを指定します。

byPassCache: に true が渡された場合、キャッシュは使用されません。false が渡されるか何も指定されなかった場合には、キャッシュが使用されます。

例:

theFilename = "Simple_Stone_Mtl_Marble_bump.jpg"
--> "Simple_Stone_Mtl_Marble_bump.jpg"
 
FileResolutionManager.getFullFilePath &theFilename #Bitmap
--> true
 
theFilename
--> "C:\Program Files\Autodesk\3ds Max 2010\Maps\adskMtl\Simple_Stone_Mtl_Marble_bump.jpg"

   

<bool>FileResolutionManager.getFullFilePath_assetID <TSTR>assetID <&TSTR>filePath byPassCache:<bool> 

filePath is In and Out parameter 
byPassCache default value: false 

2 番目の参照渡しの引数を変更することにより、ファイルのフル パスを返します。1 番目の引数は検索する assetID を指定します。

byPassCache: に true が渡された場合、キャッシュは使用されません。false が渡されるか何も指定されなかった場合には、キャッシュが使用されます。

例:

theID = AssetManager.GetAssetID "Simple_Stone_Mtl_Marble_bump.jpg" #Bitmap
--> "{7477A3A4-0304-47AC-8427-6B490673231A}"
 
FileResolutionManager.getFullFilePath_assetID theID &filePath
--> true
 
filePath
--> "C:\Program Files\Autodesk\3ds Max 2010\Maps\adskMtl\Simple_Stone_Mtl_Marble_bump.jpg"

   

<void>FileResolutionManager.doGetUniversalFileName <&TSTR>aFullFilePath 

aFullFilePath is In and Out parameter 

参照引数を変更することにより、ユニバーサル ファイル名を返します。

   

<integer>FileResolutionManager.GetNumAssetTypes() 

アセット タイプの数を返します。

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

   

<string>FileResolutionManager.GetAssetTypeString <enum>assetType 

assetType enums: {#Other | #Bitmap | #XRef | #Photometric | #Animation | #VideoPost | #BatchRender | #ExternalLink | #RenderOutput | #PreRenderScript | #PostRenderScript | #Sound | #Container | #MaxCreationGraph} 

指定されたアセット タイプ名に対応するアセット タイプ文字列を返します。

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

   

キャッシュ

ファイル解決の結果はキャッシュされますが、キャッシュされた結果は指定された最大キャッシュ期間が経過した後、期限切れとなります。

<void>FileResolutionManager.EnableCaching() 

キャッシュをオンにします。

キャッシュは既定値でオンです。

ファイル解決はキャッシュされ、最大キャッシュ期間が経過する前に同じファイルの解決を行う必要があれば、キャッシュされた結果が返されます(下を参照)。

   

<void>FileResolutionManager.DisableCaching() 

キャッシュをオフにします。

ファイルはキャッシュを使用せずに解決されます。

   

<bool>FileResolutionManager.IsCachingEnabled() 

キャッシュがオンの場合は true、オフの場合は false を返します。

キャッシュは既定値でオンです。

   

<DWORD>FileResolutionManager.GetMaximumCacheDuration() 

最大キャッシュ期間をミリ秒単位で返します。既定値は 1000 です。

ファイル解決がキャッシュされ、その解決の時間から最大キャッシュ期間が経過した後に同じファイルの解決が新たに要求された場合には、キャッシュの結果は無視されて新たに解決が実行されます。

最後に解決してから経過した時間が最大キャッシュ期間内である場合には、キャッシュされた結果が返されます。

   

<void>FileResolutionManager.SetMaximumCacheDuration <DWORD>newMaxDuration 

最大キャッシュ期間を設定します。

   

<INT64>FileResolutionManager.GetNumCacheHit() 

キャッシュ ヒット数を返します。

   

関連事項