4.0 Materialとは

  1. モデルなどの外観を決めるアセット(人モデルの髪を黒にしたり青にしたり…)
  2. Materialは必ず一つ設定されています
  3. 外観に対する様々な指定が出来ます
  4. 色、光沢の度合い、オブジェクトの透過可否など
  5. UEではMaterialの編集をマテリアルエディタというノードベースで行います
  6. 簡単に言うと、HLSL(DirectXのシェーダー)コードのスニペットのビジュアル表現です
    また、HLSLで書くことも可能ですがHLSLについては説明しません
  7.  Materialの例

4.1 Materialの作成

  1. 下記の手順でBPの作成をします
  2.  コンテンツフォルダ選択 > 右クリック > マテリアル
    BP作成

4.2 MaterialEditorのUI説明

  1. BPと同じくノードベースで組みます
  2. ウィンドウ説明
    1. ツールバー
    2. セーブや適用などの様々なショートカットです
    3. ビューポートパネル
    4. リアルタイムでマテリアルの結果を確認でき、下のアイコンでプリニティブ形状を変えることも出来ます
    5. 詳細パネル
    6. マテリアルのタイプ、モードの設定やその他マテリアルに関することが変更出来ます
    7. マテリアルグラフパネル
    8. BPでのグラフパネルと同じで、必ず1つのベースマテリアルノードが存在します
    9. 統計パネル
    10. 今開いてるマテリアルのコストなどが確認出来ます
    11. パレットパネル
    12. マテリアルの様々なノードをドラックし、使用することが出来ます

4.3 入力プロパティ

  1. ベースマテリアルノードの入力の説明です
  2. 見た目や詳しい説明などはここでは説明しませんので、自身で触って確かめて下さい
  3. BaseColor
  4. 全体的な色の定義
  5. Metallic
  6. サーフェスがどの程度「金属に似ている」かを調整します
    非金属:0、金属:1
  7. Specular
  8. サーフェスが反射する光の量を示しています
    完全反射なし:0、完全反射あり:1、Default値:0.5
  9. Roughness
  10. サーフェスの粗さ、または滑らかさを制御でき、滑らかな場合は鏡のような反射になります
    滑らか:0、粗い:1
  11. Anisotropy & Tangent
  12. 2つの値を使用して、ラフネスの異方性とライトの指向性を調整することができ、艶消し金属のような表現が可能です
    Default:等方性、値を使用:異方性
  13. BaseColor
  14. 発光、発光の明るさを制御出来ます
  15. Opacity
  16. 全体的な透明度を制御出来ます(Translucent、Additive、Modulatedモードのみ)
    完全透明:0、完全不透明:1
  17. Opacity Mask
  18. 部分的な透明度指定出来ますが、部分の中間的な透過処理が出来なく完全透明か完全不透明しか出来ません(MaskedBlendモードのみ)
  19. Normal
  20. 法線マップを受け取り、平板なモデルの表面に凹凸があるかのように見せることが出来ます
  21. World Position Offset
  22. ワールド空間でメッシュの頂点を操作する際に使用します
  23. Subsurface Color
  24. 表面を通過するライトの色の変化をシミュレートし、皮膚の表現などに使用されます(Subsurfaceプロパティのみ)
  25. Custom Data
  26. 状況に合わせた入力が出来ます(入力要素は指定されている中から選びます)
    Eye、Hair、Clothなど
  27. Ambient Occlusion
  28. 主にサーフェスの凹部内で発生するセルフ シャドウイングをシミュレートする際に使用されます
  29. Refraction
  30. サーフェスの屈折のインデックスをシミュレートさせることができ、主にライトを屈折させる水などに使用されます
  31. Pixel Depth Offset
  32. 設定したロジックを使用してシェーダー内のピクセル深度を調整するために使用します

4.4 Shading Model

  1. 最終的なカラーに仕上げるためのマテリアル入力の組み合わせを定義です
  2. 一部を抜粋して説明しています
  3. Unlit
  4. Emissive入力とOpacity入力のみになり、ライトには反応しません
  5. Default Lit
  6. デフォルトのシェーディングモデル
  7. Subsurface
  8. 表面化散乱(SSS)マテリアルに使用します
    Subsurface Color入力が使用可
  9. Preintegrated Skin
  10. 人肌に似たマテリアルに使用します
    Subsurface Color入力が使用可
  11. Clear Coat
  12. クリア コート塗装などのような、透明のコーティングが施されているマテリアルに使用します
    ClearCoat入力、ClearCoatRoughness入力が使用可

4.5 MaterialEditorの操作方法

  1. 基本操作はBlueprintと同じです
  2. 基本操作
  3. ノード検索: 右クリック
    画面移動: 右クリック + マウス移動
    画面拡縮: マウスホイール
    ノード選択: ノードに対して右クリック
    ノード移動: ノード選択したままマウス移動
    ノード複数選択: 右クリック長押し + マウス移動
    ノード削除: del
    検索: Ctrl + F
    適用: Ctrl + S
  4. ノードを出すショートカット
  5. コメント: C
    Add: A + 左クリック
    BumpOffset: B + 左クリック
    Divide: D + 左クリック
    Power: E + 左クリック
    MaterialFunctionCall: F + 左クリック
    If: I + 左クリック
    LinearInterpolate: L + 左クリック
    Multiply: M + 左クリック
    Normalize: N + 左クリック
    OneMinus: O + 左クリック
    Panner: P + 左クリック
    ReflectionVector: R + 左クリック
    ScalarParameter: S + 左クリック
    TextureSample: T + 左クリック
    TexCoord: U + 左クリック
    VectorParameter: V + 左クリック
    Constant: 1 + 左クリック
    Constant2Vector: 2 + 左クリック
    Constant3Vector: 3 + 左クリック
    Constant4Vector: 4 + 左クリック
    ComponentMask: Shift + C

4.6 Materialを使う

  1. 前回使用したモデルにテクスチャを使用して、金属感のあるマテリアルを作成
  2. テクスチャのインポート
  3. 下記のテクスチャをモデルと同じようにドラックでインポートします
  4. Quinn > Textures > 01 > T_Quinn_01ID_D
  5. テクスチャをマテリアルグラフに持ってくる
  6. インポートしたテクスチャをマテリアルグラフにコンテンツブラウザからドラックします
    ※ テクスチャサンプルノード出して設定も出来ます
  7. テクスチャと金属の設定
    1. テクスチャサンプルノードをBaseColorに繋ぎます
    2. Metallicに繋ぐConstant(単一浮動小数値)ノードを出します
    3. Constantノードは検索または1 + 左クリックで出すことが可能です
    4. ConstantノードをMetallicに繋ぎます
    5. Metallicに繋いだConstantノードの値を「1」にします
    6. 適用をします
    7. 適用をしないと反映がされない為必ず必要です
  8. 確認1
  9. 下記のようになっていれば問題ないです
  10. 確認1
  11. 作ったマテリアルをモデルに設定
  12. スケルタルメッシュを開き マテリアルスロット1 にドラックします
  13. マテリアルをモデルに設定
  14. もう一つのマテリアルも同じ作業で行います
  15. テクスチャは下記で、スケルタルメッシュのスロットは2です
  16. Quinn > Textures > 02 > T_Quinn_02ID_D
  17. 完成したモデルを確認
  18. 完成したモデルをレベルに配置して確認してみましょう
  19.  完成図

4.7 Material Instanceとは

  1. 通常のマテリアルの編集および変更には再コンパイルが必要ですが、マテリアルを再コンパイルすることなく、編集できます
  2. インスタンス化することにより、マテリアルの再コンパイルに大きな負荷をかけることなくマテリアルの外観を変更することが出来ます

4.8 Material Instanceを使う

  1. 先ほど作成したマテリアルをマテリアルインスタンスにして、メタリックの値を調整出来るようにします
  2. パラメータに変更
  3. Constantノードは設定したら変えれない為、後から変えられる「Param」などに変換する必要があります
  4.  Constantノードを右クリック > パラメータに変換
    パラメータに変換
  5. マテリアルインスタンスを作成
  6. マテリアルインスタンスを作成するには、コンテンツブラウザから作成をします
  7.  マテリアルを右クリック > マテリアルインスタンスを作成
    マテリアルインスタンスを作成の作成
  8. 確認
    1. 作成したマテリアルインスタンスをスケルタルメッシュに適用させます
    2. マテリアルインスタンスを開きます
    3. 詳細パネルの「Global Scalar Parameter Values」の値をチェックを入れて変更します
    4. マテリアルインスタンス化した部分だけ見た目が変更されていることを確認します

Ex オーバーレイマテリアル

  1. UE5.1からの機能「オーバーレイマテリアル」を使用すると、メッシュを二回レンダリングすることにより設定されているマテリアル別のマテリアルを重ねられます
  2. 背面法等を使ったアウトラインがとても簡単に再現出来ます
  3. オーバーレイマテリアルのサンプル
  4.  サンプルコード

引用・参考資料