Keyframe interpolation instability That's me again, struggling with the animation. I created a number of key frames. However, my camera sometimes was doing a full 360 loop interpolating between two close camera positions. So I had to add more and more key frames to stop it. But in the end I have just one odd frame 114, where it suddenly jumps. In the "Transform" panel under "Rotations" I have "Quaternion (WXYZ)"). All the components of the quaternion are quite small and change its sign between these two frames as I see in the "Transform" panel. 

Deleting the key frame 113 causes the camera to roll all over the place again.

Is there a way to stop this behaviour? I also found some posts talking about parenting when creating animations, but I can't understand it exactly. 

I checked how it looks in the Graph editor, but rotations are smooth and no sign change at that frame 114. So as far as I understand Graph Editor has rotation in local coordinates, while the transform panel in global.

The animation is here (model from blendswap, made by TheDuckCow):



EDIT:

Here is an example. This frame is fine.



But next one is not:


Then next one is good again.

Apparently something numerical happens when they all go through zero...

This is what happens if I run the script:
Quaternions must be "normalized" in order to represent an actual orientation.  That means 1=w*w+x*x+y*y+z*z.  Fortunately this gets handled for you, and much of the time the result is close enough to what you want that you don't even notice a problem.

However, if the animation system interpolates a value where all of them are zero, then it probably gets changed to &lt;1,0,0,0> .  The only way to solve that problem is to add a keyframe that has the intermediate orientation, preferably in a normalized form.