Version: Unity 6.0 (6000.0)
言語 : 日本語
XR シーンの設定
XR Origin

XR 入力の選択肢

XR ゲームやアプリケーションにおける入力処理の主な選択肢は、以下の通りです。

  • XR Interaction Toolkit
  • OpenXR インタラクションプロファイル
  • Input System や Input Manager を介した “従来的な” 入力
  • XR.InputDevice と XR.Node API
  • サードパーティ製の入力ライブラリ

上記の複数の方法を同時に使用する場合もあります。例えば、XR Interaction Toolkit を使用してユーザーが環境内のオブジェクトを拾えるようにし、Input System を使用して一時停止機能をコントローラーの特定のボタンに紐付け、XR.Node API でハードウェアの状態を読み取ってコントローラーゲームオブジェクトを動かせるようにする、などです。

注意多くのさまざまな XR デバイスやコントローラーをサポートする OpenXR プラグインには、XR 入力やトラッキングデータにアクセスするための独自の方法が追加で用意されてます。XR Interaction Toolkit、Input System、あるいは XR.InputDeviceXR.Node API は、引き続き使用できます(OpenXR Plugin を使用する場合、古い機能の Input Manager はサポートされません)。詳細については、Input in Unity OpenXR を参照してください。

XR Interaction Toolkit

XR Interaction Toolkit は、Input System と基本の UnityEngine.XR API を基盤として構築され、XR の入力とインタラクションをサポートします。このツールキットは、XR 入力を処理したり、ユーザーと環境とシーン UI の相互作用 (インタラクション) を定義するための、ほぼそのまま使用できるコンポーネントのセットを提供します。

XR Interaction Toolkit は以下を提供します。

  • Interactor: ユーザーとシーンのゲームオブジェクトのインタラクションを可能にするシーン内のオブジェクト。通常は XR コントローラーまたはユーザーの手によって操作されます。
  • Interactable: ユーザーが相互作用できるシーン内のオブジェクト (Interactor を使用)。
  • UI インタラクション: Unity のビルトイン UI 要素とのインタラクションをサポートします。
  • ロコモーション: 継続的な移動、テレポート、登山など、さまざまなモードのロコモーションをサポートします。

Input System と Input Manager

XR コントローラーのボタンやジョイスティックなどの制御へのアクセスは、他のゲームコントローラーへのアクセスと同様に行えます。トラッキングデータにアクセスするには、コード内で XR.InputTracking API を使用します。Input System の TrackedPoseDriver コンポーネントを使用して、HMD やコントローラーなどの追跡デバイスでゲームオブジェクトをコントロールすることもできます。Input System を使用しない場合は、古い機能の入力ヘルパーパッケージから TrackedPoseDriver コンポーネントを使用することもできます。

注意OpenXR Plugin を使用する場合は、Input System を使用する必要があります。Input Manager はサポートされていません。

XR のハンドトラッキング入力

XR Hands パッケージは、ハンドトラッキングデータをサポートする XR デバイスから、ハンドトラッキングデータにアクセスできるようにします。このデータにアクセスするには、OpenXR バージョン 1.12 などの、ハンドトラッキングのサポート入りで更新された XR プロバイダープラグインを使用する必要があります。

XR Hands パッケージは、以下を提供します。

  • XRHandTrackingSubsystem: XR デバイスが Unity アプリケーションにハンドデータを送信できるようにします。
  • ハンドトラッキング API: Unity アプリケーションがデータにアクセスするために使用できます。
  • OpenXR Meta Aim Hand 拡張機能のサポート。ジェスチャエイミングシステムとハンドトラッキングデータの OpenXR 入力バインディングを提供します。

visionOS 入力

visionOS の入力オプションは、アプリケーションがウィンドウモード、複合現実 (MR) モード、仮想現実 (VR) モードのいずれで実行されているかによって異なります。

ウィンドウモードでは、OS がユーザーの視線とピンチジェスチャをタッチイベントに変換します。アプリケーションは生の入力データにはアクセスできません。visionOS が、最大 2 つのタッチポイントを報告します。

MR モードでは、入力オプションは、アプリケーションが他のアプリケーションとの共有スペースで実行されているか、没入型スペースで実行されているかによってさらに異なります。共有スペースでは、状況はウィンドウアプリケーションと似ています。OS がユーザーの視線と手の動きをタッチジェスチャに変換します。この場合、空間ポインターデバイス を使用して、2D だけでなく 3D タッチデータにアクセスできます。没入型スペースでは、3D レイの原点とジェスチャ開始時のユーザーの視線の向きにもアクセスできます。さらに、ヘッドとハンドトラッキング、平面検出、シーン再構築メッシュ、画像トラッキングなどの ARKit データにアクセスできます。

VR モードでは、ヘッドとハンドトラッキング、平面検出、シーン再構築メッシュ、画像トラッキングなどの ARKit データにアクセスできます。(空間ポインターデバイス やその他の PolySpatial 固有のコンポーネントにはアクセスできません。)

詳細については、PolySpatial visionOS:Input を参照してください。

XR Input API

XR Input API は、XR 入力への直接のアクセスを提供します。この API を使用して、接続されている XR デバイスを見つけ、そのトラッキングデータと入力ハードウェアの状態を読み取ることができます。

XR Input API に関する詳細は、Unity の XR 入力 を参照してください。

サードパーティ製の入力 API

デバイスメーカーなどのサードパーティが独自の入力 API やインタラクション API を提供することも多くあり、Unity 提供の API の代わりに (あるいはそれに加えて) 使用することができます。

XR シーンの設定
XR Origin