After Effects 2026 presets made by hand (1200 lumetri-58 ... -62) decode
the data the scripted samples could not set.
- RGB curve (-0039): the first of the four curves is the master curve
and arrives as curves/rgbCurves/master. A moved red, green or blue
curve is reported: no sample tells which slot is which channel.
- Hue vs Sat (-0042): y is the offset from neutral, 1 doubling the
saturation (in linear light), so EffectCraft's y is 0.5 + y / 2. The
other four hue / saturation curves stay reported when moved.
- Color Wheels (-0047): four triples of hue (degrees), brightness slider
(0.5 neutral) and distance. Shadows, Midtones and Highlights become
EffectCraft's wheel colours (HSL of that hue, saturation = distance,
lightness 0.5); the brightness sliders and the fourth wheel are
reported.
- Damaged curve or wheel data is reported as damaged.
- Legacy Tone And Saturation is reported when a record says on: its pard
default turns from off to on when the project is saved again (the
25.x / 24.x / 26 copies of 1200), so comparing with it missed it.
- The Input LUT and Look presets confirm -0095 / -0096 hold the names;
the LUT files are After Effects' own and are not embedded.
Evidence: the 62 read-backs still equal the imported values in the new
63-composition 1200 file. The version copies store the same Lumetri
definitions, ranges and values and give the same report. Renders: master
curve within 0.024 (After Effects uses a natural spline, EffectCraft's
Lumetri a monotone one), Hue vs Sat mean 0.008, wheels mean 0.042.
Part of #3111
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The importer now converts After Effects' Lumetri Color. Its parameters are
found by match-name suffix, not by parT index: After Effects inserted
-0127 ... -0130 mid-list and five tone sliders share one valid range.
- Values are read from every value record, also those in the default
state (tdsb 3), where Lumetri keeps High Dynamic Range, HDR Specular and
the second Look popup (EffectParam::recorded_value; stored_value is
unchanged).
- A switched-off section, and HSL Secondary without a picked key colour,
draws nothing in After Effects: its set values are reported in one line
and not imported.
- The HSL key data is decoded into hue / saturation / lightness ranges.
- LUTs and Looks (by name), controls without a counterpart, eyedropper
colours and undecoded curves, wheels and Split Toning are reported.
- EffectCraft's Lumetri sliders take After Effects' valid ranges.
- import_param is split into lookup plus import_mapped for reuse.
Evidence: 1200 samples (After Effects 2026). The 62 read-backs of mapped
controls in sections that act equal the imported values. The other 61
lie in sections that do nothing and are reported. Renders of identity
grades are within 1/255.
Part of #3111
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add After Effects project import with bounded parsing, explicit loss reports, and regression coverage.
Fetch the cleaned external test corpus at commit 97262276f625afdeeb61787e4cbb74b3f17af510 and verify each fixture against the pinned SHA-256 manifest.