When parenting bones to mesh autoweight region is too big

I’ve designed a mesh but after I parent bones to it with automatic weights, the region of mesh that moves when I rotate a bone is too big. The mesh isn’t just bending at the joints but also a big area around them. One example is when i move the head, it gets longer and the whole head bends in the direction i move it. I’m using the human meta rig. Any suggestions.

Note: I keep getting the error [bone heat weighting: failed to find solution for 1 or more bones]


Help.zip (1.55 MB)

Here is one tutorial that deals with Automatic Weight problem. He adds small bones to control Automatic Weight distribution.

Other way to control it is to use Weight Paint. If you select the mesh object and look under Object Data button / Vertex Groups you will discover Automatic Weight created Vertex Group for each and every bone! Go to Weight Paint mode and selecting each Vertex Group will reveal how it assigned the weight. You need to edit the weight there by painting.

I looked through the vertex groups and weights don’t seem to have been assigned(maybe I’m not seeing it when i check). I did try to manually weight a couple and it made the deformation even worse than before.

Had a quick look, still getting the bone weight hassle.

There were 13K doubles in your mesh. Edit > vertices > remove doubles.
You have scaled the meta rig up to 9x and moved it from the origin, My suggestion would be to go the other way and scale your mesh to fit the meta rig, then apply scale on your mesh. Also offset the mesh to fit the rig location at origin.
Try and keep your rig internal to your mesh. Noticed an issue with the lower legs, head.
Have a look at envelope display mode of the armature. Some are blown way out.

My suggestion is to start with a fresh meta rig, edit with x axis mirror, or repose then paste flipped pose and apply pose as rest position to get to your T-pose. This may be quicker than trying to find what’s wrong with the one in your file.

well i tried moving the mesh to the armature as you said, but it wont move. It was made with make human if that matters. Is there an option or setting that’s preventing it from moving?

All the transforms loc / rot / scale are locked. Click on the padlock to unlock.

Well I moved the mesh to a new skeleton rig(untouched at origin), and removed the doubles. I then aligned everything and parented it. The mesh still bends in a bigger way than it should.

Even after removing all the doubles, your mesh has a lot of faces over faces, especially around the face. If you are using automatic bone heat then you probably want to uncheck envelopes deform in the armature modifier ( which you should only have one of.) In my tests no vertex groups are getting auto weighted.

Try fixing your mesh to make it a single skin… or adjust the envelope size of your bones and use envelope deform. Haven’t had issues with the auto weighting myself. I always use the vertex groups method.

Note: you can also apply automatic weight painting this way. Select bones of the armature in pose mode. Select your mesh go into weight painting. The assign auto options in the weight menu will only use the selected bone / bones.

Yep it’s your mesh.

After removing the doubles, select all verts and hit p (separate) > all loose parts. There are 158 or so seperate parts. When i did it character-mesh.038 had the bulk of your mesh and auto weight painted fine.

Thanks, sorry for other post. I thought I was posting to another forum on another site in case no one here could figure my problem out.