入力シミュレーション サービス

MRTK 入力シミュレーション

MRTK の入力シミュレーションを使用すると、デバイスにビルドしてデプロイすることなく、Unity エディターでさまざまな種類の対話式操作をテストできます。 これにより、設計および開発プロセスで複数のアイデアをすばやく繰り返すことができます。 キーボードとマウスの組み合わせを使用して、シミュレートされた入力を制御します。

入力シミュレーションサービスは、Unity エディターでは使用できない可能性があるデバイスとプラットフォームの動作をエミュレートします。 たとえば、次のようになります。

  • HoloLens または VR デバイスヘッドの追跡
  • HoloLens ハンドジェスチャ
  • HoloLens 2 の追跡
  • HoloLens 2 目の追跡
  • VR デバイスコントローラー

警告

これは、Unity の XR Holographic エミュレーション > エミュレーションモード = "エディターでシミュレート" を使用している場合は機能しません。 Unity のエディター内シミュレーションは、MRTK の入力シミュレーションから制御を取得します。 MRTK 入力シミュレーションサービスを使用するには、XR Holographic エミュレーションをエミュレーションモード = "None" に設定する必要があります。

MRTK 入力シミュレーションの使用方法

MRTK に同梱されているプロファイルでは、入力シミュレーションが既定で有効になっています。 [ 再生 ] ボタンをクリックするだけで、入力シミュレーションサポートでシーンを実行できます。

  • カメラを動かすには、W、A、S、D、Q、E キーを押します。
  • 周囲を見回すには、マウスの右ボタン を押したまま、マウスを動かします。
  • シミュレートされた手を表示するには、Space キー (右手) または 左 Shift キー (左手) を押します
  • シミュレートされた手をビュー内に保持するには、T キーまたは Y キーを押します
  • シミュレートされたハンドを回転させるには、 ctrl キー を押しながらマウスを移動します。

エディター入力シミュレーションのカンニングシート

入力シミュレーションコントロールを含むカンニングペーパーを表示するには、[アクションの例] シーンの 左 Ctrl + H を押します。

MRTK 入力シミュレーションのカンニングペーパー

入力シミュレーションサービスを有効にする

入力システムデータプロバイダーの構成では、入力シミュレーションサービスを次のように構成できます。

  • 種類Toolkit MixedReality である必要があります。InputSimulationService > 入力 します。
  • サービスがキーボードとマウスの入力を使用するため、サポートされるプラットフォーム には、既定ですべての エディター プラットフォームが含まれます。

注意

入力シミュレーションサービスは、必要なターゲットを含めるように サポートされているプラットフォーム のプロパティを変更することによって、スタンドアロンなどの他のプラットフォームエンドポイントで使用できます。
Input Simulation Supported Platforms

カメラコントロール

入力シミュレーションサービスでは、ヘッドの移動をエミュレートできます。

カメラの回転

  1. ビューポートエディターウィンドウの上にマウスポインターを移動します。 ボタンを押しても動作しない場合は、ウィンドウをクリックして入力フォーカスを与えることが必要になる場合があります。
  2. マウスの [ 外観] ボタン (既定: 右マウスボタン) を押したままにします。
  3. ビューポートウィンドウにマウスを移動して、カメラを回転させます。
  4. スクロールホイールを使用して、カメラをビューの方向に合わせてロールします。

カメラの回転速度は、入力シミュレーションプロファイルの [ マウスの表示速度 ] 設定を変更することで構成できます。

または、[横方向 を見る] / 垂直方向 の軸を使用してカメラを回転させます (既定: ゲームコントローラーの右サムスティック)。

カメラを動かす

横方向 の移動 / 垂直 軸を使用して、カメラを移動します (既定値: wasd キーまたはゲームコントローラーの左スティック)。

カメラの位置と回転角度は、[ツール] ウィンドウでも明示的に設定できます。 [ リセット ] ボタンを使用して、カメラを既定の状態にリセットできます。

コントローラーのシミュレーション

入力シミュレーションでは、エミュレートされたコントローラーデバイス (つまり、モーションコントローラーとハンド) をサポートしています。 これらの仮想コントローラーは、ボタンや grabbable オブジェクトなど、通常のコントローラーをサポートする任意のオブジェクトと対話できます。

コントローラーシミュレーションモード

入力シミュレーションツールウィンドウでは、既定のコントローラーシミュレーションモード の設定によって、3つの異なる入力モデルが切り替わります。 この既定のモードは、入力シミュレーションプロファイルで設定することもできます。

  • 結合された ハンド: ジョイント位置データを使用して、完全に修飾されたハンドデバイスをシミュレートします。

    HoloLens 2 の相互作用モデルをエミュレートします。

    このモードでは、ハンドの正確な位置やタッチを使用する相互作用がシミュレートされます。

  • ハンドジェスチャ: エアタップと基本的なジェスチャを使用して、簡略化されたハンドモデルをシミュレートします。

    HoloLens の相互作用モデルをエミュレートします。

    フォーカスは、宝石ポインターを使用して制御されます。 エアタップ ジェスチャは、ボタンとの対話に使用されます。

  • Motion controller: VR ヘッドセットで使用されるモーションコントローラーをシミュレートします。これは、他の人とのやり取りと同様に機能します。

    コントローラー相互作用モデルを使用して VR ヘッドセットをエミュレートします。

    トリガー、グラブ、およびメニューキーは、キーボードとマウス入力によってシミュレートされます。

コントローラーの移動のシミュレーション

左または右にあるコントローラーの操作キー (既定: 左側のコントローラーの場合は 左 Shift 、右側のコントローラーの場合は スペース) をそのまま使用して、いずれかのコントローラーの制御を取得します。 操作キーが押されている間、コントローラーはビューポートに表示されます。 操作キーが解放されると、コントローラーは、短いコントローラーが 非表示 になるとタイムアウトします。

コントローラーは、 [入力シミュレーションツール] ウィンドウ でカメラに対してオンにしたり固定したりすることができます。また、[左] または [右] の コントローラーキー を押すことでも切り替えることができます (既定: T は左、右は Y )。 もう一度トグルキーを押して、コントローラーを再び非表示にします。 コントローラーを操作するには、 左/右のコントローラーの操作キー を保持する必要があります。 また、 左または右にあるコントローラーの操作キー をダブルタップすると、コントローラーのオン/オフを切り替えることもできます。

マウスを動かすと、ビュー平面内のコントローラーが移動します。 コントローラーは、 マウスホイール を使用して、カメラの上または近くに移動できます。

マウスを使用してコントローラーを回転させるには、左または右のコントローラーの操作キー (左シフト または 空白)コントローラーの回転ボタン(既定:左の Ctrl ボタン) の両方を保持し、マウスを動かしてコントローラーを回転させます。 コントローラーの回転速度は、入力シミュレーションプロファイルの マウスコントローラーの回転速度 の設定を変更することによって構成できます。

[入力シミュレーションツール] ウィンドウでは、ハンドを既定値にリセットすることもできます。

追加のプロファイル設定

  • コントローラーの奥行の乗数 は、マウスのスクロールホイールの深さの移動の感度を制御します。 数値を大きくすると、コントローラーのズームが速くなります。
  • 既定のコントローラー距離 は、カメラからのコントローラーの初期距離です。 [ リセット ] ボタンコントローラーをクリックすると、コントローラーもこの距離に配置されます。
  • コントローラーのジッター は、コントローラーにランダムな動きを加えます。 この機能を使用すると、デバイスでの不正確なコントローラー追跡をシミュレートし、ノイズのある入力で相互作用が適切に機能するようにすることができます。

手のジェスチャ

ピンチ、グラブ、調査などのハンドジェスチャをシミュレートすることもできます。

  1. 左または右にあるコントローラーの操作キー (左シフト または スペース) を使用して手動制御を有効にする

  2. 操作中に、マウスボタンを押しながら手の形でジェスチャを実行します。

マウスの 左/中央/右のジェスチャ 設定を使用して、手の形を別のジェスチャに変換するために、それぞれのマウスボタンをマップできます。 既定の手のジェスチャ は、ボタンが押されていないときの形状です。

注意

ピンチ ジェスチャは、この時点で "選択" アクションを実行する唯一のジェスチャです。

ワンハンド操作

  1. 左または右にあるコントローラーの操作キー (左シフト または スペース) を押したままにします。
  2. オブジェクトのポイント
  3. マウスボタンを押したままピンチする
  4. マウスを使用してオブジェクトを移動する
  5. マウスボタンを離して操作を停止する

2ハンド操作

同時に2人の手でオブジェクトを操作する場合は、永続的なモードを使用することをお勧めします。

  1. トグルキー (T/Y) を押して両方の人に切り替えます。
  2. 一度に1つの手を操作します。
    1. 右側を制御する スペース を保持する
    2. オブジェクトを取得する場所に手を移動する
    3. マウスの 左ボタン を押して、 ピンチ ジェスチャをアクティブにします。
    4. 右側の制御を停止するには、 空き領域 を解放します。 ハンドは固定されており、操作されなくなったため、 ピンチ ジェスチャにロックされます。
  3. もう一方の場所で同じオブジェクトを取得して、もう一度プロセスを繰り返します。
  4. 両方の両手が同じオブジェクトを取得しているので、どちらか一方を移動して2つの操作を実行できます。

GGV (宝石、ジェスチャ、音声) の相互作用

既定では、GGV 対話はエディターで有効になっていますが、シーンには表現できません。

  1. カメラを回転して、対話型オブジェクト (マウスの右ボタン) で宝石のカーソルをポイントする
  2. マウスの左ボタン をクリックしたままにして操作する
  3. オブジェクトを操作するためにカメラを再回転する

入力シミュレーションプロファイル内の [ 手動入力を許可 する] オプションをオンにして、これをオフにすることができます。

さらに、シミュレートされたハンドを使用して GGV 対話を行うこともできます。

  1. 入力シミュレーションプロファイルジェスチャハンドシミュレーションモード を切り替えることにより、GGV シミュレーションを有効にします。
  2. カメラを回転して、対話型オブジェクト (マウスの右ボタン) で宝石のカーソルをポイントする
  3. 右側を制御する スペース を保持する
  4. マウスの左ボタン をクリックしたままにして操作する
  5. マウスを使用してオブジェクトを移動する
  6. マウスボタンを離して操作を停止する

発生 (テレポートイベントを)

入力シミュレーションでテレポートイベントを発生させるには、入力シミュレーションプロファイルにハンドジェスチャ設定を構成します。これにより、他の人がテレポート End ジェスチャを実行している間に、テレポート開始 ジェスチャが実行されるようになります。 テレポート 開始 ジェスチャによってテレポートポインターが表示されますが、 テレポート End gesure テレポートアクションを完了し、ユーザーを移動します。

結果のテレポートの y 位置は、y 軸に沿ったカメラの変位に依存します。 エディターでは、この値は既定で0に設定されているため、 Q キーと E キーを使用して適切な高さに調整します。

入力シミュレーションのテレポート設定

モーションコントローラーの相互作用

シミュレートされたモーションコントローラーは、同じように操作できます。 相互作用モデルは、トリガー、グラブ、およびメニューキーがそれぞれ 左マウスボタンG 、および M キーにマップされているときに、それに似た手の形での相互作用に似ています。

視線追跡

入力シミュレーションプロファイルの [視点をシミュレート] オプションをオンにすると、視線追跡シミュレーションを有効にすることができます。 これは、GGV またはモーションコントローラーのスタイルの相互作用では使用しないでください (そのため、 既定のコントローラーシミュレーションモード が " トレーラー" に設定されていることを確認してください)。

入力シミュレーションツールウィンドウ

Mixed Reality > Toolkit > ユーティリティ の > 入力シミュレーション メニューから、入力シミュレーションツールウィンドウを有効にします。 このウィンドウは、再生モード中の入力シミュレーションの状態へのアクセスを提供します。

ビューポートのボタン (オプション)

基本的な位置を制御するエディター内のボタンの prefab は、 インジケーター Prefab の入力シミュレーションプロファイルで指定できます。 これはオプションのユーティリティであり、 入力シミュレーションツールウィンドウで同じ機能にアクセスできます。

注意

既定では、ビューポートインジケーターは既定で無効になっています。これは、現在、Unity UI の相互作用に干渉する場合があるためです。 「問題 #6106」を参照してください。 有効にするには、InputSimulationIndicators prefab を インジケーター prefab に追加します。

ハンドアイコンは、シミュレートされたハンドの状態を示します。

  • 追跡対象でない手のアイコン ハンドは追跡していません。 クリックすると、ハンドが有効になります。
  • 追跡 した手のアイコンハンドは追跡されますが、ユーザーによって制御されることはありません。 クリックすると、ハンドが非表示になります。
  • 制御ハンドアイコン ハンドはユーザーによって追跡および制御されます。 クリックすると、ハンドが非表示になります。
  • ハンドのリセットアイコン 手を既定の位置にリセットする場合にクリックします。

こちらもご覧ください