mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-15 06:42:31 +00:00
Before v0.10.0 the CC particle systems composited their particles over the layer, so a particle layer still showed the solid or precomp under it and any earlier effect in the stack. v0.10.0 (4e7eafa8) made them replace the layer to match After Effects 2026, which hides that artwork in projects written before it (#1898). Both effects get a Composite With Original checkbox, off by default so new instances keep the After-Effects-matching behaviour and the frames the effects are matched against stay green. upgrade_effects now takes the savedBy version of the file a project came from - opened, imported, read from an Essential Graphics template, or loaded as the New Project template - and turns the control on for an instance from a project written before v0.10.0 that does not already carry it (a saved value is the artist's choice). The legacy plan is the pre-v0.10.0 code restored: Post::Combine with the old Transfer Mode mapping (Composite, Screen and Add themselves, Black Matte 5) and the same Add/Over accumulation. savedBy first shipped in M3.14 (948f06fb), released after v0.2.0, so files from v0.2.1 on name their writer and get the fix; an older file has no savedBy and keeps replacing rather than migrating on a guess. Tests: crates/effects/src/sim/tests.rs composite_with_original_restores_the_old_particle_transfer_modes checks the restored mapping against combine() in every Transfer Mode; crates/engine/src/tests/legacy_particles.rs opens a 0.6.0 project (both particle effects over a Fill on a solid) and checks the artwork and the earlier effect show, that a current or anonymous file still replaces, the version gate, and the New Project template path. Fixes #1898.