Rigging problems.

I love CGCookie. Jonathan Williamson has taught me so much, 45 minutes or so at a time, but I’m failing with his character rigging.

As an example, I tried, a few times, to create a hand, and it comes out looking pretty nice. I create a rig suitably complex, and it automatically jumps to problems. Each finger has 3 appropriately sized bones + one for the knuckle. They’re of course placed properly, but when I assign automatic weights, Blender gets it waaaaay off. The last of the ring finger, Ring.003, tries to control the last joint of the index finger, as an example, while the last bone of the Index Finger, Index.003, does nothing. My fingers are evenly spaced in an open-hand position.

I’m kind of shocked it’s getting this so wrong, as his character rigging tutorial showed it guessing far more accurately on a more complex model.

I haven’t looked, but I’m sure there are many hand models which are better, probably with working bone structures, but I need to understand what’s going on here and I don’t. I realize I could just weight-paint it properly, and am working on that, but that will cost me a lot of time in more complex models if I can’t understand where my mistake is.

I appreciate any help.


hand_attach.blend (910 KB)


I’ve had this exact problem in the past, and I immediately knew what was going on. Sometimes when you’re editing a mesh, you or blender can accidentally turn faces inside out. Let me explain:

Every face polygon you create in the mesh has a “normal vector”. This vector is an arrow that tells you which direction the polygon is facing. Normally, all the vectors should be pointing outwards. Go into edit mode. On the right-hand tool tab (hot key ‘n’), under ‘Mesh Display’, under ‘normals’ check ‘face’. Hit ‘z’ to turn everything transparent. See how all the arrows are pointing in on your hand?

To flip them around, select all your mesh (‘a’), and go to the ‘Mesh’ menu ‘Normals’ -> ‘Flip Normals’ (or just ‘ctrl-N’).

The bone-weighting algorithm gets screwed up by polygons with flipped normals, but it should work now. Ok, we don’t want the current bone weights, right? It’s easiest to delete the old armature modifier, and automatically apply a new one: (select your mesh, select a bone, ctrl-p, ‘with automatic-weights’).

Also! I noticed that your armature modifier was below the multi-res modifier on the modifier stack.
It’s important to apply the armature first (move it with the arrows so that it’s at the top of the list), otherwise the smoothing of the multi-res will not work properly (try it and see for yourself).

Hope this helps!