【Unity】URP(Universal Render Pipeline)の概要&導入方法

URPって何? ゲーム制作メモ

Unityを使っていると、たまに「HDRP」とか「URP」などといったよく分からん単語を目にすることがあります。

それで私は今までそういったものが一体何なのかサッパリ知らなかったのですが…今回ふと思い立ってそれらについて調べ、実際に「URP」のほうを導入してみることにしました。

ここではURPの概要や導入方法についてまとめておきますね。


※この記事の内容はUnity2019.3以上のバージョンを対象にしています。

スポンサーリンク

URP(Universal Render Pipeline)とは?

ではURPの使い方が云々…という前に、そもそもURPとは何か?といった部分から説明します。

前提知識:レンダリングパイプラインについて

URPを説明するためにはまず「レンダリングパイプライン」について知っておかなければなりません。ただまあこれについては私も全くのド素人なので、詳しく知りたい方は外部の分かりやすいサイトをご覧いただければと思います。

とりあえず冒頭の一文を引用させていただくと

レンダリングパイプラインとはモデルデータの入力から出力までのレンダリングのための加工手順のことです。

とのこと。つまり「レンダリングパイプライン=Unityのグラフィックの描画にかかわる仕組み」くらいに思って頂ければひとまず十分かなと思います。

それでUnityのレンダリングパイプラインは次のように何種類かあります。

  • ビルトインレンダリングパイプライン
  • SRP(スクリプタブルレンダーパイプライン)
    • HDRP
    • URP(※旧LWRP)

それぞれざっくりと見ていきましょう。

ビルトインレンダリングパイプライン

Unityの昔ながらのレンダリングパイプラインです。Unity2019.3では空のプロジェクトを作るとこちらが採用されます。

SRP(スクリプタブルレンダーパイプライン)

Unityの新しいレンダリングパイプラインです。公式マニュアルによると、C#スクリプトによってレンダリングの細かい調整が可能とのこと。

ただし自作するのは大変っぽいので、Unity側でテンプレートを用意してくれています。それが「HDRP」と「URP」です。

HDRP

デスクトップPCなどのハイエンド機を対象にしたレンダリングパイプライン。より写実的な表現が可能らしいです。

URP

モバイル機などでも動く軽量なレンダリングパイプライン(詳細は後述します)。以前は「LWRP」と呼ばれていましたが、Unity2019.3からURPに名称変更となりました。う~むややこしい…。


上記をまとめると

  • 現行のUnityには「ビルトインレンダリングパイプライン」と「SRP」という2種類のパイプラインがある
  • SRPのテンプレートとして「HDRP」と「URP」がある

といった感じになりますね。色々な用語が出てきて混乱するかもしれませんが落ち着いて理解しましょう。

URPについて

それではここからが本題。URPとは一体どんなレンダリングパイプラインなのでしょうか?

ざっくりまとめると次のような特徴があります。

  1. モバイル機でも使える軽量なレンダリングパイプラインである
  2. Shader Graph等の新機能を使える
  3. ビルトインレンダリングパイプラインとは互換性がない

特徴1:モバイル機でも使える軽量なレンダリングパイプラインである

一つ目の特徴は軽量かつ高品質なレンダリングパイプラインだということです。一体どれだけ軽くて高品質なのかは現時点ではちょっと把握しきれていませんが、一応謳い文句としてはそういうことらしいです。

特徴2:Shader Graph等の新機能を使える

次に二つ目の特徴はShader Graphなどの新機能を使えることです。

例えば今まではシェーダーはコードを書いて作る必要がありましたが、URPを採用すればShader Graphという「ノードをつないで視覚的にシェーダーを作れる機能」を使うことができるようになります。

特徴3:ビルトインレンダリングパイプラインとは互換性がない

最後に三つ目の特徴は従来のビルトインレンダリングパイプラインとは互換性がないことです。つまり今まで使っていたStandard Shader等は使えなくなりますのでご注意ください。

ちなみに特に注意が必要なのがアセットストアのアセットです。古いものはURPには対応していない可能性が高いですし、最近のものでも例えばHDRP用とURP用が別売りになっていたりする場合もあるので、購入するときは説明をしっかり読んだほうが良いです。

URPの導入方法

URPについて一通り理解できたところで、URPの導入方法について簡単に解説していきます。

URPの導入方法は

  1. プロジェクトを新規作成する際にURPのテンプレートを選択する方法
  2. パッケージマネージャからインストールする方法

の2通りがあります。

プロジェクトの新規作成時にURPのテンプレートを選択する場合

まずプロジェクトの新規作成時にテンプレートを選択する場合です。

現状コレが一番簡単な方法で、下のようにUnity Hubの新規作成画面でURPのテンプレートを選び、「新規作成」を押すだけです。

URPの導入方法(1)

これで最初からURPが設定されたプロジェクトが作成されます。

パッケージマネージャからURPをインストールする場合

次にパッケージマネージャから既存のプロジェクトにURPをインストールする場合です。

メニューバーの「ウィンドウ」→「Package Manager」からパッケージマネージャを開くと、左のリストに「Universal RP」という項目があるのでこれをインストールします。

URPの導入方法(2)

そうしたら右クリックメニューから適当なフォルダに「パイプラインアセット」を作り、それをプロジェクト設定ウィンドウのグラフィック設定(メニューバーの「編集」→「プロジェクト設定」→「グラフィックス」)の「スクリプタブルレンダーパイプライン設定」に設定しましょう。

これでレンダリングパイプラインがURPになります。

結局、URPを使うべきなのか?

さて、ここまでURPについて色々と書いてきましたが…結局URPを使うべきなのか?という疑問が残りますよね。そこでその辺について考えてみると、執筆時点では

Shader Graph等の新機能を使いたいならURPにするべき

という結論になると思います。つまりその点がどうでもいいなら今まで通り(=ビルトインレンダリングパイプライン)でOKです。

ただしビルトインレンダリングパイプラインは旧式であり、今後機能の追加などは行われないというような話を聞いた気がします。もしかしたら将来的に廃止されるかもしれないので遅かれ早かれ乗り換える必要があるかもしれません。

おわりに

以上、URPの概要から導入方法まで一通り解説をしてきました。

初心者の方にとっては分かりづらい話で混乱するかもしれませんが、とりあえず知っておいて損はないのでぜひ焦らずに理解していただければと思います。