LoginSignup
1
0
この記事誰得? 私しか得しないニッチな技術で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

3DのURPで作成したプロジェクトで2DLight(2DのURPの機能)を使う

Last updated at Posted at 2024-06-15

この記事を書いたキッカケ

3Dで作成したプロジェクトで2DLightを使おうとしたらちょっと引っかかったのでその備忘録として書きます。

使用したUnityバージョン

2022.3.33f1

2DLightを使えるようにするまでの下準備

まず3DURPでプロジェクトを作成していると思うのでプロジェクトを開きます。
最初の状態では2DLightなどがプロジェクトに含まれていないので2DPackageをPackageManagerからインポートします。
2D.png
その後NewSceneで2D用のシーン(Standard(URP))を作成します。
918187a338d770ebab87e7c83e2d5468.png
そのままだとRendererが3D用のものになっていてうまく2Dのオブジェクトが表示されないので、編集する必要があります。
まずは使用しているURPAssetを探しましょう。
使用しているURPAssetがどれかはEdit->ProjectSettings->Graphicsの一番上を見ることで分かります。
aa5c2c5f6b59eb4ebc3eeb3191025349.png
使用しているURPAssetがどれかわかったらRendererListに2D用のAssetRendererを追加します。2D用のAssetRendererはこの時点ではないはずなのでCreate->Rendering->URP2DRendererを選択して作成します。
Create.png
作成したら使用しているURPAssetを選択し、InspecterのRendererListから作成した2DRendererを登録します。
abc132c0dcf819a238165d14298602f6.png

2DLightを使う

2DLightを使うシーンを作成します。作成したシーンでは2D用のRendererを用いるため、カメラのRendererに2DRendererを設定します。
2920f3f78ded9ff311369252c473e6b9.png

シーンビューとGameシーンビューで使われるRendererは必ずしも同じになるわけではありません。シーンビューではURPAssetでデフォルトに設定したRendererが使われ、Gameシーンビューではカメラに適用されているRendererが使われます。これにより、それぞれの画面で映るものが違うことがあります。

設定したらシーン上にライトを設定します。
全体にライトを適用したい場合は、HierarchyからLight->GlobalLightを作成することでできます。
5780873b678970ee75b3da413a43df5d.png
ライトを作成したら明るさを適用するSpriteを設定していきましょう。2DObject->Sprite->Squareで適当なSpriteを設定して画面全体に映るようにします。
デフォルトのマテリアルだと2DLightが反映されないのでマテリアルを作成し、シェーダーにUniversalRenderingPipeline->2D->Sprite-Lit-Defaultを設定します。

完成

GlobalLightとFreeformLightを置いたもの
72f51ca65be27762b321efbbefe039f5.png

注意点とか

2DRendererにDecal機能を追加するとエラーが出る。
855a8a95c2c1aef2c35064bc313925b7.png

1
0
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
1
0