BlenderとUnityで作ったものをVR(Oculus  Quest/Oculus Link)で動かします

ブログの女の子を作る #73 ライトプローブでキャラクターの濃すぎる影を明るくする【UnityのHDRPライティング4】

 
前回の記事では、ライト設定をいろいろ試した結果、キャラクターの影と建物内が暗い原因が分かりました。
 
屋外でキャラクターの影が暗くなる原因は「ライトプローブが屋外にも必要だった」でしたね。
 
今回は、検証で使っていたUnityプロジェクトを元に戻して、「正しいライティング設定」を再度設定しつつ、ライトプローブを良い感じに設定していきます。



開発環境

・Unity 2020.3.1f1(High Definition RP 10.3.2)
・Magica Cloth v1.9.4
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
・Oculus Quest 2(Oculus Link利用)
 

UnityのHDRPライティング記事(全6回)

【解決編】
 4. ライトプローブでキャラクターの濃すぎる影を明るくする ★この記事です
 5. リフレクションプローブで暗い部屋を明るくする+窓ガラス作成
 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 ModeLux に変更します。
 
Desired Lux Value20000 に変更すると、空が明るくなりました。
 

3. Tonemapping

Tonemapping を追加します。
 
ModeACES ですね。
 

4. Exposure

Exposure を追加します。
 
ModeAutomatic にします。これで露出が自動設定されます。
 
ここで、「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)

  1. この記事へのコメントはありません。

ブログの女の子を作る #72 ライト設定を試して暗い原因が分かった!【UnityのHDRPライティング3】

ブログの女の子を作る #74 リフレクションプローブで暗い部屋を明るくする+窓ガラス作成【UnityのHDRPライティング5】

最近のコメント

だーしゅ
IT関係のお仕事してます。
VRは楽しいですね。

[当ブログについて]