こんにちは!夜の街2Dアクションゲームを制作中の怪獣です🦖
今回は、URP(Universal Render Pipeline)の2Dライトを使って、背景全体を暗くしつつ、プレイヤーの周りだけを明るく照らす方法を解説します。
導入~実装までそこまで難しくはないのですが、導入方法や光を照らすまでの前提など個人的に色々ハマったので、その点も合わせて最後に紹介しようと思います。
実際に実装出来るようになると夜のステージやダンジョン探索っぽい雰囲気が一気に出るので、演出としてかなりおすすめです!
この記事でできるようになること
- URP(Universal Render Pipeline)を導入し、背景全体を暗く調整することができる
- プレイヤーの周りだけ常時照らす仕組みを作ることができる
前提(確認ポイント)
- Unity 2021.3 LTS / 2022.3 LTS だと安定(他でもOK)
- 2Dプロジェクトでも導入可能
- この記事は URP 2Dライト(Light 2D) を使います
①URPを導入する
まず初めにURP(Universal Render Pipeline)をインストールする必要があります。
URPとは?
URP(Universal Render Pipeline)とは、Unityで「画面をどう描画するか」を決める仕組みのようなものです。
Unityを新規作成した直後は、Built-in Render Pipeline(旧方式) が使われています。
Built-in(初期状態)と URP の決定的な違いは以下です。
Built-in Render Pipeline(Unity初期状態)について
- 昔からある方式
- 「3D向けの光」が前提(Built-in には 2D専用ライト が存在しない)
- 2Dは Spriteを貼っているだけ という扱い
つまり、
- キャラや背景は
「ただの画像」 - 光は
「3D空間用のもの」
なので、
- 2D用の Global Light
- 2D用の Point / Spot Light
という概念自体が 存在しないため、2D専用ライトが用意されていません。
URP(Universal Render Pipeline)について
URPでは
- 2D Renderer という専用描画ルートがある
- Spriteを
「光を受ける物体」として扱える。 - 2D用のライト計算が最初から組み込まれている
つまり、
URPは「2Dも3Dも、ちゃんと光のある世界として扱う」仕組み
です。
「URPを導入すると何が増えるのか?」を具体的に説明すると、
Unity内部で次のものが有効になります。
Light2D という新しいコンポーネント
Built-in(Unity初期状態):
Light(3D用)がデフォルトで用意されている
URP 2D:
Light2D- Global Light 2D 追加
- Point Light 2D 追加
- Spot Light 2D 追加
➡️ 2D専用のリアルな光と影を追加するための専用コンポーネントが使えるようになります
Sprite が「光を受けるかどうか」を選べるようになる
URPでは Sprite に対して:
- 光を無視する(Unlit)
- 光を受ける(Lit)
を Material で明確に分けます。
例
Sprites-Default
→ 光を無視(常に同じ色)Sprite-Lit-Default
→ Light2D の影響を受ける
「光が0なら黒になる」という、当たり前の世界になる
Built-inでは👇
- 光がなくてもSpriteは見える
URP 2Dでは👇
- 光がなければ見えない
これは、
現実世界と同じルールを2Dにも持ち込んだ
ということになります。
実際にURPをインストールする
前置きが長くなりましたが、実際にURPをインストールしていきましょう!
- Window → Package Manager
- 左上のプルダウンを Unity Registry に切り替える
- Universal RP を探して Installをします

「Install」⇒「Remove」に切り替わったらインストール完了です!
②URP 2D Renderer を作成する
次に、「URP Asset (with 2D Renderer)」を作っていきます。
これは、Unityで「2Dライトを使うために必ず必要な設定」 です。
Unityの初期状態では、2Dゲームであっても
描画の仕組みは 3D向け(Universal Renderer) のままになっています。
そのため、2Dゲームで光の演出をしたい場合は、必ず “2D Renderer” を使うURP Assetを作成する必要があります。
手順は以下の通りです。
- Assets → Create → Rendering
- URP Asset (with 2D Renderer) を選択する


すると、2つ自動で生成されます。
① Pipeline Asset(URPの本体)
1つ目は Pipeline Asset です。
これは、プロジェクト全体の「描画ルール」をまとめた本体ファイルになります。
具体的には、
- URP を使うかどうか
- どの Renderer(2D / 3D)を使うか
- ライトや描画の基本方針
といった、プロジェクト全体に影響する設定を管理しています。
この Pipeline Asset を
Project Settings → Graphics / Quality に設定することで、
「このプロジェクトは URP(2D Renderer)で描画する」という宣言になります。
② Renderer(2D Renderer 用の設定アセット)
もう1つ作られるのが、
2D Renderer 用の Renderer アセット です。
これは Pipeline Asset とは別物で、2D専用の描画処理・ライト計算を担当する設定ファイルになります。
この Renderer では、
- Global / Spot / Point Light 2D の計算方法
- 2Dライトのブレンド設定
- 影や減衰の処理
といった、「2D描画の中身」 を管理しています。
Pipeline Asset の中から
「この Renderer を使う」と指定されることで、
初めて URP 2Dライトが有効 になります。
名前を以下等に変更します:
URP_2D.asset(Pipeline Asset:本体)URP_2D_Renderer.asset(Renderer 2D Data:2Dレンダラー)

これにより、
- 2Dライトが使えるようになる
- スプライトが光の影響を受けるようになる
- 夜の表現や雰囲気作りが簡単にできる
といった、2Dゲーム向けの描画環境 が整います。
⚠️「with Universal Renderer」を選ぶと3D向けになり、2D Light が正しく働かないことがあるので注意!
③Project Settings に URP を適用する(Graphics / Quality)
作っただけでは反映されないので、適用が必要です。
以下の手順で行っていきます。
Graphics に適用
- Edit → Project Settings → Graphics
- Scriptable Render Pipeline Settings に
URP_2D.asset(Pipeline Asset本体)をドラッグ&ドロップする
以下のメッセージが表示される場合は「Continue」を選択します。

Quality に適用
- Edit → Project Settings → Quality
- 上にある Quality Level(Very Low / Low / Medium / High / Very High / Ultra など) を1つずつクリックして3を行う
- それぞれの Render Pipeline Asset に 生成した
URP_2D.asset(Pipeline Asset:本体)を1つずつ設定する

✅ ここを揃えないと「環境によってライトが効いたり効かなかったり」します!
④背景画像を用意する
2D ライトは 描画されているものにしか影響しません。
そのため、ここでは「暗さの基準になる仮背景」を用意します。
(※既に背景を用意してある場合は、Material の設定以降だけ確認します)
仮背景オブジェクトの作成
- Hierarchy → Create Emptyを追加する
- 名前を
Background等 にする - Add Componentで「Sprite Renderer」 を追加
- 適当な四角い Sprite を設定
(白1pxでもOK、拡大して画面全体を覆うようにする)

Material の設定

Sprite Renderer
→Material:Sprite-Lit-Defaultに変更する(重要)
※ Sprites-Default のままだと
URP 2D Light が一切効かないため、変更します。
仮背景のおすすめ設定
- Color:少し暗いグレー or 紺
- Sorting Layer:BG(なければ Default でもOK)
- Order in Layer:-10 など
⑤全体の暗さ設定をする
全体を暗くする(Global Light 2D)
- Hierarchy で
GameObject → Light → 2D → Global Light 2Dを追加します

- Inspector で調整(例)
- Color:黒ではなく濃い紺(夜っぽく)
- Intensity:0.2〜0.4 くらい

💡黒 (#000000) にすると見えなくなりすぎるので、濃い青が扱いやすいです。
⑥プレイヤー周りだけ照らす
- Player の子オブジェクトとして
Light → 2D → Spot Light 2Dを追加します

- 調整例
- Intensity:0.5〜1
- Inner Radius:0.5〜2
- Inner / Outer Spot Angle :360〜360(光が円形になります)
- Color:白〜少し黄み

💡子にしておけば、プレイヤーが動いても常に追従します(スクリプト不要)。
⑦動作確認
➡️プレイヤーの周りだけ常時光を照らすことが出来ました!個人的にハマった点
URPもインストール済、背景も用意した、プレイヤーの周りだけ照らす処理も作成したのに何も変化がない、、🫠
以下は個人的にハマった点です。
上手くいかない場合は以下を確認してみてください。
Sprite の Material が Sprites-Default のまま
先ほど「④背景画像を用意する」の章でも触れましたが、ライトを受けるにはSpriteを光の影響を受けるようにする必要があります。
背景スプライト(SpriteRenderer)の Material が
- Sprites-Default(光を無視する)
- Sprite-Lit-Default(光の影響を受ける)
で挙動が変わります。
やること
背景オブジェクトを選択 → Sprite Renderer → Material を
- Sprite-Lit-Default(URP 2D)
に変更します。
Sprite-Lit-Default にしたら真っ暗になった
これはバグではなく 正常挙動です。
Sprite-Lit-Default は “光がないと黒” になります。
つまり:
- Global Light をOFFにした
- そもそもLight 2Dが置かれていない
→ 光源ゼロ
→ 全部真っ暗
という状態です。
対処
- Global Light をONにして、Intensityを弱めに
- プレイヤーのPoint Lightの範囲を広げる
- (必要なら)背景専用に弱いGlobal Lightを追加する
まとめ
URPの2Dライトを使うと、
- 夜の雰囲気
- プレイヤー中心の視界演出
- 探索・緊張感
が一気に作れます💡
この記事では、URP(Universal Render Pipeline)の2Dライトを使って、背景全体を暗くしつつ、プレイヤーの周りだけを明るく照らす方法を解説しました。
最後まで読んでいただきありがとうございました。
この記事が少しでもゲーム制作に役立てたら嬉しいです🦖


コメント