🍰

XR Interaction Toolkit Fundamentalsを学ぶ

2023/10/11に公開

Unityを使って、Meta Quest3やこの先でてくるVision ProでXR/VRアプリを開発する際にはXR Interaction Toolkitの利用が必要になります。

Unityの有償オンライントレーニングのXR Interaction Toolkit FundamentalsでXR Interaction Toolkitを使った開発の基礎を学習したので、そのメモを残したいと思います。
※このトレーニングはUnity Industryのライセンスを持っていたら受講できるものだと思います。

コースの受講見込み時間:3時間(色々設定を変えて試したり、メモしたからもっと時間はかかりました。
受講者のレベル:Unityのビギナー
英語のみだけど、用語が中心なので意味はわかる

Unity 2021.3 LTS以上
XR Interaction Toolkit 2.3

内容

1. イントロ: 概要の説明とインストール関連

パッケージのインストールとかを解説。

2. XR OriginとLocomotion: プレイヤーの原点、視点、移動について

以下に列挙するプレイヤーのシーン内の移動に関する部品の使い方の説明。

  • XR Originを追加
  • XR Originに Locomotion System を追加
    このドキュメントを実際の動きをみながら解説してくれる形。
Snap Turn
  • Snap Turn Provider(Action-based) を追加
  • Snap Turn ProviderのDebounce Timeは次のSnap Turnの実行までの待ち時間
  • Enable Turn Aroundで180度のターンの可否をしていする
  • Delay TimeはTurn実行までのディレイ
  • Snap Turn ActionにXRI 〇〇Hand Locomotion/Snap Turnをバインドしてターンを実現
Continuous Turn
  • Continuous Turn Provider(Action-based) を追加
  • Turn ActionにXRI 〇〇Hand Locomotion/Turn をバインドしてターンを実現
Teleport
  • Teleportation Providerを追加
  • ヒエラルキーにTeleportation Anchorを追加
  • Anchorの中心部分に移動
  • ヒエラルキーにTeleportation Areaを追加
  • Areaの選んだ部分に移動
Continuous Move
  • Gravity Application Modeはユーザー操作に応じて重力を適用するのがAttempting Move。ユーザー外の変化で重力を適用するならImmediateの方が良い
  • Hand Move ActionにXRI 〇〇Hand Locomotion/Moveをバインドして移動を実現
  • XR OriginにCharacter Controllerを追加
  • XR OriginをもつPlayerがColliderに反応し、段差を昇降したり、壁に当たるようになる
Grab Move
  • Grab Move ProviderをLeftとRightにひとつずつ追加

  • Controller TransformにはLeft ControllerまたはRight Controllerをバインドする

  • Grab Move ActionではReferenceでXRI ** Grab Moveを追加

  • さらに両手用の操作を追加するにはTwo-Handed Grab Move Providerを追加

  • 左と右のMove Providerをバインドして各々の手からの入力を受ける

  • Enable Scalingをすると両トリガーを握った状態でコントローラを近づけると自身を縮小するといった操作が可能

3. VRの操作の作成: InteractorとInteractionコンポーネントなど

以下に列挙するプレイヤーのコントローラーがシーン内のゲームオブジェクトに触れる操作について。

  • 様々な種類のインタラクターの利用
  • XR Direct Interactorとそれに組み合わせるSphere Colliderの追加
  • つかむ側にはInteractorをつかまれる側にはGrab Interactable(とCollider)を追加
  • Use Dynamic Attachはつかんだ部位を保ち、Offだとセンターをつかむ
  • Socket Interactorを追加した位置にXR Grab Interactableを設置できる
  • Starting Selected Interactableでバインドすると初期でその位置に設置される
  • 追加したXR Grab InteractableのInteractable Events(例えば掴んだときならSelect)を使うことで、把持した際にパーティクルを再生するといったことが可能になる
4. 2D UI: XR UI Canvasの利用

シーン内にUIを配置する基礎。(ビルボード的なそういったのは無くて、ほんとにカンバン的なの。

  • XR UI Canvas ベースになるのがこのオブジェクトで、XRカテゴリから追加する。Render Modeの選択をWorld Spaceにするなど設定は必要。
  • Text 先に追加したXR UI CanvasにText(TMP)を追加する。Scaleは0.02くらいから初めて調整する。あとはLegibilityMaskをImageとしてCanvasに入れた方が文字が読みやすくなる。(Legibleは読みやすいの意味)
  • Buttons
5. 開発ツールの紹介: XR Device SimulatorとXR Interaction Debugger
  • Device Simulatorについて解説
  • XR Interaction Debuggerについて解説

ビギナー向けなのでXRアプリ開発経験者にとっては新しい情報は無いですが、これから新しいデバイスが出てくるタイミングで初めて見ようかなという人にとっては基礎が学べて良いと思います。

Discussion