LoginSignup
5
3

More than 1 year has passed since last update.

【Unity2D】SpriteにLightを反映させる

Last updated at Posted at 2022-03-17

Unityの3Dゲームで用いられるLightを、2DのSpriteに対しても反映させる方法です。
汎用性低めかもですが、自分用の備忘録に残しておきます。

【まえがき】
自作ゲームで3Dモデルと2Dイラストを組み合わせているのですが、
光源を設定したときに3Dモデルにしか反映されないのが前から気になってました。

下二枚の画像を見ていただければわかる通り、
2DSprite(下記画像のキャラクター)は光源の影響を受けていません。
スクリーンショット 2022-03-17 213716.png
スクリーンショット 2022-03-17 215807.png

これを、光を反射して色や明るさを反映するようにMaterialを変更します。
最終的にこんな感じになります。
スクリーンショット 2022-03-17 213618.png
スクリーンショット 2022-03-17 215732.png

【本編】

  • 手始めにSpriteと光源(Light)をシーンに配置します。今回の作業だと光源はPoint Lightがわかりやすいと思います。
    スクリーンショット 2022-03-17 220942.png

  • Materialを新規作成します。
    スクリーンショット 2022-03-17 220237.png

  • 作成したMaterialを選択し、インスペクターにあるShaderを選びます。ドロップダウンリストからSprites→Diffuseをクリックします。
    スクリーンショット 2022-03-17 212743.png

  • 光の影響を受けさせたいスプライトを選択し、Materialの欄に先ほど作成したものをセットします。
    スクリーンショット 2022-03-17 213831.png

  • これでSpriteが光源に照らされるようになっているはずです。
    スクリーンショット 2022-03-17 213618.png

【あとがき】
こちらの記事でこのテクニックを知りました。ありがとうございます!
https://kan-kikuchi.hatenablog.com/entry/2D_Light

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3