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

ブログの女の子を作る #70 HDRPのライト設定変更で影が暗すぎる!【UnityのHDRPライティング1】

 
前回の記事では、スカート・服・靴・髪の毛にもHDRPのサンプルマテリアルを設定しました。
 
以前、Unity2020.2で新しくなったHDRPのテンプレートプロジェクトを見た時、クオリティが非常に高くて驚きました。正直、同じUnityとは思えないほど。ライティングも素晴らしく、屋内・屋外の光の見え方がとても良い感じでした。
そういえば、いまのプロジェクトはHDRPに切り替えてから、ライティングをしっかり設定した覚えがありません。
 
もう少しキレイに見えるようになるかも?」と、軽い気持ちで始めたライティングでしたが、設定をし始めてすぐ、キャラクターの影がかなり濃くなってしまったり、室内がやけに暗くなったりで見た目的にもひどい状態になってしまいました。
しかも解決方法がまったく分かりません。。。
 
 
その後、いろいろ試した結果、なんとか解決できました!
 
結論はこの2行で説明できてしまうのですが、そこにたどり着くまで二週間かかってしまいました。
1. 屋外でキャラクターの影が濃すぎるのは「ライトプローブ」の設定が足りなかったから
2. 屋内で部屋が暗いのは「リフレクションプローブ」を設定してなかったから
せっかくですので、その問題発生から試行錯誤、そして解決までを6つの記事に分けて書いてみました。
かなり大変でしたが、ライティングの理解が少し深まった気がしますよ。



開発環境

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

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

【試行錯誤編】
 1. HDRPのライト設定変更で影が暗すぎる! ★この記事です
 2. HDRPのテンプレートプロジェクトを試す
 3. ライト設定を試して暗い原因が分かった!
 

(1) キャラの後ろが明るく、家のライトを消すと影が濃い?

正しいライティング設定」は記事の後半で試すのですが、まずは以前から気になってたことを確認してみます。
 

最初の状態

ライティングを設定する前の状態です。
正面は特に問題なさそう。
 
ですが、背中側がやけに明るい気がします。
光はキャラクターの斜め前から当たっているので、こちら側はもう少し暗くても良いはずです。
 

建物内のライトを消すとキャラの影が暗すぎる!

建物内の光がキャラクターに当たってる?可能性を考えて、一度、建物内のライト(Point Light)を消してみます。
ライトを一括操作するのは「Light Explorer」が便利ですね。
 
Generate Lighting」でベイクし直すと、影が濃くなってしまいました。
念のため、建物から距離を離してみましたが暗さは変わらず。
 
後ろ側は更に暗いですね。
 

ライトの設定を確認してみる

家のポイントライトには「Range」という設定があり、光が届く範囲を設定できるようです。
 
Gizmoボタンをクリックすると、Rangeの範囲が表示されるようになります。
ライトを中心として家の周りだけを照らすようになってるので、問題は無さそうです。
 

更に家から離れてみる

距離で明るさが変わるかも知れませんので、更に家から離してみます。
池の反対側ですね。
 
明るさを確認してみると、なぜか建物の前の時よりも明るい。
ここは木の下なので、もう少し暗くても良さそうなものです。
 

高さによって影の出かたが違う?

木が無い場所まで移動してみました。
この海岸っぽくなってるところは、先ほどの場所より少し低い位置にあるようですね。
 
キャラクターの位置を下げてみると、なぜか影が濃くなりました。
障害物も無いですので、影の濃さが変わるのはおかしい。。。
 


(2) 場所によって影の濃さが変わるのはなぜ?

なぜか、場所によって影の濃さが変わるようです。
 

Directional Light を消してみる

影と光は密接に影響しています。
 
今のままでは、どの光が影に影響してるのか分かりにくいですので、試しに Directional Light を消してみます。
ライトを消しても真っ暗にならないのが気になりますが、まずは作業を進めましょう。
 
キャラクターの位置を下げてみると、スカート部分だけが暗くなりました。
やはり「Directional Light 以外の何か」の影響を受けているようです。
 

場所によって影の濃さが違う?

ライトを消した状態で、キャラクターの場所を変更してみます。
 
ここでは明るいですが、
 
少し前に移動すると、急に暗くなってしまいました。
垂直方向の高さだけでなく、水平方向の位置でも変わるようです。わけがわからない。。。
 
とりあえず建物内を調べてみると、ライト設定に関係しそうな ライトプローブ というオブジェクトがありました。
 
ですが、建物の外には配置されてないので、関係は無さそう。。。
(後から分かるのですが、実はこのライトプローブが原因でした)
 

すべてのライトを消してもキャラの一部が明るい?

試しとして、建物内のライトを全て消した状態で、ベイクし直してみます。
 
すると、服部分は暗くなりましたが、体や顔がなぜか明るいままです。
髪飾りとリボンも同じですね。
 

キャラが暗くならないのは Metallic が原因だった

いろいろ設定変更を試したところ、HDRP/Litシェーダーの Metallic の値が大きい(0.7)のが原因でした。
 
値を 0 にして再ベイクすると、やっと体が暗くなりました!
どうして一部の設定だけ 0.7 になっていたか?ですが、以前HDRPに切り替えた際、影が濃かったので Metallic の値を変更したことを思い出しました。その時は良く分からずに「Metallicの値を大きくしたら影が明るくなった!」と喜んでいましたが、どうやらこれが良くなかったようですね。。。
 
再度、ライトを点けた状態で「0.7」に戻してみます。
 
この状態では良い感じなのですが、ライトが無い(暗い状態)ではおかしくなってしまうので、「0」にするしか無さそうです。
影が濃い。。。
 
逆に、夜(暗い状態)ではOKですね。
 

暗すぎるがこの設定が正しいはず

作業開始より更に影が暗くなってしまったのがつらいところですが、「この状態で、影が明るめに表示できる」ような設定を探すしかありません。
 
気になりますが、作業を進めましょう。
 
なんとなく、キャラクターを回転して光の当て方を変えてみました。
太ももやハイソックスなど、光が十分に当たっているところはキレイに表示されてます。
 
やはり「影になるところがおかしい」という認識で正しいようです。
 

(3) 建物が怪しい?

ネットでライティングに関係する記事を調べていますが、なかなかピンポイントで解決方法が書いてあるような記事は見つかりません。確かに、Unityの設定パラメータは膨大ですし、設定の組み合わせでも変わってきますので、まったく同じ現象になることは多くないのかも知れませんね。
地道にどこまでが正しくて、どこからがおかしいか?を切り分けていくしか無さそうです。
 

建物自体を消すと影が直った?

関係ありそうな怪しいオブジェクトを消してみます。
 
と言っても、ライト関係では「建物」だけですが。
 
建物を非表示にして、ベイクしてみます。
 
すると、キャラクターの影が明るくなりました!
 
少し明るすぎる気もしますが、先ほどよりはかなりマシです。
 
念のため、家を表示した状態で、再度ベイクしてみます。
濃すぎる影が復活しましたね。建物の何かが影響してる、で間違いなさそうです。
 

ライトプローブを消すと直るが、、、

建物の中で怪しいと言えば、ライトプローブですね。
 
今度はライトプローブだけを非表示にして、再ベイクしてみます。
 
予想通り、影が明るくなりました!
 

建物内でベイクライトが当たらなくなってしまう

キャラクターの影が濃くなる原因は「ライトプローブ」だと分かりましたが、単純に消してしまうと別の問題が発生しそうです。
 
 
説明によると、「ライトマップ同様、ライトプローブはシーンのライティングに関する「ベイクした」情報を格納します。」とのこと。建物内のポイントライトは「Baked」モードにしてますので、ライトプローブが無い場合、建物内でポイントライトの光がキャラクターに当たらなくなってしまいます。ライトプローブが無い状態で確認してみましょう。
 
建物の入り口付近では大丈夫そうに見えますが、
 
この辺りに移動してみても、キャラクターの明るさは変わってくれません。
 
同じ位置で「ライトプローブをオンにしてベイク」してみると、ちゃんと光が当たるようになりました。
ライトプローブは必須なんですが、とりあえず「なし」の状態で作業を進めてみます。
 

(4) 「正しいライティング設定」を試してみる

ここからやっと「正しいライティング設定」を試していきます。事前確認が長かった。。。
 
ライティングの設定に関しては、Unityの大下 岳志様の動画を参考にさせていただきました。
大変分かりやすい動画でした。ありがとうございました!
 
文字ベースで確認したい場合、先ほどの動画を文字ベースで紹介されている記事も参考になるかと思います。
ありがとうございました!
 

日中設定では影が濃すぎる!!

早速、Directional Light の Inspector で「Emission -> Intensity」の値を「120000 Lux」に変更してみます。
この数値は「非常にまぶしい日中」らしい。真夏の正午くらいのイメージでしょうか。
 
すると、影がまた濃くなってしまいました。。。
とりあえず、もう一つの設定「Global Volume」も変更してみます。「HDRI Sky -> Intensity Mode -> Desired Lux Value」を「20000」に変更し、Directional Light の値を 120000 → 100000 に減らしておきます。増えた分を減らして、合計値は同じにするようです。
 
あまり変化がありませんね。。。
 

Exposure を設定してみるが変わらず

Exposure(露出)も調整してみます。
 
Modeを「Automatic → Fixed」に変更し、Fixed Exposure の値を 13 などに変更してみると、全体的に明るくはなりますが影の濃さは変わりません。
ライトプローブは消してるのになぜ。。。
 


まとめ 

UnityのHDRIでライティング設定を試してみました。
 
キャラクターの影が濃すぎるのは「ライトプローブ」が原因だと思ってましたが、「正しいライティング設定」を試すと、また影が濃すぎるようになってしまいました。それでも「ライトプローブ」が原因なのは間違いないですし、他の設定が影響を与えている可能性も残ってます。
 
こういう時は「正しく表示できているもの」を見て確認するのが良さそうです。
 
次回は、HDRPのテンプレートプロジェクトでどう見えるかを試してみます。
 
スポンサーリンク

コメント

  • トラックバックは利用できません。

  • コメント (0)

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

ブログの女の子を作る #69 スカート・服・靴・髪の毛にもサンプルマテリアルを設定する【Unity】

ブログの女の子を作る #71 HDRPのテンプレートプロジェクトを試す【UnityのHDRPライティング2】

最近のコメント

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

[当ブログについて]