Error: Bone heat weighting failed to find solution...

Hello,
I keep getting the “Bone heat weighting failed to find solution”-error when I try to parent a mesh to an armature.

I’ve deleted doubles, fixed normals, added and removed various modifiers. I’m pretty sure it’s because the mesh is asymmetrical, but that’s on purpose and it needs to be this way.

I’ve also tried all Parenting options; the only one that gives the error message is “With Automatic Weights”, but the rest just deform the mesh (bones only move parts of the mesh and weight paint doesn’t seem to be an option).

Is there some way to get around this? E.g. could anyone please link to a way to parent an asymmetrical mesh to an armature?

EDIT: Apparently, it’s not just a matter of symmetri; I cut the mesh in two and added a mirror modifier to see if it made any difference, but it didn’t.

EDIT 2: I found the solution; please see my next post below…

Hard to help without a Blend file.

As pappy says, with out anything to see, we would just be speculating.

Bone heat weighting often fails on meshes where there are overlapping layers in the mesh, such as a character wearing clothing, but we don’t even know from your post if it’s a character you are talking about.

Post a blend.

Thanks guys. I can’t post .blend files for copyright reasons, but I figured out (a little late, I’m afraid :() that it’s perfectly possible to do this:

Just ignore the error message and apply weight paint manually to each group. This solves the problem completely. I was just so focused on the error message and assumed it meant that the mesh wasn’t parented to skeleton. It is; it just needs weight paint…

Here’s something that’s worked for me everytime. I just posted a thread before I saw this one.

  1. Have your mesh/armature as two objects (not parented and with no vertex groups on mesh)

  2. Select mesh (object mode). Separate > Loose Parts.

  3. Shift-select Armature (do shift-LMB in Outliner if you keep selecting mesh by accident).

  4. Parent > Automatic Weights. This gives your meshes vertex groups.

  5. Outliner - click “white arrow” of Armature to Restrict Viewport Selection.

  6. (Important!) Select any object that isn’t Armature (so its name in Outliner is no longer highlighted white).

  7. Select all. Join.

  8. Outliner - Unrestrict viewport selection of Armature.

Pose mode of Armature should now work.

As mentioned above, the issue is normally “loose objects” such as armor that float on top of the model. It can’t seem to weight them properly unless you split everything up before parenting with auto weights. You may have to tweak these afterwards.

Thank you very much Stardog, I’ll look into this tomorrow, it sounds very interesting!

I’ve found out why the automatic parenting failed!

It’s because I scaled the armature DOWN in order to match my character. When I scaled the figure UP instead, it worked perfectly!

Now, I just have to rescale a dozen characters, props and buildings to match the .bvh…:smiley:

Awesome --thanks!