Bloomで光の演出
今回はBloomによる光の演出について紹介します。
※この記事はUnity4向けです。Unity 5はこちら
単純にオブジェクトを輝かせたい場合、Bloomが楽です。例えば、以下のように機能します。*1
Bloomはアセットストアに色々とありますが、とりあえずUnity標準のStandardAssetsに入っているアセットを使用します。
StandardAssetsには「Fast Bloom(軽い・適当)」と「Bloom(遅いけど綺麗)」と「Bloom And Flares(フレアとブルーム)」の三種類があります。モバイルなら無条件でFastBloomを選びましょう。
ちなみにFastBloomは選択欄ではBloom(Optimize) と表示されます。
使い方
- カメラのHDRにチェックを入れる
- 発光させたいオブジェクトのマテリアルにカラーが1以上の値を出せるシェーダー(Self-illumin/DefuseやParticle/Additive)設定する。
もしくは光らせたいオブジェクトに光を当てる。 - カメラにBloomをアタッチし、Threshholdを1に設定する。
- もっと光らせたい場合はBloomのIntensityを増やす。
これで後はモデルの色が1以上になるようにすると、右のように光ります。
説明
Threshholdは、光っていると判定する為の閾値です。この値以上の色が出ている物体が光ることになります。
この値を低く設定すると、何でも光ります。下はThreshholdを低く設定したケースです。単純に光らせたい場合はThreshholdを減らせば良いですが、これでは本来光らせたくないオブジェクトも光ってしまいます。(あと、背景の色も変わります)
そこでCameraのHDRを使用します。
HDRは、要するに1以上の色を出せるようにする設定です。通常色は「0〜1」の範囲でしか表示する事は出来ませんが、HDRにチェックを入れる事で、1以上の色も表現する事が可能になります(ただし基本的に1以上の色は白く表示されます)*2
下はHDRを切った状態です。左の「白(固定)」と右の「白より高い白」では見分けが付きません。ONにすると、光ります。
1以上の色を出すには、強い光を当てたり、1以上の値を出せるシェーダーを使用します。
とりあえず動かす分にはParticleのAlphaやSelf IlluminateのDefuseが動きますが、シェーダーを記述する事でさらにおもしろいことが出来そうです。
例えば下の演出は、テクスチャの特定色のみを高くする…といった事を行っています。
Bloomはお手軽に見た目リッチに出来ます。モバイルでは多少重いので考えものですが、PCで動かすならとりあえず入れておくのも良いかもしれません。