UnityURPを使ってVR体験をしてみる

はじめに

こんにちは、エンジニアの増井です。
VRで綺麗な世界を体験したい!!そう思ったことはありませんか?
UnityURPとはUnity Universal Render Pipelineの略称です。
今回は標準的なビルトインRender PipelineとUnityURPを比較しながらVR体験をしていこうと思います。

そもそもVRとは

VR(バーチャルリアリティ)とは、目を覆う形で装着するHMD(ヘッドマウントディスプレイ)を使って、自分の周りの世界をデジタルに置き換えて体験することです。
首を傾げれば周囲の景色も自然に変化し手持ち入力操作やその他のモーションセンサーを追加しVRをさらに拡張することで、没入感のあるデジタル世界でキャラクターや視点をより自由にコントロールすることができるそれがVRです。

URPについて

ざっくりまとめた特徴としては
1.描画処理が軽い
2.あらゆるプラットフォームに対応している
3.Shader Graph等の新機能を使える
なのでビルトインRPの上位互換といっても差し支えないのがURPだと思っています。

開発環境

CPU:intel i7 12700
GPU:RTX3060 12GB
メモリ:32GB
HMD :MetaQuest2/AirLink/90hz
Unityバージョン: 2022.2.8f1

環境構築

プロジェクト作成

テンプレート: 3D
まずはURPを導入せずVR体験をしてみようと思うのでテンプレートを3Dで作成します。

パッケージの追加

・PackageManagerウィンドウ(Window>PackageManager)から追加します
・Oculus Integration

・Oculus XR Plugin

・XR Plugin Management

プロジェクト設定

・XR Plugin ManagementのPlug-in ProvidersをOculusに

・ProjectSettingsのPlayerからOtherSettingsのColorSpaceをLinearに

サンプルシーンを開く

・Oculus/SampleFramework/Usage/MixedRealityCapture.unity

実際に動かしてみる

VR空間に入り周りを見てみると思ったより暗く寂しい感じがしました。
光を近づけるとどうやって当たっているかもわかりはしますがなかなかに影響範囲が小さく、赤色は処理が間に合っておらず若干遅れて色がついています。
FPSも30~35の間で気持ち重めでした。

URPをやってみよう

・PackageManagerからインストール

・マテリアルをURP用に変更
・Edit>Rendering>Materials>Convert Selected Buit-in Materials to URP

URPで動かしてみる

見てわかるぐらいには違いが生まれてURPを使うとビジュアルがものすごく向上してます
色合いが全体的に明るくなり、遅れて色がつくこともなくなりました。
FPSは55~60とそこまで大きな違いはでませんでしたが、見た目の向上も相まってすごく軽くなった印象でした。

それぞれの違いを最後に比較してみます。

FPSの違い

ビルトインRPでは30~35FPS
URPでは55~60FPS
と2倍ぐらいの違いが出ました。VR空間では72FPSを下回るとVR酔いが発生しやすくなるの
で見た目の向上をしつつVR酔い対策にもなることがわかりました。

処理負荷の違いについてBachesで測定

ビルトインRPではBachesの値は411
URPではBachesの値は236
とこちらも2倍ほど差が出ましたURPは描画処理が最適化されているので軽くなったのが体験できました。

まとめ

今回はUnityVRを用いてURPはどのくらい見た目を変化するのかを体験してみました。
実際にVR空間でみるのと画像で見るのはかなり違いがあると思うので、もし今回の記事でやってみたいと思われた方は
ぜひMetaHP(https://www.meta.com/jp/quest/)から購入して触ってみてください。
URPの時点でかなり綺麗だったので、次はHDRP(High Definition Render Pipeline)を使ってより綺麗になったVR体験をしてみたいと思います。