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 객체에 연결되어, 기기의 위치가 업데이트될 때마다 함께 이동합니다.
- Body: 장치의 물리적 본체 방향을 나타내는 Inverse3Body에 연결합니다.
- 좌표 변환: 디바이스의 커서 위치와 본체의 방향을 게임 월드 내에서 어떻게 변환할지 정의합니다. 정확하고 사용자 정의가 가능한 매핑을 구현합니다.
- 커서 데이터: 게임 월드 내 커서의 위치를 표시합니다.
- 장치 데이터: 장치의 실시간 입력 데이터와 출력 데이터를 표시합니다.
- 이벤트: 메인 스레드에서 트리거되는 Unity 이벤트를 통해 씬의 상호작용 및 UI 업데이트를 용이하게 합니다.
- 준비됨: 기기를 사용할 수 있게 되면 알림을 보냅니다.
- ControlModeChanged: 장치의 제어 모드(예: 힘 제어 또는 위치 제어)가 변경되었음을 나타냅니다.
- PowerSupplyStatusChanged: 장치의 전원 공급 상태 변경을 알립니다.

Inverse3 기즈모
장치의 위치와 커서가 도달할 수 있는 최대 거리를 보여주는 시각적 표시기를 제공합니다. 색상은 왼손용과 오른손용으로 구분됩니다.
- 파란색은 왼손용 장치를 나타냅니다.
- 빨간색은 오른손용 장치를 나타냅니다.
- 좌우 설정이 할당되지 않은 장치에는 실행 시 결정될 때까지 두 가지 색상이 모두 표시됩니다.

VerseGrip 컨트롤러
Inverse3 컨트롤러와 마찬가지로, VerseGrip 컨트롤러는 VerseGrip 디바이스를 연결된 게임 오브젝트에 할당합니다. 이 컴포넌트는 VerseGrip 고유의 입력 기능을 활용하는 데 필수적입니다.
VerseGrip의 주요 기능 및 API
-
기기 상태 변경 이벤트: 기기의 방향 및 버튼 상태의 변화를 알립니다. 적시에 피드백을 제공함으로써, 사용자의 입력과 기기 방향에 따라 반응하는 대화형 애플리케이션 개발을 지원합니다.
-
버튼 상호 작용: 버튼 조작을 감지하기 위한 메서드 (
GetButton、GetButtonDown、GetButtonUp)를 갖추고 있어, 촉각 스레드에 대한 입력 메커니즘을 구현합니다. -
첨부 파일 상태: 다른 기기와의 연결 상태를 모니터링하고,
Attached그리고Detached이벤트를 통해 알립니다. 이는 기기의 물리적 구성에 의존하는 애플리케이션에 유용합니다.
VerseGrip 인스펙터 뷰

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