Material Editor には、ノードベースのグラフ インターフェイスを使用してスタティックメッシュやスケルタルメッシュといったジオメトリに適用するシェーダーを作成したり、 カスケードなど他のシステムを使って魅力的なマテリアルを作成することができます。
このページでは、マテリアル エディタを使いながら一般的なグッドプラクティスに従って実行できる関数のいくつかを学習します。 例えば、コメントボックスを使ってマテリアル ネットワークの特定のセクションの処理を呼び出したり、 リルート ノードを使ってピン ワイヤーを整理してネットワークを見やすくしてマテリアル統計情報ウィンドウに表示されたエラーへの対応が分かりやすくします。
マテリアル エディタを開く
マテリアル エディタを開くには、いずれかのマテリアル アセットを ダブルクリック するか、コンテンツ ブラウザのマテリアルのコンテキスト メニューを 右クリック します。いずれかの操作で、 マテリアル エディタで特定のマテリアルが編集のために開きます。
マテリアル式のネットワークにコメントを入れる
コメントはマテリアルが何を行っているかを文書化する素晴らしい方法です。複雑なマテリアル グラフ内で何が行われているかについて、誰が見ても理解しやすくします。
マテリアルにコメントを入れる方法は以下の 2 通りあります。各ノードの Desc プロパティまたはマテリアル ノード上にマウスを当てると表示される吹き出しコメント (...) を使ってでテキストを追加するか、 コメント ボックスを使ってマテリアル グラフの大きなセクションをカプセル化します。
各ノードに説明を追加する
各マテリアル式ノードには、[Details (詳細)] パネルの中に [Desc] プロパティがあります。特定のノードの機能について、 アーティストは明確な説明を追加することができます。このプロパティを使うと、ノード上にマウスを当てるとテキストの吹き出しが表示されます。
ノードにテキストの説明を追加するには、以下の操作を行います。
- マテリアル グラフからノードを選択し、[Details] パネルでテキストを追加したい Desc プロパティを探します。
- ノード上にマウスを当てて テキストの吹き出し (...) をクリックして説明を入れます。
さらに、コメントを常に表示するには、テキストの吹き出し [Push Pin] ボタンをクリックして表示したままにします。 カーソルが離れても、最小化されなくなります。
コメントを使用する
コメントを使って、マテリアル ネットワーク部分での実行内容の説明メモを作成することもできます。コメントの作成により、複数ノードのグループ周辺でフレームを伸縮し、 Desc プロパティを使って使用して 1 つずつノードを説明するのではなく、ネットワークのセクション全体の説明に最も適しています。
コメント自体は、コメントボックスの上部に沿ったテキストのバナーとして表示されます。このテキストはグラフのズーム レベルではスケールしないので、 遠く離れてズームしても説明を読むことができます。
コメントボックスを作成するには、以下の操作を行います。
- マテリアル グラフにマウスをかざしながらキーボードの C を押します。グラフで選んだノードはどれも、コメントボックスがスケールして選択範囲を調節できます。
- マテリアル グラフのコンテキスト メニューを右クリックして [New Comment] を選択してコメントボックスを追加することができます。
コメントボックスを使って以下のこともできます。
- コメント フレーム内のノードは、グループ コメント テキスト上でドラッグして移動できます。グループ コメント内のノードは、フレームと共に移動します。コメントボックスの端をドラッグしてフレームのサイズ調整して、ノードの追加ができます。
- 視覚効果を強めたい場合に、コメントボックスの色を変えることができます。[Details] パネルで、カラーホイールで色を選択するか、RGB 値を指定して Comment Color プロパティを設定することができます。
- コメント テキスト バナーをダブルクリックするか、[Details] パネルから Text プロパティを修正することで、コメント名を変更することもできます。
(#LiveNodesAndLiveUpdate)
Live Preview、Live Nodes、Live Update

ネットワークに変更を加える場合、各変更のフィードバックをリアルタイムで直ちに得ることが有用な場合があります。マテリアル エディタは、ネットワークに即時フィードバックできる 2 つの機能を提供します。 Live Preview、Live Nodes、Live Update です。
これらのオプションは一見するとあまり変わらないように見えますが、マテリアルをリアルタイムで表示する特別なタスクを実行します。
- Live Preview - [Save] や [Apply] ボタンを使わずに、[Material Preview] ウィンドウにリアルタイムに自動更新をするための変更を可能にします。
- Live Node - グラフ内でリアルタイムで再生するように、Panner の表現式などノードが行う一定の変化を可能にします。
- Live Update - 変更が加えられるたびにネットワーク内の各ノードがそのシェーダーをリコンパイルします。こうした変更には、新規ノードの作成、ノードの削除、ノードの接続、ノードの非接続、プロパティの変更などがあります。ノードに対して描かれたマテリアル プレビューが最新のものになるように、この再コンパイルが必要です。ただし、これらの再コンパイルには非常に時間がかかる場合があります。特に、マテリアルに含まれるネットワークが大きい場合は時間がかかります。変更するたびにこのような事が起これば、Live Update オプションを非アクティブにしたくなると思います。
例として、見事なロケットのハルのテクスチャをベクター パラメータで乗算処理して色付けをする例を考え見ましょう。

- この例では、Live Nodes をアクティベートすると、グラフ内のそのノードのプレビュー サムネイルでロケットのテクスチャがリアルタイムでパンします。Live Nodes を非アクティブにすると、Panner が移動を指示してもテクスチャは静止したまま残ります。ただし、グラフ領域周辺でマウスを動かすと若干更新されていることに気づくかもしれません。
- シアンから紫にカラーを変更すると、Live Update がアクティブな場合のみ、その変更がわかります。Live Update を無効にすると、カラー プロパティが実際に変更されても、ノード上では色の変更は可視化されません。 例として、 見事なロケットのハルのテクスチャをベクター パラメータで乗算処理して色付けをする例を考え見ましょう。
Live Update が非アクティブな場合、スペースバー を押してすべてのプレビューを手動で更新できます。Live Update を無効にし、変更を表示したい時に「スペースバー」を押せば、 高速イタレーションを実現できます。
(#CompilerErrors)
Reroute ノード

複雑なマテリアルを作成する場合、接続ワイヤーが重なったり、マテリアル ネットワークの大部分が交差すると、 シェーダー ネットワークの読み取りや理解がしずらくなることがあります。Reroute ノードは、純粋に視覚化されているので、パフォーマンスに影響を与えたり、パフォーマンスを下げたり命令数を追加したりせずに、 シェーダー ネットワークの整理整頓を簡単に行うことができます。
マテリアル エディタに Reroute ノードを追加するには、以下の手順を行います。
- コンテンツ メニュー あるいは マテリアル パレット を右クリックして [Utility] カテゴリで Add Reroute Node へドラッグすることができます。
- 接続スプラインを ダブルクリック して、新規の Reroute ノードをインラインに 挿入 します。
コンパイル エラー
マテリアル ネットワークに変更が加えられるたびに、マテリアルを変更を確認するためにコンパイルしなければなりません。ネットワーク内の表現式で必要な入力が接続されていないか、 誤ったタイプのデータを渡されると、コンパイラ エラーが発生します。
このタイプのエラーは 2 つのフェーズを示します。
- エラーが発生しているノードの下に "ERROR!" と表示されます。
- [Stats] ウィンドウに、マテリアルのコンパイルの失敗の原因となっているエラーが表示されます。[Stats] ウィンドウが開かない場合は、[Window] > [Stats] から開くことができます。
コンパイラ エラーは、エラーが発生した式のタイプと説明についての情報を提供することで、発生場所と内容を知らせます
この画像では、ウィンドウ下部の [Stat] ウィンドウで表示されいるように、MakeMaterialAttributes ノードの Normal 入力プロパティがエラーを出しています。
(#ExpressionSearch)
マテリアル グラフの検索
マテリアル エディタの検索機能では、説明に特定のテキストや、 各タイプに特有のプロパティを含むノードが含まれるマテリアル ネットワーク内のノード (コメントも含む) を迅速に見つけることができます。これにより、ノードを特定するキーワードを追加し、グラフ内のノード ネットワーク経由で、 後でそこにジャンプできるようになります。
このタブは、[Window] > [Stats] から開くことができます。
検索ボックスにキーワード全体またはキーワードの一部を入力すると、マテリアル グラフ内に存在するノードのプロパティに対して検索を行います。現在選択中の結果がビューに表示され、 ハイライトされます。
検索は以下のプロパティ値に対して実行されます。
検索されるプロパティ 式のタイプ Desc すべてのノード Texture テクスチャ サンプル ParamName パラメータ Text コメント Font フォント サンプル Material Function MaterialFunctionCall 検索で、
NAME=
スイッチを使用することで、特定タイプの式に対する検索を行うことができます。例えば、すべてのテクスチャ サンプリングを見つけるには、 以下の検索を使用します。NAME=texture
[Search (検索)] パネルで新しい検索結果をクリックすると、まだ表示されていない場合は表示されるようになります。
検索ワードをクリアするには [Clear] (X) ボタンを押します。