Heard avatar creators dont optimize avatars. Maybe force them to and make tutorials on how?

I heard that alot of avatar creators do not optimize their avatars, and share these unoptimized avatars to be used, and end up making others lag in game.

Maybe VRChat can force optimized avatars?

And to make it easy for avatar creators to optimize their avatars, maybe make a series of videos covering how to optimize each individual part of the avatar?

And make it very easy and simple to follow, make it slow, talk slowly and clearly, explain everything clearly, maybe too much, and basically act like the viewer knows nothing, and from that viewpoint make the video really easy and simple to follow.

Would have to be really slow, talk really slowly, move really slowly in Blender, and basically follow and guide so much and make the tutorial so easy and hold their hand and guide them so much in the video that there is no more questions or difficulty in optimizing avatars.

They can just turn their brain off and follow the video to optimize their avatar, such a easy video even people who arent that smart can follow it.

=====

And to make sure avatar creators actually find these videos and follow them, mention them somewhere where they are likely to see them, such as when in the process of uploading a avatar to VRChat or something…instead of them never knowing the video existed and never having seen it.

Optimizing an avatar on VRChat is unfortunately very hard especially on mobile devices. You need to take a lot of time as an avatar creator to manually go into the blend or fbx file to see what needs to be shown and what is not. Some avatars have a lot of meshes as well meaning it decreases the performance ranking.

When I say “especially on mobile devices”, VRChat has strict requirements for avatars on Quest since running shaders is really a difficult thing to do. It’s not a bad idea to use custom shaders even if they’re lightweight, but with a lot of avatars on Quest, they need to be limited or blocked so users don’t end up crashing.

Avatars and assets being unoptimized from stores is both a blessing and a curse for a creator.

You get to mix and match, take what you like, put it together easily when the meshes are all separate. You’re often also given the means to utilize film/animation grade assets to create better game ready assets you like for your needs. It also puts more responsibility on you as a creator for doing the right thing with the way you want your avatar to be.

But you may also be asking amateur creators and users to optimize their avatars before upload.

Let’s understand there are different goals and targets for optimization:

  • Game-ready avatars made for mobile platforms. (Good, Medium, maybe Poor on mobile.)
  • Avatars (Good/Medium) for an event with 80 or 100 users in a small room, or public instances like The Black Cat.
  • Something you wear around 10-15 friends. (Good/Medium, could be semi-optimized Very Poor in some cases.)
  • Photography/film assets (one or few users). An avatar which has the performance cost of 4½ optimized avatars, is Very Poor with six 4K textures for one outfit? Sure!
  • Paripi animation avatars with particle guns, screenspace FX, etc. No limits, you’re in a showcase world and everyone’s there to show your avatar. Go crazy, the avatar performance stats matter less here than your actual framerate.

There is no one solution, it is part intuition and dependent on the project.

How to draw an owl:

  1. Draw some circles.
  2. Draw the rest of the f**king owl.

You’re already in the statistically skilled top 5.4% of computer users or “level 3” in levels of skill if you can handle a multiple step process of installing Unity Editor, registering an account with Unity, acquiring a personal license for Unity Editor, installing VRChat Creator Companion / ALCOM, and open an empty avatar project. Most of the population on planet Earth is unable to succeed in this task (without guidance), even in developed countries.

The four levels of computer skills, and the surprising number of adults who fall short | World Economic Forum

You may also be asking amateur users to spend tens or hundreds of hours away from their social activities on VRChat to learn a new skill (or twenty new skills) that may not translate into their work skills, on the side of regular jobs most adults have on their free time after work, shared with other responsibilities.


A video could tell you to add d4rkAvatarOptimizer to an avatar to optimize it, but the rest is dependent on intuition and understanding your personal needs to get the most out of it.

If I add d4rkAvatarOptimizer on two different avatars in different stages of optimization, I will end up with vastly different results.

Here’s a simple Rusk avatar by komado, after modifying the FX layer to remove gameobject toggles (and some optional texture atlassing to reduce from 6 materials to 3 materials):

Bam. One of the easiest avatars to optimize. Good rated on all platforms. Only a few skills required:

  • Learning how to setup an avatar project and to upload an avatar.
  • Adding d4rkAvatarOptimizer to your project and avatar.
  • Deleting unused FX layers.
  • Optionally merging or deleting physbones.
  • Optionally using MA Mesh Cutter to remove unseen parts of the avatar.

And here’s another more complex avatar, RURU by Rhimaru, with a half dozen outfits provided before doing anything to optimize the FX layer by hand (8 out of 55 FX layers shown):

You open up the OptimizedLayer FX layer and find this monstrosity of a direct blend tree, for all the toggles to understand (and this is quite optimized):

Close-up screenshot of OptimizedLayer

There’s no handholding here, d4rkAvatarOptimizer is not a silver bullet to fix everything for you. You’ll have to figure it out. The effort to optimize that down? Learning several new skills:

  • How to create and setup your own FX controller.
  • How to create a new direct blend tree in your FX controller (preferably).
  • Removing outfits from the project you don’t use.
  • How to record new animation clips (without utilizing VRCFury if you prefer).
  • How to setup UV tile discards in a material.
  • How to setup a mesh for UV tile discards with PA Assign UV Tile, or in Blender.
  • Optionally bake in hue shift customizations into the materials, remove unused decals, etc.

That’s at least six separate videos or articles worth of information. The results:

Clothes DBT


The fishnet mesh from one of the clothes available that you used to cover the top of your body? The high polygon, animation grade body base used?

Performance ranking

RURU picture set 1: A fishnet mesh, on its own transparent material on a Very Poor rated RURU. Results in overdraw for the transparent bits. Incompatible on mobile platforms due to transparency.

It can be a body texture to save triangles and texture memory, in an optimized version. Bake the custom normals from a high poly source into a lower poly body mesh and it’ll still look fine.

Performance ranking

RURU picture set 2: A fishnet texture projected onto the main body material, baked onto the body texture as an opaque “tattoo” (or an optional decal for a toggle) on a Medium rated RURU. Reduced or no overdraw. Compatible on mobile platforms.

Realizing you can optimize something like that with texture projection in Blender and fake transparency onto an opaque texture is intuition. At least two different skills for the fishnet alone, on top of basic understanding of how to use Blender is required. Add at least another four skills required for understanding good topology, how to remove edge loops in Blender, how to export the result from Blender as an FBX file with the correct export settings, and setting up your FBX in Unity for the lower poly body mesh.


You want a Manuka tail and ears from STUDIO JINGO on your avatar, with a custom hair? See the tail in the middle of the texture, ears at the top corners:

That 4K texture (10.7 MB) is costing you a lot of texture memory for the tail alone with wasted UV space.

Learn a new skill in Blender to pack the UVs better onto a 2K texture (2.7 MB), discarding the rest of the hair. No quality loss.

It’s intuition on optimization. The most basic answers on social media you would find is to reduce texture resolution of Manuka_hair texture to 2K, which would also reduce the texture quality on the tail.

Once again, it’s two skills to learn for a texture memory optimization: UV packing, and texture baking.


Those six materials were too much for your Rusk avatar?

Atlas the materials and textures.

This is several different articles/videos worth of skills to learn:

  • Creating your own materials with lilToon or Poiyomi Toon, including understanding main color textures (albedo), masks, possibly normal maps, emissions, etc.
  • How to use global masks in Poiyomi Toon, if you want it to be more optimized on texture memory.
  • Baking some masks into vertex color data onto the avatar FBX in Blender, to reduce texture memory utilization without needing a mask texture with Poiyomi Toon.
  • Stitching textures together with a Unity tool or in an image editor.
  • Laying out the mesh UVs differently in Blender to support your stitched atlas texture and utilizing several UVs in the materials.

There, see how easy it is to “draw an owl” (optimize an avatar)? :joy: “Just figure it out. There’s no playbook. You’re making the playbook. Draw the f**king owl.”

You set a goal for yourself, and find a way to achieve that.

You get better by practicing, doing more things.

It’s a lot of skills to learn.

But I’d take the animation grade, Very Poor rated RURU anytime over the Medium version for photography.


There has been a guide for how to optimize avatars forever.
See: Avatar Optimization Tips | VRChat Creation
Alternatively you can always ask on the VRChat Discord server, there is a channel there dedicated to avatar optimization discussion.

The main issue is that very few people use the guide, because either they don’t know how to actually do the optimization, or they don’t want to bother with it. In some cases people even think they know better and ignore optimization on purpose.

VRChat can’t exactly go out and say “all VERY POOR avatars are now banned” without receiving MAJOR backlash from the whole playerbase. Most of the players that have/use very poorly optimized avatars aren’t doing it by choice, they are just casual users that can’t do the optimization themselves, so they would be very negatively impacted by such a major forced approach.

What VRChat has been doing instead is implementing stuff like the “performance gated instance”, which is a way for them to slowly encourage the playerbase to at least use optimized at big events. This is more subtle, and won’t affect everyone in a negative way. Instead it is for the event organizers to decide if their community wants to force people to use optimized avatars.

Maybe a bit crackpot but I think vrchat might get more buy in from creators if the performance ranks lined up, like maybe make the performance system recognize a quest avatar as poor if it has 36000 polygons and only one material slot. 20202 polygons with 2 material slots should still be VeryPoor under this suggestion

Or maybe go the other way and add a new performance rank on PC for an avatar with less than 20000 polygons. So that when someone makes a mobile friendly version of their avatar they can potentially show that off to PC users in the form of an s tier performance avatar

Personally for my own stuff, I’ve been working on a good ranked PC avatar for myself, and I’ve paired it up with an overly decimated model with zero toggles for the Android and iOS version. The imposter system is nice, but I like to wave and point at people and with the current imposter system you can’t see what the fingers are up to.