マテリアル関数の作成
マテリアル関数を作成するには以下の操作を行います。
-
コンテンツ ブラウザ 内を右クリックします。コンテキスト メニューの [Create Advanced Asset] セクションで、[Materials] サブメニューを開いてリストから [Material Function (マテリアル関数)] を選択します。
-
コンテンツ ブラウザにマテリアル関数が表示されたら名前を変更します。マテリアル関数を見た人が分かりやすいように、内容を説明したような名前をつけることが望ましいです。たとえば「Material Function」などです。コンテンツ ブラウザ でマテリアル関数を選択し、キーボードの F2 を押し、好きな名前を入力すれば、名前を変更することができます。
マテリアル関数を編集する
新しいマテリアル関数を作成したら、それをマテリアル エディタで開いて、マテリアル式ネットワークの構築を開始する必要があります。既存のマテリアル関数の動作を変更する場合も、関数を開きます。編集のためにマテリアル関数を 2 通りの方法で開くことができます。
-
コンテンツ ブラウザ マテリアル関数アセットをダブルクリックして、別のマテリアル エディタ タブで開きます。次に、マテリアル関数内のマテリアル式ネットワークを編集して、その動作を変更することができます。
-
既存マテリアル内でマテリアル関数ノードをダブルクリックすると、そのマテリアル関数が新しいマテリアル エディタ タブで開きます。
ダブルクリックすると、マテリアル エディタの新しいタブにマテリアル関数が開き、関数に含まれるマテリアル式ネットワークが表示されます。グラフを自由に編集することができます。

マテリアル関数に対して加えられて保存された変更は、そのマテリアル関数のすべてのインスタンスに適用されることに注意することが重要です。例えば、Radial Gradient マテリアル関数の内部ネットワークに変更を加えた場合、この関数に存在する全てのインスタンスに加え、これより新規で作成される全てのインスタンスが変更を受け取ります。
このため、関数の他のすべてのインスタンスに変更を伝搬する必要があることが確実でない限りは、オリジナルのマテリアル関数を編集するのではなく、既存の関数のコピーを コンテンツ ブラウザ で作る方がよいでしょう (右クリック して、コンテキスト メニューから [Duplicate] を選択)。
関数に変更を加えたら、関数アセットおよび関数を使用するマテリアルへ変更を伝播するために、[Apply (適用)]ボタンをクリックしなければいけません。クリックしたら コンテンツ ブラウザにアセットが保存されていることを確認してください。

新しい関数の発行
関数を使用するには、マテリアル エディタ パレットの Material Function Library にその関数が表示されていることを確認してください。表示させるには、Expose to Library プロパティが true に設定する必要があります。
-
関数内のすべてのノードの選択を解除するには、マテリアル グラフの背景部分をクリックします。これによって関数の基本プロパティが [Details] パネルに表示されます。
-
説明を追加します。ここに追加した説明は、マテリアル関数ライブラリおよびマテリアル エディタ内でユーザーがその関数にマウスを当てた時にツールチップとして表示されるので、非常に重要です。入力ノードおよび出力ノードへの説明の追加を習慣にすると良いですが、表現式へのコメント欄が 1 つしかないとしたら、こっちの方がもっと大変です。
-
Library Categories Text を使用して、マテリアル機能を表示するカテゴリを選択することができます。Insert をクリックして新しいカテゴリ名を入力することで、カテゴリを追加することができます。ただし、カテゴリは必要最低限にして、できるだけ簡単にしておく事が賢明です。
マテリアル関数を使用する
マテリアル関数のパレットから使用する
マテリアル関数を作成してライブラリにパブリッシュすると、マテリアル エディタのパレットから直接ドラッグすることによって既存マテリアル内で使用することができます。ユーザーが作成したマテリアル関数だけでなく、パレットには、エンジンに含まれるすべてのデフォルトのマテリアル関数が含まれています。

デフォルトのマテリアル関数は、さまざまなカテゴリに分類されています。ユーザーが作成したマテリアル関数はデフォルトでは Misc カテゴリに配置されていますが、その関数の詳細パネルのプロパティでカテゴリ分類を変更することができます。マテリアル関数をマテリアル グラフにドラッグして、関数内に入力ノードと出力ノードで定義されたさまざまな入力と出力のあるマテリアル関数呼び出しノードを作成します。

または、マテリアル エディタで 右クリック して、コンテキスト メニューでマテリアル関数を検索することで、その関数をマテリアルに追加することができます。
Unspecified Function ノード
マテリアル関数を使用するための 3 つめの方法は、マテリアル グラフに Unspecified Function ノードを配置して、[Details] パネルでマテリアル関数をそのノードに割り当てます。
-
F キー を押しながらマテリアル グラフを 左クリック して Unspecified Function ノードを配置します。
-
マテリアル関数を [Details] パネルの Unspecified Function ノードに割り当てます。マテリアル関数は [Details] パネルのドロップダウン メニューで検索することができます。または、コンテンツ ブラウザ でマテリアル関数アセットを選択して [Use Selected Asset from Content Browser (コンテンツブラウザから選択したアセットを使用)] ボタンをクリックします。
-
Unspecified Function ノードが選択されたマテリアル関数 (この例では、Blend Angle Corrected Normals) に置き換わります。