【Unity】URP・HDRP・ビルトインを徹底比較!一体どれを使えば良いのか?

レンダリングパイプライン徹底比較 ゲーム開発

皆さんはUnityで新しいゲームを作り始めるときに「一体どのレンダリングパイプラインを使えばいいんだろう?」と迷ったことはありませんか。個人的にこれはUnityならではの悩みどころの一つだと思っていて、

URPやHDRPを使ってみたいけど、よく分かんないからデフォルト(=ビルトインレンダリングパイプライン)でいいや

という方は非常に多いと思います。

しかしURPやHDPRについて知りたい!という方は多いようで、実際のところ執筆時点ではこのブログのURPについての記事

【Unity】URP(Universal Render Pipeline)の概要&導入方法
Unityを使っていると、よく「URP」という単語を目にすることがあります。これはざっくり言えばUnityのグラフィックの描画方式の一つなのですが、初心者の方からしてみれば URPって一体何なの? デフォルトのテンプレートと何が違うの? ど...

物凄い勢いで閲覧されているので、もう少し分かりやすいところで「各レンダリングパイプラインの比較記事」をご用意しておいた方が良いのかな?と思いました。

そこでここでは、執筆時点のUnityの3つのレンダリングパイプライン

  • URP
  • HDRP
  • ビルトインレンダリングパイプライン(※以下、ビルトインRP)

の比較を行い、どのゲームを作るときにどのレンダリングパイプラインを使えばよいのか?といったところまでご紹介してみますね。

結論:URP・HDRP・ビルトインRPの比較表

でははじめに結論を書いてしまうと、URP・HDRP・ビルトインRPの比較は次の表のようになります。

パイプライン 表現力 描画速度 新機能
URP
HDRP
ビルトインRP ×

比較1:グラフィックの表現力

まず、グラフィックの表現力についてはHDRPが他を圧倒しています。というのはHDRPは写実的な表現が得意であり、AAAタイトルのような非常にリッチな表現が可能だからです。また設定項目が多いのでよりきめ細かくグラフィックを設定することもできます。

ちなみにURP・ビルトインRPの表現力についてですが、執筆時点ではほぼ互角だと思います。

比較2:グラフィックの描画速度

次にグラフィックの描画速度についてはURPが一番優れているようです。今回、試しにキューブ「100個」を同時に描画するスクリプトを作り、デフォルトの描画設定で速度を比較してみたら次のような結果になりました。

URP

URPのパフォーマンス

描画負荷の一つの目安となるBachesの値は「236」でした。後述するビルトインRPよりもBatchesの値がかなり低く、描画が最適化されていることが分かりますね。

HDRP

HDRPのパフォーマンス

Bachesの値は「261」でした。HDRPは非常にリッチな表現を行っているせいか、スクリプト由来の処理負荷が他と比べてかなり高くなっていることが分かります。しかしBatchesの数はかなり抑えられており、こちらも描画処理自体は最適化されていると言えます。

ビルトインRP

ビルトインRPのパフォーマンス

Bachesの値は「411」でした。プロファイリングのグラフだけを見ると若干URPよりも処理が軽いようにも見えますが、Batchesの値は最も高くなりました。これは描画が最適化されていないということであり、より多くのゲームオブジェクトを表示した場合には描画速度の悪化が顕著になると考えられます。

比較3:新機能を使えるかどうか

最後に新機能(Shader Graph、VFX Graph等)を使えるかどうかについては、URP・HDRPは新機能を使えますがビルトインRPではそれらを使うことができません

これはURP・HDRPが新しいレンダリングパイプラインであるのに対して、ビルトインRPは旧式のレンダリングパイプラインだからです。ちなみにURPがビルトインRPの後継という位置づけになるので、今後ビルトインRPには新機能の追加予定などは無いらしいです。

各レンダリングパイプラインの特徴まとめ

では結論をご覧いただいたところで、

  • 各レンダリングパイプラインの特徴のまとめと
  • どういうゲームを作るときにそのレンダリングパイプラインを使うと良いのか

といった部分をご紹介していこうと思います。

URP(Universal Render Pipeline)について

URPの特徴

ではまずURPの特徴についてですが、大きく分けて次の3つがあります。

  1. 描画処理が軽い
  2. あらゆるプラットフォームに対応している
  3. Shader Graph等の新機能を使える

まずは先ほどの検証結果の通り描画処理が軽く、それゆえモバイル機からハイエンド機まで幅広いプラットフォームに対応しているのがURPの大きな特徴です。また、Shader Graph等の新機能を使うことができますし、地味なところだと2Dゲームにライティングを導入することも可能です。まあ基本的にはビルトインRPの上位互換(※注)だと思って頂ければ十分で、今後新しいゲームを作るならとりあえずURPを選んでおいても損はないと思います。

なおURPについての詳しい話は以下の記事で紹介していますので、併せてご覧いただければと思います。

【Unity】URP(Universal Render Pipeline)の概要&導入方法
Unityを使っていると、よく「URP」という単語を目にすることがあります。これはざっくり言えばUnityのグラフィックの描画方式の一つなのですが、初心者の方からしてみれば URPって一体何なの? デフォルトのテンプレートと何が違うの? ど...

※注:正確に言うと執筆時点ではまだ完全な上位互換ではないのですが、今後機能が追加されてビルトインRPの完全な後継版になる模様です。

どんなゲームを作るときにURPを使うべきか?

スマホゲーム・VRゲームや、リッチな表現がそこまで求められない3Dゲーム・2Dゲームなどほとんどのゲームの制作に最適です。先述の通り迷ったらとりあえずURP、という感覚でプロジェクトを作っておけばまず間違いありません。

HDRP(High Definition Render Pipeline)について

HDRPの特徴

次にHDRPの特徴です。こちらは主に2つあります。

  1. 超美麗なグラフィックを実現可能
  2. Shader Graph等の新機能を使える

HDRPの場合は兎にも角にも「グラフィックの表現力が高い」点が最大の特徴だと言えます。逆に言うとそれ故にモバイル機等では動かないので、どうしてもリッチな表現が欲しい時にだけ使うべきだと思います。

ちなみにHDRPについても以下の記事に詳しい話が書いてありますので、そちらも併せてご覧いただければ幸いです。

【Unity】HDRPの使い方!美しい3D表現にチャレンジしよう
Unityを使っていると「HDRP」という単語を耳にすることがあります。これは端的に言えばUnityのグラフィック描画にかかわる仕組みの一つなのですが、初心者の方にとってはイマイチ理解しづらく情報も少ないので「さっぱり分からん」という方も多...

どんなゲームを作るときにHDRPを使うべきか?

AAAタイトル並の写実的な3D表現が必要なゲームに最適です。サポートされているプラットフォームは一部のみなので、仕様などをよく確認してから使うようにしましょう。

ビルトインRPの特徴

ビルトインRPの特徴

最後にビルトインRPの特徴については、主に次の点が挙げられます。

  1. 難しいことを考えなくても使える
  2. 古いアセットを使うときに互換性を気にしなくても済む

ビルトインRPはシンプルで使いやすく、また古いアセットとも相性が良いのでどうしても他のレンダリングパイプラインがとっつきづらい場合には便利です。

しかしそれ以外には特にメリットはなく、URPと比べると処理速度等でどうしても見劣りしてしまうので、個人的には今後もビルトインRPを使い続けるのはお勧めしません

どんなゲームを作るときにビルトインRPを使うべきか?

ゲームジャムや単純な試作等、他のレンダリングパイプラインをセットアップする手間も惜しい時には未だに便利です。また、どうしても古いアセットを使わなければならないときにも役に立つと思います。

おわりに

以上、Unityの3つのレンダリングパイプラインの比較や、それぞれどんなゲームを作るときに使えばよいか?といった点についてお話してきました。

レンダリングパイプラインが3つもあるのは選択肢があって良い反面、混乱の元にもなっていると思うので、初心者の方にとってはどれを使うべきかはなかなか悩ましい問題でしょう。しかしここまでの内容を理解していただければご自身のゲームに最適なものを選べると思います。ぜひ参考になさってください。

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