暗いダンジョンに松明の光がゆらめく、ネオンがキャラの輪郭を照らす、夕暮れの街が茜色に沈む——2Dゲームの 雰囲気 は、ライティングで劇的に変わります。でも 3Dのライティング で使うDirectional Lightを2Dシーンに置いても、スプライトはうんともすんとも言いません。2Dには2D専用の光の仕組みがあるからです。
この記事では、UnityのURPで2Dライティングを始めるための土台——2D Rendererへの切り替え から、Light 2Dの4タイプ の使い分け、Global+Pointの2段構え という設計、Shadow Caster 2D で影を落とす方法、そして 松明を持つプレイヤー の実践例までを解説します。
この記事でわかること
- URPの2D Renderer に切り替える(3D標準ライトが2Dに効かない理由)
- Light 2Dの4タイプ(Global・Point・Freeform・Sprite)の使い分け
- Global Lightで暗くして、Point Lightで明かりを足す 設計
- Shadow Caster 2D でスプライトに影を落とす
- 実践:暗い洞窟+プレイヤーが持つ追従松明
動作確認環境: Unity 2022.3 LTS / Unity 6(URP必須)
まずURPの2D Rendererに切り替える
2DのLight 2Dは、 URP(Universal Render Pipeline)の「2D Renderer」専用の機能 です。標準のBuilt-in Render Pipelineや、URPでも3D用のRendererのままでは使えません。3D用のDirectional Light / Point Lightが2Dスプライトを照らさないのは、スプライトの描画がそれらのライトを参照しない仕組みだからです。

- Package Managerで Universal RP をインストール
Create > Rendering > URP Universal Rendererではなく、Create > Rendering > 2D Renderer(Renderer 2D)を作成する- URP Asset を作成し、その
Renderer Listに手順2の2D Rendererを割り当てる Project Settings > Graphics(およびQuality)の Render Pipeline に、このURP Assetを設定する
これで、シーンにLight 2Dを置くとスプライトが照らされるようになります。既存プロジェクトを途中でURPへ移行すると、マテリアルがピンク(シェーダー非対応)になることがあります。その場合は Edit > Rendering > Materials > Convert... でURP用に変換してください。
補足: 新規プロジェクトなら、テンプレート選択で最初から 「2D (URP)」 を選ぶと、ここまでの設定が済んだ状態で始められます。まずはこれが一番ラクです。
Light 2Dの4タイプ
2Dのライトは、Light 2D コンポーネント1つで、 Light Type を切り替えて使います。用途に応じて4タイプを使い分けます。

| Light Type | 役割・使いどころ |
|---|---|
| Global | 画面 全体 を均一に照らす環境光。シーンの「地の明るさ」を決める。まず1つ置く |
| Point | 一点から 円状 に広がる光。松明・ランプ・電球など。内側/外側の半径と角度を持てる |
| Freeform | 自由な 多角形 の形に光る。窓から差し込む光や、板状のネオンなど |
| Sprite | 指定した スプライトの形 に光る。ロゴ型の看板や、複雑な形の光源に |
Light 2D の主な設定は、 Color(光の色)・ Intensity(強さ)・ Radius(Pointの内外半径)・ Target Sorting Layers(どのSorting Layerを照らすか)です。Target Sorting Layersで「背景は照らすが、手前のエフェクト用レイヤーは照らさない」といった、 スプライトのレイヤー単位 の制御ができます(Screen Space OverlayのuGUIはそもそもLight 2Dの対象外です。おまけ参照)。
Global+Pointの2段構えで設計する
2Dライティングでいちばん効くのは、 「まず全体を暗く沈めて、そこに明かりを足す」 という2段構えの設計です。

- Global Light 2Dを1つ置き、Intensityを低め(例: 0.1〜0.3)にする。これで画面全体が暗く沈み、「夜」や「洞窟の中」の空気になる
- そこに Point Light 2D を置いて、松明やランプの周りだけを明るくする。暗闇の中に光の島が生まれ、プレイヤーの視線が自然に誘導される
この「暗さの底上げ → 明かりの追加」の順で考えると、ライティングの設計がぐっと楽になります。最初からPointだけを置くと、光の当たらない場所が真っ黒(Globalが無いと0の明るさ)になり、調整が難しくなります。Global Lightの明るさが、そのシーンの「一番暗い場所の明るさ」を決めていると考えてください。
色でムードを作る: Global Lightをわずかに青くすると夜、オレンジにすると夕暮れ。Point Lightを暖色にすると、松明の温かみが暗い背景に映えます。色の対比(寒色の闇+暖色の光)は雰囲気作りの定番です。
Shadow Caster 2Dで影を落とす
光があれば、影も落としたくなります。2Dでは Shadow Caster 2D コンポーネントで、スプライトに影を作れます。

- 影を 落とす側 のオブジェクト(壁・柱・キャラなど)に
Shadow Caster 2Dを追加する。影の形(Shape)はスプライトの輪郭に合わせて設定する - 影を 作る光源側 のLight 2Dで、
Shadows(Shadow Intensity)を有効 にする(0だと影は出ない)
これで、Point Lightから見てオブジェクトの反対側に影が伸びます。光源が動けば影の向きも変わるので、松明を持って歩くと壁の影がゆらゆら動く——といった演出ができます。複数のスプライトをまとめて1つの影として扱いたいときは、 Composite Shadow Caster 2D を親に付けます。
影は重いことも: Shadow Caster 2Dは見栄えする一方で、数が多いと負荷になります。「影が本当に効くオブジェクト」(プレイヤーの近くの壁など)だけに絞るのがコツです。
実践:松明を持つプレイヤー
暗い洞窟を松明を持って探索する——2Dアクションやローグライク、ホラーで定番の画作りを組んでみましょう。メトロイドヴァニアの暗い区画、見下ろし型ダンジョンRPGの視界制限、探索ホラーの手持ちランタン——どれも同じ仕組みで作れます。

設計はシンプルです。 Global Lightで洞窟全体を暗く沈め、プレイヤーの子オブジェクトにPoint Lightを付けて「持ち歩く光」にする だけ。Point Lightはプレイヤーの子にしておけば、移動に合わせて自動でついてきます。
using UnityEngine;
using UnityEngine.Rendering.Universal; // Light2D を使うために必要
// プレイヤーの子に付けた松明の光をゆらめかせる
public class TorchFlicker : MonoBehaviour
{
[SerializeField] private Light2D torchLight;
[SerializeField] private float baseIntensity = 1.0f;
[SerializeField] private float flickerAmount = 0.15f;
[SerializeField] private float flickerSpeed = 8f;
void Update()
{
// Perlinノイズで自然な「ゆらぎ」を作る
float noise = Mathf.PerlinNoise(Time.time * flickerSpeed, 0f);
torchLight.intensity = baseIntensity + (noise - 0.5f) * 2f * flickerAmount;
}
}
ポイントは2つです。 「光源をプレイヤーの子にする」(Transformが親に追従するので、移動コードを書かなくても光がついてくる)と、 「Intensityを揺らして命を吹き込む」(Mathf.PerlinNoise で滑らかにゆらすと、炎特有のちらつきになる。ランダムな値をその まま使うとカクつくので、ノイズや補間を使うのがコツ)。あとは壁に Shadow Caster 2D を付ければ、松明の動きに合わせて影も動き、洞窟探索の緊張感が一気に高まります。
おまけ:先に知っておくと良いこと
- スプライトに凹凸の陰影を付けたい: スプライトに 法線マップ(Normal Map) を割り当てると、平面のスプライトでも光の向きに応じた立体的な陰影が出ます。Light 2Dの
Blend Styleと、スプライトのSecondary Textureで設定します。石壁やレンガの質感が一気に上がります。 - uGUIは暗くならない(対象外): Screen Space OverlayのuGUI(HPバーやメニュー)は Light 2Dの影響を受けません。シーンを暗くしてもUIはそのまま表示されるので安心してください。暗くなって困るのは スプライトで作った演出やパーティクル の方で、こちらは専用のSorting Layerに載せて
Target Sorting Layersから外せば、常に明るく保てます。 - 光が四角く切れる・タイルの継ぎ目が光る: Tilemap にライトを当てるときは、タイルスプライトの設定(Filter Mode / パディング)を見直すと改善することがあります。
- URPのバージョン差に注意:
Renderer 2Dや各設定の名称・場所はURPのバージョンで少しずつ変わります。この記事はUnity 6 / 2022.3 LTS基準です。公式マニュアルで自分のバージョンを確認してください。
まとめ
- 2DのLight 2Dは URPの2D Renderer専用。3D用の標準ライトは2Dスプライトを照らさない
- Light 2Dは Global・Point・Freeform・Sprite の4タイプ。まずGlobalで地の明るさを決める
- Global Lightで暗くして、Point Lightで明かりを足す 2段構えが設計の基本
- Shadow Caster 2D(+光源側のShadow有効化)でスプライトに影を落とす
- 実践:Global Lightで暗くした洞窟に、プレイヤーの子にしたPoint Light(松明)を持たせ、Intensityをゆらす
まずは新規プロジェクトを 「2D (URP)」 テンプレートで作り、Global Lightを1つ置いてIntensityを下げ、そこにPoint Lightを1つ足してみてください。画面がぐっとドラマチックになるはずです。あなたの2Dゲームは、どんな光と影で彩りますか?
さらに学ぶために
- ライティング入門(3D) ——対比として。3Dのライトの考え方
- Render Pipeline入門(Built-in/URP/HDRP) ——URPへの切り替えの前提知識
- Spriteとスプライトシートを使いこなす ——照らす対象になるスプライトの準備
- 2D Tilemap入門 ——ライトを当てる2Dステージ作り
- Unity公式ドキュメント:2D Lights ——Light 2Dの一次情報