本日は MRTK の技術調査枠です。
HoloLens2でMRTKv2を使って頭と手の動きを記録する手順を記事にします。
頭と手の動きを記録する
MRTKv2 では頭と手の動きを記録するための Input recording service が提供されています。
microsoft.github.io
microsoft.github.io
本サービスを利用することで、頭と手の動きをバイナリデータとして出力し、これをエディター上で再生することもできます。
デフォルトでは記録バッファーのサイズは30秒に制限されています。記録の際は注意が必要です。
microsoft.github.io
InputRecordingServiceを試す
実際に InputRecordingService をアプリケーション上で試してみます。
Examples に含まれる ToggleFeaturesPanelExamplesHub.prefab を利用すると簡単です。
アプリケーションの作成とインストール
以下の記事を元に HoloLens2 用プロジェクトを作成します。
今回は、Foundation のパッケージに加えて Examples のパッケージもインポートしておきます。
Assets から以下の prefab を参照し、Hierarchy にドラッグしてカメラの前に配置します。
・Assets/MixedRealityToolkit.Examples/Experimental/ExamplesHub/Prefabs/ToggleFeaturesPanelExamplesHub.prefab
Position X:0.0, Y:-0.1, Z:0.3 Rotation Z:45, Y:0, Z:0 Scale Z:1, Y:1, Z:1
追加されたメニューの右端の[Record Input]ボタンが InputRecordingService を実行するためのトリガーです。
本ボタンをタップすると、親オブジェクトにアタッチされた InputRecordingCotrols の処理が実行されます。
InputRecordingService の使い方を確認したい場合は、こちらのスクリプトを参照すると良いです。
この状態で HoloLens2 向けにプロジェクトをビルドしてインストールします。
UnityプロジェクトのビルドとHoloLensへのインストール手順については以下を参照してください。
bluebirdofoz.hatenablog.com
HoloLens2上での実行確認
HoloLens2 上で動作確認を行います。
アプリが起動すると、以下のようにメニューが表示されるので[Record Input]ボタンをタップします。
アイコンが赤色になり、頭と手の動きの記録が開始されます。
記録を停止する際は、再びボタンをタップします。
記録データの取得
記録データは以下のディレクトリに出力されます。
・AppData/Local/Packages/(アプリのパッケージ名+ID=XXX_XXX)/LocalState
DevicePortal でディレクトリを参照してデータをダウンロードすることができます。
InputRecordingService はデフォルトでは Application.persistentDataPath に記録データを出力します。
bluebirdofoz.hatenablog.com
記録データの再生
記録したデータは MRTK の InputPlaybackService の機能を使ってエディター上で再生することができます。
初めに Unity プロジェクトのシーンを再生します。
メニューから MixedRealityToolkit -> Utilities -> InputSimulation を選択します。
InputSimulation ダイアログが開くので、[Playback]ボタンをクリックします。
[Playback]パネルが開いたら[Load ...]ボタンをクリックします。
ファイル選択のダイアログが表示されるので、先ほどダウンロードした記録データを指定して開きます。
再生ボタンをクリックすると、エディター上で頭と手の動きが再現されます。