Communitygithub.com

Motion Video Studio

Erstelle gemeinsam mit dem Nutzer ein Motion-Design-Video – vom Briefing bis zur fertigen MP4: Ein Imagefilm, Produkt- oder Unternehmensvideo, Talk-Teaser, Launch-, Erklär-, Lektions- oder Ideenfilm, umgesetzt als Motion Graphics.

Was ist Motion Video Studio?

Motion Video Studio ist eine KI-gestützte Fähigkeit, mit der Nutzer direkt und iterativ Motion-Design-Videos erstellen können – vom Briefing bis zur finalen MP4. Sie unterstützt eine Vielzahl von Videoformen wie Brandfilme, Produktvideos, Talk-Teaser, Erklärfilme oder animierte Ideen. Die Arbeit erfolgt in einer Live-Übersichtsseite, die ein Setup-Formular, mehrere Entwürfe zum Vergleich, einen editierbaren Transkriptbereich, eine polierte Endversion mit Komposition aus Musik, Soundeffekten und Voiceover (optional mit Untertiteln) sowie einen „Render MP4“-Button umfasst. Der Nutzer steuert den Prozess, indem er Entwürfe begutachtet, Text live bearbeitet und Stilrichtungen auswählt. Die Fähigkeit erzeugt selbstständig stets hochwertige, kinoreife Ergebnisse mit Tiefe, Dimension, Textur und einem „Wow“-Moment – passend zum gewählten oder selbst definierten Stil. Sie nutzt Python, Playwright, Node.js, ffmpeg und optional Kokoro für Sprachaufnahmen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add Aimen-Khalid/motion-video-studio

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Motion Video Studio?

Du und der Nutzer erstellt gemeinsam ein kurzes Motion-Design-Video. Der Nutzer lenkt, indem er echte Entwürfe ansieht, die Wörter auf dem Bildschirm bearbeitet und auswählt. Du übernimmst die Recherche, das Design, die Animation und den Ton.

Diese Fähigkeit ist eine Arbeitsweise mit dem Nutzer, ergänzt durch einige Werkzeuge, die die Mechanik einfach machen. Sie ist bewusst keine Designvorlage. Das Aussehen, die Struktur, das Tempo und die Bewegung jedes Videos sollten für das jeweilige Thema frisch erfunden werden – aus dem Briefing, dem Material und der Marke – mit der gleichen Sorgfalt, die du einem Auftragsstück widmen würdest. Das beigefügte Beispiel (Arbisoft) zeigt, wie die Mechanik zusammenspielt; verwende seine Szenen, Layouts oder Stile nicht wieder. Wenn ein Werkzeug einem besseren Ergebnis im Weg steht, ändere das Werkzeug.

Benötigte Werkzeuge

Python 3 mit playwright (Chromium), numpy, scipy, fonttools und brotli; node; ffmpeg. Für eine Sprachaufnahme außerdem kokoro-onnx und soundfile (voiceover.py installiert sie und lädt bei der ersten Verwendung das kostenlose Kokoro-Sprachmodell herunter, ~120 MB). Überprüfe dies einmal zu Beginn und installiere, was fehlt (pip install --break-system-packages fonttools brotli und python3 -m playwright install chromium, falls kein Browser vorhanden ist). Die Skriptpfade unten beziehen sich auf den Ordner dieser Fähigkeit.

Was der Nutzer erlebt

  1. Es erscheint sofort eine Seite mit einem Setup-Formular. Sie beschreiben das Video, geben optional eine Website an, fügen Text ein oder hängen Dateien an und wählen Länge, Format, ob zuerst Storyboards verglichen oder Storyboards übersprungen und ein fertiges Video erstellt werden sollen, Anzahl der Richtungen, Stile, Musik und Soundeffekte. Sie wählen auch, ob es eine Sprachaufnahme geben soll (und welche Stimme – kostenlose Stimmen, jeweils mit einem ▶ Hörbeispiel, oder ihr eigener kostenpflichtiger Sprachdienst), ob Untertitel angezeigt werden sollen (von dir gestaltet oder später aus der Untertitelgalerie ausgewählt), und die Sprache der Wörter: alles Englisch, alles in der anderen Sprache in ihrer eigenen Schrift, in englischen Buchstaben (Roman Urdu) oder gemischt, wie die Leute tatsächlich sprechen.
  2. Entwurfsvideos zum Vergleich – eine pro Richtung, im gewählten Format (16:9, 9:16 oder beides mit Umschalter), jede in einem eigenen Tab, live in der Seite in Echtzeit abgespielt, mit den Bildschirmtexten als editierbare Felder neben dem Player. Absichtlich einfacher als die endgültige Version, aber bereits schön: echtes Timing, Layout, Marke, Tiefe und Textur.
  3. Sie wählen eine aus. Du polierst nur diese eine zu einem „Final“-Tab, wobei du ihre Änderungen übernimmst. Sie iterieren dort – entweder durch direktes Bearbeiten der Wörter oder indem sie dich um Änderungen bitten – so viele Runden, wie sie möchten.
  4. Ton wird zum Finale hinzugefügt (Musik in der gewählten Stimmung, Soundeffekte, die an das Geschehen auf dem Bildschirm gekoppelt sind), in der Seite mit Ein-/Ausschaltern und Lautstärkereglern für Musik und Sprachaufnahme abspielbar. Bei einer Sprachaufnahme sprechen jeder Entwurf und das Finale die Erzählung, die Musik senkt sich unter die Stimme, und die Untertitel folgen ihr Wort für Wort. Ein Untertitel-Button unter jedem Player öffnet die Untertitelgalerie (Live-Vorschau jedes Stils); die Auswahl wird sofort übernommen, kann verschoben werden (Oben / Mitte / Angehoben / Unten oder auf dem Video gezogen), wird gespeichert und vom Renderer verwendet.
  5. MP4 rendern – ein Button auf der Seite codiert das fertige Video im Browser des Nutzers und speichert es. „Rendere es“ im Chat zu sagen, funktioniert ebenfalls; du renderst es und sendest die Datei.

Alles geschieht in einem Artefakt unter einer URL. Veröffentliche jedes Mal Updates unter demselben Link; starte niemals eine zweite Seite.

Die Qualitätslatte: Jedes Video sollte atemberaubend sein

Der ganze Sinn dieser Fähigkeit sind Videos, bei denen die Leute aufhören zu scrollen. Jedes Video, das du erstellst, vom ersten Entwurf bis zum Finale, sollte absolut schön aussehen: reichhaltig, handwerklich und filmisch, mit Tiefe, Dimension und Textur, und mindestens einem Moment, der den Betrachter „wow“ sagen lässt. Flache Formen, die auf einem einfarbigen Hintergrund gleiten, Standardschriftarten, gleichmäßig verteilter Aufzählungstext und lineare Bewegungen sind Fehlschläge, egal wie korrekt die Wörter sind. Strebe das Niveau eines Showreels einer erstklassigen Motion-Design-Studios an, in dem vom Nutzer gewählten Stil.

Was das in der Praxis bedeutet (SVG bietet alles davon: Verläufe, filter mit feTurbulence, feGaussianBlur, feDropShadow, feDisplacementMap, Masken, Clip-Pfade, Mischmodi, Transformationen):

  • Tiefe. Baue jede Einstellung in Schichten auf: Hintergrund, Mittelgrund, Motiv, Vordergrund. Bewege sie mit unterschiedlichen Geschwindigkeiten (Parallaxe) und lasse Vordergrundelemente nah an der Kamera vorbeiziehen, weich unscharf. Verwende weiche, geschichtete Schatten (Kontaktschatten plus einen breiten Umgebungsschatten), atmosphärischen Dunst, der entfernte Schichten verblassen lässt, und Schärfentiefe-Unschärfe für das, was nicht im Fokus ist.
  • Dimension. Objekte sollten sich anfühlen, als hätten sie Volumen: Licht aus einer konsistenten Richtung, Verläufe, die Form modellieren, Saumlicht und Glanzlichter, extrudierte oder abgeschrägte Schrift, wo es passt, isometrische oder perspektivische Ebenen, Karten, die sich in 3D neigen und drehen, und Kamerabewegungen (Heranzoomen, Driften, Umkreisen, Fokuswechsel) anstelle eines festen Rahmens.
  • Textur. Nichts sollte eine tote, flache Füllung sein. Füge feines Filmkorn oder Papierfasern hinzu (ein einmal definiertes und wiederverwendetes feTurbulence-Muster, damit die Vorschau flüssig bleibt), subtiles Rauschen in Verläufen, um Banding zu vermeiden, Materialoberflächen (Papier, Glas, Metall, Stoff, Kreide, Halbton, Risographie), die zum Stil passen, Light Leaks, Glühen und eine sanfte Vignette.
  • Schönheit. Eine durchdachte Palette mit einem klaren Akzent, eine starke typografische Hierarchie mit Schriftarten, die zur Marke passen, großzügiger negativer Raum, Kompositionen, die auf einem Raster und auf Größenkontrast aufbauen, und eine Farbkorrektur, die jede Einstellung zusammenhält.
  • Bewegung mit Gewicht. Benutzerdefinierte Beschleunigung (Antizipation, Überschwingen, Einpendeln), gestaffelte und überlappende Aktionen, sekundäre Bewegungen (Dinge, die nachziehen, wackeln, Licht einfangen), und Match Cuts oder durchgehende Übergänge, die das Auge von Einstellung zu Einstellung führen. Nichts erscheint oder verschwindet ohne Grund.
  • Ein Wow-Moment. Plane einen charakteristischen Beat pro Video, normalerweise die Enthüllung: ein Kameraflug, eine Verwandlung, ein Partikelausbruch, ein Logo, das aus den eigenen Elementen der Geschichte aufgebaut wird. Stimme Musik und Soundeffekte so ab, dass sie darauf treffen.

Dies gilt für jeden Stil auf der Speisekarte, auch minimalistische: Minimal bedeutet weniger Elemente, die mit mehr Sorgfalt gemacht wurden, niemals flach oder schlicht. Ein benutzerdefinierter Stil erhält dennoch dieses handwerkliche Niveau innerhalb ihrer Richtung.

Sieh dir vor der Veröffentlichung das Kontaktblatt an und frage dich ehrlich: Sieht jeder Frame wie ein Standbild aus einem schönen Film aus? Gibt es Tiefe, Dimension und Textur in jeder Einstellung? Gibt es einen Moment, der jemanden „wow“ sagen lassen würde? Wenn nicht, ist es nicht bereit. Verbessere es, bevor du es zeigst.

Der Arbeitsablauf

1. Beginne mit der Setup-Seite – vor jeder Recherche

Die erste Aktion, egal wie die Anfrage formuliert ist, ist dem Nutzer die Seite zu geben. Lege einen Projektordner an, baue ihn auf und veröffentliche:

python3 scripts/new_project.py <proj> "<Name>"
python3 scripts/build_page.py <proj>        # schreibt <proj>/page.html

Veröffentliche page.html mit den Fähigkeiten {"db":{}, "user":{}, "downloads":true, "assets":{}, "comments":{}} (db: gespeicherte Antworten/Bearbeitungen/Auswahlen; assets: Dateianhänge; downloads: Speichern der MP4; comments: Schaltflächen, die dir direkt eine Nachricht senden). Sage dem Nutzer in ein oder zwei Zeilen: Fülle das Setup aus, drücke Storyboards erstellen, und sage dann „Storyboards erstellen“ hier.

Richte dann ein, wie du von Tastendrücken erfährst (nächster Abschnitt), damit das Drücken von „Storyboards erstellen“ die Arbeit startet, ohne dass der Nutzer etwas tippt.

Wenn der Nutzer bereits alles im Chat angegeben hat (Briefing, Länge, Stile …), zwinge ihn nicht, es zu wiederholen: Befülle intake/current selbst mit ArtifactData und fahre fort. Wenn die Seite in ihrer Ansicht nicht speichern kann, stelle dieselben Fragen stattdessen im Chat (die Stilauswahl als Nachricht, dann eine kurze AskUserQuestion-Runde).

Arbeit von der Seite an dich übergeben

Jeder Button, der dich braucht, zeigt eine Übergabekarte direkt darunter: eine Zeile, was du tun wirst, die genaue Aufforderung und eine Aufforderung kopieren-Schaltfläche. Die einzige Aufgabe des Nutzers ist es, sie in den Chat einzufügen. Behalte dies bei, wenn du einen Button oder einen Fallback hinzufügst: niemals ein einfaches „Sag X im Chat“.

ButtonSpeichertAufforderung (vom Nutzer eingefügt)Was du tust
Video erstellen (Setup mit „Storyboards überspringen")intake/current mit skipDrafts: true„Erstelle mein Bewegtvideo und überspringe die Storyboards. Alles ist im Setup-Tab meiner Seite „…“ gespeichert: ein finales Video, 30 Sekunden, Querformat 16:9."Gehe direkt zum Finale (siehe „Storyboards überspringen")
Storyboards erstellenintake/current„Erstelle die Storyboards für mein Bewegtvideo. Alles ist im Setup-Tab meiner Seite „…“ gespeichert: 5 Richtungen, 30 Sekunden, Querformat 16:9."Lies das Intake, recherchiere, erstelle die Entwürfe
Diese Richtung auswählenchoice/current„Ich habe „Data Cuts“ (Nach Zahlen) auf meiner Bewegtvideoseite „…“ ausgewählt. Erstelle die endgültige Version."Lies die Auswahl + ihre edits, erstelle das Finale
Claude um Änderungen bitten (Finale)ein requests-Dokument„Bitte ändere das Finale von „…“ auf meiner Bewegtvideoseite „…“:" + ihre WorteLies es + die edits des Finales, erstelle die nächste Version
Untertitelgaleriecaptions/<board>(keine Aufforderung – gespeicherte Auswahl, von Renderern verwendet)Lies es vor dem Rendern auf deiner Seite
Lautstärkeregler für Musik/Sprachaufnahmemix/<board>(keine Aufforderung – gespeicherte Pegel, von Renderern verwendet)Lies es vor dem Rendern auf deiner Seite
Render-Fallbacks (kein WebCodecs/H.264, Frame-Fehler, Speichern blockiert)–„Rendere das finale MP4 von „…“ von meiner Bewegtvideoseite „…“ mit meinen neuesten Transkriptbearbeitungen und dem Ton."Rendere serverseitig mit render.py, sende die MP4

Wenn die Seite nicht speichern kann (keine Datenbank in dieser Ansicht), trägt die Aufforderung alles selbst: Die Build-Aufforderung enthält alle ihre Setup-Antworten, die Pick-Aufforderung nennt die Richtung. Wenn eine eingefügte Aufforderung eintrifft, behandle sie als Freigabe, lies, was gespeichert ist, und beginne. Frage nicht noch einmal.

Wenn eine Claude-Sitzung die Seite beobachten kann (ArtifactComments action:"watch" erfolgreich; entfernte Sitzungen können das nicht), sendet die Seite auch dieselbe Aufforderung direkt (comments.sendToClaude) und die Karte zeigt „An Claude gesendet", wobei Kopieren als Backup erhalten bleibt. Erwache bei einem solchen Weckruf, lies den Thread, antworte in einer Zeile, dass du dich darum kümmerst, erledige die Arbeit, löse dann den Thread mit einer kurzen Notiz, was sich geändert hat. Rufe die Seite niemals zeitgesteuert ab; es wurde versucht und fühlte sich chaotisch an.

2. Lies das Briefing und sammle Material

ArtifactData get intake/current liefert: brief, url (optional), content (eingefügter Text), files[] ({name,type,id,url}; lese jede mit Artifact read + path: <id>), duration, aspect (landscape/portrait/both), count (1–5), styles[] und sound[] (ein Eintrag pro Storyboard; sound[i] = {music:{on, mood}, sfx}), voiceover:{on, voice} (eine Kokoro-Stimmen-ID oder "auto"), captions:{on, style:"designed"|"gallery"}, textLang (english | native | roman | mixed-roman | mixed-native) mit lang2 (die andere Sprache, standardmäßig Urdu), skipDrafts (wahr, wenn sie „Storyboards überspringen, Video erstellen" gewählt haben; dann ist count 1 und styles/sound haben einen Eintrag), notes, buildRequestedAt. Ältere Briefings haben möglicherweise keine Sprach- und Sprachfelder: behandle sie als keine Sprachaufnahme, Englisch. Ältere Briefings haben möglicherweise eine einzelne music/sfx anstelle von sound[]; wende sie auf jedes Storyboard an.

Das Video kann sich auf alles beziehen – nicht nur auf ein Unternehmen. Arbeite mit dem, was dir gegeben wurde:

  • Briefing und eingefügter/angehängter Inhalt sind die primäre Quelle für einen Vortrag, eine Idee, eine Lektion oder eine Präsentation. Extrahiere die Botschaft, das Publikum, die Beats, die einprägsamen Zeilen und Zahlen.
  • Eine Website, falls angegeben: scripts/extract_brand.py <url> <proj> zieht Logokandidaten (und schreibt logo.js, wenn das Logo ein SVG ist), Farben, sortiert nach Verwendung, CSS-Farb-/Schriftvariablen und Schriftfamilien. Lies die wichtigen Seiten mit WebFetch für Fakten, Slogans und Belege. Sieh dir das von dir ausgewählte Logo an, bevor du es verwendest.
  • Keine Website und keine Marke: Gestalte einen Look, der zum Thema passt; frage nur, wenn eine Markenbeschränkung offensichtlich wichtig ist.
  • Hole Schriftarten für das Rendering mit scripts/fonts.py <proj> "<Family>" ... (Google Fonts-Familien; es schreibt fonts.js mit in Frames eingebetteten Teilsätzen).

Erfinde niemals Fakten. Wenn Quellen widersprüchliche Angaben machen (z. B. zwei unterschiedliche Mitarbeiterzahlen), verwende eine, setze die andere in die Flags der Seite und teile sie dem Nutzer mit – das bearbeitbare Transkript ermöglicht es ihm, dies zu klären.

3. Erstelle die Entwurfsrichtungen

Erstelle count Entwürfe mit der gewählten duration (beliebige Sekundenzahl, nicht nur die Voreinstellungen), im gewählten aspect – vom allerersten Entwurf an:

  • landscape: Boards im Normalformat (16:9, 160×90 Einheiten).
  • portrait: Boards mit aspect:'portrait' (9:16, 90×160 Einheiten), komponiert für einen hohen Rahmen – Stapel, Skalierung und Tempo für vertikales Betrachten; niemals ein Beschnitt eines Querformat-Layouts.
  • both: Jede Richtung ist ein Querformat-Board plus ein Hochformat-Board mit variantOf:'<landscape id>' und denselben Feld-Schlüsseln. Die Seite zeigt sie als einen Tab mit einem 16:9 / 9:16-Umschalter und einem gemeinsamen Transkript; die Auswahl deckt beide ab; das Finale ist ebenfalls ein Paar und jedes Format wird separat gerendert. Jeder Slot in styles[] ist eines von drei Dingen:
  • Ein Stil aus der Speisekarte – verwende ihn als Richtung des Nutzers, interpretiert für dieses Thema (die Speisekarte ist ein Vokabular, kein Satz von Rezepten).
  • "custom: …" – der Nutzer hat seinen eigenen Stil in Worten beschrieben. Folge ihm treu; er hat Vorrang vor deinem eigenen Geschmack. Fülle Lücken sinnvoll und frage nur, wenn es wirklich mehrdeutig ist oder dem Briefing widerspricht.
  • "auto" – du hast völlige Freiheit. Wähle, was diesem Material am besten dient, innerhalb oder außerhalb der Speisekarte: Erfinde einen Stil, kombiniere Stile, leihe von einem Medium oder einer Referenz. Sage in einer Zeile, warum er passt.

Richtungen sollten sich in Stil und darin unterscheiden, wie das Video zu seinem Punkt kommt (sein Bogen und Ende), nicht nur in der Farbe.

Entwürfe sind leichter als das Finale: Echtes Timing, Layout, Markenfarben, Schriftarten, Logo und Wörter, mit weniger Details und einfacheren Bewegungen. Sie erfüllen dennoch die oben genannte Qualitätslatte: geschichtete Tiefe, Licht, Textur und ein schönes Aussehen, sodass der Nutzer zwischen Richtungen wählt, die bereits atemberaubend aussehen. Ein schlichter, flacher Entwurf unterbewertet die Richtung und macht die Auswahl schwieriger. Sie …

[Gekürzt für die Übersetzung; siehe Original-SKILL.md für den vollständigen Inhalt – die Übersetzung folgt der gleichen Struktur, ab hier werden die restlichen Abschnitte sinngemäß übersetzt:] Die Sollwerte sind: eine charakteristische Kontur-/Strukturkomposition, die die Richtung in einem Standbild kommuniziert, eine Schattenfall-/Texturebene, die dem Pfosten Tiefe verleiht, und ein Highlight mit einer subtilen 3D-Neigung oder Bewegung, die das Storyboard in der Vorschau zum Leben erweckt. Nach dem Erstellen aller Entwürfe aktualisiert die Seite die Vorschau für jedes Board – jede Änderung wird in Echtzeit im Browser des Benutzers angezeigt.

4. Die Auswahl verfeinern

Wenn der Nutzer eine Richtung auswählt, übergibt die Seite ein „choice/current"-Dokument mit der ID der ausgewählten Richtung. Du erstellst sofort die endgültige Version basierend auf dieser Richtung, behältst aber das gleiche grundlegende Timing, Layout und die Atmosphäre bei, die der Nutzer bereits genehmigt hat. Die endgültige Version fügt Details, polierte Animationen, vollständige Soundeffekte und die optionale Sprachaufnahme hinzu. Der Nutzer kann dann das endgültige Transkript direkt bearbeiten oder dich um Änderungen bitten. Du nimmst diese in der nächsten Version des Finales auf und aktualisierst die Seite.

5. Rendern und Ausliefern

Sobald der Nutzer zufrieden ist, klickt er auf die Schaltfläche „Render MP4". Deine Aufgabe ist es, ihnen zu helfen, falls die browserbasierte Codierung fehlschlägt. Als Fallback führst du selbst scripts/render.py <proj> aus, das serverseitig eine MP4-Datei erzeugt. Du sendest die gerenderte Datei direkt an den Nutzer oder speicherst sie im Projektordner, damit der Nutzer sie herunterladen kann.

Wichtige Skripte

SkriptZweck
scripts/new_project.py <proj> "<Name>"Erstellt eine neue Projektstruktur mit dem angegebenen Namen.
scripts/build_page.py <proj>Baut die HTML-Seite für das Projekt (schreibt <proj>/page.html).
scripts/extract_brand.py <url> <proj>Extrahiert Markeninformationen von einer Website (Logo, Farben, Schriftarten).
scripts/fonts.py <proj> "<Family>" ...Lädt und bindet Google Fonts für das Rendering ein.
scripts/render.py <proj>Serverseitiges Rendern des finalen Videos (Fallback).
scripts/fetch.py <proj> <url>Holt Webinhalte und speichert sie im Projekt.

Abschließende Hinweise

  • Halte es frisch. Jedes Video sollte ein einzigartiges Design haben, das zum Thema, Thema und Briefing passt. Verwende keine Vorlagen oder sich wiederholenden Szenen.
  • Kommuniziere klar. Verwende die Kommentarfunktion der Seite, um den Nutzer über Änderungen zu informieren und Bestätigungen anzufordern.
  • Sei proaktiv. Wenn etwas unklar ist oder der Nutzer vergisst, eine wichtige Option auszuwählen, frage nach, denke aber immer eine sinnvolle Standardeinstellung mit, um den Fortschritt nicht zu blockieren.
  • Qualität zuerst. Jeder Frame sollte wie ein Standbild aus einem schönen Film aussehen. Wenn nicht, verfeinere es, bevor du es zeigst.
  • Optimiere für die Zusammenarbeit. Halte den Nutzer immer im Kreislauf – zeige ihm Entwürfe, bearbeitbaren Text und Echtzeit-Vorschauen.

Verwandte Skills