マテリアル グラフ内では、それぞれの表現式と関数は自己完結型のノードです。これらのノードは入力において HLSL コードの小さなスニペットを実行し、その結果を出力します。
このページでは、マテリアル グラフにマテリアル表現式と関数を配置するためのさまざまな方法を紹介します。
マテリアル表現式
それぞれの マテリアル表現式 ノードには、マテリアル内で特定のタスクを実行するための小さな HLSL 命令セットが含まれます。マテリアルは、ビジュアル上の目標を達成するために、表現式と関数を組み合わせて作成されます。
たとえば、メッシュ状のテクスチャのスケールを変更したい場合は、Multiply (乗算) ノードを使用します。 Constant 値をマテリアルの Texture Coordinates (テクスチャ座標) で乗算することで、そのテクスチャのスケールを制御できます。


乗算値を 1 から 3 に変更した場合、テクスチャはサーフェス上で (1 回ではなく) 3 回タイリングされます。
シンプルですが、マテリアル ロジック の汎用性の高さを示しています。このような小規模のノード ネットワークを組み合わせることで、非常に洗練されたサーフェス エフェクトを最終的に作成できます。
マテリアル表現式と関数の違い
マテリアル表現式と関数の主な違いは、マテリアル表現式はエンジンのソース コードで直接作成されるのに対し、マテリアル関数はコンテンツ ブラウザ内で編集可能なアセットとして存在する点です。
マテリアル表現式
マテリアル表現式は、あらかじめプログラミングされた処理のみを行う静的なコードです。Multiply ノードは、2 つの値を乗算するようプログラミングされています。その機能を変更するには、ソース コード内で設定を変更する必要があります。先ほどの例には 4 つのマテリアル表現式が含まれています。

- Constant — 単一の数値 (浮動小数値) を保持します。
- Multiply — 入力 A と入力 B との積を出力します。
- Texture Coordinates — マテリアルの UV テクスチャ座標を 2 チャンネル ベクター値の形式で出力します。
- Texture Sample (テクスチャ サンプル) — 画像テクスチャを参照して、そのテクスチャのカラー値 (複数可) を出力します。
マテリアル関数
マテリアル関数は、ニーズに応じてあらゆるタイプの演算を実行するよう設定できる点で、より動的な要素と言えます。マテリアル関数を作成および編集 する際に、ソース コードを変更する必要はありません。
マテリアル関数のノードをダブルクリックすると、マテリアル関数エディタ が起動します。マテリアル関数内には、マテリアル表現式を構成する自己完結型ノードのグラフがあります。

CameraDepthFade マテリアル関数には、右側に表示されているマテリアル グラフが含まれています。
マテリアル関数は複雑なマテリアル ロジックをわかりやすい単一のノードにまとめる一つの手段であり、このノードは複数のマテリアルで使用することができます。関数は反復的なマテリアル グラフをパッケージ化する優れた手段です。これによって、他のチーム メンバーと共有して再利用することが可能になります。
マテリアル表現式を配置する
マテリアル表現式は、4 通りの方法でマテリアル グラフ内に配置できます。
パレットからドラッグアンドドロップする
パレット (Palette) とは、マテリアル エディタ ウィンドウの右側に表示される展開/折りたたみ可能なサイドバー パネルです。このパネルが表示されていない場合は、[Palette] をクリックして展開します。

パレットを常に表示しておくには、ピンのアイコン をクリックします。

パレットのピン止めを解除するには、もう一度ピンをクリックします。ピンを解除すると、各アクション後にパレットが折りたたまれます。
パレット内で検索する
パレットには、UE5 で使用可能なマテリアル表現式とマテリアル関数がすべて含まれています。これらは、それぞれの全般的な目的に応じて各カテゴリに分けられています。

パレットでは、検索バーにクエリを入力することで検索を行います。文字を入力するごとに検索フィルタが更新され、最も近い検索結果が自動的にハイライト表示されます。

[Category (カテゴリ)] メニュー では、パレット内に表示するノード タイプを指定できます。

- パレット内にマテリアル表現式のみを表示するには、[Expressions] を選択します。
- マテリアル表現式を非表示にしてマテリアル関数のみを表示するには、[Functions] を選択します。
- デフォルトの [All] では、マテリアル表現式と関数の両方が表示されます。
表現式と関数をパレットから配置する
マテリアル表現式とマテリアル関数は、パレットからマテリアル グラフに直接ドラッグすることができます。
-
マテリアル表現式の名前をパレット内で 左クリック し、lマウスの左ボタン を押したままマテリアル グラフ内にドラッグします。
-
マウスの左ボタンを放すと、マウス ポインタの位置にマテリアル表現式が配置されます。
右クリックのコンテキスト メニューを使用する
右クリック メニュー を使ってマテリアル ノードをグラフに加えることもできます。パレットと同様に、右クリック メニューにはすべてのマテリアル表現式と関数がカテゴリ分けされて表示されます。右クリック メニューにも検索バーが備わっていますが、表現式または関数をフィルタリングするオプションはありません。
-
マテリアル グラフ内の背景部分を 右クリック します。
- カテゴリをブラウズするか、検索バーにクエリを入力して目的の表現式または関数を見つけます。
-
グラフ内に配置するマテリアル表現式または関数の名前を 左クリック します。
また、Enter キーを押して、現在青色でハイライト表示されているマテリアル表現式を配置することもできます。上向き/下向き矢印を使ってリスト内の表現式を選択するか、検索テキストを調整します。
入力ピンまたは出力ピンからドラッグする
コンテキスト メニューへアクセスするには、グラフ内の既存ノードの入力ピンまたは出力ピンのワイヤーを 左クリック してドラッグします。グラフ内の空いている場所でマウス ボタンを放すと、コンテキスト メニューが表示されます。検索バーを使用するか、カテゴリをブラウズしてノードを見つけてスポーンします。この方法の長所の 1 つは、マテリアル式または関数をスポーンすると、それがすでに正しく接続されていて、手順を省くことができる点です。
キーボード ショートカット
よく使用されるマテリアル表現式を手早く配置するためのさまざまなキーボード ショートカットが用意されています。マテリアル表現式を配置するには、キーボード ショートカットを押したままにして、マテリアル グラフ内の任意の場所を 左クリック します。
次は、デフォルトのマテリアル表現式キーボード ショートカットの表です。
キーボード ショートカット キー | マテリアル表現式 |
---|---|
A | Add Material Expression |
B | Bump Offset Material Expression |
1 | Constant Material Expression |
2 | Constant2Vector Material Expression |
3 | Constant3Vector Material Expression |
4 | Constant4Vector Material Expression |
D | Divide Material Expression |
I | If Material Expression |
L | Linear Interpolate Material Expression |
F | Material Function Material Expression |
M | Multiply Expression |
N | Normalize Expression |
O | One Minus Expression |
P | Panner Expression |
E | Power Expression |
R | Reflection Vector WS Expression |
S | Scalar Parameter Expression |
S | Texture Sample Expression |
U | Texture Coordinate Expression |
V | Vector Parameter Expression |
マテリアル表現式キーボード ショートカットは、[Edit (編集)] > [Editor Preferences (エディタの環境設定)] > [Keyboard Shortcuts (キーボード ショートカット)] > [Material Editor - Spawn Nodes (マテリアル エディタ - スポーン ノード)] で変更できます。
マテリアル関数を配置する
ほとんどの場合、マテリアル関数をグラフ内に配置するには、上記と同じ手順に従います。パレット と 右クリック メニュー は、マテリアル関数に対してもマテリアル表現式の場合と同様に機能します。
さらに、マテリアル関数にはもう一つの配置方法があります。
マテリアル関数をコンテンツ ブラウザから配置する
マテリアル関数は コンテンツ ブラウザ からマテリアルにドラッグアンドドロップすることができます。これはマテリアル関数のみで有効な配置方法です。
目的のマテリアル関数をコンテンツ ブラウザ内で見つけて、そのアセットを 左クリックしてドラッグ し、マテリアル グラフ内に配置します。コンテンツ ブラウザには、マテリアル エディタ下部の コンテンツ ドロワー、もしくは UE5 のメイン ウィンドウからアクセスできます。
コンテンツ ブラウザ内でマテリアル関数を見つけるには、デフォルトでは表示されない「Engine」フォルダ内を検索する必要があります。
「Engine」フォルダを表示するには、コンテンツ ブラウザの右側にある [Settings (設定)] アイコンをクリックし、[Show Engine Content (エンジンのコンテンツを表示)] をオンにします。

マテリアル関数は、コンテンツ ブラウザの 「All」 > 「Engine」 > 「Content」 > 「Functions」 パスにあります。

マテリアル ノードを接続する
マテリアル グラフで任意の 2 つのノードを接続する手順は以下のとおりです。
-
1 つめのノードの入力ピンまたは出力ピンを左クリックしてワイヤーをドラッグします。
-
2 つめのノードのピンの上で左マウス ボタンをリリースします。
接続を削除するには、Alt キーを押したまま、2 つのノードの間のワイヤーをクリックします。ワイヤーをクリックして [Delete] を押しても削除することができます。
既存のワイヤーを 1 つのピンから別のピンへ移動することもできます。移動する接続を Ctrl を押しながらクリック して、別の入力または出力へドラッグします。
まとめ
マテリアル表現式と関数は UE5 マテリアルの主要な構成要素です。UE には、特定のタイプのデータを保持したり、一連の HLSL 命令を実行したりする多数のマテリアル ノードが用意されています。多くの場合、特定の少数のノードを繰り返し使用することになります。たとえば、上記のキーボード ショートカット が割り当てられているマテリアル表現式はすべて、UE5 でのマテリアル作成において基礎的な役割を果たすものです。
ほとんどのマテリアル表現式と関数には、それぞれの用途の概要を示すツールチップが用意されています。また、そのほとんどはマテリアル リファレンスのページでドキュメント化されています。
多くのマテリアル表現式は純粋な HLSL コードであるため、その技術的な背景情報について Microsoft 公式の HLSL ドキュメント を参照することもお勧めします。