XR Controller Recorder で Controller の相対位置を記録保存・リプレイ再生する 【XR Interaction Toolkit】

XR Interaction Toolkit の XR Controller Recorder の機能について調査してました.
XR Controller Recorder は XR Interaction Toolkit の Sample Scene には特に搭載されてなかったので,
ドキュメントで発見するまでこいつの存在にさえ気づいていませんでした.

検証環境

  • Unity 2019.4.17f1
  • URP 7.3.1
  • XR Interaction Toolkit 1.0.0-pre.2

XR Controller Recorder

コントローラの相対位置を記録保存することが出来,それをリプレイ再生することができます.

準備

どういうことか説明が難しいので,まずは準備.

f:id:xrdnk:20210206225138p:plain:w600

XR Controller Recording は Scriptable Object で XR Controller Recorder のための SO 設定です.
XR Controller Recording は Create > XR > XR Controller Recording で作成します.

f:id:xrdnk:20210206225623p:plain:w600

作成するとこんな感じになります.

f:id:xrdnk:20210206225910p:plain:w600

動作確認

実行するとEditor拡張で,Record Input,Play のボタンが現れます.

f:id:xrdnk:20210206231412p:plain:w600

Record Input を押下して,右コントローラを動かしてみます.

gyazo.com

Record Input が Stop になるので,Stop を押下します.
この後,Sample XR Controller Recording を見てみます.

f:id:xrdnk:20210206232008p:plain:w600

左から Frame,Position情報,Rotation(Quaternion)情報が保存されています.

Play ボタンを押下してみましょう.

gyazo.com

先ほど保存されたコントローラの情報を出力し,リプレイしてくれます.

終わりに

ニッチな機能すぎて,使いどころが難しいですね….
MRTK の Hand Coach みたいな感じで使えればよいんですが….
VR系の実験でこれを利用して,データ取得のためにワンチャン使えそう.

ちなみに,XR Controller Recorder をリプレイ中は,該当コントローラは動かせません.
Position 情報,Rotation (Quaternion) 情報は XR Rig に対する相対位置なので 注意.