メインコンテンツへ移動

Inverse3 およびVerseGripカーソル

Haply の「Inverse Unity Package」は、Inverse3 およびVerseGripデバイス専用のカーソルコンポーネントを導入し、Unity環境内での正確な操作とインタラクションを実現します。 これらのコンポーネントである「Inverse3 カーソル」および「VerseGripカーソル」は、対応するデバイスのコントローラーから送信されるデータに基づいて、ゲームオブジェクトの位置や回転を動的に調整するように設計されています。

概要​

カーソルコンポーネントは、物理デバイス(Haply )とUnity内の仮想ゲームオブジェクトとの架け橋となり、デバイスの位置や回転のデータをゲームオブジェクトの動きや向きに変換します。 この変換により、ユーザーは物理的な動きが仮想的な反応として反映されるため、直感的に仮想環境とインタラクションを行うことができます。

Classe CursorBase​

カーソルコンポーネントの中核をなすのは、クラス CursorBase, これは、以下の共通の基本機能を提供する Inverse3Cursor et VerseGripCursor. これには、デバイスとの関連付けの管理、モデルのインスタンス化、および可視性の制御が含まれます。

主なプロパティとメソッド​

  • デバイス:カーソルを、それを制御するデバイスに関連付けます。実行時に自動的に設定されます。
  • モデルプレハブ : カーソルモデルのプレハブ(prefab)を指定します。これは、 ModelParent.
  • ModelParent:インスタンス化されたモデルプレハブの親トランスフォームを指定します。指定されていない場合、デフォルトではカーソルのトランスフォームが使用されます。
  • モデル : シーン内の既存のカーソルモデルを直接参照します。このフィールドが設定されている場合、 ModelPrefab 無視される。
  • HideControllerModel:カーソルモデルの表示/非表示を制御し、ゲームの要件に応じて動的に表示または非表示にすることができます。
  • 半径:カーソルモデルが球体の場合、モデルのメッシュの境界に基づいて計算される半径を表します。
  • 滑らかさ : PositionSmoothness et RotationSmoothness カーソルの位置や回転を滑らかにする機能を提供しており、これによりユーザー体験が向上します。

注:予期せぬ動作を防ぐためには、「カーソル」コンポーネント内でカーソルモデルを適切に参照することが不可欠です。

カーソル

Haptic Rig を使用して作成されたデフォルトのカーソルモデルには、3つの軸(前方(青)、上方(緑)、右側(赤))を表す色付きの点が配置されています。 この設計により、仮想環境内でのデバイスの向きを視覚的に把握しやすくなっています。キャリブレーション済みの VerseGrip を使用する場合、「前方」はポインティング方向と一致し、「上方」は上面と一致している必要があります。

カーソル部品Inverse3​

Inverse3Cursor Inverse3 デバイス向けに設計されており、デバイスの物理的な位置を反映するように、Unity内のカーソルのローカル位置を更新します。

パラメータ PositionSmoothness カーソルの動きの滑らかさを調整でき、物理的な動きに対するカーソルの反応性を制御することで、ユーザー体験を向上させます。

VerseGrip スライダー部品​

VerseGripCursor VerseGripデバイスへの機能拡張を行い、Unity内のカーソルの回転を、デバイスの物理的な回転を反映するように更新します。

パラメータ useDeviceLocalSpace これにより、カーソルの配置を「ワールド座標系」と「親オブジェクトの座標系」のいずれかから選択できるようになり、設計の柔軟性が向上します。

パラメータ RotationSmoothness カーソルの回転の滑らかさを制御し、開発者がVerseGripの物理的な向きが変わった際のカーソルの反応性を微調整できるようにします。

実装の詳細​

初期化時に、カーソルコンポーネントは ModelPrefab 「~の子」として指定された ModelParent si Model 割り当てられていないため、シーン内で視覚的に表現されることが保証されます。 これらのコンポーネントは、それぞれの 航空機整備士 デバイスの物理的な動きに応じて、カーソルの位置や回転をリアルタイムで調整することで、これと連動させます。

これら2つのコンポーネントは、同じGameObjectにアタッチしてその位置や回転を制御することも、用途に応じて別々のGameObjectにアタッチすることも可能です。これにより、開発者はUnityで没入感のあるハプティック体験を構築するための多用途なツールを手に入れることができます。