Animation Techniques used in Paragon and January Game Jam Theme Announcement - Live From Epic HQ

>> So, You loop from 0 to animation-time-length and using float Value = FRichCurve::Eval(float Time) to evaluate the curve and get the value.

no, I do a binary search on the keys directly. Evaluating the curve is slow, and we assume linear interpolation in between keys. So I just need to find the bounding keys, and do a lerp.
We don’t have that many keys in these animations, so the binary search is pretty fast. It hasn’t shown up on our profiles as something significant.

The basic idea is my distance to the marker is 12 units, I want to find the position in the animation where the distance curve is 12.
I do a binary search for the bounding keys around that value. Let’s say I find Key3 (9) and Key4(13). I then do a lerp to find the correct time in the animation,

Here’s the code for that function, it’s fairly straight forward: