Latest
Unity 2.5.1 ( January 8, 2025 ):
Release Notes:
Plugin package name in Unity is VIVE OpenXR Plugin.
Section
- Release Information
- Changes
- Recommended AIO ROM
- Supported Extensions
- Feature Dependency
- Profile Dependency
- Toolkits
- Known Issues
Release Information
Version: 2.5.1
Unity Engine Version: 2021.3.9f1 or newer
Unity Input System: 1.7.0 is recommended.
Unity OpenXR Plugin: 1.12.1 is recommended.
XR Interaction Toolkit: 2.5.4 is recommended.
Target Platform: PC Win64, Android arm64
Target Device: VIVE Focus Vision, VIVE XR Elite, VIVE Focus3, VIVE Pro Series, VIVE Cosmos
Graphics API: DX11, DX12, OpenGLES3, Vulkan
OpenXR Android Loader Version: Khronos openxr_loader_for_android-1.0.34
Changes
ROM
- Fixed: The AP developed in Unity 2022 with URP crashed.
- Fixed: The Android application’s vision becomes limited after upgrading com.unity.xr.openxr to version 1.12.1 or later.
- Changed: The valid states of Eye Tracking
- When the eyes are closed or not detected, the "Openness" value will be set to 0.
- When the eyes are opened, the "Squeeze" value will be set to 0.
- When the eyes are closed or not detected, the "Gaze" data will be invalid.
- When the eyes are closed or not detected, the "Pupil" data will be invalid.
- When the eyes are not detected, the "Geometric" data will be invalid.
Plugin
- Fixed: When using the VIVE OpenXR Plugin in Unity 2022, frequent garbage collection events occur.
- Fixed: VIVERig sets the floor height incorrectly when using OpenXR Plugin version 1.12.1.
- Changed: VIVE XR Hand Tracking supports the XRHandSubsystemProvider of XR Hands .
- Changed: Supports Spectator in Unity 6.
- Deprecated: The VIVE XR Composition Layer Passthrough component is obsolete. Please use VIVE XR Passthrough instead.
- Adds XR_EXT_hand_interaction in PC streaming case.
- Deprecated: The VIVE XR Hand Interaction Ext ( XR_EXT_hand_interaction ) component is obsolete. Please use Hand Interaction Profile instead.
Recommended AIO ROM and streaming software version
- VIVE Focus Vision: 7.0.999.308
- VIVE Hub : 2.3.3
- VIVE Business Streaming: 2.2.3
Supported Extensions
Extensions |
PC Streaming
|
PC Vive Cosmos |
PC Vive Pro series |
AIO
|
V |
V |
V |
V |
|
VIVE Focus3 / XR Elite Controller
|
V |
- |
- |
V |
VIVE Cosmos Controller
|
V※ |
V |
- |
- |
V |
V |
V |
V |
|
Composition Layer
|
|
|
|
V |
Composition Layer Extra Settings
(beta)
|
|
|
|
V |
Scene Understanding
|
|
V |
V |
|
V |
V |
V |
V |
|
EXT Hand Interaction
|
V |
|
|
V |
V |
V |
V |
V |
|
V |
V |
V |
V |
|
|
|
|
V |
|
|
|
|
V |
|
V※ |
|
|
V |
|
VIVE XR Tracker
(beta)
|
V |
V |
V |
V |
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
|
Anchor
(beta)
|
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
Advanced Eye Tracking
(beta)
|
V |
|
V |
V |
Passthrough Configuration
(beta)
|
|
|
|
V |
Persisted Anchor
|
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
|
|
|
V |
|
Spectator Camera
(beta)
|
|
|
|
Focus3 : X XR Elite/Focus Vision : V |
Frame Synchronization
(beta)
|
|
|
|
V |
V |
V |
V |
|
※Correspondent VIVE Streaming settings required.
Feature Dependency
ROM Dependency
- The XR_HTC_hand_interaction "/input/grip/pose" and "/input/squeeze/value" values depend on VIVE XR Elite v1.0.999.456 or newer ROM.
- The XR_FB_display_refresh_rate extension depends on VIVE XR Elite v1.0.999.456 or newer ROM.
- The "XR_HTC_vive_xr_tracker_interaction" extension depends on VIVE XR Elite v1.0.999.528 or newer ROM.
- The "XR_HTC_vive_xr_tracker_interaction" "/input/menu/click", "/input/squeeze/click", "/input/trigger/click", "/input/trackpad/click" and "/input/trackpad/touch" values depend on VIVE XR Elite v1.0.999.676 or newer ROM.
- The "XR Hands" package depends on VIVE Focus 3 v6.0.999.980, VIVE XR Elite v1.0.999.700 or newer ROM.
- The newly changed and fixed features depends on VIVE Focus 3 Release 6.5, VIVE Focus Vision Release 3 or newer ROM.
Others
- The "Spectator Camera" depends on Unity 2022 or newer.
Profile Dependency
The
VIVE OpenXR Plugin
provides
Profiles
that adhere to the
OpenXR Specification
, located at
VIVE OpenXR Plugin > Runtime > Profiles
.
These
Profiles
rely on the
OpenXR extensions
configured in
Project Settings > XR Plug-in Management > OpenXR
. To utilize these
Profiles
, you must enable the corresponding relative extensions as listed in the table below.
Profile |
Extension |
XR_EXT_hand_tracking | VIVE XR Hand Tracking |
XR_EXT_user_presence | VIVE XR User Presence |
XR_HTC_composition_layer_extra_settings | VIVE XR Composition Layer (Extra Settings) |
XR_HTC_eye_tracker | VIVE XR Eye Tracker |
XR_HTC_facial_tracking | VIVE XR Facial Tracking |
XR_HTC_passthrough |
VIVE XR Composition Layer
VIVE XR Passthrough |
XR_HTC_passthrough_configuration | VIVE XR Passthrough |
XR_HTC_path_enumeration | VIVE XR Path Enumeration |
Toolkits
- Custom Gesture : Provides interfaces to customize hand gestures by calculating the fingers "bending" states and "distance" between fingers.
- Realistic Hand Interaction : Provides interfaces to grab/throw an object using XR Hands .
Toolkits |
PC Streaming
|
PC
|
AIO
|
V |
|
V |
|
V |
|
V |
Known Issues & Solutions
- XR_HTC_eye_tracker : The Wide value is always zero.
- VIVE OpenXR Plugin provides materials specifically for Scriptable Render Pipeline (SRP) . You can convert the material to URP from menu Edit > Rendering > Materials > Convert Selected Built-in Materials to URP . Please note that Unity 6 uses URP as the default project template.
- The PoseState isTracked is always false.
- XR_HTC_hand_interaction : The pose is abnormal when the tracking origin is Floor in PC mode.
- The Spectator cannot work on Unity OpenXR Plugin 1.13.x .
-
When using the
Unity OpenXR Plugin
version 1.12.1 with the
Vulkan
Graphics API, UGUI elements may occasionally flicker after switching between applications.
=> Workaround: Upgrade to OpenXR Plugin 1.13.0 or newer version. -
XR_HTC_passthrough
: The HDR feature is default enabled in PC mode and causes
Planar
and
Projected
Passthrough unavailable.
=> Workaround: Disable the HDR. -
The Android application’s vision becomes limited after upgrading
com.unity.xr.openxr
to version 1.12.1 or later.
=> Workaround: Set XRSettings.occlusionMaskScale to 0.using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; public class RemoveRenderMask : MonoBehaviour { private void OnEnable() { StartCoroutine(RemoveOcclusionMask()); } IEnumerator RemoveOcclusionMask() { // Find DisplaySubsystem XRDisplaySubsystem display = null; List<XRDisplaySubsystem> displaySubsystems = new List<XRDisplaySubsystem>(); do { SubsystemManager.GetSubsystems(displaySubsystems); foreach (var d in displaySubsystems) { if (d.running) { display = d; break; } } yield return null; } while (display == null); Debug.Log("RemoveOcclusionMask XRSettings.occlusionMaskScale = 0"); XRSettings.occlusionMaskScale = 0; XRSettings.useOcclusionMesh = false; } }