Unity

【Unity】Receive Shadows設定のゆくえ

shamimatsu

unityの新しいバージョンを使っていたらメッシュレンダラーにレシーブシャドウの設定が消えている事に気が付きました。
ReceiveShadowsとは影を受ける/受けないの設定になります。
公式のマニュアルでも見つけることができず困っていましたが、海外のフォーラムで解決方法を見つけたので試してみました。
追記:簡単に実装できる方法がありました。

バージョン:Unity 2021.3.11f1
レンダリングパイプライン:URP

Receive Shadows

過去バージョンであった場所

いつから切り替わったのかわかりませんが、Mesh RendererのCast Shadowsの下にあるイメージが強いです。

バージョン:2021.3.11f1である場所

シェーダーで設定できるようになったようです。
URPでデフォルトでアサインされているUniversal Render Pipeline/Litに設定項目がありました。

Shader Graphで項目を追加する1

自作したシェーダーに組み込みたい場合の設定方法です。
Allow Material Override にチェックを入れるだけでUniversal Render Pipeline/Litにもある項目が追加されます。

Shader Graphで項目を追加する2

参考サイト:海外フォーラムへのリンク

自作したシェーダーに組み込みたい場合の設定方法です。
ただこの方法だと、チェックを入れると影を受けなくなるという上で紹介したUniversal Render Pipeline/Litとは逆の設定になってしまいます。これを同じにする方法はわかりませんでした。

シェーダーグラフのBaseShaderで+ボタンからKeyword → Boolean
名前はなんでも良いですがわかりやすいように ReceiveShadows

作成したReceiveShadowsを選択してGraph Inspector → Node Settings
Referenceに _RECEIVE_SHADOWS_OFF を入力
シェーダーを保存しましょう。

作成したシェーダーをマテリアルに設定するとReceiveShadowsのチェックが追加されいることが確認できます。

ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました