Inverse3 およびVerseGripコントローラー
Inverse3 また、VerseGripコントローラーは、Device Mapperを通じて各物理デバイスをUnityのゲームオブジェクトとシームレスに統合するように設計されています。 高周波センサーデータを活用することで、これらのコンポーネントは仮想環境内で高精度かつ応答性の高い制御を可能にします。 それらの機能は、ロジックと性能の面で調和が取れており、統一されたユーザー体験を保証します。
これらのコントローラーは、「Haply Inverse Unity Package」の中核を成しており、開発者がHaplyの高度なハードウェア機能を活用して、没入感がありインタラクティブなVRアプリケーションを構築できるようにします。 これらは、デバイスのローカル座標とゲームワールドの空間パラメータとの間の変換を巧みに処理し、リアルで没入感のあるインタラクションを保証します。
Inverse3 コントローラー
Inverse3 コントローラーコンポーネントは、Inverse3 デバイスを該当するゲームオブジェクトに接続する上で重要な役割を果たします。 高周波センサーデータを使用して、デバイスの物理的な動きを仮想空間内で正確に反映します。主な機能は以下の通りです:
Inverse3 主な機能とAPI
-
デバイス状態変更イベント:Inverse3 コントローラの核となるこのイベントは、各ハプティックフレームごとに発生し、カーソルの位置と速度に関するリアルタイムの更新情報を提供します。 デバイスの状態を継続的に追跡したり、リアルタイムの制御コマンドを実装したりする必要があるアプリケーションには不可欠です。
-
位置および速度の照会:
CursorPosition,CursorVelocity,CursorLocalPosition,CursorLocalVelocityのようなプロパティを提供することで、デバイスの現在の状態にアクセスすることができ、物理的な動きを仮想空間に正確にマッピングする上で極めて重要です。 -
力および位置制御:
SetCursorForce,SetCursorPositionこのようなメソッドを提供することで、デバイスを直接操作することができ、開発者は力を加えたり位置を設定したりして、仮想的なインタラクションを強化することができます。
Inverse3 インスペクタを表示

- 装置: 特定のデバイスを選択します。
<refresh device list>をクリックすると、エディタモードでDevice Mapperを使用してデバイスを読み込み、すべての 装置 ドロップダウンを更新します。 - 利き手:デバイスのハンドル構成に基づいてフィルタリングします。
- カーソル:Inverse3Cursorオブジェクトとリンクされており、デバイスの位置情報の更新に合わせて一緒に移動します。
- 本文:デバイスの物理的な本体の向きを表すInverse3Body と関連付けられています。
- 座標変換:デバイスのカーソル位置と本体の向きがゲームワールドでどのように変換されるかを定義し、正確かつカスタマイズ可能なマッピングを保証します。
- カーソルデータ:ゲームワールド内のカーソルの位置を表示します。
- デバイスデータ:デバイスのリアルタイムの入力および出力データを表示します。
- イベント: メインスレッドで発生するUnityイベントであり、シーンとのインタラクションやUIの更新をサポートします。
- Ready:デバイスの使用準備が整ったときに信号を送信します。
- ControlModeChanged:デバイスの制御モード(例:力制御や位置制御など)が変更されたことを示します。
- PowerSupplyStatusChanged: デバイスの電源供給状態が変更されたことを通知します。

Inverse3 ギズモ
デバイスの位置とカーソルが到達可能な最大距離を視覚的に表示し、ハンドルの構成に応じて色分けします。
- 青色は左手用のデバイスを表しています。
- 赤色は右手用デバイスを表しています。
- ハンドルの構成が指定されていないデバイスでは、実行時に決定されるまで、2つの色が両方とも表示されます。

VerseGrip コントローラー
Inverse3 コントローラーと同様に、VerseGripコントローラーは、VerseGripデバイスを接続されたゲームオブジェクトに割り当てます。 このコンポーネントは、VerseGrip独自の入力機能を活用するために不可欠です。
VerseGrip の主な機能と API
-
デバイス状態変更イベント:デバイスの向きやボタンの状態の変化を通知し、ユーザーの入力やデバイスの向きに対する即時のフィードバックを提供することで、インタラクティブなアプリケーションをサポートします。
-
ボタンの操作: ボタンの操作を検知するメソッド(
GetButton,GetButtonDown,GetButtonUp)を提供することで、入力メカニズムをハプティックスレッドと連携させることができます。 -
接続状態: 他のデバイスとの接続状況を監視し、
AttachedおよびDetachedイベントを通じてシグナルを送信します。デバイスの物理的な構成に依存するアプリケーションで役立ちます。
VerseGrip インスペクターを表示

- 装置: 特定のデバイスを選択します。
<refresh device list>をクリックすると、エディタモードでクライアントが起動し、すべての 装置 ドロップダウンが更新されます。 - カーソル:VerseGripCursorオブジェクトにリンクされており、デバイスの向きが更新されるたびに回転します。
- 座標変換:デバイスの向きがゲームワールドでどのように変換されるかを定義し、正確かつカスタマイズ可能なマッピングを保証します。
- カーソルデータ:ゲームワールド内のカーソルの回転値を表示します。
- デバイスデータ:デバイスのローカル回転値、ボタンの状態、および接続状態を表示します。
- イベント: シーンやUIとのインタラクションをサポートするために、メインスレッドからUnityイベントを発生させます。
- Ready:デバイスの使用準備が整ったときに信号を送信します。
- ボタンダウン:ボタンが押されたときに発生します。
- Button Up:ボタンから手を離したときに発生します。
- 添付:デバイスがInverse3に接続されたときに表示されます。
- 「Detached」:デバイスが Inverse3 から切り離されたときに表示されます。
