Arnold には、独立したテキスト ファイルを使用するノードおよびアトリビュートのメタデータ仕様のサポートが含まれています。
Arnold ノードを実装する各ライブラリには関連するメタデータ ファイルが存在します。それらはライブラリと同じファイル名を持ち、拡張子は「mtd」です。たとえば、mtoa_shaders.dll というライブラリには、対応する mtoa_shaders.mtd があります。これらのメタデータ ファイルは、ライブラリが初めてロードされるときに自動的にロードされます。特殊なケースとして、ビルトインの Arnold ノードの場合、このライブラリはプラットフォームごとに異なる名前があるため、メタデータ ファイル名は arnold.mtd になります。
また、必要に応じてロードすることができる追加のメタデータ ファイルもあります。これらのファイルは、ai_metadata.h (または、Python の場合は ai_metadata.py)で提供される API 関数を使用してロードできます。
AI_API bool AiMetaDataLoadFile(const char* filename);
このファイルは、たとえば値をオーバーライドしたり、追加のメタデータをビルトイン ノード(Arnold ビルトインの場合は、MtoA など)に追加したりするために使用できます。
最後に、サードパーティのプラグイン開発者は、メタデータ ファイルをそのライブラリとともにファイルに組み込むことができます。このファイルの名前はライブラリと同じで、拡張子は「mtd」です。このメタデータ ファイルには、すべてのプラグイン(現時点では、MtoA)の情報を含めることができるため、同じファイルをすべてのプラグインに利用できます。
メタデータ ファイルの形式は次の通りです。
# Arnold test metaData file
[node wireframe]
desc STRING "This shader can be used to display the edge structure of a geometry."
[attr line_width] min INT -3
max INT 100
softmin INT 0
softmax INT 1
desc STRING "Sets width of the lines used to display edges."
[attr fill_color] desc STRING "Color used for the faces."
[attr line_color] desc STRING "Color used for the lines used to display edges."
[attr raster_space] desc STRING "Uses screen space to measure line width."
[attr edge_type] desc STRING "Selects base geometry element for edge display."
[attr example] maya.test1 FLOAT -0.63
maya.test2 BOOL true
maya.test3 BOOL 0
maya.test4 RGB 0 1 0
maya.test5 POINT2 -1 489
maya.test6 INT 0x09ABCDEF
ファイル内に任意の数のノードを指定できます。また、同じノードに複数のノード セクションを含めることができます(メタデータはファイル内で見つかった順序で適用されます)。
慣例的に、Maya 固有のメタデータには、「maya.」で始まるメタデータ名を使用し、XSI 固有のメタデータには、「xsi.」を使用しています。個別のドキュメントにパブリッシュされる標準のメタデータ要素には、他にいくつかの規則があります。
MtoA 固有のメタデータについては、「Maya のシェーダを作成する」を参照してください。