もどくんちゃんねる ガジェット部

自転車、ガジェット、映像制作、CG、Blender など

UNITYのスポットライトで影ができないときの対処法

こんにちは今回はUNITYでライトの影ができないときの対処法を紹介します。
とりあえず全て試してみましょう

 

目次


よくあるミス


スポットライトの設定を確認

ライトを選択したときに出てくるインスペクタのシャドウタイプが「ソフトシャドウ」か「ハードシャドウ」になっていることを確認しましょう。


マテリアルの確認


マテリアルが影に対応していることを確認しましょう。一部のマテリアルは影に対応していないことがあります。



カメラの設定

カメラのニアクリップとファークリップの範囲内に影に関係するオブジェクトが全て入っていることを確認しましょう。

 


それでもだめな場合


ライトモードと強さの確認

ライトモードは「ベイク」以外にしましょう。
更に、「強さ」も上げてみましょう。光が弱すぎると影ができてもわからない場合があります。


シャドウバイアスの値を下げる

 

Shadow Biasは、影の描画時に生じるアーチファクト(描画の誤り)を防ぐためのパラメータで、ライト源からの距離に基づいて影を少しだけずらす役割があります。しかし、この値が大きすぎると、小さいオブジェクトでは影が完全に消えてしまうことがあります。

なので適度に値を下げてみて影ができないか確認しましょう。
ちなみに僕のエラーはこれが原因でした。


UNITYのQuality Settingsを見直す


英語の場合は、 Edit > Project Settings > Quality
日本語の場合は、 編集 > プロジェクトセッティング > 品質

で以下の画面を開きます。


この画面で「Shadow Resolution(影の解像度」「Shadow Distance(影の距離)」の値を大きくしてみましょう。

Shadow Resolution: これは影のテクスチャの解像度を制御します。高解像度の影は鮮明で詳細が豊かですが、パフォーマンスの負荷が高くなります。一方、低解像度の影はパフォーマンスの負荷は低いですが、影のエッジがピクセル化され、不自然に見える可能性があります。

Shadow Distance: これはカメラからの距離に基づいて影を描画するかどうかを制御します。Shadow Distanceの値よりも遠くにあるオブジェクトの影は描画されません。この値を高く設定すると、視野の遠くまで影が描画されますが、パフォーマンスの負荷が増えます。逆に、この値を低く設定すると、近くのオブジェクトの影のみが描画


まとめ

影ができない問題は解決できましたか?

もしできなかった場合はご気軽にコメントしてください。もしかしたら役に立てるかもしれません。