Before/After with Track/Curve GetValue?

On 14/11/2017 at 16:04, xxxxxxxx wrote:

When calling CTrack.GetValue() or CCurve().GetValue(), it doesn't appear that the track Before and After (Continue, Oscillate, Offset Repeat, Repeat) are taken into account.

Is there some way to get the correct value at a specific time with the Before / After? Animating the document isn't an option for me as this is for an expression.

On 15/11/2017 at 01:45, xxxxxxxx wrote:


you can use Remap() to map a point in time outside the track range into a point in time within the track. See also the CTrack Manual.

This obviously won't help to calculate values for CLOOP_CONTINUE. It seems the only build-in functions that can calculate the continued values are the internal functions of the C++ API AnimateTrack() and Animate(). So I'm afraid there are no functions in the Python API able to perform this specific calculation.

You could of course get the tangents of the first or last key of the animation track and perform the calculation yourself.

best wishes,

On 15/11/2017 at 14:38, xxxxxxxx wrote:

Thanks - Remap + some custom coding around Continue seems to have done the trick.

Surprised Remap uses float rather than BaseTime - both from an SDK consistency standpoint and because the Python docs say the arg should be BaseTime. But I've got it sorted out now.