IObject:AssetUser

このクラスのインスタンスには、アセット ファイル名、タイプ、このインスタンスに依存する 3ds Max シーンファイル(外部参照の解決に使用されます)に関する情報が含まれます。アセットへのアクセスおよびアセットの寿命管理は、アセット マネージャによって処理されます。

3ds Max 2010 より前のバージョンでは、外部ファイル(アセット)を参照したプラグインがそのアセットのファイル名を文字列またはパス オブジェクトとして保持し、このファイル名を 3ds Max シーン ファイルに文字列または IParameterBlock2 TYPE_FILENAME パラメータとして格納していました。プラグインによって使用されるアセットを 3ds Max が識別できるようにするために、プラグインは IAssetAccessor から派生するクラスを実装します。このクラスから提供される情報は、主にアセット トラッカーによって使用されます。

アセットのロードおよび 3ds Max シーン ファイルへの保存は、AssetUser および AssetManager を介して行われるようになりました。

コンストラクタ:

AssetUser クラスのインスタンスは、AssetManager インタフェースによって公開されるメソッドによって戻されます。

    AUIO = AssetManager.GetAssetByIndex1
    --> <IObject:AssetUser>
    AUIO2= AssetManager.GetAsset "Simple_Stone_Mtl_Marble_bump.jpg" #bitmap
    --> <IObject:AssetUser>

MAXScript ファイル名文字列を、自動的に AssetUser インスタンスに強制することができます。

    --Create a new bitmap texture map with a valid file name:
    bmt = bitmaptexture filename:"Simple_Stone_Mtl_Marble_bump.jpg"
    --> Bitmaptexture:Bitmap
    bmt.filename --get the bitmap's file name
    --> "Simple_Stone_Mtl_Marble_bump.jpg"
    AUIO3 = bmt.filename as AssetUser --get the file name as AssetUser IObject
    --> <IObject:AssetUser>
    AUIO3.getFileName()
    -->"Simple_Stone_Mtl_Marble_bump.jpg"
    AUIO3.getType()
    --> #Bitmap

IObject:AssetUser インタフェース

Interface: AssetUser

メソッド:

<string><AssetUser>.GetAssetId()   

アセットの AssetID を返します。

<enum><AssetUser>.GetType()

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

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

<string><AssetUser>.GetFileName()

アセットのファイル名を返します。

<boolean><AssetUser>.CanGetFullFilePath <&string>fileName

fileName is Out parameter         

.GetFullFilePath() メソッドを使用して完全なファイル パスを取得できる場合は true を返します。

<string><AssetUser>.GetFullFilePath()

アセットの完全なファイル パスを返します。

<void><AssetUser>.Reset()

アセットの基本参照を削除して、他のどのオブジェクトからも参照されなくなった場合に、ガベージ コレクションを実行できるようにします。 この処理が完了したら、AssetUser でこのメソッドを呼び出すことをお勧めします。3ds Max 2018 以降で使用可能です。

例:

    AUIO = AssetManager.GetAssetByIndex 2 --get the AsserUser with index 2
    --> <IObject:AssetUser>
    AUIO.GetFileName() --get the file name - it is not full file name
    --> "Simple_Stone_Mtl_Marble_bump.jpg"
    AUIO.CanGetFullFilePath (AUIO.GetFileName()) --can we get the full name?
    --> true
    AUIO.GetFullFilePath() --then let's get it!
    --> "C:\Program Files\Autodesk\3ds Max 2010\Maps\adskMtl\Simple_Stone_Mtl_Marble_bump.jpg"