【ハルシオンブログ】(Unity)SpriteRendererを3D空間において、ライティングと影を使いたい!
こんにちは!坂内っす。(これいる?)
Unityで3D空間に2Dキャラとかを置く場合、どうしましょう?
そのままSpriteRenderer置いてもライトの影響とか、影とか出ないっすよねー
適当な床と壁を用意し、キャラはアセットストアのフリーのやつを置いてみます。
とりあえず適当に左右に動くようにしてみました。

この方法だとライティングも影も無視ですよねー
以下の方法をいじってみましょう。
①ライトの設定で、影を付けるようにする
ライトのShadowTypeをHaed ShadowsかSoft Shadowsにする。

②以下のShaderを用意
https://answers.unity.com/questions/976048/how-do-you-flip-a-sprite-that-has-a-normal-map-mat.html
ここのフォーラムにあったShaderが使えます。
③マテリアルを作成
マテリアルを用意し、①のShaderにする
StandardのShaderを使用すると、FlipやScaleをマイナスにして左向き等した場合に、描画されなくなります。
④SpriteRendererのマテリアルを②で作ったものに変更
これで、ライティングが有効になります。

⑤影を付けてみる
SpriteRendererのShadowをONにしたいが、そんな項目がありません。
そこでInspectorをDebugモードにします。

ここのハンバーガーボタンを押してDebugモードにします。
SpriteRendererのCast Shadowを「Two Sided」にします。
これで大体の設定は終わりです。

SpriteRendererで、ライトと影が使えるようになりました!!
※上記でも影が出ない場合は以下の設定も追加でやってみてください。
Edit>ProjectSetting>Quality>ShadowsがOFFになっている場合、「Hard and Soft Shadows」に変更。

これでできると思います!
ってことで、今日はこれにてあでゅ~ノシ
Unityで3D空間に2Dキャラとかを置く場合、どうしましょう?
そのままSpriteRenderer置いてもライトの影響とか、影とか出ないっすよねー
適当な床と壁を用意し、キャラはアセットストアのフリーのやつを置いてみます。
とりあえず適当に左右に動くようにしてみました。

この方法だとライティングも影も無視ですよねー
以下の方法をいじってみましょう。
①ライトの設定で、影を付けるようにする
ライトのShadowTypeをHaed ShadowsかSoft Shadowsにする。

②以下のShaderを用意
https://answers.unity.com/questions/976048/how-do-you-flip-a-sprite-that-has-a-normal-map-mat.html
ここのフォーラムにあったShaderが使えます。
③マテリアルを作成
マテリアルを用意し、①のShaderにする
StandardのShaderを使用すると、FlipやScaleをマイナスにして左向き等した場合に、描画されなくなります。
④SpriteRendererのマテリアルを②で作ったものに変更
これで、ライティングが有効になります。

⑤影を付けてみる
SpriteRendererのShadowをONにしたいが、そんな項目がありません。
そこでInspectorをDebugモードにします。

ここのハンバーガーボタンを押してDebugモードにします。
SpriteRendererのCast Shadowを「Two Sided」にします。
これで大体の設定は終わりです。

SpriteRendererで、ライトと影が使えるようになりました!!
※上記でも影が出ない場合は以下の設定も追加でやってみてください。
Edit>ProjectSetting>Quality>ShadowsがOFFになっている場合、「Hard and Soft Shadows」に変更。

これでできると思います!
ってことで、今日はこれにてあでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】コルーチンでボタンが押されるまで待ちたいときとか。 | 【ハルシオンブログ】スクリプトをアタッチしたときに特定のコンポーネントを付けたいとき »
コメント
| h o m e |