Inverse3 およびVerseGripコントローラー
Inverse3 コントローラーおよびVerseGrip
Inverse3 およびVerseGripコントローラーは、Device Mapperを活用して、それぞれの物理デバイスをUnityのゲームオブジェクトに統合するように設計されています。 高頻度のセンサーデータを活用することで、これらのコンポーネントは仮想環境内で正確かつ反応の良い操作を実現します。 これらの機能は、ロジックと性能の両面でシームレスに連携しており、統一感のあるユーザー体験を提供します。
これらのコントローラーは、Unityの「Haply Inverse」パッケージの中核を成すものであり、開発者はHaply のハードウェアが持つ高度な機能を活用して、没入感あふれるインタラクティブなVRアプリケーションを作成することができます。 これらのコントローラーは、デバイスのローカル座標とゲーム世界の空間パラメータ間の変換をシームレスに処理し、リアルで没入感のあるインタラクションを実現します。
コントローラーInverse3
「Inverse3 Controller」コンポーネントは、Inverse3 デバイスを対応するゲームオブジェクトに関連付ける上で不可欠です。 このコンポーネントは、高頻度のセンサーデータを利用して、デバイスの物理的な動きを仮想空間内で正確に反映します。主な機能は以下の通りです:
主な機能とAPIInverse3
-
「Device State Changed」イベント:Inverse3 コントローラの核となるこのイベントは、ハプティックフレームごとに発生し、カーソルの位置と速度に関するリアルタイムの更新情報を提供します。 これは、デバイスの状態を継続的に追跡する必要があるアプリケーションや、リアルタイムのコマンドを実装する必要があるアプリケーションにとって不可欠です。
-
位置と速度の復元 : 以下のような物件を提供しています
CursorPosition,CursorVelocity,CursorLocalPositionetCursorLocalVelocityデバイスの現在の状態を確認するためです。これは、物理的な動きと仮想空間を正確に一致させる上で極めて重要です。 -
力と位置の制御 : 以下のようなメソッドを提供します
SetCursorForceetSetCursorPositionデバイスを直接操作することで、開発者は力を加えたり位置を指定したりすることができ、これにより仮想的なインタラクションがより豊かになります。
Vue インスペクター d'Inverse3

- 装置 : 特定のデバイスを選択します。クリックして
<refresh device list>Device Mapper を使用して、エディタモードでデバイスを取得し、すべてのドロップダウンリストを更新します 装置. - 利き手:デバイスの利き手設定(左利きまたは右利き)に基づいてフィルタリングします。
- カーソル:Inverse3Cursor オブジェクトを配置します。このオブジェクトは、デバイスの位置情報の更新に合わせて移動します。
- Body:Inverse3Body に接続されます。Inverse3Body は、デバイスの本体の物理的な向きを表します。
- 座標変換:カーソルの位置とデバイスの本体の向きがゲーム内空間でどのように変換されるかを定義し、正確かつカスタマイズ可能な対応関係を確保します。
- カーソルデータ:ゲーム内のカーソルの位置を表示します。
- デバイスデータ:デバイスの入力および出力のデータをリアルタイムで表示します。
- イベント : メインスレッドで発生するUnityのイベント。シーンとのやり取りやインターフェースの更新を容易にするものです。
- Ready:デバイスが使用可能な状態であることを示します。
- ControlModeChanged:デバイスの制御モードの変更(例:力制御や位置制御など)を示します。
- PowerSupplyStatusChanged:デバイスの電源の状態変化を通知します。

ギズモInverse3
デバイスの位置やカーソルが到達可能な最大距離を視覚的に示し、左右の区別に応じて色分けされています。
- 青色は左手で操作するデバイスを示しています。
- 赤色は右手で操作するデバイスを示しています。
- 左右の区別が指定されていないデバイスについては、実行時に左右が確定するまで、両方の色が表示されます。

VerseGrip コントローラー
「Inverse3 コントローラー」コンポーネントと同様に、「VerseGripコントローラー」コンポーネントは、関連付けられたゲームオブジェクトにVerseGripデバイスを割り当てます。 このコンポーネントは、VerseGrip独自の入力機能を活用するために不可欠です。
VerseGripの主な機能とAPI
-
「Device State Changed」イベント:デバイスの向きやボタンの状態の変化を通知します。これにより、インタラクティブなアプリケーションは、ユーザーの入力やデバイスの向きに迅速に対応することができます。
-
ボタンの操作 : ボタンとのインタラクションを検出する方法を提供します(
GetButton,GetButtonDown,GetButtonUp), これにより、入力処理をハプティックスレッドへ転送することが可能になります。 -
所属状況 : 他のデバイスとの接続状態を監視し、変化があった場合はイベントとして通知する
AttachedetDetached. デバイスの物理的な構成に依存するアプリケーションに役立ちます。
VerseGrip インスペクターの眺め

- 装置 : 特定のデバイスを選択します。クリックして
<refresh device list>クライアントをエディタモードに切り替え、すべてのドロップダウンリストを更新します 装置. - カーソル:VerseGripCursor オブジェクトにバインドされており、デバイスの向きが更新されるたびに回転します。
- 座標変換:ゲーム内の世界において、デバイスの向きがどのように変換されるかを定義し、正確かつカスタマイズ可能な対応を実現します。
- カーソルデータ:ゲーム内のワールドにおけるカーソルの回転を表示します。
- デバイスのデータ:デバイスのローカル回転、ボタンの状態、および取り付け状態を表示します。
- イベント : シーンやインターフェースとのやり取りに対応するため、メインスレッド上でUnityのイベントをトリガーします。
- 「Prêt」:デバイスが使用可能な状態であることを示します。
- ボタンの押下:ボタンが押されたときにトリガーされます。
- ボタンの離し:ボタンが離されたときにトリガーされます。
- 「Attaché」:デバイスが「Inverse3 」に接続されていることを示します。
- 「Détaché」:本機がInverse3
