
こんにちは!
夜の街2Dアクションゲームを制作中の怪獣と申します🦖
本日は自作ゲームの進捗報告になります。
今回は、ステージの雰囲気づくりの為にライト演出機能を実装しました!
①プレイヤーの周りだけを照らすライト演出を実装!

背景全体を暗くし、プレイヤーの周りだけ光を照らすようにして夜の雰囲気をより出すようにしました!
実装には URP(Universal Render Pipeline)+ 2D Renderer を使用しています。
やったことはシンプルで、
- プロジェクトを URP 2D 用に設定
- 環境全体用の暗めのLightを作成
- プレイヤーの子オブジェクトとして Spot Light 2D を追加
- 光量・半径・カラーを調整
これだけで「主人公の周りだけ照らすライト」が完成しました🌃
主人公の移動と連動してライトが動くので、暗い街を進む雰囲気が出たと思います。
②より夜の雰囲気を出すために、URP環境を導入した

URPを導入しなくても十分夜の雰囲気は出せていたと思うのですが、
プレイヤーの周りだけ常時光を照らすためには2Dプロジェクトに光の設定を導入する必要がありました。
基本的に、 Unityで新規プロジェクトを作った時点では、URP(Universal Render Pipeline)は必ずしも入っていません。
プロジェクト作成時に選ぶテンプレート次第になります。
・2D (URP)
・Universal 3D
などのURPテンプレートで作成した場合は最初からURP環境が導入されているかと思います。
自分のプロジェクトは2D(Built-in Render Pipeline)でプロジェクトを作成していたため
URP環境を後から導入する必要がありました。
このゲームは舞台が夜なのでより夜の雰囲気を出したいと思い、思い切って導入してみました📝
③実装は簡単だが、準備が少々面倒だった
ライト自体の設定は簡単なのですが、
URPの導入や 2D Renderer の設定に少し手こずりました…😇
- URPの新規アセット作成
- 2D Renderer への切り替え
- プロジェクト設定の適用
- Sprite Editor のマテリアル設定変更(Lit化)
など、事前準備が色々必要になります。
また、URPを導入してライト処理の実装を行っても、2DプロジェクトだとSpriteのMaterial設定がデフォルトだとSprites-Default(光を影響を無視する)になっているため、このままだといくら土台を作っても背景が光の影響を受けません。
これになかなか気づかずしばらく試行錯誤していました。。。
③解決方法
2Dプロジェクトの場合、背景スプライト(SpriteRenderer)の Material設定を
『Sprite-Lit-Default(光の影響を受ける)』
に設定することで、ようやく2Dプロジェクトにも光の持ち込むことができます!
④実際に出来たもの
背景が光の影響を受けて全体が暗くなり、プレイヤーの周りだけ光を出すことが出来ました!
プレイヤーの周りだけ照らしているので視覚的にも見やすくなり、夜の雰囲気を出すことが出来たのではないでしょうか🌃
実際に導入前、導入後で比較してもグッと雰囲気がでたと思います!
【URP環境導入前】

【URP環境導入後】

URPの導入手順~背景スプライトの設定方法は以下の記事で詳しくまとめていますので、
「2Dゲームで夜の雰囲気を出したい」、「ダンジョン探索時の演出をつけたい」等の希望があれば
ぜひ実践してみてください!
引き続き2Dゲーム制作の方もぼちぼちと進めていきます🦖
それでは!



コメント