motion-graphics – Dispatch-Eintrag
Bestätige die Route vor Schritt 0. Dieser Skill erstellt eine kurze, designgetriebene, unvertonte Bewegtgrafik (Bewegung ist die Botschaft; ~unter 10 s, kein Voice-Over). Eine längere, mehrszenige oder vertonte Behandlung →
/general-video; ein vertontes Video einer Website →/website-to-video; ein Themen-Erklärvideo →/faceless-explainer; eine Produkt-Promo →/product-launch-video; Untertitel auf vorhandenem Filmmaterial →/embedded-captions. Nicht im Rahmen: Live-/Renderzeit-Daten oder Filmmaterial, das nicht erfasst werden kann. Unsicher, ob bewegungsorientiert oder vertont? Lies zuerst/hyperframes.
Eine kurze, designgetriebene Bewegtgrafik. Asset-zuerst: Entscheide die Asset-Strategie und besorge echtes Material, bevor du den Shot designst, dann designe den Shot um das Vorhandene herum und komponiere durch Wiederverwendung von Katalogfähigkeiten. Alle Artefakte gehen nach PROJECT_DIR = videos/<Projektname>/ (erstellt in Schritt 0); alle folgenden Pfade sind relativ dazu.
| Phase | Ausführung | Primäres Artefakt | Detaillierter Ablauf |
|---|---|---|---|
| init | Bash | hyperframes.json | Schritt 0 |
| plan | Subagent – Suche entscheiden? + klassifizieren + Asset-Strategie | shot-plan.json (Entwurf: Kategorie, asset_needs-Anfragen, Brief) | agents/director.md (Teil 1) |
| source ◇ | Bash – Mediennutzung auflösen (überspringen, wenn asset_needs leer ist) | assets/ + assets/index.md | phases/source/guide.md |
| design | Subagent – Shot-Design um aufgelöste Assets herum | shot-plan.json (final: Block(s) + Layout + Bewegung + Positionen) | agents/director.md (Teil 2) |
| build | Subagent – Wiederverwendung-zuerst-Komposition | compositions/index.html | agents/builder.md |
| render | Bash – hyperframes render (MP4, oder --format webm/mov für Overlay) | renders/video.mp4 | Schritt 5 |
| verify | Bash – lint / inspect -> Reparatur-Subagent bei Fehlschlag | (Korrekturen direkt) | agents/finalize.md |
◇ source läuft nur, wenn die gewählte Kategorie Assets deklariert. Reine Code/Text-Kategorien (z. B. kinetic-type, die meisten charts/stat) haben asset_needs: [] und springen direkt vom Plan zum Design.
Kategorien – Aufteilung nach der Suchentscheidung
plan's erste Entscheidung ist: ist eine Suche erforderlich? Diese Gabelung teilt die Kategorien in zwei Gruppen; dann wird die spezifische Kategorie ausgewählt – bei suchgesteuerten nach der Art des Inhalts, den die Suche zurückgibt. Jede Kategorie ist ein categories/<id>/module.md (seine Planungs- und Bauregeln); das gemeinsame Bewegungsvokabular lebt in references/motion-vocabulary.md (→ hyperframes-animation-Regeln/Blueprints + Registry-Blöcke).
Form-Kategorien – keine Suche; der Benutzer liefert den Inhalt:
| Kategorie | Absicht | Stützt sich auf |
|---|---|---|
kinetic-type | prägnante Zeile / Zitat / Titel, bewegungsorientierter Text | caption-*-Blöcke + Animationsregeln |
stat | einzelne Heldenzahl / Count-up + Ring | apple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills} |
charts | Balken / Linie / Kreis / Rennen / % aus Daten | data-chart-Block |
logo-reveal | Logo-Sting / Brand-Lockup (Benutzer-Logo) | logo-outro / rules/svg-path-draw |
lower-thirds | Namens-/Titelbalken, Callouts, Social-Overlays | caption-* + Registry-Overlay-Blöcke |
Suchgesteuerte Kategorien – zuerst suchen, dann nach Inhaltstyp animieren (der RWA-Pfad):
| Zurückgegebener Inhalt | Kategorie | Animation |
|---|---|---|
| Webseite / Link | webpage | Webseiten-/UI-Animation (Scrollen, Einblenden, Cursor, Callouts) |
| Nachrichtenartikel | news | Schlagzeilen-Einblendung + Quellenkarte + Schlüsselfakt-Callouts |
| Tweet | tweet | animierte Tweet-Karte |
| Bild / Entität | asset-fusion | Die Geometrie des Assets wird zum Diagramm (RWA diegetische Fusion) |
Baureihenfolge: einzeln, abdeckungsorientiert (grob ist in Ordnung). kinetic-type aus dem Prototypen portiert; der Rest folgt.
Voraussetzungen
macOS Apple Silicon oder Linux x64. Systemtools: brew install node ffmpeg. npx hyperframes doctor einmal ausführen. macOS GPU-Rendering: export PRODUCER_BROWSER_GPU_MODE=hardware.
Optionale Schlüssel (lokale Fallbacks, falls nicht gesetzt) – nur benötigt von Kategorien, die Assets über Mediennutzung beschaffen/generieren:
| Schlüssel | Verwendet für | Fallback |
|---|---|---|
GEMINI_API_KEY / GOOGLE_API_KEY | Bildgenerierung (Mediennutzung auflösen) | Generierung überspringen / Nur-Suche |
| (asset_scout / Suchanbieter) | webpage/news/tweet + asset-fusion Echt-Asset-Suche | Kategorie degradiert zu asset-frei |
Ablauf
Schritt 0 – Initialisieren
Aktuelles Arbeitsverzeichnis ist das Agenten-Workspace-Root; schreibe alle Artefakte unter PROJECT_DIR = videos/<Projektname>/. <Projektname>: verwende das vom Benutzer angegebene Verzeichnis, sonst einen kurzen Kebab-Case-Namen aus der Absicht (<Betreff>-motion). Nicht den Workspace-Basename oder einen Zeitstempel.
Nur wenn $PROJECT_DIR/hyperframes.json nicht vorhanden ist:
PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<Projektname>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --skip-skills --example=blank
Einschränkungen: niemals hyperframes init im Workspace-Root ausführen; niemals ein weiteres hyperframes/-Verzeichnis innerhalb von PROJECT_DIR verschachteln; jeder Bash-Befehl (Master + Subagenten) ist eine (cd "$PROJECT_DIR" && ...)-Subshell – niemals ein bloßes cd.
Schritt 1 – Planen (Subagent: Director Teil 1)
Einen Subagenten starten. Prompt = vollständiges agents/director.md + ## Dispatch-Kontext (SKILL_DIR / PROJECT_DIR / die Benutzeranfrage / Schema: <SKILL_DIR>/references/shot-plan-ir.md). Er muss:
- Entscheiden: ist eine Suche erforderlich? (die erste Gabelung)
- Nein → eine Form-Kategorie auswählen (kinetic-type / stat / charts / logo-reveal / lower-thirds); Inhalt wird vom Benutzer geliefert;
asset_needs: []. - Ja → einen Suchplan in
asset_needs[]ausgeben (Nachrichten / Web / Tweet / Bild; zweipolige Abfragen). Die spezifische suchgesteuerte Kategorie (webpage / news / tweet / asset-fusion) wird durch den in Schritt 2 zurückgegebenen Inhaltstyp bestätigt und in Schritt 3 finalisiert.
- Nein → eine Form-Kategorie auswählen (kinetic-type / stat / charts / logo-reveal / lower-thirds); Inhalt wird vom Benutzer geliefert;
- Einen Entwurf
shot-plan.jsonschreiben (Hülle + gewählte Form-Kategorie oder Suchabsicht +asset_needs+ ein einabsätziger Shot-Brief). Schema:references/shot-plan-ir.md.
Validierung: [ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing.
Schritt 2 – Beschaffen ◇ (Bash: Mediennutzung, bedingt)
Wenn shot-plan.json.asset_needs nicht leer ist, Assets auflösen (suche / generiere / rufe ab → eingefrorene projektspezifische Pfade + Ledger). Siehe phases/source/guide.md (umhüllt media-use resolve; die suchgesteuerten Kategorien verwenden die Nachrichten-/Web-/Tweet-/Bildsuche). Wenn asset_needs leer ist, zu Schritt 3 springen.
# zur Veranschaulichung – siehe phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)
Anmutig degradieren: wenn eine Suche/Anbieter nicht verfügbar ist, fällt die Kategorie auf asset-frei zurück (im context.log notieren).
Schritt 3 – Design (Subagent: Director Teil 2)
Einen Subagenten starten (Prompt = agents/director.md Teil 2 + Dispatch-Kontext einschließlich des aufgelösten assets/index.md, falls Schritt 2 ausgeführt wurde + catalog-map.md). Er entwirft den Shot um die verfügbaren Assets herum: wähle den/die Katalogblock(s) + die hyperframes-animation-Regeln/Blueprints, das Layout, die Bewegung, Beats und (für asset-fusion) die element_positions + Pipetten-Palette. Finalisiert shot-plan.json (content.block + content.customize + kategoriespezifischer Inhalt).
Schritt 4 – Bauen (Subagent: Builder, Wiederverwendung-zuerst)
Einen Subagenten starten. Prompt = vollständiges agents/builder.md + Dispatch-Kontext (shot-plan.json, catalog-map.md, das module.md der Kategorie, references/motion-vocabulary.md, references/builder-contract.md). Wiederverwendung-zuerst: npx hyperframes add <block> + direkt anpassen; nur Lücken und die asset-fusion-Affordanz von Hand erstellen. Ausgabe compositions/index.html gemäß HF-Vertrag (pausierte GSAP-Timeline auf window.__timelines, class="clip" + stabile IDs, tl.seek(0), deterministisch).
Schritt 5 – Rendern (Bash)
(cd "$PROJECT_DIR" && npx hyperframes render . -q draft -o ./renders/video.mp4)
# transparente Overlay-Variante: --format webm (oder mov)
Schritt 6 – Verifizieren (Bash → Reparatur-Subagent bei Fehlschlag)
(cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .)
exit 0 → fertig. Bei Lint-/Inspektionsfehlern den Reparatur-Subagenten starten (agents/finalize.md: Schnappschuss-QA + eine direkte Korrekturrunde + erneutes Rendern). Niemals eine festgelegte Dauer in der Reparatur ändern.
Bericht + optionales Vorschau
Über das endgültige Ergebnis berichten (renders/video.mp4, oder die .webm / .mov-Overlay-Variante) + Dauer. Während des Laufs keine Vorschau öffnen. Nur auf Anfrage anbieten, gestartet nach dem Rendern, damit die endgültige Datei ausgeliefert wird:
(cd "$PROJECT_DIR" && npx hyperframes preview) # Studio-UI; oder `npx hyperframes play` für einen teilbaren Link
Flags leben im hyperframes-cli-Skill (references/preview-render.md).
Fortsetzungstabelle
| Zustand | Fortsetzen ab |
|---|---|
kein shot-plan.json | Schritt 1 (planen) |
shot-plan.json hat asset_needs, kein assets/ | Schritt 2 (beschaffen) |
shot-plan.json final, kein compositions/index.html | Schritt 3/4 (design+bau) |
compositions/index.html existiert, kein renders/video.mp4 | Schritt 5 (rendern) + Schritt 6 |
renders/video.mp4 existiert | Bericht + Stopp |
Designnotizen (Maintainer – die Ausführung liest dies nicht)
- Asset-zuerst-Begründung: Die Beschaffung erfolgt früh und informiert das Shot-Design (der RWA-Ablauf: analysieren → suchen → prüfen → komponieren). Die suchgesteuerten Kategorien (
webpage/news/tweet) undasset-fusionstützen sich beide auf die Mediennutzungssuche (Nachrichten/Web/Tweet/Bild), die die dokumentierte RWA-Linie der Mediennutzung darstellt. - Wiederverwendung-zuerst: Das Ökosystem-Analogon zu LLM-generierten Vorlagen ist „Katalogblöcke +
hyperframes-animation-Regeln komponieren". HFs pausierte GSAP-Timeline ≙ RemotionsuseCurrentFrame. - Kategorie-Modulvertrag: Ein
categories/<id>/module.md(Planung + Bau), gemeinsam genutztesreferences/motion-vocabulary.md(+ optionales eval). Hinzufügen einer Kategorie = Ordner einfügen + seine Klassifikatorzeile inagents/director.mdregistrieren + seine Zeile incatalog-map.md; die Phasen-Pipeline bleibt unberührt. - Verzeichnisstruktur:
videos/<Projektname>/ hyperframes.json context.log shot-plan.json # das IR (Director-Ausgabe) assets/ assets/index.md # Mediennutzungsausgabe (falls beschafft) compositions/index.html # Builder-Ausgabe renders/video.mp4 - Registrierung: Im
hyperframes-Router – die Absicht „designgetriebene kurze Bewegtgrafik" + Workflow-Beschreibung hinzufügen; die motion-graphics-Trigger aus/general-videoherausschneiden; umgekehrte DO-NOT-USE-Kanten hinzufügen. Siehemotion-graphics-genre.md§5-7.