Version: 2023.1
言語: 日本語
XR プロジェクトの作成
XR 入力の選択肢

XR シーンの設定

XR シーンを設定するには、XR Origin を追加します。

このオブジェクトは、ゲームオブジェクトとコンポーネントの集まりで、空間トラッキングデータをシーンに変換するにあたっての基準を提供します。これにはシーンカメラの制御も含まれます。シーンに追加された XR Origin は、添付カメラを制御してユーザーのヘッドマウント (VR) あるいはハンドヘルド (AR) デバイスをトラッキングします。また、コントローラー用のゲームオブジェクトを含むバージョンの XR Origin は、ゲームオブジェクトを動かしてユーザーのコントローラーをトラッキングします。

ノート:

  • 古い名称 XR Rig の “Rig” は、このオブジェクトの Unity シーンにおける役割をよりよく反映した名称にするために “Origin” に変更されました。また、Camera Offset コンポーネントは XR Origin コンポーネントに置き換えられ、いくつかの追加設定が提供されています。詳細は XR Origin コンポーネント を参照してください。
  • プロジェクトに XR Interaction Toolkit パッケージがインストールされていない場合は、GameObject > XR メニューに以前と同様に Convert Camera to XR Rig (カメラを XR Rig に変換する) オプションが表示されます。このオプションは引き続き機能しますが、他の XR 機能との適合性を最大限に高めるためには、XR Interaction Toolkit パッケージまたは AR Foundation パッケージから適切な XR Origin オプションを使用することをお勧めします。
  • AR Session Origin は、AR Foundation パッケージのバージョン 5 で XR Origin (AR) および XR Origin (Mobile AR) オプションに置き換わりました。
  • 一部の XR Origin オブジェクトに含まれるコントローラーゲームオブジェクトは、メッシュなどのビジュアルコンポーネントを持たず、トラッキングデータ以外のユーザー入力は受け取るように設定されていません。ユーザー入力を処理したい場合は、3D モデルと、必要なコンポーネントあるいはスクリプトを追加する必要があります。XR Interaction Toolkit パッケージは、ユーザー入力を処理するためのコンポーネントを提供します。

シーンに使用可能な XR Origin のオプションについては、XR Origin を参照してください。

要件

XR シーンを設定するには、まず以下を行う必要があります。

  • XR 用のプロジェクトの設定
  • AR アプリケーションを開発する場合は、プロジェクトに AR Foundation を追加します。
  • XR Interaction Toolkit パッケージを使用する (推奨) 場合は、これを追加します。
  • XR Interaction Toolkit を使用する場合は、Starter Assets をインポートします。これらのアセットには、Input System アクションと、XR コントローラーの入力の設定に使用できるプリセットが含まれています。

XR 用のシーンの設定

以下は、XR 用にシーンを設定するための基本的な手順です。

  1. Unity エディターで、シーンを作成するか、シーンを開いてください。
  2. GameObject > XR メニューで、XR Origin の任意のオプションをシーンに追加します。メニューに表示されるオプションは、プロジェクトに追加した XR パッケージによって異なります。利用可能な XR Origin の各種オプションの説明は、XR Origin を参照してください。
  3. XR 入力の設定を行ってください。詳細は XR 入力の選択肢 を参照してください。

AR プロジェクトについては、AR Foundation マニュアルの シーンの設定 で、追加的な設定手順と詳細を確認してください。

XR Interaction Toolkit を使用する VR プロジェクトについては、Interaction Toolkit マニュアルの 全般設定 を参照してください。

XR が有効になっているかの検出

XR と非 XR の両方で使用可能なシーンがある場合は、XRSettings.enabled プロパティを使用して、XR サブシステムが現在ロードされてアクティブになっているかどうか検出できます。この情報を元に、適切なゲームオブジェクトとコンポーネントのセットをアクティブあるいは非アクティブにすることができます。

public void CheckXRStatus()
{
    if (UnityEngine.XR.XRSettings.enabled)
    {
        Debug.Log("XR is active.");
    }
    else
    {
        Debug.Log("XR is not available.");
    }
}

ノート: XRSettings.enabled プロパティの値を読み取ることで、XR の状態を特定できます。ただし、このプロパティへの値の設定に関しては、サポートが終了しており、機能しません。XR の有効/無効をランタイムで動的に切り替える方法については、Managing XR Loader Lifecycles Manually (XR ローダーのライフサイクルの手動管理) を参照してください。

XR プロジェクトの作成
XR 入力の選択肢