24
$\begingroup$

Here is the link to my Blend file.

Picture: enter image description here

It's nothing special but I cant figure out why I get problems rigging this mesh. It would be important and a great Help! Thanks for reading and I know there are a lot of guides answering this question but I tried all and it doesn't seem to work.

$\endgroup$
3
  • $\begingroup$ Please, can you describe more precisely what is the problem? I can't help you because I don't know what is the issue here... Is it about vertex groups and weight painting? Or about the armature and hierarchy of the bones? Please clarify your question. $\endgroup$ – Polosson Sep 17 '14 at 21:55
  • 1
    $\begingroup$ @Polosson I think the OP tried to parent their mesh to an armature with automatic weights, but it gave an error. $\endgroup$ – gandalf3 Sep 17 '14 at 22:15
  • $\begingroup$ Hey guys! I'd post an answer but I can't. Took me a while to figure out why i was experiencing this. I am targeting UE4, so my scale is super small. This was the issue. I scaled up 100x and the weighting was able to succeed when re-parenting... $\endgroup$ – Brad Goss Apr 22 '20 at 4:55
42
$\begingroup$

I know 2 situations where this problem raises:

  1. When the Object consists of 2 or more separated (not connected) meshes which intersect. This could be solved by fixing the mesh topology, like connecting the intersecting meshes into one single mesh and by fixing your model to avoid the intersecting areas.
  2. When the object has duplicate vertices. This can be solved by removing doubles in Edit Mode ( keyboard shortcut "W" -> Remove Doubles)

I do not know the exact reason why the algorithm fails in these cases and if there are other cases as well where it fails. However it must be related to ambiguities while calculating the weight ratios for the involved vertices.

I took a quick look into the blend file that was provided by the OP. I found the head of the character has many duplicate vertices (about 320). Removing doubles solved the issue in this particular case.

$\endgroup$
4
  • $\begingroup$ As well as duplicate vertices, non-manifold geometry can cause this too. $\endgroup$ – Sazerac Mar 12 '19 at 0:48
  • $\begingroup$ "Remove doubles" fixed the problem for me $\endgroup$ – Jayesh Jun 28 '19 at 14:32
  • 8
    $\begingroup$ Blender 2.81 => Edit Mode / Select / Mesh Menu / Clean Up / Merge by Distance $\endgroup$ – Alex Nolasco Jan 20 '20 at 0:17
  • 2
    $\begingroup$ Cheers OP and @AlexNolasco that saved me. Blender 2.8+ users, "Remove doubles" is renamed to "MERGE BY DISTANCE" as mentioned above! $\endgroup$ – Joehot200 Apr 14 '20 at 13:28
9
$\begingroup$

I removed two duplicate verts from my model and it helped.

When that alone did not fix it, I also removed the Subdiv Modifier and was able to generate automatic weights. I had been able to assign envelope weights beforehand.

$\endgroup$
1
  • 1
    $\begingroup$ you have enough reputation points to edit posts and improve them $\endgroup$ – user2816 Jun 8 '16 at 19:34
3
$\begingroup$

I found that my vertices were too close together once I used the relax option twice from the W menu, right click bottom option in 2.82a, my rig and model paired perfectly, only a little tweak on the head and jaw bone.

$\endgroup$
0
$\begingroup$

As an update to this very useful question, in 2.92 I often run into this after a major sculpting session, when I'm trying to attach my mesh to an armature. Sculpting with dyntopo can give you a crazy vertex count that is easy to screw up, but we have a few new features that can come to the rescue.

"Magic button" methods like the earlier ones tend to come with a price—while triangulation and quads-from-tris works for the most part, sometimes I'll have an irrevocable count of additional triangles in my mesh which it just can't merge into quads. Remesh works reliably, but destroys the sculpture and again, gives me an absolutely unreasonable vertex count.

The Duplicate, Remesh, and Transfer Method

To begin, duplicate the mesh (Select and Shift+D in Object mode). Then, apply Remesh to the duplicate, on sharp, with just enough iterations to cover the region of your armature's control. Don't worry about what it does to your duplicate's geometry. (Feel free to play with the other settings if they work better in your situation.) You will now have a mesh which will reliably animate, but loses all of the character of the original.

The next step is to parent the armature to the new mesh. (Select the mesh, then the armature, then Ctrl+P.) Select "With Automatic Weights". You're now almost done, the new mesh should animate with your armature well.

Go back to your original, and add a Data Transfer modifier. (It should be in the top left corner for 2.92.) What this does is transfer features of a different mesh to their best match in the host mesh. You'll want to check "Vertex Data" and "Vertex Groups", on "Nearest Vertex" for mapping mode. Since ultimately bone weights are just vertex groups, and we've created automatic ones for our duplicated mesh, this will copy them over to our original.

Click "Generate Data Layers" so it does its job. Go make a coffee, it's probably going to be a bit before it's finished. You can verify that it's doing its job afterwards, but expect significant delay, as we still need to do the next step to make it efficient—apply the modifier. Go back to your modifiers in Object mode, select Data Transfer, and hit Ctrl+A to apply it. (Again, expect a wait on this; it's just the result of your very detailed mesh, it is working.)

Once Data Transfer is applied, you can delete your new mesh and work with your original. In my experience, no matter how bad your mesh topology might be, this will do the job for animation.

For as long as the link works, I go over this in detail on my blog.

And if that doesn't work...

You can still get your hands dirty.

The other option is to pick apart your mesh by selecting part of it in edit mode, Shift+D-ing it, and parting by selection (P); and then trying to animate the chunk you duplicated off until you've found the location of the offending geometry. It can take a while, but it will allow you to efficiently identify the problem and make a manual change to fix it. (Remember that there are often multiple issues, not just one.) The remesh-and-transfer method above works in most cases.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.