【Unity基礎】Bloomでエモい光を作る方法

Unityで街灯や懐中電灯などの光源を作るとき、Emissionを設定しているのに、

ちゃんと光っているはずなのに、なんだか物足りない

と感じることがあります。

まずは、下の懐中電灯を見てください。
電球部分にはEmissionを設定しているため、しっかり明るくなっています。でも、なんだか少しウソっぽく感じませんか?

懐中電灯(Bloomなし)
ゆかり
ゆかり

光ってるというより、すごく白い物体があるって感じです…

リンカ先生
リンカ先生

だよね。じゃあ今度はこれを見てみよう。

懐中電灯(Bloomあり)
ゆかり
ゆかり

おお……!
光がふわっとにじんで、一気にそれっぽくなりました!

こちらの画像では、Unityの Bloom という効果を使っています。

Bloomを使うと、強く明るい部分の周囲に光のにじみを加えることができます。

Emissionだけでは「明るい物体」に見えていたものも、Bloomを加えることで、まぶしさや光の広がりを感じる、より印象的な光源に変わります。

夜の街灯や蛍光灯、懐中電灯、ネオンなどでは、この少しの光のにじみがワールドの雰囲気を大きく変えてくれます。

今回の記事では、すでにEmissionが設定されている「懐中電灯」を題材にして、Bloomの基本的な使い方を見ていきます。

Bloomにはいくつかの設定がありますが、最初からすべて覚える必要はありません。

まずは、

  • Bloomとは何か
  • EmissionとBloomは何が違うのか
  • VRChatワールドでBloomを使うにはどうすればいいのか
  • 最初にどの設定を触ればいいのか

このあたりを理解していきましょう。

この記事を読み終えるころには、Emissionで発光させた光源にBloomを加えて、より自然で雰囲気のある光に仕上げられるようになります。

リンカ先生
リンカ先生

じゃあいってみよう!

Bloomを使うと何が変わる?

まずは、Bloomを使っていない状態の懐中電灯を見てみましょう。

懐中電灯(Bloomなし)

Emissionによって、電球部分そのものは明るく表示されています。

しかし、発光している部分の輪郭がくっきりしていて、その周囲にはほとんど光の広がりがありません。そのため、明るい部分だけが周囲から浮いているように見えます

ゆかり
ゆかり

うーん……。ちゃんと明るいのに、なんで不自然に見えるんだろう?

リンカ先生
リンカ先生

現実の強い光が、どう見えるのかを思い出してみよう!

たとえば、夜道で明るい街灯を見てみましょう。光源の形だけがくっきり見えるのではなく、その周囲までぼんやりと光が広がって見えると思います。

夜の街灯

人間の目では、強い光の一部が目の中で散乱するなどして、光源の周囲にも明るさを感じます。特に夜のように周囲が暗い場所では、この光のにじみが目立ちやすくなります。

Bloomは、このような「非常に明るい部分の周囲に光が広がって見える」状態を、画面上で表現するための効果です。

Bloomを有効にすると、画面の中から特に明るい部分を見つけ、その明るさをぼかして周囲へ広げます。

そのため、Emissionによって高輝度になった懐中電灯の発光部分にも、ぼんやりとした光のにじみが加わります。

こうすることで、単に「明るい物体」だったものが、まぶしさを感じる光源のように見えるようになります。

懐中電灯(Bloomあり)

Light・Emission・Bloomの違い

Unityで光を表現するときは、Light・Emission・Bloomの役割を分けて考えることが大切です。

  • Light は、周囲のオブジェクトを照らします。たとえば、光源の近くにある床や壁を明るくする役割です。
  • Emission は、マテリアルそのものを明るく見せます。蛍光管や電球などの「発光している面」を表現するときに使います。
  • Bloom は、画面上の高輝度部分を周囲ににじませます。光源の「まぶしさ」や「光の広がり」を感じさせるための表現です。
Light・Emission・Bloomの役割
ゆかり
ゆかり

整理すると
Light = 周囲を照らす
Emission = 発光面を明るくする
Bloom = 強い光をにじませる
ということですね!

Bloomを使えるようにする

ここから実際にUnityでBloomを設定していきます。

今回は、VCC(VRChat Creator Companion)で作成した Unity 2022 World Project を使用して説明します。

1. Post Processingをインストールする

Bloomは、カメラでシーンを描画したあとに、画面上の強い光をにじませる処理を行います。

このように、カメラで描画したあとに行う処理を「Post Process」といいます。

リンカ先生
リンカ先生

Post(後に)+ Process(処理)という意味だよ

このPost Processを使用するには「Post Processing」パッケージが必要です。

まずは、Window > Package Manager を開き、「Packages: Unity Registry」に変更して、「Post Processing」がインストールされているか確認します。
インストールされていない場合は追加してください。

[Unity] Package ManagerでPost Processingを確認

インストールすると、BloomなどのPost Processをワールドで使うための機能が追加されます。
次の手順から、実際にシーン側とCamera側の設定を行っていきます。

2. Post Processの設定を作る

まずは「この空間では、どんなPost Processを使うか」という設定を作ります。

そのために使うのが、Post-process Volume というComponentです。

Componentは単独ではシーンに置くことができないため、まず空のGameObjectを作成します。

Hierarchyで、Create Empty を選び、名前はたとえば、PostProcessing_Global とします。

空のGameObjectを作成

次に、このGameObjectへ、Add Component > Post-process Volume から、Post-process Volume を追加します。

Post-process Volumeコンポーネントを追加

今回はワールド全体にBloomを適用したいので、Is Global をONにします。

Post-process VolumeコンポーネントのIs GlobalをON

ここまでで、「ワールド全体で使うPost Process設定の入れ物」ができました。

Bloomの概念図

次は、その中に具体的な設定を作っていきます。

3. ProfileにBloomを追加する

Post-process VolumeProfile には、実際にどんなPost Processを使うかを設定します。

まず、Profileの New をクリックして、新しいProfileを作成します。

Post-process VolumeコンポーネントのProfileを新規作成

Profileを作成したら、Add effect... > Unity > Bloom を選択します。これで、このProfileにBloomが追加されます。

Bloomにはいくつか設定項目がありますが、最初からすべて理解する必要はありません。

まずは、次の3つを中心に見ていきましょう。

項目役割
Thresholdどの明るさ以上をBloomの対象にするか
Intensity光のにじみをどれくらい強くするか
Diffusion光のにじみをどれくらい広げるか

最初は仮の値を入れておき、実際の画面を見ながらあとで調整していきます。

たとえば、

  • Threshold:1前後
  • Intensity:1程度から開始
  • Diffusion:初期値のまま

くらいから試してみるとよいでしょう。

Bloomの主要な設定

ただし、Bloomの見え方はEmissionの強さやシーン全体の明るさによって大きく変わります。そのため、これらの値はあくまで開始地点です。

リンカ先生
リンカ先生

このあと、実際の懐中電灯を見ながら調整していくからね

ここまでで、「この空間ではBloomを使います」という設定はできました。

Bloomの概念図

4. CameraとPost Processを関連付ける

次は、この設定をCameraから使えるようにします。

Post Processは、Cameraがシーンを描画したあとに行われる処理です。
そのため、Camera側から「どのPost-process Volumeを使えばいいのか」が分かるようにしておく必要があります。

ただし、Cameraに先ほどのProfileを直接指定するわけではありません。
CameraとPost-process Volumeを関連付けるために、Unityの Layer を使います。

まず、Post Process用のLayerを新しく作ります。

UnityのInspector右上にあるLayersのプルダウンから「Edit Layers」を選びます。
「Layers」の▶を押して、現在のレイヤー一覧を開きます。User Layer 23以降が空いていると思うので、「User Layer 23」に「PostProcessing」と入力して新たなレイヤーを作ります。(User Layer 23が埋まっている場合は、User Layer 24以降の空いている場所で大丈夫です)

次に、先ほど作成した PostProcessing_Global GameObjectを選択し、GameObjectのLayerを PostProcessing に変更します。

Post Process用のレイヤーを作成

これで、「このGameObjectにはPost Processの設定があります」という目印を付けたことになります。

続いて、Hierarchyから Main Camera を選択します。
Add Component > Post-process Layer から、Post-process Layer を追加します。

Post-process LayerLayer には、先ほど作成した PostProcessing を指定します。

Post Process用のレイヤーに変更

これでCameraは、「PostProcessing LayerにあるPost-process Volumeを参照する」ようになります。

Bloomの概念図

ここまで設定できれば、Cameraの映像にBloomが反映されるようになります。

懐中電灯(Bloomあり)

最初は3つの設定だけ触ってみよう

Bloomにはさまざまな設定があります。しかし、最初からすべて理解する必要はありません。

まずは次の3つだけを見てみましょう。

Bloomの主要な設定
項目役割
Thresholdどの明るさ以上をBloomの対象にするか
Intensity光のにじみをどれくらい強くするか
Diffusion光のにじみをどれくらい広げるか

Threshold

Thresholdは、Bloomを発生させる明るさのしきい値です。

値を低くすると、比較的明るい部分までBloomの対象になります。
反対に値を高くすると、本当に明るい部分だけがBloomするようになります。

Thresholdを低くしすぎると、白い壁や明るい床など、本来光らせたくない場所までぼんやり光って見えることがあります。

その場合はThresholdを少し上げてみましょう。

Intensity

Intensityは、Bloomの強さです。

値を上げるほど光のにじみが強くなります。

Bloomを有効にしたのに効果が弱く感じる場合は、まずIntensityを少しずつ上げて確認します。
ただし、上げすぎると光源の形が分からなくなるほど白く広がることがあります。光源の形がある程度残るくらいから調整すると分かりやすいでしょう。

Diffusion

Diffusionは、Bloomがどのくらい広い範囲まで広がるかを調整します。

値を上げると、大きく柔らかく光が広がります。
逆に値を下げると、光源の近くに比較的まとまったBloomになります。

最初は大きく変更せず、Intensityを調整したあとに少しずつ触ってみるのがおすすめです。

Bloomを調整する順番

Bloomの設定に迷ったら、次の順番で調整すると分かりやすくなります。

1. Emissionを確認する

まずは発光させたいマテリアルが、十分な明るさになっているか確認します。

Bloomは明るい部分を利用するため、Emission側が十分に高輝度になっていないとBloomがほとんど出ないことがあります。

2. Thresholdを調整する

次に、発光させたい部分だけがBloomの対象になるようにThresholdを調整します。蛍光管にはBloomが出るけれど、周囲の白い壁には出ない、くらいを目安にします。

3. Intensityを調整する

Bloomの対象が決まったら、Intensityでにじみの強さを調整します。

4. Diffusionを調整する

最後にDiffusionで、光の広がり方を整えます。

リンカ先生
リンカ先生

この順番なら「どの設定を触ればいいのか分からない」という状態になりにくいよ♪

こんなときはどこを調整する?

Bloomがほとんど見えない

Emissionの明るさとThresholdを確認します。Emissionが十分に明るくない、またはThresholdが高すぎる可能性があります。

白い壁まで光って見える

Thresholdを上げます。Bloomの対象になる明るさを限定しましょう。

光のにじみが弱い

Intensityを上げます。

光が広がりすぎてぼやける

DiffusionやIntensityを少し下げます。Bloomは強くすれば良いわけではありません。

光源の形が完全に消えてしまうほどBloomを強くすると、ワールド全体がぼやけた印象になることがあります。

VRChatワールドでBloomが活きる場面

Bloomは、特に暗い場所にある強い光源と相性の良い効果です。

例えば、

  • 蛍光灯
  • 街灯
  • 懐中電灯
  • ろうそく
  • 魔法やエフェクト

などで活用できます。

特に夜のワールドでは、暗い背景と明るい光源のコントラストが大きいため、Bloomの効果を感じやすくなります。

切れかけの蛍光灯(Bloomあり)
切れかけている蛍光灯の輝き

まとめ

Emissionだけでも、マテリアルを明るく見せることはできます。しかし、Emissionだけでは光源の輪郭の外側に光のにじみは生まれません。

Bloomを組み合わせることで、高輝度部分の周囲に光を広げ、「眩しい光源」のような見え方を作ることができます。

Unityで光を表現するときは、

Light = 周囲を照らす
Emission = 発光面を明るくする
Bloom = 強い光をにじませる

という違いを意識すると、役割を整理しやすくなります。

Bloomには多くの設定がありますが、最初はすべてを覚える必要はありません。
まずは、Threshold → Intensity → Diffusionの3つを中心に調整してみましょう。

蛍光灯や街灯などの光源にBloomを加えるだけでも、ワールドの光の印象は大きく変わります。

ゆかり
ゆかり

エモい光を作るならBloomが役立ちますね✨

リンカ先生
リンカ先生

いろいろ試してみてね♪

コメント

タイトルとURLをコピーしました