【Unity】URPの使い方!軽くて新機能も使えるパイプラインを使いこなそう

URPの使い方 ゲーム開発

今回はこのブログでも特に人気が高いUnityの「URP(Universal Render Pipeline)」に関する話題で、その使い方を詳しく説明するという内容です。

実は以下の記事

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

でURPのメリットや導入方法についてご説明したところかなりの反響があったのですが、そういえばURPの使い方についての説明はしていなかったので、その辺も解説しておいた方が良いかなと思いました。

そこでここでは

  • URPの特徴や新機能のおさらい
  • URPの具体的な使い方・設定方法

について詳しく解説していきますね。


おさらい:URPの特徴と新機能について

では、はじめにおさらいとしてURPの特徴や、URPで使えるUnityの新機能について簡単にご紹介しておきます。

URPの特徴

まずURPの主な特徴については、デフォルトのパイプライン(=ビルトインレンダリングパイプライン)と比較すると次のようなものがあります。

  1. 描画処理が軽い
  2. 新機能が使える(※後述)

一つ目にして最大の特徴は、URPでは描画処理が最適化されているためビルトインよりも描画処理が軽いことが挙げられます。具体的には例えばURPには「SRP Batcher」という機能があり、描画負荷を大幅に削減できるような仕組みになっています。

また二つ目の特徴として、(次に説明しますが)URPでは描画にかかわる新機能をいくつか使うことができます。使いこなせればビルトインよりも表現の幅が格段に広がるのでお勧めです。

URPで使えるUnityの新機能

次にURPでは描画にかかわる新機能をいくつか使うことができます。主な新機能は次の通りです。

  • Shader Graph
    シェーダーを視覚的に作成できる機能
  • VFX Graph
    パーティクルシステムの後継版。こちらもパーティクルを視覚的に作成可能
  • Light2D:
    2Dゲームにライティングを導入できる機能

特にShader Graphは、今までシェーダーを書けなかった私みたいな人でも簡単にシェーダーを作れるようになるのでぜひ使って頂けたらと思います。

URPの具体的な使い方・設定方法

さて前置きはこのくらいにして、ここから本題であるURPの使い方について説明していきます。導入方法については冒頭で紹介した記事で解説したので、ここではURPのプロジェクトを作った後の設定方法等について解説しますね。

  1. URPのシェーダーについて
  2. URPの品質設定について
  3. URPのポストプロセス(Volume)について

URPのシェーダーについて

まず、URPを使う上で一番つまづきやすい部分は何といってもシェーダーでしょう。例えば、古いアセットをURPのプロジェクトに入れたらピンク色になってしまった!という失敗は非常によくありがちです。

これはなぜなのかというと、URPではStandardシェーダーなど従来のシェーダーが使えないためです。URPには新しい専用のLitシェーダーなどが用意されているのでそちらを使う必要があります。覚えておきましょう。

古いマテリアルをアップグレードする方法

ただ、古いアセットをどうしても使いたい!というときにいちいち手作業でマテリアルのシェーダーを変更するようでは日が暮れてしまいます。そこでマテリアルを一括でURP用にアップグレードできる機能があるのでそれを使うとよいでしょう。

マテリアルをURP用にアップグレードする機能の使い方については下記の記事で詳しくご紹介していますので、そちらも併せてご覧頂ければと思います。

【Unity】マテリアルをURP用に変換する方法!「3Dモデルがピンク色になる問題」を簡単に修正しよう
Unityで初心者の方がURPを採用してゲームを作るときに、よくあるトラブルとして 3Dモデルのアセットをインポートしたらピンク色になってしまった! というものがあります。これはそのアセットのマテリアル(のシェーダー)がURPに対応していな...

URPの品質設定

次にURPの品質設定についてです。URPのプロジェクトでは「プロジェクト設定」ウィンドウからは一部の品質設定しか変更することができないので、細かい設定をいじりたい場合は「Universal Render Pipeline Asset」というものをインスペクターで開いて設定を行う必要があります。

デフォルトだとその設定ファイルはAssets内の「Settings」フォルダにあります。開いてみると下の図のように色々と細かい設定ができることが分かります。

Universal Render Pipeline Assetの例

ここでは各項目について詳しくは触れませんが、一つだけ言っておくとシェーダーによっては「Depth Texture」や「Opaque Texture」が有効になっていないと正しく描画されない場合もあるので、「なんか表示が変だな」と思ったらその辺の設定を変更してみると良いかもしれません。

URPのポストプロセス(Volume)

最後はURPでのポストプロセスについてです。

まずビルトインではポストプロセスは「Post Processing Stack」といった名称だったのですが、非常に紛らわしいことにURPではこれが「Volume」という名前になりました。それからビルトインではパッケージマネージャを通してインストールしていたのが、URPでは標準搭載になっています。この辺は大きな変更なので覚えておきましょう。

Volumeの詳しい使い方については下記の記事でご紹介していますので、併せてご覧頂ければと思います。

【Unity】URPのVolume(=ポストプロセス)の使い方!ゲームの見た目をワンランクUPさせよう
今回はゲームの絵作りに関する話題で、タイトルのとおり URPのVolumeを使ってゲームの見た目を良くする方法 について解説するという内容になっています。 URPはUnity2021以降は十分すぎるほど実用的になっており、従来のビルトインR...

おわりに

以上、URPの使い方について解説してきました。

執筆時点ではURPはまだ発展途上であり、ビルトインの完全な上位互換ではないのですが、それでもビルトインと比較するとメリットだらけで既に十分に使えるレベルです。興味があれば上記の内容を参考にしてぜひ活用して頂ければと思います。

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