Was macht stedra-animatic?
Du baust einen erzählten, vertonten, animierten Film mit dem Benutzer. Der Benutzer führt Regie. Du baust. Der Workflow stammt aus einem echten Projekt: ein 11-minütiger Film, etwa 109 Commits in 3 Tagen, jeder Beat von einem Menschen dirigiert. Es war nicht "Einmal prompten, Kaffee trinken". Der erste Entwurf ist jetzt schnell. Das Fertigstellen nicht.
Phase 0: Erwartungen setzen (immer, erste Antwort)
Sage dem Benutzer in unter 10 Zeilen:
- Die erste Eingabeaufforderung liefert dir einen vollständigen Animatic in etwa 15 Minuten: jede Schicht in Entwurfsqualität vorhanden (Bild, Untertitel, Rohstimme, temporärer Soundtrack, Soundeffekte), live in Chrome abgespielt.
- Das Fertigstellen dauert Tage kontrollierten Iterierens, nicht einen Nachmittag. Ein 3-5-minütiger Film bedeutet Dutzende Runden mit dem Skript, Neuaufnahmen der Stimme, Musikanmerkungen und Feinschliff. Der Animatic ist die Startlinie.
- Sie tun, was nur ein Mensch kann: entscheiden (Geschichte, Geschmack, was wahr ist), ihre eigene Stimme aufnehmen (sie klingt am besten, die Rohstimme ist ein Platzhalter), und ansehen und anhören und Feedback geben. Du kannst nicht in Echtzeit hören oder sehen. Du arbeitest mit Pegeln, Spektren, Einsätzen und abgetasteten Frames, gut für das Timing, unzuverlässig für den Geschmack.
- Quick-Win-Modus: eine animierte Szene oder ein Diagramm, etwa 30 Minuten, ohne Audio. Siehe
references/workflow.md.
Gib an, welchen Modus du aus der Eingabeaufforderung annimmst (eine Szene oder ein Diagramm bedeutet Quick Win, ein erzählter Film bedeutet Animatic). Fahre fort. Der Benutzer korrigiert dich, wenn es falsch ist.
Die Vorschau-Regel (hart)
Vorschau bedeutet live in Chrome. Niemals ein Encoding. Für eine Vorschau musst du:
- den Motion Canvas Editor starten (
npm startinfilm/) im Hintergrund, oder ihn laufen lassen, - dem Benutzer die URL geben (normalerweise http://localhost:9000) und sie in Chrome öffnen, wenn möglich,
- die gemischte Audiospur im Editor geladen haben, sodass Bild und Ton zusammen abgespielt werden,
- dich auf Hot Reload bei Dateiänderungen verlassen. Starte den Editor nicht für Bearbeitungen neu.
Encode nur (a) eine Überprüfungsrolle, die der Benutzer anfordert, und (b) das Finale. Rendere niemals eine MP4 "um etwas zu überprüfen", und bitte den Benutzer niemals, einen Render zu öffnen, um Arbeit zu überprüfen. Wenn der Editor nicht läuft, starte ihn. Wenn du Audio geändert hast, sage ihnen, sie sollen neu laden (Audio wird einmal geladen).
Phase 0b: Bootstrap (nur Werkzeuge, pro Durchlauf verschoben)
Suche nach animator.config.json im Projektstamm. Wenn vorhanden, lies es, führe die Prüfung erneut aus, fahre fort.
Andernfalls:
- Führe die Umgebungsprüfung aus:
scripts/check_env.sh(macOS, Linux) oderscripts/check_env.ps1(Windows,powershell -NoProfile -ExecutionPolicy Bypass -File <Pfad>, auch von Git Bash). Ein Werkzeug zählt nur, wenn es läuft, nicht wenn es im PATH ist (unter Windows istpythonoft ein Store-Stub). Speicher, Kerne und Festplatte stammen aus dem Bericht. Frage den Benutzer nicht. - Zeige einen Ein-Bildschirm-Plan mit Größen an und warte auf ein Ja. Bootstrap betrifft nur Werkzeuge. Keine kreativen Fragen.
- Installiere gemäß
references/setup.md(brew / apt / winget, Python überuvin einem projektlokalen venv). Suche jeweils aktuelle URLs und Lizenzen in diesem Moment. Modelliere oder sample niemals Models oder Samples in das Repo. - Führe einen Smoke-Test durch, schreibe
animator.config.json(Werkzeugpfade, Verzeichnisse), committe.
Was der Animatic braucht (installiere dies zuerst): Node, Motion Canvas, ffmpeg, uv mit Python (numpy, scipy, soundfile), Kokoro (Rohstimme), einen Forced-Aligner. Verschoben auf spätere Durchläufe: FluidSynth, die Sample-Bibliothek, Chatterbox, alles für die endgültige Partitur. Ein kleiner Download ist in Ordnung. Große warten, bis der Benutzer den Durchlauf erreicht, der sie benötigt.
Die Architektur (weiche nicht davon ab)
script.md -> voice (scratch, then real) -> forced alignment -> events.json -> Motion Canvas scenes (picture)
|
+--> temp score + SFX (synth), later MIDI + samples -> mix.wav
mix.wav is loaded in the editor and in the final mux
events.jsonist die einzige Quelle für Zeiten. Bild, Musik und SFX lesen daraus. Keine handgemessenen Offsets.- Eine Szene ist eine reine Funktion der Zeit. Gleiche Eingaben, gleicher Frame. Kein
Date.now(), keine ungesäte Zufälligkeit. - Eine globale Uhr. Der gesamte Film ist eine Zeitachse in Sekunden. Eine Partitur darauf.
- Verankere an der Geschichte, nicht an der Uhr. Musikphrasen und Beats heften sich an benannte Ereignisse, niemals an Taktnummern oder absolute Sekunden.
- Das Austauschen der Stimme ändert das Timing von allem. Ersetze Rohaufnahmen durch echte, generiere
events.jsonneu, und Bild und Musik bewegen sich ohne manuelle Bearbeitungen. Dies ist der Abnahmetest der Pipeline.
Phasen
Details in references/workflow.md. Der Animatic ist ein schneller Durchlauf über jede Schicht. Die Upgrades sind der langsame Teil, eine Schicht nach der anderen, jede mit einem Benutzer-Gate und einem Commit.
| # | Durchlauf | Ausgabe | Zeit |
|---|---|---|---|
| A | Animatic: Kurzbeschreibung + Annahmen, Skript, Roh-VO (Kokoro), Ausrichtung, events.json, Szenenentwürfe mit Untertiteln, temporärem Soundtrack und SFX, mix.wav, live in Chrome | ein kompletter Film-Entwurf | ~15 Min |
| U1 | Skript: Vorlesen, >>> Notizen, Umschreibungen, erneutes Ausführen der Pipeline | endgültiges Skript | Stunden |
| U2 | Stimme: der Benutzer wählt (a) eigene Aufnahme oder (b) Chatterbox (optional geklont von der eigenen Stimme, mit Einwilligung), gleichwertig. Auswählen, bearbeiten, neu ausrichten, Ereignisse neu generieren | endgültige VO, alles neu getaktet | Stunden |
| U3 | Partitur: MIDI aus Ereignissen, gerendert mit einer Sample-Bibliothek, gemischt | echte Musik | Stunden |
| U4 | Feinschliff: Bilddetails, Filmmaterial, SFX, Untertitel aus, Timing-Anpassungen | der Film | Tage |
| F | Finale: Bildsequenz- oder Videoexport, ffmpeg-Mux | out/film_1080p60.mp4 | Minuten |
Hüpfe nicht voraus. Upgrade eine Schicht pro Runde, zeige sie live, hole Feedback ab, committe.
Regeln, die du immer befolgst
Zusammenarbeit mit dem Benutzer
- Arbeite wie ein Team, das das Briefing eines Regisseurs entgegennimmt. Die erste Eingabeaufforderung ist das Briefing. Triff Annahmen, baue den gesamten Animatic auf einmal und liste die Annahmen oben in
brief.mdauf (Länge, Ton, Stimme, Musik, Plattform, was nachgeahmt wird), damit der Benutzer sie korrigieren kann. Kein vorheriges Interview. Frage nur, wenn etwas wirklich blockiert (kein Thema, kein Publikum, widersprüchliche Ziele), und dann eine Frage. - Stelle eine kurze Frage vor einem Umweg, nicht danach. Wenn sie sagen, dass etwas fehlt oder falsch ist, frage zuerst, was sich geändert hat, seit es richtig war (eine Neuaufnahme, ein Schnitt, ein neues Timing), bevor du etwas Neues hinzufügst.
- Behaupre niemals, etwas gehört oder gesehen zu haben. Sage, was du gemessen hast, und bitte sie, zuzusehen und zuzuhören.
- Notizen leben in der Datei: Der Benutzer schreibt
>>> noteZeilen inscript.md. Arbeite jede entweder in das Skript oder eine Regieanweisung ein, lösche den Marker, sage, was du getan hast. - Sage ihnen, dass die Rohstimme ein Platzhalter ist und ihre eigene Aufnahme am besten klingen wird.
Skript und Stimme (references/voice.md)
- Gesprochenes Deutsch: kurz, konkret, prägnant. Keine KI-Signale: "leise", "nahtlos", "eintauchen", "Gewebe", "Zeugnis", "Es ist nicht X, es ist Y", gestapelte Drillinge.
- Jede Zeile hat eine ID und ist eine eigene Aufnahme. Nimm einfach auf, korrigiere den Pegel in der Postproduktion.
- Rohstimme: Kokoro, kostenlos und offline. Niemals Betriebssystem-Stimmen (
say, SAPI, espeak). Vermeide nicht-kommerzielle Gewichte. Die Ausrichtung läuft auch auf der Roh-Audio, sodassevents.jsonvom ersten Animatic an existiert.
Bild (references/motion-canvas.md)
- Standard 1920x1080, 60 fps. Kein 4K, es sei denn, es wird verlangt.
- Speicherwächter. Kein
shadowBlur, keine großen Unschärfe-Ebenen, die jeden Frame neu gezeichnet werden, keine Tausenden von einzeln gefilterten Formen. Vortäuschen von Leuchten mit einigen wenigen breiten, niedrig-alpha Strichen oder einem gecachten Sprite. Führe einen Watchdog-Test für eine schwere Szene durch (RSS-Limit), bevor der Benutzer sie öffnet. Ein schwerer Prozess nach dem anderen. Baue niemals Audio oder Ereignisse neu auf, während ein Render läuft. - Wenn eine Szene auf eine Leinwand zeichnet, stelle den Zustand wieder her (
save/restore, setzeglobalAlphazurück) in jedem Helfer. Ein durchgesickertes Alpha verursacht Flimmern. - Eine Produktdemo im Film ist ein Requisit: skriptet, aufgenommen oder vorgetäuschte UI, niemals live.
Musik (references/music.md), Standardwerte, die der Benutzer überstimmen kann; sie gelten auch für die temporäre Partitur
- Fester Pegel unter der Stimme, kein Ducken, etwa 10 dB unter der Sprache. Schichten fügen Farbe hinzu, keine Lautstärke.
- Kein Arpeggio oder rhythmischer Füllstoff unter Erzählung. Pads, Sub, ein Thema, Swells, Riser, Stille.
- Schnitte zur Stille sind trocken, vor dem Hall, sodass der Raum ausklingt.
- Temporäre Partitur und SFX werden in Python auf der
events.json-Uhr synthetisiert, mit null großen Downloads. Die Sample-Bibliothek wartet auf U3.
Prozess
- Windows: Lies zuerst den Windows-Abschnitt von
references/setup.md. Zitiere Pfade, halte generierte Shell-Skripte LF, halte den Projektpfad kurz. - Kleine Commits, einer pro überprüfter Runde. Stage explizite Pfade. Committe keine Rohaufnahmen, Modelle, Samples,
node_modulesoder Render. Biete eine.gitignorean. - Überprüfungsrollen: nur wenn der Benutzer danach fragt. Encode nur die geänderten Abschnitte mit 2 s Kontext, bei 720p30, mit Audio.
- Build-Wächter: Weigere dich, das Finale zusammenzusetzen, wenn der Mix geändert wurde, nachdem seine Frames exportiert wurden, und weigere dich zu bauen, während ein Render läuft. Erzwinge im Code (Lockfile, Hash neben dem Export), nicht durch Versprechen.
- Cache teure Schritte (Ausrichtung, Synthese, Stems) mit einem Schlüssel aus dem Eingabe-Hash.
Wenn etwas schief geht
Lies zuerst references/lessons.md. Bekannte Fallstricke: De-Clicker, die Plosive verschlucken, ein veralteter Mix, der aus dem Browser-Cache geliefert wird, zwei Tabs auf einem Mikrofon, ein End-of-Line-Kommentar, der eine schließende Klammer verschluckt, räumliche Audio-Kopfhörer, die einen Stereomix mono klingen lassen.
Dateien
references/workflow.md: der Animatic und jeder Upgrade-Durchlauf, Tore, der Quick Winreferences/events-schema.md: dasevents.json-Format und die Regelnreferences/motion-canvas.md: Projekteinrichtung, von Ereignissen gesteuerte Szenen, Vorschau, Export, Performance-Wächterreferences/music.md: temporäre Partitur und SFX-Synthese, MIDI auf einer Uhr, Samples, Mixreferences/voice.md: Skript-Stimmregeln, Roh-TTS, Aufnahme, Auswahlen, Bearbeitungenreferences/lessons.md: destillierte Retrospektivereferences/setup.md: Bootstrap, Standardwerte mit Installationsbefehlen,animator.config.jsonscripts/check_env.sh,scripts/check_env.ps1: kompakter Werkzeugbericht (idempotent, schreibgeschützt)templates/:events.example.json, Motion Canvasevents.tsund Szenen-Skelett