Houdini 20.0 Unreal

マテリアル

On this page

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

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

アトリビュート

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

また、特定の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 のようになります。これはアセットノードへの相対パスです。

Unreal

はじめよう

基本

Houdini Engineを使用する

リファレンス

Houdini Engine for Unreal Engineは、HoudiniのテクノロジーをUnrealに統合できるプラグインです。 Session SyncとNode Syncは、Houdiniのライブセッションと相互作用するためのHoudini Engineプラグインの2つの機能です。

このプラグインを使用すると、Houdiniの強力かつ柔軟なプロシージャルワークフローを、Houdiniデジタルアセットを通してUnreal Engineで実現できます。 アーティストはエディタ内でアセットパラメータをインタラクティブに調整して、Unrealアセットを入力として使用することができます。 その後、Houdiniのプロシージャルエンジンがアセットを“クック”し、その結果をエディタで使用できるようになります。ベイクする必要はありません。

一般情報:

互換性:

現在のところ、プラグインにはUE5.3、5.2、5.1、5.0、UE4.27、UE4.26向けにビルドされたバイナリがあり、Houdiniの最新のプロダクションビルドにリンクされています。

プラグインのソースコードは、UE5.3、5.2、5.1、5.0、UE4.27、UE4.26のこのリポジトリで利用可能です。

Note

UE5.1およびUE5.0は、同じソースファイル/ブランチを使用し、5.0ソースは5.1でも使用できるようになっています。

サポートおよびバグのレポート:

便利なリンク:

SessionSync

Houdini Engine SessionSync機能を使用すると、GUIを使ってHoudini内で実行されているHoudini Engineのセッションに接続することができます。 通常のHoudini Engineワークフローのすべての機能と、Session Sync固有の追加機能をサポートしています。

Houdini Engineは非UIバージョンのHoudiniを使用しますが、Session SyncではHoudiniのユーザインターフェースを通してHoudiniセッションを確認したり、操作することができます。 また、UnrealやHoudiniで加えた変更は同期されるため、どちらのプログラムでも変更を加えても、同じ結果が得られます。

NodeSync

NodeSyncは、UnrealとHoudini Session Sync間のアセット共有を可能にする、Houdini Engine for Unrealプラグインの機能です。スケルタルメッシュとスタティックメッシュで機能します。

専用のHDAを使用することなく、Unrealにデータを送信したり、Unrealからデータを受信することができます。アクターに加えて、スタティックメッシュやスケルタルメッシュでも機能します。

Houdini Niagara

Houdini-Niagaraプラグインを使用すると、HoudiniNiagara Data Interfaceを使用して、HoudiniとUnrealのNiagaraシステム間でポイントクラウドデータを交換することができます。 Houdiniのアトリビュートデータを、HoudiniPointCacheアセットとしてエクスポートできます。 これらをUnrealにインポートし、Niagaraシステムとエミッターを使用して、複雑なエフェクトやパーティクルシステムを作成できます。