PDA

View Full Version : New to riggin Noob question


Kh4rn
08-20-2006, 12:27 PM
hey guys, i often find my characters hands making awkward rotations when animating,
usually the first hand i rigged is fine but the other one seems to rotate in the wrong direction or not exactly how i expected it to rotate.
I know this is a gimble lock problem,
but because i dont really understand it i dont know how fix it or minimize the problem. can anybody qive me a hand here.

thanx, all commments are appreciated.

eek
08-20-2006, 03:36 PM
ok so generally in max rotations, infact transforms are relative to there parent. This is why with arms especially shoulder they break, as there relative to there parent and start with a rotation -90 down to start. (essentially killing an axis)

Luckily you can start the order of precidence i.e the order at which axis' are calculated. So generally we have x y z. So you calculate x, then y then z, but and this is a big but the axis dont all get calculated like quaternions.

So you rotate x 90 degrees, now when you rotate y you infact rotating x too so by rotating y 90 degree x is falling on the same plane as z! you've lost an axis. And now by rotating z your rotating y and x.

Now with planes they get around this with there gyro via using the pitch roll and yaw, and with nasa, they have a 4th rotation which is the parent i.e w > x > y > z which can compensate for gimbal. Gimbal isnt just in cg, mechanical arms get it too and even robots.

But they tend to seperate there rotations out, i.e 4 points parent one after the other each having a single axis to rotate. YZX and XZY seem to work well.

The long and short of it is that is pretty impossible to stop gimbal, you can lessen it but it'll always be there in one form or another. Seperating rotations into euler and having access to each axis' is great for animation but pretty dia for the math around it. Eulers in my mind arent rotations at all, there ways of defining 3 vectors like in a matrix.

And so you could use quats, but you'd have no access to the curves, plus the math of a vector and a angle defined on a 4D hypersphere that is calculated all at once is very complex and hurts my head.

Another way is using a lookat/aim constrainst, and defining the three axis via vectors in position space, this way all you need to affect is position. The twist down the look at is easy to assume too.

So its tough basically, Im constantly looking into ways around it - its the bane of a TD!

Kh4rn
08-20-2006, 11:33 PM
thanx eek

lol i think i have to read that a couple of times, but i now understand the concept behind it.
i was taught that just by changing the axiz order you can minimize this problem, and i never understood the reason behind it. soo i ended up choosing random axis order that would only cause me more problems.
thanx for the help

aaronholly
08-21-2006, 03:31 AM
Without getting into techie talk, one thing you can consider doing is changing the basic design of your wrist. On the human skeleton, the pronation & supination (length-wise) rotations come from the radius/ulna, or forearm twist.

So your length-wise twist (for example, the x-axes) can come from the forearm. This way you can easily avoid gymbal lock issues because you will only be activating 2 rotations from the wrist rather than three.

eek
08-21-2006, 06:46 AM
I read that pixar somewhere have the ability to freeze the transform of axis' mid animation essentially resetting gimbal.

Kh4rn
08-21-2006, 01:14 PM
http://www.yousendit.com/transfer.php?action=check_download&ufid=59F4D5844641C435&key=f901965124f73d1eedb6f6346fa3813c22cfa66d

as you can see, the hand of my character is pointing forward, and i think this might add to the gimble lock problem.

there is a close up of the hand soo you can see the rotation axis. and i set up the Axis order to YZX. in not sure this is the best axis order, but its the one i came up with.


how would you guys set up the Axis rotation for this character?

i think some of my rotation problems are beacause of the way i mirrored the arm.
when i did it i basically set the reference coordinate to world and Use Transform Coordinate Center and then i mirrored.

this is perhaps not the way to mirror bones, any other suggestions??

thanx

PEN
08-21-2006, 01:39 PM
eek, we can kind of do that in max already, just add another controller to the list, you can even change it's axis order if need be. This adds another layer of anmation but I have used this in the past to get around serious gimble problems.

eek
08-21-2006, 05:47 PM
eek, we can kind of do that in max already, just add another controller to the list, you can even change it's axis order if need be. This adds another layer of anmation but I have used this in the past to get around serious gimble problems.


Shsshh... dam my secret!:)

Kh4rn
08-21-2006, 11:17 PM
lol

ok i think i figured out what the problem was,

i was getting what i thought it was gimble lock problems, but actually i mirrored it wrong. so what i was seeing was different rotations.
when i mirrored the arm, i mirrored the whole thing with controllers included. but apparently
the rotations of each one of my cotrollers mirrored incorrectly, what i had to do was unlink controllers and align and link again.

back to gimble lock, i was reading over Pauls Tutorial on Euler Rotation, that really help further understanding, thanx for the detailed explanation.

i found my self animating my hand, just for testing purposes, and looking at Reference Coordite in Gimbal. lol i didnt think it was possible to actuallly loose a rotation axis,
but i understand it now, and i have the proper solution for my axis order.

thanx for all the comments, they were reallly usefull

CGTalk Moderation
08-21-2006, 11:17 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.