On this page |
プラグインによって生成されたメッシュに対してマテリアルを割り当てるには、2通りの方法があります:
-
既存のUnrealマテリアルアセットを、アトリビュートで指定する
-
アセットで検出したHoudiniマテリアルに基づいて、プラグインが新しいUnrealマテリアルの生成を試みる
Houdini Engineは、既存のUnrealマテリアルからマテリアルインスタンスを自動的に作成し、そのパラメータをプロシージャルに変更することもできます。
アトリビュート ¶
特殊なUnrealからHoudiniのPrimitiveアトリビュートであるunreal_material
は、特定のプリミティブに適用するUnrealマテリアルアセットを指定することができます。
このアトリビュートは、アセットへのパスを文字列値として含んでいます。
右クリックしてコンテキストメニューの Copy Reference を選択すると、マテリアルアセットへのパスを取得することができます。
また、特定のUnrealマテリアルアセットのマテリアルインスタンスを自動的に作成することもできます。
詳細は、マテリアルインスタンスを参照してください。
物理マテリアルは、unreal_physical_material
アトリビュートを使用して変更できます。
生成 ¶
オプションで、プラグインがHoudiniで適用されたマテリアルと一致するUnrealマテリアルの生成を試みるようにすることも可能です。
マテリアルを割り当てる方法は2つあります:
-
マテリアルネットワークを使用し、マテリアルノードからジオメトリにマテリアルを割り当てる
-
SHOPネットワークと
shop_materialpath
アトリビュートを使用する
マテリアルは、作成されたジオメトリの各プリミティブ/フェースを読み取り、マテリアル毎にUnrealマテリアルを作成します。 パラメータ/タグ付けされたパラメータからUnrealマテリアルの関連チャンネルに、定数値、カラー、テクスチャが生成されます。
以下のテーブルには、Unrealの特定のマテリアルチャンネルで生成されるパラメータ名を載せています。 メッシュのHoudini Materialノードに以下の名前と一致するパラメータがない場合、一致する互換タグを持つマテリアルノードで使用可能ないずれかのパラメータが使用されます。
Unrealマテリアルチャンネル |
Principled Shaderパラメータ |
パラメータ |
互換タグ |
---|---|---|---|
Base Color |
|
|
|
Base Color(テクスチャ) |
|
|
|
Metallic |
|
||
Metallic(テクスチャ) |
|
||
Specular |
|
|
|
Specular(テクスチャ) |
|
|
|
Roughness |
|
|
|
Roughness(テクスチャ) |
|
|
|
Emissive Color |
|
|
|
Emissive Color(テクスチャ) |
|
||
Opacity |
|
|
|
Opacity Mask(テクスチャ) |
|
|
|
Normal(テクスチャ) |
|
|
|
Normal Map Type(接線/ワールド) |
|
Note
ogl_normalmap_type
は、法線マップ(接線vsワールド)の空間を決定します。
パラメータがWorld Spaceに設定されている場合、マテリアルbTangentSpaceNormal
upropertyはFalseに設定されて、法線マップはワールド空間にあります。
設定されていない場合、法線マップは接線空間にあります。
テクスチャはファイルにクックする必要があります。 Houdini Engineによって作成されたテクスチャはクック一時フォルダ (HoudiniEngine/Temp) にあります。 それらをレベルと共に保存するようにしてください。
以下の例は、HDAからマテリアルを生成する方法を示しています:
HDAで生成されたメッシュには、UVが必要です。
-
HDA(matnet)で マテリアルサブネットワーク を作成します。
-
マテリアルサブネットでPrincipled Shaderを作成します。
-
ジオメトリ/SOPレベルで、 マテリアルノード を生成されたジオメトリに追加して、マテリアルサブネットワークのPrincipled Shaderを指します。
Unrealでインスタンス化されると、以下のPrincipled ShaderパラメータがUnrealマテリアルに変換されます:
Unrealマテリアルチャンネル |
Principled Shaderパラメータ |
パラメータ |
互換タグ |
---|---|---|---|
Base Color |
Surface, Basic, Base Color |
|
|
Base Color(テクスチャ) |
Textures, Base Color, Texture |
|
|
Metallic |
Surface, Specular, Reflection, Metallic |
|
|
Metallic(テクスチャ) |
Textures, Metallic, Texture |
|
|
Specular |
Surface, Specular, Reflection, Reflectivity |
|
|
Specular(テクスチャ) |
Textures, Reflectivity, Texture |
|
|
Roughness |
Surface, Roughness, Texture |
|
|
Roughness(テクスチャ) |
Textures, Roughness, Texture |
|
|
Emissive Color |
Surface, Emission, Emission Color |
|
|
Emissive Color(テクスチャ) |
Textures, Emission, Texture |
|
||
Opacity Mask |
Textures, Opacity, Texture |
|
|
Normal(テクスチャ) |
Bumps & Normals, Base, Texture Path |
|
|
Normal Space |
Bumps & Normals, Base, Vector Space |
|
|
マテリアルインスタンス ¶
特定のUnrealマテリアルアセットからマテリアルインスタンスを自動的に作成することができます。
-
unreal_material_instance
Primitiveアトリビュートを割り当てます。 -
パラメータの文字列値には、マテリアルアセットへのパスを使用します。
-
パスを取得するには、アセットを右クリックして Copy Reference を選択します。
クック時、ソースのUnrealマテリアルの新しいマテリアルインスタンスが クック一時フォルダ に作成されて、生成されたジオメトリに割り当てられます。
ランドスケープでは、Landscapeマテリアルにはunreal_material_instance
、穴マテリアルにはunreal_material_hole_instance
を使用します。
マテリアルインスタンスパラメータ ¶
マテリアルインスタンスを使用して、アトリビュートのマテリアルパラメータを制御および変更することができます。
汎用unreal_material_parameter_
接頭辞でマテリアルパラメータを変更します。これは、汎用UPropertyアトリビュートのように動作します。
-
unreal_material_parameter_
で始まるDetailまたはPrimitiveアトリビュートを追加します。 -
スペースなしで、マテリアルパラメータの名前を追加します。
デフォルトでは、このオーバーライドは、この名前と一致するパラメータを持つすべてのマテリアルに適用されます。
必要であれば、マテリアルパラメータ名の前にINDEX_
(INDEX
はマテリアルスロットのインデックス)を追加することで、このオーバーライドを適用するマテリアルスロットのインデックスを指定することができます。
これは、unreal_material_instance
値の前に対応するマテリアルインデックスが追加されている場合にのみ機能します。
そうでない場合、各マテリアルのインデックスは、unreal_material_instance
値のリストで最初に表示されるマテリアルに合わせて設定されます。
このシステムは、マテリアルインスタンス(BlendMode
、PhysMaterial
、TwoSided
)の作成時にUnrealによって常に生成される標準マテリアルパラメータだけでなく、
マテリアルによって定義されるscalar、vector、またはtextureパラメータをエクスポーズさせる(アクセス可能にする)カスタムマテリアルパラメータに対しても機能します。
クックの際は、オーバーライドして、指定した値に設定します。
これは、Unrealによって生成される標準マテリアルパラメータと、scalar
、vector
、またはtexture
パラメータをエクスポーズする(アクセス可能にする)カスタムマテリアルパラメータの両方に対して機能します。
例えば、次のようになります:
-
Diffuse Boost パラメータを2.0に設定するには、
unreal_material_parameter_diffuseboost
Detailアトリビュートをアセットに追加し、その値を2.0(Floatアトリビュート)に設定します。 -
Blend Mode パラメータをデフォルトのOpaque値からAdditiveに変更するには、
unreal_material_parameter_blendmode
Detailアトリビュートをアセットに追加して、その値を Additive (文字列アトリビュート)または3(浮動小数点または整数アトリビュート)に変更します。 -
マテリアルで作成したカスタム My Color Vectorパラメータを変更するには、
unreal_material_parameter_mycolor
Detailアトリビュートを追加して(タプルのサイズが4のFloatパラメータは)、その値を目的のカラー値(真っ赤なら(1.0, 0.0, 0.0, 1.0))に設定します。
このシステムは、現在4種類のマテリアルパラメータをサポートしています:
-
Scalar
パラメータは、単一のタプルアトリビュート(FloatまたはInteger)で制御することができます。 -
Vector
パラメータは、タプルサイズが4または3のFloatまたはIntegerアトリビュートで制御されます。FloatアトリビュートはUnrealでFLinearColorと見なされますが、IntegerアトリビュートはUnrealでFColorとして解釈されます。 -
Enum
パラメータ(Blend Modeなど)は、enumのstring値またはintのinteger値(ゼロから開始)のいずれかを使用して設定することができます。 -
Texture
パラメータは、文字列アトリビュートで変更することができます。既存のUnrealテクスチャアセットを使用するには、アセットのUnrealパスを使用できます(アセットを右クリックし、Copy Referenceを選択して取得します)。
現行のHoudiniアセットで生成されるテクスチャを使用するには、以下の2つのオプションがあります:
-
単一のマテリアルでは、アトリビュートをマテリアルチャンネル(basecolor(またはdiffuse)、normal、specular、roughness、emissive、metallic、opacitymask)に設定します。
-
複数のマテリアルの場合は、マテリアルを生成するSHOPノード(またはPrincipled Shaderノード)への相対パスを目的のチャンネルの前に追加します。例えば、 testgeometrysquab1/shopnet1/SquabSkin/diffuse のようになります。これはアセットノードへの相対パスです。