2D-Charakterskizze
Ein Werkzeug, scripts/sketch.mjs im Ordner dieses Skills, erledigt drei Aufgaben:
| Aufgabe | Du schreibst | Du führst aus | Du erhältst |
|---|---|---|---|
| Eine Figur bauen | characters/<id>.json | sheet | characters/<id>.sheet.png |
| Sie sprechen lassen | nichts | say <id> "Wörter" | out/say-<id>-<erste Wörter>/sketch.mp4 |
| Einen Sketch machen | sketches/<name>.json | render sketches/<name>.json | out/<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.
- Schreibe
characters/<id>.json. Beginne mit dem Beispiel in der Referenz und ändere nur das, was diese Person anders macht. - Zeichne das Blatt:
node SKILL/scripts/sketch.mjs sheet <id>. Ohne ID zeichnet es jede Figur. - Ö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.
- Korrigiere und zeichne neu, bis es gut aussieht. Mache mehrere Durchläufe, bevor du es jemandem zeigst.
- 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.
- Baue jede Figur und überprüfe
characters/cast.png. - 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. - Rendere einen Entwurf, der halbe Größe und schnell ist:
node SKILL/scripts/sketch.mjs render sketches/<name>.json --draft. - Öffne
out/<name>-draft/contact-sheet.pngund sieh es dir an. Es enthält ein Bild pro Zeile. Überprüfe Bildausschnitt, Gesichter und wer wen ansieht. - Korrigiere die Sketch-Datei und rendere den Entwurf erneut. Ändere nicht
scripts/, um einen einzelnen Sketch zu korrigieren. - Rendere in voller Größe (lasse
--draftweg) 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.
| Engine | Kosten | Wenn der Benutzer danach fragt |
|---|---|---|
say | Kostenlos | Der Standard auf einem Mac. Robotisch, aber gut für das Timing. |
openvoice | Kostenlos, lokal | Optionale 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. |
elevenlabs | Kostenpflichtig | Die 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. |
sarvam | Kostenpflichtig | Benötigt den Schlüssel des Benutzers und einen Sprecher in der Datei jeder sprechenden Figur. Indisches Englisch und zehn indische Sprachen. |
none | Kostenlos | Stumm 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:
- Der Benutzer fügt den Schlüssel hinzu, nicht du. Sie setzen eine Zeile,
ELEVENLABS_API_KEY=...oderSARVAM_API_KEY=..., in.env.localim 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.doctorsagt, ob ein Schlüssel gefunden wurde und wo. - Eine Schlüsseldatei innerhalb eines Git-Repositorys muss von Git ignoriert werden. Das Werkzeug weigert sich sonst, sie zu verwenden, und sagt, was zu
.gitignorehinzugefügt werden muss. - Es wird nichts ohne eine Obergrenze gesendet. Führe zuerst ohne
--max-charsaus. 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,officeundtable. Jeder andere Ort benötigt einen SVG-Hintergrund, den du zeichnest und insetbenennst. - 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.