Skip to main content
New Participant
June 19, 2026
Question

[UE5] True simultaneous Hand & Controller tracking without proximity snapping?

  • June 19, 2026
  • 0 replies
  • 56 views

Hi everyone,

I am working on a VR project that requires true simultaneous and independent tracking for both hands and controllers. However, I have run into a native snapping issue that I cannot seem to bypass.

Project Environment:

Device is Quest 3. Running via Link in VR Preview, not deployed as APK yet. Engine version is Unreal Engine 5.7.4. Plugins enabled are Meta XR and Meta XR Interaction SDK. Native OpenXR is disabled.

Current Setup and Behavior:

I followed the official documentation for Multimodal input. In my VRPawn, I use ISDK_HandRigComponent and ISDK_ControllerRigComponent. On BeginPlay, I call Set Simultaneous Hands And Controllers Enabled with the true checkbox.

This successfully prevents the hand tracking from completely shutting down when controllers wake up. However, a major issue occurs when they get close to each other.

If I hold the right controller with my left hand, the hand tracking for both hands remains completely fine. But the moment the headset detects that my right hand is in close proximity or overlapping with the right controller in physical space, even without touching any buttons, the system immediately triggers a fallback, causing the right hand optical tracking to freeze or snap to the controller.

My Goal:

I need the optical hand tracking and the controller tracking to remain strictly independent and non mutually exclusive, even when they overlap in space. For example, the controller is mounted on a physical prop, and the user's hand grabs near it, but the hand mesh should not disappear or be overridden by controller data.

My Questions:

First, is there any way via C++, Blueprints, or Project Settings to completely disable this native proximity trigger or controller driven hand takeover?

Second, is this a known limitation of Oculus Link or PCVR Preview where pose data or multimodal behaviors fall back internally unless deployed natively as an Android APK?

Any insights or workarounds would be greatly appreciated. Thank you!