カスタム アトリビュートのアトリビュート定義値

アトリビュート定義値には直接アクセスできるプロパティがあります。

<def>.name

記述名を取得および設定します。

<def>.version

読み込み専用、定義のバージョン。

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

<def>.source

読み込み専用、定義用のソース コードです。

<def>.defData

ユーザ指定の def データ値を取得および設定します。

<def>.attribID

読み込み専用、def の attribID を含む 2 つの要素の配列

custAttributes.getDefSource <attrib_def>

アトリビュート定義用のソース コードを文字列として返します。

custAttributes.getOwner <attrib_def>

カスタム アトリビュートが適用されるオブジェクトを返します。

custAttributes.getDefClass <attrib_def>

attrib_def に関連する MAXClass を返します。

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

従来、Avguard 機能拡張として提供されていた機能です。

custAttributes.getDefInstances <attrib_def>

attrib_def の MSCustAttrib インスタンスの配列を返します。

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

従来、Avguard 機能拡張として提供されていた機能です。

custAttributes.setDefData <def> <data>

ユーザ指定のデータをアトリビュート定義に追加します。

ここで指定する<data >値は定義とともに持続的に保存され、シーンのロード時にこの定義のアトリビュート セットを含めてロードされます。

custAttributes.getDefData <attrib_def>

保存されたユーザ指定のデータを返します。

custAttributes.getPBlockDefs <attrib_def>

custAttributes 定義内のすべてのパラメータ ブロック定義のランタイム読み込み可能エンコーディングを含む配列を返します。

この配列は次の形式で表されます。

#(<paramblock>, <paramblock2>, ...)
<paramblock>

1 つのパラメータ ブロックの詳細の配列。形式は次のとおりです。

#(<name>, <id>, <refno>, <keyword_params>, <parameter1>, <parameter2>, <parameter3>, ....)   <id>

パラメータ ブロックの内部 ID 番号

<refno>

所有するプラグイン インスタンス内のパラメータ ブロックの参照番号

<keyword_params>

パラメータ ブロック定義に指定したキーワード パラメータの配列。形式は次のとおりです。

#(<keyword>, <value>, <keyword2_name>, <value2>, ...) <Parameter1 to ParameterN

ブロック内の各パラメータの定義の詳細は、次の形式になります。

#(<param_name> <keyword_params>)
<keyword_params>

カスタム アトリビュート定義内の該当のパラメータの定義に指定したすべてのキーワード パラメータを含む配列。形式は上記の <keyword_params> と同じです。

カスタム アトリビュートから pBlock データを抽出する関数を示します。

    mapped fn custAttribute_showPBlockDefs obj =
    (
      format "%\n" obj.name
      for objDef in (custAttributes.getDefs obj) do
      (
        format "\t%\n" objDef
        format "\tname: %\n" objDef.name
        format "\tattribute id: %\n" objDef.attribID   
        format "\tParameter Blocks:"
        pbArray = custAttributes.getPBlockDefs objdef
        for a = 1 to pbArray.count do
        (
          itms = pbArray [a]   
          format "\n\t\tname = %\n" itms[1]
          format "\t\tid = %\n" itms[2]
          format "\t\towners reference number = %\n" itms[3]
          keywordParams = itms[4]
          format "\t\tparameter block keywords:\n"
          for x = 1 to keywordParams.Count/2 do
          (
            format "\t\t\t% = %\n" keywordParams[x] keywordParams[x+1]
            x = x+1
          )
          format "\t\tparameters:"
          for y = 5 to itms.Count do
          (
            format "\n\t\t\t#name = %\n" itms[y][1]
            for z = 1 to itms[y][2].Count by 2 do
            (
              format "\t\t\t% = %\n" itms[y][2][z] itms[y][2][z+1]
            )
          )
        )
      )
    )
custAttributes.getSceneDefs ()

現在のシーン内のアトリビュート定義すべての配列を返します。

custAttributes.deleteDef <attrib_def>

現在のシーンと現在実行中の 3ds Max セッションから、指定したアトリビュート定義を削除します。この定義を使って追加されたカスタム アトリビュートを含むシーンには、オブジェクトは存在しません。

注: この名前は、.name プロパティを使って取得されます。

次のトピック

カスタム アトリビュートの仮想配列へのアクセス