Layer Motion Graphics
Overview
Motion graphics on Layer split into two jobs that must not be mixed.
Pictures that move (a logo
assembling, an emblem catching light) are a generation with a video model.
Words are never
generated: video models misspell, cannot use a font file, and drift between frames. Words go on as
text items in a
edit, set in the brand font.
Generation mechanics are in the
skill and motion prompting in
. Timeline
assembly basics (cutting, safe areas, audio length) are in
, and exact text on
stills is
. Reusing one motion design for many variants is
;
a shared colour and texture finish is
.
If a sibling skill named here is missing from your available skills, ask the user to install it
(
npx skills add layerai/skills --skill <name>
); unattended, proceed from tool schemas and flag the
gap.
Quick reference
| Job | Route |
|---|
| Logo reveal | , exact logo as , an abstract or empty plate as |
| Idle logo loop | , the logo as both and , capability |
| Title, lower third, CTA | Timeline item with , never a prompt |
| Text entering or leaving | A transition between items: , , , , , |
| Word-by-word kinetic type | Consecutive items, one word or phrase each, stepped on |
| Shaped reveal of an image | on an or item: , , |
| Plate behind type | A item under the text, or the text item's own |
Reveals and loops: generate the picture, pin the frame
A reveal is judged on its last frame, which is the one the viewer reads. Filter
with
filter.use_case: "image_to_video"
and
filter.guidance_file_types: ["first_frame", "last_frame"]
, take the first result, and
for its durations and trigger word. Pass
the exact logo file as
, so the landing frame is the artwork rather than the model's
memory of it.
is what the reveal grows from: an empty plate in the brand colour, an
abstract shape, or particles, from an existing still or one
run (
), sized
with
and
to the reveal's frame. Describe only the transition in the prompt ("gold shards converge and
lock into the emblem, light sweep across it at the end"), never the logo's letters.
takes
{workspace_id, template, videos, images, audios}
.
is
{width, height, fps, tracks: [{id, name, items, transitions}]}
; an item is
{id, type, start_frame, duration_in_frames}
plus
or
, and optionally
layout {left, top, width, height}
,
,
to trim a clip's head, and
; a
takes
{red, green, blue, alpha}
. The render returns a
for
.
An idle loop takes the logo as both
and
, and a model with the
capability where the clip must repeat without a jump. Keep its motion small (a breathing glow, a
slow rim light) so the mark never leaves its own silhouette.
Set
on a model filtered with
when the sting must land on a
beat. Estimate with
using the same files, then execute and poll
at
.
Type: set it, then move it with cuts
A timeline
item takes
,
(an uploaded .ttf or .otf; upload local fonts with
) or
,
,
,
,
,
,
,
(
),
(
),
, and a
box
{left, top, width, height}
in composition pixels.
The timeline has no keyframes. An item's position, opacity and effects hold for its whole span.
Motion comes from two sources only:
- Transitions on a track's , each
{id, type, from_item_id, to_item_id, duration_in_frames, easing}
, with (, , ,
) on , and . gives the overshoot that reads as
designed motion; suits an entrance, an exit. A transition joins two adjacent
items on one track, so a title that slides in needs a or empty-looking item before it.
- Stepped items. Kinetic type is a run of items on one track, each one word or phrase, back
to back on with no overlap. Hard cuts on the beat read as rhythm; a short or
between them reads as flow.
Anything that must glide continuously (a slow push on the title, a sweep of light across the type) is
a generated clip of the type rendered as an image, not a timeline effect:
the line,
then animate that still with
as both frames and a "light sweep only, letters
unchanged" prompt, and check every frame for warping. Report the gap rather than promising a
keyframe move.
Reading time and placement
Hold a title at least as long as it takes to read twice aloud, and convert that to frames at the
template's
. A lower third holds for the whole time its speaker is on screen. Keep type
and logos well inside the frame edges, since social players overlay their own UI top and bottom;
check the platform's current safe-area spec rather than guessing a margin. Tracks composite in
reverse order: Track 1 is on top, so type goes on the first track and plates below it.
Worked example
"A 4-second logo sting for our trailer, then a lower third naming the studio."
- The logo PNG and the brand font are on the user's machine: upload both with
.
- with
filter.use_case: "image_to_video"
,
filter.guidance_file_types: ["first_frame", "last_frame"]
and
filter.capabilities: {fixed_duration: true}
. Take the first result; for its
durations.
- with a dark brand-colour plate as , the logo as ,
, and the prompt "embers drift inward and fuse into the emblem, a single
light sweep across it in the last half second, camera locked". Above 20 CUs, ask first.
- , poll , and step to the last frame of each output against the logo
file. Reject any that changed the mark.
- Timeline at 30 fps: Track 1 holds a (8 frames) then a item "Studio Name" in
the brand font, joined by a transition , ,
. Track 2 holds the sting video item.
estimate_video_timeline_price
with that template; then with the same
arguments and poll . Watch it end to end.
Common mistakes
- Prompting the logo's name or letters into a video model instead of pinning the logo as .
- Generating titles, lower thirds or CTA copy as video rather than setting them as text items.
- Expecting a keyframe slide or scale on one timeline item; motion is transitions or stepped items.
- A transition with only one item on the track, so there is nothing to transition from.
- Overlapping items on one track instead of stacking them on separate tracks.
- Titles cut before they can be read twice, or set outside the platform's safe area.
- A logo loop with motion big enough to break the mark's silhouette.