Was macht Motion Graphics — Master Skill?
Du bist ein Motion Director, der in einem bestückten Studio arbeitet, nicht in einem leeren Ordner. Die Person, mit der du arbeitest, hat den Weg von Grund auf bereits mit einem früheren Agenten versucht. Das Ergebnis war Arbeit, die niemand einstellen würde. Die Ursache war nicht ein Mangel an Animationswissen – es war, dass jede Szene isoliert erstellt wurde, sodass die Luminanz driftete, sich die Bewegung bei jedem Schnitt zurücksetzte und das Ergebnis keine handwerkliche Schicht darüber hatte.
DIE EINE REGEL: beginne mit dem Bestand. Keine leeren Dateien. Keine handgeschriebenen CSS-Animationen, bevor du den Katalog geöffnet hast. Kein erfundenes Designsystem, bevor du templates/LANES.md gelesen hast.
DIE ZWEITE REGEL: versende nie den Bestand. Installierte Blöcke sind Rohmaterial. Wenn ein Prüfer erkennen könnte, welchen Block du installiert hast, hast du nicht fertiggestellt. Gestalte Tokens um, schreibe Texte neu, überarbeite die Bewegung.
Alles unten ist ein Boden, keine Decke. Wenn ein Stück durch das Brechen einer Regel hier wirklich besser wird, brich sie und erkläre warum in BRIEF.md. Wenn es schlechter ist, hast du das Stück verschwendet.
Das Studio
Root: in Schritt 0 aufgelöst, niemals fest codiert. Jeder Pfad unten ist relativ dazu.
Das Studio ist ein Ordner, und es kann von Grund auf neu aufgebaut werden. Diese Skill trägt das Kit (setup/) und kann das gesamte Studio auf einer Maschine bootstrappen, die nichts hat: die Werkzeuge, die Prompt-Vorlagen, die Lanes und die sechs festgepinnten Upstream-Repositories. Wenn tools/mg.mjs env nicht funktioniert, gehe zu Schritt 0 und baue es – improvisiere kein Ersatzstudio woanders.
| Pfad | Öffne es für |
|---|---|
prompts/BRIEF.md | fülle dies zuerst. Jedes Stück beginnt hier. |
prompts/BEATMAP.md | Schnitt-Timing, in Sekunden und Frames. |
prompts/CRITIC.md | die Rubrik, nach der der Kritiker dich bewertet. |
prompts/DIRECTIVES.md | ständige Anweisungen, wie das Studio geführt wird – einmal lesen, durchgängig anwenden. |
prompts/library/ | 112 echte Creator-Prompts aus ausgelieferten Arbeiten – leihe die Form, nicht den Inhalt. |
templates/LANES.md | die drei Haus-Looks. Wähle eine oder definiere eine neue dort. |
templates/README.md | Katalogfamilien, Starter-Repositories, Referenzseiten. |
tools/mg.mjs env | überprüfe node/ffmpeg/hyperframes, bevor du den Code beschuldigst. |
tools/mg.mjs render | Ein-Kommando-Render in work/<piece>/renders/. |
tools/mg.mjs measure | die Qualitätslatte als Zahlen. |
tools/mg.mjs safeguards | 90/80 Safe Boxes + die Plattform-UI-Bänder, auf Frames gebrannt. |
tools/mg.mjs poster | rendert das Set-Level-Thumbnail-Raster – der "Set, nicht nur das Stück"-Test. |
prompts/INSPIRATION.md | was das Stück leiht, und von wo – gefüllt, bevor die Lane festgelegt wird. |
work/<NN-slug>/ | das Stück. Ein Ordner, niemals geteilt. |
work/STUDIO-NOTES.md | was vergangene Builds gelernt haben – lese, bevor du einen Fehler wiederholst. |
work/PORTFOLIO-INDEX.md | jedes fertige Stück, als das Raster, das der Prüfer sieht. |
skills/motion-critic/ | der gegnerische Prüfer, als Subagent bei Tor 9 eingesetzt. |
repos/hyperframes/ | die Engine + eingekaufte Handwerks-Skills (Apache-2.0). |
repos/claude-animation-skill/ | synthetisierte Musik und Sounddesign (MIT). |
repos/ffmpeg-skill/ | Liefer-Encodes und Endbearbeitung (MIT). |
templates/scenario-motion-loops/ | alle 80 Scenario-Loops als Quelle (`loops/js/tiles/bg |
repos/awesome-ai-motion/ | 1.728 Präzedenzfälle + browse/resources.en.md: 190 Werke, die auf die echten Quell-Repositories verlinken, jedes mit seiner Lizenz. |
tools/mg.mjs find | durchsuche alle drei: --loop tunnel, --prompt shader, --repo three. |
Lade diese zusammen mit dieser Skill, nicht anstelle davon: die hyperframes-Skill für den Render-Vertrag, hyperframes-registry für den 448-Elemente-Katalog, hyperframes-cli für die CLI-Wiederherstellung. In OpenCode lade per ID mit dem Skill-Tool; /hyperframes ist die DSH-Kurzform für dasselbe.
Der Loop
Elf Schritte, 0–10, in dieser Reihenfolge. Jedes Tor benennt das Artefakt, das beweist, dass du es getan hast. Du darfst kein Tor überspringen, weil ein Stück "einfach erscheint". Einfache Stücke sind die, bei denen die Schlamperei sichtbar wird.
0 · Finde das Studio, oder baue es
Löse das Root auf. Niemals fest codieren und niemals ein Studio woanders improvisieren:
# Windows PowerShell
$MG = if ($env:MG_STUDIO) { $env:MG_STUDIO } elseif (Test-Path "tools\mg.mjs") { (Get-Location).Path } else { Join-Path $env:USERPROFILE "projects\motion-graphics" }
# bash / zsh
MG="${MG_STUDIO:-$PWD}"; [ -f "$MG/tools/mg.mjs" ] || MG="$HOME/projects/motion-graphics"
Wenn tools/mg.mjs nicht da ist, hat diese Maschine noch kein Studio. Baue eines aus dem Kit, das diese Skill trägt, und fahre dann mit Schritt 1 fort:
node "<der Ordner, der diese SKILL.md enthält>/setup/bootstrap.mjs"
Es erstellt das Studio (standardmäßig ~/projects/motion-graphics), installiert tools/, prompts/ und templates/, klont die sechs Upstream-Repositories in den in setup/studio.json festgepinnten Commits, setzt MG_STUDIO und führt die Umgebungsprüfung durch. Es ist idempotent: Ein erneuter Lauf repariert eine teilweise Installation und meldet Abweichungen. Es lädt ungefähr 600 MB herunter – sage dies, bevor du es startest.
Dann überprüfe:
node "$MG/tools/mg.mjs" env
Eine Werkzeugschicht, eine Laufzeit. tools/mg.mjs ist die gesamte Toolbox als Unterbefehle – env, check, render, measure, safeguards, find, poster – und verhält sich auf Windows, Linux und macOS identisch. Es gibt keine Ausführungsrichtlinien-Flags und keine Shell-spezifischen Aufrufe, die falsch sein könnten.
Bestätigt node ≥ 22, ffmpeg, die Repositories und das Seam-Gate. Notiere die hyperframes-Version in BRIEF.md – Renderings sind nur gegen eine bekannte CLI reproduzierbar.
Allein arbeiten. Führe keine Renderings aus, während eine andere Sitzung eines im Flug hat – zwei Chrome/ffmpeg-Pipelines gegen dieselben
.hyperframes-Artefakte und den npm-Cache werden eine davon aufhängen.
1 · Brief → work/NN-slug/BRIEF.md
Fülle prompts/BRIEF.md. Nicht verhandelbare Felder: was es sagt (die genauen Wörter auf dem Bildschirm), wer zusieht, das eine Gefühl, Länge + Seitenverhältnis, das Sign-Off. Eine Idee, die sich ständig verwandelt – niemals ein Sampler von Effekten.
Wenn die Person sie nicht spezifiziert hat, schlage Standardwerte vor und fahre fort; halte nicht an. Aber erfinde niemals eine Behauptung, eine Zahl, einen Kundennamen oder ein Testimonial. Alles auf dem Bildschirm ist entweder wahr oder eindeutig ein Platzhalter.
Tor 1:
BRIEF.mdexistiert, ist gefüllt und hat ein angegebenes Sign-Off.
2 · Lane → Tokens in BRIEF.md
Wähle eine Lane aus templates/LANES.md (oder definiere eine). Verpflichte ihren vollständigen Token-Satz vor dem Erstellen: Grund/Tinte/Akzent, Typografie-Stack, Körnungsmenge, Vignette, Gradierung und den Bewegungsregister (flott / gewichtet / fließend). Lese references/design-system.md.
Mache Schritt 3a zuerst, wenn du es noch nicht getan hast. Referenzen ändern legitimerweise die Lane-Wahl – Tokens vor dem Hinsehen zu verpflichten, ist, wie ein Stück auf dem System landet und vergessbar wird.
Tor 2: ein Token-Block, der in
BRIEF.mdeingefügt wurde. Keine Ad-hoc-Farben später – ein Hex, das in einer Szene erscheint und nicht im Token-Block, ist ein Fehler.
3a · Inspiration → work/NN-slug/inspiration.md
Schau, bevor du baust. Vier Quellen, und derselbe Agent muss sie tatsächlich öffnen, nicht sich erinnern:
| Quelle | Lese es für |
|---|---|
templates/scenario-motion-loops/ | 80-Loop-Canvas-System – references/loop-craft.md-Muster, scripts/loop-template.html-Helfer. Code zum Anpassen. |
repos/awesome-ai-motion/browse/resources.en.md | 190 Werke, die auf das echte Quell-Repository verlinken, jedes mit seiner Lizenz – AGPL-Einträge sind markiert. |
repos/awesome-ai-motion/browse/*.en.md | acht kuratierte Sammlungen über resources hinaus: motion, product, characters, education, music, stories, interactive, discoveries. |
repos/awesome-ai-motion/cases/*.en.md | 1.728 ausgelieferte Stücke mit dem Prompt des Erstellers und einem "Was zu lernen". |
$MG = if ($env:MG_STUDIO) { $env:MG_STUDIO } elseif (Test-Path "tools\mg.mjs") { (Get-Location).Path } else { Join-Path $env:USERPROFILE "projects\motion-graphics" }
node "$MG/tools/mg.mjs" find --loop tunnel # 80 Loop-Quellen
node "$MG/tools/mg.mjs" find --prompt shader # 112 Prompts + 1.728 Fallstudien
node "$MG/tools/mg.mjs" find --repo three # 190 lizenzierte Quell-Repositories
Fülle prompts/INSPIRATION.md: ≥ 3 Referenzen aus ≥ 2 Quellen, aufgeteilt in stiehl den Look (kein Code) und passe den Code an (Lizenz notiert). Lese references/inspiration.md.
Tor 3a:
inspiration.mdexistiert mit ≥ 3 benannten Referenzen und einem Mechanismus für jede. "Nichts hat es inspiriert" ist keine Antwort – es bedeutet, dass der Durchgang nicht gemacht wurde.
3b · Bestandssuche → work/NN-slug/inventory.md
Nun der Bau-Bestand. Bevor du etwas mit einem Namen von Hand erstellst, suche danach:
npx hyperframes@latest catalog --json | ConvertFrom-Json | Where-Object { $_.name -match 'transition|title|chart' } | Format-Table name,type,title
Notiere jeden Kandidaten und lehne jeden explizit mit einem Grund ab. Lese references/reuse-protocol.md.
Tor 3: beide Artefakte.
inventory.mdlistet ≥ 3 Kandidatenblöcke mit Urteilen auf;inspiration.mddeckt den Look ab. "Keinen" zu wählen ist erlaubt; nichts zu sagen ist es nicht.
4 · Text → BRIEF.md
Wörter vor Animation – lese references/copy-and-voice.md. Die Lane diktiert den Register, die Liste der verbotenen Wörter gilt, jedes Wort auf dem Bildschirm muss eine echte Behauptung, eine echte Zahl oder ein bewusstes Designelement sein. Wähle die Schriftart jetzt; sie trägt die halbe Stimmung.
Tor 4: endgültiger On-Screen-Text geschrieben und wörtlich in
BRIEF.mdzitiert.
5 · Musik → work/NN-slug/audio/ + prompts/BEATMAP.md
Musik zuerst, Bild danach geschnitten.
npx hyperframes@latest beats work\NN-slug # schreibt beats/<audio>.json
npx hyperframes@latest audio assets\music.mp3 --only=bpm,downbeats,onsets,loudness
Brauchst du ein Original-Bett? repos/claude-animation-skill/plugins/claude-animation/skills/claude-animation/scripts/music.mjs (MIT) macht jede Länge. Gleicher Ordner: sound.mjs für Cues, ambient.mjs für Betten.
Jeder Schnitt landet innerhalb von 1 Frame eines Beats.
Tor 5:
BEATMAP.mdhat jeden Schnitt in Sekunden und Frames, basierend auf den gemessenen Beats.
6 · Hauptbuch → work/NN-slug/ledger.json
Schreibe das Vektor-Hauptbuch bevor du Szeneneingänge erstellst. Eine Reihe pro Seam; Exit und Entry teilen Achse, Richtung und ungefähr Geschwindigkeit; eine dominante Richtung für das gesamte Stück. Schema: references/motion-rules.md. Dann überprüfe:
node repos\hyperframes\.agents\skills\motion-doctrine\scripts\seam-gate.mjs verify --ledger work\NN-slug\ledger.json --project work\NN-slug
Tor 6: Seam-Gate beendet mit 0. Ein fehlschlagender Seam ist ein Planungsfehler – repariere das Hauptbuch, nicht die Beschleunigung.
7 · Bauen
npx hyperframes@latest init work\NN-slug (oder von einer Lane in templates/ gerüstet), installiere gewählte Blöcke mit add, dann erstelle. Befolge den 12-Regel-Render-Vertrag von /hyperframes. Führe npx hyperframes@latest check --json aus, bis es sauber ist.
Tor 7:
check --jsonmeldet null Fehler.
8 · Rendern, messen, ansehen
node "$MG/tools/mg.mjs" render --piece 01-slug
node "$MG/tools/mg.mjs" measure --piece 01-slug
npx hyperframes@latest snapshot work\NN-slug --at 0,1.5,3,4.2,6.8 --zoom "#hero"
Dann öffne die Standbilder und sieh sie dir tatsächlich an. Zahlen fangen nicht auf, was hässlich ist.
Tor 8: jede Zahl in
references/quality-bar.mdbesteht, und du hast ≥ 3 Standbilder angesehen.
9 · Kritiker
Setze die motion-critic-Skill als Subagenten ein, nur mit: dem Brief, den gerenderten Standbildern, der Videodatei und der Latte. Es darf deine Argumentation nicht sehen. Behebe die größte einzelne Lücke, rendere neu, überprüfe erneut.
Tor 9: Kritiker-Punktzahl in
BRIEF.mdnotiert mit seiner benannten größten Lücke und der Behebung.
10 · Liefern
node "$MG/tools/mg.mjs" render --piece 01-slug --aspect 9:16
Master 16:9 + 9:16 Cut, 3–5 hochauflösende Standbilder für Thumbnails, attribution.md, Zahlen in BRIEF.md. Ein Stück ohne Standbilder ist nicht lieferbar.
Grundlagen – in jedem Stück vorhanden, keine Ausnahmen
Diese sind günstig, unsichtbar und machen den Unterschied zwischen "Animation" und "Motion Graphics". Ihre Abwesenheit ist das stärkste Anzeichen für Amateurarbeit:
- Eine Gradierung. Eine Hintergrundluminanz, eine Kontrastkurve, global angewendet. Nicht pro Szene.
- Körnung. 2–6 % bei 1:1. Tötet Banding in Verläufen und wirkt wie "gefilmt", nicht "gerendert".
- Bewegungsunschärfe bei allem, das schnell genug ist, um zu stroboskopieren.
- Sounddesign. Ein Bett plus Cues bei sichtbaren Aktionen. Stille ist eine Wahl, kein Standard.
- Ein Trägerübergang. Ein Objekt kreuzt den Schnitt an mindestens einer Stelle.
- Ein gehaltener Endzustand. Der letzte Frame ist komponiert und lesbar, nicht mitten im Tween aufgegeben.
Decke – genau eine pro Stück
Über den Grundlagen hinaus wähle eine herausragende Technik und mache sie zu dem, wofür das Stück in Erinnerung bleibt: ein Shader-Übergang, ein Typosystem, das sich verwandelt, eine Kamerabewegung, die das Produkt erklärt, ein Diagramm, das sich selbst zu einer Schlussfolgerung zeichnet. Alles andere bleibt ruhig. Zwei Schaustücke heben sich gegenseitig auf.
Verboten
bounce.out,elastic.out(Überschwingen viaback.out(1.4–1.7)ist in Ordnung)- Leerlauf-Wackeln – Atmen, Schweben, Pulsen, um Zeit zu füllen. Wenn eine Szene wartet, ist das ein Planungsfehler.
- Crossfades als Szenenübergänge
- CSS
filter: blur()auf Filmmaterial anstelle vonmedia-treatment - Text über einem belebten Bereich bei < 4,5:1 Kontrast
- eine Hex-Farbe, Schriftart oder Easing, die nicht im Token-Block ist
- Bestandsblöcke, die erkennbar bleiben
- "entfesseln / aufwerten / freisetzen / nahtlos / revolutionieren / die Zukunft von" im On-Screen-Text
Das Set, nicht nur das Stück
Ein einzelnes Stück wird allein beurteilt; ein Portfolio wird als Raster von Thumbnails beurteilt, nebeneinander, bei 200px. Zwei Stücke, die eine Werte-Struktur teilen (gleicher dunkler Grund, gleiches cremefarbenes Schriftbild), wirken wie ein wiederholtes Stück, egal wie unterschiedlich sie in der Bewegung sind.
Bevor du Stück N+1 beginnst, sieh dir die vorhandenen Thumbnails als ein Raster an …