Please help me figure this out

This actually made me think of something that could be super dope.

You could put multiple armatures and meshes on one avatar, but leave the armatures completely separate from each other. Do NOT parent constrain the armatures to each other.

You can inactivate bones the same way you can inactivate meshes in Unity. Use this to disable all bones and meshes except the ones you want to use. Create animations that deactivate and activate bones and meshes accordingly.

If deactivating bones works the same at runtime as deactivating meshes, performance after initially loading the avatar would be the same as an avatar with only one armature and mesh. You could have several completely different models on the same avatar.

If you are swapping between avatars a lot, you would never have to load your own avatar again. However, unless people see you regularly, they will have to load all your avatars every time they see you, even if you only use one while you are there. The downsides:

Your model will be HUGE and will take a long time to load for the first time, and will take up more cache space than other avatars.

All the models would have to use the same FX controller, so if they each also have toggled items or effects, the menu would become very large.

You would not be able to eye animations in the avatar descriptor for more than one model, but you could create custom eye animations in the FX controller.

You would not be able to change your viewpoint to match the height of different sized models without an OSC script.

/r/VRchat Thread Parent Link - i.redd.it