(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]

パーリンノイズでランダムに光を揺らめかせる【Unity】【パーリンノイズ】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2017.4.4f1


はじめに

今回はパーリンノイズを使ってランダムに光を揺らめかせてみようという感じの記事です!


イメージとしては以下のような感じ。



なお、記事中では以下のアセットを使っています。








光のゆらめき

UnityではLightを使う事で手軽に光を追加し、明るくする事が出来ます。


f:id:kan_kikuchi:20190115102109j:plain


ただ、炎などの明かりは一定でない、つまり揺らめている方が自然なので、

LightのRangeを良い感じに変化させて、それっぽくしたくなります。


f:id:kan_kikuchi:20190115104159j:plain
f:id:kan_kikuchi:20190115104314g:plain


今回はこのLightのRangeの変化をパーリンノイズでやってみました。


FlickeringLight


さっそくパーリンノイズでランダムに光が揺らめくライトFlickeringLightとその中で使ってる

パーリンノイズの生成するクラスPerlinNoiseGeneratorのプログラムです。



なお、FlickeringLightでやってる大小のパーリンノイズを合成する話や

PerlinNoiseGeneratorに関するの詳しい事は以下の記事を参照の事。



FlickeringLightの使い方はいたって簡単、LightにAddし

Range MinとMaxでRangeが取る値の最小と最大を設定、

さらにRate Of Changeで変化の速さ(大きいほど早い)を設定するだけ。


f:id:kan_kikuchi:20190115110214j:plain


後はシーンを再生すると自動でRangeを変化させ、光が揺らめいてるような感じにしてくれます。

ちなみに、Inspectorの値はシーン実行中に変えても反映されるので、

変化を見ながら調整するという事も可能です。



同様に2Dの画像(Sprite Renderer)に対しても


f:id:kan_kikuchi:20190115112359j:plain


LightとFlickeringLightを設置すれば、光を揺らめかせる事が出来ます。


f:id:kan_kikuchi:20190115112933j:plain


なお、Sprite RendererでLightを使う方法については以下の記事を参照の事。