Forum Discussion

teller.0628's avatar
teller.0628
Honored Guest
2 months ago

Meta Avatar hand diverges from SyntheticHand only while grabbing (controller mode, OVR Plugin path)

I’m seeing a consistent mismatch between the Meta Avatar hand and the SyntheticHand only during grabs. In normal/idle updates they stay perfectly aligned; as soon as I grab a HandGrabInteractable the Avatar hand no longer matches the SyntheticHand pose (fingers/ curl differ and there’s a small offset), as shown in the attached screenshot.

# Environment

  • Unity 6.2 (URP)
  • Meta XR SDK v78 (rolled back to OVR Plugin path; OpenXR package removed)
  • Meta Avatar SDK 40.0.1
  • Using the Sample Input Manager
  • ControllerDrivenHand model (controller mode)
  • Tested on Quest 2/3

# Repro steps

  1. Use controller mode with ControllerDrivenHand.
  2. Add a HandGrabInteractable that has a valid HandGrabPose.
  3. Press to grab.
  4. Result: the SyntheticHand snaps to the correct grab pose (position + joint curls), but the Meta Avatar hand shows different finger bends and a slight transform offset.

# Expected

  • During a grab, the Meta Avatar hand should follow the SyntheticHand joint overrides exactly.
  • I’m not developing a hand-tracking-only game, but rather a controller-based game that uses a Hand Model.
    Therefore, it’s important that the system supports ControllerAndHand type input as well, not just hand-tracking.

# What I’ve tried

  • Referred to this repo: sigmondkukla/interaction-sdk-avatars2-integration
    → It uses Meta Avatar SDK v35, and hand-tracking mode works perfectly with correct hand poses.
    → However, controller mode is not supported in that sample, so I couldn’t verify the same issue there.
  • Switched from OpenXR Plugin to OVR Plugin due to repeated compatibility and pose desync issues.


I’d really appreciate guidance or a minimal sample that demonstrates correct synchronization in this setup. I can share logs or a small repro project if helpful. Thank you!

3 Replies

  • Hello!

    • Can you tell me if you are experiencing this on the OpenXR plugin or the OculusXR plugin?
    • Did you switch to the OculusXR plugin because of this bug, or did you start experiencing this bug after you switched?
    • Once you answer those questions, would you be able to provide a repro project if possible?

     

    Thanks!

    • teller.0628's avatar
      teller.0628
      Honored Guest

      Hi, thanks for your reply!

      1. On the OpenXR plugin, Hand Poses are completely broken. The joint data between the traditional Oculus Hand Pose and OpenXR Hand is quite different, so Hand Poses can’t even be used properly with the OpenXR plugin. In my current project (using the OpenXR plugin), even when switching to the OculusXR plugin, only the Synthetic Hand shows the correct Hand Pose — the Meta Avatar Hand never aligns with it during any kind of interaction (Poke, Grab, etc.).

      2. I didn’t switch plugins because of a specific bug; rather, I moved to the OpenXR plugin since Meta officially recommends it for ongoing projects. Therefore, I’d really like to have Meta Avatar Hand Poses working correctly under OpenXR.

      3. You don’t really need my repo to reproduce the issue — it can be replicated simply by using OpenXR Plugin, Meta Avatar SDK v40.0.1, and Meta Interaction SDK v78 together.
      For reference, in the OpenXR environment, the Sample Input Manager only works when combined with OVR Manager, which I wanted to avoid — so I implemented a custom Input Manager instead. (I noticed most Meta samples use OVR Manager together with XR Origin, so if that’s still the recommended approach, I’d appreciate clarification.)
      Even when testing with the Sample Input Manager, the Hand Pose didn’t work properly — only the Hand position matched the Hand Grab Pose, but the finger pose did not.

      Additionally, I’d appreciate your recommendation on which Meta Avatar Input Manager setup works best in OpenXR environments.

      Thanks again for your time and support!

      • VirtuallyARealDinosaur's avatar
        VirtuallyARealDinosaur
        Community Manager

        Are you using the OvrAvatarManager? I was told that It is a requirement not an option.

        Are you using the OpenXR plugin directly withyour own input implementation, or are you using OpenXR with OvrPlugin together? For OpenXR environment to work, the avatar SDK needs both the OpenXR and the OvrPlugin.

        teller.0628 wrote:

        You don’t really need my repo to reproduce the issue — it can be replicated simply by using OpenXR Plugin, Meta Avatar SDK v40.0.1, and Meta Interaction SDK v78 together.

        We don't need your project to repro, just requesting a simple one that demonstrates the issue.

→ 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