Each render engine procedural takes care of transferring the agent metadatas onto the render meshes, this process adds an 各レンダリングエンジンの手続きは、エージェントメタデータをレンダリングメッシュに転送するように処理します。このプロセスは、すべてのメタデータ名に接頭辞 "atoms_" prefix to all metadata names. You can use these metadatas from within shaders to have better control over your agent variations at render time.
For instance, you can create an agent group with an addMetadata module. In the addMetadata options set "myColor" as name for your metadata, the type to "vector" and then open the the agent override dialog to set random values on your agents.
Go back to your variation scene. Create a simple renderman pxrsurface shader and connect a pxrattribute node to the diffuse color. Set the "variable name" attribute to "atoms_myColor" and the type to vector.
Assign this material to all your meshes and re-export the variations with the variation builder (make sure to select renderman as target render engine).
In your simulation scene, import your variations again and set the variations onto your agents. Once you will render, you will see a render similar to the picture on the right, where the shader color is taken from the myColor metadata
(the addMetadata module should still be applied on your agent group and set up as explained above).
This can be done also in Arnold using the aiUserDataVectorを追加します。シェーダ内から、これらのメタデータを使用して、レンダリング時にエージェントのバリエーションをより適切に制御することができます。
例えば、AddMetadataモジュールを使用してエージェントグループを作成できます。AddMetadataオプションで、メタデータの名前として「myColor」を設定し、タイプを「Vector」に設定した後、エージェントのOverride Dialogを開いてエージェントにランダムな値を設定します。
バリエーションシーンに戻ります。簡易的なRenderMan Pxrsurfaceシェーダを作成し、PxrattributeノードをDiffuseカラーに接続します。 「Variable name」アトリビュートを「atoms_myColor」に設定し、Vector型に設定します。
こちらのマテリアルをすべてのメッシュに割り当て、Variation Builderを使用してバリエーションを再エクスポートします(必ずターゲットのレンダリングエンジンとしてRenderManを選択してください)。
シミュレーションシーン内で、バリエーションをもう一度インポートして、バリエーションをエージェントに設定します。レンダリングすると、右側の図のように、myColorメタデータからシェーダカラーが取得されるレンダリングが表示されます(AddMetadataモジュールは、引き続きエージェントグループに適用され、上記のように設定されます)。
これは、ArnoldでaiUserDataVector / Int / Float / ... node or in V-Ray using a VrayUserColor node.ノードを使用して、またはV-RayでVrayUserColorノードを使用しても実行できます。