vrchat-community / osc

Files and Info on using OSC to communicate with VRChat
MIT License
234 stars 5 forks source link

osc input for changing avatar #11

Open EIA485 opened 2 years ago

EIA485 commented 2 years ago

Discussed in https://github.com/vrchat-community/osc/discussions/10

Originally posted by **EIA485** February 16, 2022 would love to have a string input sets the user's current avatar based on an avatar id. maybe` /input/SetAvatar`
momo-the-monster commented 2 years ago

This is neat. Might be a nice pair with #5 since they're both communicating the same data.

nil-vr commented 5 months ago

This would allow users to create better avatar management UIs. When you upload avatars, they all go into "Uploaded." If you have VRC+, you can put avatars into up to six groups of up to 50 each. 50 in a group should be plenty for most cases, but the problem becomes that you can't manage the groups effectively.

I've ended up with five groups of public avatars that are grouped by little more than the order in which I saved them. Mostly I use my uploaded avatars, which is worse because they're all in the same group sorted by the order they were uploaded and, for avatar optimization reasons, I have a lot of them. I'd really like to be able to tag avatars or something so I can switch to a particular avatar without having to search through a list for it, without having to unsave all the public avatars and use the limited number of groups to save my own uploaded avatars in more manageable numbers. I'm sure other people have the same problem.

Being able to change avatars via OSC would allow users to experiment with alternative avatar changers with innovative UIs.

There is a vrchat.com API call for changing avatars, but it doesn't really work while VRChat is running, so it's not a viable substitute.

However, if VRChat allows changing to any avatar ID using OSC, inevitably, somebody is going to create an OVR Toolkit plugin or something that allows users to have infinite saved avatars without paying for VRC+. If that's a problem, maybe VRChat refuses to change to avatars that aren't saved. But, I think it's already possible, although less convenient, to do this by bookmarking avatars on the website or going to a world that takes an avatar ID as input and creates a pedestal for it.

Another consideration is that some avatars cause a lot of lag for other users when loaded (crunch compression?). I haven't tried it, but I'd imagine without a rate limit you could effectively freeze everyone in an instance by rapidly changing avatars, which this would simplify.