Open3
XR Interaction Toolkit 3 メモ

非推奨になったもの
Locomotion System
Snap Turn Provider (Action-based)
Continous Move Provider (Action-based)
代わりのもの
- LocomotionMediator
- 複数の移動Providerが移動の開始、停止のリクエストを管理する役割
- DynamicMoveProvider
- 移動処理を実際に行うクラス
- ユーザーの移動方向の計算、基準の設定を行う
Interactor
Gaze Interactor
視線による入力
Poke Interactor
直接触ることでInteractできる機能
Near-Far Interactor
- 近距離、遠距離のInterationを簡単にしたもの
- 切り替えが自動で行われる
- 近距離
- 手やControllerを使った直接的なInteraction
- 遠距離
- Raycastを使用した遠距離Interaction
- Interaction Attach Controllerが,
遠距離Objectを引き寄せたり,その場で保持する等の制御を行う- Far Attach Mode
- Near: 引き寄せ,Far: 保持
- Far Attach Mode
- Select Action Trigger
- Hold: ボタンを押している間だけ掴む。
- Toggle: ボタンを押すたびに掴む/離すが切り替わる。
- Sticky Toggle: 一度押すと掴むが、明示的に解除するまで保持する。
- メモ: InteractionするLayerを分けている場合,CurveInteractionCasterのRaycastMaskに対象のLayerを設定することでInteractできるようになった.

XROrigin
- Sceneの基準点 これを基準にCamera, Objectの位置が計算される
- Characterの高さのオフセットはCameraYOffset
- 床の高さのオフセットはCameraFloorOffsetObjectで指定できる
XRInputModalityManager
- HandTrackingか,Controllerか入力モードを動的に切り替える機能
- 使用中のデバイスを見て自動的にInteractionSetをアクティブ・非アクティブにする
XRGazeAssistance
- 視線追跡の補助機能
- コントローラーが画面外になった場合に,視線追跡を使用してインタラクションを継続できるようにする
- AimAssist機能 視線方向に向かって投射物を直感的にいい感じになるように補正する

移動
LocomotionMediator
- XRでのユーザー移動を管理
- ステート制御機能
- Idle, Preparing, Moving, Ended
- XRBodyTransformerと連携して,ユーザーの視点,身体の位置を考慮したいい感じの移動にする
XRBodyTransformer
- XR Originを基に移動させることを目的としている
- ユーザーの体の位置を推定
- ユーザーが意図しない壁の中に入ることを防ぐ
- IConstrainedXRBodyManipulator
- 制約に従った移動を実装するために使用
利用可能な移動Provider
- SnapTurnProvider
- 非連続的に回転
- ContinuousTurnProvider
- 連続的に回転
- DynamicMoveProvider
- ContinuousMoveProviderを拡張したもの
- 頭と手の向きに基づいて移動させる
- GrabMoveProvider
- Two-HandedGrabMoveProvider
- TeleportationProvider
- ClimbProvider