ブログの女の子を作る #73 ライトプローブでキャラクターの濃すぎる影を明るくする【UnityのHDRPライティング4】
屋外でキャラクターの影が暗くなる原因は「ライトプローブが屋外にも必要だった」でしたね。
今回は、検証で使っていたUnityプロジェクトを元に戻して、「正しいライティング設定」を再度設定しつつ、ライトプローブを良い感じに設定していきます。
目次
開発環境
・Unity 2020.3.1f1(High Definition RP 10.3.2)
・Magica Cloth v1.9.4
・CPU:AMD Ryzen 7 3700X
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
・Meta Quest 2(Oculus Link利用)
UnityのHDRPライティング記事(全6回)
(1) ライティング設定で「明るい正午」にする
まずは、「正しいライティング設定」をしていきます。イメージは明るい正午で。
ライティング設定前の状態
設定前の状態です。
「正しいライティング設定」をやった後でも、こんな感じで見えていればOKですね。
ライティングを設定する
設定前に確認してみると、Directional Light の Intensity が「7」という非常に小さい値になっていました。一通り調べた今なら、この値がおかしいということが分かります。
1,000-2,000 Luxで「曇り空」、「< 1(1未満)」で「雲のない月夜」ですので、本来であればほぼ真っ暗な状態のはず。明るく見えるのは、「HDRP Default Settings -> Exposure -> Mode」が「Automatic」になっているおかげで、暗くても露出の自動設定で明るく見えていただけでした。
設定を進めましょう。Intensity を 100000 に変更します。
色温度の設定 Temperature を 5500 Kelvin に変更します。
影が濃いですが気にせず進めます。後から直りますので。
Global Volumeを作成する
今後の設定しやすさを考えて、シーンの Hierarchy に「Global Volume」を追加しておきましょう。
ここで設定を「Add Override」で上書きしていけば、いちいち「HDRP Default Settings」から設定変更する手間が無くなります。一時的に別の設定にしたい場合でも、「Global Volume」オブジェクトを複製するだけで良い、というメリットもありますね。
Profile の Newボタン をクリックして、
「Volume Profile」を作成します。
これで下準備ができました。
(2) Global Volume を設定する
Global Volumeには様々な設定がありますが、関係そうな個所だけを上書き設定していきます。
1. Visual Environment
「Add Override」ボタンをクリックして、Visual Environment を追加します。
「Sky -> Type」を「None → HDRI Sky」に変更します。
これで HDRI Sky 設定ができるようになりました。
2. HDRI Sky
HDRI Sky を追加します。
「HDRI Sky」にチェックを入れて、とりあえず「HDRP Default Settings」設定を参考にして、「DefaultHDRISky」のオブジェクトを設定しておきます。
「DefaultHDRISky」はここにあるようですね。
Intensity Mode を Lux に変更します。
Desired Lux Value を 20000 に変更すると、空が明るくなりました。
3. Tonemapping
Tonemapping を追加します。
Mode は ACES ですね。
4. Exposure
Exposure を追加します。
Mode は Automatic にします。これで露出が自動設定されます。
ここで、「HDRP Default Settings」上では Compensation が 1 になっていたようなので、0 に変更しておきます。
これがデフォルト値っぽい。
5. Fog
Fog を追加します。
最低限の設定として、Enable と Volumetric Fog にチェックだけ入れてみました。
6. Shadows
Shadows を追加します。
Unity 2020のテンプレートプロジェクトでの影の見え方が良かったので、そちらの設定値を参考にさせていただきました。
・Max Distance:150
・Cascade Count:4
・Split 1:3.28125
・Split 2:9.84375
・Split 3:26.25
・Border 1:2.1875
・Border 2:2.1875
・Border 3:2.1875
「近いオブジェクトの影がはっきり見える設定」ですね。
7. Contact Shadows
Contact Shadows を追加します。
これも最低限の設定だけです。
8. Ambient Occlusion
Ambient Occlusion を追加します。
これもテンプレートプロジェクトの設定を参考にしました。
・Intensity:0.4
・Direct Lighting Strength:0.1
・Radius:0.5
・Quality:Custom
・Maximum Radius In Pixels:40
・Full Resolution:チェックあり
・Step Count:6
9. Bloom
Bloom を追加します。
今回は少し薄めにしました。
・Quality:High
・Threshold:0
・Intensity:0.15
・Scatter:0.65
そして影が暗くなった、、、
ライティング設定が一通りできました。
キャラクターの影が暗すぎますが、これは想定通り。
それにしても暗いですね。
なんか以前より暗くなってる気がしますが、大丈夫でしょう。
(3) ライトプローブを屋外にも設定する
ここからは、ライトプローブの設定をやっていきます。
いまの状態を確認する
前回の記事でも確認しましたが、再度見ておきましょう。
ライトプローブは建物内だけに設置されてます。
キャラクターのオブジェクト(今回は「体」オブジェクト)を選択すると、屋内のライトプローブから明るさを参照していることが分かります。
黄色い線ですね。
室内のライトプローブを確認してみると、黒い球になってます。
この「暗い状態」をキャラクターが参照してるので、影が必要以上に暗くなった、のが原因でした。
ライトプローブを全部表示してみる
Lightingタブで「Light Probe Visualization」を All Probes With Cells に変更すると、選択していなくてもライトプローブすべての明るさ状態を確認することができます。
ついでに、Gizmosボタンをクリックして、プローブ表示を大きくしてみました。
室内を見てみると、どの玉も真っ黒になってました。
屋外と屋内の明るさの差があるので、こんな感じになるんでしょうかね。
ライトプローブの影響範囲はどこまでも続く
そして、前回の記事で判明した「ライトプローブの影響範囲は距離に関係ない」も再度見ておきます。
どれだけキャラクターを離しても、
黄色い線(参照しているライトプローブを示す線)がつながってますね。
屋外にもライトプローブを設置する
キャラクターが屋外にいる時は、屋外の明るいライトプローブを参照すれば良いですので、ライトプローブを屋外にも設定していきます。
Light Probe Group の Inspector で、「Edit Light Probes」の左にあるアイコンをクリックすると、編集モードになります。
ライトプローブを一つずつ追加しても良いですが、今回は既存のライトプローブを選択状態にして「Duplicate Selected」で複製しました。
こうすると、高さなどを調整しなくて良いので若干楽です。
屋外にもライトプローブを設定できました。
更に増やしていきます。
オブジェクトと重なってるのを修正しておく
ついでに、屋内のライトプローブが「オブジェクトと重なっている」のも修正しておきましょう。
オブジェクト内にライトプローブが入ってしまうと、建物内の光(ポイントライト)が届かないので、「この位置は真っ暗だ」という扱いになってしまいます。この建物アセットを購入した際、家具を適当に配置したので重なってしまったようですね。
ライトプローブの位置を修正しておきます。
バスルームのライトプローブは、壁にめり込んでますね。。。
直しておきましょう。
これでOKです。
ベイクすると影が明るくなった!
この状態で「Generate Lighting」ボタンをクリックしてベイクし直すと、
キャラクターの影が明るくなりました!
キャラクターだけでなく、入り口のドアや建物の影も明るくなってます。
キャラクターに近づいて確認してみます。
影が明るくなり、自然な感じになってます。
これで良いですね。
プローブの状態を確認してみる
プローブの状態を確認してみます。
屋外のライトプローブはかなり明るい。
建物の影になる場所では、少し暗くなってますね。
建物の中でも、直接光が当たる個所は明るく、当たらない個所は暗くなります。
屋外にもライトプローブを設置して影響か、建物内のライトプローブの色も変わってました。
真っ暗ではなく、場所によって微妙に明るさが違う感じですね。こちらの方が自然っぽい。
家の周りをプローブで取り囲む
設定を続けましょう。
建物の前面にプローブを設定しただけでは、建物の背面にキャラクターが移動した時にまた「キャラクターの影が暗い現象」が起きますので、建物を取り囲むようにプローブを設置していきます。
こんな感じでしょうか。
(4) 影の見え方を確認する
これでライトプローブの設置が完了しました。
念のため、キャラクターをいろんな位置に移動して、影がどう見えるかを確認しておきます。
建物の影の下
建物の近くです。
影の下に移動すると、ちゃんと暗くなりました。
建物の反対側
建物の後ろ側に移動してみます。
キャラクターの正面です。
後ろ側を見ても、問題なさそうです。
木の下
木の下に移動してみました。
木漏れ日が良い感じです。
もう少し奥に移動してみましたが、若干明るすぎる気がしますね。
比較するものが無いので、これが正しいのかも知れませんが。。。
今後、Terrainの木のオブジェクトを変更予定ですので、その時に再検証してみます。
もっと離れてみる
更に建物から離してみます。
これだけ移動すれば大丈夫でしょう。
キャラクターの影は移動前と同じく、良い明るさです。
ライトプローブの黄色い線をたどっていくと、建物前に設置したライトプローブを参照してました。
今回は建物の周りだけにライトプローブを追加しましたが、今後、別の場所にアセットを追加したり、Terrainで地形を増やしたりした際には、その位置にもライトプローブを追加すると良さそうですね。
まとめ
キャラクターの影が濃すぎましたが、建物の外にもライトプローブを設置することで、影が明るくなりました。
これでキャラクターをどこに移動しても、自然な影で表示することができますよ。
次回は、建物内が暗すぎるのをリフレクションプローブで改善します。
コメント
トラックバックは利用できません。
コメント (0)
この記事へのコメントはありません。