2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UE5】点滅するマテリアルの作り方

Posted at

チカチカと明滅するマテリアル

マテリアルグラフの全体像は以下の画像の通り。

image.png

各ノードの役割

Timeノード

毎フレーム更新される「経過時間」を返すノード。秒単位でカウントアップされる。

Multiplyノード

入力ピンAと入力ピンBを乗算した結果を返却するノード。
今回は入力ピンAに数値を入れ、入力ピンBにTimeノードの出力をつなげる。
入力ピンAの数値を大きくすると明滅のスピードを調節することが可能(例:0.2→ゆっくりと明滅、10.0→素早く明滅)。

Sineノード

入力値θに対して sin(θ) を返すノード。正弦波なので-1~1の間の値を返却する。

Addノード

入力ピンAと入力ピンBの値を加算するノード。
Sineノードで-1~1の間になった値を0~2の間にするため、今回は1.0を加算。

Multiplyノード(2つ目)

0~2の間になった値を0~1の間に変更するため、0.5を乗算。

Powerノード

Baseピンの値をExpピンの値で累乗するノード。
今回はBaseピンの値が0~1の間なので、数値を1よりも大きくすることで光の立ち上がり/減衰を鋭くすることができる。逆に1よりも小さい値をExpピンに入力すると緩やかな光の減衰にすることができる。

Lerpノード

以下の式に従って入力ピンAと入力ピンBの値をスライドしながら出力を制御するノード。

Output = A * (1 - Alpha) + B * Alpha

今回は1から10の間をPowerノードからの出力にしたがって毎フレーム行き来する。したがって、少し光っている状態とかなり光っている状態を行き来しながら繰り返すようなマテリアルになる。
Aの値を0にすると、この後のMuliplyノードに0が出力されるため、完全に消灯する瞬間を作ることができる。

Multiplyノード(3つ目)

入力ピンAにはLerpノードの出力ピンをつなぎ、入力ピンBにはConstant3Vectorノードをつなげる。
Constant3Vectorは発光させたい色を設定する。ベクトルの大きさを大きくすれば発光は強くなる。

Constant3Vectorノード(ベースカラー用)

Lerpノードの入力ピンAを0にしている場合、エミッシブカラーの入力がなくなったときに表示される色。黒くすれば発光がなくなった時に暗くなり、点滅している感じになる。
Lerpノードの入力ピンAを0以上にしている場合はエミッシブカラーの影響であまり関係なくなる。

終わりに

あとは各ノードの数値を好みに合わせて調整すれば点滅するマテリアルの完成。
今回の構成は基本的な構成なので点滅のタイミングや光の減衰・増加パターンの変化を加えたい場合はノードを追加したり、一部を入れ替えたりすることでより多彩な表現ができるはず。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?