Intro
This guide is not intended to cover the very basics of uploading a VRChat avatar, there’s a lot of resources out there for this already. It assumes you’re already familiar with getting a base model into Unity, making changes to it, and uploading it to VRChat.
This guide mainly covers optimisation in Unity directly using non-destructive tools. Although with some avatars, this may not be enough. In those cases, you may need to edit the model directly in Blender, which is not covered in this guide.
Non-Destructive Workflow
Most things I do in my workflow are non-destructive. You can refer to a list of Unity tools for optimisation below, these are generally non-destructive.
Optimisation Tools
Link to original
- ⭐d4rkAvatarOptimizer - Non-destructive automatic avatar optimisation — essential when working with purchased base models. Merges skinned meshes, removes unused stuff.
- Thry’s Avatar Performance Tools - Great tool for finding which textures are eating up your texture memory.
- Prefabulous - Specifically the Delete Polygons component. Can non-destructively delete all polygons affected by a blendshape. Useful on “hide” blendshapes to fully delete them when optimising an avatar.
- Anatawa12’s Avatar Optimizer - Also includes a remove mesh by blendshape option, similar to Prefabulous, along with other remove mesh options. I specifically like the Merge Physbone component, useful for avatars that have like 20 separate hair physbones.
- VRCQuestTools - Easily optimises your avatar to be quest-compatible.
Fixing Optimisation Issues
Too many skinned meshes
Cause:
Avatars are often made up of several different objects, or meshes. Having many of these meshes is bad for performance. Skinned meshes have additional data, like weight painting and blendshapes.
Tools:
Fix:
Simply adding d4rk’s avatar optimizer to your avatar with its default settings is usually enough to resolve this. It has an option to combine skinned meshes into a single mesh. Keep in mind that you cannot usually combine skinned meshes those meshes are have toggles for them, although you can try the “Use Shader Toggles” option if the regular merging is not enough.

You can also manually delete any unused objects from your avatar.
Texture memory / VRAM usage too high
Cause:
Many avatars have default texture settings set way too high. This is even more of an issue with some prefabs that may use 4k textures for tiny details.
Tools:
Fix:
This tool will list all the textures on your avatars and has some one-click fixes to change the compression method which reduces the memory usage.
 
 
Additionally, you can use it to find the textures taking up the most memory. Generally, 4K textures are unnecessary unless they have some fine detail or are atlassed for a large part of your avatar. Lower the texture size in Unity for all your least important textures first.
