CurveAnimation
Stores animation data in the form of curves for each individual channel to animate.
Memory category | Instances |
---|
Member index 0
Description
CurveAnimation
is a subtype of AnimationClip consumed by Roblox's
animation system. It stores animation data for each animated channel in a rig
as a separate, individual curve. For example, CurveAnimation
stores the
position channel for an articulated joint as a Vector3Curve, and it
might store the rotation channel as a EulerRotationCurve or
RotationCurve.
Structure
CurveAnimation
stores curves in a hierarchical manner, matching the hierarchy
of the structure of Motor6Ds or Bones in the
animated model. Under each CurveAnimation
instance lies a hierarchy of
Folder instances representing animated joints in the model. Under each
such folder instance, several possible instances may exist. An instance named
Position
of type Vector3Curve can drive the local translation of the
Motor6D or Bone on the animated model, while an instance
named Rotation
of type EulerRotationCurve or
RotationCurve can drive the local rotation of the Motor6D or
Bone on the animated model.
Partial matching of hierarchy
You can match partial hierarchies to a model when playing a CurveAnimation
in
Roblox's animation system. This means that not all joints need to be present
in the hierarchy for the existing joints to apply properly.
Furthermore, you can match hierarchies in a "relative" manner. For example,
the first child Folder instance root can be UpperTorso
and
the animation system matches that to any existing sub-hierarchies in the
model.
Animating miscellaneous channels
CurveAnimation
can also animate other numerical values in a model. For
example, you can animate FACS controls for facial animations by creating a
Folder under the CurveAnimation
instance named after an existing
FaceControls instance in the model. Then, to animate individual facial
controllers, you can store individual FloatCurve instances named after
the animated FaceControls property.
Usage when making animations
As with other AnimationClip types such as KeyframeSequence,
you must first upload CurveAnimation
instances to Roblox before playing them.
If you want to preview an animation before uploading it to Roblox,
you can generate a temporary ID using
AnimationClipProvider:RegisterAnimationClip(); this generates a hash
ID that you can use for localized animation testing.
If you want to download the CurveAnimation
corresponding to an existing
uploaded animation using Luau scripts, use
AnimationClipProvider:GetAnimationClipAsync().
History 1
- 498 Add CurveAnimation