Demo

Universal Render PipelineプロジェクトにVRサポートを追加する方法

RYAN CASSELL Software Quality Engineer
Jun 14, 2023|15 分
Universal Render PipelineプロジェクトにVRサポートを追加する方法
このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。

ユニバーサルレンダリングパイプライン(URP)上に構築されたUnityタイトルを開発する利点の1つは、レンダリング設定の変更を最小限に抑えながら、さまざまなプラットフォームでサポートされることです。あなたのプロジェクトは、モバイル機器からコンソール、PC、さらにはVRまで、あらゆるプラットフォームで実行できます。

VR向けの開発をしたことがない人にとっては、何から始めればいいのか分からず、気が遠くなることもあるだろう。プロジェクトを始めたばかりでも、他のプラットフォームで公開した既存のURPプロジェクトがあっても、最小限の労力で複数のVRプラットフォームで実行できるように、VRサポートを追加する手順を説明します。

適切なパッケージの追加

すべてのVR Unityプロジェクトに必要なものの1つは、XRプラグインマネジメントパッケージです。このパッケージを使えば、Meta QuestやMagic LeapからPlayStation®VR2(PS VR2)まで、ビルドしたいVRプラットフォーム用にプロジェクトを簡単に設定できます。

もう一つの便利なパッケージはXR Interaction (XRI) Toolkitである。このパッケージは、テレポートやスナップターンなど、ほとんどのVRタイトルで一般的な移動オプションを実装したプレハブを提供することで、セットアップ時間を短縮します。XRIパッケージが提供するオプションについては、こちらのブログを参照されたい。

これらのパッケージをプロジェクトに追加するには、Windowメニューを開き、Package Managerをクリックします。パッケージマネージャーウィンドウで、"Packages "をクリックします:In project "ドロップダウンでオプションを展開し、"Unity Registry "オプションをクリックして、パッケージマネージャーに利用可能なパッケージをすべて一覧表示させます。

Unityは多くのパッケージをサポートしているので、パッケージマネージャーウィンドウの検索バーに "xr "と入力すると、XR固有のパッケージだけが表示されるようにリストがフィルタリングされます。次に、XR Plug-in Managementパッケージをクリックし、Installボタンを選択してプロジェクトに追加します。XRI Toolkitパッケージも同じ手順で追加する。

パッケージマネージャウィンドウで、インストールボタンをクリックし、XR Plug-in Managementパッケージをインストールします。

次に、XRIチームが提供するサンプルアセットを追加してみましょう。パッケージマネージャで XR Interaction Toolkit パッケージをクリックし、パッケージ詳細パネルの Samples タブをクリックします。次に、Starter Assetsの横にあるImportボタンをクリックして、VRビヘイビアと入力アクションのセットアップを効率化するアセットを追加します。

Package Managerウィンドウで、XR Interaction ToolkitパッケージのSamplesタブをクリックし、Starter Assetsの下にあるImportボタンをクリックして、これらのアセットをプロジェクトに追加します。

これらのパッケージがインストールされていれば、VR向けの開発は半分以上進んだことになる。

プロジェクトで特定のプラットフォームのVRサポートを有効にする

次に、どのVRプラットフォームをターゲットにするかを指定する必要がある。これを行うには、プロジェクト設定を開き、XRプラグイン管理タブ(パッケージのインストール時に含まれています)をクリックして、プロジェクトで選択可能なプラグイン・プロバイダのリストを表示します。プラグイン・プロバイダーとは、VRプラットフォームの別名である。OculusやOpen XRなどのオプションを選択すると、Unityはそのプラットフォームに固有のパッケージをインストールします。

XR Plug-in Managementウィンドウで、Plug-in Providersペインで対象とするプラットフォームを選択します。

XRプラットフォームの中には、ビルド設定でWindows、Mac、Linuxのビルドターゲットを使用するものもあるが、異なるターゲットで実行するものもある。例えば、PS VR2向けにビルドする場合、ビルドターゲットをPlayStation®5(PS5)に切り替える必要がありますが、AndroidやiOSに切り替える必要があるものもあります。開発中に正しいビルド・ターゲットに切り替えて、重要なエラーや警告を早期に発見できるようにしてください。PS5向けのゲームを開発するには、PlayStationデベロッパーとして登録する必要があることを覚えておいてください。

各XRプラグインは、プロジェクトがXR用にビルドするように適切に設定されていることを確認するための検証チェックを提供します。これらを見つけるには、プロジェクト設定ウィンドウに行き、XRプラグイン管理タブの下にあるプロジェクト検証タブをクリックし、注意すべき警告やエラーがあるかどうかを確認します。ほとんどのチェックには、問題を解決するための「修正」ボタンが含まれています。

Project Validationウィンドウで、修正したい問題の横にあるFixボタンをクリックするか、見つかったすべての問題に対処する場合はFix Allボタンをクリックします。

適切なプラグイン・プロバイダーを選択すれば、VRプラットフォーム向けのビルドを開始する準備が整います。ただし、VRコントロールを既存のプレイヤーキャラクターにマッピングする必要はある。そこで、XRIツールキットが提供するスターターアセットが活躍する。

VRプレーヤー・コントローラーの追加

プロジェクトウィンドウで、Samples/XR Interaction Toolkit/2.3.2/Starter Assets/Prefabsフォルダに入り、Complete XR Origin Set Up Prefabをシーンにドラッグします。このプレハブには、プレイヤーコントローラのVR入力を設定するために必要なすべてのコンポーネントがあらかじめ搭載されています。

このプレハブには、ほとんどのVRコントローラーのセットアップに対応するXR Originプレハブがネストされています。プレイヤーの左右の手を表す2つのゲームオブジェクトと、プレイヤーが座っているか立っているかに応じてカメラを動かすCamera Offset GameObjectにネストされたメインカメラがあります。Complete XR Origin Set Up Prefabには独自のメインカメラが含まれているため、シーンにすでにメインカメラオブジェクトがある場合は、それを無効にして、複数のカメラが同時にプレーヤーのメインビューをレンダリングしないようにしてください。

Complete XR Origin Set Up Prefabをシーンにドラッグします。Prefabは、プレイヤーの手と頭を特定のGameObjectにマッピングするネストした子オブジェクトを持っています。

XRI Toolkitには、アクションを一般的なVRコントロールにマッピングするInput Mapも付属しています。これらのコントロールは、ほとんどのVRプラットフォームで標準的に使用されているため、Meta Quest、Magic Leap、PS VR2など、さまざまなプラットフォームで入力が認識されるようにするための余分なコーディングは必要ない。ゲーム状態のトラッキングのために重要なスクリプトは、元のプレーヤーコントローラーから新しく追加されたComplete XR Origin Set Up Prefabにコピー&ペーストしてください。プリファブの名前をVR FPS Controllerのように覚えやすいものに自由に変更してください。

XRIデフォルト入力アクションマップは、ほとんどのVRプラットフォームで共通のインタラクションをマッピングするためにXR Originプリファブで使われます。

XR Origin GameObjectには多くのコンポーネントが含まれており、最初はかなり混乱するかもしれません。XR OriginプレハブのXR Originコンポーネントは、他の全てのXRIコンポーネントのドライバーであると考えてください。これがないと、XRのロコモーションは機能しない。残りのコンポーネントは、XR特有のロコモーションを可能にするプロバイダーである。これらのプロバイダーは、テレポート、スナップターン、両手で表面をつかんで引っ張るなど、さまざまなタイプのVRロコモーションに対応している。

XR Originプレハブのロコモーション値を好みに合わせて調整する方法については、ドキュメントをお読みください。しかし、これから始めるのであれば、デフォルト値を使っても問題ないだろう。

ターゲット・プラットフォームのスペックを考慮する

もちろん、すべてのVRプラットフォームが同じように作られているわけではなく、特にVRタイトルが乗り物酔いを最小限に抑えるために毎秒60、90、120フレームを一定に保つ必要がある場合は、ターゲットとするプラットフォームのハードウェアスペックを念頭に置くことが重要だ。これは、目の最大解像度を下げたり、メインカメラのアンチエイリアスオプションを調整したり、ダイナミックライトの数を減らしてベイクドライトにしたり、GameObjectで使用するアルファ透過の量を減らしたり、GameObjectのLOD値を調整して、プレイヤーが近づいたときだけ高いジオメトリのバージョンをレンダリングするようにすることで実現できます。詳しくは、グラフィック性能の最適化に関するガイドをご覧ください。

良いニュースは、各プラットフォームに指定した品質レベルに応じて、異なる品質設定を非常に簡単に切り替えられることだ。Project SettingsウィンドウのQualityタブでは、独自のレンダラー、アンチエイリアス、LOD、ライティング設定を設定するクオリティレベルを作成・カスタマイズでき、各プラットフォームを最大限に活用できます。画質設定の調整についてはこちらをご覧ください。

VRセットアップのテスト

プロジェクトがVRプラットフォームをターゲットに設定されたので、プロジェクトに新しく追加されたXRリグをテストしましょう。XRIツールキットのXRデバイス・シミュレータを使用してエディタでセットアップをテストするか、プレーヤーをビルドしてデバイス上で実行します。

UnityにはXRデバイスシミュレータという便利なツールがあり、プレイモード時にエディタのゲームビュー内でXRコントロールをシミュレートできます。プロジェクトをビルドせずにロコモーションの設定をテストすることで、時間を節約することができます。XR Device Simulatorをプロジェクトに追加するには、Package Managerウィンドウを開き、XRI Toolkitパッケージに戻り、Samplesタブをクリックし、Sample Assetsの下にあるXR Device Simulatorの横にあるImportボタンをクリックします。

Package ManagerでXR Interaction Toolkitパッケージをクリックし、Samplesタブをクリックし、XR Device Simulatorの横にあるImportボタンをクリックしてプロジェクトに追加します。

インストールが完了したら、Project Settingsウィンドウを開き、XRI Toolkitタブをクリックします。このタブで、"Use XR Device Simulator in scenes "チェックボックスを有効にすると、Playモードに入ったときに、実行時にXR Device Simulatorが追加されます。また、XR Device Simulator Prefab を Project ウィンドウから直接シーンにドラッグ&ドロップすることもできます。

プロジェクト設定の "XR Interaction Toolkit "タブで、"Use XR Device Simulator in scenes "チェックボックスを有効にし、Playモードに入った時に、選択したXR Device Simulator Prefabのインスタンスを追加します。

エディターでプレイモードに入ると、WASDとマウス操作でXRリグを動かすことができるようになり、Tabキーを押すと、すべての操作、左手だけ、右手だけの操作を切り替えることができます。実際のVR入力と1:1で一致するわけではないが、ロコモーション設定が期待通りに機能しているかどうかをすぐにテストするのに役立つ。

プロジェクトをビルドする前に、XRI Toolkit Project Settingsウィンドウの "Use XR Device Simulator in scenes "チェックボックスを無効にするか、シーンからXR Device Simulatorを無効/削除する必要があることを覚えておいてください。そうしないと、VRコントロールがデバイス上で正しく動作しない。これは、XRデバイスシミュレータが、マウスとキーボードまたはゲームコントローラからのVR入力をシミュレートし、実際のVRコントローラからの入力を無視するためです。

XRデバイス・シミュレータの動作例

XRリグをテストする2つ目の方法は、ターゲットプラットフォーム上でXRリグをビルドして実行することです。Unityビルドを実行するためのXRデバイスのセットアップはそれぞれ異なるため、開発マシンへの接続方法に関するドキュメントを読んで最新の情報を入手してください。デバイスが接続されたら、Build SettingsウィンドウでBuild and Runを選択し、ターゲットプラットフォーム用のビルドを作成し、デバイスにロードします。

ビルドがオンデバイスで実行された後、自分で入力をテストし、何が機能し、何が機能しないかを確認することができる。唯一の制限は、ビルドが終了するのを待つことと、テストに利用できるデバイスがあることだ。

これらのステップと、Foveatedレンダリング設定の微調整だけで、GDC 2023で展示された新しいURPテンプレートの日本庭園のシーンをPS VR2で動作させることができた。

このクイックガイドが、あなたのプロジェクトにVRサポートを追加する手助けになれば幸いです。VRのセットアップで不明な点があれば、UnityのXR用プロジェクト設定ガイドを参照してください。

XRとURPの両チームは、マルチプラットフォーム向けの開発が可能な限りシンプルになるよう努力している。Universal Render PipelineのフィードバックはURPフォーラムで、XRのフィードバックはXRフォーラムで共有してください。Tech from the Trenchesシリーズの一環として、Unity開発者による今後の技術ブログをお楽しみに。