Skip to main content
Version: Next

Tweak Android Avatars

After testing, you may find some issues in Android avatars. This page describes how to tweak Android avatars with examples.

note

This page requires knowledge of some basic technical terms of Unity.

Transparent Meshes

Android avatars don't support transparent materials. So converted avatars may have issues with transparent materials. For example, facial expressions (blush and pallor), glasses lens, and eyes (cornea).

There are various ways to solve issues though, this page describes three ways.

caution

Do not use shaders which are under VRChat/Mobile/Particles as alternatives for transparent materials. They are for particles, not for avatars.

Refer to Quest Content Limitations.

Edit Animations

In most cases, problematic facial expressions are implemented as blendshapes animationss. So you can suppress them by editing animations.

  1. Find problematic animation clips in your project folder and duplicate them.
  2. Open a duplicated animation clip in the Animation window.
  3. Edit animation parameters not to use problematic blendshapes.
  4. Duplicate the animator controller of the FX layer and open it.
  5. Replace problematic animations with edited animations.
  6. Set the duplicated animator controller to the FX layer.
tip

After creating new animation clips, you can create an Animator Override Controller to override the original animations. VRCQuestTools autocmatically creates new Animator Controller by resolving Animator Override Controllers when converting an avatar. See the reference page for more details.

Delete Transparent Meshes

In some cases, problematic parts of meshes can be removed instead of editing animations. This page just suggests tools to edit meshes.

Tweak Textures

In most cases, problematic facial expressions are implemented as transparent meshes and such meshes are superimposed on the surface of the avatar's face. So you may suppress issues by filling transparent area with avatar's skin color.

Samples

Pallor Face

Edit blendshapes animations or the mesh to suppress pallor.

Models:

PC VersionConverted AvatarTweaked Avatar
Is2_Darkness_PCIs2_Darkness_ConvertIs2_Darkness_Convert

Glasses Lenses

Remove lenses by editing the glasses mesh.

Models:

PC VersionConverted AvatarTweaked Avatar
Kikyo_Glasses_PCKikyo_Glasses_ConvertKikyo_Glasses_Tweak

Eyes (Corneas)

Remove corneas by editing the eyes mesh.

Models:

PC VersionConverted AvatarTweaked Avatar
DP001_Eyes_PCDP001_Eyes_ConvertDP001_Eyes_Tweak

Build Size

In general, textures and meshes are the main factors of build size. Due to 10 MB limit of Android avatars, you may need to reduce the size of textures and meshes.

Omit Unnecessary GameObjects

GameObjects which have EditrOnly tag are not included in the build. This means you can omit unnecessary meshes and materials from your avatar. So you may be able to reduce the build size by tagging unnecessary GameObjects with EditorOnly tag.

EditorOnly_Tag

Tweak Texture Compression Settings

In many cases, textures are the main factor of build size. There are two approaches to reduce the size of textures.

Reduce Texture Resolution

Just reducing texture resolution is the easiest and effective way to reduce the size of textures. You can reduce texture resolution by changing Max Size in the inspector.

Texture Max Size

Tweak Texture Compression Settings

Unity uses ASTC 6x6 block for ASTC compression by default. You can change texture quality by change ASTC block size.

ASTC Block SizeTexture QualitySize
4x4HighLarge
:::
6x6DefaultDefault
:::
12x12LowSmall

You can set ASTC block size in the platform-specific override setting of the inspector. Select the Override for Android checkbox and change Format drop-down menu.

Texture Override