lewisluisao

The mystery of Rigify

Hi there!

I've been trying to apply Rigify to my model.
When I Set parent with automatic weights this alert appeared:

If it's hard to see, it says: "Bone Heat Weighting: failed to find solution for one or more bones."
What doues it mean and how can I fix it?

Thank you in advance!


LA.

  • perhaps ddanpro  can help with this? he tends to understand about bone heat weight and such things...

  • had this a couple times, as far as i'm aware it means it can't assign a bone to a mesh area. typically, this might be due to something such as you placing a bone [or part of it] outside the mesh when positioning it, or not applying a Mirror mod, so that one sideof your mesh doesn't actually exist for the Bone to reference.

  • Bone Heat Failed To Find Solution errors can happen with any armature. It's not caused by or exclusive to Rigify. The error is caused most often by errors in the mesh.


    A few reasons for the error:


    1. Overlapping geometry. The bone heat algorithm cannot "see" the mesh behind the folded geometry and throws the error.

     Fix: Check the mesh for errors. Remove Doubles. Fix intersecting geometry. Or assign weights manually.

    2. Flipped normals. Bone heat works from the inside out. If the faces of the mesh are not facing outward, they are blocking the bone heat.

     Fix: Recalculate Normals. Or assign weights manually.

    3. Unapplied scale on the mesh (scale is not 1,1,1) or differences in scale between the mesh and the armature can cause weighting issues. 

     Fix: Apply the transforms of the mesh before parenting to the armature. Ideally. the mesh and the armature  should have the same origin and the origin should be at the world center.

    One method to find the problem area is to separate the mesh by loose parts. (Select the mesh in Edit Mode, Select all vertices (Hotkey A),  Hotkey P, Loose parts.) After the mesh has been separated, try parenting each mesh to the armature with Automatic Weights. If all parts successfully auto weight correctly, rejoin the separate meshes into a single mesh again.


    I hope that helps.


    Good luck!