Unity URP でスプライトに影をつける
※ これは 2022/02/18 時点の Unity 2021.2.11f1 の情報です
最新版では動作が異なる可能性がありますのでご注意ください
暗号化データの読み書きができたので、今回はちまたで話題の HD-2D のような実装を試してみたい
本家 HD-2D は Unreal Engine で実装されているが、技術的には十分 Unity でもできるはず
とりあえず今回ははじめの一歩、Unity の URP で 3D 空間に建てた Sprite に影がつくようにしてみたい
たんに Sprite をたてても、Sprite Lit Shader は Light 2D 専用で、こんな感じで影はつかないので・・・

必要なものは Shader ・・・ということで、Shader Graph で URP - Lit Shader Graph を作成

Shader の名前は Sprite Lit にして、次のような感じで Shader Graph を設定

Texture2D を入力プロパティに追加し、名前を Sprite、Reference を Sprite Renderer に合わせて _MainTex に指定
‘Vertex ColorにSprite` を表示するメッシュの各頂点の色情報が入ってきて、これは Lighting の効果を反映したものになるので、これを Sprite のテクスチャにかけ合わせて出力する感じ
グラフ全体の設定は次のように感じで、透過やクリッピング、影の設定が有効になるようにする

あとはこの Sprite Lit Shader を設定した Material を作り・・・

Sprite Renderer にこの Material を指定する

最後に Inspector を Debug モードに切り替えて、Sprite Renderer の Cast Shadows と Receive Shadows を影が描画されるように設定

お試し実行

アニメーションさせてもそれに合わせてシャドウが描画されるし、他の影の影響を受けるようにもなった!