[1749] Parent Constraints Desync Physbones Colliders
tracked
Wunder Wulfe
Currently, PhysBones and VRC Parent Constraints work as expected for the most part: when the parented object moves, the child object moves. I use this for component optimization, by combining effects such as body physics into a single component. This seems to work correctly in the editor / SDK, but not in the client.
On the client, the PhysBone does appear to move, as when I stomp my leg, the PhysBones attached to the avatar's thighs do react, with the others not moving along with it. However, when I attempt to interact with the colliders, they are nowhere to be found. Checking the Debug view, the colliders seem to completely ignore the constraints and will not update themselves to the appropriate locations. The bizarre issue is that the rotation of the colliders seems accurate, as well as the position of the bones. It is only the colliders
positions
that are desynchronized. This occurs regardless of whether or not `
Is Animated
` is checked, and I don't believe it would have any effect regardless, given none of the chains are being 'animated,' only their 'roots' or 'parents.'Pictured in the attachments is an example, with PhysBones attached to the upper arm of the avatar.
*This issue may be related to Physbone colliders on animated Physbone chains doesn't move with physbones.*
Log In
Dexvoid
marked this post as
tracked
Dexvoid
Hi, please can you respond with the ID of an avatar affected by this issue as requested below? This report may be closed otherwise. Thanks!
Wunder Wulfe
Dexvoid I can upload a test avatar which I can share, as the avatar used in the images is private and I would rather provide a different avatar.
I am able to provide a
unitypackage
of a test avatar if that works for you.In order to reproduce this behavior, you can follow these exact steps:
- Create a Bone or GameObject which contains various other PhysBone 'roots'
- Assign a PhysBone component to this GameObject
- Attach VRC Parent Constraints to each PhysBone 'root,' such that they are connected to the appropriate corresponding bones on the avatar
An example setup would be to create a Root bone to hold the Left and Right earrings of an avatar, adding a PhysBone component to this Root, and then parenting the earrings to the head or ears using VRC Constraints. Other use cases can be sleeves on a shirt, skirt physics, long hair physics, etc.
The use case demonstrated in my example was optimization of PhysBone components on Quest, by merging multiple roots into the same component. This is because they are unable to be merged into one component naturally as their hierarchy differs.
Behavior of the PhysBones and their physics functions as expected; the PhysBones move whenever the object they are attached to moves. However, the colliders of the PhysBones appear to be stuck in their resting places, ignoring the
VRC Parent Constraint
s.Initial assumptions may be that the collider step is executing before the Parent Constraint step, or that the colliders are not updating with the Parent Constraint information for whatever reason, unlike the actual bones. Regardless, the issue remains as a desynchronization between the PhysBones and their colliders.
Hopefully this should be enough information to describe the issue in detail, but I will be open for any follow-up.
Dexvoid
Wunder Wulfe Thanks very much for the additional info. You can provide us with the ID of any avatar demonstrating this issue - we can access private avatars internally for testing purposes.
Wunder Wulfe
Dexvoid
This should be able to repro the effects; I have not tested it in VR, but the configuration is identical to my private avatar. Use the physbone collider debug in the client to see the issue clearly.
Dexvoid
marked this post as
needs more information
Thanks for your report. Please can you provide the ID of the avatar in your screenshots for verification? There's no need to make it public if it's currently private.
StormRel
marked this post as
tracked