【Unity5】Emissionで物体を光らせる
MaterialのEmission値を変えて、物体を光らせます。
はじめに
Materialを選択してInspectorを見ると、「Emission」という値があります。この値を変えると物体自らが発光するみたいです。テラシュールブログさんの記事を見かけたりして気になっていたので、調査することにしました。
Emissionの初期値は0。
全く光っていない(暗闇の中心にCubeを置いています)。
Emissionの値を変える
Emissionを0.5にすると、ほんのり光りだしました。暗闇でも形がわかります。
Emissionを1にすると、周りを少し照らす程度にまで明るくなります。ちなみに、光っているCubeを含めすべてのオブジェクトをstaticに設定しています。
Emissionを5にすると、周りのオブジェクトが見えるほど強く光ります。
ちなみに、Emissionが1を超えると、色を選択する枠内に「HDR」という文字が現れます。
HDRはおそらくHigh Dynamic Rangeのことで、暗いところにある光はより眩しく見えるような人間の目の仕組みに近いレンダリング手法です。Unityマニュアルによると、Forward Renderingモードではイメージエフェクトを用いた時のみ効果が発揮され、Deferred Renderingモードではイメージエフェクト無しでも効果が発揮されるようです。
ImageEffectをインポートして、カメラにBloomコンポーネントをつけるとこんな感じになります。
Mask
Emissionにマスク画像をアタッチすることで、マテリアルの一部だけ光らせることができます。
こんなマスク画像を使うと・・・
真ん中だけ光ります。
AssetStoreからインポートしたモデルでも、テクスチャ画像をもとにマスク画像を作れば、任意の部分を光らせることができます!
お花の3Dモデルをインポートして、花びらの輪郭だけ色をつけたマスク画像を作ると・・・
SFチックな花のできあがり。機械のボタン部分など、ちょっとした光が欲しいときはマスク画像を自作するのも良いかもしれません。