How to Optimize a VRChat Avatar for Better Performance

bugman
bugman
July 16, 2026 8 views

Optimization also improves the chance that other players will see your avatar instead of a fallback.

Choose a Performance Target

VRChat ranks avatars from Excellent to Very Poor. Exceeding the limit in any single category lowers the avatar’s entire rank.

A practical target is Good for PC and Medium or better for mobile.

Limit PC Excellent PC Good Mobile Medium
Triangles 32,000 70,000 15,000
Texture memory 40 MB 75 MB 25 MB
Skinned meshes 1 2 2
Material slots 4 8 2
PhysBone components 4 8 6
Bones 75 150 150

View all current limits in the VRChat Performance Ranks documentation.

Check the SDK Build Panel

Open the VRChat SDK panel in Unity and select the Builder tab.

The SDK displays your avatar’s:

  • Performance rank
  • Triangle count
  • Texture memory
  • Material slots
  • Mesh count
  • PhysBones and contacts
  • Download and uncompressed size

Check this panel regularly while editing. Disabled GameObjects and components still count toward the performance rank, so remove anything you no longer use.

Reduce the Triangle Count

Detailed avatar bases, clothing, hair, and accessories can quickly push the triangle count too high.

You can reduce triangles by:

  • Removing geometry hidden beneath clothing
  • Deleting unused accessories
  • Simplifying tiny details
  • Using Blender’s Decimate modifier carefully
  • Rebuilding complex areas with cleaner topology
  • Baking small details into normal maps

Avoid aggressive automatic decimation around the face, hands, and joints. These areas need enough geometry to deform correctly.

Combine Meshes

Each separate mesh adds rendering work. Skinned meshes are especially expensive.

Where practical, combine the body, clothing, and accessories into fewer skinned meshes using Blender. VRChat recommends aiming for one skinned mesh whenever possible.

Keep separate meshes only when they are genuinely needed for toggles or customization.

Reduce Material Slots

Every material slot generally creates another draw call.

Using the same material in several slots does not solve the problem. The number of slots on the renderer still matters.

To reduce material slots:

  1. Combine compatible textures into an atlas.
  2. Assign one shared material to the combined mesh.
  3. Remove duplicate and unused materials.
  4. Recheck every renderer in Unity.

For PC avatars, staying at eight material slots or fewer allows you to achieve a Good rank.

Optimize Textures

Textures are often the largest source of excessive VRAM usage.

A texture does not need to be 4K just because the original file was supplied at that size. Small accessories may only need a 512px or 1024px texture.

In Unity, select each texture and adjust:

  • Max Size
  • Compression
  • Generate Mip Maps
  • Platform-specific overrides

Use 2K textures only where the extra detail is visible. Combine smaller textures where practical and remove unused maps.

Remember that download size and texture memory are different. A small avatar download can still consume a large amount of VRAM.

Simplify PhysBones

PhysBones make hair, ears, tails, and clothing move naturally, but large setups can become expensive.

Improve them by:

  • Removing PhysBones from details that barely move
  • Shortening unnecessary bone chains
  • Sharing colliders where possible
  • Removing duplicate colliders
  • Reducing the number of affected transforms
  • Avoiding collisions unless they add something useful

Use PhysBones instead of the deprecated Dynamic Bones system.

Remove Unused Bones and Blend Shapes

Unused bones still add skinning work.

Delete bones left behind by removed clothing, accessories, or old PhysBone chains. Merge their weights into a suitable parent bone before deleting them.

You should also remove blend shapes that your avatar never uses. Keep only those required for facial expressions, lip sync, eye movement, and active customization.

Limit Particles, Lights, and Audio

Particles and lights can heavily affect performance in busy instances.

Avoid:

  • Constantly active particle systems
  • Large transparent particles
  • Particle collision when unnecessary
  • Excessive emission effects
  • Real-time lights
  • Long or high-quality audio clips

Mobile avatars cannot use several PC components, including avatar lights and audio sources. Treat these as optional PC features rather than core parts of the avatar.

Create a Separate Mobile Version

Do not upload the full PC avatar directly to Quest, Android, or iOS.

Create a mobile version with:

  • Fewer triangles
  • Fewer materials
  • Smaller textures
  • Simpler shaders
  • Reduced PhysBones
  • Unsupported effects removed

VRChat supports per-platform avatar overrides, allowing optimized PC and mobile versions to share the same avatar ID.

Current maximum avatar sizes are:

Platform Download size Uncompressed size
PC 200 MB 500 MB
Android 10 MB 40 MB

These are upload limits, not optimization targets. Staying far below them gives players a better experience.

Test Before Publishing

Use Build & Test to check the avatar inside VRChat before publishing it.

Look for:

  • Broken animations
  • Missing materials
  • PhysBone clipping
  • Poor mirror performance
  • Excessive texture memory
  • Features that fail on mobile
  • Changes to the SDK performance rank

Test both PC and mobile versions when supporting multiple platforms.

Final Checklist

Before uploading your avatar:

  • Check its performance rank
  • Remove unused objects and components
  • Reduce large textures
  • Merge unnecessary meshes
  • Reduce material slots
  • Simplify PhysBones and colliders
  • Remove unused bones and blend shapes
  • Test animations and toggles
  • Build a separate mobile version
  • Back up the Unity project

Optimization does not mean removing everything that makes an avatar unique. Focus on features players will notice and remove the hidden waste they will not.