カスタム プロシージャルはコンパイルされた シェーダ プログラム(.dll、.so、.dylib)です。これらを使用すると、Arnold ノードを迅速に作成できます。

単純な Arnold プロシージャルを記述する方法の例については、こちらを参照してください。

MtoA でカスタム プロシージャルをサポートする最良の方法は、MtoA 拡張機能を記述することです。 拡張機能が存在しない場合は、そのプロシージャル用に新しいタイプの Maya ノードを作成できることを MtoA に通知する必要があります。

 

最初に、変数 ARNOLD_PLUGIN_PATH を設定することで、プロシージャルの DLL を Arnold によって認識されるフォルダに配置する必要があります。

このようなプロシージャルを、相当するものが Maya に既に存在する通常のプロシージャルと区別するため、この Arnold ノードに個別のメタデータ「maya.procedural」を設定する必要があります。

 

このメタデータは、次のいずれかの場所に設定できます。

  • プロシージャルの C コード内。この場合、AiMetaDataSetBool(nentry, NULL, "maya.procedural", true);node_parameters 関数に追加します。

 

プロシージャル ライブラリと同じフォルダに配置された別個の ASCII メタデータ .mtd ファイル内。 このファイルは、名前はプロシージャル DLL と同じにして、拡張子を .mtd にする必要があります。 たとえば、ライブラリ「myProc.dll」のメタデータ セットを含むファイルの名前は、「myProc.mtd」となります。 以下に、この設定方法の例を示します。

[node myProc]  
   maya.name    STRING  "myProc"
   maya.procedural  BOOL  true

ここで、「maya.name」は任意で、Maya ノード タイプの名前にすることも可能です。 


このように設定することで、MtoA は、このプロシージャル タイプが Maya で作成できるカスタム プロシージャルであることを認識します。 すると、メニュー「Arnold > Custom Shapes」に表示されるようになります。

 

これにより、プロシージャル内で定義されたすべてのパラメータおよび共通のプロシージャル パラメータを含む新しいノードが Maya に作成されます。

 

このノードをレンダリングまたは書き出しすると、プロシージャルのすべてのアトリビュートが自動的に Arnold に変換されます。

 

 

  • No labels
Privacy settings / Do not sell my personal information / Privacy/Cookies