|
執筆バージョン: Unreal Engine 5.7.1
|
はじめに
こんにちは、アーティストの天見です。
今回は、カメラとオブジェクトの距離に応じて明るさが変化するマテリアルを作成していきます。
モニターやランプなど、Emissive(自己発光)要素を持つオブジェクトに対して、
– 近くにいるときだけ発光させたい
– 遠くでは暗く表示したい
といった演出をしたい場合に役立つ方法です。

マテリアル
◆ 全体構成

◆ Lerp(Linear Interpolate)で色を切り替える
Lerp ノードを使用して、距離に応じてマテリアルの色を切り替えます。
- A: カメラが近づいたときのマテリアル色
- B: カメラが遠いときのマテリアル色
- Alpha: A と B を切り替えるための値

◆ カメラ距離によるマテリアル色の切り替え
位置情報を出力する
まず、位置を出力するためのノードを作成します。
– Object Position(Absolute)
オブジェクトの位置を出力します
– Camera Position
カメラの位置を出力します

距離制御用パラメーターの作成
次に、距離制御用のパラメーターを2つ作成します。
– StartDistanceFade
A から B に切り替わり始める距離
– EndDistanceFade
A から B に完全に切り替わる距離
Start と End の数値が近いほど、切り替えは瞬時になります。
数値の差が大きいほど、なだらかにフェードして切り替わります。
ノード構成
以下のようにノードを組み立てます。

1. Distance
カメラからオブジェクトまでの距離を計算
2. Subtract
StartDistanceFade の値で距離をオフセット
3. Divide
EndDistanceFade と StartDistanceFade の差で割り、比率を算出
4. OneMinus(1-x)
値を反転
5. Clamp
値を 0.1 ~ 1.0 の範囲に制限
今回は一番遠くても0.1 のみAの明るさを維持する。
これを Lerp の Alpha に接続します。
完成
実際に見てみましょう!
カメラが近づくにつれて発光が強くなり、
遠ざかると暗くなるマテリアルが完成します。
