今回はこのブログでも特に人気が高いUnityの「URP(Universal Render Pipeline)」に関する話題で、その使い方を詳しく説明するという内容です。
実は以下の記事
でURPのメリットや導入方法についてご説明したところかなりの反響があったのですが、そういえばURPの使い方についての説明はしていなかったので、その辺も解説しておいた方が良いかなと思いました。
そこでここでは
- URPの特徴や新機能のおさらい
- URPの具体的な使い方・設定方法
について詳しく解説していきますね。
- 「そもそもURPって何?」という方は先ほどのリンク先の記事も併せてご覧ください。
- 「HDRP等との違いは何?」といった疑問をお持ちの方は、前の記事「【Unity】URP・HDRP・ビルトインを徹底比較!一体どれを使えば良いのか?」をぜひご覧ください。
おさらい:URPの特徴と新機能について
では、はじめにおさらいとしてURPの特徴や、URPで使えるUnityの新機能について簡単にご紹介しておきます。
URPの特徴
まずURPの主な特徴については、デフォルトのパイプライン(=ビルトインレンダリングパイプライン)と比較すると次のようなものがあります。
- 描画処理が軽い
- 新機能が使える(※後述)
一つ目にして最大の特徴は、URPでは描画処理が最適化されているためビルトインよりも描画処理が軽いことが挙げられます。具体的には例えばURPには「SRP Batcher」という機能があり、描画負荷を大幅に削減できるような仕組みになっています。
また二つ目の特徴として、(次に説明しますが)URPでは描画にかかわる新機能をいくつか使うことができます。使いこなせればビルトインよりも表現の幅が格段に広がるのでお勧めです。
URPで使えるUnityの新機能
次にURPでは描画にかかわる新機能をいくつか使うことができます。主な新機能は次の通りです。
- Shader Graph:
シェーダーを視覚的に作成できる機能 - VFX Graph:
パーティクルシステムの後継版。こちらもパーティクルを視覚的に作成可能 - Light2D:
2Dゲームにライティングを導入できる機能
特にShader Graphは、今までシェーダーを書けなかった私みたいな人でも簡単にシェーダーを作れるようになるのでぜひ使って頂けたらと思います。
URPの具体的な使い方・設定方法
さて前置きはこのくらいにして、ここから本題であるURPの使い方について説明していきます。導入方法については冒頭で紹介した記事で解説したので、ここではURPのプロジェクトを作った後の設定方法等について解説しますね。
- URPのシェーダーについて
- URPの品質設定について
- URPのポストプロセス(Volume)について
URPのシェーダーについて
まず、URPを使う上で一番つまづきやすい部分は何といってもシェーダーでしょう。例えば、古いアセットをURPのプロジェクトに入れたらピンク色になってしまった!という失敗は非常によくありがちです。
これはなぜなのかというと、URPではStandardシェーダーなど従来のシェーダーが使えないためです。URPには新しい専用のLitシェーダーなどが用意されているのでそちらを使う必要があります。覚えておきましょう。
古いマテリアルをアップグレードする方法
ただ、古いアセットをどうしても使いたい!というときにいちいち手作業でマテリアルのシェーダーを変更するようでは日が暮れてしまいます。そこでマテリアルを一括でURP用にアップグレードできる機能があるのでそれを使うとよいでしょう。
マテリアルをURP用にアップグレードする機能の使い方については下記の記事で詳しくご紹介していますので、そちらも併せてご覧頂ければと思います。
URPの品質設定
次にURPの品質設定についてです。URPのプロジェクトでは「プロジェクト設定」ウィンドウからは一部の品質設定しか変更することができないので、細かい設定をいじりたい場合は「Universal Render Pipeline Asset」というものをインスペクターで開いて設定を行う必要があります。
デフォルトだとその設定ファイルはAssets内の「Settings」フォルダにあります。開いてみると下の図のように色々と細かい設定ができることが分かります。
ここでは各項目について詳しくは触れませんが、一つだけ言っておくとシェーダーによっては「Depth Texture」や「Opaque Texture」が有効になっていないと正しく描画されない場合もあるので、「なんか表示が変だな」と思ったらその辺の設定を変更してみると良いかもしれません。
URPのポストプロセス(Volume)
最後はURPでのポストプロセスについてです。
まずビルトインではポストプロセスは「Post Processing Stack」といった名称だったのですが、非常に紛らわしいことにURPではこれが「Volume」という名前になりました。それからビルトインではパッケージマネージャを通してインストールしていたのが、URPでは標準搭載になっています。この辺は大きな変更なので覚えておきましょう。
Volumeの詳しい使い方については下記の記事でご紹介していますので、併せてご覧頂ければと思います。
おわりに
以上、URPの使い方について解説してきました。
執筆時点ではURPはまだ発展途上であり、ビルトインの完全な上位互換ではないのですが、それでもビルトインと比較するとメリットだらけで既に十分に使えるレベルです。興味があれば上記の内容を参考にしてぜひ活用して頂ければと思います。
この記事がUnityでのゲーム開発のお役に立てば幸いです。