見出し画像

【Unity】Universal RPのセットアップ方法

Universal RP (Universal Render Pipeline)で、制作を始める場合のセットアップのメモ。(※略称:URP。スマホからハイエンドPCまでをサポートする軽量で高品質なレンダーパイプライン)
Unity Hubでプロジェクト新規作成時、テンプレートが用意されている。

画像2

今回は、テンプレートを使わない、URPの初期セットアップの方法を紹介する。(テンプレートには、サンプルアセットが用意されているが、不要サンプルアセットを全削除した後、再セットアップが必要な時などのセットアップ時する際にも役立つはず)

なお、プロジェクト新規作成時、テンプレートの「3D」を選択して、Built-in RPから始める場合、URPは含まれていない。
いちからURPを利用するには、所定のセットアップが必要になる。
(※URPは、パッケージマネージャー経由でインストール・削除可能)

<Unity 2020, 2021>

関連記事:


■大雑把な概要

各種設定箇所は、従来のパイプラインとHDRPを合わせたようなイメージ。標準のBuilt-inレンダーパイプラインは、Post Processing Stackを利用するが、URPはパッケージの中にポストプロセシングの機能が含まれている。

●ライティングウィンドウ
 ・SkyBox
 ・アンビエントオクルージョン(AO) <静的
 ・フォグ
 ・ライトマップ(ベイク)
   ・・・
●ポストエフェクト処理(ヒエラルキーウィンドウ)
 ・Global Volume>インスペクターで、Overrideした項目で設定。
  ・Bloom
  ・Depth of Field
  ・Motion Blur
   ・・・
●レンダリング設定の詳細(プロジェクトウィンドウ)
 ・UniversalRenderPipelineAssetファイル>インスペクターで。
 ・スクリーンスペースアンビエントオクルージョン(SSAO) <動的

■今回作成するファイル想定

画像9

■下準備

まず、プロジェクト新規作成時のテンプレートは、「3D」を選ぶ。
(標準のBuilt-in RPになるが、URP設定を後から追加するのでこのまま進める)。

画像30

プロジェクトが新規作成され、Unity Editorが起動した後、パッケージマネージャーを起動し、Universal RPパッケージをインストールする。
※該当項目が現れない場合、Unityレジストリを選択(パッケージ種類

画像32
画像31

これで、URPのインストール完了。
パッケージマネージャーを閉じて編集画面に戻る。

●●●

準備が整ったので、URPの設定を行っていく。

手始めに、プロジェクトウィンドウで、URPの設定ファイルを作成する。アセット>作成>レンダリング>Universal Render Pipline>Pipline Asset(Forword Renderer) を選択決定する。

するとプロジェクトウィンドウに下記2つのファイルが作成される。
・UniversalRenderPipelineAsset
・UniversalRenderPipelineAsset_Renderer

画像30
画像3

編集>プロジェクト設定 でウィンドウを開き、Project Settings>グラフィックス>スクリタブルレンダーパイプライン設定 で、UniversalRenderPipelineAsset を設定する。

画像4

ついでに品質ページの該当欄も設定。
Project Settings>品質>Rendering で、UniversalRenderPipelineAssetを設定する。

画像31

それから、ライティングウィンドウ>新しいライティング設定で、
「新しいライティング設定」ボタンをクリックして作成したファイルを設定。

画像5

あと、ポストエフェクトの下準備しておく。
ヒエラルキーウィンドウで、Global Volumeを作成。
(ヒエラルキー>ボリューム>グローバルボリューム)

画像7

Global Volume>インスペクター>プロファイラー で新規作成する。
作成されたファイルを設定しておく。すると、Add Overraideボタンが現れるので、クリックして、リストからポストプロセスを追加する。
下図は、Bloomを設定したもの。

画像6

とりあえず、これでUPRの基本設定完了。
あとの設定はお好みで・・・。



■ライトマップ利用設定(ベイク)

画像21

下準備が完了したら、続けて下記設定を行う。
-----------------------------------------------------------------------------  
 ● 適当なオブジェクトを配置し、マテリアルを適用。
 ●適用したいオブジェクトのインスペクターで「静的」を有効する。
 ● ライティングウィンドウで、
  ・シーンと環境で、新規設定ファイル作成。
  ・アンビエントオクルージョン(AO)設定。
 ● シーンに配置したライト設定。
  ヒエラルキー>Directional Light>インスペクター>モード で、
  「混合」にしておく。
-----------------------------------------------------------------------------
※所在)ウィンドウ>レンダリング>ライティングウィンドウ

◇ライトマップ利用:オブジェクトの「静的」設定

ヒエラルキーウィンドウで、オブジェクト選択>インスペクターで、ライトマップベイクの設定である「静的」を有効にする。
 ※「静的」は、一括設定可能。
   オブジェクトを複数選択した状態で、ヒエラルキーの「静的」を
   有効・無効設定する。
   (※オブジェクトをShift、Ctrlを押しながら選択する)

画像18

 ※「静的」を有効にしておくとAOライティングがベイクされる。
   例えば、プレーンの黒っぽい影がベイクされた状態。
   設定で自動更新設定にしておくと、移動後、再ベイクされる。
   逆にベイクしたくない場合は、「静的」を無効にしておく。

画像18


■環境マップの設定

SkyBox用マテリアルは、ライティング>環境 で準備したマテリアルを選択設定する。※SkyBox用マテリアルの作成方法は後述。

画像23
画像20

同じ列の太陽の方向を示すライトで、ヒエラルキーで作成したライトを適用しておくと太陽の動きと背景の明暗がライトの回転に追従する。
 ※背景は、Default - Skybox使用。
 ※ライトマップのベイク処理により、反映に多少タイムラグがある。

画像21
画像20

※SkyBox用マテリアルの作成方法は、下記ページを参考にする。

■ポストエフェクトの設定

◇アンビエントオクルージョン(AO)

ライティングウィンドウを開いて、ライトマップ設定>アンビエントオクルージョン を有効にする。
 ※オブジェクトの遮蔽部分に陰影をつけて接地感や立体感を向上。
 ※前述したが、これはライトマップをベイクする静的AO

画像19

◇フォグ

ライティング>環境>その他の設定>フォグ で設定する。

画像22

◇Bloom, Depth of Field, Motion Blur等…

Global volumeのインスペクターで、Add Overrideボタンを
クリックしてエフェクトを追加した後、詳細を設定する。

画像21

■動的アンビエントオクルージョン(SSAO)の設定

まず、静的AO、動的AOの重ねがけになるので下記設定を行っておく。
・適用した効果を確認するため、予めライティングウィンドウにある
 AO設定は一旦無効にしておく。
・インスペクターの「静的」を無効にしておく。<静的AO無効

次にプロジェクトウィンドウ>UniversalRenderPiplineAsset_Renderer>インスペクター で、Add Renderer Featureボタンをクリックして、Screen Space Ambient Occlusionを選択。

画像28

有効になったチェックボックスはそのままで設定。
AOを一時的に表示したくない場合は、チェックボックスを無効にする。

画像27

なお、SSAOの詳細設定は、下記ページにまとめておいた。

■トラブルシューティング

◇手順通り設定したのに生成されたAOが目視できない時の解決方法

表示されているが、目視できていないだけという、勘違いの場合あり。

◇ポストエフェクトが反映されない、ライトマップがベイクされない

ヒエラルキーウィンドウで、各オブジェクト>インスペクターで、ライトマップベイクの設定である「静的」を有効にしているか確認。または、ライト(DirectionalLight等)のモードがリアルタイムになっている。「混合」に設定変更する。

◇ビューポートやサムネイルのマテリアルがピンク色に変化した 

マテリアルは、専用のシェーダのものを利用する必要がある。
Standard → Universal Render Pipline/Lit
下準備が完了していれば、新規マテリアル作成時、自動的に作成。

画像12

◇Post Processingの効果がビューポートに反映されない:原因1

Unityバージョンにより、一部設定ファイル>インスペクターの設定項目に変更あり。
【解決方法】Unity 2021では、プロジェクト>Universal Render Pipline Asset_Renderer(Forword Renderer Data)>インスペクターで、
Post-Processing を有効にする。同時にDataは自動設定されはず。

画像29

◇Post Processingの効果がビューポートに反映されない:原因2

プロジェクト設定>グラフィックス>スクリタブルレンダーパイプライン設定 で、UniversalRenderPipelineAsset の設定忘れ。もし、設定忘れしている場合は、カメラ>インスペクターを確認すると、従来カメラ設定が表示されるので気づくはず。<ページ最初に戻って下準備を確認する。

画像29

以上。

いいなと思ったら応援しよう!