Automatic weights not working?

(ZepicZorua) #1


I’m pretty new to Blender, so forgive me if there’s a simple solution to my problem. I have .pmd models and I can import them fine and see all their textures. The problem lies when I try to add bones to them. I make entire skeletons and try to add automatic weights but it doesn’t work. It says Bone Heat Weighting Failed. My friend suggested removing doubles, but that doesn’t work. How may I find a solution to this problem?

(stilltrying) #2

We can guess all day on your unseen mesh, or you can post it to and give us the posted URL so we can help you…

Here’s some guesses for you:
Bone heat weighting failed
Most likely the Laplacian formula has failed because vertices are hidden.

  • intersecting meshes.

  • double vertices (remove doubles)

  • Must be a manifold object (ck for non-manifold no holes, no doubles, no spare parts, no loose edges, etc)

  • Unapplied rotations on scale, location, and rotations with origins not co-located.

  • X axis turned on but armature not symmetrical

  • Make sure you are using deform bones (you didn’t uncheck deform on all bones did you)

  • Are you normals correct? Make sure you have recalculated them and they point outward.

  • Do you have modifiers on your mesh? Apply or delete them or save them as the case may be.

  • Do you have loose parts on your mesh?

  • If a mesh part is not visible to any bone, it will fail.

(coffeemug) #3

Do you have all the bones aligned to the mesh?

I had the same issue one of my models.
I used a rigify generated bones, and tried to auto-weight a biped model (I skipped generating the rig and just use the default bones).

I just want to test the deformation of the torso, so I just scaled, make sure the torso bones aligned to the mesh, and didn’t bother to lineup other bones.

I got the error: Bone Heat Weighting Failed.

After trying to remove doubles (there wasn’t any), I noticed the finger bones was far away from the hand mesh.
When I align them, roughly so that they are somewhat in the correct position, the error goes away.

In my case it seems the issue was the finger bones was too far away from the mesh.
Hope that helps.