Change VRCPickups to sync by hand parenting rather than streaming coordinates
RavenWorks
Currently, based on the way things behave under heavy network traffic, it seems like VRC Pickups are always constantly sending their position and rotation over the network while they're being carried? But VRChat is already sending the bone positions of all the players in the world; why not just send a one-time manual sync of the hand (right or left) that picked up the object, and the object's offset relative to the hand, and then until the object is dropped just apply that with parenting (or at least copy the hand's matrix and apply it to the untransformed offset, same thing) instead of continuing to send the object's whole position and rotation every frame when it's trivial to reconstruct from the hand data that every client already has....
This is implementable in Udon and works fine; it would just be nice if it were how the default VRCPickup system worked too, rather than having to try and recreate such basic functionality to make it more efficient...
Log In
Fax
That's an interesting suggestion!
One challenge with this approach is that the same users can appear as different avatars to different users.
For example:
- User A sees the PC avatar.
- User B sees the Android avatar.
- User C sees the fallback.
- User D sees the impostor.
These avatars can not only look different, but could also be scaled differently. If pickups were synced to their hand, it would cause further inconsistencies related to avatar scale differences.
I'm sure we could think of a few workarounds to these issues - or we could accept the inconsistencies. But ultimately, this means that we probably can't implement this feature without making it an entirely new or optional feature.
RavenWorks
Fax Now that I had not thought of. And I can definitely see why there's games that would really require the specific object position to work right. But to me, the idea that it would sync to the client avatar's hand instead of the host avatar's hand is actually a point in its favor, outside of those specific games? It would look
more
correct, instead of meaning the object floats far away from where their hand seems to be. So even if opting-in makes sense, it definitely still seems desirable.Honestly though, I'm surprised to hear that currently avatars can just be wildly different sizes like that? I'd have expected them to be IKing to fit the head and hands position of the host? How can anyone meaningfully look at each other or point at things if their whole skeleton might be a different scale on the remote machine, and nothing is being done to compensate?