Automatic weights not working?

Hello,

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?

We can guess all day on your unseen mesh, or you can post it to http://pasteall.org/blend/ 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.

2 Likes

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.

I have 2 parts in the mesh, the first is the body and the other is the face which does intersect with the body and is already parented while keeping transforms. How can I fix that?

Man you helped me A LOT. I was trying to wight paint by miself for hour and then saw your reply. Eventually my normals were facing inside the mesh and auto weight paint didn’t work correctrly. Again great thanks to you

1 Like

I did all that and its still not working. I am making a ragdoll and I had to clear bone parents and make bone parents meshes (look at the file). I also smoothed the mesh for the fingers and still no result. What could it be?
https://drive.google.com/drive/folders/1SXcfPoOi2X0UBv0ZL1Mcvv0RX4_cr9gW?usp=sharing

Overlapping mesh. Look at your right arm. Vertices too close together under arm. Poor topology in your model will cause intersection of the “rays” for auto weights. Here I just moved your left arm in edit mode and symmetrized it. Fix your mesh. I don’t think you really want three arms on the model.

PS Look at humane rigging your armature the way it is won’t work. Retopo your model and put it in a T or bigger A pose so you can see what you are doing. Eliminate all the tris in your model. Rerig your model (you can use a meta rig in Blender) Watch your spacing on vertices. That should be enough to get you going.

Thank you very much:D

thank you lmao