Rigging Hands


#1

Okay, so I haven’t had to rig a hand this way before, and I’m 90% successful with what I’m doing and figuring out, but I’m stuck on this last part.

I don’t like having 16 controllers on each finger joint and the hand, so I’ve made a hand controller. The palm control is the master and the finger controls around the palm control each digit individually.

My set up for each finger is as follows

Curl - Controls all three digits through SDK
Spread - Controls all three digits through SDK
Twist - Controls all three digits through SDK

A Curl - set up as a direct connection to the joint’s rotation
A Spread - set up as a direct connection to the joint’s rotation
A Twist - set up as a direct connection to the joint’s rotation
B Curl - set up as a direct connection to the joint’s rotation
B Spread - set up as a direct connection to the joint’s rotation
B Twist - set up as a direct connection to the joint’s rotation
C Curl - set up as a direct connection to the joint’s rotation
C Spread - set up as a direct connection to the joint’s rotation
C Twist - set up as a direct connection to the joint’s rotation

The master control is going to be set up through SDKs controlling each individual finger’s SDK, causing a simultaneous Curl, Spread, and Twist.

My problem is that whenever I move the SDK controls and then move an individual joint and then move the SDK again, it resets to the SDK’s position. I understand this and what SDKs are and what they do, but I fear I may be going about this in a way that’s making it a lot harder than it should be.

The reason I’m asking is because I know it’s possible to do it where the master controls and individual joint controls work together.

If you can give me some tips or at least point me to a video where they’re showing how this can be done (I’ve looked almost EVERYWHERE), I would be very grateful.

Thanks for taking the time to read this long message.


#2

hi,
To have 2 system work together you’ll need an extra transform (a group or a joint) which is the parent of each individual bind joint.

I always use joint.
So, this is an example for index finger hierachy:
hand_jnt >> index01_posJnt >> index01_jnt >> index02_posJnt >> index02_jnt >> …and so on.

Where posJnts (or whatever you want to call them) and the actual jnt has the exact same position. The posJnt will be connected or sdk by attributes from the hand_ctrl. And the actual bind joint is controled(orient constraint, parent constraint) by another control curve which its group is parentConstraint to the coresponding posJnt.

so, for each jnt:
index01_jnt >>orient constraint>>control_curve>>parent group>>parentConstraint>>posJnt >>sdk/node connection>>hand_ctrl

When binding, don’t include posJnts.

This sounds confusing lol.
hope this helps!

ps. If you want to avoid using double joint like above, you can just group each ctrl to itself, position it to the joint. When all is done, parent them in proper hierachy order, then parent constriaint the coresponding joint to the control. So you can do your sdk on the group and leave the actual ctrl unconnected for animation.


#3

Thanks for the pointers. I went ahead and just skipped that area. I made a control for each individual hand until I had more time to practice what I’m trying to do on my own.

I do have another problem, though.

Whenever I move anything in the -X direction on the upper body of the character, the right wrist flips out and does a 180. If it’s the +X direction or anything other direction, everything’s perfectly fine.

I have no idea what could be causing that, any clues?


#4

It’s 3 in the morning here and I’m not thinking straight. Found out what it was.

For some reason, the bone (and the controller that it’s oriented to) are pointing in the wrong X direction.

Crap.


#5

hi,
I once ran in to a problem like that. My problem was that the joint was oriented in the opposite direction on the right side, that joint was supposed to constraint to both ik and fk ctrl which, again, have the opposite direction(ik ctrl was in world orientation and fk was the same as the bone which has been mirrored, so it was pointing in the inverse direction to the left side).

This cause the wrist to, kind of, swing around when I switch between ik and fk

My solution was to constraint the bone to a locator that has the exact same orientation as the bone instead, then parent that loc under my ctrl.


#6

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.