Graph editor
Shaping a channel's value curve — interpolation types, bezier handles, per-axis focus, and how non-scalar channels are graphed.
Reference
- Mode
- Keyframe
- Panel
- Timeline
- Menu
- Animation ▸ Show Timeline
The graph editor plots the selected keyframe's channel as a curve of value against time, and lets you shape it by dragging the keys and their bezier handles. Where the dope sheet says when, the graph editor says how fast.
It lives on the Timeline's Keyframe tab. There is no separate toggle for it: switching to Keyframe shows it, and switching to Compose or Draw hides it. Until a keyframe is selected it reads "Graph Editor — tap a keyframe in the dope sheet, then edit its curve here."
What is plotted
The graph shows one channel — the one the selected keyframe belongs to — sampled at every frame from 0 to the last frame. The curve is the channel's real evaluated output, so what is drawn is what plays back.
- Opacity is displayed as a percentage; Rotation is displayed in degrees. Everything else is plotted in its own units.
- A three-component channel plots all three components at once, coloured red for X, green for Y and blue for Z. A single-component channel plots one line, drawn slightly heavier.
- The focused component — the one whose keys are drawn and edited — is X for most channels and Z for Rotation, which is the axis a flat drawing turns on.
- The vertical range covers only the components actually plotted, plus 15 % padding. Soloing an axis therefore re-frames the graph to that axis automatically.
- Three gridlines mark the bottom, middle and top of the range, labelled with their values. The playhead draws as an orange line.
All, X, Y, Z. Lives on the ease bar and solos one component. Shown only for vector channels — Position, Scale, Anchor Point and Rotation.
Interpolation
Each keyframe stores its incoming and outgoing interpolation independently. A segment between two keys is therefore shaped by two handles owned by two different keys: the earlier key's out-handle and the later key's in-handle.
| Type | Behaviour | Glyph |
|---|---|---|
| Hold | Stepped. The value stays at the earlier key and pops at the next one. | | |
| Linear | A straight line between the two values. | — |
| Bezier | Explicit handles, dragged in the graph editor. | S |
| Auto | A gentle ease-in-out. | ~ |
The segment is evaluated by these rules, in order:
- Before the first key or after the last, the channel holds that key's value.
- If the earlier key's outgoing interpolation is Hold, the segment holds the earlier value.
- If the earlier key's outgoing interpolation is Linear, the segment is a plain straight line — the later key's in-handle is not consulted at all.
- Otherwise the segment is a cubic bezier between the two handles.
Rule 3 has a visible consequence, and the editor handles it for you: dragging the in-handle of a key whose earlier neighbour leaves linearly promotes that neighbour to an equivalent bezier first, so the handle you just moved is a handle something reads.
The six one-tap easing presets are on the ease bar and apply to every selected keyframe.
Bezier handles
Handles draw as teal stems ending in small square knobs. Knobs appear for both ends of every segment adjacent to the selected key — not only the selected key's own two handles — so a two-keyframe curve shows both of the knobs that shape it.
- The knob grab radius is 20 pt. A knob keeps its offset from the touch point when grabbed, so it does not jump under the finger.
- A handle's horizontal position is clamped to the segment, between 0 and 1.
- A handle's vertical position is clamped between −1 and 2 in normalised value, which keeps overshoot, back-ease and anticipation reachable while stopping a handle running away.
- On a segment whose two values are nearly identical — within 2 % of the graph's visible range — the handle's vertical drag is frozen and the drag only retimes. Normalising against a near-zero value delta is what would otherwise let a fraction of a degree of travel invert the curve.
Keyframes are drawn as dots on the focused component only, and can be dragged in both axes: sideways to retime, vertically to change the value. On the first movement of a drag the editor decides what is being dragged in this order: knob, then keyframe, then scrub.
Non-scalar channels
Some channels do not hold a number. A vector path's Shape (morph), a layer's Warp (fold), a puppet's Puppet (pins), a transform, a colour — each key holds a whole pose, lattice, pin set or tuple.
These channels are graphed as eased progress. Keyframe i plots at value i, and within a segment the curve rises from i to i+1 along that segment's easing. The shape of the curve is the channel's time control: how quickly the morph passes from one pose to the next, where it eases, whether it overshoots.
The practical rule follows from that: on a non-scalar channel you can drag the ease handles, and you can retime the keys, but you cannot drag a key's value — the pose is the pose that was recorded. Attempting to type a value at a shape channel's address is refused outright rather than creating a stray numeric channel there.
