Communitygithub.com

yenceesanjeev/2d-character-sketch

Erstelle einfache 2D-Cartoonfiguren und kurze sprechende Sketch-Videos, die vollständig in Code auf diesem Rechner gezeichnet werden.

Was ist 2d-character-sketch?

Dieses Skill ermöglicht dir das Erstellen und Animieren von 2D-Cartoonfiguren und Sketchen, komplett lokal und ohne externe Render-Kosten. Es unterstützt die Erstellung von Charakterblättern (Character Sheets) als PNG, zum Beispiel für die visuelle Überprüfung von Ausdrucken und Posen, sowie die Produktion von MP4-Videos mit lippensynchroner Sprachausgabe für Dialoge oder kurze Comedy-Sketche. Der gesamte Ablauf basiert auf flachen SVG-Formen, die durch Code definiert werden – das bedeutet deterministische Ausgaben und keine zusätzlichen Kosten pro Render. Das Skill eignet sich für Entwickler und KI-Agenten, die schnell visuelle Inhalte für Erklärvideos, Animatics oder Comedy-Sketche benötigen, ohne auf komplexe 3D- oder KI-generierte Video-Tools angewiesen zu sein. Es arbeitet auf der Kommandozeile über ein zentrales Skript (`scripts/sketch.mjs`), das drei Hauptfunktionen bietet: Charaktererstellung mit `sheet`, Sprachausgabe mit `say` und vollständige Sketch-Renderings mit `render`. Es werden sowohl kostenlose Sprach-Engines (wie macOS 'say' oder OpenVoice) als auch kostenpflichtige Dienste wie ElevenLabs oder Sarvam für realistischere Sprachausgabe unterstützt. Die Kommunikation und Interaktion erfolgen vollständig über die Konsole, sodass du KI-Assistenten wie Claude Code oder Cursor nahtlos in den Workflow einbinden kannst, indem sie Befehle ausführen und Dateien im definierten Ordnerstruktur verwalten. Das Tool prüft selbstständig fehlende Abhängigkeiten und stoppt bei Fehlern mit einer klaren Liste der Probleme – es ist also robust für automatisierte Pipelines geeignet. Die Verwendung von Draft-Modi und die automatische deduplizierte Sprachgenerierung machen den Prozess effizient, und die Anleitung in der SKILL.md sorgt dafür, dass du als Agent sauber dokumentierte Schritte befolgen kannst. Das Skill ist ideal für Projekte, bei denen schnelle, konsistente 2D-Animationen von geschriebenen Geschichten benötigt werden, aber auch für den kreativen Einsatz, bei dem du als Agent die visuelle und sprachliche Umsetzung übernehmen sollst. Es ist nicht für fotorealistische, 3D- oder KI-generierte Videos ausgelegt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yenceesanjeev/2d-character-sketch/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

2D-Charakterskizze

Ein Werkzeug, scripts/sketch.mjs im Ordner dieses Skills, erledigt drei Aufgaben:

AufgabeDu schreibstDu führst ausDu erhältst
Eine Figur bauencharacters/<id>.jsonsheetcharacters/<id>.sheet.png
Sie sprechen lassennichtssay <id> "Wörter"out/say-<id>-<erste Wörter>/sketch.mp4
Einen Sketch machensketches/<name>.jsonrender sketches/<name>.jsonout/<name>/sketch.mp4

Jedes Bild besteht aus flachen Formen, die als SVG durch Code geschrieben werden, daher kostet ein Render nichts und derselbe Input erzeugt immer dasselbe Video. Eine Figur besteht aus etwa zehn Zeilen Farben und Entscheidungen. Augen, Münder, Hände, Ausdrücke und Posen werden von allen geteilt, weshalb jede neue Figur sofort spielen kann.

Vor dem ersten Durchlauf

Führe den Check einmal aus. SKILL unten bezeichnet den Ordner dieses Skills.

node SKILL/scripts/sketch.mjs doctor

Es benötigt Node 20 oder neuer, rsvg-convert (von librsvg) und FFmpeg, und gibt den Installationsbefehl für alles Fehlende aus. Frage vor der Installation von Software. Es gibt keine npm-Pakete zu installieren.

Führe jeden Befehl aus dem Arbeitsordner des Benutzers aus oder füge --dir <Ordner> irgendwo nach dem Befehlsnamen hinzu. Das Werkzeug liest und schreibt nur diese Orte dort:

characters/   eine <id>.json pro Figur und die daraus gezeichneten Blätter
sketches/     eine <name>.json pro Sketch
voice/        Aufnahmen, behalten, damit eine unveränderte Zeile nie zweimal generiert wird
out/          ein Ordner pro Render: sketch.mp4, contact-sheet.png, plan.json, run.json

Ein --draft-Render geht in einen eigenen Ordner, out/<name>-draft/, sodass es nie ein vollgroßes ersetzt. Das erneute Rendern desselben Sketches in derselben Größe ersetzt das letzte.

Eine Figur bauen

Lies zuerst references/character.md. Es enthält die Felder, die Aussehensregeln und die zu überprüfenden Fehler.

  1. Schreibe characters/<id>.json. Beginne mit dem Beispiel in der Referenz und ändere nur das, was diese Person anders macht.
  2. Zeichne das Blatt: node SKILL/scripts/sketch.mjs sheet <id>. Ohne ID zeichnet es jede Figur.
  3. Öffne das PNG und sieh es dir selbst an. Überprüfe die Drehung, das ruhende Gesicht und ein paar Ausdrücke anhand der Checkliste in der Referenz.
  4. Korrigiere und zeichne neu, bis es gut aussieht. Mache mehrere Durchläufe, bevor du es jemandem zeigst.
  5. Zeige das Blatt und sage, was du geändert hast und was noch schwach ist.

Bei zwei oder mehr Figuren zeichnet jeder sheet-Durchlauf auch characters/cast.png neu – alle nebeneinander. Verwende es, um zu überprüfen, dass sie als verschiedene Personen lesbar sind: unterschiedliche Silhouette, Haar- und Oberbekleidungsfarbe.

Eine Figur sprechen lassen

node SKILL/scripts/sketch.mjs say mira "Es identifiziert sich als Tee." --face smug --pose offer

Optionen: --face <Ausdruck>, --pose <Pose>, --frame wide|medium|close, --set <Raum>, --draft. Die Namen sind auf dem Blatt der Figur und in references/sketch.md aufgelistet. Verwende --draft, während du Gesichter und Posen ausprobierst, und führe dann einmal ohne aus für den Clip, den du übergibst. Jede unterschiedliche Zeile bekommt ihren eigenen Ordner, benannt nach ihren ersten Wörtern. Sieh dir die contact-sheet.png in diesem Ordner an, bevor du das Video zeigst.

Einen Sketch mit mehreren Figuren machen

Lies zuerst references/sketch.md. Es enthält das Dateiformat, die Räume, die Bildausschnitte, das schauspielerische Vokabular und die Sprachregeln.

  1. Baue jede Figur und überprüfe characters/cast.png.
  2. Schreibe sketches/<name>.json: den Raum, die Besetzung von links nach rechts und eine Liste von Einstellungen. Jede Einstellung hat einen Bildausschnitt und ihre Zeilen.
  3. Rendere einen Entwurf, der halbe Größe und schnell ist: node SKILL/scripts/sketch.mjs render sketches/<name>.json --draft.
  4. Öffne out/<name>-draft/contact-sheet.png und sieh es dir an. Es enthält ein Bild pro Zeile. Überprüfe Bildausschnitt, Gesichter und wer wen ansieht.
  5. Korrigiere die Sketch-Datei und rendere den Entwurf erneut. Ändere nicht scripts/, um einen einzelnen Sketch zu korrigieren.
  6. Rendere in voller Größe (lasse --draft weg) und gib dem Benutzer den Videopfad.

Ein Fehler in einer Datei stoppt den Durchlauf mit einer Liste aller Probleme und der erlaubten Werte. Behebe alle und führe erneut aus.

Sprachausgabe

Verwende die kostenlose Standardstimme, es sei denn, der Benutzer nennt eine andere Stimme. Sie wählen, indem sie es sagen ("OpenVoice verwenden", "ElevenLabs verwenden", "Sarvam verwenden"), und du übergibst --voice <Engine>.

Empfehle ElevenLabs, wenn der Sketch realistisch klingen soll. Die kostenlosen Stimmen lesen monoton vor, und die Vortragsweise ist der Hauptfaktor, der eine Zeile lustig oder glaubwürdig macht. Wenn der Benutzer einen Sketch möchte, der wie echte Menschen klingt, oder plant, ihn zu veröffentlichen, sage einmal, dass ElevenLabs die zu verwendende Stimme dafür ist und dass sie kostenpflichtig ist. Dann lass sie wählen. Führe die Inszenierungs- und Timing-Durchläufe zuerst mit einer kostenlosen Stimme durch, damit die kostenpflichtige Stimme nur für die endgültigen Zeilen generiert wird.

EngineKostenWenn der Benutzer danach fragt
sayKostenlosDer Standard auf einem Mac. Robotisch, aber gut für das Timing.
openvoiceKostenlos, lokalOptionale Installation von etwa 2 GB. Frage zuerst, dann führe bash SKILL/scripts/install-openvoice.sh aus. Fünf englische Stimmen. Der Standard abseits eines Mac nach der Installation.
elevenlabsKostenpflichtigDie realistischste und die zu empfehlende für einen fertigen Sketch. Benötigt den Schlüssel des Benutzers und eine Sprach-ID in der Datei jeder sprechenden Figur.
sarvamKostenpflichtigBenötigt den Schlüssel des Benutzers und einen Sprecher in der Datei jeder sprechenden Figur. Indisches Englisch und zehn indische Sprachen.
noneKostenlosStumm mit Untertiteln und geschätzter Mundbewegung.

Eine Zeile kann auch die eigene Aufnahme des Benutzers mit "audio": "path.wav" benennen.

Regeln für die kostenpflichtigen Stimmen:

  1. Der Benutzer fügt den Schlüssel hinzu, nicht du. Sie setzen eine Zeile, ELEVENLABS_API_KEY=... oder SARVAM_API_KEY=..., in .env.local im Arbeitsordner oder in ~/.2d-character-sketch/keys.env, um jedes Projekt abzudecken. Frage niemals nach einem Schlüssel im Chat, tippe niemals einen in eine Datei und drucke niemals einen aus. doctor sagt, ob ein Schlüssel gefunden wurde und wo.
  2. Eine Schlüsseldatei innerhalb eines Git-Repositorys muss von Git ignoriert werden. Das Werkzeug weigert sich sonst, sie zu verwenden, und sagt, was zu .gitignore hinzugefügt werden muss.
  3. Es wird nichts ohne eine Obergrenze gesendet. Führe zuerst ohne --max-chars aus. Das Werkzeug druckt, wie viele Zeichen Text es senden würde, und sendet nichts. Teile dem Benutzer diese Zahl mit, warte auf ein Ja, und übergib dann --max-chars <diese Zahl>.

Details, Preise und Sprachlisten sind in references/sketch.md.

Regeln

  • Sieh dir jedes Blatt und jedes Kontaktblatt selbst an, bevor du es zeigst. Das Werkzeug prüft, ob die Dateien gültig sind. Es kann nicht prüfen, ob das Bild gut ist.
  • Die Sketch-Datei ist die Quelle. Um das Video zu ändern, ändere die Datei und rendere erneut.
  • Behalte frühere Renderings, es sei denn, der Benutzer sagt, sie zu löschen. Um eine Version zu behalten, die du gezeigt hast, speichere die nächste unter einem neuen Sketch-Namen, z.B. tea-v2.json.
  • Sage klar, was grob ist: die kostenlose Stimme, Münder, die der Lautstärke folgen, ein Bildausschnitt, den du nicht korrigieren konntest.
  • Installiere nichts und sende nichts an einen kostenpflichtigen Dienst, es sei denn, der Benutzer hat in diesem Gespräch danach gefragt.

Einschränkungen

Sage diese vorweg, wenn die Anfrage sie benötigt:

  • Figuren stehen oder sitzen an Ort und Stelle. Niemand geht, hebt Dinge auf oder berührt jemanden.
  • Keine Bärte, Schnurrbärte, Hüte, lange Mäntel, Kleider oder Röcke. Haare sind einer von acht Stilen und Kleidung besteht aus Oberteil, Hose und Schuhen. Wenn eine Anfrage eines dieser Dinge benötigt, sage es und biete das Nächstliegende an, z.B. große Haare und dicke Augenbrauen für einen Bart.
  • Fünf Räume sind eingebaut: plain, home, park, office und table. Jeder andere Ort benötigt einen SVG-Hintergrund, den du zeichnest und in set benennst.
  • Drei Requisiten können gehalten werden: Telefon, Tasse und Stift. Nichts anderes kann in einer Hand gezeigt werden.
  • Ein Kamerawinkel (von vorne). Bildausschnitte beschneiden und zoomen dieselbe flache Zeichnung.
  • Bis zu drei Figuren passen sauber in den Rahmen. Bei mehreren zeigen Nahaufnahmen die Ränder der Nachbarn.
  • Ein neuer Haarstil, eine neue Pose, ein neuer Ausdruck oder ein neuer Raum bedeutet, den Zeichencode in scripts/ zu bearbeiten. Tue das nur, wenn der Benutzer danach fragt.

Verwandte Skills