VRChat is a platform built on avatars, and platforms built on avatars run on a very specific pipeline: a mesh that fits a humanoid rig, a Unity project with the SDK, a descriptor, and a performance rank that decides how many people actually see you. The good news is that the longest part of that pipeline - modelling a character, its outfit and its accessories - is exactly the part generation compresses. The rest of this page is the honest map of what changes and what does not.
The avatar pipeline, honestly
- Mesh - body, head, hair and outfit. Generation territory: this is where the hours used to go.
- Rig - a humanoid armature with sane weights. Blender AI builds the armature from the prompt and runs a test pose; tidy the deformation where the silhouette bends.
- Expression rig - visemes and face-tracking shapes. Manual, per avatar. Budget your evening here, not on the body.
- Descriptor and upload - Unity, SDK, Humanoid rig configuration, build checks. Unchanged by generation, and the SDK checks are your friend.
What to generate, what to hand-finish
Generate broadly, finish narrowly. The pieces that pay for themselves in generation: the base body, alternative outfits, hair as a separate shell, handheld props and accessories. The pieces that still want a human hour: the face shape keys, eye tracking geometry, and any material trickery your platform style depends on.
Describe an avatar so it lands
Avatar prompts are about silhouette and constraints - everything else is detail with a cost. Compare:
| Vague prompt | Prompt that lands |
|---|---|
| a character | A stylised humanoid avatar with an oversized hoodie and short spiky hair, anime proportions, big eyes, neutral A-pose, under 32,000 triangles, one 2048 texture |
| a wolf girl | A friendly wolf-girl avatar, fluffy ears and tail, streetwear outfit, flat-shaded anime style, clean silhouette that reads at small sizes |
| an outfit | A cropped bomber jacket fitted to the current avatar body, open front, soft fabric folds, single 1024 texture |
| a prop | A handheld glowing lantern accessory, stylised, low triangle count, positioned to attach to the right hand bone |
From prompt to FBX in six steps
01 - Block the scene. Put a human-height proxy or a first-draft body in the scene so every later piece has a scale to fit.
02 - Generate the body. One brief, one mesh. Check proportions in front and side views before adding anything.
03 - Dress it. Generate the outfit against the body, keep it as a separate object with its own material slot, so the platform can treat it independently.
04 - Rig and test-pose. Auto-rig, run a test pose, rebalance weights at the shoulders and hips - the two places every cramped avatar pinches.
05 - Budget it. Check triangle count and texture memory against the rank you are aiming for. Decimating a generated mesh is normal work; regenerating at a lower budget is faster.
06 - Export FBX and upload. Origin at zero, transforms applied, armature included, textures packed. Unity and the SDK checks take it from there.
Where it stops
Generation does not upload for you, does not configure visemes, and does not fix a bad brief. Platform rules - what counts as a performance rank, what you are allowed to upload - are VRChat territory and change over time; check them before you build a launch plan around a single avatar. What generation does is remove the modelling queue between "I have an idea for a character" and "that character exists in my scene" - and that is usually the difference between one avatar and a wardrobe.