Developer Update - 28 September 2023

How is it questionable? Animator heaviness is common knowledge, and many many people have profiled it and experienced it in person dealing with their own animators.

Not true at all. You can code the lighting to look virtually identical to pixel lighting, the only major difference is that the light coverage is slightly less accurate. I have my own shader as evidence for this. Most people can’t tell the difference between light that is calculated per surface vs calculated based on object origin, i have a toggle for this too; point lights not super close by are hard to distinguish from directional lights.

I was only saying how systems like nanite are not practical for vr due to how heavy it is; my point was that it was pointless.



We all already know that constraints are messed up, there was a big deal made about it previously and it was added to the performance counter because of it, they showed a graph too that the curve goes up. I’m talking about previous unity, i dunno if it’s better in 2022.

https://twitter.com/hfcredddd/status/1547958650899009546
&
Developer Update - 16 February 2023

Avatars existing =/= avatars being controlled by player update when it comes to cpu cost. There’s a lot more cpu stuff going on to manage networking and ik updates and all kinds of other things. You’ll notice that is you just have an avatar or a world with a bunch of avatars that just stand there static, or even animate walking or something, it’s a lot less taking than actual users in a room.

. . . The issue is that due to mods being swept away thanks to EAC we have no proper means of profiling anything in the client anymore, and i didn’t think to recruit some rigorous profiling from people at the time.

Uhh, this isn’t true at all. Maybe not the bulk masses, but a lot of ethot avatars for example, like the gumroad stuff that a lot of typical people who aren’t deep in the community use, are a disaster in their animators. Then the booth people have their own disasters because they keep piling prefabs on - i can feel it, i can see it when they show their graphs or i see the avatars myself if they’re public, they have so many prefabs jammed into them and each adds like 2-5 layers - outfits, erp systems, gogoloco, weapons and toys.

Tupper also supported the issues of animator cost on twitter.

The reality is you cannot expect everyone to change their habits. Nothing anyone can do can change their habits significantly in any direction, you can only nudge it a bit, hence like is aid before, the responsibility falls upon those who make the main systems everyone uses. Even if the biggest costs are user incompetence, you have to mitigate that. This gets vastly worse in non-english speaking parts of the community whomst are not even part of the conversation.

Yes users could improve their avatars significantly, but will they, and will anything you or anyone say convince more than a handful individuals? No.

  • The only option is to make optimized content easier to make than unoptimized content.

You’d be shocked. 20 layers in animator is like the starting point for a lot of avatars. Not that everyone and their dog has it, but it’s enough that you feel it in a majority of places you go.

Well that’s the same mistake almost every game dev makes, they blame the hardware for not being good enough before considering that they could just work harder or hire more hands and put full force into streamlining everything they program, also making sure to avoid “clean code”. But i’ve tried to say before, how countles major companies have dedicated huge amounts of resources and time to get notable performance improvements despite no observable changes to UX besides speed.

Well it’s not just editor profiling, i’ve worked with a number of people who’ve had severe performance issues with their avatars (usually exacerbated locally for themselves), and upon reworking their animators got mind boggling performance improvements after solving issues or having too many active layers - one of the quick and dirty tricks i tell people to use is to weight layers to 0 that aren’t in use, like if you have a layer for a gun, have that weighted off until you actually grab said gun. Setting animation speed to 0 has similar effect but not as clean, and still is checking said layer.

People who have knowledge and know what they are doing can solve a lot of things, but most people don’t and won’t, unless there’s like some actual avatar optimization school course that’s concise and enjoyable to watch and easy to understand that VRChat itself develops and publishes.




…All in all, i apologize for turning this into a huge bloated discussion, so i’ll leave it here. I appreciate the efforts above, it’s definitely respectable, more stuff like this is what we all need, if anything, to pressure vrchat to consider the importance of making stuff like alternatives to constraints if unity doesn’t fix their own. Honestly though, a constraint system shouldn’t bee too complicated/difficult to replicate. It’s mostly just copying transform values/offsets of specified objects or rotating to face specified objects (little more complicated ofc). I’m not well versed in running these types of things, so i usually defer to others for that (which i do in many contexts, both directly like this, and anecdotally, to correlate).