Curve Editor: the conversion from quaternions to Euler angles has no way back
The curve editor gives per-axis control and interpolation tangents. Before opening it, an irreversible decision: once converted to Euler angles, the quaternions do not come back.
Produced with AI from the sources cited below, and checked by automated verification against those same sources. No person read this text before publication. Editorial Policy

The Curve Editor is the tool that separates good animation from animation with potential in Roblox. It gives per-axis control and interpolation tangents — the same vocabulary as any professional animation software.
And it has an entrance with an irreversible decision, written in a warning box almost everybody closes without reading.
The problem
What it is: a curve-based animation editing interface, inside the animation editor, that lets you see and modify how the rig's position and orientation change between keyframes.
The main gain is in one sentence: it lets you define independent tracks for the X, Y and Z angles. In the dope sheet, a keyframe is the whole orientation; on a curve, each axis has its own line, and you can adjust one without touching the others.
There is also a reading gain that saves time. Instead of dragging the scrubber frame by frame to see how things change, the editor shows the values through rulers — the position one to the left of the timeline, the rotation one to the right.
And you can switch between the dope sheet and the curve editor at any time. That sentence is true and it is the origin of the problem: it suggests switching is reversible. Switching is. The conversion is not.
Step by step
The correct order has four steps, and the first two are the ones almost everybody skips.
1. Open the settings. The icon is in the top right corner of the editor window.
2. Choose the rotation type. In the menu, under Default Rotation Type, choose between Euler angles and quaternions. The choice becomes the default rotation type for future projects too — so it is worth deciding calmly, once.
3. Open the Curve Editor. The icon is in the top left corner of the timeline.
4. Confirm. A window appears warning that the KeyframeSequence clip will become a CurveAnimation clip.
Anyone who does step 3 before steps 1 and 2 accepts the default without knowing they chose — and that is where the next section happens.
Understanding interpolation. Interpolation is the filling in of values between keyframes, and it is what lets the rig animate smoothly from one orientation to another instead of jumping.
The two types interpolate differently, and that changes how the graph reads:
- A Euler curve interpolates between the values of each keyframe. The height of each keyframe represents the orientation's value over time. It is a continuous graph, like any animation curve.
- A quaternion curve interpolates from 0 to 1 over a defined time. Each segment represents the orientation changing between keyframes, and the line shows the interpolation. The graph is a sequence of segments, not a single curve.
Tangents. The editor offers tangents — handles that adjust the interpolation before or after a keyframe.
Their distribution differs: a Euler curve has a tangent before and after the keyframe; a quaternion curve has one at the start and one at the end of the segment.
And the convention is easy to invert mentally: the leading tangent controls the interpolation after the keyframe, and the trailing one controls the interpolation before it.
Why there are two rotation types. It is worth understanding where the choice comes from, because it explains everything else.
A quaternion describes an orientation as a single block, with no separate axes. It is precise, it does not suffer from gimbal lock, and it interpolates along the shortest path between two orientations. The price is that it cannot be edited per axis: there is no "move only the wrist's twist".
A Euler angle describes the same orientation as three numbers — one per axis. That is what allows independent X, Y and Z tracks, and it is what makes the curve editor useful. The price is gimbal lock, which happens when two axes align and a degree of freedom disappears.
Neither is better. One is better for editing, the other for preserving — and the step 2 decision is exactly that.
The artifact
The document below puts the decision in checklist form, with the correct order of the four steps and a table comparing the two rotation types.
The table exists because the choice is not a matter of technical preference — it is a concrete trade between control and fidelity, and the artifact summarises it in two lines at the end.
One detail of the workflow is worth recording because it misleads: the documentation says you can switch between the dope sheet and the curve editor at any time, and that is true. What is not reversible is the clip conversion — the KeyframeSequence becoming a CurveAnimation. Switching the view after that is still free; what was lost was lost the first time it was opened.
Common mistakes
The mistake is opening the Curve Editor on a finished animation, without choosing the rotation type first.
The mechanism is written in the documentation, and it is precise: Studio converts quaternions into Euler angles automatically when opening the Curve Editor. And right afterwards comes the sentence that defines the gravity: once quaternions are converted into Euler angle tracks, there is no way back.
What you lose is not obvious at the time, and that is what makes the mistake expensive. Since KeyframeSequence works in quaternions and curve animation works in Euler by default, the animation may look slightly different between keyframes — and the difference is larger if any Euler angle comes close to gimbal lock.
Read carefully what changes: between the keyframes. The poses themselves stay correct. What changes is the path between them, which is exactly what nobody checks after converting — because the eye goes to the poses, and the poses are there.
The practical result is an animation that became subtly worse, in a way you cannot name, in a file that cannot go back to what it was.
The alternative exists and is on the same page: if you set the rotation type to quaternion before converting, the conversion to curves preserves the quaternions and the animation stays the same.
So the rule is simple: a finished animation that cannot change goes in as quaternion. An animation under construction, where per-axis control is worth more, goes in as Euler — on purpose, knowing what you are trading.
The second mistake is about quaternion tangents. It is common to adjust a tangent expecting to change where the movement starts or ends, and nothing happens at the ends. The reason is in the documentation: however much you adjust each tangent, each segment always starts at 0 and ends at 1. The tangent changes the path, not the endpoints.
And there is a detail of the quaternion graph that confuses on first reading: although each segment is disconnected from the next, the two keyframes within the same frame always represent the same orientation. The visual discontinuity is not a discontinuity in the movement.
It is also worth knowing how to read the graph before touching it, because the two types read differently and confusing them leads to adjustments in the wrong place. On a Euler curve, look at the height: it is the orientation's value, and a line going up is an angle increasing. On a quaternion one, look at the segment: each is the transition between two keyframes, and the shape of the line inside it is the speed of that transition.
Next step
With the rotation type decided, the real gain comes from the tangents — and it shows up fast in one specific place: at the ends of the animation.
Movement that starts and stops abruptly is the most common defect of animation made only in the dope sheet, because the dope sheet gives no tool for it beyond the ready-made easing modes. A tangent adjusted on the way in and another on the way out solve what five more keyframes do not.
One more habit worth adopting before touching anything: give the converted clip a different name from the original. The conversion happens in place, and a file called the same thing in the same folder is the fastest way to lose track of which version still holds the quaternions. Naming the converted one explicitly — with the rotation type in the name, even — costs nothing and answers the question six months later.
The exercise: take a simple, finished animation, make a copy, choose quaternion in the settings menu, open the Curve Editor and touch only the tangents of the first and last keyframes. It is the cheapest change the curve editor offers, and it is usually the most visible.
And, before anything else: a copy. The conversion is irreversible, and the original file is the only thing that answers "what was it like before?".
Sources
- Curve Editor | Documentation - Roblox Creator Hub — checked on
Ready-to-use artifact
CURVE EDITOR — the decision that comes BEFORE opening it. Checked on 23/09/2026.
!! IRREVERSIBLE. Once converted from quaternions to Euler angle tracks,
THERE IS NO WAY BACK. Decide beforehand, not afterwards.
== THE CORRECT ORDER ==
1. [ ] SETTINGS icon, top RIGHT corner of the editor
2. [ ] Default Rotation Type > choose Euler Angles OR Quaternions
^ the choice becomes the DEFAULT for future projects too
3. [ ] only THEN: Curve Editor icon, top LEFT corner of the timeline
4. [ ] confirm the window warning that the KeyframeSequence clip will
become a CurveAnimation clip
Anyone doing 3 before 1 and 2 accepts the default without knowing they chose.
== WHICH TO CHOOSE ==
| Criterion | EULER angles | QUATERNIONS |
|-----------------------------------|-------------------------|-----------------------|
| independent tracks per axis | YES (X, Y, Z separate) | no |
| does the animation change? | IT CAN CHANGE | it does NOT change |
| gimbal lock | a risk | no risk |
| tangents per keyframe | 2 (before and after) | 2 per SEGMENT |
| reading the graph | height = the orientation| segment = the change |
| | value over time | between keyframes |
| interpolation | between the VALUES of | from 0 to 1 over a |
| | each keyframe | defined time |
EULER -> choose it when PER-AXIS CONTROL matters more than
fidelity to what was already animated.
QUATERNION -> choose it when the animation IS ALREADY FINISHED and
cannot change.
== WHY THE ANIMATION CAN CHANGE ==
KeyframeSequence works in QUATERNIONS.
Curve animation works in EULER by default.
The conversion between the two is not perfect: the animation can appear
slightly DIFFERENT between keyframes -- and the difference is LARGER if
any Euler angle comes close to gimbal lock.
The keyframes themselves stay correct. What changes is the PATH between
them, which is exactly what nobody checks after converting.
== TANGENTS: which controls what ==
the LEADING tangent -> the interpolation AFTER the keyframe
the TRAILING tangent -> the interpolation BEFORE the keyframe
In quaternions: however much you adjust the tangent, each segment
ALWAYS starts at 0 and ends at 1. What the tangent changes is the
path, not the endpoints.


