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

URPってなに?? ゲーム開発

Unityを使っていると、よく「URP」という単語を目にすることがあります。これはざっくり言えばUnityのグラフィックの描画方式の一つなのですが、初心者の方からしてみれば

  • URPって一体何なの?
  • デフォルトのテンプレートと何が違うの?
  • どうやって導入すればいいの?

といった疑問の元になっていて混乱してしまいますよね。そこでここではURPの概要や導入方法についてまとめておきますね。

URP(Universal Render Pipeline)とは?

でははじめに、そもそもURPとは何か?といった部分から説明します。

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

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

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

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

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

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

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

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

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

Unityの昔ながらのレンダリングパイプラインです。執筆時点の最新バージョンであるUnity2021では、空のプロジェクトを作るとこちらが採用されます。


※名称が長いのでここから「ビルトインRP」と表記します。

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

Unityの新しいレンダリングパイプラインです。公式マニュアルによると、C#スクリプトによってレンダリングの細かい調整が可能とのこと。つまりやろうと思えば独自の描画システムを構築することもできるようです。

ただしゲーム開発で描画システムから自作するというのも大変なので、Unity側で予めテンプレートを用意してくれています。それが「HDRP」と「URP」です。

HDRP(High Definition Render Pipeline)

まずHDRPはデスクトップPCなどのハイエンド機を対象にしたレンダリングパイプラインです。リッチで写実的な表現が可能で、AAAタイトルのような美麗なグラフィックのゲームを作る際に便利です。

URP(Universal Render Pipeline)

一方、今回の主役であるURPはモバイル機などを含む幅広い端末で動く軽量なレンダリングパイプラインです(※詳細は後述)。以前は「LWRP」と呼ばれていましたが、Unity2019.3からURPに名称変更となりました。う~むややこしい…。

ここまでのまとめ

上記をまとめると

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

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

URPについて

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

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

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

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

一つ目の特徴はURPは軽量なレンダリングパイプラインだということです。執筆時点でのグラフィックの品質はビルトインRPとそこまで変わりませんが、URPは描画処理が最適化されており負荷が軽いのが大きなメリットです。したがってモバイル機などを含む様々な端末で動くゲームを作ることができます。

なお具体的にどれだけ描画が最適化されるのか?といった点については、以下の記事で簡単な検証結果を掲載しているので詳しく知りたい方はそちらも併せてご覧ください。

【Unity】URP・HDRP・ビルトインを徹底比較!一体どれを使えば良いのか?
皆さんはUnityで新しいゲームを作り始めるときに「一体どのレンダリングパイプラインを使えばいいんだろう?」と迷ったことはありませんか。個人的にこれはUnityならではの悩みどころの一つだと思っていて、 URPやHDRPを使ってみたいけど、...

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

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

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

  • Particle Systemの進化版である「Visual Effect Graph」
  • 2Dゲームにライトを導入できる「Light 2D」

といった新機能も使えるため表現の幅が広がります。

なおShader GraphやVisual Effect Graphの詳細については個別の記事で詳しくご紹介していますので、どういった機能なのか知りたいという方は併せてご覧いただければと思います。

【Unity】Shader Graphが楽しすぎる!基本的な使い方を紹介
今回はUnityのShader Graphの使い方を解説する記事です。 私はしばらく前までシェーダーについて 作り方がよく分からん 自作できれば表現の幅が広がりそうだけどなんか大変そうだ などと思っていました。 しかし最近URPのプロジェク...
【Unity】VFX Graphの使い方!導入から実際のエフェクト制作まで丁寧に解説
Unityでゲームを作っているとゲーム用のエフェクトを自作したくなることがあります。従来Unityでのエフェクト制作といえばParticle Systemを使うのが主流でしたが、ここ数年ではその進化版である「Visual Effect Gr...

特徴3:ビルトインRPとは互換性がない

最後に三つ目の特徴は、URPは従来のビルトインRPとは互換性がないことです。つまりビルトインRP用のStandard Shader等はURPでは使えないのでご注意ください。

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


※注:正確に言うと、ビルトインRP用の標準マテリアルはURP用に変換できるのですが「アセット独自のシェーダー」を使ったマテリアルは変換できないので注意が必要だということです。

URPの導入方法

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

URPの導入方法は

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

の2通りがあります。

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

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

現状はコレが一番簡単な方法で、下のようにUnity Hubの新規作成画面でURPと書かれたテンプレートを選び、「プロジェクトを作成」ボタンを押すだけです。

新しいURPプロジェクトの作成方法

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

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

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

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

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

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

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

さて、ここまでURPについて色々と書いてきましたが…結局「ビルトインRPを捨ててURPを使うべきなのか?」という疑問が残りますよね。そこでその辺について考えてみると、URPはビルトインRPに比べて

  • 描画処理が軽い
  • 便利な新機能が使える

といった大きなメリットがあるので

特に理由がなければURPを使ったほうがいい!

という結論になると私は思います。…まあもちろん、古いプロジェクトを無理にURPにするのは大変ですからそのような場合は別ですが、例えば新しいゲームを作り始める際はURPを選ぶことを強くお勧めします。

ちなみにビルトインRPは旧式であり今後機能の追加などは行われないらしいです。もしかしたらビルトインRPは将来的に廃止されるかもしれないので、いずれはURPに乗り換える必要があると思います。

おわりに

以上、URPの概要から導入方法まで一通り解説をしてきました。初心者の方にとっては分かりづらい話で混乱するかもしれませんが、とりあえず知っておいて損はない話なのでぜひ焦らずに理解していただければと思います。

なおURPの具体的な使い方については以下のページで詳しく解説しています。ご興味のある方は併せてご覧ください。

【Unity】URPの使い方!軽くて新機能も使えるパイプラインを使いこなそう
今回はこのブログでも特に人気が高いUnityの「URP(Universal Render Pipeline)」に関する話題で、その使い方を詳しく説明するという内容です。 実は以下の記事 でURPのメリットや導入方法についてご説明したところか...

この記事がUnityでのゲーム開発のお役に立てば幸いです。