Houdini 21.0 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マテリアルの生成を試みるようにすることができます。

このプラグインでは、Houdiniでのマテリアルの割り当て方法が3つあります:

  1. Materialネットワークを使用し、 Material ノードからそのネットワークをジオメトリに割り当てる。

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

  3. COP2またはCopernicus(COP)ネットワークを使用し、 COP Preview Material ノードからそのネットワークをジオメトリに割り当てる。

マテリアルは、生成されたジオメトリの各プリミティブ/フェースを読み取り、Houdiniマテリアル毎にUnrealマテリアルを作成します。

Principled Shader を使用してHDAからマテリアルを生成するには:

  1. HDAで生成されるメッシュには必ずUVがなければなりません。

  2. HDA内にMaterialネットワークを作成します。

  3. そのMaterialネットワーク内に Principled Shader を作成します。

  4. GEO/SOPレベルで、生成されたジオメトリに Material ノードを追加します。その Material ノードの Material パラメータに、そのMaterialネットワーク内の Principled Shader を指します。

COP Preview Material ノードを使用してHDAからマテリアルを生成するには:

  1. HDAで生成されるメッシュには必ずUVがなければなりません。

  2. GEO/SOPレベルで、生成されたジオメトリに COP Preview Material ノードを追加します。

一部のマテリアルチャンネルのみがUnrealマテリアルに変換されます。 変換されるマテリアルチャンネルは以下のテーブルを参照してください。

SHOPノード、Principled Shader、COP Preview Materialノードでは、マテリアルチャンネルの割り当て方法が複数あります。 例えば、Base Colorチャンネルには、テクスチャパラメータと定数カラーパラメータの両方があります。 このプラグインは、マテリアルに使用するパラメータをどちらかのみを選択し、定数値よりもテクスチャが優先されます。

このプラグインは、まず最初に名前でパラメータを検索します。 その名前のパラメータが見つからなかった場合、それに呼応する互換タグを持つパラメータを検索します。

名前とタグは以下のとおりです:

Unrealマテリアルチャンネル

パラメータ

互換タグ

COPプレビューノードパラメータ

Base Color

basecolor

ogl_diff

constantbasecolor

default_basecolor

Base Color (Texture)

basecolor_texture

ogl_tex1

basecolor

Metallic

metallic

ogl_metallic

constantmetalness

default_metalness

Metallic (Texture)

metallic_texture

ogl_metallicmap

metalness

Specular

reflect

ogl_spec

constantspecularamount

default_specular

Specular (Texture)

reflect_texture

ogl_specmap

specular

Roughness

rough

ogl_rough

constantspecularroughness

default_specular_roughness

Roughness (Texture)

rough_texture

ogl_roughmap

roughness

Emissive Color

emitcolor

ogl_emit

constantemissioncolor

default_emission_color

Emissive Color (Texture)

emitcolor_texture

ogl_emissionmap

emission_color

Emissive Intensity

emitint

ogl_emit_intensity

constantemissionamount

default_emission_amount

Opacity

opac

ogl_alpha

constantopacity

default_opacity_amount

Opacity Mask (Texture)

opaccolor_texture

ogl_opacitymap

opacity

Normal (Texture)

baseNormal_texture

ogl_normalmap

normal_map

Normal Map Type (Tangent/World)

ogl_normalmap_type

Displacement (Texture)

dispTex_texture

ogl_displacemap

height_map

Displacement Scale

dispTex_scale

ogl_displacescale

height

Ambient Occlusion (Texture)

occlusion_texture

ogl_occlusionmap

N/A

Note

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

スタンドアローンのテクスチャインポート

NodeSyncを使用している場合、マテリアルにテクスチャを取り付ける必要なく、Houdiniから直接COP2またはCopernicus(COP)テクスチャを取得することができます。 そのテクスチャはUnrealテクスチャに変換されます。 詳細は、NodeSyncの使い方を参照してください。

マテリアルインスタンス

特定の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 (Stringアトリビュート)または3(FloatまたはIntegerアトリビュート)に変更します。

  • マテリアルで作成したカスタム 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アトリビュートで制御することができます。UnrealはFloatアトリビュートをFLinearColorとして解釈し、IntegerアトリビュートをFColorとして解釈します。

  • Enumパラメータ(Blend Modeなど)。これは、enumのstring値またはintのinteger値(ゼロから開始)のいずれかを使用して設定することができます。

  • Textureパラメータ。これは、Stringアトリビュートで変更することができます。既存の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を使用する

スクリプト

リファレンス