Houdini 20.5 Unreal

マテリアル

On this page

プラグインによって生成されたメッシュに対してマテリアルを割り当てるには、2通りの方法があります:

Houdini Engineは、既存のUnrealマテリアルからマテリアルインスタンスを自動的に作成し、そのパラメータをプロシージャルに変更することもできます。

アトリビュート

特殊なUnrealからHoudiniのPrimitiveアトリビュートであるunreal_materialは、特定のプリミティブに適用するUnrealマテリアルアセットを指定することができます。 このアトリビュートは、アセットへのパスを文字列値として含んでいます。 右クリックしてコンテキストメニューの Copy Reference を選択すると、マテリアルアセットへのパスを取得することができます。

送信されたメッシュに2つ以上のマテリアルがあった場合、unreal_materialアトリビュートの値の頭には、大括弧の中にマテリアルスロット番号が入った文字列が付きます。例:

[0]/Script/Engine.Material'/Game/StarterContent/Materials/M_Ground_Grass.M_Ground_Grass

また、特定のUnrealマテリアルアセットのマテリアルインスタンスを自動的に作成することもできます。 詳細は、マテリアルインスタンスを参照してください。 物理マテリアルは、unreal_physical_materialアトリビュートを使用して変更できます。

生成

オプションで、プラグインがHoudiniで適用されたマテリアルと一致するUnrealマテリアルの生成を試みるようにすることも可能です。

マテリアルを割り当てる方法は2つあります:

  1. マテリアルネットワークを使用し、マテリアルノードからジオメトリにマテリアルを割り当てる

  2. SHOPネットワークとshop_materialpathアトリビュートを使用する

マテリアルは、作成されたジオメトリの各プリミティブ/フェースを読み取り、マテリアル毎にUnrealマテリアルを作成します。 パラメータ/タグ付けされたパラメータからUnrealマテリアルの関連チャンネルに、定数値、カラー、テクスチャが生成されます。

以下のテーブルには、Unrealの特定のマテリアルチャンネルで生成されるパラメータ名を載せています。 メッシュのHoudini Materialノードに以下の名前と一致するパラメータがない場合、一致する互換タグを持つマテリアルノードで使用可能ないずれかのパラメータが使用されます。

Unrealマテリアルチャンネル

Principled Shaderパラメータ

パラメータ

互換タグ

Base Color

basecolor

ogl_diff

Base Color(テクスチャ)

basecolor_texture

ogl_tex1

Metallic

metallic

Metallic(テクスチャ)

metallic_texture

Specular

reflect

ogl_spec

Specular(テクスチャ)

reflect_texture

ogl_specmap

Roughness

rough

ogl_rough

Roughness(テクスチャ)

rough_texture

ogl_roughmap

Emissive Color

emitcolor

ogl_emit

Emissive Color(テクスチャ)

emitcolor_texture

Opacity

opac

ogl_alpha

Opacity Mask(テクスチャ)

opaccolor_texture

ogl_opacitymap

Normal(テクスチャ)

normalTexture

ogl_normalmap

Normal Map Type(接線/ワールド)

ogl_normalmap_type

Note

ogl_normalmap_typeは、法線マップ(接線vsワールド)の空間を決定します。 パラメータがWorld Spaceに設定されている場合、マテリアルbTangentSpaceNormal upropertyはFalseに設定されて、法線マップはワールド空間にあります。 設定されていない場合、法線マップは接線空間にあります。

テクスチャはファイルにクックする必要があります。 Houdini Engineによって作成されたテクスチャはクック一時フォルダ (HoudiniEngine/Temp) にあります。 それらをレベルと共に保存するようにしてください。

以下の例は、HDAからマテリアルを生成する方法を示しています:

HDAで生成されたメッシュには、UVが必要です。

  1. HDA(matnet)で マテリアルサブネットワーク を作成します。

  2. マテリアルサブネットでPrincipled Shaderを作成します。

  3. ジオメトリ/SOPレベルで、 マテリアルノード を生成されたジオメトリに追加して、マテリアルサブネットワークのPrincipled Shaderを指します。

Unrealでインスタンス化されると、以下のPrincipled ShaderパラメータがUnrealマテリアルに変換されます:

Unrealマテリアルチャンネル

Principled Shaderパラメータ

パラメータ

互換タグ

Base Color

Surface, Basic, Base Color

basecolor

ogl_diff

Base Color(テクスチャ)

Textures, Base Color, Texture

basecolor_texture

ogl_tex1

Metallic

Surface, Specular, Reflection, Metallic

metallic

Metallic(テクスチャ)

Textures, Metallic, Texture

metallic_texture

Specular

Surface, Specular, Reflection, Reflectivity

reflect

ogl_spec

Specular(テクスチャ)

Textures, Reflectivity, Texture

reflect_texture

ogl_specmap

Roughness

Surface, Roughness, Texture

rough

ogl_rough

Roughness(テクスチャ)

Textures, Roughness, Texture

rough_texture

ogl_roughmap

Emissive Color

Surface, Emission, Emission Color

emitcolor

ogl_emit

Emissive Color(テクスチャ)

Textures, Emission, Texture | emitcolor_texture

Opacity Mask

Textures, Opacity, Texture

opaccolor_texture

ogl_opacitymap

Normal(テクスチャ)

Bumps & Normals, Base, Texture Path

baseNormal_texture

ogl_normalmap

Normal Space

Bumps & Normals, Base, Vector Space

baseNormal_vectorSpace

ogl_normalmap_type

マテリアルインスタンス

特定のUnrealマテリアルアセットからマテリアルインスタンスを自動的に作成することができます。

  1. unreal_material_instance Primitiveアトリビュートを割り当てます。

  2. パラメータの文字列値には、マテリアルアセットへのパスを使用します。

  3. パスを取得するには、アセットを右クリックして Copy Reference を選択します。

クック時、ソースのUnrealマテリアルの新しいマテリアルインスタンスが クック一時フォルダ に作成されて、生成されたジオメトリに割り当てられます。

ランドスケープでは、Landscapeマテリアルにはunreal_material_instance、穴マテリアルにはunreal_material_hole_instanceを使用します。

マテリアルインスタンスパラメータ

マテリアルインスタンスを使用して、アトリビュートのマテリアルパラメータを制御および変更することができます。

汎用unreal_material_parameter_接頭辞でマテリアルパラメータを変更します。これは、汎用UPropertyアトリビュートのように動作します。

  1. unreal_material_parameter_で始まるDetailまたはPrimitiveアトリビュートを追加します。

  2. スペースなしで、マテリアルパラメータの名前を追加します。

デフォルトでは、このオーバーライドは、この名前と一致するパラメータを持つすべてのマテリアルに適用されます。 必要であれば、マテリアルパラメータ名の前にINDEX_(INDEXはマテリアルスロットのインデックス)を追加することで、このオーバーライドを適用するマテリアルスロットのインデックスを指定することができます。 これは、unreal_material_instance値の前に対応するマテリアルインデックスが追加されている場合にのみ機能します。 そうでない場合、各マテリアルのインデックスは、unreal_material_instance値のリストで最初に表示されるマテリアルに合わせて設定されます。

このシステムは、マテリアルインスタンス(BlendModePhysMaterialTwoSided)の作成時にUnrealによって常に生成される標準マテリアルパラメータだけでなく、 マテリアルによって定義されるscalar、vector、またはtextureパラメータをエクスポーズさせる(アクセス可能にする)カスタムマテリアルパラメータに対しても機能します。

クックの際は、オーバーライドして、指定した値に設定します。 これは、Unrealによって生成される標準マテリアルパラメータと、scalarvector、または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つのオプションがあります:

  1. 単一のマテリアルでは、アトリビュートをマテリアルチャンネル(basecolor(またはdiffuse)、normal、specular、roughness、emissive、metallic、opacitymask)に設定します。

  2. 複数のマテリアルの場合は、マテリアルを生成するSHOPノード(またはPrincipled Shaderノード)への相対パスを目的のチャンネルの前に追加します。例えば、 testgeometrysquab1/shopnet1/SquabSkin/diffuse のようになります。これはアセットノードへの相対パスです。

アトリビュート

Houdini to Unreal

このテーブルには、HDA内で設定する特殊なアトリビュートを載せており、このプラグインは、HoudiniデータをUnreal出力に変換する時にそれらのアトリビュートを認識します。 アセット上にこれらのアトリビュートをセットアップすることで、生成されるUnreal出力の一部のプロパティと挙動を制御およびオーバーライドすることができます。 詳細は、アトリビュートとグループを参照してください。

マテリアル

アトリビュート名

オーナー

説明

unreal_material

any

string

出力に適用するマテリアルアセットのUnrealパス。 マテリアルスロットを指定するには、大括弧の中にスロット番号を指定したものをパスの前に追加します:[0]path/to/mat

unreal_physical_material

Primitive, Detail

string

出力で物理マテリアルとして使用されるPhysicalMaterialアセットのUnrealパス

unreal_simple_physical_material

Primitive, Detail

string

単純なUnrealコリジョンで使用されるPhysicalMaterialのUnrealパス

unreal_face_smoothing_mask

Primitive

int

メッシュスムージングマスクデータ

マテリアルインスタンス

アトリビュート名

オーナー

説明

unreal_material_instance

Primitive, Detail

string

インスタンスを作成するマテリアルアセットのUnrealパス

unreal_material_hole_instance

Primitive, Detail

string

インスタンスを作成するマテリアルアセットのUnrealパスで、ランドスケープの穴に使用されます。

unreal_material_parameter_*

Detail

any

生成されたマテリアルインスタンスのパラメータを変更するのに使用されるアトリビュート接頭辞

Unreal to Houdini

このテーブルには、UnrealデータをHoudniに取り込む時にこのプラグインによって生成される特別なアトリビュートを載せています。 詳細は、アトリビュートとグループを参照してください。

マテリアル

アトリビュート名

オーナー

説明

unreal_simple_physical_material

Primitive

string

単純なコリジョンから取り込まれるPhysicalMaterialアセットのUnrealパス

Unreal

はじめよう

基本

Houdini Engineを使用する

スクリプト

リファレンス