본문으로 바로 가기

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 검사기 보기​

inverse3 컨트롤러 편집기

  • 장치: 특정 장치를 선택합니다. <refresh device list>를 클릭하면 편집기 모드에서 Device Mapper를 사용하여 장치를 불러오고, 모든 장치 드롭다운을 업데이트합니다.
  • 손잡이 방향: 손잡이 구성을 기준으로 장치를 필터링합니다.
  • 커서: Inverse3Cursor 객체와 연결되어 있으며, 기기의 위치 업데이트에 따라 함께 움직입니다.
  • 본문: 장치의 물리적 본체 방향을 나타내는 Inverse3Body와연결됩니다.
  • 좌표 변환: 장치의 커서 위치와 본체 방향이 게임 월드에서 어떻게 변환되는지를 정의하여, 정확하고 사용자 정의가 가능한 매핑을 보장합니다.
  • 커서 데이터: 게임 월드 내 커서의 위치를 표시합니다.
  • 장치 데이터: 장치의 실시간 입력 및 출력 데이터를 표시합니다.
  • 이벤트: 메인 스레드에서 발생하는 Unity 이벤트로, 씬 상호작용이나 UI 업데이트를 지원합니다.
    • 준비: 장치를 사용할 준비가 되면 신호를 보냅니다.
    • ControlModeChanged: 장치의 제어 모드(예: 힘 제어 또는 위치 제어)가 변경되었음을 나타냅니다.
    • PowerSupplyStatusChanged: 장치의 전원 공급 상태가 변경되었음을 알립니다.

inverse3 컨트롤러 런타임

Inverse3 기즈모​

장치의 위치와 커서가 도달할 수 있는 최대 거리를 시각적으로 표시하며, 손잡이 구성에 따라 색상으로 구분합니다.

  • 파란색은 왼손용 장치를 나타냅니다.
  • 빨간색은 오른손용 장치를 나타냅니다.
  • 손잡이 구성이 지정되지 않은 장치는 런타임에 결정될 때까지 두 가지 색상이 모두 표시됩니다.

inverse3 좌우 방향

VerseGrip 컨트롤러​

Inverse3 컨트롤러와 마찬가지로 VerseGrip 컨트롤러는 VerseGrip 장치를 연결된 게임 오브젝트에 할당합니다. 이 컴포넌트는 VerseGrip의 고유한 입력 기능을 활용하는 데 필수적입니다.

VerseGrip 주요 기능 및 API​

  • 장치 상태 변경 이벤트: 장치의 방향 및 버튼 상태 변경을 알리며, 사용자 입력과 장치 방향에 대한 즉각적인 피드백을 제공하여 대화형 애플리케이션을 지원합니다.

  • 버튼 상호작용버튼 상호작용을 감지하는 메서드(GetButton, GetButtonDown, GetButtonUp)를 제공하여 입력 메커니즘을 햅틱 스레드와 연동할 수 있게 합니다.

  • 연결 상태: 다른 장치와의 연결 상태를 모니터링하면서, Attached 및 Detached 이벤트를 통해 신호를 전송합니다. 장치의 물리적 구성에 의존하는 애플리케이션에 유용합니다.

VerseGrip 인스펙터 보기​

Versegrip 컨트롤러 에디터

  • 장치: 특정 장치를 선택합니다. <refresh device list>를 클릭하면 편집기 모드에서 클라이언트가 활성화되고 모든 장치 드롭다운이 새로고침됩니다.
  • 커서: VerseGripCursor 객체와 연결되며, 기기의 방향 업데이트에 따라 회전합니다.
  • 좌표 변환: 장치의 방향이 게임 월드에서 어떻게 변환되는지를 정의하여, 정확하고 사용자 정의가 가능한 매핑을 보장합니다.
  • 커서 데이터: 게임 월드 내 커서의 회전 값을 표시합니다.
  • 장치 데이터: 장치의 로컬 회전 값, 버튼 상태 및 연결 상태를 표시합니다.
  • 이벤트: 씬 또는 UI 상호작용을 지원하기 위해 메인 스레드에서 Unity 이벤트를 발생시킵니다.
    • 준비: 장치를 사용할 준비가 되면 신호를 보냅니다.
    • 버튼 다운: 버튼이 눌렸을 때 발생합니다.
    • Button Up: 버튼에서 손을 뗐을 때 발생합니다.
    • 첨부: 장치가 Inverse3에 연결되었을 때 표시됩니다.
    • 분리됨: 장치가 Inverse3에서 분리되었을 때 표시됩니다.

Versegrip 컨트롤러 런타임