Split effects into image and video effects, with VHS tracking as the first video effect
Effect::video() says which kind an effect is. The Add effect menu lists the two kinds in sections of their own, each scrolling on its own, and offers video effects only in a video project; a video stage carries a film icon in the chain and, in a still, is dimmed and skipped like a stage switched off. enabledStages takes whether the render is a video and is the one place that leaves video stages out of a still. --help groups the video effects under a heading of their own, --list-effects marks them, and a video effect given for a still is skipped with a warning. VideoEffect is the base every video effect builds on, and keeps the rules a moving stage has to follow: it takes one value from the shared rng, the same on every frame, and hands the effect steady and per-frame generators and loop-rounded time through a Moment, so a subclass writes only animate(). VHS tracking is the first, and the one to copy: the colour planes sway and shake and a tracking bar rolls down the picture. That motion moves out of channel split, which is an image effect again and renders stills exactly as before; forVideo() goes with it. Version 0.7.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -73,18 +73,23 @@ installed: `.mp4`, `.mov` and `.mkv` as H.264, `.webm` as VP9, `.gif` as a
|
||||
palette GIF.
|
||||
|
||||
```bash
|
||||
build/effector -o story.mp4 --video-preset instagram-story -e channelsplit --seed 1 photo.jpg
|
||||
build/effector -o loop.gif -s 480x480 --duration 3 --fps 15 -e channelsplit photo.jpg
|
||||
build/effector -o story.mp4 --video-preset instagram-story -e channelsplit -e tracking --seed 1 photo.jpg
|
||||
build/effector -o loop.gif -s 480x480 --duration 3 --fps 15 -e tracking --tracking-bar 40 photo.jpg
|
||||
```
|
||||
|
||||
`--duration SECONDS` and `--fps N` make any run a video; a preset fills in
|
||||
whatever was not given alongside it. Effects that move over time are video
|
||||
effects; for now that is **Channel split**, which in a video sways its
|
||||
channels, shakes them from frame to frame and rolls a tracking bar down the
|
||||
picture, like a worn tape on an old tube. Its motion params only show in a
|
||||
video project, and a still renders exactly as before. Every frame starts from
|
||||
the same seed, so stages that do not move hold still while one that does
|
||||
moves, and a clip renders frame for frame the same again.
|
||||
whatever was not given alongside it.
|
||||
|
||||
Effects come in two kinds. **Image effects** make a picture and hold still in a
|
||||
clip. **Video effects** are motion: the Add effect menu lists them under a
|
||||
heading of their own, and they can only be added once the project is a video.
|
||||
In a still project a video stage is marked as skipped and the render leaves it
|
||||
out, as it would a stage that is switched off. For now there is one video
|
||||
effect, **VHS tracking**: the colour planes sway and shake, and a tracking bar
|
||||
rolls down the picture, like a worn tape on an old tube. Put it after the
|
||||
image effects it should shake. Every frame starts from the same seed, so the
|
||||
image effects hold still while a video effect moves them, and a clip renders
|
||||
frame for frame the same again.
|
||||
|
||||
Any option can also be passed when launching the interface; it becomes the
|
||||
starting state (images, canvas size, effect settings, seed).
|
||||
|
||||
Reference in New Issue
Block a user