From Material Expression

From Material Expression シェーディング モデルを使用すると、複数のシェーディング モデルを単一のマテリアルにまとめることができます。

Choose your operating system:

Windows

macOS

Linux

From Material Expression シェーディング モデルは、マテリアル グラフ内のロジックを通じて、複数のシェーディング モデルを単一のマテリアル (またはマテリアル インスタンス) にまとめることのできる上級者向けの機能です。

FromMatExpression.png

使用方法

  1. マテリアル内の Material Inputs (画面左上) または Material Attributes ノード (画面左下) を選択して、 [Details (詳細)] パネルで [Shading Model (シェーディング モデル)] [From Material Expression] に設定します。

    Setting_FromMatExpresssion.png

  2. 設定すると、Material Inputs ノードに [Shading Model (シェーディング モデル)] という新しい入力が表示されます。

    MaterialInputs_ShadingModel.png

  3. マテリアル グラフ内で右クリックして検索し、 Shading Model ノードを追加します。

    ShadingModel.png

  4. シェーディング モデルのドロップダウンで、使用するシェーディング モデルを選択します。

    SelectShadingModel.png

以下に、マテリアルの設定時に利用可能な各ワークフローを使用する例を示します。

[Material (マテリアル)] 内の [Used Shading Models (使用したシェーディング モデル)] オプション

[Shading Model (シェーディング モデル)] 式を使用してマテリアルにさまざまなシェーディング モデルを追加すると、 Material Inputs または Material Attributes ノードが選択されている場合に、これらのシェーディング モデルが [Details (詳細)] パネルの [Used Shading Models (使用したシェーディング モデル)] のリストに表示されます。

Mat_UsedShadingModels.png

上記の例では、Shading Model ノードを使用して、このマテリアルに 3 つのシェーディング モデルが設定されていることを示しています。

このリストにはマテリアル グラフ内に設定されているシェーディング モデルのみが含まれており、実際にコンパイルされているものを示すものではないことに注意してください。これは、 Switch ノードを使用して、シェーディング モデルを含むグラフのパーツ全体を削除することができるためです。この例については、下記の 「Switch ノード」 セクションを参照してください。

マテリアル属性をブレンドする

Material Attributes (マテリアル属性) ワークフローを使用する際は、Shading Model パラメータ入力にカスタム ブレンド操作を使用でき、残りの Material Attribute パラメータは法線のようにブレンドされます。

Shading Model ノードを使用して [Details (詳細)] パネルからシェーディング モデルを選択し、 BlendMaterialAttributes ノードを使ってこれら両方をブレンドします。

BlendMaterialAttributes_Diagram.png

[Alpha (アルファ)] 入力では、アルファ値が「0.5f」より小さい場合はシェーディング モデルによって [A] が選択され、「0.5f」以上の場合は [B] が選択されます。

この例では、マテリアル グラフで SetMaterialAttributes ノードを使用して 2 つの異なるマテリアルを設定する様子を示します。それぞれのマテリアルでは、グラフ上部で Default Lit シェーディング モデルを使用して Carbon Fiber テクスチャを使用しています。グラフ下部では Clear Coat シェーディング モデルを使用しています。 BlendMaterialAttributes ノードでは、これらの異なるシェーディング モデルをブレンドし、組み合わせたマテリアルのマスクとして [Alpha] 入力パラメータを使用しています。

クリックしてフルサイズ表示。

このマテリアルがスタティック メッシュに適用されると、このマテリアル スロットではこれら 2 つのシェーディング モデルをレンダリングする際に、描画呼び出しを 2 回ではなく 1 回のみ行います。Alpha マスクが適用されているため、左上部にはデュアル法線を含む Clear Coat シェーディング モデルを使用し、右上部には Default Lit シェーディング モデルが使用していることがわかります。

BlendMaterialAttributes_Result.png

If ステートメント

If 式を [A] から [B] への浮動小数値に使用することで、下の画像のように、使用される シェーディング モデル を設定することができます。

PerPixel_If_Graph.png

[B] の値が設定されていない場合、デフォルトでは値が 「0」 に設定されます。この場合、これをマテリアル インスタンス内で制御するためには、ハードコード化された値を [Details (詳細)] パネルで設定するか、テクスチャまたは定数から派生した別の浮動小数値を使用するか、 [B] 入力のためのパラメータを設定します。

下の比較画像では、If 式によって [B] [A] の値が評価され、シェーディング モデルが Default Lit または Clear Coat のいずれかに設定されます。 [A] の浮動小数値が [B] の値より大きい場合は Default Lit が使用され、 [A] の値が [B] の値と同等かより小さい場合は Clear Coat が使用されます。

A > B:Default Lit を使用 |B = 0.0

A <= B:Clear Coat を使用 |B = 0.5

Switch ノード

以下の利用可能な Switch ノードを使用して、マテリアルの機能と品質を制御できます。

Mat_Switches.png

  • Shading Path Switch (シェーディング パス スイッチ) は、マテリアル ロジックのどの部分をレンダリング パスに使用するかを指定する場合に便利です。

  • Quality Switch (品質スイッチ) は、エンジンの品質レベルを使用してマテリアル ロジックを制御する場合に便利です。

  • Feature Level Switch (機能レベル スイッチ) は、さまざまなデバイスでの使用に向けてマテリアルを設定する場合に便利です。

  • Static Switch (スタティック スイッチ) または Static Switch Parameter (スタティック スイッチ パラメータ) は、ベース マテリアルに含まれるマテリアルのブランチ全体を除外する場合、もしくはマテリアル インスタンスを通じて制御可能にする場合に便利です。

下の比較画像では、 Static Switch 式によって、 True の場合はシェーディング モデルが Default Lit に、 False の場合は Clear Coat に設定されます。

クリックしてフルサイズ表示。

Static Switch = True |Default Lit シェーディング モデル

Static Switch = False |Clear Coat シェーディング モデル

マテリアルをインスタンス化する

マテリアルのインスタンス化がサポートされているため、マテリアル グラフ内でロジックを設定して使用し、パラメータと変数を利用して、使用するシェーディング モデルを設定することができます。

Material Instances シェーディング モデルは From Material Expression として表示され、スタティック シェーディング モデルにオーバーライド可能であることに留意してください。ただし、Material Instances シェーディング モデルを From Material Expression にオーバーライドすることはできません。実行しても失敗し、オーバーライドされません (メッセージも表示されません)。

追加情報

  • シェーディング モデル入力が常に有効であると表示される

    • [Use Material Attributes (マテリアル属性を使用)] が有効になっており、Set、Get、Make、または Break のいずれかの Material Attributes ノードを使用した場合、 From Material Expression をシェーディング モデルとして選択していない状態であっても、 Shading Model 入力は常に有効 (グレーアウトされない状態) であると表示されます。 From Material Expression がマテリアルのシェーディング モデルとして設定されていない限り、ピンは機能しません。これは、デフォルトである Main Material Inputs ノードに対しては影響を及ぼしません。

  • マテリアル インスタンス オーバーライド

    • マテリアル インスタンスの Shading Model のオーバーライドは予期通りに機能しますが、これを From Material Expression に設定しようとしても、親マテリアルで使用されていない限り、失敗して設定は変更されません (メッセージも表示されません)。

  • Unlit シェーディング モデル

    • 膨大な量の情報がコンパイルされるため、Regression (回帰) を導入しない限り、シェーディング パスは正しくサポートされません。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル