[1724] Physics syncing issue while using world constraint attached to configurable joint.
tracked
Gwemlinǃ
I have an avatar that uses the VRLabs rigidbody launcher prefab (https://github.com/VRLabs/Rigidbody-Launcher) in order to fire a physics object with colliders forward with a high velocity. The expected behavior is that it remains on the path dictated by the configurable joint, and is only influenced by gravity.
This works fine on the machine wearing the avatar, regardless of their setup (desktop, half body, full body). I can confirm that it worked as expected for wearers and observers (besides the trail renderer having strange behaviors during fast rotations) in previous versions of VRchat (Tested most extensively and confirmed working on 07/18/2025). But, with the current version of VRchat, the behavior which observers of the avatar see has changed - instead of moving straight forward like on the wearer's version, the physics object veers erratically around. Through testing, I have found that the issue is most exacerbated for halfbody users, but it is still present on fullbody users and desktop users if they rotate their avatar rapidly.
This specific set of symptoms leads me to believe that the issue is related to the physics object inheriting some root motion despite being on a world constraint, that motion being present during fixed updates, and therefore applied to the velocity of the configurable joint - but, that's entirely conjecture.
Linked below is the avatar, with the system equipped. To best demonstrate / recreate the issue:
- Wear the avatar while using half body.
- Toggle on "Active" and then "Held" using the menu, and hold your right hand up in order to aim the launcher at something in the distance (>20 meters should work fine).
- Use the fist gesture with over 50% gesture weight in the right hand, or the unloaded toggle in the menu to fire the rocket.
- Rotate your head. Bigger motions tend to be more impactful.
- Observe the difference between the trajectory of the rocket for a wearer compared to an observer's perspective.
To describe the exact system in greater detail, I have attached below images of the hierarchy and components present upon the rocket at run time for a local user (the only difference between the local and nonlocal view is that the "World Physics" game object's Rigidbody is animated to have "Rigidbody.IsKinematic" turned on when IsLocal is true, and off otherwise. The rocket (and all effects attached to it) are vrc parent constrained to the "Collider" game object.
Thank you for your time.
Log In
StormRel
tracked