Blender to VRM converter — upload the .blend itself
VTubeMe's Blender to VRM converter turns a rigged Blender character into a VTubing-ready VRM online — the .blend project is opened as it is, the armature and its meshes are taken, Rigify's DEF- deform bones map to the VRM humanoid, and the result shows in a 3D preview before download. No FBX export step, no VRM add-on to install. Upload the .blend file, or zip it with its textures folder: since August 2026 the converter reads Blender projects directly.
The .blend is opened, not imported — and that changes what to check
A .blend is a whole project, so the converter opens it the way Blender would (with the file's own scripts and driver expressions switched off — an upload is untrusted) and then does what you would do by hand before an export: it un-hides collections that are excluded from the view layer, reveals armatures and meshes that were hidden behind a control rig or switched off next to a WIP copy, and leaves cameras, lights and empties out. The glTF exporter only sees what the view layer sees, so without that step a perfectly good character would come back as “no rig” with its skeleton sitting right there in the scene.
Textures are the part that trips most Blender uploads. A .blend usually points at image files on your disk rather than carrying them; opened on our side, those paths lead nowhere and the model would come out grey — so the converter stops with NO_TEXTURES and returns the credit instead. Two ways around it: File → External Data → Pack Resources before saving, so the images travel inside the .blend, or zip the .blend together with its textures folder and upload the .zip. The converter binds the images back by the filenames the materials reference.
Linked libraries do not travel either. If your character is linked or appended from another .blend, the uploaded file carries only the reference, and the scene opens empty — the failure names the missing library. Make the character local (Object → Relations → Make Local, or File → Append it into one file) and upload that.
One project, one character. A .blend that holds several rigged figures — costume variants side by side, a finished character next to an old copy — converts all of them into one file, and the humanoid can only drive one. The converter measures how much of the mesh the mapped skeleton actually moves and refuses below half, rather than delivering an avatar where three quarters of the geometry stands still. Delete the other characters (or move them to a separate file) and upload the one you want.
Rigify control rigs: DEF- bones are the skeleton, the rest is ignored
A Rigify rig ships hundreds of bones, but only the DEF- ones carry skin weights; MCH-, ORG- and the visible controls (torso, hand_ik.L, foot_fk.R) drive them through constraints that a VRM cannot hold. The converter strips the DEF- prefix and maps the deform chain: DEF-spine through DEF-spine.006 become hips, spine, chest, upper chest, neck and head — Rigify's dot-numbered spine is a real chain of seven bones, not Blender's duplicate suffix, and it is read as one. Controls and mechanism bones are left out of the humanoid on purpose.
Shape keys on the meshes come through as VRM expressions where their names say what they are (blink, a, i, u, e, o, joy, angry and the VRoid-style Fcl_ names); a shape key called Key 1 arrives as a blendshape but drives nothing. Face rigs built from bones rather than shape keys do not carry over — that is a limit of the VRM format, not of the file.
Blender bone names the converter maps
The deform skeleton Rigify generates, left side shown; the right side is the same name with .R. Any other naming a Blender character might carry — Mixamo, Unity humanoid, plain Hips/Spine/Head — is read by the same converter; this is the one that is specific to Blender.
| Rigify DEF- bone | VRM humanoid bone |
|---|---|
DEF-spine(pelvis segment) | hips |
DEF-spine.001(lower spine) | spine |
DEF-spine.002(chest) | chest |
DEF-spine.003(upper chest) | upperChest |
DEF-spine.004(neck) | neck |
DEF-spine.005(second neck segment) | in the chain but not in the humanoid — VRM has one neck bone |
DEF-spine.006(head) | head |
DEF-shoulder.L(shoulder) | leftShoulder |
DEF-upper_arm.L(upper arm) | leftUpperArm |
DEF-forearm.L(forearm) | leftLowerArm |
DEF-hand.L(hand) | leftHand |
DEF-thigh.L(thigh) | leftUpperLeg |
DEF-shin.L(shin) | leftLowerLeg |
DEF-foot.L(foot) | leftFoot |
DEF-toe.L(toe) | leftToes |
MCH-torso.parent(mechanism bone) | controls and MCH-/ORG- bones stay out of the humanoid |
Eye.L and Eye.R take the eye slots when the character has them, and the Rigify finger chains (DEF-f_index.01.L through DEF-f_pinky.03.L, thumb included) resolve to the VRM finger bones. Auto-Rig Pro's .x / .l / .r suffixes and a plain Hips/Spine/Head armature are read by the same rules. Verified on the rigify family of our regression corpus (72 bones, 15 of 15 required mapped). On a successful conversion the result panel names the profile it recognized.
What can go wrong with a Blender file
A conversion that cannot finish tells you which of these it hit, and returns the credit — you are never charged for a failure.
NO_TEXTURES
The rig converted, but the images the materials point at are files on your disk, not in the .blend — so every texture is missing and the model would be grey.
Pack Resources (File → External Data) before saving, or zip the .blend with its textures folder and upload the .zip. The credit is returned either way.
IMPORT_FAILED
Blender could not open the file. The two shapes seen so far: a file that is not actually a .blend (renamed, or a .blend1 backup), and a project whose linked library is missing — the message names which.
Save a fresh .blend from Blender (not the .blend1) and, for links, make the character local first.
RIG_DRIVES_LITTLE
The scene holds more than one rigged character, and the mapped skeleton moves less than half of the mesh — the rest would stand still in every animation.
Keep one character and its armature in the file; delete or move the others and upload again.
UNMAPPED_REQUIRED_BONES
The armature converted but some of the 15 required humanoid bones could not be found by name — a hand-built rig with its own naming.
The failure lists what was missing. Rename those bones to any convention the converter knows (Rigify DEF-, Mixamo, Unity humanoid, plain Hips/Spine/Head) and upload again.
Frequently asked questions
Can I convert a .blend file to VRM directly?
Yes. Upload the .blend itself — or a zip of the .blend with its textures folder — and the converter opens the project in Blender on our side, takes the armature and its meshes, maps the bones to the VRM humanoid and writes the VRM. No FBX export and no VRM add-on needed. Files are opened with scripts and driver expressions disabled.
Why did my Blender model come out without textures?
Because a .blend normally references image files by path instead of containing them, and those paths do not exist on our side. The converter refuses with NO_TEXTURES rather than handing over a grey model, and refunds the credit. Use File → External Data → Pack Resources before saving, or upload a zip of the .blend plus its textures folder.
Does the converter understand Rigify rigs?
Yes — the DEF- deform bones. DEF-spine through DEF-spine.006 map to hips, spine, chest, upper chest, neck and head; DEF-shoulder, DEF-upper_arm, DEF-forearm and DEF-hand to the arm; DEF-thigh, DEF-shin, DEF-foot and DEF-toe to the leg; the DEF-f_ finger chains to the fingers. The control bones and MCH-/ORG- mechanism bones are left out of the humanoid deliberately: a VRM has no constraints to drive them with.
My character is hidden in a collection — do I need to unhide it first?
No. The converter un-hides excluded collections and hidden armatures and meshes before exporting, because the glTF exporter only sees the view layer and a working file usually hides things. Cameras, lights and empties are ignored.
Which Blender version does the converter run?
Blender 4.2 LTS. Files saved by older versions open normally. Files saved by a newer Blender are opened on a best-effort basis — Blender reads forward with what it understands — so if a result looks wrong from a 4.3+ file, saving it once from 4.2 is the first thing to try.
Do shape keys become expressions?
When their names say what they are: blink, the a/i/u/e/o vowels, joy/angry/sorrow/fun, and VRoid's Fcl_ names are recognized and wired to the matching VRM expressions. A shape key with a generic name (Key 1) is exported as a blendshape but not bound to an expression. Bone-driven face rigs cannot be converted — VRM expressions are blendshape-based.
What does it cost?
The first conversion is free. After that, credits, and a credit is only spent on a successful conversion: failures refund automatically, and a result that looks wrong in the 3D preview can be refunded self-serve before you download it.
Rigged it on Mixamo instead?
mixamorig: bones are mapped, and motion clips get their own mode.
Still building the character?
The guide compares making it in Blender with the selfie, VRoid and Live2D routes.
Every other input format
The same converter takes FBX, GLB, glTF, .blend and Sketchfab-style ZIPs.
No 3D model at all?
Create a photorealistic VRM avatar from a single selfie instead.