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

URPってなに?? Unity

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

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

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

URP(Universal Render Pipeline)とは?

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

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

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

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

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

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

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

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

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

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

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

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:モバイル機でも使える軽量なレンダリングパイプラインである

一つ目の特徴は軽量なレンダリングパイプラインだということです。執筆時点でのグラフィックの品質はビルトインとそこまで変わりませんが、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の使い方を解説する記事です。 私はしばらく前までシェーダーについて 作り方がよく分からん 自作できれば表現の幅が広がりそうだけどなんか大変そうだ などと思っていました。 ...
【Unity】VFX Graphの使い方!導入から実際のエフェクト制作まで丁寧に解説
Unityでゲームを作っているとゲーム用のエフェクトを自作したくなることがあります。従来Unityでのエフェクト制作といえばParticle Systemを使うのが主流でしたが、ここ数年ではその進化版である「Visual Effect Gr...

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

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

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


※注:正確に言うと、ビルトイン用の標準シェーダー(Standard Shader等)はURP用に変換できるのですが、ビルトイン専用のアセット独自のシェーダーは変換できないので注意が必要だということです。

URPの導入方法

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

URPの導入方法は

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

の2通りがあります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

特に理由がないならURPを使ったほうがいい!

という結論になると私は思います。

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

おわりに

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

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

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

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