Back to all posts

How to create an avatar from a selfie and upload it to VRChat with Unity

How to create an avatar from a selfie and upload it to VRChat with Unity

To make a VRChat avatar from a photo: create a full-body 3D avatar from a single selfie with MetaPerson Creator (free, in your browser), export it as an FBX with a Humanoid rig and visemes, import it into Unity, add the VRChat SDK Avatar Descriptor, then click Build & Publish. Your first avatar is free — the full step-by-step is below.

Updated July 2026 for VRChat SDK3 and the VRChat Creator Companion (VCC).

The quickest way: turn a selfie into your avatar

The hardest part of making a VRChat avatar used to be modelling and rigging a character. You can skip all of it: upload one front-facing photo to MetaPerson Creator and it generates a recognizable, fully-rigged, full-body 3D avatar in about a minute — right in the browser, no 3D skills needed. Customize the face, hair and outfit, then export a rigged FBX (or GLB) that drops straight into Unity. The first avatar is free.

Because VRChat runs on Unity, a custom avatar still has to be brought in and uploaded through Unity and the VRChat SDK. That part is the same no matter how the model was made — here is the whole flow.

What VRChat needs from an avatar

  • A Humanoid rig — VRChat animates avatars through Unity’s Humanoid rig, so the model has to be set to Humanoid on import.
  • A reasonable polygon count — VRChat rates avatars by a performance rank. Keep the mesh light (use a lower LOD and a low-poly outfit) so your avatar rates well and is shown by default to other players.
  • Visemes for lip sync — a set of mouth blendshapes (visemes) lets VRChat move the avatar’s mouth to your voice. MetaPerson and the Avatar SDK export a compatible visemes_15 set.

Step by step: from avatar to VRChat in Unity

1. Generate the avatar. For the easiest path, create and export it in MetaPerson Creator. If you are a developer and want fine control over LOD, polygon count and blendshapes for VRChat’s performance ranks — or want to generate avatars at scale inside your own app — use the Avatar SDK Unity plugin or Cloud API. In the plugin’s full-body export sample, export an FBX with the LOD parameter raised (to stay under VRChat’s polygon limit) and the visemes_15 blendshapes selected:

Avatar SDK full-body export settings: FBX format, higher LOD and visemes_15 blendshapes for VRChat

Choosing a low-poly outfit version keeps the polygon count down, which helps your VRChat performance rank:

Selecting a low-poly outfit to reduce polygon count for a VRChat avatar

2. Install the VRChat SDK. VRChat provides SDK3 for Avatars to upload custom avatars from Unity. The current way to install it is the free VRChat Creator Companion (VCC), which creates a project with the correct, VRChat-supported version of Unity for you. If you use an unsupported Unity version, the SDK will warn you:

VRChat SDK warning that the current Unity version is not supported

3. Import the FBX. Drag your exported model into the project’s Assets folder (or any subfolder).

Importing the FBX avatar model into the Unity Assets folder

4. Set the rig to Humanoid. Select the model, open the Rig tab and set Animation Type to Humanoid, then Apply.

Setting the imported avatar rig to Humanoid in Unity

5. Extract materials and textures in the model’s Materials tab.

Extracting textures and materials from the avatar model in Unity

6. Put the avatar in the scene. Drag the model prefab into the scene.

Dragging the avatar prefab into the Unity scene

It should look like this:

The 3D avatar shown in the Unity scene view

7. Apply the Avatar SDK materials and shaders for the best look. Copy the plugin’s material resources into your project:

Avatar SDK material and shader resources copied into the Unity project

For the hair, assign HaircutSolidLitMaterial to the haircut mesh:

Assigning the haircut material to the avatar hair mesh in Unity

Then set the texture and the Render Queue to Transparent so the hair renders correctly:

Setting the haircut material render queue to Transparent in Unity

8. Add the VRC Avatar Descriptor. Attach the VRC Avatar Descriptor component to the model so the VRChat SDK recognizes it as an avatar.

Adding the VRC Avatar Descriptor component to the avatar in Unity

9. Set up lip sync. In the Lip Sync section, press Auto Detect! — it maps the visemes you exported.

Auto-detecting visemes for VRChat lip sync in the Avatar Descriptor

10. Build and publish. Open the VRChat SDK tab, press Auto Fix on any warnings,

Auto Fix warnings in the VRChat SDK control panel

then press Build & Publish for Windows,

Build and Publish for Windows button in the VRChat SDK

fill in the avatar name and description, tick the box confirming you own the rights to the model, and click Upload.

Naming the avatar and uploading it to VRChat

That’s it — your avatar is ready to use in VRChat.

The finished custom avatar in VRChat

FAQ

How do I make a VRChat avatar?
Create a full-body 3D avatar (for example from a selfie in MetaPerson Creator), export it as an FBX with a Humanoid rig and visemes, import it into Unity, add the VRChat SDK Avatar Descriptor, and use Build & Publish to upload it to VRChat.

Can I make a VRChat avatar from a photo?
Yes. MetaPerson Creator turns one selfie into a rigged, full-body 3D avatar you can export as FBX and upload to VRChat through Unity. No modelling required.

Is it free?
Your first avatar in MetaPerson Creator is free to create and export. The VRChat SDK and VRChat itself are free as well.

What format does VRChat need?
VRChat imports custom avatars through Unity, so you upload a model (FBX works well) that is set to Unity’s Humanoid rig. Keep the polygon count low for a good performance rank, and include visemes for lip sync.

Do I need Unity to upload a VRChat avatar?
Yes. Uploading a custom avatar to VRChat is done from Unity with the VRChat SDK (installed via the VRChat Creator Companion). Making the avatar, however, can be done outside Unity in MetaPerson Creator.