【Unity】HDRPのセットアップ方法
久々にHDRP ( High Definition RP )を使おうとした際、速攻で設定に行き詰った。(※美しいビジュアル映像制作のためには、必須のパイプライン)
HDRPプレビュー版時と設定方法が変わってしまったようだ。合わせて、SkyBoxの設定もわからず・・・。
で、試行錯誤の結果、初期セットアップのやり方が分かったので、メモしておく。
<Unity 2020, 2021>
■事前調査
◇プロジェクト新規作成テンプレートで比較
違いを確かめるため、テンプレートのライティング設定を比較。
・3D(Built-in Render Pipline)
・High Definition RP
・3D(SkyBoxの設定項目がある)
・High Definition RP(ライティングにSkyBoxの設定項目が無い)
※環境設定でVolume系プロファイルを使う気がするがやり方わからず。
◇ネットの知見を調査した結果
以前、HDRPの設定は、ゲームオブジェクト>レンダリング>Scene Settingsという項目で設定したようだ。
ただし、Unity 2020版では項目自体無くなっている。
試行錯誤した結果・・・
最終的に海外アーティストの動画で解決方法を見つけた。
●
●
●
■HDRPとSkyBoxの設定方法
・・・ということで、HDRPのセットアップ方法を説明。
大雑把な設定手順の概要を説明すると下記のような感じ。
HDRI初期セットアップ
プロジェクト設定で、HDRPの設定ファイルを読み込む
ライティングで、プロファイルを作成する
Sky Box設定
ポストプロセス追加
Volume系のゲームアセットを作成し、インスペクターで、個々の設定を追加。設定項目を
調整していく。
あと、今回作成したアセットファイルは以下の通り。
■HDRPの初期セットアップ(下準備)
まず、HDRPのテンプレを使わず、素の状態で下準備から始める。
プロジェクト新規作成時のテンプレートは、「3D」を選ぶ。(標準のBuilt-in RPになるが、HDRPを後から上書きするのでこのまま進める)。
プロジェクトが新規作成され、Unity Editorが起動した後、パッケージマネージャーを起動し、HDRPパッケージをインストールする。
※該当項目が現れない場合、パッケージはUnityレジストリを選択。
次にHDRP用設定ファイルを作成する。
アセット>レンダリング>High Definition Render Asset を作成。するとプロジェクトウィンドウにHD Render Pipeline Assetファイルが作成される。
※Unity2021だと同じメニュー項目が日本語ローカライズされている。
それから、編集>プロジェクト設定 を開き、グラフィックス>スクリタブルレンダーパイプライン設定 で、HD Render Pipeline Assetファイルを選択設定。
※これで、HDRPに対応した編集ができるようになる。
ついでに、品質>Rendering で、HD Render Pipeline Assetファイルを設定。品質>HDRP でレンダリングの詳細設定編集可能。
※この内容は、プロジェクトに生成されたHD Render Pipeline Assetファイル>インスペクター で表示される内容と同等。
最後にライティングを設定。
ライティング>シーン設定 を設定。
ライティング設定は、新しいライティング設定ボタンをクリックして作成。
ライティング>環境設定 を設定。
Sky and Fog Settings Profile (Volume)プロファイルを選択設定。
これで、HDRIの初期セットアップ完了。
●●●
■SkyBox設定
ヒエラルキーウィンドウにSky and Fog Volumeを作成。
(ゲームオブジェクト>ボリューム>Sky and Fog Volume)
※今回、プロファイラーが自動設定されるSky and Fog Volumeで
作成したが、任意に設定したいならGlobal VolumeでもOK。
Sky and Fog Volume>インスペクター を設定していく。
Add Overrideボタンをクリックして、Sky>HDRI Sky を選択設定。
HDRI Sky>HDRI Sky の入力ボックスにHDRIキューブマップを適用したマテリアルを選択して設定する。
Sky and Fog Volume>インスペクター の全体状態。
あと、以下の設定を確認。
Visual Enviromment>Sky>タイプ をHDRI SKYに設定する。
ライティングウィンドウで、Enviromment (HDRP)>Static Lighting Sky をHDRI SKYに設定する。
ビューポートでHDRPの表示具合を確認。
これで、SkyBoxの設定完了。
■参考:HDRIキューブマップを適用したマテリアルの作成方法
まず、プロジェクトにインポートしたHDRI(HDRイメージ)をキューブマップに変換。
次にプロジェクトウィンドウ>HDRIを選択し、インスペクターで、キューブマップを設定。
その後、変換ダイアログが表示される。変換後は、わかりやすいようにサムネイルアイコンのイメージが変わる。
あとは、マテリアルのCubemap(HDR)スロットにHDRIキューブマップを適用するだけ。このマテリアルをSkyBoxの設定に利用する。
<やり方>
プロジェクトウィンドウにマテリアルを新規作成する。
そして、マテリアル>インスペクター>Shaderのポップアップメニューで、Standardの設定をたどって、SkyBox>Cubemapに変更。
するとインスペクターの内容がCubemap設定表示に切り変わるので、
Cubemap (HDR)のスロットに(キューブマップに変換した)先ほどのHDRIテクスチャーを適用する。
■トラブルシューティング
◇ビューポートの背景にHDRIの画像表示されない
下図のビューポートの表示設定を確認してみる。リスト中のSkyboxが、チェックされて、表示設定が有効になっているかどうか確認。
◇HDRPがインストールされているかどうか確認したい
パッケージマネージャーで確認できる。(項目を表示させるには、Unityレジストリを選択)
◇HDRI Skyに切り替わらない
Sky and Fog Volume>インスペクター>Visual Enviroment>タイプ で、HDRI Skyに切り替わらない場合は、先にライティングの設定のプロファイラーの設定を試してみる。
◇オブジェクトへの照明が強すぎる
HDRI Skyを設定してライトのEmission設定で、Intensityの値調整時、オブジェクトへの照明が強すぎる場合は、HDRI Sky>Intencity ModeをLuxに設定すると緩和された。
(※ただし、このやり方が正解かどうか不明)
◇HDRIの地面部分がぼやけてしまう
Sky and Fog Volume>Fog 設定のEnableの右端オプションが有効になっている場合は、無効にしておく。
■ポストエフェクト追加
AOやBloom等のポストエフェクトを追加したい場合は、ヒエラルキー>Sky and Fog Volume>インスペクター の設定で、Add Overrideボタンをクリックして表示されるリストから追加していく。
<例>
・Lighting>Ambient Occlusion(AO:遮蔽部の陰影)
・PostProssesing>Bloom (光の飽和)
・PostProssesing>Depth Of Feld(被写界深度)
※ここで設定したアンビエントオクルージョンは動的に動作をする。(SSAO、サブサーフェスAO)
※一方、静的なアンビエントオクルージョンの設定も可能。
その場合、一旦動的な設定を無効にしてから、各オブジェクトのインスペクター>「静的」を有効にした後、ライティング>シーン>アンビエントオクルージョンを有効にして、ライトマップをベイクする。
「静的」というのは、ライトマップのベイク対象にするという意味。
■参考動画
以上。