読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Bloomで光の演出

Unity おもしろ演出、演出の強化 ImageEffect 3D 2D

今回はBloomによる光の演出について紹介します。

※この記事はUnity4向けです。Unity 5はこちら

tsubakit1.hateblo.jp

 

単純にオブジェクトを輝かせたい場合、Bloomが楽です。例えば、以下のように機能します。*1

f:id:tsubaki_t1:20140909021809j:plain

 

Bloomはアセットストアに色々とありますが、とりあえずUnity標準のStandardAssetsに入っているアセットを使用します。

StandardAssetsには「Fast Bloom(軽い・適当)」と「Bloom(遅いけど綺麗)」と「Bloom And Flares(フレアとブルーム)」の三種類があります。モバイルなら無条件でFastBloomを選びましょう。

ちなみにFastBloomは選択欄ではBloom(Optimize) と表示されます。

 

使い方

  1. カメラのHDRにチェックを入れる
  2. 発光させたいオブジェクトのマテリアルにカラーが1以上の値を出せるシェーダー(Self-illumin/DefuseやParticle/Additive)設定する。
    もしくは光らせたいオブジェクトに光を当てる。
  3. カメラにBloomをアタッチし、Threshholdを1に設定する。
  4. もっと光らせたい場合はBloomのIntensityを増やす。

 

これで後はモデルの色が1以上になるようにすると、右のように光ります。

f:id:tsubaki_t1:20140909012121j:plain

 f:id:tsubaki_t1:20140909015547j:plain

説明

Threshholdは、光っていると判定する為の閾値です。この値以上の色が出ている物体が光ることになります。

この値を低く設定すると、何でも光ります。下はThreshholdを低く設定したケースです。単純に光らせたい場合はThreshholdを減らせば良いですが、これでは本来光らせたくないオブジェクトも光ってしまいます。(あと、背景の色も変わります)

 

f:id:tsubaki_t1:20140909014818j:plain

そこでCameraのHDRを使用します。

HDRは、要するに1以上の色を出せるようにする設定です。通常色は「0〜1」の範囲でしか表示する事は出来ませんが、HDRにチェックを入れる事で、1以上の色も表現する事が可能になります(ただし基本的に1以上の色は白く表示されます)*2

 

下はHDRを切った状態です。左の「白(固定)」と右の「白より高い白」では見分けが付きません。ONにすると、光ります。

f:id:tsubaki_t1:20140909012503j:plain

 

1以上の色を出すには、強い光を当てたり、1以上の値を出せるシェーダーを使用します。

 

とりあえず動かす分にはParticleのAlphaやSelf IlluminateのDefuseが動きますが、シェーダーを記述する事でさらにおもしろいことが出来そうです。

例えば下の演出は、テクスチャの特定色のみを高くする…といった事を行っています。

 

f:id:tsubaki_t1:20140909011158g:plain

 

Bloomはお手軽に見た目リッチに出来ます。モバイルでは多少重いので考えものですが、PCで動かすならとりあえず入れておくのも良いかもしれません。

*1:この演出はImageEffectを使用するため、 Proが必要です。Basic版の場合は、Flareのような「手前に光演出を描画する」方法で代用は可能かもしれません。

*2:実際は光り過ぎない程度にThreshholdを下げるのが良いです