Rigidbodies with Colliders on Avatars Broken
tracked
error.mdl
If you add a gameobject with a rigidbody component to an avatar, it will locally completely spaz out. This is most prominent if you attempt to make yourself a ragdoll or if you attempt to add player-interactable parts to your avatar. I am almost 100% certain that this is caused by the presence of identical colliders on the mirror copy, and the two are fighting with each other. The bug started happening around the time the way mirrors work was overhauled several months ago. I remember talking to Euan around that time and he said something about how colliders were now copied to the mirror copy to make sure that stuff behaved the same way in the mirror as in the real world.
A way you might be able to fix this would be to simply change the collision matrix to prevent the MirrorReflection layer from colliding with anything else. While the collision matrix is defined as a part of each world, from my understanding you guys are already enforcing the collision matrix for the default layers in the client at run time so changing this wouldn't be too hard.
Log In
ArcaneBlackwood
One potential solution is to have a very simple VRC component something like "VRCRigidbodySync". Hitting two birds with one stone. Typically when Rigidbodys are wanted like described, they are an object that the user will likely want to be synced too. The script could disable colliders and remove Rigidbodys in the mirror clone. For people that might not want this behavior a "Local only" property could be added.
kawashirov
I guess It's better to make one extra layer (or two) on avatars special for avatar physics elements, so that extra layers can interact with each other and not interact with Player, Playerlocal, other "internal" layers so no unwanted interference will happen with other physics objects or parts of avatar. This also will allow to control avatar physics more preciesly via trust system. And also allows to interact avatars with each other easily w/o tricks, thats feature community rly wants.
WACOMalt
I'd say the best bet is to just expose the playercollider layer used for the capsule colliders on the playerController that vrchat uses, and let us exclude it from our colliders if we want. The inability to do this ruined one avatar I was working on.
dj3520
This rather recently got much worse for some reason.
error.mdl
I retract my statement about changing the collision matrix of the mirror copies. The mirror copy collision matrix is set to collide with the player. That's how people fly. If you do change it the way I suggested, there's going to be quite a bit of outrage. The use cases for stuff with colliders and rigid-bodies behaving correctly locally is far smaller than the number of people who use them to fly.
Tupper - VRChat Head of Community
error.mdl: Noted! We're aware of the "usage" of this bug.
ACiiL
This makes it sound like collisions from our copy in the mirror is affecting the real self instead of being a transform echo. Really curious to think about the underlying possibilities and the impact of double physics interaction feedbacking.
Tupper - VRChat Head of Community
tracked