しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Unity URP でスプライトをビルボード化する

※ これは 2022/02/25 時点の Unity 2021.2.13f1 の情報です

最新版では動作が異なる可能性がありますのでご注意ください

Sprite に影を付けることができたので、今度はこの Sprite を常にカメラ方向を向くように Billboard 化したい

斜め上から見下ろすと Sprite が縮む

なぜこれをしたいかというと、HD-2D ではこんな感じにカメラを少し斜め上からキャラを見下ろすので、そのままだと少し縮んでしまうため

Sprite で見せるなら常にカメラ正面を向けておいた方がよいというわけ

そうはいってもやるのは Shader の修正

前回の Shader Graph から水色枠の範囲を追加し、Receive Shadows オプションをオフにした

Billboard

重要なのは Transformation MatrixInverse View ノードで、ここでカメラから見た相対座標や回転角の反転値(ビュー逆変換行列)を取得して加算することで、カメラの正面に向けている

あとは、他のドロップシャドウを受けるかどうかの Receive Shadows オプションを切って、シャドウを Sprite 自身が受けないようにした

自身の影は実際の座標通りなので重なってしまう

これをしないと無理やり正面を向けているため、自身の正しい影が重なっておかしくなってしまう

これを重ならないようにするのはなかなか大変そうだったので、Sprite を際立たせる意味でも影を受けないようにした方がよいという判断

・・・これを動かしてみると

常にカメラ目線

しっかりカメラ目線を維持

若干影が傾いているけど、それが嫌な場合は Billboard を諦めて Sprite 自体をカメラに合わせて傾けた方がよいかも