この記事でのバージョン
Unity 2017.4.4f1
はじめに
今回はパーリンノイズを使ってランダムに光を揺らめかせてみようという感じの記事です!
イメージとしては以下のような感じ。
なお、記事中では以下のアセットを使っています。
光のゆらめき
UnityではLightを使う事で手軽に光を追加し、明るくする事が出来ます。
ただ、炎などの明かりは一定でない、つまり揺らめている方が自然なので、
LightのRangeを良い感じに変化させて、それっぽくしたくなります。
今回はこのLightのRangeの変化をパーリンノイズでやってみました。
FlickeringLight
さっそくパーリンノイズでランダムに光が揺らめくライトFlickeringLightとその中で使ってる
パーリンノイズの生成するクラスPerlinNoiseGeneratorのプログラムです。
なお、FlickeringLightでやってる大小のパーリンノイズを合成する話や
PerlinNoiseGeneratorに関するの詳しい事は以下の記事を参照の事。
FlickeringLightの使い方はいたって簡単、LightにAddし
Range MinとMaxでRangeが取る値の最小と最大を設定、
さらにRate Of Changeで変化の速さ(大きいほど早い)を設定するだけ。
後はシーンを再生すると自動でRangeを変化させ、光が揺らめいてるような感じにしてくれます。
ちなみに、Inspectorの値はシーン実行中に変えても反映されるので、
変化を見ながら調整するという事も可能です。
同様に2Dの画像(Sprite Renderer)に対しても
LightとFlickeringLightを設置すれば、光を揺らめかせる事が出来ます。
なお、Sprite RendererでLightを使う方法については以下の記事を参照の事。