Forum Discussion

SubstrateZero's avatar
SubstrateZero
Honored Guest
5 months ago
Solved

Grabbed objects in Meta Interaction SDK move slightly ahead of the controller in Unity

Hi everyone,

I’m working on a small VR throwing game in Unity 6000.0.56f1 using the Meta Core SDK and Meta Interaction SDK. When I grab a ball (with components like Grabbable and Distance Grab Interactable) and move my controller back and forth, the ball does not stay perfectly aligned with the controller.

Interestingly, it doesn’t look like the ball lags behind the controller (which I’ve seen mentioned before). Instead, the ball actually seems to move slightly ahead of the controller’s movement — almost as if the controller is the one “catching up.”

This happens even when I only use Grabbable and Distance Grab Interactable on the ball (no custom scripts), so it seems to come from the way the Interaction SDK handles grabbed objects.

Has anyone run into this before?

Could this be caused by the Rigidbody interpolation setting (Interpolate/Extrapolate) on the ball? Or by the “Kinematic While Selected” option in Grabbable?
Is there a recommended way to make grabbed objects follow the controller more snappily without this “leading ahead” effect?

Any insights or best practices would be greatly appreciated!

Thanks in advance.

  • Hi SubstrateZero

    Thank you very much for the report. I believe you have discovered a bug important to us. So thank you very much, this is not guaranteed to happen but in certain Unity execution orders it seems to replicate.

    While we work in the fix, you can work around it doing the following:

    In your OVRLeftControllerVisual  change the Controller from  the SnytheticControllerData to the LeftInteractions.Controller


    Then in your LeftInteracions/Interactors/ControllerAndNoHand/DistanceGrabInteractor

    - Drag the ControllerPointerPose component from the GrabCenter into the SelectionFrustum

    - Then in your ControllerDistanceGrabInteractor, remove the reference to GrabCenter and make the GrabTarget point to the SelectionFrustum

    Thank you again for reporting this

4 Replies

  • Hello there!

    I would start with checking the collision interaction between the object and your controller collider. If you use IgnoreCollision, you can make it so the colliders cannot interact with one another. You could also achieve this by creating different layers for your grabbable objects and your collisions. 

    You may also want to look into Fixed Timestep if you have not already. This is a good tool for dictating when you want physics calculations to be performed. If you have already set that up, it may be the Interpolate causing the issue by making sure the distance at which the pose the Rigidbody applies is distanced enough from your controller. 

    Any additional information you can share on resolutions you've attempted, or techniques you've used, would be greatly appreciated. 

    If neither of these resolved this, let me know so we may troubleshoot further!

  • Thanks a lot for the detailed suggestions! 🙏

    I’ve gone through all of the options you mentioned:

    - I checked the controller colliders and set up a separate Controller layer to ignore collisions with my Grabbable objects. 
    - I experimented with the Fixed Timestep values (down to 0.01) to increase physics update frequency.

    - I also tested different Rigidbody interpolation modes (None, Interpolate, Extrapolate).

    Unfortunately, none of these changes solved the issue.

    To rule out problems with my own project setup, I also created a completely new project and followed Meta’s Hello World tutorial (link). Even in that clean setup, the grabbed ball still appears to move slightly ahead of the controller, as if the controller is lagging behind.

    So it seems like this behavior is happening even in the most basic Interaction SDK sample.

    Do you know if this is expected behavior in the SDK, or if there’s another setting I might have missed that controls how tightly a grabbed object follows the controller?

    For reference: I've opened up another thread in the unity discussion board, where I also uploaded a video to showcase the problem, you might want to look into that: https://discussions.unity.com/t/grabbed-objects-in-meta-interaction-sdk-move-slightly-ahead-of-the-controller-in-unity/1685287

    Sidenote: In the video it looks kind of extreme, i think thats caused by the recorder, its not that extreme in the usual case

    • GATORSAURU5's avatar
      GATORSAURU5
      Meta Employee

      Thank you for the update and additional information!

      I am having our specialists take a look into this for you and will get back to you when I have an answer!

  • Hi SubstrateZero

    Thank you very much for the report. I believe you have discovered a bug important to us. So thank you very much, this is not guaranteed to happen but in certain Unity execution orders it seems to replicate.

    While we work in the fix, you can work around it doing the following:

    In your OVRLeftControllerVisual  change the Controller from  the SnytheticControllerData to the LeftInteractions.Controller


    Then in your LeftInteracions/Interactors/ControllerAndNoHand/DistanceGrabInteractor

    - Drag the ControllerPointerPose component from the GrabCenter into the SelectionFrustum

    - Then in your ControllerDistanceGrabInteractor, remove the reference to GrabCenter and make the GrabTarget point to the SelectionFrustum

    Thank you again for reporting this

→ Find helpful resources to begin your development journey in Getting Started

→ Get the latest information about HorizonOS development in News & Announcements.

→ Access Start program mentor videos and share knowledge, tutorials, and videos in Community Resources.

→ Get support or provide help in Questions & Discussions.

→ Show off your work in What I’m Building to get feedback and find playtesters.

→ Looking for documentation?  Developer Docs

→ Looking for account support?  Support Center

→ Looking for the previous forum?  Forum Archive

→ Looking to join the Start program? Apply here.

 

Recent Discussions