single.php

Unityで[Shadow Caster 2D]の影が表示されない原因

Unityで開発する過程で、[Shadow Caster 2D]で影が表示されない原因について備忘録的に投稿します。

Shadow Cascade 2D コンポーネント

Unityで最初にハマったのが[Shadow Caster 2D]コンポーネント。

仕組みを理解してしまえば、簡単にオブジェクトに光源の方向と逆側に影を発生させることができるのですが、仕組みが分からない間は何が原因なのか掴みずらいのでハマりました。

影が表示されない原因

こんな感じで[Shadow Caster 2D]を設定しても影が表示されない場合があります。

最初に確認するのは光源です。[Shadow Caster 2D]で影を受け取る側のオブジェクトのマテリアルには[Lit]が含まれている必要があるので光を受け取る必要があります。

つまり、光源なしでも表示されるようなオブジェクトには適用できません。つまり常に表示するには、影を発生する光源以外にも光源が必要になります。

つまり[Global Light 2D]のような平面的な光源が必要になります。

次に確認するのは、影の形になるオブジェクトの[Material]が[Sprite-Lit-Default]など “Lit” を含むマテリアルにする必要があります。

また、影を受け取るオブジェクトにも、同様に[Material]に[Sprite-Lit-Default]の設定が必要です。

影を発生させるオブジェクト(例えばプレイヤー)に[Light 2D]などの光源を追加します。

ここまで揃えてようやく、影が表示されます。

思ったほど影はできない

すべての設定が正しく設定されていても、既定値だとこんな感じで影が表示されない場合があります。

つまり光源が遠すぎて、影が発生しないケースです。

設定は正しいはずなのに影が表示されない場合には、光源になるオブジェクトを対象に近づけて確認すると、影が表示される場合があります。

まとめ

今回は、短い記事ですが、Unityで[Shadow Caster 2D]で影が表示されない原因について書きました。

影を発生させるための条件として影の対象になるオブジェクトと、影を受け取るオブジェクトに[Sprite-Lit-Default]などの “Lit” を含むマテリアルの設定が必要になります。

その他にも、常にオブジェクトの表示を行うための光源や、光源と対象との距離などが影を見辛くしている可能性があります。

Unityで[Shadow Caster 2D]で影が表示されない人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です