Structure that contains multiple control points (aka. Keyframe) that are generally interpolated over time. Each segment can be either manually or procedurally generated and customized based on the way you want them to behave during playback.
Curves are used by a vast range of resources; they can be used to animate a character, predefine a camera path or generate procedurally a gradient texture or to control variables. They can be created manually, recorded or directly imported from a COLLADA file.
See Also
Name | Description |
---|---|
keyframe_count | Amount of Keyframe the Curve contains. |
texture | Reference to an existing Texture controlled by the active Curve. |
Name | Description |
---|---|
speed | Controls the playback speed of the current Curve. |
flags | Bit mask used to control the Curve options. |
visible | Toggle on/off the Curve visibility in the editor. |
reverse | Force the Curve playback time be be inverted. |
normalize | Normalize the Keyframe values. |
manual | Indicate that the Curve playback time will be updated through its associated Channel manually by the user. |
Name | Description |
---|---|
AddKeyframe | Add a new Keyframe. |
GetKeyframe | Retrieve a specific Keyframe using its unique id as key. |
GetKeyframeAt | Get an existing Keyframe using its index as key. |
GetKeyframeAtLocation | Use the key playback time of a Keyframe as key to retrieve it. |
GetKeyframeIndex | Retrieve the internal index of Keyframe from the stack. |
RemoveKeyframe | Remove a specific Keyframe from the stack. |
RemoveKeyframeAt | Remove a Keyframe at a specific index. |
AdjustKeyframeHandleLeft | Automatically adjust the position of the left handle of a Keyframe using its index as key. |
AdjustKeyframeHandleRight | Automatically adjust the position of the left handle of a Keyframe using its index as key. |
ShiftSelection | Apply a specific transformation matrix to all subsequent keyframes found after the current Keyframe selection. |
TransformSelection | Apply a specific transformation to all selected keyframes. |
SortKeyframes | Sort all keyframes in chronological order. |
Cleanup | Remove all duplicated keyframes using a custom threshold. |
GetMin | Return the minimum value of evaluated by the Curve. |
GetMax | Return the maximum value of evaluated by the Curve. |
GetStartTime | Retrieve the start time of the Curve. |
GetEndTime | Retrieve the ending time of the Curve. |
GetDuration | Return the total duration of an active Curve. |
GetCycleTime | Return the Curve playback time for a specific CycleMode. |
Evaluate | Manually evaluate the value of the Curve at a specific time and CycleMode. |
EvaluateKeyframe | Retrieve the current Curve Keyframe after evaluation. |
MirrorX | Mirror all keyframes on the X axis (by time). |
MirrorY | Mirror all keyframes on the Y axis (by value). |
SetTexture | Allow you to generate the content of a Texture using the Curve data. |
ToTexture | Use the active Keyframe content of the Curve to generate a Texture. |
ToTexture | Use the active Keyframe content of the Curve to generate a Texture |
Update | Force the Curve to be updated. |
List of all interpolation types. It is generally used to tell the system how to to interpolate from one Keyframe to another. But it is also used at other locations to dictate other type of data interpolation.
kConstant
: The value stay constant until the next entry.kLerp
: Linear interpolation; values are joined by a straight line segment.kCosine
: Cosine interpolation, which provides a smooth transition between adjacent segments.kCubic
: Cubic interpolation which provides true continuity between two segments.kBezier
: Provides a four points Bezier interpolation where the tangent at the end points can be controlled and by two handles.kCatmull
: Catmull-Rom splines; which uses the slope between the previous point and the next as the derivative at the current point.kHermite
: Four points cubic interpolation that provides a higher degree on continuity and optionally allow you to tighten up the curvature by settings its tension. In addition a bias can be specified to twist the curve about the two known points.kParametric
: Parametric curve which provides a low cost smooth interpolation.kBend
: Similar to cosine but smoother.Type of handle to use with four points interpolation such as: kBezier
and kHermite
.
kSmooth
: Keep both left and right handles in sync. for smooth interpolation.kAligned
: Align both the left and the right handle while they are being transformed.kFree
: Allows you to manipulate the left and right handles independently.kAuto
: Adjust both left and right handle to keep the transition between keyframes as smooth as possible. Consequently the left and right handles are moving in sync. and cannot be manipulated independently like when using kFree
type.Bit flags used to represent the different level of selection of a Keyframe.
fSmooth
: Neither the key or the left and right handle is selected.fKeySelected
: Key selection.fLeftHandleSelected
: Left handle selection.fRightHandleSelected
: Right handle selection.Control point that represents a single key on a Curve.
Name | Description |
---|---|
uid | Unique id to internally identify the Keyframe |
Name | Description |
---|---|
interpolation_type | The InterpolationType to use to blend in the current segment with the next. |
handle_type | The HandleType to use based on the current InterpolationType. |
key | The active Keyframe key represented as a Bezier triple. |
tension | Tension factor used to tighten up the curvature (kHermite only). |
bias | Bias used to twist the curvature (kHermite only). |
state | Bit mask representing the active KeyframeState selection state of the key. |
|