ImageSequence

Fill a stack of frames from code or a render, play it back as a clip, and ask for any frame in between, made by following how things move.

seq:SetFrame(i, image) copies a picture in, seq:GetFrame(i) hands frame i back as an ImageContent, and seq:OpticalFlow(2.5) makes the frame halfway from 2 to 3 by optical flow instead of a cross-fade. Frames are lossless files in a folder on disk, never pixels in the project file; one shared cache holds recent frames and reads ahead while a VideoTrack plays them. A render In project writes into one.

Properties

Sequence

NameTypeDefaultDescription
FrameCountnumber0
0 to 100000
How many frames it holds; raising it adds blank frames, lowering it cuts them.
SizeVector2256, 256Every frame is kept at this size; changing it resamples every frame.
FramesOnDiskread-only textProperties window only
Folderread-only textProperties window onlyShows the folder of the sequence's frames; with no frames yet, where they will go.

Frame cache (all sequences)

FrameCacheMBnumber2048
Properties window only; 256 to 65536
The memory cap of the one frame cache every sequence shares; an app setting.
FrameCacheInMemoryread-only textProperties window only

Methods

NameArgumentsReturnsDescription
GetFrame(index: number, into: ImageContent?)ImageContentPuts frame i into the given image, or into one image the sequence keeps, and returns it.
OpticalFlow(position: number, into: ImageContent?)ImageContentGives the in-between at a fractional frame: 2.5 is halfway from frame 2 to 3, and a whole number is that frame.
SetFrame(index: number, image: ImageContent)()Copies an image into frame i, resampled to Size; FrameCount + 1 appends a new frame.
From Instance 22