Rotation Animation Problem

Hello, I’m certain everyone has had this problem before.
I feel like it’s a noob issue that i have just never learned the answer to. I was reminded of it in a test animation i just did. I have a character holding a sword and i tried to have him do a Spinning attack so i put him on his toe and animated the armature object in a forward motion.
Then in the pose mode, i animated the root bone so that he would spin 3-5 times or so.

Of course when i play the animation… it only turned once.

So i try and animate a halfway point and it works okay for the first half of the spin. then the second half goes backwards the other way.

No matter how many frames i put and how many ways i try to spin this, it always seems like blender doesn’t understand animation turns like “Rotate along Z 250 Degrees” for example. it would rather just turn backwards the other way because it’s quicker to get to that same end result.

I’ve seen this happen in many other instances though.

Does anyone know how to get blender to easily animate rotations in the correct direction?

Thanks :slight_smile:

Bite off smaller chunks. Blender is taking your start position, then your end position as a rotation transformation. Then it says what is the shortest way to get there, and forget direction YOU turned it? So, the easiest way to instruct Blender is to chop up your rotations so that the shortest way to get there is something Blender understands. Think of it as point A to point B without knowing HOW you got there. Don’t know if you are using quats or eulers. I use quaternion rotation mostly. Normally chop is up in little 80 or 90 degree turns and then change interpolations to linear and then apply a sinusoidal interpolations to the keyframes between start and finish. Usually works well. Clock can probably help you out as well.

Hello! Im making animation where character spins 360degrees and am using quaternions as they seem to be default setup in Blender. I still get unwanted results. My main problem is that its a game animation where start and end pose needs to be same and when I pose the final frame to same as in start the rotations don’t look good(gimbal lock) or something. Anyways it screws up the rotations. I even blocked the animation in very tiny pieces to guide the blender for correct rotations. In Softimage I have done lots of this kind of stuff in past and never had problems. Actually allmost same kind of animation. Is there some work around or trick to avoid the rotation problem. Pose system instead of copying the start frame to the end? Help?

The absolutely foolproof method to get things to spin at, or beyond, 360 degrees is to use an Empty or such like un-rendered object (like another bone perhaps?) and tie the rotation to the movement of the empty either by using a Transformation Constraint or a Driver.

So the Transform - set up the constraint with the Empty as the target moving in say X axis, Click Extrapolate Checkbox - set Min and Max for X Location on the target at 0 and 1, set the Axis so X drives whichever axis the object rotates on, set the lower boxes to Rotation, then set the Max and Min values for the axis (or axes). If you want to rotate the other way, use say 0 and -90 for the Min and Max values.

Then simply move the Empty along the X and the object rotates happily!

For a Driver, just add a Driver to the rotation axis and set the variable to the Empty X Location World Space - then use an expression like var * 10 for example. This will rotate the object 10 Radians for every 1 unit movement of the Empty. Drivers work in Radians and there are 2 * pi Radians in 360 degrees making 1 Radian about 57 degrees (from memory). If you want to work in Radians on your Transform Constrain - enter the Max and Min values as, for example; 10r and Blender will convert 10 Radians to Degrees for you. Don’t forget to check Autorun Python Scripts in User Prefs => File tab or the Drivers won’t work.

See on my website (it’s in my signature) under “Blender Tutorials” => “Spinning Bones, etc.” for more detailed explanation.

You must bear in mind that Blender works from -180 to +180 for rotation unless you do something to stop it, so rotating something 250 degrees will tell Blender to rotate it -70 in all probability and it will snap the short way, hence why I use the Empty route described above.

Cheers, Clock.

PS. Dont animate the Armature Object in Object Mode - just move the Root bone, then spin the root bone as above.

Here’s an example Driver using a Bone to drive the wheel rotation:


Cheers, Clock. :eyebrowlift: