콘텐츠로 이동

타임라인, 트랙, 클립

This content is for v0.4. Switch to the latest version for up-to-date documentation.

이 페이지는 문서 버전에 해당하는 project.v1.schema.json에서 자동 생성되며, 필드 설명은 원문(영어) 그대로입니다. 스키마는 형태만 검사합니다. 범위, 한도, 참조, 키프레임 순서는 엔진 검증 단계에서 검사합니다.

BlendSpace

The color space in which blend modes are evaluated.

Composition is always premultiplied; this chooses what the blend formulas see. Design tools blend sRGB-encoded values, so overlay, soft-light, and the other contrast modes look as they do there only in SrgbEncoded.

  • "linear_light" Linear light, where blending is physically meaningful.
  • "srgb_encoded" sRGB-encoded values, as design tools and CSS blend.

CacheIntent

Whether a runtime may keep and reuse a clip's rendered picture.

  • "auto" The runtime decides, keeping pictures whose inputs it can identify.
  • "pin" Keep it ahead of other pictures, and bake its range when a host bakes render caches.
  • "bypass" Always render it live: nothing it draws is read from or kept in a cache.

Clip

A reference to a source over independent timeline and source ranges.

FieldTypeDescription
audioAudioProperties

Presentation controls applied to this clip's audio.

Default: {"effects":[],"fade_in":0,"fade_out":0,"fade_shape":"line…

blend_modeClipBlendMode

Artistic operation used when this clip is composited over earlier layers.

Default: "normal"

cacheCacheIntent

Whether a runtime may keep and reuse the clip's rendered picture. Never changes what renders: a kept picture is the one a live render draws.

compositionClipComposition | null

The composition graph that builds the clip's picture from its source, with the clip's time mapping onto it. Without one the clip shows its source as it is. Visual clips only.

Default: null

idrequiredClipId

Stable clip identity.

masksShapeMask[]

Shapes that limit where the clip is visible, applied in order after its composition and before its transform. At most MAX_CLIP_MASKS; visual clips only.

Default: []

matteMatte | null

Another visual clip whose picture sets where this clip is visible.

Default: null

source_idrequiredSourceId

Source consumed by this clip.

source_rangerequiredTimeRange

Interval read from the source timeline.

time_mapTimeMap

How timeline time maps onto the source range.

Default: {"type":"forward"}

timeline_rangerequiredTimeRange

Destination interval on the project timeline.

visualVisualProperties

Resolution-independent visual presentation controls.

Default: {"anchor":{"x":0.5,"y":0.5},"opacity":{"mode":"constant",…

ClipBlendMode

Artistic blend operation stored independently from a renderer implementation.

The modes are those of W3C Compositing and Blending Level 1 (the CSS mix-blend-mode values), with the specification's formulas.

  • "normal" Preserve source color and apply source-over coverage.
  • "multiply" Multiply source and backdrop components.
  • "screen" Inverse-multiply source and backdrop components.
  • "overlay" Multiply dark backdrop regions and screen light regions.
  • "darken" The darker of source and backdrop, per channel.
  • "lighten" The lighter of source and backdrop, per channel.
  • "color_dodge" Brighten the backdrop to reflect the source.
  • "color_burn" Darken the backdrop to reflect the source.
  • "hard_light" Multiply or screen, depending on the source.
  • "soft_light" Darken or lighten, depending on the source: a diffused hard light.
  • "difference" The absolute difference of source and backdrop.
  • "exclusion" Like difference, with lower contrast.
  • "hue" The source's hue with the backdrop's saturation and luminosity.
  • "saturation" The source's saturation with the backdrop's hue and luminosity.
  • "color" The source's hue and saturation with the backdrop's luminosity.
  • "luminosity" The source's luminosity with the backdrop's hue and saturation.

ClipId

A stable timeline-clip identifier.

Type: string

ClipTransition

A two-input transition over the overlap of two visual clips.

FieldTypeDescription
easingrequiredEasing

Timing curve applied to the transition's linear progress. The eased progress is clamped to 0..=1, the domain transition shaders define.

effectrequiredClipEffect

Versioned transition shader and named parameter values.

from_cliprequiredClipId

Clip sampled as transition progress zero.

timeline_rangerequiredTimeRange

Half-open timeline interval over which both clips must be active.

to_cliprequiredClipId

Clip sampled as transition progress one.

MaskMode

How a mask combines with the coverage of the masks before it.

Coverage starts empty when the first mask adds, and full otherwise, so a clip whose only mask subtracts is visible outside the shape.

  • "add" Union: c + m - c * m.
  • "subtract" Difference: c * (1 - m).
  • "intersect" Intersection: c * m.

Matte

Another visual clip whose picture sets where this clip is visible.

The matte clip is drawn, with its own transform and effects, only into the matte; a clip that is any clip's matte is never composited itself. Where the matte clip is not active, its coverage is zero.

FieldTypeDescription
moderequiredMatteMode

What of that picture is the coverage.

sourcerequiredClipId

The clip whose picture is the matte.

MatteMode

Which property of the matte clip's picture is coverage.

  • "alpha" Its alpha.
  • "alpha_inverted" One minus its alpha.
  • "luma" Its luminance over black: BT.709 weights on linear light, times alpha.
  • "luma_inverted" One minus that luminance.

MediaTime

A signed position or duration in timeline ticks (120 000 per second), at most the largest integer a JavaScript number holds exactly either way.

Type: integer (int64)

Position

Whether a box is in its parent's flow.

  • "relative" In the flow.
  • "absolute" Out of the flow, placed by inset.

ShapeMask

A shape that limits where a clip is visible.

Geometry is in the clip's source space, before its transform, so the mask moves with the clip: (0, 0) is the source's top-left corner and (1, 1) its bottom-right. Distances (feather, a rectangle's corner_radius, a polystar's radii) are fractions of that space's shorter side, so a mask covers the same part of the picture at any render resolution.

FieldTypeDescription
featherAnimated_float

How soft the edge is. Non-negative; zero is the outline's antialiased edge. The coverage is blurred by a Gaussian of standard deviation 0.3125 * feather, which spreads its 10 to 90 percent ramp over 0.8 * feather across the outline.

Default: {"mode":"constant","value":0}

fill_ruleFillRule

Which regions of the outline are inside it.

Default: "nonzero"

invertboolean

Whether the mask keeps the outside of the shape instead of its inside.

Default: false

modeMaskMode

How this mask combines with the ones before it.

Default: "add"

shaperequiredShapeGeometry

The shape's outline, as a shapes generator's geometry.

TimeMap

How a clip plays its source range over its timeline range.

forward and reverse stretch the source range over the timeline range, so their speed is the ratio of the two. A loop plays the source range at its own speed, again and again, for as long as the timeline range lasts.

One of:

type: "forward"

From the start of the source range to its end.

type: "reverse"

From the end of the source range to its start: pictures in reverse order and sound played backwards.

type: "freeze"

One source instant for the whole clip, and silence.

FieldTypeDescription
source_timerequiredMediaTime

The instant shown; inside the source range.

type: "loop"

The source range again and again, at its own speed.

FieldTypeDescription
moderequiredLoopMode

How each pass follows the one before.

TimeRange

A half-open timeline interval [start, end).

FieldTypeDescription
endrequiredMediaTime

Exclusive end.

startrequiredMediaTime

Inclusive start.

TimeScale

A positive rational rate of one time against another.

FieldTypeDescription
denrequiredinteger (uint32)

Denominator; positive.

numrequiredinteger (uint32)

Numerator; positive.

Timeline

Timeline tracks ordered from back to front for visual tracks.

FieldTypeDescription
tracksrequiredTrack[]

Tracks in composition order.

Track

A homogeneous visual or audio timeline lane.

FieldTypeDescription
audioTrackAudio

Bus controls applied to this track's mixed audio.

Default: {"ducking":null,"effects":[],"gain":{"mode":"constant","v…

captionsCaptions | null

The cues and style of a caption track; present exactly for that kind.

Default: null

clipsClip[]

Clips on this track. Ordering is authoring order; evaluation sorts by time. A caption track has none.

Default: []

idrequiredTrackId

Stable track identity.

kindrequiredTrackKind

Controls source compatibility and evaluation behavior.

namerequiredstring

User-visible track name.

transitionsClipTransition[]

Explicit transitions between overlapping clips on this track.

Default: []

TrackId

A stable timeline-track identifier.

Type: string

TrackKind

The media domain accepted by a track.

  • "video" A composited visual track.
  • "audio" A mixed audio track.
  • "caption" Timed text, drawn over the tracks before it and under the ones after.

TrackList

A grid track list as CSS writes it: "1fr 2fr 120px", "repeat(3, minmax(100px, 1fr))", "repeat(auto-fill, 160px)", "auto min-content max-content", "fit-content(200px)". A bare number is a fraction of the picture's shorter side. Named lines are not supported.

Type: string

VisualProperties

Resolution-independent visual presentation controls for a clip.

Each field a document leaves out takes its default: the source centred on the canvas, unscaled, unrotated and opaque.

FieldTypeDescription
anchorVec2

Unanimated normalized point within the source rectangle.

Default: {"x":0.5,"y":0.5}

opacityAnimated_float

Animated opacity constrained to 0..=1.

Default: {"mode":"constant","value":1}

positionAnimatedPoint

Animated normalized canvas translation, along spatial curves where its keyframes have tangents.

Default: {"mode":"constant","value":{"x":0.5,"y":0.5}}

rotation_degreesAnimated_float

Animated clockwise rotation in degrees.

Default: {"mode":"constant","value":0}

scaleAnimated_Vec2

Animated per-axis scale.

Default: {"mode":"constant","value":{"x":1,"y":1}}