Maya Metadata API を使用して、任意の Maya ノードや、Maya メッシュ オブジェクトのコンポーネント(頂点、フェース、エッジ、頂点フェース)に直接アタッチできる任意の数のメタデータ構造を作成できます。メタデータは Maya シーン全体に追加することもできます。この場合は、特定のノードにメタデータをアタッチする必要がありません。小規模な MEL コマンド セットを使用して、Maya 内からメタデータにアクセスできます。
Metadata クラスを使用すると、コンポーネントレベルのメタデータのデータ構造を作成し、そのデータ構造を 1 つのデータ ストリームに統合できます。これにより、メタデータを Maya DG の操作でフローさせながら、ノードへのアタッチを維持できます。これには、コンストラクション ヒストリを持つメッシュ ノードにコンポーネントレベルのメタデータを追加することが含まれます。メタデータは任意に指定された関連付けであらゆるノードにアタッチできるため、メタデータをポイント クラウドのポイント、シミュレーションのパーティクル、または NURBS サーフェス上の頂点にアタッチするなどの目的で、API を拡張することができます。メタデータは、MEL コマンドや API を介して後で調査や修正を行うことが可能であり、セッション全体を通して Maya ファイルに保存されます。adsk::Data::Association クラス リファレンスの例は、頂点の速度と加速データをシミュレーション メッシュに格納する方法を示しています。Maya API マニュアルを参照してください。
メタデータのインデックス値はコンストラクション ヒストリを通じて変更されません。メッシュ トポロジが変更された場合、メッシュ コンポーネント メタデータが元のコンポーネントに関連付けられなくなる場合があります。コンストラクション ヒストリを微調整してこのことが原因の問題を修正するために、editMetadata コマンドが役立ちます
Metadata API には、adsk::Data::Association 、adsk::Data::Channel、adsk::Data::Stream、adsk::Data::Structure、adsk::Data::Handle などの一般的によく使用されるクラスが含まれています。
Association、Channel、Stream、Structure にはそれぞれ、クラスのすべてのメンバーのウォークスルーを容易にするための対応する XXIterator クラスがあります。
Maya で次の MEL コマンドを使用することにより、Metadata API から作成されたデータ構造にアクセスし、それらを操作することができます。
このコマンドはコンストラクション ヒストリを持つノードで使用することができます。コンストラクション ヒストリを持つメッシュ ノードでは、既存のメタデータへの変更はメッシュ ノードに直接適用されず、editMetadata ノードが作成されてその中に変更が含まれます。
引き続き、ヒストリ ノードのメタデータを編集することもできます。この場合、編集はメッシュ ノードに直接適用され、editMeta ノードは作成されません。
その他のインデックス タイプを使用する場合は、Maya API を介してプラグイン経由で実装することができます。メタデータ コマンドはネイティブのインデックス タイプが表示さるすべての場所で、実装したタイプを使用することができます。