Function
Functions are used to compute a value over time by interpolation for use in animations. Functions can be either based on a mathematical expression or interpolated using key frames by supplying an array of Points.
Input is time t normalized over [0,1]. Output is f(t) (usually, but not necessarily also between [0,1]. The parameter functions use innerfunction for function composition, usually in the form f ° if, except for 'inverted' function (inverts time) and 'factor' function.
Keyframe based Functions use the given array of Points to compute values. The frame values (i.e. the "x" and "y" coordinates) should be in the range from 0..1.
Function.Type
| Enum name |
Description |
| Key frame animation |
| keyframe |
interpolates linearly between given keyframes (x -> y) |
| Function with no parameters |
| inverted |
f(t)=if(1-t) |
| abs |
f(t)=|t| |
| linear |
f(t)=t |
| Function types with one parameter |
| constant |
f(t)=p1 |
| power |
f(t)=t^p1 |
| sin |
f(t)=sin(2pi * p1 * t) |
| factor |
f(t)=p1*t*if(t) |
| overshoot |
f(t)=1-(p1*(1-t)^2-(1-t))/(p1-1) |
| undershoot |
f(t)=(p1*t^2-t)/(p1-1) |
| Function types with two parameters |
| sigmoid |
|
| switched |
- 1
- if p1<=t<=p2
- 0
- else
|
| timed |
- 0
- if t < p1
- 1
- if t > p1
- (t-p1)/(p2 -p1)
- if t >= p1 and t <= p2
|
| Metafunctions to construct higher order function using innerfunction and metafunctionparam |
| add |
f(t)=innerfuncf(t)+metafunc(t) |
| subtract |
f(t)=innerfuncf(t)-metafunc(t) |
| multiply |
f(t)=innerfuncf(t)*metafunc(t) |
Function.KeyFrame
Function.KeyFrame.Type
| Enum |
Value |
Description |
| relative |
1 |
Time is a percentage of track length (0..1) |
| frame |
2 |
Time is expressed in frames (negative values: time before origin) |
Function.KeyFrame.OriginType
| Enum |
Value |
Description |
| origin_start |
1 |
Time is relative to start |
| origin_end |
2 |
Time is relative to end |