VRChat
VRChat avatar
Prepare a rigged humanoid, export PC or Quest, then set up, test and upload in Unity with the VRChat SDK.
Open VRChat exportReading this guide is free. The linked tools explain their own sign-in and usage requirements.
Before you start
- A model you have permission to use, with a supported Humanoid rig. An unrigged GLB must be rigged first.
- VRChat Creator Companion, its supported Unity version and an Avatars project with the SDK installed. Use VCC's current instructions rather than an arbitrary Unity version.
- A VRChat account eligible to upload avatars. SDK account access is separate from your Crateyard account.
-
1
Choose and inspect the character
Have only an idea or image? Create a character in Asset Studio first. Use a full-body neutral pose with separated limbs. Open the model in Mesh Editor to check scale, geometry and materials. Simplify or remesh before rigging; topology changes can require a new rig.
-
2
Rig and check bending
For an unrigged character, choose Auto-Rigger, set the front direction and place the joint markers. Choose five fingers, mitten or none to match the actual mesh. Play an animation and inspect shoulders, elbows, knees and hands. Keep the original model and rigged GLB.
Finger bones alone do not guarantee tracking. Separated fingers, weights, Unity mapping and the user's controllers all matter.
-
3
Export a PC or Quest package
Open the rigged model in Mesh Editor. Choose Export, then VRChat PC or VRChat Quest. Export requires the supported Humanoid bones. Quest export also blocks models above 20,000 measured triangles, uses mobile materials and limits imported textures to 1024 pixels. Check the SDK's full performance report, not just this export limit.
The download includes avatar.fbx, available textures/materials, AvatarExport.json and an editor setup tool. The SDK is not bundled. The package is not an upload or an SDK compatibility guarantee.
-
4
Create the Unity project and import everything
In Creator Companion, create an Avatars project and open it in the supported Unity version. Choose Assets > Import Package > Custom Package and import every asset from the .unitypackage. Let scripts compile. Open Assets/CrateyardAvatar/AvatarScene.unity. If setup does not run automatically, choose Crateyard > VRChat > Build Upload-Ready Avatar.
PC and Quest packages use the same asset paths. Use separate Unity projects or working copies so importing one variant does not overwrite the other.
-
5
Check the rig, descriptor and materials
Select avatar.fbx, inspect the Rig tab and confirm the Avatar is valid and Humanoid. Inspect the generated Avatar.prefab: it should have an SDK3 Avatar Descriptor, PipelineManager, default animation layers and a viewpoint. Adjust the viewpoint between the eyes and check scale and materials. The setup tool refuses to create an upload prefab when Unity's Avatar is invalid.
Configure and test custom expressions, lip sync, eye movement and accessories yourself where needed. Default animation layers do not create custom expression menus or repair the mesh.
-
6
Select Windows or Android
Use Windows for the PC variant. For Quest, install Android build support through the supported Unity setup and switch the project to Android. Recheck all shaders and textures after switching; unsupported PC shaders do not become mobile-compatible just because the target changed.
-
7
Validate, test and publish with the SDK
Open VRChat SDK > Show Control Panel, sign in to your VRChat account and select Builder. Resolve errors and review warnings and the full performance report. Use Build & Test for local checks where the SDK supports it, then Build & Publish. Test bending, hands, viewpoint and materials in VRChat before treating the avatar as finished.
For one cross-platform avatar, the PC and Quest variants must share the same avatar blueprint ID in the PipelineManager. Publish the first variant, then attach the other to that same avatar ID using the SDK workflow. A second independent upload creates a different avatar.
Troubleshooting
Humanoid export is blocked
Open the rigged result, not the original static mesh. Missing required bones must be fixed. Re-rig a copy with Auto-Rigger or inspect and correct an existing rig in Unity; do not rename random bones to bypass the check.
Rigging guideQuest exceeds the triangle limit or has a poor rank
Reduce geometry before rigging and inspect the result. Passing the 20,000-triangle export limit does not guarantee a good rank. Materials, texture memory, bones and additional components also affect performance and visibility.
Inspect performance estimatesThe scene or setup menu is missing
Import all files into a VCC Avatars project. Wait for compilation and fix the first Unity Console error. Confirm the SDK is installed, then run the package's setup menu. Do not install a second SDK from an old package.
Pink materials or missing textures
Check that every package asset was imported, textures are assigned and the shader exists for the selected platform. For Android use supported VRChat mobile shaders. Do not fix a missing shader by ignoring the SDK error.
The rig bends badly or hands do not track
Inspect bone mapping and skin weights. Separate fingers are needed for individual finger bones. Reposition markers and re-rig a copy if necessary. Test with the actual controller configuration; a valid Humanoid rig is not proof of good deformation.
Upload is unavailable or the avatar duplicates
Check SDK login, upload eligibility and Builder errors. For PC/Quest pairing check the PipelineManager blueprint ID. Use the same ID for both platform variants, not two new-avatar uploads.
Crateyard generation and conversion run on our servers; Unity and the VRChat SDK run on your computer. Rigging and export use no app tokens. AI generation and provider usage are separate costs.
Creator Companion setup Official avatar creation guide Official performance ranking Android platform requirements