アトリビュート定義値には直接アクセスできるプロパティがあります。
<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
プロパティを使って取得されます。次のトピック