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