Communitygithub.com

Motion Graphics Video - Portfolio-Ready Animated Graphics

Creates portfolio-quality motion graphics videos (15/30/60/custom seconds) with documentary evidence flow, liquid glass design system, data-driven timeline, TTS voiceover, chunked rendering, and full acceptance testing. Use when the user requests a motion graphics video, portfolio video, promotional video with voiceover, or model evolution video. Before starting, must ask the user three things: topic/theme, main model, and TTS model (Qwen series recommended).

What is Motion Graphics Video - Portfolio-Ready Animated Graphics?

This skill transforms a simple video request into a professional, portfolio-quality motion graphics production. It follows a rigorous 10-step pipeline inspired by a real 201-second documentary film, ensuring every frame is visually compelling and factually accurate. The skill automatically handles fact-checking with source URLs, evidence gathering via Playwright screenshots with DOM anchors, and a custom visual system (liquid glass materials, typography, and safe zones). It generates a data-driven timeline where scene timings are reverse-calculated from voiceover duration and aligned to music beats using librosa. The skill supports any AI agent platform (Claude Code, Cursor, Codex, etc.) and any codec/framework for rendering—Remotion is used for chunked rendering with CRF16 and BT.709 color space, sidechain ducking for audio mixing, and a comprehensive acceptance checklist (frame count, loudness, beat alignment, motion blur, contact sheets). By enforcing a 'fact-check before animate' rule, avoiding paywalls, and delivering only one final video plus a full storyboard script, it guarantees a production that is both artistically excellent and journalistically sound. The skill also integrates TTS voiceover synthesis (e.g., qwen-audio-3.0-tts-plus) with local Whisper verification for low-score re-synthesis, and uses a default 1920×1080@30fps resolution with 7–8 color palettes extracted from the theme. All intermediate files are moved to trash instead of deleted, and API keys are kept strictly in `.env` (`.gitignore`-ed) with zero echo in logs or conversation.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qingtengCHINA/motion-graphics-video/tree/HEAD

Ask in your favorite AI

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

Documentation

Motion Graphics Video · Portfolio-Ready Animated Graphics

Treat a video as a motion design masterpiece—just like a portfolio piece for your resume. Use any tool or technology you believe will produce the best results. The agent has complete creative freedom, prioritizing exceptional visual design, bold art direction, striking composition, and powerful motion performance, making every second count. Go all out. This skill captures the complete craft of a 201-second documentary-grade final film (fact-checking → evidence gathering → motion learning → visual system → data-driven timeline → voiceover readback → chunked rendering → 4-track mixing → item-by-item acceptance).


0. Before Starting: Three Things You Must Ask the User (Cannot Skip)

Collect all three at once using AskUserQuestion (or equivalent). Do not proceed without all three:

  1. Topic / Theme — What is the video about? Target audience and distribution scenario? Any mandatory facts, products, people, or brand colors? Also provide duration options: 15 / 30 / 60 / Custom seconds (default 60). Duration is a budget, not a hard limit: it is ultimately determined by content density and voiceover length.
  2. Main Model — The model responsible for planning, copywriting, coding, and orchestration. Recommend Qwen series (e.g., Qwen4-Max / Qwen3.8-Plus): long context for entire timeline and multi-file engineering, stable Chinese copy and fact-checking quality. Users may specify other models; respect their choice.
  3. TTS Model — The model responsible for voiceover narration. Strongly recommend Qwen TTS voice series (e.g., qwen-audio-3.0-tts-plus): supports voice tone and style instructions, natural documentary tone. Also confirm: voice, tone instruction, language.

Additionally, confirm (defaults can be offered): visual style preference, resolution/frame rate (default 1920×1080@30), background music required (default yes), sound effects required (default none — synthetic SFX can sound cheap, unless the user explicitly requests them), user-provided reference files/images/URLs.

Key Secret Discipline: Any API keys go only in the project .env file which is added to .gitignore; never write them into documents, memory, logs, or echo them in the conversation.


1. Master Prompt (Optimized · Slots Vary with User Input)

Use the following prompt as the creative directive for the executing agent; {{…}} are slots to be filled with the results from Section 0:

Create a {{DURATION}}-second motion graphics video that showcases your skills as a motion designer, just like a portfolio on a resume.
Theme: {{THEME}}.
You have complete creative freedom—use any tool or technology that produces the best results; prioritize exceptional visual design, bold art direction, striking composition, and powerful motion performance, making every second count. Go all out.

Planning and code are handled by {{MAIN_MODEL}}; voiceover is synthesized by {{TTS_MODEL}} (voice {{VOICE}}, tone {{TTS_INSTRUCTION}}).
Visual style: {{STYLE}}; frame size {{RESOLUTION}}@{{FPS}}fps; background music {{MUSIC}}; sound effects {{SFX}}.

If you need UI elements, symbols, real materials, video footage, or background music, search, download, and use them yourself;
Must review all files, images, and URLs provided by the user one by one: {{REFERENCES}}.
First browse https://snapcn.dev/docs/components for motion examples, learn from the best before taking action; only learn the approach from premium components, do not bypass paywalls or verifications.

Craft requirements (non-negotiable):
1. Facts: Every on-screen number/date/quote must have a source URL and statistical reference point; events within the last year must have at least two independent sources; wording must not be stronger than the evidence.
2. Evidence: Real screenshots/screen recordings/academic pages must be displayed full-frame or in glass floating windows; record DOM anchors during capture, so zoom-ins and underlines always align with the text; historical footage prioritizes Wayback snapshots; pop-ups must be hidden during capture; do not bypass anti-scraping or CAPTCHA verification.
3. Shots: Three levels of shot scale (WIDE/MID/MACRO); each shot must follow move→settle (≥18 frames, only 0.5% breathing drift)→exit; use smooth Bezier ease-in/ease-out for transitions, disable linear camera movement; zoom limit is 1.8×, ensuring emphasized content fully resides within the safe zone.
4. Coherence: Follow Gestalt continuity law—no element should appear or disappear abruptly; every entry and exit must have animation; transition vocabulary is fixed and each has a distinct meaning.
5. Typography: Safe zone ≥96px; on-screen text limited to 2 layers (subtitle + one title or one number); subtitle position fixed, colored word by word, not participating in other animations; on-screen text must not repeat the voiceover, only show dates/models/values/sources; on-screen text must not have ending punctuation.
6. Materials: Cards/floating windows/panels use uniform liquid glass (frost≈18px, rim≈0.22, bend≈0.45, dispersion≈0.35); color palette extracted from the theme (7–8 colors), accent colors used only for highlighting; maintain grain and vignette; enable motion blur and chromatic aberration only during fast motion.
7. Rhythm: Hard cuts must snap to music beats (±3 frames); after question cards/titles complete typing, stay for ≥1.5s; lists and wall content stay for ≥3s; duration is determined by content—do not flash-cut to fill time, nor cut short to reduce duration.
8. Sound: Voiceover at −16 LUFS; background music sidechain ducking under voiceover by 6–9dB (attack≈150ms/release≈400ms); chapter mood changes can use low-pass filter or silence to create breathing room; no sound effects by default; bus true peak ≤ −1 dBTP.
9. Engineering: Timeline is generated by script reverse-calculated from voiceover duration; scenes read only relative frames; chunk boundaries fall on shot cuts; on render failure, reduce concurrency and retry automatically.
10. Delivery: Deliver only one video file + one complete script (storyboard/voiceover/on-screen text/assets/motion/sources); move intermediate files to trash, not delete.

Acceptance (run tests on the actual delivered file, item by item): frame count matches timeline; resolution/frame rate; I≈−16 LUFS and TP≤−1 dBTP; blackdetect shows no unexpected true black; no continuous >1.5s still frame; chunk seams have no duplicate/dropped frames; ≥70% of hard cuts land on beat; contact sheet check at the midpoint of each shot's settle; motion shots check every 4 frames for easing and blur; voiceover sentence-by-sentence readback comparison (word-level timestamps or local Whisper); source list matches actual on-screen content.

Slot Table (Flexible Based on User Input/Selection)

SlotSourceDefault
{{DURATION}}Section 0 duration selection60
{{THEME}}User's request textRequired
{{MAIN_MODEL}}User's choiceQwen3-Max (recommended)
{{TTS_MODEL}} / {{VOICE}} / {{TTS_INSTRUCTION}}User's choiceqwen-audio-3.0-tts-plus / Steady documentary voice / Steady magnetic dignified, moderate speech speed
{{STYLE}}User's choiceLiquid glass documentary
{{RESOLUTION}} / {{FPS}}User's choice1920×1080 / 30
{{MUSIC}} / {{SFX}}User's choiceYes (CC-licensed tracks) / None
{{REFERENCES}}User-provided files/images/URLsLeft blank and auto-search online if none

2. Craft Pipeline (Execution Order)

  1. Ask Three Elements → Save to data/brief.json.
  2. Fact Check → data/facts.md: one URL per row + statistical reference point + any methodology differences; wording correction table (remove overreaching phrases like "first time/level/ever exceeds" unless the evidence supports it verbatim).
  3. Assets and Anchors → Playwright dpr2 full-page screenshot + anchors.json (DOM bounding box / character-level Range) + meta.json (capturedAt/sha256); for scrolling shots, take screenshots frame-by-frame via scrollTo at 30fps for smooth animation; terminal/thought-stream text must come from real execution or official public examples.
  4. Motion Learning → Browse snapcn component library, extract primitives (phrase spring entry, specular streak sweep, number drop, polyline point ride, model wall drift, karaoke subtitles…), implement from scratch, do not copy premium code.
  5. Visual System → Color palette / fonts / glass material / safe zone / transition vocabulary / texture zones (each chapter: one texture and one signature shot).
  6. Voiceover → Sentence-by-sentence TTS + pronunciation replacement table (e.g., QwQ→Q W Q) + silence trimming + loudness normalization; local Whisper readback comparison, re-synthesize low-confidence sentences.
  7. Beat and Timeline → librosa beat graph; shot duration = max(budget, padding + voiceover + padding); cut points snap to beats; chunk boundaries = cut points; output timeline.gen.json, scenes read only relative frames.
  8. Render → Remotion chunked render (CRF16, yuv420p, BT.709), retry on failure with reduced concurrency; concatenate and wrap.
  9. Mix → Two tracks: voiceover / background music (no sound effects by default); sidechain ducking + chapter low-pass filter + silence before sentences; two-pass loudnorm (I=−16, TP≤−2 to leave headroom for AAC).
  10. Acceptance and Delivery → Run through the acceptance checklist in Section 1 point by point; contact sheet + motion sequence visual inspection; clean up intermediate files (move to trash); deliver single video + script.md.

3. Hard Constraints

  • Keys only in .env (added to .gitignore); zero echo in documents, logs, or conversation.
  • All deletions move to ~/.Trash; rm is prohibited.
  • Do not bypass anti-scraping, CAPTCHAs, or paywalls; if blocked, switch sources and note in the facts table.
  • Deliver only one video file; any re-created scenes must have an "Illustrative Animation" watermark.
  • On-screen text and voiceover are separate; on-screen text has no ending punctuation; voiceover numbers use Arabic numerals without thousand separators.

4. Common Failures and Fallbacks

  • Lazy-loaded page missing anchors → pre-scroll before capture + retry missing anchors with scrollIntoViewIfNeeded; dynamically calculate scene stop points and frame counts based on actual anchors to maintain audio-video sync.
  • FullPage screenshot incomplete for inner-scroll containers → use fullPage:true + clip; for very long pages, crop locally around anchors and re-base anchor coordinates.
  • Pop-ups/redirect modals → hide using CSS during capture or locate and hide their fixed/absolute ancestors by text; do not click buttons that trigger redirects.
  • Device shell screen not transparent → place the screen recording layer above the shell PNG, crop by screen percentage template.
  • Zoom cropping key text → zoom limit 1.8× + ensure the focus rectangle fully enters the safe zone; for panel-internal crop windows, align by cx/cy to panel center.
  • Still detection false positives → use dual metric of "mean + changed pixel ratio" at 960×540@10fps; settle retains 0.5% breathing drift.
  • AAC true peak exceedance → set loudnorm target TP with 0.5–1dB headroom (e.g., −2.2), re-test after encoding.

Related Skills