Looking for something like Penner's Easing Functions, but for larger sets of data

Apr 2019
Hey all,

I work in CG, I'm a technical director (I help build tools that facilitate the work of animators in 3D animated productions, VFX and the like).

We work with keyframes a lot, where we store the transforms of certain objects and parts of characters over time.

These keys are represented by curves, that are easily editable in our software suites.

I'm looking for a way to mathematically take a set of keys and apply "overshoot and settle to them. By this I mean I want to take a simplistic transform from say x:1 to x:1000, and then from the curves that creates, calculate an overshoot that looks like a slowly dampening sine wave.

The data set I'll be operating on is a table of frames versus values. What makes it tough, is that there is not necessarily any data for every frame, you can often have a key at one and then another key ten frames later and nothing in between, but the value is "tweened" (there are various tangent options available).

One dead end I had for this was the use of Penner's Easing functions. But the data they operate on is just two keys, one in and one out -- the result is beautiful and perfect, but not appropriate for a bigger set of keys.

https://easings.net/en#easeOutElastic <-- This is the sort of thing I'm looking to derive.

From a data set like this:

I'm wondering if anyone can help me (even if just to point me to which forum knows this sort of thing best, or just helping me refine my long awkward question).
Last edited by a moderator: