[Bf-committers] Quaternion interpolation is bumpy/wrong

Tobias Oelgarte tobias.oelgarte at googlemail.com
Tue Apr 24 12:12:33 CEST 2012


I don't know if this is a known issue. But i tried the following. I made 
a key for a leg (restpose),  bended it forward (xrot 90°, second key) 
and moved it to the side (zrot 90°, third key), and then added a fourth 
key (restposition again). What i expected was a smooth motion, but 
instead it goes straight up (to 2nd key) and continues with a curve that 
_bends downward_ to key 3. Given that it has to move trough the keys i 
would have at least expected a "linear" motion (shortest path) from key 
2 to key 3.

The reason for that is the interpolation (bezier curves) between the 
keys. It interpolates every component as a single key. But that isn't 
right for quaternion rotation. Instead it should interpolate between the 
quaternions (at the keys) itself using a slope function to define how 
the interpolation in between keyframes behaves.

I uploaded an example to pasteall.org to illustrate the issue:
http://www.pasteall.org/blend/13505

The left armature (named "wrong") shows what i mean with wrong 
interpolation and the right armature shows how it should look like 
(named "nearly right", because it is impossible to get it right at the 
moment).

Maybe someone has the time to look at the example and to figure out a 
way how it could be correctly implemented. My attempt would be to remove 
the possibility to edit f-curves for quaternions (who does that anyway?) 
and to use another interpolation scheme for this kind of rotations.

Greetings from
Tobias Oelgarte


More information about the Bf-committers mailing list