本日は MRTK の調査枠です。
MRTKv2を使ったUnityEditor内でのシミュレーション機能の操作方法を記事にします。
UnityEditor上のシミュレーション操作
シミュレーションの基本的な操作キーは以下の通りです。
シーン内の移動
カメラ(視点)の操作によるシーン内の移動が以下の操作で可能です。
W/A/S/D キー | カメラを前後(W/S)、左右(A/D)に移動する |
---|---|
Q/E キー | カメラを上(E)、下(Q)に移動する |
マウスの右ボタン+マウス操作 | カメラをその場で回転する |

手の動き
右手または左手を以下の操作でシーン内に表示できます。
Space キー | 右手をシーンに表示する |
---|---|
Shift キー | 左手をシーンに表示する |

Space または Shift キーを押下したまま、以下の操作を行う事で手の動きをシミュレートできます。
マウス操作 | 手の位置を動かす |
---|---|
マウスのホイール操作 | 手の奥行の位置を調整する |
マウスの左ボタン | ピンチジェスチャ(タップ)を行う |
CTRL キー+マウス操作 | 手をその場で回転する |

マウス操作を利用する関係上、右手と左手を同時に別々に動かすことはできません。
しかし、以下の T キーまたは Y キーを利用することで手の動きを固定し、両手のシミュレートを行うことは可能です。
Y キー | 右手の位置と動きを固定/固定解除する |
---|---|
T キー | 左手の位置と動きを固定/固定解除する |

入力シミュレーション
入力シミュレーションウィンドウを開くことで、これらのシミュレーションの各機能にアクセスすることができます。
メニューから Mixed Reality Toolkit -> Utilities -> Input Simulation でウィンドウを開きます。
[Head]パネルでは現在のカメラ(視点)位置と回転が表示されています。
直接、値を入力することでカメラ位置を変更することもできます。
[Reset]ボタンで設定値をリセットできます。
[Hand Simulation Mode]では以下の3つのハンドシミュレーションのモードが選択可能です。
・Disabled
ハンドシミュレーションを行いません。
・Gestures
エアタップや基本的なジェスチャを行うシンプルなハンドシミュレーションを行います。
フォーカスは視線ポインターを使ってコントロールします。HoloLens1 の操作に近いシミュレーションです。
・Articulated
関節の位置データを持った多関節ハンドの操作をシミュレーションします。
HoloLens2 のインタラクションモデルをエミュレートするのに有効です。
ハンドの正確な位置やタッチに基づいたインタラクションをシミュレーションできます。
[Hand]パネルでは現在の左右ハンドの位置と回転が表示されています。
[Always Visible]にチェックを入れると、常にハンドをシーン上に表示するようになります。
位置と回転はカメラからの相対値になります。[Reset]ボタンで設定値をリセットできます。
入力シミュレーションの記録
[Record]ボタンを有効化しているとき、シミュレーションの操作を記録することができます。
[Use Buffer time limit]はチェックしていると記録時間の上限を設定できます。
単位は秒です。例えば[5]を設定していると、5秒以上の操作を行っても最後の5秒間だけのシミュレーション操作が記録されます。
赤丸の[記録]ボタンをクリックすると、操作の記録が始まります。
シミュレーションの操作を行い、保存したいタイミングで再び[記録]ボタンをクリックします。
記録データを保存するディレクトリの指定を求められます。
フォルダを作成するか任意のディレクトリを指定して、[保存]します。
入力シミュレーションの再生
記録したシミュレーションの操作は[Playback]ボタンを有効化して再生することができます。
[Load]ボタンをクリックして、再生したい記録バイナリデータを指定します。
先ほど保存した記録データを指定してみます。
記録データを読み込みました。
[再生]ボタンをクリックすると、シミュレーションを再生することができます。
ボタンとスライダー操作で先頭、終了位置への移動、コマ送り、任意のタイミングへの移動が行えます。
操作の難しい動作を何度も行いたい場合や、同じシミュレーション操作を試験したい場合などに活用できます。