XR Interaction Toolkit 2.0 の環境構築と XR Origin について【XR Interaction Toolkit 2.0】

はじめに

本記事では XR Interaction Toolkit 2.0 における環境構築と XR Origin に関して説明します.

検証環境

  • Unity 2021.2.14f1
  • Universal RP 12.1.5
  • XR Plugin Management 4.2.1
  • XR Interaction Toolkit 2.0.1

環境構築

インストール方法

Unity 2020.3 LTS

Package Manager で Unity Registry > XR Interaction Toolkit で調べると出てくると思います.

Unity 2021.2 以上

Package Manager で adding a package by name で com.unity.xr.interaction.toolkit で追加します.

Input System

XR Interaction Toolkit は Input System を依存パッケージとしています.
以下のダイアログが出た場合は基本「YES」を選択します.

f:id:xrdnk:20220304200849p:plain

Interaction Layer Mask Updater

後述しますが,2.0.0 版から LayerMask が Unity Physics ではなく XR Interaction Toolkit 特有のものに変わりました.
2.0.0 以前のパッケージからアップグレードを行う場合は「I Made a Backup, Go Ahead!」をクリックすれば
Interaction Layer Mask が更新されます.そうしたくない場合は「No Thanks」を選びます.

f:id:xrdnk:20220304200916p:plain

Samples 導入

Input Actions,Controller Bindings などのアセットを含むサンプルを取得したい場合は,
以下の画像からインストールすることができます.基本こちらは導入したほうがよいです.

f:id:xrdnk:20220314103331p:plain

XR Origin

1.0.0 時代は XR Rig という名称でしたが,XR Origin になりました.VRカメラとプレイヤースペースを提供します.
XR Interaction Toolkit で VR を始める上で,まず XR Origin を Hierarchy に設置する必要があります.
Hierarchy で右クリック > XR を選択すると,「Device-based > XR Origin」,「XR Origin (Action-based)」,
「XR Origin」の 3種類あって戸惑うかもしません.

f:id:xrdnk:20220304202231p:plain

「Device-based > XR Origin」は Device-based のコントローラ群が一緒に生成されます.
「XR Origin (Action-based)」は Action-based のコントローラ群が一緒に生成されます.

f:id:xrdnk:20220304202414p:plain

「XR Origin」はコントローラ群が一緒に生成されずに Camera のみが存在します.

f:id:xrdnk:20220304202449p:plain

Device-based と Action-based が存在しますが,機能自体は同じです. 個人的には Action-based を用いることの恩恵が大きいため, Action-based を基本使っていくのがよいと思います.

Tracked Pose Driver

HMD に存在する振動ジャイロや加速度センサから位置情報と角度情報をカメラに転送・更新するために必要なコンポーネントです.
XR Origin 越しで生成された Main Camera にはデフォルトでアタッチされています.

f:id:xrdnk:20220305005344p:plain

Tracking Type

位置トラッキングのみ,角度トラッキングのみ,位置・角度のトラッキングの設定ができます.
基本的には Rotation And Position のままの設定でよいと思います.

Update Type

Player Loop のどのタイミングでトラッキング情報を更新するか設定できます.

UpdateAndBeforeRender

Input System が更新が完了された後とレンダリング直前に更新します.
デフォルトの設定で,基本この設定でよいと思います.

Update

Input System が更新が完了された後に更新します.

BeforeRender

レンダリング直前に更新します