Keyframes
The model
A property is animated when it has a track. A track is a list of keyframes — a time, a value, and an interpolation — held in the document, which the engine owns.
Every frame, the engine samples every track at one time and produces a flat, immutable snapshot of the whole scene. That snapshot is what gets drawn. Nothing else decides what a frame looks like.
The stopwatch in the Properties panel or the timeline is what arms a property: it creates the track and writes the first keyframe.
Three ways to set one
The stopwatch
Click the stopwatch next to a property. A keyframe is written at the playhead with the current value. From then on, changing the value at a different time writes another keyframe automatically.
The chord
Alt + Shift + a property letter keys that property at its current visible value and auto-reveals the row so you can see the new diamond.
| Chord | Property |
|---|---|
| Alt + Shift + P | Position |
| Alt + Shift + S | Scale |
| Alt + Shift + R | Rotation |
| Alt + Shift + T | Opacity |
| Alt + Shift + A | Anchor point |
A preset
Applying an animation preset from the Animate menu writes real keyframes. There is nothing special about them afterwards — retime, re-ease and delete them like any others. See Animation presets.
Seeing what is animated
| Chord | Shows |
|---|---|
| U | Only the properties that have keyframes |
| U twice | Every modified property — animated, driven by an expression, or set away from its default |
| P / S / R / T / A | Just that one property |
| The disclosure chevron | The whole property tree |
Editing keyframes
- Drag a diamond horizontally to retime it.
- Marquee-select several, then drag them together.
- Copy and paste — Ctrl/⌘ + C / V pastes at the playhead. Cut and Copy act on selected keyframes if there are any, and on layers otherwise.
- J / K jump the playhead to the previous / next keyframe while the timeline has focus. With the viewport focused the same keys are the J-K-L shuttle — see Keyboard shortcuts.
- Arrow keys nudge the selected keyframes a frame at a time (Shift: ten), and a burst of nudges is one undo step.
- Right-click a keyframe for its Interpolation, Keyframe Velocity…, and previous / next keyframe.
- Delete removes the selection.
Values can be edited in three places, all writing to the same track: the Properties panel row, the timeline property row’s scrubbable field, and the graph editor.
What can be keyframed
Essentially every numeric property in the app:
- Transform — position, scale, rotation, opacity, anchor point.
- Effect parameters, sampled per frame like anything else.
- Light colour, intensity and radius.
- Camera position, orientation and focal length.
- Mask paths.
- Shape operator parameters — repeater, trim paths, path operators.
- Text animator parameters, including the range selector’s offset.
- Particle emitter settings.
- Puppet pin positions, and bone poses.
- Nested composition time, via time remap.
The time-axis rule
Keyframes are written and read on the layer-local time axis, resolved by the engine. A naive “composition time minus clip start” is not the same axis once a layer is trimmed, stretched or time-remapped.
For everyday use the consequence is simple and useful: a layer’s animation travels with the layer. Drag the layer bar in time and its keyframes move with it. Time-remap the layer and its own keyframes stay coherent.
One gesture, one undo step
Every edit to a keyframe is a command sent to the engine, and a gesture — a drag, a preset applied to twenty layers, a whole assistant turn — is grouped into a single undo entry. Ctrl/⌘ + Z takes back the thing you did, not one of the hundred writes it was made of.