Universal RP(URP)を2Dプロジェクトに設定する(2021.2版)

なんとUnity Hub の新規作成に「2D URP」がテンプレートに追加されているので2Dでライトを積極的に使っていきたい、みたいな人はこれを選べばそのまま URP の 2DRenderer が設定済みのプロジェクトが選べるようになっています。

f:id:Takachan:20211029231831p:plain

この場合説明不要ですが、後から 2D でもライト使いたいケースだとプロジェクトに設定が必要なので Unity 2021.2 の URP(と 2DRenderer)の導入の仕方を紹介したいと思います。

確認環境

確認環境は以下の通りです。

  • Unity 2021.2.0f1
  • Universal RP 12.1

設定方法

パッケージを追加する

Window > Package Manager を開いて Unity Registry を選んで Universal RP を Instal します。

f:id:Takachan:20211029232614p:plain

PiplelineAsset を作成する

プロジェクトの「+」ボタンからメニューを開いて以下の項目を選択します。

Rendering > URP Asset (with 2D Renderer)

f:id:Takachan:20211029232820p:plain

「New Universal Render Pipeline Asset」と「New Universal Render Pipeline Asset_Renderer」の 2種類が作成されますが長ったらしいのでそれぞれ「URPAsset」と「URPAseet_2DRenderer」にリネームしておきます。

f:id:Takachan:20211029233043p:plain

Project Setting の設定

Edit > Project Settings... を選択して Graphics の「Scriptable Render Pipeline Settings」に先ほど作成した「URPAsset」を設定します。

f:id:Takachan:20211029233351p:plain

何かダイアログが出ますが「Continue」します。

f:id:Takachan:20211029233254p:plain

同じく Project Settings... の Quality の Rendering > Render Pipeline Asset も同じように設定します。

f:id:Takachan:20211029233604p:plain

同じようなダイアログが出ますが「Continue」します。

f:id:Takachan:20211029233530p:plain

これで設定は以上です。

ライトが動作するか確認する

Hierarchy の「+」から Light > *** Light 2D という項目が表示されていたら設定は正常です。

f:id:Takachan:20211029234048p:plain

シーン上に有効なライトが 1つも無い状態だとライト未設定の時と同じ状態に表示されてしまうため(以前は配置したスプライトが真っ黒になっていましたが)適当に「Spot Light 2D」を画面に配置します。

f:id:Takachan:20211029234325p:plain

以下のように少し Outer を大きくして適当に画面にスプライトを配置します。

f:id:Takachan:20211029234420p:plain

Scene上では以下のようになっています。

f:id:Takachan:20211029234440p:plain

これを実行して Game ウインドウで確認すると以下の通りライトの影響を受けているのが確認できました。

f:id:Takachan:20211029234534p:plain

Post Processingも確認する

この時点で Camera に特殊効果を付与できる Post Processing も URP 用のものが利用可能になっているので合わせて動作を確認します。

まず、Camera の Rendering > Post Processing をチェックします

f:id:Takachan:20211029235425p:plain

次に任意のゲームオブジェクトに「Add Component」> Volume を選択します。

Volume コンポーネントは Add Override で新しい項目が追加できるのでボタンを押して、Prost-Processing > Vignette と Lens Distortion を選択しています。設定値は以下の画像の通りです。

f:id:Takachan:20211029235533p:plain

Vignette は Intensity を少し大きくしないとチェックを入れただけでは何も起きません。

そうすると編集中の画面が以下のように変化するのでこれで Prost-Processing が有効なことが確認できました。

f:id:Takachan:20211029235658p:plain

Post Process 毎の効果はネットで調べれば出てくると思うのでここでは説明しません。

ただ注意点として 2D のため 3Dを主眼にした効果、DOF(被写界深度)などはあんまりちゃんと機能しません。ほかにも機能しないのがいくつかあるようですが都度確認する必要があります。

以上です。