【UE4】おすすめマテリアルBP 初級編

マテリアル

はじめに

UE4のマテリアルノードを使いこなすことができると、表現の幅を広げ、作業工程やデータ量を削減することができます。しかし、”ノード”と聞くと、「難しそう…」と身構えてしまう方も少なからずいらっしゃると思います。
そんな方のために、比較的シンプルな構造、かつパワフルなノードを紹介いたします。

おすすめマテリアルBP

ベースカラー調整 / Desaturation,Multiply,Power

他に使うマテリアルBP
Scalarparameter,VectorParameter,TextureSampleParameter2D

ベースカラーの彩度、明るさ、色合い、コントラストを調整することができます。
外部アセットの色合わせなどに使用します。

マテリアルBP

Multiply
2つの入力を受け取り、それらを乗算して結果を出力します。複数のチャンネルで値を渡す場合、各チャンネルは個別に乗算されます。
明るさでは、Aで受け取ったRGBに、Brightnessで入力された同じ値を乗算します。一方色合いでは、Tintで入力された色の持つRGB各チャンネルの異なる値を乗算します。
その結果、同じMultiplyノードを使ってもBで入力される値の取り方によって、異なる色調整が可能になります。

Desaturation
特定の割合に基づいて、入力の彩度を下げるか、入力の色をグレーの濃淡に変換します。
Fractionへの入力で適用する彩度低下量を指定します。「0.0(完全に元の色、彩度の低下なし)」から「1.0(彩度を完全に落とした状態)」の範囲で、割合を指定します。負の値を入力すると彩度が上がります。

ノーマルマップ強度調整 / FlattenNormal

他に使うマテリアルBP
Scalarparameter,TextureSampleParameter2D
ノーマルマップの凹凸の強度を調整することができます。
Flatnessに入力される値が、0.0で元の状態、1.0で凹凸が完全に除去されます。負の値を入力すると凹凸が強くなります。
マテリアルBP

OneMinus
0.0から1.0への数値の変遷で凹凸が除去され、負の値の入力で凹凸が強くなることに少し違和感を感じられる方もいると思います。
その場合、ScalarParameterとFlattenNormalの間に、OneMinusを追加します。
OneMinusは、入力値「X」を受け取り、「1 – X」を出力します。
入力カラーが [0、1] の範囲にある場合、OneMinus は一般に「invert (反転)」と呼ばれるものと同じ効果があります。

OneMinusの効果を加味した上で、ScalarParameterのデフォルト値を1.0に変更します。
これにより、1.0より大きい値を入力すると凹凸を強く、小さい値を入力すると除去されるようになります。(ベースカラー調整のDesaturationでも同様のことが言えます。)

ワールド座標投影 / WorldAlignedTexture

他に使うマテリアルBP
Scalarparameter,TextureObject,(OneMinus)

メッシュの持つUV座標を使用せず、ワールド座標でテクスチャを投影することができます。
地形や岩、壁など比較的大きく、ユニーク(独特・固有)なテクスチャを必要としないモデルに使用します。

マテリアルBP

TextureObject
WorldAlignedTextureでは、使用するテクスチャをテクスチャオブジェクトに変換する必要があります。
手順は、マテリアルエディタ上にテクスチャを配置→右クリック→「Convert to Texture Object(テクスチャオブジェクトに変換)」です。

※補足
このノードのみでマテリアルを構築すると、タイリング感が顕著に出てしまいます。解決策として、他のテクスチャとのブレンド、カメラからの距離に応じたテクスチャのスケール変更などが挙げられます。(今回は具体的な解決策は割愛しますが、執筆を予定しています。)

簡単な風揺れ表現 / SimpleGrassWind

他に使うマテリアルBP
BoundingBoxBased_0-1_UVW,Power,ScalarParameter,VectorParameter
簡単な風揺れ表現ができます。ウェイトマップと風の強度を指定できます。方向の指定はできません。
草や布に使用します。
マテリアルBP

BoundingBoxBased_0-1_UVW
ウェイトマップの入力(WindWeight)に、ScalarParameterなどの単一の値を入力することもできます。しかしその場合、全体的に均一に揺れてしまいます。
草の場合、根本は揺れず上部に向けて大きい揺れが必要になります。
今回は、BoundingBoxBased_0-1_UVWを使用しました。
BoundingBoxBased_0-1_UVWは、メッシュのサイズでUVを取得します。出力ピンのRGBはそれぞれXYZにあたります。
高さ(Z)の情報が必要なので、Bから取得します。


上の画像が取得したウェイトです。グラデーションのコントラストを調整できるようにPowerを間に使用しています。

コメント