advanced non flipping upper arm roll

Report this File

Pic03

Views:

11,682

Updated:

May 04, 2009

Readership Level:

Advanced

Tags:

Maya Versions:

7.x, 8.x, 2008, 2009

Platforms:

irix, linux, mac, windows

Owner:

Language:

English

hello there!


there are a few methods out there creating an upper arm roll, however, none of those methods work in all possible situations, so it's quite normal you will have to switch to one of 2 solutions (like backwards and forward arm or something like this). if you actually animating and come to this area you have a problem...

so for my diploma thesis i came up with the following method i like to share with you.


  1. You will need an upper arm with at least 2 joints, better 3 or 4 to give a nice volume preservation. Then you will need also a driver arm setup for the ik with just 2 bones. The chains must have the same LRA-Orientation for this setup to work.

  2. Create a rotate-plane ik fort he ik-joints. This will be a simple arm-setup to later drive the deform joints.
    click for larger version

  3. Now comes the funky part
    Create another rotate-plane ik for the first deform joint, set the polevector of the rotate-plane ik to 0-0-0. By doing this the ik will remember its orientation and will ony flip if the ik-handle gets to the exact opposite. This trick will ensure the the first deform joint will not self-rotate, it will always keep its original orientation. This ik-setup acts a little bit like a aim-constraint.

  4. Now parent the rp-ik to the first upper-arm joint from the driver ik-chain. By doing the deform-chain will follow the driver-chain without doing the self-rotation. And thats exactly what we wanted: NO SELF ROTATION !!!
    click for larger version

  5. The next step is, you guessed it, to apply the exact self-rotation or roll-difference gradually back to next 3 joints of the deform chain. To measure this difference we create a locator, which we parent under the non-self-rotating first deform-joint. Then we create an orient constraint from the first driver-ik-joint to the locator. This way the locator rotates with driver-chain, but since its parented to the deform-chain, which also rotates with the driver, except for the roll-component, you get the exact rotation difference.
    click for larger version

  6. The last step is take the rotate value of the locator and divide it through the number of deform-joint 1 and connect this value to the defrom-joints self-rotation.


  7. The Setup is finished. You will see it produces very stable results. It will never flip unless the arm is positioned to the opposite, which is for more or less every character impossible.

Hope you liked the Tutorial!

also visit my homepage: http://www.ferstltom.com/

cheers,
ferdo

Comments

Dashboard_avatar
May 26, 2009
Post id: 4984
Report this comment to moderators [SPAM]

Love this! It\'s so simple, but a great solution. Before I was simply duplicating the shoulder joint and feeding Y and Z rotations into it, but leaving out the X(roll) axis, however, flipping can occur during certain extreme poses. This no-flip method is waay better, I am switching to this from now on. Thanks. -Rod

Write a Comment

You must be logged in and have verified your email address to leave a comment. Login or create an account