こんにちはっ🌟八ツ橋まろんです
UnityのBloom(ブルーム)とHDRカラーの話です。
Unityで「光らせる処理、発光処理」といえば、ポストプロセスのBloom機能を使いますね。Bloomは「画面中の明るいピクセルをぼかす画面エフェクト」です。
エミッションを設定したマテリアルは、Bloomが無い場合はただの白っぽい色で、Bloomを使うと明るく発光した見た目になります。↓↓↓↓
発光表現には『Bloom(ブルーム)』が必要です
さて掲題ですが、以下のような、パーティクル付きのシーンにBloomを適用すると、パーティクルよりも肌の方が光ってしまいます。
Bloomは明るいピクセルを光らせるので、キャラクターの肌とパーティクルの青では、キャラクターの肌の方が明るいという判定でパーティクルより光ってしまうのですね。↓↓↓↓
こういうとき、『HDRカラー』 を使えば発光する青を表現できます。
通常のカラーはRGBが0-255の256段階で表します。

256は2の8乗です。8bit(=1byte)の2進数が0-255の256段階を表せます。
2進数は8bit(1byte)で0-255までを表せる
00000000 = 0
00000001 = 1
00000010 = 2
00000011 = 3
・
・
・
11111111 = 255
通常のカラーはRGBの情報を8bitずつ持っているのですね。
HDRカラーというのはRGBを8bitではなく10bitずつ持っています。画面に出力する色の上限は255ですが、Bloomの計算において255以上の数値で計算を行えるため、『明るい青をぼかす』ことができます。
HDRカラーを使うことで、通常より明るい色を表現できます。
Unityでは、HDRカラーはRGBの255に明るさのIntensityというパラメータを加えたものになっています。

残念ながらパーティクルにはHDRカラーを指定できる項目がありません。
Start ColorもColor Over Lifetimeも通常のカラーしか指定できません。
その代わり、パーティクル用のマテリアルのカラーがHDRカラーに対応しているので、ここを白にして、その明るさ(Intensity)を上げ、今回の場合はColor Over Lifetimeで青色を指定します。
パーティクルにHDRカラー使う項目がないので、マテリアル側でHDRカラーを指定します
ということで、HDRカラーを使うことでパーティクルがBloomで明るく光りました。↓↓↓↓
(肌が光らないようにBloomの閾値を上げています)
是非試してみてくださいっ!
それではっ🌟