■[UnrealEngine]カーブアトラスでグラデーションマップ
今回はUnrealEngineにて、テクスチャを用意せずカーブアトラスでグラデーションマップを作るメモです。
UnrealEngineでは、リニアカラーカーブ・カーブアトラスアセットを作成することで、リソースを用意することなくグラデーションを作成することができます。
こちらを使用し、グラデーションマップとして活用するまでの流れを作成していきます
■カーブ・カーブアトラスの作成方法

・カーブアトラスと、カーブアトラスに登録するリニアカラーカーブを作成します。
ちょっと分かりづらいですが、「新規作成」→「その他」枠の中に「カーブ」「カーブアトラス】があります。
■カラーカーブ作成
・カーブから[CurveLinearColor]を選択・作成します。
これをLinearColorのRGBAカーブとして活用していきます。

■カーブアトラス作成
・次にカーブアトラス
初期では[Square Resolution]がオンで正方形となっていますが、大抵の場合チェックを外して、必要最低限の解像度に抑えたほうが良い気がします。
今回は1つのカーブだけ使うので、[Texture Height(縦のサイズ)]を「1」とします。

■カラーカーブの登録
・次に、作成したカラーカーブを登録します。
[Gradiant Curves]にスロットを追加し、インデックスに作成したカラーカーブをドラッグ&ドロップします。
これでアセットとしてのグラデーションは準備完了です。

■マテリアル作成
・続いて、マテリアルで組んでいきます。
まずは作成したカーブアトラスをマテリアルエディタにドロップします。
そうすると、カーブアトラスがテクスチャサンプルとして使用できます。

・続いてグラデーションさせる下地マップの準備です。
今回はこちらの3マップを使ってグラデーション具合を見ていきたいと思います。

■つなぎ方
基本的には グラデーションテクスチャ(カーブアトラス)のUVに
・R=高さマップ
・G=グラデーションマップのV値
のVector2を入力する形になります。
(今回のような縦サイズが1の場合、Scalarでも問題ないと思います。)

■カラーカーブを変化させてみる
・カラーカーブと並べて、いくつか変化例を並べてみます。



■グラデーションマップのV値について
・カーブアトラスに複数のカラーカーブを登録して、Vector2のGに値を入れると使用するカーブを変更することができます。
ただ、その時の値にちょっとクセがあるので注意が必要です。

■注意点:カーブとカーブの補間
・カーブアトラスをテクスチャサンプラで使用する際、カーブとカーブの間に補間が入ります。
例えば4つのカーブを登録した場合、Vに入れる値としては、正確には以下のような「分割の中央値」を指定する必要があります。
※[Tiling Method]が[Clamp]の場合、最初と最後のカーブだけは[0.0]・[1.0]で取得可能ではあります。


■[RemapValueRange]を使って簡易ディゾルブ
・小ネタとして、[RemapValueRange]を使用して簡易ディゾルブを仕込むネタのメモです。
■入力例と挙動イメージ
Input :高さマップ
Input Low :「Min」←ここを操作
Input High :1
Target Low :0
Target High :1
・高さマップのMinを押し上げることで、簡易的なディゾルブ効果にできます。

・他のマップで試すと、以下のような形になります。
(見やすくするため、[RemapValueRange]まわりのノードを[Collapsed Nodes]に折りたたんでいます。)

■補足_[SmoothStep]との違い
・[SmoothStep]でも類似の形になりますが、スムーズ補間の影響でカラーカーブの形と少々違いが出てしまうため、注意が必要です。

・今回は以上となります。
グラデーションマップで着色する手法を使う際、カーブアトラスを活用すると、UnrealEngine上で直接カーブを編集できるので、とても便利だと思います。

コメント