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

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

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

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

サポートされている演算は次のとおりです。

findItem < MSCustAttribArray > < cust_attrib >     

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

< MSCustAttribArray > [< integer > | < cust_attrib_name >]

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

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

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

注:

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

append < MSCustAttribArray > < cust_attrib >   

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

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

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

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

<MSCustAttribArray>.owner

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

次に例を示します。

t = teapot()
cac = t.baseobject.custAttributes
o = cac.owner
--> Teapot
o == t
--> true

次のトピック

マテリアルとテクスチャ マップのカスタム アトリビュート