見出し画像

「入門」UE5/UEFNマテリアルの基本(ガラスの表現)Part7

前回は、テクスチャー座標と歪みについて紹介しました。

今回は、ガラスの表現を紹介します。


最終結果

新規マテリアルを作ろう

Materialフォルダ内に、M_Glassというマテリアルを作成して開きます。

マテリアル(M_Glass)を開き、詳細パネルを見てみましょう。
Blendモードという項目があります。

  • Blendモードとは
    マテリアルの最終出力(最終結果)と、その背景のブレンド方法を設定する項目です。
    Opaque (不透明) ライトなどが貫通しない表面で金属、石、プラスチックなど様々な場面で使用されます。
    Masked (マスク) 白黒画像などを使い、黒色の部分を透過させます。
    Translucent (透過) 
    主にガラスや窓などの透過の処理に使用します。
    Additive (加算) 
    火、蒸気、ホログラムなどのエフェクト系に使用され、使用方法はMaskedに似ています。
    Modulate (調整) 
    マテリアルの値と、背景を乗算します。

ガラスを表現するのでBlendモードをTranslucent (透過)に変更します。

Translucent (透過)に変更することで、マテリアルノードにOpacityとRefractionが使用できるようになります。

Opaqueの場合
Translucentの場合

続いて、さらに下にスクロールしてtranslucencyという項目の中のLighting ModeSurface TranslucencyVolumeに変更します。
これは、マテリアルの表面が反射を受けるかどうかの設定です。
ガラスは反射の影響を受けるので以下のように設定します。

マテリアル本体の基本設定が出来ました。

各ノードの配置

それでは、以下のように各ノードを繋ぎます。
Constantと、Constant3Vectorのシンプルなノードです。
Constantの値0.5はOpacityに繋いでいますが、ここで透明度の調整が可能です。
0は透明度100%、1は透明度0%になります。

Fresnel(フレネル)ノードを以下のように追加します。
検索バーに「fre」と入力することで見つけることができます。

  • Fresnelとは
    ライティング手法の一つで、マテリアルのシルエット(輪郭)をくっきりさせるノードです。

Fresnelが実際にどのようなものか確認します。
アンリアルエンジンでは、ノードのプレビューが確認できます。
Fresnelがどのようになっているか確認してみましょう。

  • 確認方法
    プレビューを確認したいノード上で、
    右クリック
    Start Previewing Node
    停止する場合は、
    右クリック
    Stop Previewing Node

プレビューで見てわかるように円の中心が黒色で0外に向かって徐々に白色の1になっています。
ということは、外に向かって行く程、シルエットをはっきりさせることができます。

Fresnelの入力ピンExponentlnは、数値を上げると白色の範囲を調整することができます。(輪郭の強弱)

BaseReflectFractionInは、反射率の設定で値を1にするとフレネルの効果が失われます。

現在フレネルを繋いでいるRefrationですが、Refrationは光の屈折率IOR (Index of Refraction)という光学単位です。
UE5では、この屈折率をindexの数値によって調整します。
以下はアンリアルエンジンが推奨している数値です。
もし、水面などを作っているときは水のIOR値1.33にする事で、水中での光の屈折がよりリアルに表現できます。

Lerpとは

Lerpノードを以下のように追加します。

LerpはキーボードのLキーでショートカットが用意されています。

  • Lerpとは
    Linear Interpolate(線形補間)の事で、マテリアルでは入力ピンのAとBの値をブレンドする事が可能です。
    Alphaに関しては、AとBに入力された値に0でA側(現在は緑)が100%、1でB側(現在は赤)が100%になります。因みに、Alphaのデフォルト値は0.5になるのでAとBがちょうどブレンドされてお互い50%になります。

それでは、話を戻します。
以下のようにLerpにConstantノードを繋ぎます。

上記の繋ぎ方が、どうなるのかわからない人は、フレネルのプレビューを見たときを思い出しましょう。

以下のようになっています。

中心部分は黒っぽいのでLerpのAに入力した1が適応されて、外周は白色で1なのでLerpのBが適応されて1.33になります。
そして最終的に以下のようになります。

まとめ

  • マテリアルのBlendモードでマテリアルの用途を設定できる。

  • フレネルは中心が黒色(0)で外に向けて白色(1)になる。

  • Lerpの入力はAとBとAlphaの3つを持ち、Alphaに入力された数値によって、Aを出力したりBを出力したりもしくはブレンドさせる事もできる。

次回

メッシュの頂点を取得して、頂点のペイントを紹介します。


この記事が気に入ったらサポートをしてみませんか?