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

evil fridge

冷蔵庫に入れたが最後。

【Unity5】Emissionで物体を光らせる

f:id:daiki-evilone:20170324133243p:plain:left:w120 MaterialのEmission値を変えて、物体を光らせます。

はじめに

Materialを選択してInspectorを見ると、「Emission」という値があります。この値を変えると物体自らが発光するみたいです。テラシュールブログさんの記事を見かけたりして気になっていたので、調査することにしました。
Emissionの初期値は0。
f:id:daiki-evilone:20170324094039p:plain:w300
全く光っていない(暗闇の中心にCubeを置いています)。
f:id:daiki-evilone:20170324095421p:plain:w300

Emissionの値を変える

Emissionを0.5にすると、ほんのり光りだしました。暗闇でも形がわかります。
f:id:daiki-evilone:20170324100508p:plain:w300
Emissionを1にすると、周りを少し照らす程度にまで明るくなります。ちなみに、光っているCubeを含めすべてのオブジェクトをstaticに設定しています。
f:id:daiki-evilone:20170324101329p:plain:w300
Emissionを5にすると、周りのオブジェクトが見えるほど強く光ります。
f:id:daiki-evilone:20170324102258p:plain:w300

ちなみに、Emissionが1を超えると、色を選択する枠内に「HDR」という文字が現れます。
f:id:daiki-evilone:20170324121700p:plain:w300
HDRはおそらくHigh Dynamic Rangeのことで、暗いところにある光はより眩しく見えるような人間の目の仕組みに近いレンダリング手法です。Unityマニュアルによると、Forward Renderingモードではイメージエフェクトを用いた時のみ効果が発揮され、Deferred Renderingモードではイメージエフェクト無しでも効果が発揮されるようです。
ImageEffectをインポートして、カメラにBloomコンポーネントをつけるとこんな感じになります。
f:id:daiki-evilone:20170324123957p:plain:w300

Mask

Emissionにマスク画像をアタッチすることで、マテリアルの一部だけ光らせることができます。
こんなマスク画像を使うと・・・
f:id:daiki-evilone:20170324124431p:plain:w100
真ん中だけ光ります。
f:id:daiki-evilone:20170324124519p:plain:w300

AssetStoreからインポートしたモデルでも、テクスチャ画像をもとにマスク画像を作れば、任意の部分を光らせることができます!
お花の3Dモデルをインポートして、花びらの輪郭だけ色をつけたマスク画像を作ると・・・
f:id:daiki-evilone:20170324132727p:plain:w100
f:id:daiki-evilone:20170324131421p:plain:w300
SFチックな花のできあがり。機械のボタン部分など、ちょっとした光が欲しいときはマスク画像を自作するのも良いかもしれません。