Communitygithub.com

Cartoon-Audio-Short – Animierte Kurzfilme auf Deutsch oder Arab…

Erstelle einen vertikalen animierten Cartoon-Kurzfilm auf Deutsch oder Arabisch. Bietet 10 Ideen, schreibt das Skript und verwandelt das Voiceover in eine fertige MP4-Datei mit dezentem Hintergrundmusik- und Soundeffekten unter der Stimme. Nutzbar für jeden Cartoon-Kurzfilm oder animierte Geschichtenvideos, einschließlich arabischer Anfragen wie فيديو كرتون, قصة متحركة, أنميشن, شورتس.

Was ist Cartoon-Audio-Short – Animierte Kurzfilme auf Deutsch oder Arab…?

Diese Fähigkeit ermöglicht die vollständige Produktion eines vertikalen animierten Cartoon-Kurzfilms (1080×1920, 30 fps) aus einer Idee, einem Skript oder einem vorhandenen Voiceover. Sie ist für Cursor, Codex und andere KI-Agenten optimiert und unterstützt sowohl Deutsch als auch Arabisch (inklusive Dialekte). Die Pipeline umfasst: (1) Generierung von 10 originellen Story-Ideen, (2) Erstellung eines optimierten Skripts basierend auf einer bewährten Fünf-Teile-Struktur, (3) Zeitsteuerung des Voiceovers mittels ASR- oder Skriptausrichtung, und (4) Aufbau der gesamten 3D-Welt mit ‚flat 2D bean-head‘-Figuren in einer bunten 3D-Umgebung – direkt als MP4 rendern. Die Audiomischung folgt strikten Vorgaben: Hintergrundmusik liegt 16 dB unter der Stimme, Soundeffekte bei maximal 50 % des Sprachpegels, um eine klare Verständlichkeit zu gewährleisten. Die Fähigkeit installiert automatisch ein Toolkit mit Three.js, einer Zeichenbibliothek für Toon-Materialien, einem Python-Timing-Skript und Playwright für das Rendering. Ideal für Entwickler und Content-Ersteller, die schnelle, qualitativ hochwertige animierte Kurzfilme benötigen – ohne manuelle Bearbeitung.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tareqmm535-crypto/cartoon-short-kit/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

Cartoon-Kurzfilm: Idee → Skript → Voiceover → fertiges MP4

Der Look: flache 2D-Strichmännchen-Cartoon-Figuren (auf Leinwand gezeichnete „Karten“ mit dunklen Konturen) in einer bunten 3D-Welt mit schwarzen Tintenlinien, gemalten Texturen, Tiefenschärfe und gleitenden Kameras. Die Ausgabe ist 1080×1920, 30 fps, genau so lang wie das Voiceover. Die Stimme des Benutzers bleibt unverändert. Die Hintergrundmusik und Soundeffekte werden synthetisiert: Musik 16 dB unter der Stimme, Soundeffekte bei 50 % des Sprachpegels oder weniger. Bewährt mit „The Soldier Who Never Left“ (19,7 s, 8 Einstellungen).

Falls diese Fähigkeit als Dateien im Chat ankommt

Der Benutzer kann SKILL.md und cartoon-short-kit.zip senden und etwas sagen wie „lies diese Fähigkeit, installiere sie und verwende sie“ (اقرأ هذه المهارة، وثبّتها، واستخدمها). Dann:

  1. Lies diese gesamte Datei und befolge sie. Erkläre nicht, was eine Fähigkeit ist, und stelle keine Einrichtungsfragen.
  2. Entpacke das Kit in einen beschreibbaren Ordner (siehe 4.0). Bestätige, dass engine/main.js und vendor/three.module.js vorhanden sind.
  3. Wenn diese Umgebung einen persönlichen Skills-Ordner hat (z. B. ~/.claude/skills/), kopiere SKILL.md und das Kit in cartoon-audio-short/ dort. Wenn keiner vorhanden ist, sage nicht, dass es dauerhaft installiert ist; sage in einer kurzen Zeile, dass es für diesen Chat bereit ist und die beiden Dateien in einem neuen Chat erneut gesendet werden müssen.
  4. Antworte in einer kurzen Zeile und gehe direkt zu Phase 1.

Sprache: Deutsch oder Arabisch

  • Chat: Antworte in der Sprache der Benutzernachrichten ab der ersten Antwort. Wenn der Benutzer Arabisch schreibt oder danach fragt, sind alle Nachrichten auf Arabisch: Fragen, Optionsbezeichnungen und -beschreibungen, die Aufgabenliste, Ideen, Fortschrittsnotizen, Fehler und die Liefernotiz. Verwende einfache Alltagswörter und passe den Dialekt an, falls der Benutzer einen verwendet. Englisch bleibt nur für Dateinamen und Befehle, in einer eigenen Zeile, damit rechts-nach-links-Text sie nicht durcheinanderbringt.
  • Skript: Die Skriptsprache folgt dem Chat, es sei denn, der Benutzer wünscht etwas anderes. „أريد أفكار بالعربي“ bei einer beliebigen Frage bedeutet Phase 2 auf Arabisch.
  • Arabische Varietät: Schreibe einfaches Hocharabisch, es sei denn, der Benutzer schreibt oder bittet um einen Dialekt (Irakisch, Ägyptisch, Golf, Levantinisch usw.). Unterbrich nicht, um nachzufragen. Beende die Skriptantwort mit einer Zeile: „تريده بلهجة ثانية؟ اكتب اللهجة وسأعيد كتابته.“ Mische niemals Hocharabisch und Dialekt in einem Skript, es sei denn, der Benutzer verlangt es.
  • Feste Fragen auf Arabisch. Verwende diese Formulierung:
    • "من أين نبدأ؟"
      • "الصوت جاهز": Lade die Audiodatei hoch, zusammen mit dem Text, falls vorhanden, und ich erstelle das Video.
      • "عندي نص": Ich verbessere es und gebe dir Aufnahmetipps, dann erstelle ich das Video nach dem Hochladen des Audios.
      • "أحتاج إلى أفكار ونص": Ich werde zehn originelle Ideen vorschlagen, dann das Skript für die von dir gewählte Idee schreiben.
    • "كم مدة الفيديو؟"
      • "من 20 إلى 30 ثانية (مُوصى به)": etwa 40 bis 60 Wörter.
      • "من 30 إلى 45 ثانية": etwa 60 bis 90 Wörter.
      • "من 45 إلى 60 ثانية": etwa 90 bis 120 Wörter.

Regeln

  • Geschichten, Figuren und Einstellungen sind immer originell. Erstelle niemals das Video eines anderen Urhebers Einstellung für Einstellung nach. Biete stattdessen eine originelle Interpretation derselben Idee an.
  • Keine realen, namentlich genannten lebenden Personen als Figuren und keine Markenmaskottchen oder Logos.
  • Keine Untertitel, es sei denn, der Benutzer bittet darum. Diegetischer Text (eine eingravierte Nachricht, ein Schild) ist in Ordnung und muss korrekt lesbar sein (nicht gespiegelt). Schilder, Etiketten und Überschriften verwenden die Skriptsprache: Ein arabisches Video erhält „بِيعَ", nicht „VERKAUFT". Zeichne sie wie in 4.3.
  • Bearbeite oder verschiebe die Stimme niemals. Das Bild ist darauf abgestimmt, und jede visuelle Reaktion erfolgt 0–3 Frames vor dem dazugehörigen Wort.
  • Audio-Pegel: Die Hintergrundmusik liegt 16 dB unter der Stimme (gegated RMS), sodass die Erzählung klar bleibt. Soundeffekte liegen bei 50 % oder etwas weniger, mit Peak-Begrenzung, sodass kein Schlag über die Erzählung hinausragt. Mische immer mit mix.py, niemals von Hand. Verwende kein Ducking oder Kompression, die dieses Verhältnis verändern würde; nur eine lineare Verstärkung plus einen Peak-Limiter auf den gesamten Mix.
  • Halte den Benutzer mit einer Aufgabenliste auf dem Laufenden. Sende eine Kontaktbogen mit Standbildern vor dem langen Rendering.

Phase 1: Aufnahme (immer zuerst)

Wenn bereits eine Audiodatei angehängt ist, springe zu Phase 4. Wenn auch ein Skript angegeben wurde, verwende es für die Zeitsteuerung. Andernfalls stelle eine AskUserQuestion (oder Klartext, falls dieses Tool fehlt): „Von wo aus startest du?“

  • Voiceover fertig: Bitte um das Hochladen sowie den Skripttext, falls vorhanden (das Skript macht die Zeitsteuerung exakt). Gehe zu Phase 4, wenn es ankommt.
  • Ich habe ein Skript, brauche das Voiceover: Straffe das Skript bei Bedarf gemäß Phase 3, gib es mit Aufnahmetipps zurück, bitte um das Hochladen, dann gehe zu Phase 4.
  • Ich brauche Videoideen und ein Skript: Gehe zu Phase 2. Frage auch nach der Ziellänge, falls sie nicht genannt wurde. Die Voreinstellung ist 20–30 s; 45–60 s sind erlaubt. In einem arabischen Chat verwende die Formulierung unter Sprache.

Phase 2: 10 Videoideen

Gib genau 10 Ideen in einer Antwort, nummeriert, und bitte den Benutzer, mit einer Nummer zu antworten (oder „mehr"). Jede Idee erhält:

  • Titel (5–8 Wörter, neugierig machend, z. B. „Der Soldat, der nie ging").
  • Aufhänger: der erste gesprochene Satz, ein Paradoxon als Tatsache dargestellt („Ein Mann verkaufte den Eiffelturm. Zweimal.").
  • Die Wendung in einem Satz (die ironische Pointe, die das Video beendet).
  • Warum es sich gut animieren lässt: die 2–3 großen visuellen Momente (ein Einsturz, eine Enthüllung, eine Verfolgungsjagd).
  • Wahr oder Legende: klar sagen, ob es dokumentierte Geschichte, eine umstrittene Darstellung oder Folklore ist.

Was eine Idee „perfekt" für dieses Format macht:

  • Eine überraschende Geschichte mit einem physischen Ursache-Wirkungs-Zusammenhang, den man zeigen kann.
  • Eine klare Jedermann-Figur, steigende Einsätze und eine Wendung im letzten Satz.
  • Ein Schauplatz, der aus einfachen 3D-Formen plus Cartoon-Karten gebaut werden kann (Städte, Brücken, Schiffe, Burgen, Wüsten, Labore, Paläste).
  • Mische die 10 Ideen über Epochen und Themen: antik, mittelalterlich, 1800er, modern, Wissenschaft, Tiere, Erfindungen, Katastrophen, seltsame Gesetze, glückliche Zufälle.
  • Überprüfe bei allem, das als wahr präsentiert wird, die wichtigsten Fakten mit einer Websuche, bevor du es anbietest. Präsentiere keine virale Legende als Tatsache. Falls der Benutzer sie trotzdem möchte, rahme sie als „die Legende besagt".
  • Keine echten lebenden Personen als Ziel eines Witzes, nichts Grafisches und nichts Politisches.

Für arabische Ideen:

  • Schreibe den Titel, Aufhänger, die Wendung und Notizen auf Arabisch. Schreibe den Aufhänger als natürlichen arabischen Satz, nicht als Übersetzung. Gib fremden Namen die übliche arabische Schreibweise.
  • Mische Geschichten aus der arabischen und islamischen Geschichte und Wissenschaft mit weltweiten Geschichten, damit sich die Liste für dieses Publikum maßgeschneidert anfühlt.
  • Suche sowohl auf Arabisch als auch auf Englisch. Auch populäre arabische Geschichten verbreiten sich ohne Quellen; kennzeichne sie daher ebenso mit Wahr oder Legende.
  • Zeige niemals Propheten, ihre Gefährten oder andere heilige Figuren als Charaktere. Mache keine Witze über Religion, Sekten, Stämme oder Nationalitäten.

Phase 3: Skript (nachdem sie gewählt haben)

Schreibe nur die Erzählung (keine Regieanweisungen im gesprochenen Text). Deutsch wird mit etwa 3,2 Wörtern/s angenommen: 20 s ≈ 65 Wörter, 30 s ≈ 95, 60 s ≈ 190. Arabisch ist langsamer, etwa 2 Wörter/s: 20 s ≈ 40 Wörter, 30 s ≈ 60, 60 s ≈ 120. Arabische Wörter haben mehr Silben, und echte arabische Stimmen messen 1,6–2,1 Wörter/s. Formel:

  1. Aufhänger (Satz 1, ohne Einleitung): die absurde Tatsache.
  2. Schauplatz in 1–2 Zeilen: wann, wo, wer, ein konkretes Detail.
  3. Steigerung, 2–4 Schritte, jeder größer. Andere zweifeln oder spotten. Verwende einen Übertreibungswitz.
  4. Geheimnis oder Wendepunkt: „Aber als..." / „Siehst du," führt den wahren Mechanismus ein, oft mit einer alltäglichen Analogie.
  5. Wendung / Pointe: kurz, ironisch und die letzten Worte des Videos. Verwende einfaches gesprochenes Deutsch, Satzkonstruktionen mit etwa 8–15 Wörtern und Zahlen als Wörter ausgeschrieben. Beschreibe niemals, was der Zuschauer bereits sieht.

Für ein arabisches Skript:

  • Halte Sätze auf etwa 6–12 Wörter und verwende dieselbe Fünf-Teile-Formel. Wendepunkte wie „لكن عندما…" und „والسبب؟" funktionieren gut.
  • Schreibe Zahlen und Jahre als Wörter (ألف وتسعمئة وأربعة وتسعون) und schreibe fremde Wörter und Markennamen in arabischen Buchstaben, damit die Stimme sie richtig liest.
  • Setze Satzzeichen für die Stimme: „،" und „." für Atempausen, „…" für eine Pause vor einer Enthüllung und „؟" für Fragen. Die Zeitsteuerung verwendet ebenfalls diese Zeichensetzung.
  • Gib einen kopierbaren Sprachblock, der bereit zum Einfügen in den Sprachgenerator ist:
    • Tashkeel auf jedem Wort, was besonders bei Namen und Wörtern mit mehreren Lesarten hilft. Lasse Fallendungen weg, die ein Sprecher nicht sagen würde, und schreibe Dialekt so, wie er gesprochen wird. Falls der Benutzer kein Tashkeel wünscht oder es sich falsch anhört, entferne es.
    • Audio-Tags für Eleven v3 auf Deutsch, wie [aufgeregt], [neugierig], [ernst], [flüstert], [warm]. Verwende maximal ein bis zwei pro Satzgruppe, nur wo die Worte sie verdienen.
    • Irakisches „g": schreibe گ und چ, wo der gesprochene Laut sie benötigt (تِگْدَر, لْگِيت), da ك als „k" gelesen wird.
    • Teile: bei einem Skript über etwa 700 Zeichen teile es am Satzende in nummerierte Teile.
  • Wortanzahl und Länge verwenden den obigen arabischen Satz, wobei Tags und Tashkeel ignoriert werden.

Dann antworte mit:

  • Dem Skript in einem kopierbaren Block mit Wortanzahl und geschätzter Länge.
  • Einem ein Absatz umfassenden visuellen Plan (die Einstellungen, die du animieren wirst).
  • Aufnahmetipps: eine gleichmäßige, warme Erzählerstimme; ElevenLabs funktioniert gut (eine tiefe Erzählerstimme, Geschwindigkeit etwa 1,05–1,1, Stabilität etwa 45–55 %). Mp3 oder wav ist in Ordnung. Lasse natürliche Pausen an Satzenden. Exportiere ohne Musik.
  • Arabische Aufnahmetipps: Verwende Eleven v3, da ältere Modelle die [Tags] vorlesen. Beginne mit Stability auf Natural und Geschwindigkeit etwa 0,95 und probiere die ersten Sätze, bevor du alles generierst. Bei einem anderen Generator lösche zuerst die Tags. Ihre eigene Stimme funktioniert auch, ohne Tags oder Tashkeel.
  • Der Bitte: „Lade das Voiceover hoch, wenn es fertig ist, und ich erstelle das vollständige Video." Behalte den endgültigen Skripttext. Er steuert die Zeitsteuerung in Phase 4, sodass keine Spracherkennung erforderlich ist. Wenn sie eine geänderte Version aufgenommen haben, frage nach dem endgültigen Text.

Phase 4: Erstelle das Video (nachdem das Voiceover hochgeladen wurde)

Erledige alles von hier an ohne Unterbrechung. Frage nur, wenn die Zeitsteuerung nicht aufgelöst werden kann.

4.0 Das Kit holen

Das Code-Kit enthält die Engine, Werkzeuge, ein funktionierendes Beispiel, vendoriertes three.js r160, die toon.ts-Pen-Bibliothek von github.com/mromidev/claude-animated-shorts (beide MIT) und die Lalezar Arabic Schriftart (SIL OFL). Finde es in dieser Reihenfolge und behandle es als schreibgeschützt:

  1. Ein kit/-Ordner neben dieser SKILL.md, gefunden mit find / -name SKILL.md -path "*cartoon-audio-short*" 2>/dev/null.
  2. Ein bereits entpacktes cartoon-short-kit-Verzeichnis.
  3. cartoon-short-kit.zip unter den in diesem Chat gesendeten Dateien: find / -name "cartoon-short-kit*.zip" 2>/dev/null, dann entpacke es nach ~/cartoon-short-kit-src/. Das Kit ist der Ordner darin, der engine/ enthält.

Führe dann bash <kit>/tools/setup.sh ~/shorts/<slug> aus. Es kopiert die Engine und Werkzeuge in das Projekt, installiert das vendorierten three.js, entfernt die Typen aus toon.ts mit Node 22 module.stripTypeScriptTypes und verlinkt Playwright. Kein Netzwerk ist nötig. Falls die vendorierten Dateien fehlen, fällt es auf npm oder einen Git-Klon zurück.

  • Anforderungen: Node 22.6+, Python 3 mit numpy + Pillow, ffmpeg und Playwright mit Chromium (npm i -g playwright && npx playwright install chromium, falls fehlend).
  • Falls Paketregister blockiert sind, funktioniert git über GitHub normalerweise. Deaktiviere niemals TLS oder umgehe den Proxy.
  • Chromium: Verwende den vorinstallierten Playwright-Browser mit --use-angle=swiftshader --enable-unsafe-swiftshader --ignore-gpu-blocklist. Das liefert CPU WebGL mit etwa 3–10 s pro Frame.

4.1 Zeitsteuerung

Führe python3 timing.py voice.mp3 script.txt --out work aus. Füge --lang ar für Arabisch hinzu, falls kein Skript vorhanden ist. Das Skript kann der exakte Sprachblock sein: Es entfernt [Tags] und Tashkeel und teilt Phrasen auch an arabischer Interpunktion.

  • Mit installed whisper oder faster-whisper werden Wort-Zeitstempel verwendet. Für Arabisch wird ein mehrsprachiges Modell verwendet, und es behält die eigenen Wörter des Skripts, sodass ein falsch verstandenes Dialektwort den Text nicht ändern kann.
  • Andernfalls gleicht es Skriptphrasen (geteilt an Satzzeichen) mit schweigeerkannten Sprachsegmenten ab, mit einem DP, das Silben der Dauer zuordnet und Satzenden innerhalb eines Segments sowie lange Lücken innerhalb einer Phrase bestraft.
  • Ohne ASR und ohne Skript, frage nach dem Skript. Claude kann Audio nicht hören.
  • Überprüfe work/phrases.json: Pausen sollten an Satzenden fallen. Gesamtframes = round(duration × 30).

4.2 Einstellungsplan (work/PLAN.md vor Code)

Erstelle eine Zeile pro Einstellung: Frames, Wörter, Schauplatz, Licht, Kamerabewegung, Figuren/Posen/Ausdrücke, Effekte und SFX-Hinweis.

  • Frame 0 ist bereits das Aufhängertbild.
  • Normalerweise eine Einstellung pro Phrase. Füge winzige Phrasen in die nächste Einstellung ein.
  • Illustriere jeden Satz wörtlich. Requisiten tragen die Witze.
  • Variiere die Einstellungsgrößen: Aufhänger MCU → Weite Enthüllung → Zwei-Einstellung → Nahaufnahme auf das Schlüsselobjekt → Reaktionsnahaufnahme → Umgebungsbewegung für die Pointe.
  • Verwende Licht für Beats: Tag für Normal, Gold für Niedergang oder Drama, Nacht-Blau für Erklärung. Ein Zeitsprung erhält einen 6-Frame-weißen Blitz.
  • Die Wendungszeile erhält einen Stich (Musik stoppt, tiefer Schlag, Schwenk mit Rollen). Die physische Pointe der letzten Einstellung landet auf dem letzten Wort.

4.3 Welt (web/main.js)

Behalte die Engine-Teile: Toon-Materialien, Ink-Vertrag, add/tbox, Himmel, Lichter, Karten, Renderziele/Nachbearbeitung, applyLight, drawActors, swapForNd, renderFrame. Ersetze die Beispielwelt zwischen // ---------- world ---------- und // ---------- cards ---------- plus die Story-Teile von worldState().

  • Baue aus Primitiven mit bemalten Leinwandtexturen (paint.js: Planken, Balken, verrottetes Holz, Stein, Moos/Efeu, Gras, Erde, Putz, Dachziegel, Marmor, Banner, gemeißelter Text). Schreibe neue Maler im gleichen flachen Stil mit dunklen Nähten.
  • Verwende tbox für konstante Texeldichte, einen 2-Stufen-Toon-Verlauf und Nebel = Horizontfarbe.
  • Hintergrund: Hügel (halb vergrabene Kugeln), Berge (Kegel + Schneekappen), Zypressen/Kiefern, entfernte Häuser, bemalte Wolken-Billboards.
  • Set-Stücke (Einstürze, Stürze, Türen) sind pivotierte Gruppen, angetrieben durch 0..1 Fortschritt von worldAt(f), mit abgestuften und zeitversetzten Teilen.
  • Gekrümmter diegetischer Text verwendet planare UVs. Überprüfe, dass er nicht gespiegelt ist.
  • Arabischer Text auf allem: Verwende P.signCanvas(text, opts) mit P.tex() für Schilder und Etiketten, P.drawText() auf deiner eigenen Leinwand oder P.carvedText() für Gravuren. Sie laden die gebündelte Schriftart, stellen rechts-nach-links ein und zeichnen ganze Zeichenketten. Zeichne niemals Arabisch Buchstabe für Buchstabe,

...

[truncated for translation]

Verwandte Skills