アトリビュート パターン を使用して、ダイナミックまたは拡張子アトリビュートを作成することができます。 アトリビュート パターンとは、特定のノード、あるいはノード タイプに追加することができるダイナミックまたは拡張子アトリビュートについて記述したものです。 この機能を使用すると、addAttr または addExtension コマンドを個別に使用して各アトリビュートを作成する必要がなくなます。
この機能は pyJsonAttrPatternFactory.py プラグインによってサポートされます。
この機能を使用するには、まずパターン ファイルを作成します。 パターン ファイルは、ノードまたはノード タイプに追加されるアトリビュートをリストし、使用するプラグインによって定義されるどのフォーマットにも対応しています。 Maya プラグイン pyJsonAttrPatternFactory.py は、.json フォーマットをサポートします。 オプションとして、パターン ファイルの構文を記述するスキーマ ファイルを含めることもできます。
パターンは、applyAttrPattern コマンドを通じてノードまたはノード タイプにコピーされるアトリビュートを単に記述したものです。
パターン タイプにはプラグインによって定義されるものがあり、それらはプラグインがアンロードされない限り削除されません。
1 つのパターン ファイルは複数のパターンを含むことができ、パターンはそれぞれ複数のアトリビュートを含むことができます。 パターンを適用する場合は、サブセットではなくそのアトリビュートのすべてが適用されます。 サンプル スキーマ ファイルについては attrPatternSchema.json を、Developer Kit インストールの devkit/plug-ins/scripted ディレクトリのサンプル パターン ファイルについては sampleAttrPatterns.json を参照してください。
Developer Kit は、オートデスク デベロッパー ネットワークから入手できます。Developer Kit アーカイブをローカル ディレクトリにコピーして解凍し、フォルダを Maya インストール ディレクトリにコピーします。Maya Developer Kit のインストールとセットアップ方法については、「Maya 開発者ヘルプ」の「ビルド環境を設定する」セクションを参照してください。
パターン ファイルにリストされたパターンのセットを作成するには createAttrPatterns コマンドを使用します。 続いて、applyAttrPattern コマンドを使用し、パターン ファイルのいずれかのパターンにリストされたアトリビュートをノードまたはノード タイプにアタッチします。 applyAttrPattern コマンドを使用すると、ダイナミック アトリビュートまたは拡張子アトリビュートのどちらを作成するかを決定することができます。 コマンドの後にノード名をリストすると、ダイナミック アトリビュートが作成されます。 -nt フラグを使用してノード タイプをリストすると、拡張子アトリビュートが作成されます。
利用可能なパターン インスタンスおよびパターン タイプをリストするには listAttrPatterns コマンドを使用します。
パターンを使用してノードにアトリビュートを適用した後、アトリビュートはパターンに関連付けされなくなり、deleteAttrPattern コマンドではなく deleteAttr または deleteExtension コマンドによってのみ削除することができます。
アトリビュート パターンを使用してダイナミックまたは拡張子アトリビュートを作成するためのワークフロー アウトライン
この機能の簡単なサンプル アプリケーションを以下に示します。
[ { "name" : "samplePattern", "attributes" : [ { "name" : "sampleAttr", "defaultValue" : 0.0, "attributeType": "float" } ] } ]
loadPlugin pyJsonAttrPatternFactory.py;
createAttrPatterns –pt “json” –pf “yourfile.json”;
createNode addMatrix; // Result: addMatrix1 // listAttrs; // Result: [the addMatrix attributes] //
applyAttrPattern –pn “samplePattern” “addMatrix1”;
ダイナミック アトリビュート sampleAttr が追加されます。
listAttrs; // Result: [the addMatrix attributes] sampleAttr //