【Unity】HDRPの使い方!美しい3D表現にチャレンジしよう

HDRPを使ってみよう ゲーム開発

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

というのも(執筆時点では)HDRPに関してはググっても使い方の情報がほとんどなく、設定方法もURPや従来のテンプレートとは異なるので混乱の元になっているようです。したがって「HDRPを使えば美麗なグラフィックを実現できるって聞いたことはあるけど、なんか使い方が分からないな」という状態になってしまっている方はかなり多いと思います。

そこでここでは

  1. そもそもHDRPとは?URPとの違いは何か?
  2. HDRPの使い方(主に設定方法)

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

HDRPって何?URPとは何が違うの?

Unityの「HDRP」とは

まずUnityの「HDRP」とは「High Definition Render Pipeline」の略で、ここ数年で実装された新しいレンダリングパイプラインの一つです。Unity Learning Materialsから概要を引用させて頂くと

物理ベースのレンダリングに基づいた先進的なグラフィックスを提供するレンダリングパイプラインです。

とのこと。つまり平たく言えばリアルな表現が可能なグラフィック描画システムということになります。

HDRPの特徴

次にHDRPの特徴についてですが、先ほども書いた通り

超リアルな3D表現が可能!

という一点に尽きます。これは実際にHDRPで作られた短編デモムービー「The Heretic」(※Youtube)等をご覧いただければすぐにわかるのですが、実写といっても過言ではないレベルの美麗な3Dグラフィックをリアルタイムで実現できるというわけです(下図)。

The Heretic

出典:The Heretic short film | Unity

したがってHDRPを上手く使いこなせれば、今までは無謀だった「AAAタイトルのようなグラフィック」を自分のゲームに導入できるかもしれません。

URPとはどう違うの?

さてHDRPといえば引き合いに出てくるのがURP(Universal Render Pipeline)ですが、両者の主な違いはというと

  1. グラフィックの表現力
  2. 対応するプラットフォーム

の2点です。どうやら

  • URP:
    HDRPよりも表現力で劣るが、高速なのでUnityで扱える全プラットフォームに対応
  • HDRP:
    URPよりも高度な表現ができる反面、対応するプラットフォームは高性能なPC・一部のゲーム機に限られる(=今のところスマホゲーやブラウザゲーは作れない)

といった感じで明確に役割が分かれているようですね。執筆時点ではHDRPは対応プラットフォームが限られているので、その点はしっかり覚えておいた方が良いでしょう。

HDRPの使い方

ではここからが本題で、HDRPの具体的な使い方を説明していきます。ただしHDRPは設定可能な項目が非常に多いのでここでは基本的な部分だけを解説しますね。

HDRPの導入方法

まずHDRPの導入方法ですが、プロジェクトを新規作成するなら「テンプレート」の「High Definition RP」を選んで「作成」ボタンを押せばOKです(下図)。

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

この場合は必要な設定が行われた状態で新しいプロジェクトが作成されます。

なお既存のプロジェクトに導入したい場合については、手順が少し面倒になるのでここでは割愛します。適宜ググってみてください。

デフォルトの設定を変更して、手軽にシーンを美しい見た目にしてみよう

さてプロジェクトが立ち上がったら、最初からインポートされているサンプルシーンを見て回っても良いのですが、ここでは新しいシーンを作ってデフォルトの状態から「より美しい」見た目になるように設定を変更してみましょう。デフォルトと変更後の比較は次の通りです。

HDRPの設定をより美しくした場合の比較

デフォルト設定でも決して悪くはないのですが、ちょっと影が濃すぎたりしてUnity臭い印象ですよね。それを改善して右のような少しオシャレな見た目に変更していきます。主な手順は次の通りです。

  1. スカイボックス(=空)を変更する
  2. ポストプロセッシングで見た目を改善する

手順1:スカイボックス(=空)を変更する

まず、空がデフォルトのままだとデフォルト臭がプンプンするのでこれを変更します。URP等とは空の変更方法が違うので注意してください。変更手順は次の通りです。

  1. ヒエラルキーで右クリック→「ボリューム」→「Sky and Fog Volume」を選択し、「Volume」などがアタッチされたスカイボックス用のゲームオブジェクトを作る。
  2. 下の画像のように設定を行う(※あくまでも例なので適宜調整してください)。
    HDRPのスカイボックスの設定例
  3. ライティング設定ウィンドウを開き、「環境」タブの「プロファイラー」に先ほど作った空のVolume Profileを設定する。
    シーンにVolume Profileを適用する

できたらシーンのオブジェクトを「静的」にして、ライティングをベイクしてみましょう。これで空が発する環境光も加わって良い感じの見た目になりました。

HDRPでスカイボックスを変更した場合の例

手順2:ポストプロセッシングで見た目を改善する

ただしこのままではシーンが少し暗いので、ポストプロセッシングを使って見た目を改善していきます。

新しい空のゲームオブジェクトを作り、「Volume」コンポーネントを追加して「プロファイラー」に新しいVolume Profileを設定しましょう(※HDRPの場合はこの「Volume」というコンポーネントがポストプロセッシングも行ってくれるので、追加のパッケージ等のインポートは必要ありません)。

できたら「Exposure」というオーバーライドを追加して、次の画像のように設定してみてください。

Exposureの設定

すると画面が明るくなります。

HDRPの設定をより美しくした場合の完成例

これだけでもUnity臭さが消えてかなり見栄えの良いグラフィックになりましたね!今回はシンプルさを重視してごく簡単な設定を行いましたが、他にもたくさんの設定項目があるのでぜひ色々と研究して美しいグラフィックを追及してみてください。

おわりに

以上、UnityのHDRPの概要や具体的な使い方について説明してきました。

HDRPは設定項目が多く複雑ではありますが、使いこなせれば自作ゲームでは考えられないほど美しいグラフィックを実現することができるのでプレイヤーさんをあっと驚かせることができるでしょう。興味がある方はぜひ上記の内容を足掛かりにしてHDRPに触れてみて頂ければと思います。

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