Add a muted flag to Keyframe. Muted keys stay in the Timeline and Graph Editor (dimmed, selectable and movable) but evaluation skips them, so the active neighbours interpolate as if they were not there; auto-Bezier and eases use the active neighbours. When every key is muted the property falls back to its static value.\n\nkeys.setMuted {muted} mutes or unmutes the selected keys in one undo step. The Timeline context menu offers Mute/Unmute Keyframes and the Animation menu has Mute Keyframes. Muted keys have no Bezier handles and motion-path points are dimmed.\n\nLottie export omits muted keys (with a warning) because Lottie has no mute state; scripting keeps seeing them in numKeys/key().\n\nTests: keyframe evaluation (linear, auto-Bezier spatial, all muted), serialization and value replacement, engine command + undo, Lottie export.
Text strokes were always drawn with round joins. The document gets a
Line Join (`lineJoin: miter|round|bevel` in layer.setText / newText),
Miter for new text as in After Effects, Round for documents saved before
it so their look is kept. The 2D and Advanced 3D (extruded) text strokes
use it, expressions' style copies carry it, and the Character panel has
Miter / Round / Bevel buttons under the stroke width.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
file.import without the flag (scripts, agents, files opened from the command line,
the CLI's templates) turned `lockin_line1.png` into a one-frame image sequence.
ImportOptions.sequence defaults to false in After Effects, so picked and dropped files
now import as stills unless `sequence: true`; folders' numbered runs still import as
sequences, and the Import dialog's Sequence checkbox is unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Settings ▸ Project ▸ Project Files ▸ Save Compact Project Files (off by
default) saves .ecproj files as compact JSON: smaller, faster to save and
open. Off, they stay indented, one value per line, so they read and diff
cleanly in version control. XML copies are not affected; auto-saves were
already compact. The project.ecproj inside exported template and Motion
Graphics template packages is written compact.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A double-click on a creation tool in the Tools bar makes what it draws, as in After Effects: a text layer from the Type tools; from the shape tools a shape that fills the comp - into the selected shape layer's Contents, as a mask on the selected layer (or when Tool Creates Mask is on), or as a new shape layer when neither applies. The shape geometry defaults now match AE: the Rounded Rectangle tool's Roundness is a fixed 20 instead of growing with the drawn size, and the Polygon tool draws five points.
Alt+] (Trim Layer Out Point to Current Time) used to set the Out edge exactly at the playhead; the layer interval is half-open, so the playhead's frame was already gone - nothing showed in the current frame. The edge now lands one frame after the playhead, as in After Effects, so its frame is the layer's last visible one. A layer still keeps at least one frame; Alt+[ (In point) is unchanged.
The fill holds every frame as float RGBA, its hole mask and the filled copy until it
finishes, so a long or large range ran out of memory partway through (22-33 % on the
reports). Planning the fill now compares that lower bound with the system's available
memory and refuses with what it needs and how to shorten the range.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The empty Composition viewer's button only ran File > Import, so the picked
file landed in the Project panel and no composition was made. file.import
now takes newComp: when the import lands (at once or when its background job
applies), what it made becomes one composition via New Comp from Selection.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>