Unity 約 3 分

VRコンポーネントメモ_

Contents (4)

便利なScripts(Components)

XR Interaction Toolkitには、知っておくと便利なコンポーネントが多数用意されている。

XR Input Modality Manager

ハンドトラッキングとコントローラーをシームレスに切り替えるためのマネージャー。

  • 機能: ユーザーがコントローラーを置いた(または持った)ことを検知し、Left/Right ControllerLeft/Right Hand の表示・アクティブ状態を自動で切り替えてくれる。
  • 使い方: XR Origin にアタッチし、HandsとControllersの参照をセットするだけで動作する。これを入れないと、「コントローラーを持っているのに手も表示されている」といった重複表示が起きる。

Tracked Device Graphic Raycaster

VR空間内で「uGUI(Canvas)」を操作するために必須のコンポーネント。

  • 機能: コントローラーから出るレイ(Ray)でボタンをクリックしたり、スクロールしたりできるようにする。
  • 使い方:
    1. Canvasの Render ModeWorld Space に変更。
    2. CanvasオブジェクトにこのコンポーネントをAdd。
    3. EventSystemXR UI Input Module が設定されていることも確認する(これがないとクリックイベントが飛ばない)。

XR Gaze Interactor

「視線」を使ってオブジェクトを選択・インタラクトするための機能。

  • 機能: アイトラッキング(またはヘッドトラッキング)の方向にレイを飛ばし、オブジェクトを見つめるだけで選択したり、一定時間見つめて決定(Dwell)したりできる。
  • 用途: 手を使えない状況や、補助的な入力手段として有効。

インタラクション関係の構成

XR Interaction Group

複数のインタラクター(Ray, Direct, Gazeなど)の優先順位を管理するコンポーネント。

  • なぜ必要か: 「遠くの物はRayで掴みたいが、近くの物は直接手(Direct)で掴みたい」という場合、両方のインタラクターが同時に反応すると挙動がおかしくなる。Groupを使うことで「Directが有効ならRayを無効にする」といった排他制御が可能になる。

HMD設定の基本構造 (XR Origin)

Unity 2022/2023以降の一般的な XR Origin 階層構造の例。

XR Origin (XR Input Modality Manager)
 ├── Camera Offset
 │    ├── Main Camera (Tracked Pose Driver)
 │    ├── Left Controller (XR Ray Interactor, XR Poke Interactor...)
 │    ├── Right Controller
 │    ├── Left Hand (XR Hand Skeleton Driver...)
 │    └── Right Hand
 └── Locomotion System (Snap Turn, Teleportation Provider...)
  • Camera Offset: プレイヤーの身長や初期位置のズレを補正するための親オブジェクト。
  • Hand Visualizer: デバッグ用や単純な手の表示用。実運用では XR Hand Skeleton Driver を使ってリッチなメッシュを動かすことが多い。

TIPS / トラブルシューティング

  • HMDに変な枠が表示される: ゲームビューの解像度設定がHMDと合っていない場合に発生することがある。
  • UIが反応しない:
    • Canvasに Tracked Device Graphic Raycaster はついているか?
    • EventSystemに XR UI Input Module はあるか?
    • CanvasのレイヤーがRay Interactorの Raycast Mask に含まれているか?
  • 実行してもHMDに映らない: Unityエディタ上で「Gameウィンドウ」にフォーカスが当たっていない(隠れている)と、レンダリングが止まりHMD側が暗転したままになることがある。

関連記事