メインコンテンツまでスキップ

Inverse3 と VerseGrip コントローラー

Inverse3 および VerseGrip コントローラーは、Device Mapper を利用して、それぞれの物理デバイスを Unity のゲームオブジェクトにシームレスに統合するように設計されています。 高頻度のセンサーデータを活用することで、これらのコンポーネントは仮想環境内での正確かつ応答性の高い制御を可能にします。 両者の機能は、ロジックと機能の両面で調和しており、統一されたユーザー体験を実現します。

これらのコントローラーは Haply Inverse Unity Package の基盤となるもので、Haply のハードウェアの高度な機能を活用して、開発者が没入感と対話性に優れた VR アプリケーションを構築できるようにします。 デバイスのローカル座標とゲームワールドの空間パラメーターの間の変換を巧みに管理し、自然で魅力的なインタラクションを確実に実現します。

Inverse3 コントローラー​

Inverse3 コントローラーコンポーネントは、Inverse3 デバイスを対応するゲームオブジェクトに関連付けるうえで重要です。 高頻度のセンサーデータを使用して、デバイスの物理的な動きを仮想空間内に正確に反映します。主な機能は次のとおりです:

Inverse3 の主な機能と API​

  • Device State Changed Event:Inverse3 コントローラー の中核となるイベントで、触覚フレームごとにトリガーされ、カーソルの位置と速度のリアルタイムな更新を提供します。 デバイスの状態を継続的に追跡する必要があるアプリケーションや、リアルタイムの制御コマンドを実装する場合に不可欠です。

  • Retrieving Position and Velocity:CursorPosition、CursorVelocity、CursorLocalPosition、CursorLocalVelocity などのプロパティを提供し、デバイスの現在の状態にアクセスできます。物理的な動きを仮想空間に正確にマッピングするうえで重要です。

  • Force and Position Control:SetCursorForce や SetCursorPosition などのメソッドを提供し、デバイスを直接操作できます。開発者は力を加えたり位置を設定したりでき、仮想空間でのインタラクションを強化できます。

Inverse3 インスペクタービュー​

inverse3 コントローラーのインスペクター

  • Device:特定のデバイスを選択します。<refresh device list> をクリックすると、Device Mapper を使用して、エディターモードでデバイスを取得し、すべての Device ドロップダウンを更新します。
  • Handedness:左右どちらの手用かの設定に基づいてデバイスをフィルタリングします。
  • Cursor:Inverse3Cursor オブジェクトにリンクし、デバイスの位置の更新に合わせて移動します。
  • Body:デバイスの物理的な本体の向きを表す Inverse3Body に接続します。
  • Coordinate Conversion:デバイスのカーソル位置と本体の向きをゲームワールドにどのように変換するかを定義します。正確でカスタマイズ可能なマッピングを実現します。
  • Cursor Data: ゲームワールド内でのカーソルの位置を表示します。
  • Device Data: デバイスのリアルタイムの入力データと出力データを表示します。
  • Events:メインスレッドでトリガーされる Unity イベントで、シーンのインタラクションや UI の更新を容易にします。
    • Ready:デバイスが使用可能になったときに通知します。
    • ControlModeChanged:デバイスの制御モード(例:力制御または位置制御)の変更を示します。
    • PowerSupplyStatusChanged:デバイスの電源供給状態の変化を通知します。

inverse3 コントローラーの実行時

Inverse3 ギズモ​

デバイスの位置と、カーソルの最大到達距離を示す視覚的なインジケーターを提供します。色は左右どちらの手用かに応じて分けられます。

  • 青は左手用のデバイスを示します。
  • 赤は右手用のデバイスを示します。
  • 左右の設定が未割り当てのデバイスには、実行時に決定されるまで両方の色が表示されます。

inverse3 の左手用・右手用の表示

VerseGrip コントローラー​

Inverse3 コントローラーと同様に、VerseGrip コントローラーは VerseGrip デバイスをリンクされたゲームオブジェクトに割り当てます。 このコンポーネントは、VerseGrip 固有の入力機能を活用するうえで不可欠です。

VerseGrip の主な機能と API​

  • Device State Changed Event:デバイスの向きとボタンの状態の変化を通知します。タイムリーなフィードバックを提供することで、ユーザーの入力とデバイスの向きに応じたインタラクティブなアプリケーションを支援します。

  • Button Interaction:ボタン操作を検出するためのメソッド(GetButton、GetButtonDown、GetButtonUp)を備えており、触覚スレッドへの入力メカニズムを実現します。

  • Attachment State:他のデバイスとのアタッチ状態を監視し、Attached および Detached イベントを通じて通知します。デバイスの物理的な構成に依存するアプリケーションに役立ちます。

VerseGrip インスペクタービュー​

VerseGrip コントローラーのインスペクター

  • Device:特定のデバイスを選択します。<refresh device list> をクリックすると、エディターモードでクライアントがアクティブになり、すべての Device ドロップダウンが更新されます。
  • Cursor:VerseGripCursor オブジェクトにリンクし、デバイスの向きの更新に応じて回転します。
  • Coordinate Conversion:デバイスの向きをゲームワールドにどのように変換するかを定義します。正確でカスタマイズ可能なマッピングを実現します。
  • Cursor Data: ゲームワールド内でのカーソルの回転を表示します。
  • Device Data: デバイスのローカルの回転、ボタンの状態、およびアタッチ状態を表示します。
  • Events:メインスレッドで Unity イベントを発生させ、シーンや UI のインタラクションをサポートします。
    • Ready:デバイスが使用可能になったときに通知します。
    • Button Down:ボタンが押されたときにトリガーされます。
    • Button Up:ボタンが離されたときにトリガーされます。
    • Attached:デバイスが Inverse3 にアタッチされたときに示されます。
    • Detached:デバイスが Inverse3 からデタッチされたときに示されます

VerseGrip コントローラーの実行時