On this page |
Unityマテリアルは、2通りの方法でHoudiniアセットのメッシュ出力に割り当てることができます:
-
既存のUnityマテリアルを By Attribute(アトリビュートで) 指定して使用する
-
アセットで見つかったHoudiniマテリアルに基づいて、プラグインに新しいUnityマテリアルを Generate(生成) させる
これらの生成されたマテリアルまたは自動的に割り当てられたマテリアルは、Unityでマテリアルを手動で割り当てることで、上書きすることも可能です(マテリアルオーバーライドを参照)。
Houdini 18.5.554の時点では、プラグインはHDRP/URPマテリアルの生成も試みます。 これらのマテリアルは相当するBIRPとよく似たものとなっており、現在サポートされているすべてのチャンネルはHDRP/URPでも動作するはずです。 HDRPプロジェクトがある場合、URPシェーダのデシリアライズおよびシリアライズに関して致命的でないエラーが発生する可能性があります。 このエラーは無視しても問題ありません。 または、使用していないレンダリングパイプラインのシェーダーグラフをインポートしないようにすることもできます(HDRPを使用している場合はURPフォルダを、URPを使用している場合はHDRPフォルダを削除します)。
By Attribute(アトリビュートで) ¶
特殊なUnity to Houdiniプリミティブアトリビュートであるunity_material
を使用すると、特定のプリミティブに適用する既存のUnityマテリアルを指定することができます。
Unityメッシュを生成する際、割り当てられたプリミティブマテリアルアトリビュートの一意のセットが収集され、マテリアル毎にサブメッシュが作成されます。
その後、マテリアルは出力GameObjectのMeshRendererコンポーネントの マテリアル に割り当てられます。
unity_material
アトリビュートには、 Assets/ フォルダからのアセットの相対パスを文字列値として指定します(例えば、 Assets/Materials/Red.mat )。
マテリアルが割り当てられていないプリミティブには、デフォルトのマテリアルが自動的に作成されます。
Generate(生成) ¶
プラグインは、Houdiniで適用されたマテリアルと同様のプロパティを持つUnityマテリアルを生成しようと試みます。 これは、 HoudiniEngineUnity/Shaders/ プラグインディレクトリから同梱されているシェーダの1つを使用して新しいUnityマテリアルを作成し、関連するSHOPまたはVOPノード上のパラメータ値を読み込み、それらをマテリアルに割り当てることで行なわれます。
テクスチャは、パラメータ名またはタグを通じて接続されたチャンネルから関連するデータをコピーすることで生成されます。 同様に、各チャンネルの定数値も検出されます。
チャンネル |
パラメータ/タグ |
---|---|
Diffuse |
ogl_diff, basecolor, ogl_tex1, basecolor_texture |
Opacity |
ogl_alpha, opac, ogl_opacitymap, opaccolor_texture, ogl_transparency |
Normal |
ogl_normalmap, baseNormal_texture |
Specular |
ogl_spec, reflect, ogl_specmap, reflect_texture |
Roughness |
ogl_rough, rough, ogl_roughmap, rough_texture |
Metallic |
ogl_metallic, metallic, ogl_metallicmap, metallic_texture |
Emission |
ogl_emit, emitcolor, ogl_emissionmap, emitcolor_texture |
Occlusion |
ogl_occlusionmap |
生成されるマテリアルとテクスチャは、Unityが保存されたシーンやPrefabで参照を続けられるよう、永続的なファイルとして作成する必要があることに注意してください。 これらのファイルは、ベイクされていないアセットの場合は Assets/HoudiniEngineAssetCache/Working フォルダに、ベイクされたアセットの場合は Assets/HoudiniEngineAssetCache/Baked フォルダに保存されます。
Plugin Settingsウィンドウの GEOMETRY セクションでデフォルトのシェーダパスを変更すると、同梱されているシェーダを使用する代わりに、カスタムシェーダを使用してマテリアルを生成することができます。
マテリアルオーバーライド ¶
ユーザは、Unityマテリアルを手動で割り当てることで、生成または自動的に割り当てられたマテリアルを置き換えることができます。 これを行なうには、出力GameObjectを選択し、そのMeshRendererのマテリアルを置き換えます。 上書きされたマテリアルは、生成されたマテリアルが変更された場合でも、それ以降のクックで 保持 されます。 再び生成されたマテリアルを使用するためには、Houdini Engine UIで ASSET OPTIONS セクションを開き、 Reset Material Overrides ボタンを押します。