주요 내용으로 이동

←목차로 돌아가기

2.1.1 업데이트 내역

의존성​

  • haply 의 inverse-c.dll을 2.1.1 버전으로 업데이트했습니다( Inverse SDK 2.1 이상이필요합니다) .
  • Haply.Inverse.dll을 2.1.1 버전으로 업데이트했습니다 .
  • com.unity.xr.core-utils 2.3.0 버전이 추가되었습니다.
주의

이번 업데이트로 인해 Unity 2022.1.0f1 이전버전과의 호환성이 깨졌습니다. 호환성 문제가 발생할 경우, 더 최신 버전으로 업데이트해 주십시오.

파괴적인 변경​

  • Inverse3 VerseGrip과 함께 将 device ~로서 ConnectionStateChanged 사건의 첫 번째 매개변수 전달
    • ConnectionStateChanged(state, prevState) > ConnectionStateChanged(device, state, prevState)
    • ConnectionStateChangedAsync(state, prevState) > ConnectionStateChangedAsync(device, state, prevState)
  • DeviceMapper의 State 속성을 읽기 전용으로 변경

새로운 기능​

  • Inverse3Body 컴포넌트는 ‘ Inverse3 ’ 디바이스의 신체 방향을 지정된 GameObject에 적용합니다.
  • Inverse3:
    • 장치 데이터(검사기) 표시 ControlMode, 그리고 마지막으로 기기로 전송되는 Force、Position 또는 Angles。
    • JointsAngles 와 JointsAngularVelocity。
    • Powered 장치가 현재 전원이 켜져 있는지 여부를 표시합니다.
    • PowerSupplyStatusChanged Unity 이벤트는 전원 상태가 변경될 때 트리거됩니다.
    • Orientation Inverse3 기기의 현재 방향을 가져옵니다.
    • OrientationChangedAsync 이벤트는 몸의 방향이 바뀔 때 발생합니다.
    • RequestOrientation(), 신체 방향을 수동으로 요청하는 데 사용됩니다.
    • ControlMode 현재 제어 모드(CursorForce, CursorPosition, JointsTorques, JointsAngles)를 가져옵니다.
    • ControlModeChanged Unity 이벤트는 제어 모드가 변경될 때 트리거됩니다.
    • ForceOutput、PositionOutput、JointsTorqueOutput 와 JointsAnglesOutput 현재 출력값을 가져옵니다.
    • Release() null 힘 값을 전송하여 장치 제어를 재설정합니다(대안). TryResetForce()).
    • CoordinateConverter,사전 설정 파일을 사용하거나 직접 값을 할당하여 좌표 변환 설정을 정의하는 데 사용됩니다.
    • ErrorEvent 메인 스레드에서 트리거되며, 즉 매핑된 장치와 연관된 ClientConnection 오류 이벤트가 발생했을 때입니다.
  • VerseGrip:
    • CoordinateConverter,사전 설정 파일을 사용하거나 직접 값을 할당하여 좌표 변환 설정을 정의하는 데 사용됩니다.
    • ErrorEvent 메인 스레드에서 트리거되며, 즉 매핑된 장치와 연관된 ClientConnection 오류 이벤트가 발생했을 때입니다.
  • 디바이스맵퍼:
    • 실행 중에 연결된 장치를 매핑합니다.
    • 각 Inverse3 기기의 Inverse3 전원 상태와 방향정보를 가져옵니다.
    • DeviceInfoPollingMode 해당 모델에는 다음이 포함됩니다. Manual、Once(기본값) 또는 Continuous
    • devicesInfoPollDelay 최소 안전값: 신체 방향을 요청할 때는 1sec,그렇지 않으면 0.5sec。
    • 컴포넌트가 활성화된 경우에만 초기화됩니다.
    • 필터링 조건이 적용된 장비 조회 방법:
      • GetInverse3Devices(handedness) 지정된 손 사용 방향(handedness)에 따라 필터링된 ‘ Inverse3 ’ 기기를 가져옵니다.
      • GetVerseGripDevices(handedness) 지정된 손 사용 방향(handedness)과 일치하는 Inverse3 기기와 연동된 VerseGrip 기기를 가져옵니다.
      • GetInverse3(handedness) 지정된 손 사용 방향(handedness)과 일치하는 첫 번째 ‘ Inverse3 ’ 장치를 가져옵니다.
      • GetInverse3(verseGrip) 지정된 VerseGrip 장치와 연결된 Inverse3 장치를 가져옵니다.
      • GetVerseGrip(inverse3) Inverse3 장치와 연결된 VerseGrip 장치를 가져오거나 지정합니다.
  • VerseGripCursor 및 Inverse3Body 컴포넌트에 OrientationSettings가추가되었습니다.
  • VerseGrip.Orientation 대체 VerseGrip.LocalRotation。
  • Inverse3 캐시에 명시적인 Inverse3D데이터 유형:
    • 캐시 상태 속성:CursorPosition、JointsAngles、JointsAngularVelocity、Orientation,
    • GravityCompensation、StatusPowerSupply、ConfigTorqueScaling
    • 캐시 제어 출력 속성:ControlMode、CursorForceOutput、CursorPositionOutput、JointsTorqueOutput, JointsAnglesOutput。
    • coordinateConverter 지정된 좌표계를 기준으로 수신 및 전송되는 데이터를 변환하는 데 사용됩니다.
    • 캐시 구독 클라이언트를 설정하여 자동으로 업데이트되도록 합니다.
    • 캐시가 업데이트될 때 이벤트가 발생합니다.
  • 명시적인 Joint3 세 개의 float 멤버를 포함하는 구조체 j0、j1 와 j2(사용 목적: JointsSetTorque 와 JointsSetAngles).
  • VerseGrip 캐시에 명시적인 VerseGripData 유형:
    • 캐시 상태 속성:Orientation、IsAttached、ButtonCount。
    • 버튼 상태 캐시.
    • 캐시 구독 클라이언트를 설정하여 자동으로 업데이트되도록 합니다.
    • coordinateConverter 수신된 데이터를 지정된 좌표계로 변환하는 데 사용됩니다.
    • 캐시가 업데이트될 때 이벤트가 발생합니다.
  • CoordinateConverter(대체) UnityConvert), 이는 각각 장치 좌표계를 Unity 좌표계로 변환하는 방법을 정의하는 데 사용됩니다:
    • Inverse3CoordinateConverter, 커서 좌표와 캐릭터의 방향을 변환하는 데 사용됩니다.
    • VerseGripCoordinateConverter,VerseGrip의 방향을 변경하는 데 사용됩니다.
    • Vector3Settings 와 QuaternionSettings 좌표계 변환 설정을 저장하는 구조체입니다.
    • Inverse3 와 VerseGrip에 대한 기본 좌표 변환기 사전 설정을 ‘컴포넌트’ 또는 ‘Assets’ 메뉴를 통해 생성할 수 있습니다.
      • Inverse3(팔을 앞으로 뻗은 자세) 변환기로, 팔이 사용자를 향하고 LED 아이콘이 측면에 위치한 기기에 적합하도록 설정되어 있습니다.
      • Inverse3(아이콘 전방 방향) 변환기로, LED 아이콘이 사용자를 향하고 팔이 옆에 위치한 기기에 적합하도록 설정되어 있습니다.
      • VerseGrip(기본값) 변환기. 화면이 정면을 향하고 사용자 입력 버튼이 상단에 위치한 기기에 적합합니다.
  • 클라이언트 연결 장치가 켜졌을 때 가져오기 FirmwareVersion、GravityCompensation 와 TorqueScaling。
  • 연결 모니터 표시 GravityCompensation、TorqueScaling 와 PowerSupply。

버그 수정​

  • Inverse3.DeviceStateChanged 호출 시에도 마찬가지로 JointsSetTorque 와 JointsSetAngles 때 발동됩니다.
  • 연결이 끊어지면 기기가 자동으로 다시 연결됩니다.
  • 종료 시 클라이언트 폴링 스레드를 정리하도록 구현합니다.
  • 몇 가지 버그를 수정하고 안정성을 개선했습니다.
  • 씬 언로드/로드 후 발생하는 장치 매핑 문제 수정

사용 중단됨​

  • ClientConnection.Configuration.HapticFrequencyHz 이미 HapticPollFrequency 대체하다
  • ClientConnection.Configuration.PollDelayNs 이미 HapticPollDelayNs 대체하다
  • DeviceBehaviour.ConnectionStateChangedAsync 다음 주요 버전에서 제거될 예정입니다.
  • Inverse3.Position 이미 Inverse3.CursorPosition 대체하다
  • Inverse3.LocalPosition 이미 Inverse3.CursorLocalPosition 대체하다
  • Inverse3.TryResetForce() 이미 Release() 대체하다
  • VerseGrip.LocalRotation 이미 VerseGrip.Orientation 대체하다
  • JointsSetTorque(Vector3) 이미 JointsSetTorques(Joint3) 대체하다
  • JointsSetTorque(float, float, float) 이미 JointsSetTorques(float, float, float) 대체하다
  • JointsSetAngles(Vector3) 이미 JointsSetAngles(Joint3) 대체하다

←목차로 돌아가기