Opus-Paritäts-Motion-Filme (Remotion)
Ziel: Derselbe Prompt, an Opus 5.5 und an das Modell mit diesem Skill gegeben, erzeugt Filme, die fast gleich aussehen, sich bewegen und klingen – unabhängig vom Thema oder Stil.
Der Unterschied liegt selten im Geschmack. Er liegt im Verhalten. Opus:
- beachtet jeden Wert in einem langen Prompt;
- macht aus vagen Wörtern konkrete Design-Entscheidungen;
- gestaltet jedes Element richtig, anstatt sich mit Platzhaltern zufrieden zu geben;
- plant die gesamte Timeline vor dem Coden;
- baut ein gemeinsames System, sodass alles konsistent bleibt;
- betrachtet seine eigene Ausgabe und korrigiert sie.
Ein schwächeres Modell überspringt jeden dieser Schritte, wenn er nicht explizit gemacht wird. Dieser Skill macht sie explizit, und zwar auf der Open-Design-Architektur:
| Open-Design-Baustein | Hier |
|---|---|
| Eine funktionale Fähigkeit, die den Workflow besitzt | Diese Datei: Prioritäten, die Stufen und die Element-Playbooks |
Ein DESIGN.md-Vertrag, der von jedem Render gelesen wird | Der Design-Vertrag am Anfang von src/spec.ts; design-systems/*.md sind seine Keime |
| Vorlagen | templates/remotion-starter/, getestet (vollständiger Quellcode in REFERENCE.md) |
| Ein Design-Jury-Kritik-Gate | Stufe 6: fünf Juroren, korrigieren, bis jeder ≥ 8 bewertet |
| Eine Anti-Slop-Checkliste | Die Verbotsliste in Stufe 6 |
| Deterministisches Rendern | Remotion: Jedes Bild ist eine reine Funktion der Bildnummer |
Prioritätsreihenfolge
Wenn Regeln um Aufmerksamkeit konkurrieren, behalte diese Reihenfolge bei:
- Die eigenen Worte des Prompts: jeder Wert, Beat, jede Textzeile und jedes Verbot.
- Look und Handwerk auf dem Niveau des Stils: Komposition, Palette, Schriftart und jedes Element richtig gestaltet (siehe Playbooks). Textur und Licht gehören ebenfalls hierher. Das beurteilt ein Zuschauer zuerst.
- Kontinuität: echte Transformationen, durchgängige Identität, plausible Physik.
- Rhythmus und Sound.
- Buchhaltung: Register, Tabellen und Checks. Sie dienen 1–4 und ersetzen sie nie.
Helfer und Beispiele sind Mechanik, nicht Stil. motion.tsx entscheidet, wo Dinge sind und wie sie sich bewegen. Es entscheidet nie, wie sie aussehen. Liefere niemals den neutralen Standard eines Helfers (wie eine einfache Box oder Strichglieder) als Design aus. Kopiere niemals das Motiv, die Palette oder das Layout eines Beispiels in einen anderen Film. Jeder Film bekommt seinen eigenen gestalteten Look, mindestens so reichhaltig, wie er ohne die Helfer wäre.
Aufruf
- Jede Anfrage für ein Bewegtbildstück durchläuft die Pipeline. Stelle keine Fragen: Löse Lücken in Stufe 1 und halte sie in „解读“ fest.
- Jeder neue Prompt ist ein neuer Film, der frisch aus der Vorlage gebaut wird, selbst in einem Gespräch, das bereits einen erstellt hat. Verwende früheren Code nur, wenn der Benutzer sagt, dass er ihn ändern soll („修改“, „改一下“, „在上一版基础上“, „fix this“). Erstelle in einem Host mit Dateiwerkzeugen einen neuen Projektordner für den Film.
- Modi. Der Standardmodus ist das Bauen. „只要提示词 / 扩写 / "prompt only"“ stoppt nach Stufe 2 und gibt die erweiterte Aufgabenbeschreibung als einen einzelnen fenced
text-Block aus. - Hosts. Nur Chat: Gib Dateien als Codeblöcke aus (Stufe 7). Mit Datei- und Shell-Werkzeugen: Schreibe die Dateien, führe
npx tsc -p .,npm run renderundnpm run checkaus, betrachte die Standbilder, korrigiere und berichte dann. - Wenn die Nachricht keine Idee enthält, antworte nur: „请给我一句话的创意或一段完整的提示词。“
Stufe 0 – Den Prompt wie Opus lesen: drei Register
-
Spezifikationsregister
S01…: eine Zeile pro Wert oder Anweisung, exakt zitiert. Dies umfasst Dauer, Größen, Farben, Schriftarten, Gewichte, Text, Anzahlen, Winkel, Positionen, Zeitpunkte, Easing, Verbote, Loop oder Ende, Charaktere und jeden Storyboard-Beat.FILMinspec.ts(Dauer, fps, Größe) stammt aus diesen Zeilen; die Platzhalterwerte der Vorlage dürfen niemals überleben. Ein verkürzter Prompt wird in der Stimme und Dichte seines letzten vollständigen Abschnitts vervollständigt, wobei diese Zeilen mitS##*markiert werden. -
Transformationsregister
X01…: jedes Werdens-Verb (wird zu, verwandelt sich in, sammelt sich, löst sich auf, entfaltet sich, wächst zu, 变成, 化成, 收拢, 汇聚, 展开) alsQuelle → Ziel · Mechanismus · Start–Ende s · Was bleibt erhalten. -
Elementregister
E01…: jedes Ding, das gezeichnet wird, getippt mit seinem Playbook (Typ, Objekt, Charakter, Umgebung, Daten, UI, Übergang, Textur-Licht, Sound) und auflistend:- drei oder mehr strukturelle Merkmale;
- Größe und Koordinaten;
- wie es sich bewegt;
- für Charaktere: das Design-Blatt und benannte Posen;
- für gehaltene Dinge: den Halter über die Zeit.
Jede Szene erhält auch ihre Hintergrund-zu-Vordergrund-Ebenenliste.
Jeder Wert ist bindend: Runde, benenne, färbe, betimme oder lasse niemals einen fallen. Das letzte Drittel eines langen Prompts zählt so viel wie das erste. Wenn zwei Zeilen in Konflikt stehen, behalte die spezifischere und notiere sie in „解读“. Im Code:
- Konstanten leben in
spec.ts, getaggt mit// S07; - Builder leben in
film.tsx, getaggt mit// E03; - Beats leben in Szenendateien, getaggt mit
// S31 X02.
Stufe 1 – Lücken füllen wie Opus
Nur für das, was der Prompt offen lässt; überschreibe niemals eine Registerzeile.
| Lücke | Opus-ähnlicher Standard |
|---|---|
| Format | 1920 × 1080; 60 fps für dichte Bewegungen, 30 fps für ruhige oder Charakterstücke. Ein angegebenes Format ist bindend; für einen schnellen Blick verwende npm run preview, senke niemals FILM |
| Dauer und Ende | 15 s für eine Idee, 30 s für ein Showreel oder einen Markenfilm. Ein nahtloser Loop für Reels und Idents; ein aufgelöstes finales Bild oder eine Endkarte für Geschichten und Promos |
| Rhythmus | Tempo aus der Stimmung: ruhig 60–90 BPM, Marke 110–128, energiegeladen 128–140. Dichte Stücke haben ein Ereignis auf jedem Beat, ruhige Stücke auf jedem Takt. Halten ≤ 0,5 s bei Dichte, so lange wie der Text es braucht bei Ruhe |
| Erzählung | Ein Motiv oder Träger verbindet den Film; jede Szene wächst aus der vorherigen; keine zusammenhanglosen Titelcards |
| Kamera | Fixiert und frontal, es sei denn, der Prompt impliziert Bewegung. Geschichtsstücke öffnen weit auf die ganze Welt |
| Komposition | Aus der Raumnutzung und dem Weißraum des Stils. Nichts ruht innerhalb von 150 px von den Seiten oder 90 px von oben und unten |
| Typografie | Eine Familie mit Charakter; das Schlüsselwort oder die Zahl in der schwersten Gewichtung bei der größten Größe. Lateinisch: Inter, Geist, Space Grotesk, Fraunces; Chinesisch: Noto Sans SC, Noto Serif SC |
| Palette | 3–5 Farben mit Rollen; der Akzent deutet an, was als Nächstes kommt |
| Textur und Licht | Material pro Element, skaliert auf seine Größe. Licht kommt von motivierten Quellen |
| Detail | Drei wiederkehrende Mikrodetails, die den Film wie gemacht wirken lassen (Label, Striche, Legenden, Timecodes, Beschilderung). Sie fügen keine neuen Behauptungen, Zahlen oder Text über den Prompt hinaus hinzu und verwenden die Formulierung des Prompts, wenn dieser eine vorgibt |
| Untertitel | Alle gesprochenen Zeilen, Songtexte oder Untertitel auf dem Bildschirm: ≥ 40 px bei 1080p, hoher Kontrast, unteres Drittel, ganze Zeile für ihr Lesezeitfenster gehalten (≈ 0,25 s pro chinesischem Zeichen, ≈ 3 lateinische Wörter pro Sekunde) |
| Sound | Eine generierte Partitur, die zur Stimmung passt, oder Atmo für eine umgebungsgeführte Szene; still nur, wenn darum gebeten wird |
Stufe 2 – Richtung: Einen Designvertrag aus dem Prompt ableiten
Woher der Stil kommt:
- Der Prompt gibt den Stil an (Palette, Materialien, Typ, Referenzen). Der Vertrag stammt allein aus dem Register.
- Der Prompt nennt ein Gefühl, Medium oder eine Referenz („wie eine Zeitung“, „水墨“, „Terminal“, „Schweizer Plakat“, „Pixar-artig“). Beginne mit dem nächstgelegenen Keim in
design-systems/und passe ihn an. - Der Prompt ist eine bloße Idee. Synthetisiere einen neuen Vertrag mit der folgenden Methode. Keime sind optionale Ausgangspunkte, keine Standardeinstellungen.
Stil-Synthese-Methode (für jedes Thema):
- Thema → Welt. In welcher materiellen Welt lebt dieses Thema? Papier, Tinte, Glas, Metall, Stoff, Bildschirme, Natur, eine Stadt, ein Labor. Wähle eine, plus höchstens eine kontrastierende Welt, in die transformiert wird.
- Publikum und Stimmung → Energie. Ruhig oder knallig, warm oder präzise, verspielt oder ernst. Dies bestimmt Tempo, Easing, Überschwingen und Dichte.
- Mache es konkret. Schreibe den Vertrag als Werte, nicht als Adjektive:
- Palette: Hex-Werte mit Rollen.
- Schrift: Familie, Gewichte, Größen, Laufweite.
- Striche: Wie Linien, Füllungen und Formen gezeichnet werden, als SVG-Techniken.
- Textur und Licht: pro Element.
- Komposition: Raumnutzung, Weißraum, Randregel.
- Bewegungscharakter: Easing pro Bewegungstyp.
- Übergangsgrammatik: Welcher Mechanismus ändert welche Szene.
- Signaturdetails.
- Soundpalette.
- Verbotsliste.
- Prüfung auf Schlonz. Jede Wahl muss auf das Thema oder den Prompt zurückführbar sein. Generische Verläufe, Glüheffekte und Vorlagenlayouts sind das, was der Vertrag ersetzen soll.
Keime in design-systems/:
| Keim | Passend für |
|---|---|
drafting-table | Prozess, Tools, Ingenieurwesen |
swiss-kinetic | Marken, Launchs, Statements |
editorial-ink | Kultur, Handwerk, Erbe, ostasiatische Themen |
data-instrument | Erklärvideos, Finanzen, Wissenschaft |
bold-poster | Musik, Sport, Jugend |
riso-halftone | Indie, Retro, verspielt |
storybook-scene | Charaktere, Geschichten, Musikvideos |
Kurze Prompts: Schreibe zuerst die vollständige Aufgabenbeschreibung in Opus-Dichte. Sie enthält einen Richtungsabsatz, den Vertrag, die Struktur (Tempo, benannte Szenen, Szenenwechsel), ggf. Charaktere und ein szenenweises Storyboard mit Zeitstempeln und Zahlen. Diese Aufgabenbeschreibung wird zu den Registern. Gib sie im Prompt-Only-Modus aus und stoppe.
Stufe 3 – Timeline vor Code
- Schreibe eine Zeile pro Szene:
Start–Ende s · Name · Was der Zuschauer lernt · Getragenes Element rein → raus · Übergang raus (X##). - Liste jedes Ereignis auf als
t: Element (E##) · Aktion · Zahlen · IDs. - Benenne die Schlüsselzeiten in einem
T-Block. - Leite die Sound-Cue-Liste aus denselben Ereignissen ab.
Prüfungen vor dem Weitermachen:
- Beats fallen auf Vielfache von 60/BPM;
- der Endzustand jeder Szene ist der Anfangszustand der nächsten Szene;
- keine zwei Aktionen treiben gleichzeitig eine Eigenschaft;
- alles endet vor dem Ende;
- für einen Loop entspricht das virtuelle t = D Bild dem Bild 0, wobei alle Bewegungen in Ruhe sind.
Stufe 4 – Design vor Bewegung
- Baue die Geometrie jedes Elements aus seinen strukturellen Merkmalen auf Modulebene.
- Erstelle für Charaktere zuerst ein Charakterblatt: ein Standbild mit jedem Charakter in jeder benannten Pose, mit seinen Requisiten.
- Korrigiere die Schlüsselkompositionen als exakte Layouts in px: Bild 0, das erste vollständige Bild jeder Szene oder jedes Materials und das letzte Bild. Überprüfe jedes gegen die Raumnutzung und den Weißraum des Vertrags.
- Code diese statischen Zustände vor der Bewegung zwischen ihnen. Ein schwaches Standbild wird nie durch Bewegung gerettet. Rendere und betrachte sie in einem Host mit Dateiwerkzeugen zuerst.
Element-Playbooks
Jede Anfrage besteht aus diesen Elementtypen. Wende für jedes Element sein Playbook an.
| Element | Baue es | Bewege es | Prüfe (häufiger Fehler) |
|---|---|---|---|
| Typ | Eine Familie; Hierarchie durch Gewicht und Größe; Laufweite pro Größe eingestellt; große Wörter in einer Zeile, passend zu ihrer angegebenen Breite; geteilte Wörter und Buchstaben behalten ihre Abstände; CJK kann vertikal laufen | Ankunft mit EASE.out; Staffelungen 0,02–0,06 s; Slot-Clips, Slide auf Schienen, Scale-Reveal; lesbares Halten vor dem Ausgang | Wörter laufen zusammen, Waisen-Zeilen, Untertitel zu klein oder kontrastarm, das Schlüsselelement nicht die schwerste Schriftart |
| Objekt (Icons, Requisiten, Produkte, Symbole) | Drei oder mehr strukturelle Merkmale des echten Dings; eine Schattenseite für Volumen; konsistente Konturpolitik; einmal als Funktion gebaut | Bewegung aus seiner Natur: Papier biegt sich an einer Falte, Flüssigkeit kräuselt sich, Metall dreht sich um eine Achse, Licht schaltet | Ein Symbol statt des Dings, schwebende Teile, inkonsistenter Maßstab zwischen Aufnahmen |
| Charakter | Ein Body-Designblatt: Silhouette, Proportionen, Farben, Gesicht, Markierungen, alle gestaltet durch color, face und parts; benannte Posen | poseMix zwischen benannten Posen mit settle; walk() zum Gehen; kleine lesbare Acting-Beats; Requisiten an grip() und gezeichnet in held | Ein driftender Blick zwischen Aufnahmen, Hände nicht an gehaltenen Requisiten, Gliedmaßen durch den Kopf, Standard-Strichmännchen-Look, Füße vom Boden abgehoben |
| Umgebung (Räume, Städte, Landschaften, Wetter) | Ebenen von hinten nach vorne: Himmel oder Wand, Ferne, Mitte, Boden, Vordergrund. Motivierte Lichtquellen und ihre Lichtformen. Wetter über das Bild in zwei Tiefen | Ambiente Leben, das nie aufhört (Wetter, Lichter, kleine Loops); die Kamera bleibt still, es sei denn, es wird darum gebeten | Ein flacher Hintergrund, Wetter, das durch feste Objekte geht, fehlende Lichtlogik, durchgehendes Durcheinander |
| Daten (Diagramme, Zähler, Schaubilder, Karten) | Achsen und Einheiten zuerst, Werte exakt aus dem Register, Labels an Markern befestigt, ein Diagramm pro Szene | Achsen, dann Daten, dann Annotation; Zähler rollen mit ihrem Marker; Diagramme verwandeln sich durch gemeinsame Slots ineinander | Falsche Zahlen, unbeschriftete Achsen, Dekoration über Daten, Labels, die die Formulierung des Prompts ignorieren |
| UI / Produkt | Echte Bildschirme oder originalgetreue Nachbauten mit scharfen Rechtecken, echten Proportionen und einer echten Hierarchie | Cursor- oder zustandsgesteuerte Änderungen; Zoom in den Bereich, der sich ändert | Gestreckte Screenshots, falsches Interface-Rauschen, unlesbarer kleiner Text |
| Übergang | Physikalische Mechanismen: Morphing (chain), Verschmelzen (converge), Maskieren oder Wischen (Reveal), Materialwechsel (MaterialLayer zweimal unter Reveal), Entfalten, Abgleich auf einer gemeinsamen Form | Harte Kanten, auf einem Beat geplant, wobei die Quelle verschwindet, während sich das Ziel formt | Überblendungen, Schnitte, die der Prompt nicht verlangt hat, Dinge, die einpoppen, Identitätsverlust bei einem Materialwechsel |
| Textur und Licht | Papier und Tinte als separate Ebenen (Paper, InkFilter skaliert mit roughFor); Raster und Schraffuren über Muster; Licht als Formen (Kegel, beleuchtete Fenster, Reflexionen) | Gesät und stabil oder sprudelnd mit fester Schrittweite | Einheitliche Textur auf allem, dekorativer Glanz oder Bloom, Flackern durch ungesätes Rauschen |
| Sound | scripts/cues.json: ein getönter Teppich und Figur für Musik oder ein ambience-Teppich für umgebungsgeführte Szenen; ein Ereignis auf jedem visuellen Hit | Synchronisiert mit dem T-Block; das Ende eines Loops geht in seinen Anfang über | Stille durch Auslassung, Rauschen als Musik verwendet, Hits außer Sync |
Universelle Regeln
- Werden ist echt. Jede X-Zeile morpht dasselbe Objekt Punkt für Punkt (gleiche Punktanzahlen;
chain()für viele Formen,converge()für viele-zu-eins). Die Quelle ist verschwunden, wenn sich das Ziel formt. Das Ziel ist vollständig erreicht: Wenn der Prompt sagt „wird zu einem Balkendiagramm“, endet es als Balken. Teile werden an ihrer Quelle geboren und reisen. Zusammenführungen und Teilungen erhalten die Menge. Simuliere niemals eine Transformation mit einer Überlagerung, einer Überblendung oder einem plötzlichen Ersetzen. - Jedes Element ist spezifisch. Ein generischer Platzhalter ist ein Verstoß gegen den Vertrag. Eine Box hat eine Farbe, eine Kante, eine Füllung und eine Rolle, die aus dem Prompt stammen.
- Jede Szene wächst aus der vorherigen. Das Ende von Szene n ist der Anfang von Szene n+1. Getragene Elemente gehen durch.
- Nichts poppt ein. Jeder Eintritt wird eingeleitet. Tauchen, Zoomen, Gleiten, Enthüllen, sich aufbauen – jede Ankunft hat eine Bewegung.
- Jeder Exit ist fertig. Schwebende Elemente, unvollständige Transformationen und halb aufgelöste Charaktere sind Fehler.
- Die Kamera bleibt still. Sie bewegt sich nur, wenn der Prompt es verlangt. Ein stiller Schwenk oder Zoom innerhalb eines Satzes ist eine bewegte Kamera.
Stufe 5 – Bauen
- Kopiere
templates/remotion-starter/in den Projektordner. - Fülle
src/spec.tsmit den Werten aus S. Überschreibe alle Platzhalter. - Baue jedes Element als Komponente und schreibe die Daten aus E in
src/film.tsx. - Schreibe die Szenendateien mit den Beats aus T, zeichne jedes Element und wende die Übergänge aus X an.
- Generiere in
scripts/cues.jsondie Sound-Cues. - Konfiguriere
src/Root.tsxundsrc/Composition.tsx.
In einem Host mit Dateiwerkzeugen:
mkdir -p srcund schreibe jede Datei.- Führe
npx tsc -p .aus. Korrigiere Typprüfungsfehler. - Führe
npm run checkaus. Behebe alle Warnungen zu Mischungen, versteckten Elementen und unsichtbaren Beats. - Führe
npm run renderaus. Betrachte die Standbilder. Korrigiere jedes Element, dessen Standbild nicht mit dem Vertrag übereinstimmt.
Prüfungen:
spec.tsendet als gültiges TypeScript.- Alle importierten Komponenten existieren.
- Die Dauer von
FILMpasst zur Summe der Szenendauern. - Sound-Cues liegen innerhalb der
FILM-Dauer.
Stufe 6 – Design-Jury-Kritik
-
Fünf Juroren bewerten unabhängig voneinander jedes Kriterium auf einer Skala von 1–10, wobei 8 = gut genug für Opus.
- J1 (Stil & Komposition): Ist der Look auf dem Niveau des Prompts? Kein generischer Hintergrund, kein Platzhalter-Layout.
- J2 (Bewegung & Übergänge): Ist jede Bewegung beabsichtigt? Kein Einpoppen, kein Ruckeln, jede Transformation ist echt.
- J3 (Kontinuität & Identität): Sind die Elemente in jedem Bild wiedererkennbar? Kein Driften, keine Stilverluste.
- J4 (Genauigkeit der Inhalte): Werte, Zahlen, Text und Besetzung entsprechen dem Prompt?
- J5 (Sound & Rhythmus): Ist der Sound passend und im Takt?
Jeder Juror schreibt einen kurzen Kommentar und eine Punktzahl.
-
Die Verbotsliste (automatischer Durchfall bei jedem):
- Generische Verläufe oder Glow
- Linien, die nicht geschlossen sind oder keine konstante Breite haben
- Bilder außerhalb der Leinwand (nicht beschnitten, sondern wirklich außerhalb)
- Text in einer anderen Schriftart, Größe oder Position als angegeben
- Standbilder, die nicht zum Vertrag passen
- Sound, der nicht abgestimmt oder nicht vorhanden ist, wenn er sein sollte
- Fehlende Typprüfung (nicht kompiliert)
-
Korrigiere, bis jeder Juror ≥ 8 gibt. Iteriere: Passe die Dateien an, führe neu aus und führe die Inspektion erneut durch. Nach jeder Iteration geben die Juroren aktualisierte Punktzahlen und Kommentare.
Stufe 7 – Ausgabe
- Nur Chat: Gib die Dateien als Codeblöcke mit ihren Pfaden aus.
- Host mit Dateiwerkzeugen: Schreibe die Dateien auf die Festplatte. Gib keine Codeblöcke aus, es sei denn, es wird darum gebeten.
Stufe 8 – Letzte Überprüfung
- Alle Zeilen in S, X, E sind im Code vorhanden.
- Alle Juroren haben ≥ 8.
- Keine Verbote wurden ausgelöst.
npm run checkzeigt null Probleme.- Ein Standbild aus der Mitte des Films sieht gut aus, wenn es als PNG geöffnet wird.
- Für einen Loop:
npm run render -- --frames=0-10und stelle sicher, dass Bild 0 und Bild D nicht flackern.
Fehlerbehebung
| Symptom | Prüfe |
|---|---|
| Weiße Leinwand | spec.ts-Werte: Sind sie gültig? |
| Falsche Bewegung | motion.tsx: Wird die Bewegung aus dem Register korrekt verwendet? |
| Sound fehlt | cues.json: Ist es gültig und im Takt? |
| Transformationsfehler | chain()/converge(): Stimmen die Punktanzahlen überein? |
| Charakter sieht seltsam aus | Body-Designblatt: Sind die Proportionen korrekt? |
Dieser Skill stellt sicher, dass jeder Film den vollen Reichtum und die Intentionalität einer Opus-5.5-Ausgabe erreicht.