レイヤー マテリアルの作成

UE4 のレイヤー マテリアル技術に関する入門書

Windows
MacOS
Linux

SnowyStuff.png

このチュートリアルでは、クロムと雪の 2 つのマテリアル レイヤーを使用して、簡単な レイヤー マテリアル を作成する一連の作業について説明します。最後のレイヤー マテリアルは、オブジェクトの上面に自動的に雪を配置して、効率的に 2 つのマテリアルを切り替えます。マテリアル間のブレンドは常に上面をチェックします。つまり、オブジェクトを回転しても雪は上部に残ります。

マテリアル レイヤーの作成は、マテリアルとしてレイヤーを作成して、ユーザーのノードネットワークを新規の関数へコピー / 貼り付けるのが一般的です。しかし、時間短縮のために、関数内にレイヤーを作ることから始めます。

簡単なクロムのサンプル

クロム テクスチャ

T_ExampleLayers_Metal01_BC.png

T_ExampleLayers_Metal01_N.png

T_ExampleLayers_Metal_1_BC.png

T_ExampleLayers_Metal01_N.png

(右クリックして名前を付けて保存)

(右クリックして名前を付けて保存)

最初のマテリアル レイヤーは、表面に多少の腐食や欠陥があるかなりシンプルなクロムを作成します。編集機能をお見せするために、全体的な外観を制御するいくつかの入力も作成します。

  1. コンテンツブラウザで、[Add New (新規追加)] ボタンをクリックして、 [Materials & Textures] > [Material Function] の順序で選択します。

    NewFunction.png

  2. 新しい関数は 「Layer_Chrome」 と名前を付けます。

    Layer_Chrome.png

  3. 関数を ダブルクリック して、マテリアルエディタで開きます。

    EditLayerChrome.png

  4. マテリアル グラフ エリアで 右クリック して、コンテキスト メニューを表示させます。「Make 」を検索して [Make Material Attributes] を選択します。

    MakeMaterialAttributesContext.png

  5. 新規の Make Material Attributes ノードを Output Result ノードと接続します。

    ConnectedMMA.png

クロム レイヤー ネットワーク

このマテリアル レイヤーのネットワークはとても単純です。素早く構築するために分類されています。ベースカラーとラフネスには T_ExampleLayers_Metal_1_BC.png 、法線マップには T_ExampleLayers_Metal01_N.png の 2 つのテクスチャを使用しています。両テクスチャはこのページ上部からダウンロードすることができます。

フルサイズ表示はここをクリック、または右クリックして [Save As (名前をつけて保存)] を選択

マテリアル レイヤーはコメント ブロックに分類できます。以下に説明します。

  1. Base Color - ネットワークのこの部分はとても単純です。ベースのクロムカラーととても暗いグレーをブレンドする線形補間を設定しています。ベースカラーは、実際は _Tint_ という名の関数入力です。この入力値を Vector3 に設定すると、関数へカラーを入力してクロムの色を変更することができます。2 つの色の補間の操作に _T_ExampleLayers_Metal_1_BC_ テクスチャの赤チャンネルを使用します。

  2. Metallic - メタルを作成中なので、Metalic を 1 に設定します。

  3. Roughness - クロムを作成中なので、ラフネスは通常低い値に設定します。ここで暗い領域のラフネスを少し増加します。マテリアルの全体的な印象にある程度の深度を加える程度です。実質的に、 0.2 と 0.4 の間を単に線形補間している点を除いて、ベースカラーに使用したネットワークと同一です。

  4. Customizable Normal - このネットワークは単にタンジェント空間の法線マップを受け取り、マップの詳細の大部分を制御する緑と赤のチャンネルを切り離します。それぞれのチャンネルは、別の Function 入力から供給された値で乗算します。この入力は Scalar タイプに設定し、 1.0 の初期設定値を持つ _Normal Multiplier_ と名付けます。結果が同時に追加 (AppendVector ノード) された後、法線マップの青チャンネルへ追加されます。最終的に、 Normal Multiplier 値を変更することによって、ユーザーは法線の高さを修正できるようになります。

作業終了時に必ず Material Layer 関数を保存してください。

簡単な雪のサンプル

雪のテクスチャ

T_Cave_Ice_Tiling_D.png

T_Cave_Ice_Noise_N.png

T_Cave_Ice_Tiling_D.png

T_Cave_Ice_Noise_N.png

(右クリックして名前を付けて保存)

(右クリックして名前を付けて保存)

ここからは雪のエフェクトに関するマテリアル レイヤーを作成していきます。

  1. コンテンツブラウザで、[Add New (新規追加)] ボタンをクリックして、 [Materials & Textures] > [Material Function] の順序で選択します。

    NewFunction.png

  2. 新しい関数は 「Layer_Snow」 と名前を付けます。

    Layer_Snow.png

  3. 関数を ダブルクリック して、マテリアルエディタで開きます。

    EditLayerChrome.png

  4. マテリアル グラフ エリアで 右クリック して、コンテキスト メニューを表示させます。「Make 」を検索して [Make Material Attributes] を選択します。

    MakeMaterialAttributesContext.png

  5. 新規の Make Material Attributes ノードを Output Result ノードと接続します。

    ConnectedMMA.png

雪のレイヤー ネットワーク

以下は雪のマテリアル レイヤーを単純化して分類したものです。このレイヤーは T_Cave_Ice_Tiling_D.pngT_Cave_Ice_Noise_N.png を使用します。両レイヤーはページ上部からダウンロードすることができます。

フルサイズ表示はここをクリック、または右クリックして [Save As (名前をつけて保存)] を選択

  1. Base Color - 唯一の比較的高度なネットワーク部分で、_FuzzyShading_ Material 関数を使用していることに起因します。この関数はマテリアルがライトを受け取った時、テクスチャが暗くなりすぎるのを防ぎます。繊維質の表面を通過するライトと若干似ています。ベルベット、苔、または雪などの使用にとても実用的です。ベースカラー テクスチャ (T_Cave_Ice_Tiling_D.png) の受け取りから始めて、値を 0.3 乗することによってコントラストをいくつか削除します。

    次にマテリアル エディタの [Function (関数)] タブから FuzzyShading Material 関数へ結果を接続して、 Core Darkness を値 0 、 Power を値 1 、そして EdgeBrightness を値 0.5 に設定します。最後に、とても淡い青 (R=0.8 、 G=0.9 、 B=0.95) で全体を乗算して、冷たく凍えるような色あいにします。

  2. Metallic - サーフェスはメタルではないので、 Metalic を 0 に設定します。

  3. Roughness - ライトがちょうど良く当たった時に雪の表面がわずかに放つ光沢を設定します。 T_Cave_Ice_Tiling_D.png テクスチャの赤チャンネルを使用して、 0.6 から 0.3 の間で線形補間を操作します。

  4. Normal - これもまた極めて基本的な設定です。青チャンネルの強度を 2 倍にして、タンジェント空間の法線マップのエフェクトを弱めます。青チャンネルの値を増加させると、法線マップの高さの全体的な印象を低くします。

作業が終了したら結果を保存します!

レイヤー マテリアル

これまでに生成したレイヤーを使用して、独自のレイヤー マテリアルを作成します。インスタンスのカスタマイズのために少し余裕をもった設定とし、雪が常に表面上に表示されるようにします。

  1. コンテンツ ブラウザ[Add New (新規追加)] ボタンをクリックしてコンテキスト メニューからマテリアルを選択します。

    NewMaterialContextMenu.png

  2. 新しい関数に 「Mat_SnowyChrome」 と名前を付けます。

    Mat_SnowyChrome.png

  3. マテリアルを ダブルクリック して、マテリアル エディタで開きます。

    SnowyChromeMatEd.png

  4. コンテンツ ブラウザ から、上記の手順で作成した Layer_ChromeLayer_Snow マテリアル レイヤーへドラッグ&ドロップします。

  5. [Details (詳細)] パネルで、[Use Material Attributes (マテリアル アトリビュートを使用)] を有効にします。

    enableMatAttrib.png

  6. [Functions (関数)] パネルから MatLayerBlend_Simple 関数および World_Aligned_Blend 関数へドラッグします。クロムから雪への遷移処理に MatLayerBlend_Simple 関数を使用し、World_Aligned_Blend 関数は表面が指し示す方向に基づいてレイヤー ブレンドを出力します。

レイヤ マテリアル ネットワーク

以下は各コメント領域の説明を伴った Mat_SnowyChrome ネットワークの概要です。

フルサイズ表示はここをクリック、または右クリックして [Save As (名前をつけて保存)] を選択

  1. Chrome Setup - 紹介例ではクロム マテリアル レイヤーを取り入れて 2 つのマテリアル パラメータと接続しました。まず _Chrome Normal_ と名前が付けられたスカラー パラメータは _Normal Multiplier_ 入力値を操作します。次に _Chrome Tint_ と名前が付けられたベクター パラメータが _Tint_ 入力値を操作します。これらパラメータは法線マップの強度の修正に加え、後にインスタンス化する際にクロム カラーの変更を可能にします。

  2. Snow Setup - 最も簡単な設定です。ここでは雪のマテリアル レイヤーのみを使用します。

  3. World Aligned Blend Setup - ネットワークのこの割り当て部分から _Blend Sharpness_ を値 10 に設定します。その後 _Snow Bias_ と名前が付けられたスカラー パラメータを _Blend Bias_ 入力値と接続します。この接続により、マテリアルがインスタンス化された時に雪で覆われた範囲の編集が可能になります。

  4. MatLayerBlend - ブレンド操作に使用するノードを格納します。ベース マテリアルは Chrome (クロム) です。トップ マテリアルは Snow (雪) です。_World_Aligned_Blend_ は遷移を処理します。

終了時にマテリアルを保存してください!

レイヤー マテリアルのインスタンス化

マテリアル レイヤーの側面を順々に操作するマテリアルは既にパラメータで設定済みなので、これをインスタンス化および編集していきます。UE4 で行うこれらの作業はとても簡単です。

  1. プロジェクトをスターターコンテンツから始めた場合は、新規マテリアルを適用する椅子とテーブル一式があります。そうでない場合は、独自のアセットまたは BSP をご自由に配置してください。

    DefaultLevel.png

  2. Mat_SnowyChrome マテリアルを 右クリック して、[Create Material Instance (マテリアル インスタンスを作成)] を選択します。初期設定の名前をそのまま付けます。

    CreateMaterialInstance_ContextMenu.png

  3. コンテンツ ブラウザ から新規のインスタンスをドラッグして、シーン内のいずれかのオブジェクトへドロップします。

    DragDropMaterialSnowy.png

  4. インスタンスを ダブルクリック して、プロパティに必要な変更を加えます。クロムのカラー、クロムの法線マップの深度、表面上に降りかかる降雪量の変更ができます。

    SnowChromeInstanceTesting.png

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback