Attaching hair cards/caps to rig

Hi all! I’ve been using Blender for about 2 years for modeling, but I’m rather new to animation. I’ve had lots of success with simple rigs, but as things get more complex, I’m running into some problems. I am sure it’s something crazy simple, but I can’t figure out why my mesh is deforming at different levels.
For this model, I used simple hair cards to create poly hair. I joined the hair cards to the head mesh with Ctrl-J, then created an armature. I parented the mesh to the armature with automatic weights. Then I went through and checked the weights/weight painted all parts of the head to be 100% under control of the headbone.
However, when I rotate the headbone, the base-mesh pops through the hair card……so it looks terrible. I’ve been searching for a solution and found a bunch of different things to fix it but nothing is working, such as;

a.) Make sure its weight painted correctly – which it is. All hair cards and the entire head is at 100%, red and assigned to the head-bone.
b.) Make sure to apply scale – All scales on the head mesh and eyes are at 1.
c.) Reset the armature by separating by loose parts, then parenting the armature, then deselect the armature and rejoin all parts. I tried this suggestion, but it didn’t work either.
d.) Separate by loose parts and parent the separate parts to the headbone – also didn’t work
e.) Reset all origins – All are centered to mass
f.) Check normals – All are facing the appropriate direction on the hair cards.

Any other ideas on how to fix it?

Weights in Blender are relative. 1.0 to head doesn’t mean fully weighted to head. What if it’s 1.0 head, 0.5 neck? In that case, it’s functionally weighted only two-thirds to the head. But will still show you 1.0, red.

Oh snap! That was it, and thanks for explaining! Now it all makes sense. I had removed all verts from the hair cards from the neck bone, but the mesh behind the hair card still had weight applied to it from the neck only!

Question though - Is there maybe a workflow or some setting that allows vertex weights for specific vertices to be assigned to only 1 bone to avoid this kind of thing? Seems like it would take some time to go through the model and unassign/re-assign vertex groups. Is that what Auto-Normalize is for basically?

It’s not really that hard to fix them. Select all your hair card verts in edit, maybe via material select, ctrl-g -> remove from all groups, select your head group and hit the assign button.

If you want to still be working on other weights and are scared of screwing something up, you could always separate the hair cards to a new object.

1 Like

Ah, ctrl-g did the trick! Thanks for the help, you just saved me hours of frustration!