본문으로 건너뛰기

Inverse3 및 VerseGrip 컨트롤러

Inverse3 및 VerseGrip 컨트롤러는 Device Mapper를 통해 각 물리적 장치를 Unity 게임 오브젝트와 원활하게 통합하도록 설계되었습니다. 고주파 센서 데이터를 활용하여 이 컴포넌트들은 가상 환경 내에서 정밀하고 반응성 높은 제어를 가능하게 합니다. 이들의 기능은 로직과 역량 측면에서 조화롭게 맞춰져 있어, 통일된 사용자 경험을 보장합니다.

이 컨트롤러들은 Haply Inverse Unity Package의 핵심을 이루며, 개발자가 Haply의 고급 하드웨어 기능을 활용하여 몰입감 있고 상호작용이 가능한 VR 애플리케이션을 구축할 수 있도록 합니다. 이들은 장치의 로컬 좌표와 게임 월드의 공간 매개변수 사이의 변환을 능숙하게 처리하여, 진정성 있고 몰입감 있는 상호작용을 보장합니다.

Inverse3 컨트롤러​

Inverse3 컨트롤러 컴포넌트는 Inverse3 장치를 해당 게임 오브젝트와 연결하는 데 핵심적인 역할을 합니다. 고주파 센서 데이터를 사용하여 장치의 물리적 움직임을 가상 공간 내에서 정확하게 반영합니다. 주요 기능은 다음과 같습니다:

Inverse3 주요 기능 및 API​

  • Device State Changed Event: Inverse3 컨트롤러의 핵심으로, 이 이벤트는 각 햅틱 프레임마다 발생하여 커서의 위치와 속도에 대한 실시간 업데이트를 제공합니다. 장치 상태를 지속적으로 추적하거나 실시간 제어 명령을 구현해야 하는 애플리케이션에 필수적입니다.

  • 위치 및 속도 조회: CursorPosition, CursorVelocity, CursorLocalPosition, CursorLocalVelocity와 같은 속성을 제공하여 장치의 현재 상태에 접근할 수 있으며, 물리적 움직임을 가상 공간에 정확하게 매핑하는 데 핵심적입니다.

  • 힘 및 위치 제어: 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: 장치의 방향 및 버튼 상태 변경을 알리며, 사용자 입력과 장치 방향에 대한 즉각적인 피드백을 제공하여 인터랙티브 애플리케이션을 지원합니다.

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

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

VerseGrip 인스펙터 보기​

versegrip 컨트롤러 에디터

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

versegrip 컨트롤러 런타임