[Enabled] Beta Release of the Curve API for Animation Authoring

Hello Developers!

We are excited to announce the beta release of the new curve API for animation authoring. This is the first step towards our vision to enable animation curves in Studio. With this new curve-based format, developers can now independently animate translation and rotation components and translations can be further broken down to single channels (i.e. only X, Y or Z components). The underlying curve representation for animations is different from the current keyframing approach, but for this beta release, we are keeping the UI consistent with the dope sheet developers are used to. A full-fledged curve editor will become available in a future release.

Even though keyframing and curve editing is consistent, the new curve-based format is different from the current keyframe-only approach. Existing animations need to be promoted to the new format in order to enable single-channel animations and access the underlying curve-based format. This promotion step is a one-way change and cannot be reversed. When experimenting with this beta release, we recommend developers try it out on test animations or copies of existing ones to avoid accidental overwrites.

To promote an existing keyframe animation to the curve-based format, you need to load an existing animation or create a new one and then select the “Promote to Channel Animations” from the Animation Editor menu options.

Figure 1: Promoting an animation to use the new curve-based representation.

When an animation is successfully promoted to a curve-based format, you will notice the additional options to create single-channel animations for individual components. You can perform all the usual operations such as editing, scaling and deleting keyframes in the editor. It will look and feel like the usual dope sheet editing, but the underlying representation of the animation data is completely new and much more flexible. This will become more evident when we release the curve editor as well.

Figure 2: You will have the option to create a single-channel animation after the promotion step.

On top of the changes that we made for the X, Y and Z components, we have modified the way we handle easing. Each channel is divided into segments, and each of these segments can either be constant, linear, or cubic. You may already be familiar with constant and linear, but cubic is slightly different and is the default setting. When the curve editor becomes available, it will offer complete control over the curve. Bounce and Elastic easings, however, have been removed and replaced with tools to generate equivalent curves.

After selecting two or more keys in a channel, you can select “Generate Curves” in the right-click menu, and then follow the submenus to choose which curves to generate. The Animation Editor will automatically create the keys needed to represent the former Bounce and Elastic interpolations, so you still get the same behavior and flexibility as you have now.

Figure 3: Bounce and elastic easings have been replaced with tools to generate equivalent curves.

What comes next?

We are working on the full-featured curve editor that will be available together with the current dope sheet used for keyframing animation. Soon our animators will have the option to create and edit animations using curves, having more control and options to achieve their creative goals.

Update: 2/16/2022


This topic was automatically opened after 10 minutes.

This is very interesting. I don’t find myself needing to manipulate raw curves often enough for me to use the “full-featured editor” when it exists, but the easing options provided by default look great!
Is there a chance that in the future we could get a way to visualize the curves directly in the plugin? Maybe a quick animation of a frame or an actual curve path?


Could links & API references be provided for the new objects introduced (namely CurveAnimation, FloatCurve, etc.)? I have work that heavily relies on animations, keyframes & poses, and as such getting a clear API reference to read from, rather than having to scour through API dumps, would be great.


This is really really cool. I am not an animator but if I was this would be really useful. I feel like this type of feature will also be really useful in TweenService aswell.


Sounds great but… How can this help in practice? I don’t understand.
Does it only improve the editing, or does it make it possible to make animations better?


It’s a bit weird that you can generate a curve but, you can’t physically see or manipulate said curve. Animations would be far more powerful and versatile if you could manipulate curves or generate your own. It’s cool that it’s being shipped soon but, waiting a bit might have been a smarter play.

Solid stuff otherwise though!

Edit: I’ve been waiting literal years for this to come out. I went far with just making my own and now that y’all are finally doing it, it’s so satisfying to see. Thank you.

Blender is cool and all but, having to go from one platform to the other with animation is annoying. Especially when you really don’t even know if it’ll work properly on Roblox after exporting it.


Awesome, we’ve been waiting on this for years, thank you, the engineering team!


Thanks for the hardwork y’all put into to make these possible!


Absolutely. As stated in the original post, this is only the first step. The next one will be a curve representation in the plug-in.


The most important change is that you can now control components separately, if for instance you want a linear interpolation for Position.X, but a cubic easing on Position.Y. Or if you want Z to have more or less keys than X.

We understand that in its current state, the AnimationClipEditor does not yet offer everything curves are capable of, but this is only the very first of many steps, and we are actively working on the next ones!


WOW THAT IS AWESOME. Just tested a few animations and they got way more life with these, nice release.


Yes, and we discussed a lot internally about releasing it now vs waiting for it to be “done”. But we ultimately decided that since this is completely optional, there was no harm in giving you a quick peek!

The next steps will indeed include a curve representation in the AnimationClipEditor.


Can you take a look at this post?


1 Like

Please add Back Tween! It would be very much appreciated!!!

1 Like

Just tested this and this is REALLY gonna be the future of Roblox animation

We discovered that some developers were experiencing crashes from another feature which this beta requires for KeyframeSequence animations. We will have to temporarily disable this beta until the issue is resolved. We would like to apologize for any inconvenience this may have caused.


As much as I love reading about all these amazing updates, I really wish you’d include a video tutorial to go along with the narrative. I haven’t found a good way to use the animation editor with parts and the API on animation overall isn’t digestible visually. I’m hoping the animation editor becomes more like the old Adobe Flash in regards to tweening and being able to draw motion paths. I love tweenservice and all the body movers but using Animation Editor for all of that and Gui’s would be so much better for me. Sorry if this doesn’t directly align with the tread but I don’t know where else to put it. I’m literally welding body parts to models and making the body parts invisible to animate parts. lol Animation editor is much smoother than everything else I’ve tried. Anways. Can I get a video tutorial on this update?


Looks like Moon animator has some competition.