Version: 2021.3
言語: 日本語
XR プラグインフレームワーク
XR のユニバーサルレンダーパイプラインの互換性

XR 用 Unity プロジェクトの設定

XR 用に Unity プロジェクトを設定するには、以下の手順を行います。

  1. Project Settings (プロジェクト設定) ウィンドウを開き (menu: Edit > Project Settings)、XR Plug-in Management (XR プラグイン管理) を選択します。
  2. パッケージがまだインストールされていない場合は、Install XR Plug-in Management をクリックします。Package Manager ウィンドウからインストールすることもできます。
  3. インストールが完了したら、Plug-in Provider を選択して対応するビルドターゲットで有効にします。以下の手順で行います。
    1. ビルドターゲット (例えば Android) を選択します。
    2. ビルドターゲットに使用したいプラグインの左にあるチェックボックスを選択します。
  4. プラグインがロードされると、左側のナビゲーションの XR Plug-in Management に表示されます。プラグインをクリックして、各ビルドターゲットの設定を行います。
  5. トラッキングを設定するには、Unity のメインメニューから GameObject > XR > Add XR Rig の順に選択します。

ノート:

  • XR プラグインプロバイダーを選択すると、そのプロバイダーが対応するビルドターゲットに対して有効になります。プラグインパッケージがまだ存在しない場合は、Unity によって自動的にインストールされます。
  • Disabling plug-ins doesn’t automatically uninstall existing packages. Uninstall provider plug-ins from the Package Manager.
  • サードパーティのプラグインのリストについては、Unity での VR 開発入門 を参照してください。

XR プラグインフレームワークのトラッキングの設定

2019.3 より前の Unity バージョンで使用されていた暗示的カメラトラッキングは、新しい XR プラグインフレームワークで排除されました。以前のトラッキングは、HMD のみのシンプルなアプリケーションでは機能しましたが、コントローラーや他のインタラクションとの相関関係で使用する場合、あまり直感的ではありませんでした。

XR トラッキングが XR プラグインフレームワークで適切に設定されていることを確認するには、以下の手順に従います。

新しいシーンから開始する場合

以下の手順は、新しいシーンから開始する場合、または以下の条件に当てはまるシーンから開始する場合に適しています。

  • シーンにはカメラが 1 つだけあり、そのカメラは Main Camera (メインカメラ) とタグ付けされている。
  • シーンのカメラが階層のルートにある。

Unity のメインメニューから GameObject > XR > Add XR Rig の順に選択します。これにより、新しいシーンを XR プラグインフレームワークを正しくサポートするシーンに変換します。

コンソールログにエラーが表示されない場合は、シーンの Play をクリックすると、XR Plug-in Management パッケージで設定したデバイスに対するカメラの追跡が表示されます。

Unity がシーンを正しく移行できない場合は、コンソールログにエラーが表示されます。以下の 既存のシーンから開始する場合 の手順に従ってください。

既存のシーンから開始する場合

既存のシーンからのマイグレーションには、空のシーンの場合と比較して、追加の手順が必要です。シーンの設定に応じて異なるオプションがあります。どの場合においても、XR プラグインフレームワークに移行する前と同じようにシーンのトラッキングを設定できるようにします。

シーンタイプの特定

Main Camera (メインカメラ) とタグ付けされたカメラをシーン内で見つけます。Unity はこのカメラを使用して HMD やその他のメインデバイスに描画します。

メインカメラゲームオブジェクトが

  • プロジェクトの階層のルートにある場合は、簡単なシーンの移行の手順を参照してください。
  • プロジェクトの階層のルートにない場合は、複雑なシーンの移行の手順を参照してください。

簡単なシーンのマイグレーション

簡単なシーンを移行するには、以下の手順に従います。

1. XR Rig プレハブインスタンスの作成

以前、シーン階層のルートにあったカメラを移行すると、このパッケージに含まれている XR Rig プレハブをインスタンス化することにより既存のカメラを XR Rig にスワップすることができます。

このプレハブは Packages/XR Legacy Input Helpers/Prefabs フォルダーにあります。プレハブをシーンの階層にドラッグして、新しいインスタンスを作成します。

2. カメラの位置に合わせるために XR Rig を移動

XR Rig プレハブのインスタンスを作成したら、XR Rig ゲームオブジェクトを設定する必要があります。これにより、 アプリケーションの起動時のカメラ位置が正しくなります。

XR Rig ゲームオブジェクトの位置と回転を変更して、現在のメインカメラの位置と一致させます。メインカメラにスケール変換を適用する場合は、このスケールを XR Rig ゲームオブジェクトにも適用するようにしてください。XR Rig をスケールする場合は、3 つの軸すべてに同一のスケールを使用することをお勧めします。

3. 必要に応じて位置の変更を複製

マイグレーションされていないシーンのメインカメラがフロアの上にある場合 (Y コンポーネントが 0.0f より大きい場合)、この位置の変更を複製する必要があります。これは、変更を複製した元の位置に応じて、いくつかの方法で行うことができます。

3.1 - ユーザーの高さをシミュレーションする隆起

If the previous Main Camera was raised above the floor to simulate the height of the user and the application uses a Device Tracking Origin (sometimes called “Stationary” Tracking Mode), the Camera Offset component performs this additional uplift. Otherwise, see the next section.

アプリケーションがデバイスの Device Tracking Origin モードで使用されているときにカメラを垂直に上昇させるには、XR Rig ゲームオブジェクトの Camera Offset コンポーネントで以下のオプションを設定します。

オプション Value
Requested Tracking Mode デバイス
Camera Y Offset 既存のメインカメラを上昇させユーザーの高さをシミュレーションする高さに、このオプションの値を設定します 。

これらのオプションを設定した後、XR Rig ゲームオブジェクトの Y 位置 をアプリケーションの “フロア” と考えられる値に変更します (通常は 0.0f)。Camera Offset コンポーネントは、必要に応じて追加の上昇を加えます。

3.2 - 上昇はカメラ位置を示す

マイグレーションされていないシーンがフロアトラッキング原点 (Floor Tracking Origin、これまで “ルームスケール” トラッキングモードと呼ばれていました) を使用していて、メインカメラの位置が高さを含まないユーザーの開始点を表している場合 (つまり、カメラは事実上論理的フロアに配置) の場合は、以下の手順でシーンを正しく移行します。

  • Unity のワールド空間にメインカメラの現在の位置と回転に合わせて、XR Rig を移動します。
  • アプリケーションが Floor Tracking Origin を使用している場合は、Camera Offset コンポーネントとフロアに設定します。これにより、カメラに正しい垂直オフセットが設定されます。
  • アプリケーションが Floor Tracking Origin を使用している場合は、Camera Offset コンポーネントの Requested Tracking Mode を Default (デフォルト) に設定します。これにより、アプリケーション開始時のデバイスのトラッキングモードに関わらず、正しい動作に設定されます。
  • 以前に別のコンポーネントを使用してカメラを垂直に動かし、デバイスとフロアのトラッキング原点の違いをハンドルた場合は、このコンポーネントを無効にするか変更して、異なるコンポーネントがカメラを複数回誤って移動しないようにする必要があります。

次に、XR Rig インスタンスから Main Camera ゲームオブジェクトを削除し、既存の Main Camera ゲームオブジェクトを Camera Offset ゲームオブジェクトの親にします。

Main Camera ゲームオブジェクトの位置と回転が両方とも 0,0,0 であることを確認してください。カメラの位置を変更する代わりに、常に XR Rig ゲームオブジェクトの位置を変更します。また、ゲームオブジェクトやコンポーネントからメインカメラへのリンクが正しいことを確認してください。

5. プロジェクトを XR 用に設定

前述の XR 用 Unity プロジェクトの設定 を参照してください。

6. 再生ボタンを押す

シーンが正常に移行されたので、再生 ボタンを押し、カメラの開始位置が XR プラグインフレームワークに移行する前と同じであることを確認します。そうでない場合は、以下のトラブルシューティングのセクションを参照してください。

複雑なシーンのマイグレーション

現在のシーンが古い VR システムからの暗示的カメラトラッキングを使用しており、メインカメラがゲームオブジェクト階層の一部である場合は、以下の手順に従って古い VR トラッキングシステムを XR プラグインフレームワークに移行します。

暗示的カメラの更新は、Main Camera ゲームオブジェクトのローカルトランスフォームをフレームごとに 2 回更新します。これにより、Main Camera ゲームオブジェクトは、それが存在していた階層の位置、スケール、回転に対して相対的に移動します。

このシナリオでは、シーンをマイグレーション方法に 2 つのオプションがあります。

  1. 既存の階層をそのまま残し、コンポーネントを追加して現在の階層でのトラッキングを可能にする。
  2. XR Rig 構造体を使用するように既存の階層を移行します。

シーンにこの階層構造に依存する機能がある場合は、既存の階層を残しておくことをお勧めします。 設定が比較的簡単な場合は、直接 XR Rig に移行できます。

そのまま維持する

この方法では、既存のシーン階層に最小限の変更を加えることによって Unity 内でのトラッキングを可能にします。シーンのメインカメラに Tracked Pose Driver を追加します。これにより、現在のゲームオブジェクト階層を必要とするその他の機能は、引き続き以前と同様に機能します。

1. メインカメラを見つけ、Tracked Pose ドライバーを加える

シーンで Main Camera を見つけます。

XR Rig のメインカメラと同じ設定を使用して、Tracked Pose Driver を加えます。以下のスクリーンショットは、これらの設定を示しています。

Tracked Pose Driver の設定
Tracked Pose Driver の設定

シーンのすべてのメインカメラに対してこれを行います。シーン内で他のデバイスをトラッキングする必要がある場合は、それぞれのケースに合った Tracked Pose Driver の正しい設定を確認してください。

2. XR 用にプロジェクトを設定

前述の XR 用 Unity プロジェクトの設定 を参照してください。

3. 再生ボタンを押す

シーンが正常に移行されたので、再生 ボタンを押し、カメラの開始位置が XR プラグインフレームワークに移行する前と同じであることを確認します。同じでない場合は、後述の トラブルシューティング のセクションを参照してください。

XR Rig に移行

Because there are an infinite number of possible hierarchies in use, Unity can’t provide specific steps to migrate your current Scene hierarchy to use the XR Rig. See the XR Rig explanation section of the Legacy Input Helpers package documentation to understand what the XR Rig is intended to represent. This will allow you to map your existing hierarchy to the concepts within the XR Rig.

XR Management を使用するようにシーンを設定するには、XR 用 Unity プロジェクトの設定 を参照してください。

まだ問題がある場合、以下の トラブルシューティング のセクションを参照してください。

トラブルシューティング

問題 考えられる原因
シーン内でカメラが高すぎる Camera Offset コンポーネントの Requested Tracking Mode は正しく設定されていますか。

Camera Y Offset の設定が高すぎませんか。
XR プラグインフレームワーク
XR のユニバーサルレンダーパイプラインの互換性