Incorrect interpolation between two Cubic keyframes

After creating an animation on an R15 rig with the help of Inverse Kinematics and making the animation smooth by setting all keyframes Interpolation Mode to Cubic, the rig is not properly interpolating between the two keyframes (between 1:00 and 2:00), causing visual issues in the animation editor.

Video of the incorrect interpolation

Keyframe at 1:00

Keyframe at 2:00

Place file
AO Animations.rbxl (89.3 KB)

The animation in question is in the R15 rig in workspace named Automatic Save.

1 Like

There is a known issue where the cubic easing directions “in” and “out” are swapped, and display differently between the animation editor and the actual playing animation. Can you tell if that is the same issue that you are encountering?

2 Likes

Thanks for the report! We’ll follow up when we have an update for you.

1 Like

It unlikely is, I’m unable to choose the tween direction, it simply shows which type of interpolation I can choose between Linear, Constant and Cubic.

The bug report you sent is from 2020, meaning the animation editor had multiple changes and introduced many new options in-between.

1 Like

Oh you are right! I don’t see all of the options that I used to. The documentation for the plugin seems out of date as well.

1 Like

Hi there, thanks for your report!

This is actually working as intended. The cubic mode attempts to construct cubic curves between successive keys, but sometimes that produces results that differ a lot from a simple linear interpolation, especially when the intervals between the keyframes are not constant.

In your specific case, this is very obvious if you look at the curves generated for the RightUpperLeg:

If you select that key and edit its tangent to remove the overshoot, the result is much better.

The reason the tangent of that key is so steep is because the ACE tries to build cubic curves that are smooth and don’t have “angles” between them. Also, by default, the last keyframe has its tangents set to be horizontal. So, in order to have a cubic curve going through the last 2 keyframes in such a short time, the tangent is pretty steep. If you moved the keyframe earlier (and I’m not saying this is a valid solution for your case), you could see that the slope is much more gentle and there’s no overshoot:

So what is a proper solution? You could edit the tangent manually and make it more horizontal. Note that in this case, there is a pretty strong change of rate between the long, left curve, and the much shorter right curve:

This is exactly what the ACE is trying to avoid. In your animation this is actually desired, but the ACE cannot guess that.

Cheers!

4 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.