マテリアル は、ハイレベル シェーディング言語 (HLSL) という特殊なコーディング言語を使用して作成します。HLSL では、マテリアルによってグラフィックス ハードウェアに指示を直接送ることができ、アーティストやプログラマーは画面に何が表示されるかを制御しやすくなります。Unreal Engine 5 (UE5) 内では、マテリアルの作成に使用する マテリアル表現式 ノードに HSLS コードの小さなスニペットがあります。
メイン マテリアル ノード の各入力は UE5 マテリアル グラフ内で最終地点となります。メイン マテリアル ノードの入力に接続されたマテリアル表現式ノードの組み合わせがコンパイルされてレベル内で使用され、マテリアル全体の最終的な外観が決まります。

デフォルトの入力を含むメイン マテリアル ノード
Material 入力
メイン マテリアル ノードの 入力 は、マテリアルの外観とサーフェスのプロパティの固有な性質をそれぞれ一つ定義します。たとえば、Constant3Vector を Base Color 入力につなげて、その値を「1,0,0」に設定すると、マテリアルが赤色になります。

このマテリアル グラフでは、マテリアルの一つの性質である Base Color (ベース カラー) を明示的に定義しています。
ただし、マテリアルの全体的な外観は、メイン マテリアル ノードで有効になっているすべての入力の結果が合わさったものです。メイン マテリアル ノードで有効になっている入力は白色で表示され、無効な入力はグレーアウトされます。

グラフ内でマテリアル表現式からデータを受け取らない入力は、そのデフォルト値に設定されます。たとえば、Metallic (メタリック)、Specular (スペキュラ)、Roughness (ラフネス) に何も接続されていない場合でも、これらのプロパティはマテリアルの外観に影響を及ぼします。

- Metallic のデフォルトは 0 (非メタリック)。
- Specular のデフォルトは 0.5。
- Roughness のデフォルトは 0.5。
そのため、これらの値がそれぞれ Metallic、Specular、Roughness に設定されているマテリアルは、上で示したマテリアルとまったく同じ外観になります。



スライダー:スライダ:メイン マテリアル ノードにデフォルト値が接続されている場合、プレビュー レンダリングは変わらないことに注意してください。
これらの値を変更することで、マテリアルの外観とサーフェスのプロパティを変更できます。3 つ目の画像では、ラフネスの値が 「0.5」から「0.07」 に変更されており、マテリアルの外観がより洗練された仕上がりとなっています。Constant3Vector でこの値を 「0,0,1」 に変更すると、ベース カラーが赤色から青色に変わります。
マテリアル入力について理解する
UE5 ではマテリアルに 物理ベース レンダリング (PBR) ワークフローを採用しているため、現実世界のライトとサーフェスとのインタラクションに非常に近いものを再現するマテリアルとなります。マテリアルを効果的に作成するには、各入力が最終的なマテリアルにどのような影響を及ぼすかを理解することが重要です。次の 2 つのページでは、Unreal Engine 5 における PBR マテリアル ワークフローに関する基本的な情報について説明しています。
- 「物理ベース マテリアル」の概要では、PBR ワークフローにおけるマテリアル作成のベストプラクティスについて説明します。
- 「マテリアル入力」 のページには、メイン マテリアル ノードに含まれる各入力の動作の例と説明が記載されています。
有効な入力と無効な入力
メイン マテリアル ノードの一部の入力ピンはデフォルトで有効になっており、その他は無効になっています。[Details (詳細)] パネル の次のプロパティにより、有効にする入力が定義されます。
- Material Domain (マテリアル ドメイン)
- Blend Mode (ブレンド モード)
- Shading Model (シェーディング モデル)

これらの 3 つのマテリアル プロパティのいずれかを変更すると、メイン マテリアル ノードで有効/無効になる入力が変わります。
真ん中の例では、[Blend Mode] を [Opaque (不透明)] から [Translucent (半透明)] に変更することで、Opacity (オパシティ) と Refraction (屈折) の入力が有効になります。さらに、半透明のマテリアルに不要な入力はすべて無効になっています。

一番右の例では、シェーディング モデルに [Clear Coat (クリア コート)] を選択したことで、Clear Coat (クリア コート) と Clear Coat Roughness (クリア コート ラフネス) の入力が有効になっています。
[Details] パネルを通じてこれらのプロパティにアクセスするには、メイン マテリアル ノードを選択する必要があります。メイン マテリアル ノードを選択するには、それを マウスで左クリック するか、マテリアル グラフ内の背景をクリックします。
無効な入力に接続されたノードは無視する
ブレンド モードまたはシェーディング モデルを切り替えると、一部の入力が無効になることがあります。その場合、マテリアル表現式は無効な入力に接続されたままとなりますが、マテリアルのコンパイル時には無視されます。
次の例では、Opacity に定数値が接続されていましたが、ブレンド モードが [Translucent] から [Opaque] に変更されたことで、Opacity 入力が無効になりました。

定数ノードは Opacity 入力に接続されたままですが、そのケーブルと入力はグレーアウトされており、この入力が無効であることを示しています。無効な入力に接続されているノードは、コンパイルされたマテリアルに何の影響も及ぼしません。
メイン マテリアル ノードの [Details] パネルのプロパティ
マテリアル エディタでメイン マテリアル ノードが選択されている場合、[Details] パネルには、マテリアルの使用に関する編集可能な一連のプロパティがすべて表示されます。
前述のとおり、[Blend Mode] や [Shading Model] などのプロパティは、メイン マテリアル ノードの入力の有効/無効に直接影響を及ぼします。その他のセクションでは、マテリアルと、特定のプラットフォームやレンダリング機能とのインタラクションを変更できます。
以下は、メイン マテリアル ノードの [Details] パネルにある各セクションを大まかに分類したものです。

セクション名: | 説明 |
---|---|
Physical Material (物理マテリアル) | マテリアルに対してどのタイプの物理マテリアルを使用するかを指定できます。 |
Material (マテリアル) | マテリアルの編集時にはこのセクションで多くの作業を行います。このセクションでは、マテリアル ドメイン、ブレンド モード、シェーディング モデルや、その他多くのオプションを変更できます。 |
Physical Material Mask (物理マテリアル マスク) | マテリアルで使用する物理マテリアル マップの配列です。 |
Translucency (透過処理) | マテリアルの透過処理を調整できます。これは、マテリアルのブレンド モードが [Translucent] に設定されている場合のみに編集可能になります。 |
Translucency Self Shadowing (透過セルフ シャドウイング) | このセクションでは、透過セルフ シャドウイングの外観と動作を調整できます。これは、マテリアルのブレンド モードが [Translucent] に設定されている場合のみに編集可能になります。 |
Usage (使用方法) | このセクションでは、マテリアルで作業するオブジェクトのタイプを設定します。通常、[Usage] のフラグはエディタによって自動的に設定されますが、マテリアルが特定のオブジェクト タイプで使用されることがわかっている場合は、将来的な問題を回避するために、ここでそれを有効にしてください。 |
Mobile (モバイル) | このセクションでは、マテリアルがスマートフォンなどのモバイル デバイス上で使用された場合のその動作について設定します。 |
Forward Shading (フォワード シェーディング) | フォワード シェーディング レンダラが使用されている場合向けの、マテリアルごとのオーバーライドです。 |
Group Sorting (グループ並べ替え) | マテリアル内のパラメータ グループの並び順を変更できます。 |
Post Process Material (ポスト プロセス マテリアル) | このセクションでは、マテリアルがどのようにポスト プロセスおよびトーン マッピングと連動するかを定義します。これは、マテリアル ドメインが [Post Process] に設定されている場合のみに編集可能になります。 |
Refraction (屈折) | 屈折モードと屈折の深度バイアスを変更するプロパティです。 |
Lightmass (ライトマス) | このセクションでは、マテリアルとライトマスとのインタラクションを調整できます。 |
Previewing (プレビュー) | マテリアル エディタのビューポートでマテリアルのプレビューに使用するスタティック メッシュを変更します。 |
Import Settings (インポート設定) | マテリアルで使用する選択項目に関連したインポート データ タイプとオプションを選択できます。 |
これらの設定の詳細については、「マテリアルのプロパティ」ページを参照してください。
メイン マテリアル ノードを使用する
メイン マテリアル ノードの入力は、マテリアル グラフにある他のマテリアル表現式や関数と同じように機能します。
マテリアル表現式をメイン マテリアル ノードの入力に接続するには、次の手順に従います。
-
マテリアル表現式の出力ピンを 左クリック して、マウスをメイン マテリアル ノードの入力ピンに向けてドラッグします。
-
入力ピンに緑色のチェックマークが表示されたら、マウスの左ボタン を放します。
マテリアル グラフ内でのマテリアル表現式と関数の配置については、こちらを参照してください。
マテリアルをプレビューして適用する
メイン マテリアル ノードは、UE5 のマテリアル グラフにおける最終地点となります。メイン マテリアル ノードの入力に渡す情報により、最終的にマテリアルの外観が決まります。マテリアル表現式をメイン マテリアル ノードに接続すると、マテリアル エディタのビューポートのプレビューが自動的に更新されるため、加えた変更を評価し、期待する結果を得ているかどうかを確認できます。
マテリアルのさまざまなプレビュー方法 や、レベル内のアクタにマテリアルを適用する方法について、さらに資料をお読みください。