【Unity】影が出ない時の対処方法

Unityで影が出ない時の対処
スポンサーリンク

Unityでアプリをビルドした時に、PCでは出ていたのになぜか端末でだけ影が出ない……といった場合や、そもそもPC上でも影が出ないといった場合の対応方法についての記事です!

こんな人におすすめ

・Unityでアプリを作っている
・影が出ない……
・影の設定場所について確認したい

影の設定について確認

まずは影がしっかり出る設定になっているかを確認します。ここで確認する設定が有効になっていない場合はそもそも影が表示されません。

ライトの設定を確認

ライト設定の確認

ライトを選択した時のInspectorの情報を確認します。「Shadow Type」が「No Shadows」になっている場合、影が表示されません

この部分の設定を、必ず「Hard Shadows」もしくは「Soft Shadows」にするようにしましょう。

ライトの設定

また影の強さについても確認しておきましょう。ライトがしっかり設定されていて一見画面内が明るく見えていても「Strength」が「0」の場合影が表示されません

オブジェクトの設定を確認

オブジェクト設定

ライトに問題がない場合はオブジェクトの設定を確認します。

「Mesh Renderer」にある「Lighting」の「Cast Shadows」が「Off」になっている場合は影が表示されません。こちらは、影を表示したいオブジェクトの設定がONになっていれば問題はありません。

Unityの設定を確認

多くの場合、基本的な項目である影の設定を確認することで表示が改善されることがあります。まだ表示が改善しない場合はUnityの設定により影の表示が無効になっていないかを確認します。

この設定が原因で端末のみ影が表示されない、といったケースが起こる場合がありますのでしっかりと項目を確認してみてください!

Project Settingsの場所

「Project Settings」を開き「Quality」の項目を開きます。「Shadows」にある項目が「Disable Shadows」以外になっていることを確認してください。なお、使っているライトがHard Shadowsのみの場合は「Hard Shadows Only」でもいいかもしれません。

それ以外の場合は「Hard and Soft Shadows」にします。

影の設定

また、端末のみ影が出ない原因の多くは以下の設定による影響が考えられます。

Levels設定

緑色のチェックマークが付いているのがデフォルトのビルド時設定になります。実はライトの設定は「Levels」により違いがあるのです。

ほとんどの場合、プロジェクトを作った時、UnityでGameシーンを再生する時は「Ultra」で再生がされるようになっています。

Ultraの設定

「Ultra」ではライトを計算する数(Pixel Light Count)が4個になっており、影の設定(Shadows)も「Hard and Soft Shadows」になっています。

Mediumの設定

一方端末のデフォルト設定である「Medium」ではライトを計算する数(Pixel Light Count)が1個になっており、影の設定(Shadows)も「Hard Shadows Only」になっています。

この設定の違いにより、一つ目のライトでしか影が表示されなかったり、Soft Shadows設定の影がなぜかHard設定になったりなどの影響が端末ビルドで出るのです。

Levelsの違いによる見た目の変化を生まないために、以下のように全てのデフォルトクオリティを揃え、再生時の設定を変更することをおすすめします。

これにより、PC再生時には出ていた影が端末で出ないなどのエラーを防ぐことができるはずです。

最後に

ライトの数を増やしたり影の設定で「Soft Shadows」も使うようにすると端末再生時のfpsが急激に下がったりもします。設定を変更した際は、少し古めの機種でも実行チェックをしてみることをおすすめします。

影の計算はなかなか重い処理なので、可能な限り軽い設定を行うようにしましょう!