Hey Ben,
Good old Zeth Willie! I love his stuff and went though a bunch of it when I was learning. I have that video favorited! I'd recommend you check out more of his stuff. He's really good at explaning and shows some really handy things.
Parent control
-Child Control Expression Group (drives child control by an expression set on it)
-- Child Control Group (parent constrained to Parent Control)
--- Child Control
Nope. You have to remember that a constraint will not care what is going on with the groups above it's object. It will always match the world position of it's target. So what ever you do to the expression group will be overridden by the constraint group. Switch those two around and you're good.
In my example though I have no expression or any fancy setup. I'm simple scaling the middle control, which then scales the position of it's children. The parent constraint reads this and moves the joints accordingly.
I think you've got it from what I can read. A quick example of a setup that would drive a wrist and finger.
top_GRP (container group)
- ctrls_GRP (container group)
- - l_wristCTRL_GRP (has all the values needed to the control into place, no expressions or constraints)
- - - l_wristCTRLOffset_GRP (zeroed out values, can be used to offset in specific cases like a fist pose etc)
- - - - l_wrist_CTRL (zeroed out control shape)
- - - - - l_finger1CTRL_GRP (has all the values needed to the control into place, no expressions or constraints)
- - - - - - l_finger1CTRLOffset_GRP (zeroed out values, can be used to offset in specific cases like a fist pose etc)
- - - - - - - l_finger1_CTRL (zeroed out control shape)
- skeleton_GRP
- - root_JNT
- - - l_wrist_JNT (constrained by l_wrist_CTRL)
- - - - l_finger1_JNT (constrained by l_finger1_CTRL)
The problem you're running into with the skinning is that you added your control object as well. Only select the joints and you should be fine.
- Mathias