IK arm with automatic shoulder


#1

In Maya 2014, I am creating an IK setup for the arm which automatically rotates both the clavicle and scapula, so that when the arm is raised overhead, the shoulder also raises. The final setup would have two bones in the shoulder, controlled by set-driven keys. I can’t make it work properly.

Here is simpler setup which has the same problem:

The problem is that connecting the position of the elbow to the rotation of the shoulder creates cyclic dependencies in the IK solver, causing jittery motion when the IK handle is posed.

It is possible to use the IK handle position to drive the shoulder rotation, but this is not anatomically correct: the rotation of the shoulder is not dependent on the position of the wrist, rather it is dependent on the position of the elbow.

This thread discusses using the IK handle position to drive the shoulder rotation (which is as I mentioned anatomically inaccurate):
http://forums.cgsociety.org/archive/index.php/t-92283.html


#2

I’ve solved similar rigging problems by using dummy objects at the joints, and constraining the bones to the dummies. Then you could use expressions (scripting) to cause the dummy objects to react to each other.

I haven’t worked with a rig exactly like yours, but whenever I’ve had cyclic dependency problems I’ve been able to solve them with dummy constraints.


#3

[QUOTE=mbousquet][/QUOTE]

I’ll have to try that out, thanks!


#4

Great, I hope it helps! I just realized I could be clearer about this:

In 3ds max (which it looks like you’re using?) I used the HI Solver to put an IK chain at each joint I want to control. So each IK chain just goes from one bone to the next. Then I put a dummy at each IK chain and link the IK chain to its dummy. Then use parameter wiring to make the dummy objects react to each other, using expressions within the wiring.

If you’re doing an entire arm, you might want to have an overall control object (most likely a dummy near the wrist) that you can pick up and move around to make all the IK chain dummies react.

I’ve also used constraints to keep bones in check, but I think in this case you’re better off with the IK chain / wiring solution.

If you use IK chains, the bones will follow whatever the chains are doing. If the IK chains are linked to dummies, the IK chains will follow whatever you tell the dummies to do. No more cyclic dependencies :slight_smile:


#5

Either max got set-driven-keys and a maya viewport or that is maya :slight_smile:

-Johan


#6

Yeah, I really should have said in the first post that I’m using Maya.

Still, I think those techniques will probably be applicable. Thanks for the more detailed description!


#7

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.