はじめに
本チュートリアルはコミュニティ メンバーである Liam Tart (PogoP) 氏による提供であり、承諾の元に掲載しております。
Liam Tart 氏に謝意を表します。
このチュートリアルでは、マスター マテリアルとマテリアルのインスタンス化を使用して、シーンのメッシュに適用できるタイリング可能なマテリアル一式を迅速かつ効率的に作成します。タイリング可能なマテリアルを使用してメッシュをテクスチャリングすることで、高ポリゴン モデルからのベーキングに依存せずに、背景の見た目と質感を短時間で変更できます。
このチュートリアルは、 Unreal Launcher Learn タブの Sci-fi Bunk Room シーンの制作に沿って記述されました。従って、マテリアルのインスタンス化が実際に使用されている様子を見るために、これをダウンロードすることをお勧めします。
このチュートリアルでは、多様なメタルやプラスティックなど様々なマテリアル タイプを作るためにインスタンス化し、メッシュ上の様々なマテリアル ID に適用できる効率的なマスター マテリアルのセットアップ方法について説明します。こうしたマスター マテリアルでは、対象となるマテリアルに応じて視差や詳細な法線マップなど特定の関数をオン/オフできる多数のスイッチも使用します。
このチュートリアルを開始する前に、マテリアルとマテリアルのインスタンス化の仕組みについて基本的な理解をするために マテリアル のドキュメントをご覧いだだくことをお勧めします。このチュートリアルでは、こうした考え方を制作環境に適用する方法について説明します。
目標
マスター マテリアルのセットアップの最終目標は、インスタンス化可能であり、マテリアルを迅速に微調整できる多数のパラメータにアクセスできるマテリアルを作成することです。お好みのオプションや機能をマスター マテリアルに入れることができます。しかし、基本としてオプションで特定のアルベド、ラフネス、メタリック、法線マップの入力を可能にし、アルベドの色合い、ラフネス、メタリックの値を追加することで、こうした機能の微調整も制御できるようにすると便利です。
以下のスクリーン ショットは、上記によってどれくらいのフレキシビリティが背景に与えられるかを示しています。いくつかの値を微調整してシーンの外観を迅速に変えることができます。


マスター マテリアルのセットアップ
マスター マテリアルの作成から開始します。マスター マテリアルからシーン内のすべてのマテリアルがインスタンス化されます。そのため、正確かつ効率的にセットアップする必要があります。非常に複雑化する可能性が高いためです。マスター マテリアルを使用するひとつの利点は、後でマテリアルにさらに機能を追加したい場合、マスター マテリアルだけにそれを追加すると、下位のインスタンスに伝搬することです。
以下は最終的なマスター マテリアル セットアップの例です。このマテリアルのすべての入力テクスチャと定数はパラメータ化され、インスタンス化マテリアルにアクセスできるようにします。そのためには、値またはマップ上で右クリックし、[Convert to parameter (パラメータに変換)] をクリックし、名前を付けることができます。その結果、マテリアル インスタンスで簡単にこれを変更できます。
また、Static Switch パラメータがこのマテリアルで幅広く使用されています。詳細な法線マップ、視差などの特定のセットアップの使用の間で選択できます。その結果、最終的なマテリアル インスタンスの負荷が低くなります。不要な機能をオフに切り替えることができるためです。詳細は、パラメータ式 をご覧ください。

アルベドのセットアップ

このセクションでは、特定のアルベド マップまたは単純なカラー値のどちらかを選択できます。単純な値を指定して正しいアルベドを取得することで、マテリアルを迅速にプロトタイプ化できます。続いて、その値を最終アルベド マップのベースとして、Photoshop に読み込むことができます。これは、このチュートリアルの ラフネスのセットアップ でも同様です。
前述のようにこのセットアップでは、基本色としてアルベド マップの使用またはカラー値の使用のどちらかを選択できます。インスタンス化マテリアルで UseDiffuseMap? というスタティック スイッチ パラメータを使用してこの 2 つのどちらかを選択できます。これが true に設定されている場合、特定のアルベド テクスチャの入力を使用し、 指定したアルベド マップの色調を弱める DiffTint 定数値で乗算します。アルベド マップを使用しない場合、 DiffuseValue を使用してアルベド値を定義できます。
DiffMap テクスチャ入力の左側で、UV スロットにノードが接続されているのが見えます。これは、マスター マテリアルの Parallax (視差) 部分に接続します。UV タイリングのセットアップも追加できます。これにより、3d モデリング パッケージではなく、UE4 のマテリアルのタイリングを制御できます。
以下の例は、システムのフレキシビリティを示したものです。左側では、マテリアルはアルベド マップの単一色を使用しています。真ん中は、アルベド マップを使用しています。右側は、オレンジがかった色のアルベド マップを使用しています。これはエンジンで同じマップを使用しても多様な結果になる様子を表したものです。
![]() |
![]() |
![]() |
---|---|---|
Single Color for the Albedo Map | Albedo Map | Albedo Map with Color |

メタリックのセットアップ

これは非常に単純です。マテリアルのメタリック プロパティを定義するためにメタリック マップの使用または単一値の使用のどちらかを選択できます。
単一値だけでなく、メタリック マップを指定するオプションもあるため、便利です。単一値の使用は、例えばメタル マテリアルのタイリングに適しています。一方、マテリアルの一部を非メタリックに、他の部分をメタリックにしたい場合にメタリック マップを指定するオプションがあります。
これは実際に機能している例です。左側のマテリアルではメタル値 0 、真ん中ではメタル値 1 、右側では、特定のメタリック マップを使用しています。
![]() |
![]() |
![]() |
---|---|---|
Metallic Value - 0 | Metallic Value - 1 | Metallic Texture Map |
ラフネスのセットアップ

アルベドのセットアップと同様に、全体的なラフネスを定義するためにラフネス マップを使用するか単一値を使用するかのどちらかを選択できます。これはラフネス値をマテリアルに迅速に割り当て、後でこの値を Photoshop に読み込みマテリアルに対して固有のラフネスマップを作成するうえで優れています。
以下は、これが実際に機能している例です。左側のマテリアルではラフネス値 0、真ん中ではラフネス値 1、右側では、特定のラフネス マップを使用しています。
![]() |
![]() |
![]() |
---|---|---|
Roughness Value - 1 | Roughness Value - 0 | Roughness Texture Map |
UseDetailRoughness? スタティック スイッチでは、 DetailTiling 定数に接続される詳細なラフネス マップを使用します。 DetailTiling 定数は TexCoord で乗算され、詳細なラフネス マップをタイリングすることができます。この値は詳細な法線マップに接続されます。これは近くからのみで見られ、非常に高いタイリング率を持つテクスチャを必要とするマテリアルで役立ちます。
これは実際に機能している例です。左側のマテリアルでは詳細なラフネス / 法線マップを使用せず、真ん中のマテリアルではタイリング率 1 で詳細なマップを使用しています。右側のマテリアルではタイリング率 4 を使用しています。
![]() |
![]() |
![]() |
---|---|---|
法線マップを使用しない | 法線マップを使用しタイリングを 1 に設定 | 法線マップを使用しタイリングを 4 に設定 |
オクルージョンのセットアップ

このセットアップでは、スタティック スイッチ パラメータを使用して、オクルージョン マップの使用と単一値の使用のいずれかを選択することができます。ほとんどのマテリアルではオクルージョン値 1 を使用します。これは単純な白色ですが、マテリアルが必要とすれば特定のアンビエント オクルージョン マップを使用するオプションがあります。例えば、ライトが届かない暗いエリアを持つ固有にアンラップされたモデルのためのマテリアルである場合があります。
エミッシブのセットアップ

このセットアップでは、マテリアルでエミッシブを使用するか否かを選択できます (デフォルトでパフォーマンス向上のために false に設定されています)。特定のエミッシブ マップを指定するために選択する別のスタティック スイッチもあります。特定のエミッシブ マップを使用しないことを選択した場合は、EmissiveScale パラメータを使用してエミッシブ値を設定することができます。しかし、この EmissiveScale パラメータは、EmissiveMap を指定する場合にも使用し、マテリアルの輝度を制御しやすくします。
以下は、エミッシブのセットアップが実際に機能している例です。左側のマテリアルではエミッシブ スケール 0 を、真ん中では 1 を、右側では、2 に設定しています。
![]() |
![]() |
![]() |
---|---|---|
エミッシブ値 - 0 | エミッシブ値 - 1 | エミッシブ値 - 2 |
法線のセットアップ

法線マップのセットアップは若干複雑に見えますが、非常に単純です。このマテリアルはデフォルトでフラットな法線マップ テクスチャになります。ただし、法線マップをオフにして代わりに定数値を使用するスイッチを追加できます。これはテクスチャ メモリを節約する場合があります。
このセットアップでは、法線マップを詳細な法線マップと組み合わせることができます。DetailTiling 定数は、TexCoord で乗算されます。これにより、タイリング率を制御することができます。DetailNormalStrength では、詳細な法線マップの強度を制御します。
視差のセットアップ

視差のセットアップでは、高さマップを適用するとデプス (奥行き) があるという錯覚をマテリアルに与える BumpOffset ノードを使用します。詳細は バンプ オフセット をご覧ください。
このセットアップは、前述のすべてのセクションの UV スロットに接続されます。つまり、視差が有効になると、すべてのマップがそのエフェクトを受けます。
以下は、視差エフェクトが実際に機能している例です。左側では、視差が無効になっています。右側では視差は 0.007 に設定されています。かなりわずかなエフェクトですが、対象マテリアルによってはうまく機能します。


マテリアルのインスタンス化
これでマスター マテリアルがセットアップされたので、マスター マテリアル上で右クリックしてマテリアル インスタンスを作成できます。

次にこのマテリアルに名前を付けてお好みのフォルダで整理することができます。マテリアルのタイプ別にフォルダを作ることをお勧めします。すなわち、メタル用フォルダ、プラスチック用フォルダなどにします。
新規作成したマテリアル インスタンス上でダブルクリックすると、以下が表示されます。

ご覧になってわかるように、マスター マテリアルでセットアップしたすべてのパラメータ化した値とスタティック スイッチはマテリアル インスタンスで表示されています。UseDiffuseMap? などのスイッチを有効にすると、独自のディフューズ/アルベドのマップを入力できます。また、これに結び付けられた一部のパラメータも有効にします。この場合、ディフューズの乗算オプションなどです。
以下は、Sci-fi Bunk シーンのマテリアルのセットアップです。様々な色とマテリアルのプロパティを持つタイリング マテリアルのライブラリを作成しました。これは、シーンのメッシュに簡単に適用できます。

メッシュへの適用
これでマテリアルのライブラリを設定したので、こうしたタイリング マテリアルをメッシュに簡単に適用できます。以下の画像でわかるように、メッシュは固有にベイクされた法線マップを持ちません。しかし、代わりにタイリング マテリアルを使用してリアルなサーフェスを構築しています。メッシュのライブラリ全体をこうしたやりかたで構築した場合は、マテリアル インスタンスを使用するメリットがわかります。ひとつの値を微調整すると、それがシーン全体に伝搬されるからです。例えば、このシーンで使用している木材のテクスチャを変更したい場合、木材のマテリアル インスタンスで一度だけ変更すると、シーン全体で更新されます。これは、いくつかの固有なディフューズ マップを再テクスチャリングしなければならないことに比べるとはるかに速いやり方です。

追加の機能
ベースのマスター マテリアルとマテリアル ライブラリをセットアップしたので、マスター マテリアルを簡単に拡張し、さらに機能を追加することができます。例えば、このマテリアル セットアップでは、頂点ペイントのオプションはありません。基本的な線形補間関数を頂点ペイントと組み合わせて追加し、例えばマテリアル サーフェスに土をペイントします。詳細は、Create a Material for 2-Way Texture Blending をご覧ください。
これでシーンの基本的なマスター マテリアルのセットアップで必要なことはすべて説明しました。Sci-fi Bunk Room シーンをご覧いただき、どのように上記が適用されているかを確認してみてください。それでは、頑張ってください!