PDA

View Full Version : Rotating more than 90 degrees gives weird movement. Why??



White Knight
03-09-2004, 12:30 AM
I finally thought that I was ready to do some serious animation of my object.

While doing an animation:
When I rotate my object's bone on its pitch more than 90 degrees using either LOCAL or WORLD coord-system then somehow I get a weird rotation and its banking and heading gets affected as well.

WHY IS THIS???

However when I use PARENT coord-system I have not experienced this (but then you get the gimbal-lock-prob instead).


I have an example-scene I could mail (if needed by) someone intending to help me.


/White Knight.

White Knight
03-11-2004, 06:32 AM
Fellows... I'm really in need of help on this one... Here I uploaded the scene and object file for easy viewing.

While animating her bone 'Leg High R'...

From frame -1 to 20 I used the LOCAL (or World) coordinate-system. As you can see the the bone rotates in some weird circular motion.
From frame 30 to 50 I used the PARENT coordinate system. - Here it animates straigt forward as it should.

Why do I get this problem using LOCAL (or World) and how do I fix this??

MiniFireDragon
03-11-2004, 01:15 PM
Not looking at the files, it sounds like u need to turn your path from a curve to linear in graph editor. Then it will turn 90 degrees and not 95 and come back to 90.

j_j
03-11-2004, 01:53 PM
I don't know why it does that, but I'll tell you how to fix it.

Go to the rotation input fields and manually enter 0 for heading and bank at frame 20, then keyframe.

http://jnorombaba.com/dl_files/powerp.jpg

Extent
03-13-2004, 04:01 AM
you're experiencing gimbal lock. Unfortunatly, changing the coordinate system only changes the way that you enter the bone/objects rotational values, but the system that LW uses to calculate this position is still 'parent'. I find more often than not using other coord. systems just causes more pain than it solves. I only use them for doing static poses with poor character rigs (because I'm often too lazy to do right ones) Using 'local' or 'global' settings just gives the appearance of that coord. system, but does not actually change the system used to calculate the bones position.

There is still no substitution for setting your rig up the right way to begin with, using null bones and controllers. If you do a search for Gimbal Lock you'll find all kinds of information on what causes it and how to avoid it.

White Knight
03-14-2004, 05:45 AM
Hmm, well thanx but... I don't experience gimbal-lock to be the problem. The problem is that in my "tweener-frames" (in lack of better words), I get a weird circular motion of her leg. In other words, somehow affecting both Banking and Heading even though only the Pitch is supposed to be rotated.

(see attached scene, above, for clarification).

I can't be the only person this has happened to!?!? or?? :p

drfoley
03-14-2004, 09:27 AM
just an observation...if the problem lies in the tweener frames then its solution is probably found in tweaking the Graph Editor.

adjusting things like pre-,post-behavior and splines might be the answer for you.

Thats what I would do next if I were you.

DrFoley

toby
03-14-2004, 08:19 PM
Originally posted by White Knight
Hmm, well thanx but... I don't experience gimbal-lock to be the problem. The problem is that in my "tweener-frames" (in lack of better words), I get a weird circular motion of her leg. In other words, somehow affecting both Banking and Heading even though only the Pitch is supposed to be rotated.


What you don't seem to understand is that rotating a bone on one axis in World coordinates will affect any Parent axis it needs to get to the position you want - if you rotate the Pitch in World coordinates then look in the graph editor, all 3 channels will probably have been affected, and World coordinates doesn't care how it gets from one position to the other.

If you are animating, you have to use Parent coordinates, even if it gives you Gimbal lock. The answer to Gimbal lock is proper rig set-up.

Extent
03-15-2004, 12:45 AM
^^ That's exactly what I mean. Even tho your HPB handles do not appear to be locked, because the parent coord. system is used to calculate the bones position for every frame if the coords. are locked in parent mode they will behave strangely in every other coord. system as well.

I guess the best way to put it is that both 'local' and 'global' coordinate systems are approximations of the said systems. You'll notice that if you change the coord. system that the bone in question will be gimbal locked.

There are really only two solutions here. One is to manually keyframe every frame in the non-standard coord. system so it moves naturally, which defeats the purpose of keyframing and tweening in the first place, and you'ld better hope you're not using motion blur for anything. Or secondly to fix the bone rig and animate exclusively in the parent coord. system. Parent is the only system that will respond consistantly.

Belive me, I've been down that road:p

White Knight
03-18-2004, 11:13 PM
This puzzles me....
If Gimbal-lock is the problem... how come the problem appears only in the "Tweener-frames"?!
My thought would be that there's something that needs to change in the graph-editor...?

If not, I'm sorry guys... these cord-systems confuse me heh...

It also puzzles me that you all say I should animate in PARENT coord-system. I've built the rig based on "Froggy's" marvellous character-rigging-tutorials (and this guy also really seems to know his stuff!) and he claims that one should stick with LOCAL for a couple of reasons I don't recall.
(Yup, I've already tried mailing him but I guess he's busy)


Hmm... Oh well, I'm goanna read your previous messages again now and see if I can make something out of it...


=o)

toby
03-18-2004, 11:35 PM
Keep stabbing at it, it's pretty confusing.

Here's a way to actually see it. While in Parent coordinates,
1. draw a bone on it's side,
2. rotate it up to vertical, Gimbal locking it. There is now only one direction that you can tilt the bone.
3. Switch to World coordinates
4. go to frame 30
5. tilt the bone in the direction that was not possible in parent coordinates (notice that all 3 channels change value)
6. keyframe it at 30.
7. Switch back to Parent mode, scrub the timeslider and watch the arrows on the handles and see what's going on.