目的
・URP を使って 2D プロジェクトに“ちゃんと影の付く”ライティング環境を構築したい
内容
URP を使う 2D プロジェクトで Spot Light 2D + シャドウを動かすまでの最小手順。
「Spot Light がメニューに出ない」問題の回避策も含めています。
1. 動作環境
ツール | バージョン |
---|---|
Unity | 2022.3.42f1 LTS |
Universal Render Pipeline | 14.0.8 |
※URP 11以上でないと2D Spot Lightが実装されません。
実装には、 @sebunwork009 さんの「Unity で 2D 影ライティングを実装する」記事 を参考にさせていただきました。
2. 準備
2-1. URP パッケージを導入
・Package Manager で Universal RP をインストール
2-2. URP Asset (with 2D Renderer) を生成
Project ▸ Create ▸ Rendering ▸ URP Asset (with 2D Renderer)
生成されるファイル
ファイル名 | 役割 |
---|---|
MyURPAssets.asset |
パイプライン共通設定 |
MyURPAssets_Renderer2D.asset |
2D Renderer Data |
2-3. Project Settings に割り当て
-
Graphics → Scriptable Render Pipeline Settings に
MyURPAssets
を設定
2. Quality → すべてのレベルの Render Pipeline Asset を MyURPAssets
に統一
3. つまずきポイント: Spot Light 2D がメニューに無い
Hierarchy で Light ▸ 2D
を開いても Spot Light が無い場合:
・Renderer Data がまだデフォルトになっていない可能性が高いです。
解決策 : Renderer List に 2D Renderer(Data) を登録
Create ▸ Rendering ▸ URP ▸ 2D Renderer (Data)
-
MyURPAssets.asset
を選択 → Renderer List の Size を2
に - 空欄 (Element 1) に ❶ をドラッグし、Default Renderer を
1
に設定
詳細
1.2D Renderer(Data) を作成して紐付け
・Project Window で右クリック → Create ▸ Rendering ▸ URP ▸ 2D Renderer (Data)
2.MyURPAssets.asset を選択し Inspector を開く
Renderer List の Size を 2 に増やし Element に My2DRenderer(Renderer Data) をドラッグ
Default Renderer を 1 に変更(Element 1 を使うという意味)
3.セットしたRenderer DataをDefaultにする
これで Light ▸ 2D ▸ Spot Light
が出現。
動作確認
Hierarchy で 右クリック ▸ Light ▸ 2D → Spot Light が現れれば OK
Sprite の Material が Sprite‑Lit Default でないと光が当たらないので注意
4. ライト & 影の設定フロー
4-1. 背景スプライトを置く
ライト作成手順
Hierarchyに背景として9-Slicedを作成
4-2. Spot Light 2D を追加
Spot Light 2Dを配置すると、背景が黒くなり、ライトに照らされた範囲が照らされます。
例)ライトの設定
・Outer Spot Angle : 40
・Radius Outer 2.5
・Color 黄色に変更
これで、懐中電灯の明かり様になります。
4-3. シャドウを付ける
1)ライトに照らされるオブジェクトとしてTriangleを配置。
・Add Component から、Shadow Caster 2Dをアタッチ
・項目の、Edit Shapeをクリックして、Sceneで形をトライアングルの形に合わせる。
2)照らしているライトのInspectorから「Shadows」にチェックを入れ、Strengthを1にする。
これで、オブジェクトであるTraiangleにさえぎられる部分の光は通らなくなります。
5. 背景が真っ暗なときは Global Light 2D を併用
以上で、ライト設定はできましたが背景もライトが当たっていないと真っ暗になってしまいます。
そのため、LightのGlobal Light 2Dを加えるて色を設定すると背景も含めオブジェクトの色が反映されるのでお勧めです。
Light ▸ 2D ▸ Global
を 1 つ追加し、薄い灰色や水色で Color / Intensity を調整すると
ベース光 + スポットライトの演出が両立します。
6. チェックリスト
✅ | 確認項目 |
---|---|
URP 11 以上を使用しているか | |
URP Asset を with 2D Renderer で生成したか | |
Renderer List に 2D Renderer(Data) を追加し Default に設定したか | |
スプライトの Material が Sprite-Lit-Default か | |
Global Light 2D でベース光を入れているか |
以上、参考になれば幸いです。