Communitygithub.com

Longscroll Collage Motion Graphics: Design Language, AE Impleme…

Design and replicate flat motion graphics in a long-scroll collage style: a horizontal world with a ruler axis, pan-and-zoom camera, hold keyframes, silhouette placeholders, radial/linear wipes, threshold and invert flash frames, and a limited palette of rose-red, blue, and mint green.

What is Longscroll Collage Motion Graphics: Design Language, AE Impleme…?

This skill provides a complete methodology for creating and replicating flat motion graphics (MG/motion graphics) in a “longscroll collage” aesthetic. It covers the design language (a horizontal world with a ruler axis, a camera restricted to pan and zoom, hold keyframes, silhouette placeholders, radial/linear wipes, threshold and invert flash frames, and a limited palette of rose-red, blue, and mint green), the After Effects implementation (project structure, script-based scene generation, effect usage notes, and lossless rendering), and a systematic frame-by-frame replication approach for any reference video. It is designed for developers and designers using tools like After Effects, Claude Code, Cursor, or Codex who need to build Y2K/collage/data-aesthetic/timeline-longscroll motion graphics, deconstruct and replicate a reference animation frame by frame, or have GPT/Codex redraw assets based on reference frames. The skill emphasizes measurement discipline (using numerical detectors rather than eyeballing), camera auditing, and a clear comparison and delivery workflow. It is also useful for long-scroll collage motion design, frame-by-frame motion replication, and building AE projects from a Python scene description.

Works with~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/novahanser/ai-motion-creation/tree/HEAD/skills/longscroll-collage-motion

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Longscroll Collage Motion Graphics: Design Language, AE Implementation & Replication

This skill comes from a complete frame-by-frame replication (1920×1080, 24 fps, 272 frames, 12 versions). It answers three things: what this kind of video looks like and how it moves; how to build it in After Effects; and, when given a reference clip, how to measure and match it. The three parts can be used independently: for original creation, see Sections 1–3; for building a project, see Section 4; for replication, see Sections 5–6.

If the current project contains rollback-replica/, that is the reference implementation: 拆解分析.md has all measured values, scripts/ is the scene generator, and tools/ are measurement scripts. Read those first; do not rewrite from scratch.


1. Design Language

1.1 World & Camera

  • All content is placed on a horizontal long scroll (the reference is 11000×1080); the viewer sees the camera moving across the scroll.
  • The camera has only horizontal pan and zoom, no rotation or vertical movement. Conversion: X_screen = (X_world − cx) * s + 960, Y_screen = (Y_world − 540) * s + 540.
  • A ruler runs across the entire scroll and is always centered on screen (y=540, minor tick spacing ~7.27 px, major tick every 5 ticks). It is the layout axis and the camera measurement reference.
  • No motion blur throughout: even a camera moving 500 px per frame remains sharp. This is the source of the style's "hard" look.

1.2 Layout

  1. Single axis: content hangs above and below the ruler; years and numbers sit directly on the ruler as coordinates.
  2. Top solid / bottom mirror: treat the ruler as a mirror; above are original images and upright text, below are their monochrome silhouettes and inverted text.
  3. Bracket numbering: all labels are wrapped in brackets, e.g., (1) (2), (crash), [cloud1]; bracket words are often hollow stroked.
  4. Thick-thin contrast: 1 px thin circles, concentric circles, arc text, and guide lines against large solid color blocks.
  5. Nested frames: black frame within black frame, rotated 90°, ruler passing through the middle.
  6. Density rhythm: sparse → dense → very dense → whitespace → full → sparse. Not uniformly dense throughout.

1.3 Colors

Gray background with black and white is the main body; only three accent colors are used; other colors appear only within photos.

NameValueUsage
Background Gray#E6E6E6Background (with very light grain)
Rose Red#E8086DRings, ribbons, beams, background flash
Bright Blue / Royal Blue#1F86F0 / #0D3ED8Blocks, mirror silhouettes / large circles, sky
Blue Violet#6982F6Background flash, silhouette placeholder color
Mint Green#19E6B4Occasional block faces
Near Black#110D0CBlack fields, ending

Background colors hard-cut by paragraph: gray → black → rose red → blue violet, each transition occurring in a single frame.

1.4 Font Combinations

Mixing is intentional: one font per information type. Transitional serif (Times, bracket labels, hollow stroke), geometric sans-serif thin (Montserrat, year numbers, tight kerning), rounded blocky technical font (Jura / OCR-A, command lines and small labels), high-contrast modern serif (Playfair/Bodoni, large title words, letters touching), extra-bold slab serif (Lubalin/Rockwell, main titles, horizontally stretched), monospace (Consolas/Courier, code and large numbers), Song/Ming (CJK, can be horizontally stretched 3×), pixel dot matrix. Small text should be as small as 6–10 px; do not enlarge it—it adds "texture" not "information".

1.5 Material Vocabulary

Photo cutouts (high-contrast black-and-white, thresholded), find-edges-style line art (white background, black lines with broken dots), system UI screenshots (popups, file icons, tables, keyframe text), film scans (base, sprocket holes, edge codes), 3D props (liquid metal, glossy tubes, white models, wireframes), holographic cone gradients, 1-bit dither patterns, QR codes, pixel people. The same thing often appears in two versions: the real object and its solid-colored silhouette.

1.6 Texture

  • Solid color blocks remain clean; gradients and gray areas have visible grain; add an additional 2–3% monochromatic noise on top of the entire frame.
  • Photos are treated with a "photocopier" look: threshold, posterize, keep only three or four gray levels.
  • Line art is black lines on white fill, not gray lines; lines should be thin, with breaks and speckles allowed.
  • Chrome objects look like posterized renders: an overall white stroke plus black outline, highlights are white cores wrapped in concentric rings.

2. Motion Language

2.1 Camera

  • Zoom: transitions between a few fixed levels using 3–5 frame pure linear interpolation, then a hard stop—no easing. Occasionally, exponential ease-out (multiplying the difference by 0.6–0.75 each frame) or exponential acceleration zoom-in. Direct hard cuts are also used.
  • Pan is a superposition of three components:
    1. Constant drift, ~4 world px/frame, continuous throughout the film;
    2. Impulse on beat frames, then decaying each frame by a factor of 0.6–0.8 (e.g., +195, +33, +20, +14, +11, +9, +7);
    3. Jump cuts—a jump of several hundred px in one frame.
  • The camera is baked into linear keyframes frame by frame; do not expect Bezier easing to guess this curve.

2.2 Beat

Events land on a 6-frame grid (0.25 s at 24 fps) with an optional global phase offset. Elements appear one per beat, not all fading in together.

2.3 Element Entry & Variation (Core Techniques)

  1. Silhouette placeholder: first show a solid-colored silhouette for 1–2 frames (white → blue violet → actual, or rose red → actual), then replace with the real texture. Use the "Tint" effect to map black and white to a single color, then animate the amount from 100 → 0 with a hold keyframe.
  2. One-frame blink / size alternation: appear → disappear for one frame → reappear; or big, small, big, small flash three times then hold.
  3. Radial wipe per beat segment: ring elements sweep out a segment, then each beat the whole segment jumps to a new angle, with only 1–2°/frame drift between segments.
  4. Head and tail double linear wipes: strip elements first extend the "head" forward, then the "tail" catches up; the remaining part becomes the next element.
  5. Hold keyframes are dominant: position, scale, and rotation are frame-by-frame jumps; the only real easing is 2–3 frames of ease-out.
  6. Pop: 0.3–0.7× → 1.0, over 2–3 frames, optionally with a 1.1–1.2 overshoot.
  7. Screen pin: some elements are fixed on the screen while the camera moves (apply the inverse camera transform as frame-by-frame keyframes), then later "released" back to the world.
  8. Mixed frame rates: 3D animations are often created at 30 fps and then placed into a 24 fps timeline, resulting in step patterns like 1, 2, 1, 1 every 4 frames. When replicating, use source_frame = floor(1.25 * (f − f0) + 0.5); do not interpolate uniformly.
  9. Mirror and offset copies: when a mirror silhouette appears, place a white copy underneath it and slide from offset to overlap over 4–5 frames.

2.4 Global Flash Frames

EffectHow to Achieve
Background hard cut (black, rose red, blue violet)Hold keyframes on a background solid layer
Threshold flash (1 frame, image becomes black & white)Adjustment layer at top with "Threshold" effect
Difference threshold flash (anything different from background turns white)A solid of the same color as background with "Difference" blend mode, with a "Threshold" adjustment layer above
Full-screen invert (some elements retain their color)"Invert" effect on top; layers that should keep their color each add an "Invert" effect themselves
Local horizontal stretch (wire effect)Narrow adjustment layer with "Transform" effect, uncheck uniform scale, stretch width to several thousand %
Flip-overLayer X scale frame-by-frame hold (crossing zero to negative), pivot also moves frame by frame, one-frame overshoot
EndingGraduated horizontal bars step-fill the screen then exit; background steps down to near-black; title is horizontally stretched into afterimage

3. Workflow for Creating an Original Film in This Style

  1. First, draw the long scroll: decide the world width (approx 800–1000 world px per second), divide into 4 segments, each with a motif and density.
  2. Create a shot list: for each shot, write the zoom level, start cx, end cx, background color, and events; use only linear ramps or hard cuts between levels.
  3. Place events on the 6-frame grid: one new element per beat; schedule a global flash frame or background switch every 2–3 seconds.
  4. Choose an entry technique from Section 2.3 for each element; do not repeat the same technique more than twice within the same segment.
  5. Prepare assets following the material vocabulary in Section 1.5; for each asset, also create a solid-colored silhouette version.
  6. Finally, add grain uniformly, and verify that only three accent colors remain visible.

4. After Effects Implementation

4.1 Project Structure

RB_REPLICA/
  01_Comps/   RB_MAIN (1920×1080 final)   RB_WORLD (long scroll world, e.g., 14400×2600)
  02_Assets/  Subfolders by paragraph (A_… B_… C_… D_…, Ruler & Global Effects)
  03_Solids/  Background colors, adjustment layers, matte solids
  • RB_WORLD holds all world-space layers; a world point (x, y) corresponds to comp pixel (x + OX, y + OY), with margins around the edges.
  • RB_MAIN from bottom to top: background solid → RB_WORLD (turn on Collapse Transformations; the camera is its position/scale keyframes) → screen-space overlays → adjustment layers (grain, threshold, invert…).
  • Label layers by paragraph with tag colors; asset filenames include the paragraph prefix for easy navigation among 500+ layers.

4.2 Use Scripts, Not Manual Placement

With many layers and all values being measured, it's better to describe the scene in a script and then import:

  • A Scene holds a list of layers; each layer has world coordinates, a time span span(f_in, f_out), property keyframes, and an effects list.
  • Assets are generated by functions and cached by hash of "function source code + parameters"; only redrawn if changed.
  • Export as an AE project JSON, import using the aftereffects MCP command ae_project_import_json; on rebuild, delete the old root folder by id before re-importing (import only appends).
  • Switches that cannot be carried in JSON (adjustment layer, collapse transformations, blend modes) are listed separately; apply them after import with layer.set_props / layer.set_blend_mode.
  • Elements with different poses each frame (rotating 3D objects, frame-by-frame evolving gradients) should be made as "one layer per frame", each layer lasting only one frame—this is more reliable than stacking effect keyframes on a single layer.

4.3 Effect Usage Notes

  • Linear Wipe: the angle indicates the direction of travel; +90 wipes from the left, −90 from the right, 180 from the top, 0 from the bottom; the wipe is calculated in the layer's own space; when the layer is rotated, compensate by subtracting the rotation.
  • Radial Wipe: start angle 0 = straight up, clockwise; "Both" mode wipes outward from the start angle in both directions.
  • In a 16 bpc project, the "Level" parameter of the Threshold effect is entered 0–1.
  • For adjustment layers that are not the same size as the comp, point parameters in effects get scaled from "layer → comp".
  • If a static scale is non-uniform, bake it into the asset, not in the layer's transform (preview and export can become inconsistent).

4.4 Rendering & Output

AE's built-in H.264 can darken high-saturation rose red. Use lossless AVI, then ffmpeg:

ffmpeg -i main.avi -vf "scale=in_range=full:out_range=tv:out_color_matrix=bt709,format=yuv420p" -c:v libx264 -crf 17 -preset slow -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range tv -movflags +faststart out.mp4

4.5 Collecting & Archiving Projects

When delivering or archiving, put the project and its actually used assets into a standalone folder (equivalent to "File → Dependencies → Collect Files"):

  1. Copy only assets referenced by layers, keeping the Project Panel folder structure, into (Footage)/;
  2. Generate a project file with all asset paths pointing to the collected folder (new project → import the JSON with modified paths → apply switches → set the same bit depth and color settings as the original → Save As);
  3. Write a collection report: comp specs, number and size of assets, missing files, effects used (and whether they depend on third-party plugins), fonts used, what was not collected;
  4. Verify: render the same one or two frames from both the original and collected projects; they should be pixel-identical; also confirm no assets are missing;
  5. After completion, switch AE back to the original project. Do not modify compositions or assets that the user already has in their project.

5. Method for Replicating a Reference Clip

The goal is "looks like the same film"; assets are redrawn and regenerated, not copied from the original pixels.

5.1 Workflow

  1. Export frames (all frames, JPG is fine) and record basic parameters: resolution, frame rate, number of frames, whether motion blur is present, whether the audio track actually has sound.
  2. Solve the camera first: find a rigid reference that runs throughout the film (here, the ruler); measure the zoom and pan frame by frame and bake them into a camera table.
  3. Rebuild the world: with the camera known, any frame can be back-projected to world coordinates; all subsequent measurements are done in world space.
  4. List elements: for each element, record its world position, start frame, end frame, entry technique, and frame-by-frame changes.
  5. Build the first version, render, compare frame by frame, and iterate on gaps. Each version should tackle one set of problems; after fixing, re-render and compare.

5.2 Measurement Discipline

  • Camera audit: locate every tick mark in each frame, convert back to world coordinates, and compare to an ideal grid. Residuals should be constant within a shot; if not, the camera table is wrong. This step once caught an 8 px and a 49 px registration error that were invisible in side-by-side comparisons but biased all subsequent measurements.
  • Use numerical detectors, not eye-balling: reading coordinates from a gridded crop introduces 3–8 px systematic errors. For critical values, use detectors: color threshold plus bounding box (for strip heads/tails), connected component centroid (for highlights, marker points), circle/ellipse fitting (for spheres, rings, orbits), row-by-row statistics (for line row numbers and thickness). Run the same detector on the original and the replica, then compare.
  • World-aligned crops: when comparing, crop the same world rectangle from the original and the replica side by side, rather than comparing screen shots—especially when the camera is moving.
  • Frame-by-frame, not skip frames: sampling every 2 frames once mistook a 4-frame-cycle rotation for "almost still".
  • If an element "moves strangely", first suspect the camera, then the element.

5.3 Using GPT / Codex to Redraw Assets from Reference Frames

Suitable for photos, line art, collage pieces, hand-drawn elements:

  • Crop the cleanest 1–2 frames of the element, enlarge 2–4× as reference.
  • Prompt structure: "Faithfully redraw X from the reference" → describe each object and its appearance item by item → list what to remove (ruler, overlaid lines, adjacent elements, text) → request transparent background.
  • Models tend to stretch the subject to fill the canvas: pad the reference image to the output canvas aspect ratio, and explicitly state "keep proportions, leave margins".
  • Preview images may not show transparency, looking like they have a glow halo; check the alpha channel and threshold before using.
  • Multi-object images may drift in layout: slice the image into blocks, each placed at its measured world rectangle, allowing non-uniform scaling per block.
  • Third-party trademarks copied by the model must be erased.
  • Generation tasks can run in the background while you continue with measurements and procedural parts.

Not suitable for generative models: anything where motion or topology must be precise (rotating rings, merged beads, frame-by-frame evolving gradients, wireframes). These should be rendered procedurally from fitted geometric parameters; the generative model should handle only textures and imagery. When deviating from the user's suggested tools, clearly explain the reason.

5.4 Fitting 3D Props

  1. Track the frame-by-frame position of distinctive features (highlights);
  2. Fit a projection trajectory (ellipse), then interpret with a perspective model ("nearer bigger, nearer faster");
  3. Read rotation speed and frame rate conversion from the phase sequence;
  4. Render each frame using the fitted parameters, then overlay with the original to check phase alignment.

5.5 Comparison & Delivery

  • Per version output: final film, original top / replica bottom sync comparison video with frame numbers, and several keyframe comparison images.
  • In the documentation, record: shot list, camera curves, per-element measured values, what changed in each version, and areas that still differ.
  • When reporting, clearly describe the remaining mismatches, classify the type of gap (shape, brightness, position, timing), not just what was fixed.

6. Checklist

Go through each item before delivery:

  • Camera has only pan and zoom; the ruler axis is always centered on screen; audit residuals are constant within each shot
  • No motion blur; hold keyframes dominate, no unnecessary easing
  • Events land on the 6-frame grid; no "fade in together"
  • No more than three accent colors; background transitions are hard cuts
  • Every real element has a silhouette placeholder or other entry technique
  • Layer stacking order matches the original (verified element by element)
  • Global flash frames are at the correct frame numbers; threshold level is set according to project bit depth
  • Output is lossless then transcoded; color matches the reference
  • Project panel is organized into folders; collection directory has no missing assets and has been verified to render identically
  • Documentation lists remaining gaps

7. Common Issues

  • High-saturation colors appear dark after render: did not use lossless + ffmpeg bt709 conversion.
  • Element offset by dozens of px between two shots: camera table counted one tick cycle too many or too few at the jump cut.
  • Wipe direction wrong: Linear Wipe angle indicates direction of travel; compensate if the layer is rotated.
  • Threshold frame all black or all white: in 16 bpc project, level was entered as 0–255.
  • Generated asset aspect ratio wrong: reference image was not padded to output canvas ratio.
  • Screen-pinned element drifts during zoom: the inverse transform must use frame-by-frame camera values for hold keyframes, not just the first and last.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

motion-design-judgment

动态图形、动态排版、歌词 MV、专辑封面这类设计的判断方法,每一条都带观察依据、适用条件和代价。 内容来自对动态与静态案例的观察与复核: 画面的变化怎么对应音乐的段落、小节、重音和音色密度;换镜头时留什么不变;速度放在镜头的哪一段; 东西怎么进场、停多久、怎么退场、用什么样的曲线到位;只停一帧的闪、反相和空帧放什么、放哪里; 字的粗细、宽窄、字距、行距和几种字的搭配,字的放大、变形、裁切、遮挡与重复; 单帧的重心、留白、层次、对齐,线、点、圆、箭头、网格各自的工作;一张静帧和连续播放的成片差在哪里; 字号、歌词、画框、限色、质感、二维与三维怎么取舍;怎么逐帧拆解一段参考片、量自己的草稿、按参考复刻一段。 只要用户要设计或评审 MG、motion graphics、kinetic typography、lyric video、PV、BGA、片头、作品集、封面或海报的版式, 要让画面卡音乐,要分析或拆解参考视频,要从截图、海报或预览图推想动效,要复刻一段动效, 要选字体或处理标题字,要排一帧的构图,要定缓动和关键帧曲线,要做闪白、反相、频闪, 或者问到 After Effects 里的节奏、转场、入场、退场、停留时间、限色、小字、运动模糊、透明棋盘格, 都应该使用本技能,即使用户没有提到这些作者或这批素材。它给的是判断和核对的办法,不是可以照搬的风格模板。

Related Skills