本日はMRTK調査枠です。
MRTKでは[Input Recording Service ]と呼ばれる機能が実装されています。
[Input Recording Service ]はユーザーの動きを記録・保存する機能で[Input Simulation Service ]を用いてUnityエディタ内で再生することができます。
今回はこれを勉強しながらアプリ内でユーザーの動きを録画してみます。
〇Input Simulation Service
[Input Simulation Service]はMRTKで提供されている『Unityエディタ上で再現できない可能性がある実機上の動作などをUnity上でエミュレートするサービス』です。
具体的には次のような例を想定しています。
・HoloLensハンドジェスチャー
・HoloLens 2の多関節ハンドトラッキング
・HoloLens 2のアイトラッキング
上記の例はUnityエディタ上と実機での動作が異なります。
HoloLens 2のHandTrackingを例にしていくとUnityエディタ上では以前の記事のように手のモデルが用意されており、Rigが入っています。
しかしHoloLens 2実機では手のモデルは動的にMeshが張られるためRigが存在しません。
このような場合に実機での動きなどをUnityエディタ上で再現する際に[Input Simulation Service]が使用されます。
〇Input Recording Service
[Input Recording Service]は冒頭で紹介した通りデバイス実機(エディタ上での動きも可能)でのユーザのインプットをアニメーションファイルとして保存する機能です。
UXを教えるためのアニメーションの作成やプロトタイプの作成などにおいて役立つツールです。
〇InputRecordingService
[InputRecordingService]はユーザーの位置(=デバイスの位置)やコントローラー、HandTrackingデータを受け取り、内部バッファに格納します。 このデータはバイナリファイルにシリアライズされて保存され、後で再生されます。
[StartRecording()]を呼び出すことでこれは開始されます。
[MRTKExample]として提供されている[HandInteractionExamples]では[RevordService]を使用した例が実装されています。
このシーンでは[ToggleInputRecording]オブジェクトとして記録を行えるボタンがありあます。
このボタンを押すことで[InputRecordingControls]の記録を行う関数が実行されます。
[InputRecordingControls]に関しては後日読み解いていきます。
〇Input playback service
[InputPlaybackService]は、入力されたアニメーションデータのバイナリファイルを読み込み、[InputSimulationService]を通じてそのデータを適用し、記録された動きを再現します。
実機での動作は明日以降見ていきます。