PDA

View Full Version : Maya:Upper arm (bicep) twist help!!


Lungbutter
07-16-2007, 10:12 AM
Hi, this is my first post on CG talk and apologies if my question has been answered elsewhere (I can't find it if it has though!!=))

I'm trying to find an in-depth Maya tutorial or technique to control the twist of a four joint arm both in IK and FK.

I downloaded John Doublestein's "Andy Rig" (very nice) and found his arm setup to work very well, but I was unsure as to how he was controling the upper arm twist. It looked like he was using spline IK but I wasn't sure whether that was just for the arm stretch or not.

I hope someone can help!

prettyh8machine
07-18-2007, 09:55 AM
Here's one for the forearm twist:

http://www.thegnomonworkshop.com/tutorials/arm_ik_fk/arm_ik_fk.html

Or by upper arm twist you meant the bicep twist?

Cheers

Lungbutter
07-18-2007, 10:11 AM
I'm fine with the forearm twist, its the upper arm or bicep twist that I'm having difficulty with.

prettyh8machine
07-18-2007, 10:16 AM
Ok I just checked out Andy's rig. The deal there is that he has around 3 joints for both forearm and bicep twist while the above mentioned link only has one. The technique that Alex Alvarez (in the gnomon link) has presented in his tutorial can work only if there is just one joint for the twist. In case of more joints, as in the Andy's rig, the trick is to distribute the rotation across the 3 (or more) joints that control the twist.

What you do is, you use multiply/divide utility nodes to give only a fraction of the original twist to the twist joints such as the joint nearer to the elbow (or wrist) receives half of the elbow twist, the next twist joint gets half of the previous twist joint and so on and so forth till the values fade to zero. This sounds complex but its basically simple math. I can see that in Andy's rig, addition conditions have been applied so that even if the elbow is not being twisted but its simply bent, some of the twist joints get some rotation for more realistic deformation but that's your choice. The technique remains the same.

I hope that helps.

Cheers

Lungbutter
07-18-2007, 10:25 AM
Hey, thanks for your fast replies, they're very much appreciated.

I still can't quite figure out what is actually driving the twist motion. I understand the rotation fall-off created by using the mulitply/divide nodes but if you drive the twist from the rotation of the upper arm you generally get in to trouble when the arm rotates past its pole.
The Andy rig doesn't seem to have that problem at all.

prettyh8machine
07-19-2007, 06:33 AM
I don't know what exactly you're referring a pole to..but as much as I can see here in Andy's rig, the elbow controller is distributing the twist upwards and when you rotate the shoulder control, it in turns rotates the elbow controller which makes the twist joints rotate. Its hard to explain every single connection in a rather complex rig but I think this is how it works..and theoretically it should work. May be I need to try it out at my end. Do let me know 'rotating past the pole' problem you were talking about.

Cheers

Lungbutter
07-19-2007, 08:31 AM
If for example you duplicate an arm on a character and drive all the rotations of the original from the copied joint but divide the x rotation by two, the driven arm will roll on the x axis when you rotate the control arm across the body or up in the air. Its all to do with the way euler angles work. I just can't quite figure out how the Andy Rig has solved this problem.

prettyh8machine
07-19-2007, 11:52 AM
I'm rather at loss. Can you attach an example?

BoostAbuse
07-23-2007, 04:27 PM
Are you looking for something fairly simple or something quite complex that will deal with a wide variety of scenarios?

For any upper arm twist I always keep a twist joint parented off the clavicle which is the parent of the shoulder. This joint inherits all of the weighting from the shoulder down to roughly where the bicep begins to take form. Anatomically your shoulder doesn't really rotate on a horizontal axis (visual illusion that a lot of people mistake). The elbow twisting is what causes the shift in your upper arm, but your deltoids stay rather fixated in their position (this is where the twist joint comes in to control the weighting).

Usual arm hierarchy goes as follows for my setups:

Clavicle
|_ ShoulderTwist
...|_ Shoulder
...|_BicepMuscle01
...|_BicepMuscle02
...|_TricepMuscle01
...|_TricepMuscle02
...|_Elbow
......|_ForearmTwist01
......|_ForearmTwist02
......|_WristOrient

Ik starts from the ShoulderTwist and goes down to the WristOrient (i use broken hierarchy rigs with point and orient constraints to allow for blending of following motions). Forearm twist is based on a 66/33 % ratio (ForearmTwist01 is the lower forearm joint which takes 66% of the rotations from the wrist, ForearmTwist02 takes 33%). The shoulder twist acts as a support, bicep and tricep muscles are simply there for the supporting geometry and to maintain volume in the areas.

The only time I ever factor in twist movement is when rotating the wrist and elbow in a counter-clockwise direction (this causes your elbow to hinge itself up slightly, raising your triceps and thus causing the deltoids to move with to maintain the movement). For that you can pass rotations to the shoulderTwist if you require.

CGTalk Moderation
07-23-2007, 04:27 PM
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.