操作ハンドラー - MRTK2

操作ハンドラー

ManipulationHandler スクリプトを使用すると、1 つまたは 2 つの手を使用してオブジェクトを移動可能、スケーラブル、回転可能にすることができます。 操作は、特定の種類の変換のみを許可するように制限できます。 スクリプトは、HoloLens 2多関節ハンド入力、ハンド レイ、HoloLens (第 1 世代) ジェスチャ入力、イマーシブ ヘッドセット モーション コントローラー入力など、さまざまな種類の入力で動作します。

操作ハンドラーの使用方法

ManipulationHandler スクリプト コンポーネントを GameObject に追加します。 また、そのつかみ取り可能な境界に一致するコライダーもオブジェクトに追加してください。

オブジェクトが近い多関節ハンド入力に応答できるようにするには、 NearInteractionGrabbable スクリプトも追加します。

Unity エディターでの操作ハンドラーの使用

Inspector プロパティ

操作ハンドラー構造体

ホスト変換 ドラッグされる変換。 既定値は コンポーネントの オブジェクトです。

操作の種類 片手、2 つの手、またはその両方を使用してオブジェクトを操作できるかどうかを指定します。

  • 片手のみ
  • 両手のみ
  • 片手と両手

両手操作の種類

  • スケール: スケーリングのみが許可されます。
  • 回転: 回転のみが許可されます。
  • 移動スケール: 移動とスケーリングが許可されます。
  • 回転移動: 移動と回転が許可されます。
  • スケールの回転: 回転とスケーリングが許可されます。
  • 回転スケールの移動: 移動、回転、スケーリングが許可されます。

操作ハンドラー

遠距離操作を許可する ポインターとの遠距離相互作用を使用して操作を実行できるかどうかを指定します。

片手回転モードニア 片手/コントローラーを近くでつかんでいるときにオブジェクトがどのように動作するかを指定します。

片手回転モード遠方 オブジェクトが片手/コントローラーで遠く離れた位置でつかまれている場合の動作を指定します。

片手回転モードオプション 片手でつかんでいるときにオブジェクトを回転させる方法を指定します。

  • 元の回転を維持する: オブジェクトを移動中は回転しません
  • ユーザーへの回転を維持する: X/Y 軸のオブジェクトの元の回転をユーザーに維持します
  • 重力揃えでは、ユーザーへの回転が維持されます。オブジェクトの元の回転をユーザーに維持しますが、オブジェクトは垂直になります。 境界コントロールを持つオブジェクトに役立ちます。
  • 顔ユーザー: オブジェクトが常にユーザーに向かっていることを確認します。 スレート/パネルに便利です。
  • ユーザーから離れて表示する: オブジェクトが常にユーザーから離れた場所に向かっていることを確認します。 後方に構成されたスレート/パネルに役立ちます。
  • オブジェクトの中心を中心に回転: 多関節ハンド/コントローラーに対してのみ機能します。 手/コントローラーの回転を使用してオブジェクトを回転しますが、オブジェクトの中心点を中心にします。 遠くで検査する場合に便利です。
  • グラブポイントを中心に回転: 多関節ハンド/コントローラーに対してのみ機能します。 手/コントローラーで保持されているかのようにオブジェクトを回転させます。 検査に便利です。

リリース動作 オブジェクトが解放されたら、その物理的な移動動作を指定します。 そのオブジェクト上に rigidbody コンポーネントが必要です。

  • Nothing
  • すべてが
  • ベロシティを維持する
  • 速度Angular維持する

回転に関する制約 操作時にオブジェクトが回転する軸を指定します。

  • なし
  • X 軸のみ
  • Y 軸のみ
  • Z 軸のみ

制約にローカル領域を使用する ワールド空間軸またはローカル空間軸に関する制約の適用を切り替えるトグル。

移動に関する制約

  • なし
  • 頭部からの距離を修正

スムージングアクティブ スムージングがアクティブかどうかを指定します。

スムージング量片手 移動、スケール、回転に適用するスムージングの量。 0 のスムージングは、スムージングを行いません。 最大値は、値に変更がないことを意味します。

イベント

操作ハンドラーは、次のイベントを提供します。

  • OnManipulationStarted: 操作の開始時に発生します。
  • OnManipulationEnded: 操作が終了すると起動します。
  • OnHoverStarted: ハンド/コントローラーが操作可能なマウスポインターを近くまたは遠くに置くと起動します。
  • OnHoverEnded: ハンド/コントローラーが操作可能なポイントを解除すると、ほぼまたは遠くに起動します。