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

MAXScript のカスタム アトリビュートが、ノードやシーンのルートノードを含むあらゆるタイプの MAX オブジェクトに適用されるようになりました。ただし、カスタム アトリビュートに関連するロールアウトは、マテリアル、モディファイヤ、および基本オブジェクトに対してのみ表示されます。

.custAttributes プロパティは、3ds Max 5.1 で MAXWrapper に追加されました。ここには、オブジェクトに割り当てられたカスタム アトリビュートの仮想配列が含まれています。この仮想配列上では、join および sort を除き、標準の配列メソッドと演算を実行できます。

仮想配列のクラスは MAXCustAttribArray です。

サポートされているメソッド

findItem <MAXCustAttribArray> < cust_attrib >     

指定された仮想配列内で所定のカスタム アトリビュートを検索します。

<MAXCustAttribArray> [< integer > | < cust_attrib_name >]

インデックスまたは名前によってカスタム アトリビュートを取得します。

<MAXCustAttribArray> [< integer > | < cust_attrib_name >] = < cust_attrib >

インデックスまたは名前によってカスタム アトリビュートを設定します。

注: NULL または未定義の値は MAXCustAttribArray 内には保存できません。したがって、既存のカスタム アトリビュートの数を上回るインデックスによる書き込みを実行すると、カスタム アトリビュートが MAXCustAttribArray に追加されます。
append <MAXCustAttribArray> < cust_attrib >   

仮想配列の末尾にカスタム アトリビュートが追加されます。

deleteItem <MAXCustAttribArray> (< cust_attrib > | < cust_attrib_name >)

カスタム アトリビュートかその名前を指定することで、カスタム アトリビュートを仮想配列から削除します。

MAXCustAttribArray にマップすることもできます。

<MAXCustAttribArray>.owner

このカスタム アトリビュート配列の所有者を返します。3ds Max 2019.3 Update 以降で使用可能です。

isDeleted <MAXCustAttribArray>

仮想配列が削除された場合はtrueを返します。所有者が削除された場合、MAXCustAttribArray は削除されたとみなされます。

サポートされている演算子

<MAXCustAttribArray> == <MAXCustAttribArray>
<MAXCustAttribArray> != <MAXCustAttribArray>

標準の比較演算子です。これらは、同じ要素が含まれているかどうかにかかわらず、アトリビュート コンテナを比較することに注意してください。

次に例を示します。

t = teapot()
--> $Teapot:Teapot001 @ [0.000000,0.000000,0.000000]
cac = t.custAttributes
--> #CustAttribs()
cac.owner
--> $Teapot:Teapot001 @ [0.000000,0.000000,0.000000]
delete t
isDeleted t
--> true
isDeleted cac
--> true