XR 用に Unity プロジェクトを設定するには、以下の手順を行います。
ノート:
2019.3 より前の Unity バージョンで使用されていた暗示的カメラトラッキングは、新しい XR プラグインフレームワークで排除されました。以前のトラッキングは、HMD のみのシンプルなアプリケーションでは機能しましたが、コントローラーや他のインタラクションとの相関関係で使用する場合、あまり直感的ではありませんでした。
XR トラッキングが XR プラグインフレームワークで適切に設定されていることを確認するには、以下の手順に従います。
以下の手順は、新しいシーンから開始する場合、または以下の条件に当てはまるシーンから開始する場合に適しています。
Unity のメインメニューから GameObject > XR > Add XR Rig の順に選択します。これにより、新しいシーンを XR プラグインフレームワークを正しくサポートするシーンに変換します。
コンソールログにエラーが表示されない場合は、シーンの Play をクリックすると、XR Plug-in Management パッケージで設定したデバイスに対するカメラの追跡が表示されます。
Unity がシーンを正しく移行できない場合は、コンソールログにエラーが表示されます。以下の 既存のシーンから開始する場合 の手順に従ってください。
既存のシーンからのマイグレーションには、空のシーンの場合と比較して、追加の手順が必要です。シーンの設定に応じて異なるオプションがあります。どの場合においても、XR プラグインフレームワークに移行する前と同じようにシーンのトラッキングを設定できるようにします。
Main Camera (メインカメラ) とタグ付けされたカメラをシーン内で見つけます。Unity はこのカメラを使用して HMD やその他のメインデバイスに描画します。
メインカメラゲームオブジェクトが
簡単なシーンを移行するには、以下の手順に従います。
以前、シーン階層のルートにあったカメラを移行すると、このパッケージに含まれている XR Rig プレハブをインスタンス化することにより既存のカメラを XR Rig にスワップすることができます。
このプレハブは Packages/XR Legacy Input Helpers/Prefabs
フォルダーにあります。プレハブをシーンの階層にドラッグして、新しいインスタンスを作成します。
XR Rig プレハブのインスタンスを作成したら、XR Rig ゲームオブジェクトを設定する必要があります。これにより、 アプリケーションの起動時のカメラ位置が正しくなります。
XR Rig ゲームオブジェクトの位置と回転を変更して、現在のメインカメラの位置と一致させます。メインカメラにスケール変換を適用する場合は、このスケールを XR Rig ゲームオブジェクトにも適用するようにしてください。XR Rig をスケールする場合は、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 | Device |
Camera Y Offset | 既存のメインカメラを上昇させユーザーの高さをシミュレーションする高さに、このオプションの値を設定します 。 |
これらのオプションを設定した後、XR Rig ゲームオブジェクトの Y 位置 をアプリケーションの “フロア” と考えられる値に変更します (通常は 0.0f)。Camera Offset コンポーネントは、必要に応じて追加の上昇を加えます。
3.2 - 上昇はカメラ位置を示す
マイグレーションされていないシーンがフロアトラッキング原点 (Floor Tracking Origin、これまで “ルームスケール” トラッキングモードと呼ばれていました) を使用していて、メインカメラの位置が高さを含まないユーザーの開始点を表している場合 (つまり、カメラは事実上論理的フロアに配置) の場合は、以下の手順でシーンを正しく移行します。
次に、XR Rig インスタンスから Main Camera ゲームオブジェクトを削除し、既存の Main Camera ゲームオブジェクトを Camera Offset ゲームオブジェクトの親にします。
Main Camera ゲームオブジェクトの位置と回転が両方とも 0,0,0 であることを確認してください。カメラの位置を変更する代わりに、常に XR Rig ゲームオブジェクトの位置を変更します。また、ゲームオブジェクトやコンポーネントからメインカメラへのリンクが正しいことを確認してください。
前述の XR 用 Unity プロジェクトの設定 を参照してください。
シーンが正常に移行されたので、再生 ボタンを押し、カメラの開始位置が XR プラグインフレームワークに移行する前と同じであることを確認します。そうでない場合は、以下のトラブルシューティングのセクションを参照してください。
現在のシーンが古い VR システムからの暗示的カメラトラッキングを使用しており、メインカメラがゲームオブジェクト階層の一部である場合は、以下の手順に従って古い VR トラッキングシステムを XR プラグインフレームワークに移行します。
暗示的カメラの更新は、Main Camera ゲームオブジェクトのローカルトランスフォームをフレームごとに 2 回更新します。これにより、Main Camera ゲームオブジェクトは、それが存在していた階層の位置、スケール、回転に対して相対的に移動します。
このシナリオでは、シーンをマイグレーション方法に 2 つのオプションがあります。
シーンにこの階層構造に依存する機能がある場合は、既存の階層を残しておくことをお勧めします。 設定が比較的簡単な場合は、直接 XR Rig に移行できます。
この方法では、既存のシーン階層に最小限の変更を加えることによって Unity 内でのトラッキングを可能にします。シーンのメインカメラに Tracked Pose Driver を追加します。これにより、現在のゲームオブジェクト階層を必要とするその他の機能は、引き続き以前と同様に機能します。
シーンで Main Camera を見つけます。
XR Rig のメインカメラと同じ設定を使用して、Tracked Pose Driver を加えます。以下のスクリーンショットは、これらの設定を示しています。
シーンのすべてのメインカメラに対してこれを行います。シーン内で他のデバイスをトラッキングする必要がある場合は、それぞれのケースに合った Tracked Pose Driver の正しい設定を確認してください。
前述の XR 用 Unity プロジェクトの設定 を参照してください。
シーンが正常に移行されたので、再生 ボタンを押し、カメラの開始位置が XR プラグインフレームワークに移行する前と同じであることを確認します。同じでない場合は、後述の トラブルシューティング のセクションを参照してください。
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 の設定が高すぎませんか。 |