Was macht longtake?
Basierend auf onetake von Patrick, modifiziert für vertikale (9:16) Kurzvideo-Plattformen. Was geändert wurde und warum:
CHANGES.md. Vertikale Methode:references/vertical.md.
Kurze Bewegungsfilme über ein Produkt, aufgebaut aus dem Produkt. Kein Video-Editor, kein Diashow-Generator: eine Komposition (eine HTML-Datei, window.__seek(t)), eine Bewegungsbibliothek (lib/motion.js), Footage aufgenommen vom echten Produkt, eine Klangpalette, die einen gemeinsamen Raum teilt, und ein Orakel, das sagt, ob der Schnitt Rhythmus hat und ob er trägt, bevor ein Mensch ihn sehen muss.
Sechs Filme haben es gelehrt. motion-web brauchte drei Schnitte: Der erste und zweite wurden als „PPT 式一个一个展示“ wegen eines gleichmäßigen Rhythmus abgelehnt – die Rhythmus-Hälfte. Pocket Weather Club hatte den Rhythmus und war trotzdem PPT: Seine v1 bestand alle Rhythmusprüfungen und wurde abgelehnt, weil jeder Beat den vorherigen ersetzte. v3 wurde akzeptiert, als jeder Beat aus dem letzten erwuchs – die Figur landet auf der Überschrift, die Seite wächst aus ihrer Karte, eine Bühne öffnet sich aus der Figur. Das ist die Carry-Hälfte. One dot fügte den Operator hinzu: Mit einer statischen Kamera war es „es fehlt nur eine lebendige, verfolgende Kameraführung“; mit einer Kamera, die jagt, was jeder Beat einrahmt – hinterherhängend, neigend, sich setzend – war es „Kameraführung, Objektiv und Physik sind in Ordnung“. knockon trug durch Ursache: Eine leichte Tischmaschine, bei der jeder Beat die Kollision ist, die den nächsten startet. clearing trug durch Maßstab: Eine Einstellung von einem Jahr zu einer freien halben Stunde und zurück, eine Kamera, die den Anker auf dem Bildschirm jagt, sodass er bei 1× und 300× gleich landet. overlap war die Bedeutungslektion: Sein erster Schnitt war „Die Kunst ist schön, aber ich verstehe nicht, was es bedeutet“, und das Hinzufügen von beschrifteten Cursorn machte es schlimmer; es wurde erst gelesen, als die Idee in das Kunstwerk eingebaut war – ein &, versteckt in zwei Rauschplatten, das in dem Moment erscheint, in dem die Durchgänge in Deckung kommen. Alles hier existiert, damit der nächste Film dort beginnt, wo diese Filme endeten.
Was das Protokoll nicht geben kann (zuerst lesen)
Die Regeln unten sind meistens Ablehnungen, die aufgeschrieben wurden: Sie verhindern, dass ein Film eine Diashow wird. Sie sind ein Boden. Ein Film kann jede Regel und jedes Orakelbein bestehen und trotzdem tot sein – W1 (ein vertikaler Promo, 2026-11) schaffte das: carry 1,00, VERDICT PASS, und das Urteil war „sehr starr, nicht 70 % des Referenzfilms“. Was ihm fehlte, ist das, was die akzeptierten Filme hatten:
- Material, das in jedem Beat sehenswert ist. Der onetake-Launch-Film (die übliche Referenz) ist v8: Drei Prompts, die jeweils einen vollständig gestalteten Mini-Film mit eigener Palette und eigener Bewegungssprache werden. Der Zuschauer sieht Arbeit, keine Etiketten über Arbeit. Frage zuerst: Was ist das Schönste, was wir besitzen (Footage, fertige Filme, echte UI)? Baue den Film daraus, im Vollbild. Ein Konzept, das einen Prozess mit Karten und Chips erklärt, ist ein Diagramm, und ein gut bewegtes Diagramm ist immer noch ein Diagramm.
- Eine Uhr. Jeder starke Fall schneidet auf ein Musikraster – sendet auf Downbeats, der schnellste Abschnitt auf dem Drop, ein Stopp auf einem stillen Beat. Ohne Erzählung ist Musik der Zeitstrahl, nicht Dekoration. Das Timing von Beats nach „lang genug zum Lesen“ ergibt ein gleichmäßiges Tempo, das steif wirkt. Wenn das Projekt des Benutzers Musik verbietet, sag, was das kostet, und frage nach.
- Ein Bogen. Dichte und Geschwindigkeit bauen auf einen Höhepunkt zu, dann Entspannung. Fünf gleiche Stationen sind eine Liste.
- Veränderung als Inhalt. Im Referenzfilm transformiert sich das Ding selbst (ein Fenster fließt in ein Telefon um, eine Leiste öffnet sich zu einem Film). Bewegung, die nur zwischen statischen Beats reist, sind Übergänge um Folien herum.
- Runden des Betrachtens. Der Referenzfilm brauchte acht geprüfte Schnitte. Zeige Standbilder des Hooks und des Höhepunkts vor dem ersten Render und einen Entwurf vor dem Polieren; präsentiere niemals einen ungeprüften Durchgang als endgültig.
Wann dieser Skill, und wann nicht
- Ein Launch-/Teaser-/Intro-Clip für eine App, eine Seite, einen Skill, eine Funktion – ja.
- Eine erzählte Feature-Demo (30–60 s), die das Produkt in Verwendung zeigt, möglicherweise in mehreren Sprachen – ja: Baue die UI neu auf, anstatt sie aufzunehmen (§4,
references/product-demo.md). - Der Benutzer hat einen Referenzclip, dessen Gefühl er haben möchte – ja, starte bei §1.
- Langform, sprechende Köpfe, Bearbeiten von vorhandenem Filmmaterial mit Übergängen – nein.
- Der Benutzer nennt HyperFrames oder Remotion explizit – verwende, was er nennt. Ansonsten diese Pipeline.
Das Protokoll – in dieser Reihenfolge, kein Überspringen
1 · Zerlege die Referenz, bevor du etwas anfasst (硬规则)
python3 scripts/analyze_ref.py ref.mp4 --out ana/ # Energiekarte, Schnitte, Stille, Kontaktblätter, Bewegungslinie
Lies die Energiekarte und die Blätter und schreibe die Zahlen auf, die der Film erreichen muss. Die Energiekarte sagt, wann sich der Film bewegt; die motion:-Zeile sagt, wie – Median t80 (Schnappschüsse oder S-Kurven) und Smear (dargestellt mit Bewegungsunschärfe oder nicht). Was den motion-web-Film entschied: Die Referenz war 34 % totenstill, hatte 7 harte Schnitte in zwei Schüben und hielt jedes Element klein mit viel Weißraum. Nichts davon ist beim einmaligen Ansehen offensichtlich, und ein Film, der ohne Messung gebaut wurde, hatte einen gleichmäßigen Rhythmus – zweimal. references/reference-deconstruction.md.
Die Zahlen der Referenz haben Vorrang vor den Genre-Regeln unten. „Kleine Elemente, großer Grund“ und „ein Drittel der Zeit still“ wurden von motion-web gemessen. Der onetake-Launch-Film ist ~10 % still und meistens Vollbild; W1 folgte den Genre-Regeln dagegen (still 0,50, leerer Grund) und kam leer und langsam heraus. Schreibe still % auf, wie viel des Bildes gefüllt ist, Schnittanzahl und wo der dichteste Abschnitt sitzt, und gleiche diese ab. Notiere auch, woraus die Beats der Referenz gemacht sind (fertig gestaltete Stücke? echte UI? Typ?) und ob sie auf Musik geschnitten ist – das ist die Eingabe für §2.
2 · Konzept – drei zentrale Ideen vor jedem Beat-Blatt (硬规则)
Ein Konzept ist ein Satz über das Bild, nicht das Produkt: die einzige Idee, aus der der Film gemacht ist. Schreibe drei, die sich in dieser Idee unterscheiden – nicht drei Geschichten, die mit denselben Karten erzählt werden:
- Ein Element transformiert sich durch alles – ein Punkt ist der Cursor, teilt sich in die Skill-Liste, wird hohl zu einem Ladering, rollt sich zu einer Federkurve aus, landet als Punkt auf dem i des Wortzeichens;
- Eine Kamerabewegung durch den Maßstab – starte im Cursor, zoome heraus zur Eingabe, tauche durch den Senden-Button in die Arbeit, komme durch den fertigen Film heraus (
cases/clearing-15s: ein Jahr → ein Tag → eine halbe Stunde → zurück); - Ein Vorher/Nachher-Split – dieselben Beats als Diashow links und getragen rechts, bis die rechte Seite in die linke einbricht;
- Eine Kettenreaktion – jeder Beat ist die Kollision, die den nächsten startet (
cases/knockon-15s); - Oder eine physische Metapher, eine durchgehende Oberfläche, ein typografisches System…
Für jedes: das Hook-Bild, was jede Grenze trägt, was es ausschließt (keine Karten? keine Schnitte?) und sein Look – ein Voreinstellung aus looks/ (python3 scripts/look.py sheet → gallery/sheets/looks.png: paper, dusk, tabletop, ultramarine, riso, ember, jede gemessen aus einem akzeptierten Film), die eigenen Farben des Produkts (look.py from-shot shots/*.png --out look.json) oder ein für diesen Film erstellter. Zeige die drei und lass den Benutzer wählen. Die Vorlagengeschichte – kinetische Wörter → getippter Prompt → tickende Checkliste → Ergebnis → Stakkato-Hits → schwarzes Wortzeichen – ist ein Konzept, niemals der Standard: Eine darauf aufgebaute Betriebsdemo bestand jedes Orakelbein (carry 1,00) und wurde zurückgeschickt als „ähnelt motion web… keine Kreativität“. Das Gleiche gilt für die Beispiele in der Liste oben und für jeden Fall: „One dot“ zu wählen, weil es das erste Beispiel ist, ist Kopieren, kein Konzept (W1 tat das und las sich wie ein Diagramm). Teste jedes Konzept mit zwei Fragen: Was sieht der Zuschauer in der geschäftigsten Sekunde? (es muss etwas Schönes sein, kein Etikett) und In was verwandelt sich das Ding selbst?
Vertikale (9:16) Filme sind keine gedrehten Querformatfilme: Das Bild ist eine hohe Säule, also fülle sie von oben nach unten, lass Material über die Ränder laufen und halte die Sicherheitszonen der Plattform ein (Untertitel und Buttons bedecken die unteren ~20 % und den rechten Rand). stills.py --width 1080 --height 1920 behält das Seitenverhältnis in seinem Blatt. Die Methode, mit dem Nested-Portal-Tauchgang und seinen Zahlen: references/vertical.md, Fall cases/huazhong-dongtian-22s/.
3 · Storyboard als Rhythmus und Carry
Schreibe das gewählte Konzept als Beat-Blatt: t · Beat · was sich bewegt · was still ist · was in den nächsten Beat trägt.
Rhythmus. Variiere die Schusslänge um ≥ 4× (0,25 s Wörter neben 2,5 s Halten). Mindestens ein Abschnitt mit nahezu Stille in Bild und Ton. Eine Geschichte – die des Konzepts – kein Katalog. Elementgröße und Grund folgen der Referenz (§1).
Bogen und Uhr. Wähle die Musik vor dem Beat-Blatt, finde ihre Downbeats, ihre stillen Lücken und ihren Drop (scripts/beat_grid.py) und schreibe jedes t im Blatt als einen Beat dieser Spur. Der Höhepunkt des Bildes sitzt auf dem Drop.
Carry. Benenne an jeder Abschnittsgrenze das Ding, das sie überlebt und sich bewegt: die Hand, das Subjekt, ein Behälter, der zur nächsten Szene wird (morphRect), eine Bühne, die sich aus dem Subjekt öffnet (iris), eine Kamera, die in eine Karte drückt, bis sie die Szene ist (zoomThrough), ein Guss, der sich in die Verriegelung faltet (gather → seal). Wenn nichts überlebt, ist es ein Folienwechsel, egal welcher Rhythmus. Nackte Schnitte gehören zu Schüben von Hits und der Endkarte, wenn das Konzept sie hat. references/rhythm.md.
4 · Footage vom echten Ding – oder die UI aus Screenshots neu aufgebaut
python3 scripts/record_footage.py footage.json --out footage/
Echte Seiten, in Echtzeit von Playwright gesteuert (wanduhr-gesteuerte Wischbewegungen, Radschritte, Klicks), aufgenommen in der Größe, in der du sie zeigen wirst, mit einem magentafarbenen Marker, der in dem Moment injiziert wird, in dem die Eingabe beginnt, damit der Aktionsrahmen später auffindbar ist. Einzelbilder kommen mit 30 fps als JPEG heraus; der Zeigerpfad wird gespeichert, damit die Komposition die Hand wieder einzeichnen kann – der Betrachter muss die Ursache sehen, nicht nur die Wirkung. Format in den Dokstrings des Skripts.
Oder baue es neu auf. Wenn der Film durch die Funktionen einer App führt (und vor allem, wenn er eine Stimme oder andere Sprachen hat), macht der Benutzer Screenshots oder nimmt nur Referenzaufnahmen, und die UI wird im eigenen Pixelrahmen der Referenz in HTML neu aufgebaut. Jede Zeichenkette lebt in einer Tabelle, jeder Zustand wird von einem reinen set(state) geschrieben, und die Replik sitzt auf der Ebene, auf der die Kamera bei jedem Zoom nah heranrücken kann. Hervorhebungen werden aus ihrem DOM gemessen (lib/ui_kit.js). Die Erzählung kommt von scripts/vo_tools.py: Audition, Zeilen, Wortzeiten, Untertitel. Eine zweite Sprache ist ?lang= auf derselben Komposition, ihr VO auf die autorisierte Zeitleiste abgebildet durch UIK.timeWarp-Knoten auf Wörtern, die dasselbe bedeuten, mit scripts/frame_diff.py pixelidentisch für die Ausgangssprache geprüft. Der Inhalt bleibt die tatsächliche Ausgabe des Produkts. Methode, Zahlen und was das ist: references/product-demo.md. Es ist eine Technik, kein Look: Palette, Bühne, Kameragrammatik und Übergänge werden in §2 jedes Mal neu gewählt.
5 · Komponieren – eine Datei, reine Funktionen der Zeit, Bewegungen aus der Bibliothek
mkdir -p cases/my-film && cp templates/comp.html lib/motion.js cases/my-film/ # die Vorlage lädt motion.js → window.OM
python3 scripts/probe.py my-film/comp.html # sobald es von Ende zu Ende abspielt: was trägt jede Grenze, die Kurve jeder Bewegung
Wähle Bewegungen, indem du auf gallery/sheets/<move>.png schaust – sechs Bilder über der Geschwindigkeitskurve dessen, was sich bewegt. Die Bibliothek hat 39: Eingänge, Träger, Kontakt- und Live-Simulationen, Kamera und ihre Projektionshelfer sowie ein Fluid-Set (ein Lichtfeld, Wellen, Seide, ein Band, SwiftUI-Federn); jede ist eine Funktion der Zeit, die Zahlen für eine DOM-Transformation oder einen Canvas-Aufruf zurückgibt. Leite niemals eine Feder oder eine Erleichterung mit festen Konstanten neu ab. Die Vorlage ist der motion-web-Film (kinetische Wörter, getippter Prompt, tickende Checkliste, Durchflüge, Live-Simulationen, ein Halten, Stakkato-Hits, ein durchgehender Handpfad, den jede Simulation liest) – kopiere ihre Beats nur, wenn das das in §2 gewählte Konzept ist; ansonsten behalte ihren Vertrag und ihre Helfer und schreibe die Beats des eigenen Konzepts. Alles ist f(t); Simulationen werden einmal bei 240 Hz vorab simuliert und abgetastet. Vorschau mit ?play, fixieren mit ?t=6.4&hud. references/motion-library.md, references/composition.md.
Der Look wird mit der Komposition ausgeliefert. python3 scripts/look.py apply ember cases/my-film/comp.html (oder ein look.json) schreibt look.js daneben: die acht Farben als CSS-Variablen und LOOK.color, drei OFL-Schriften, reduziert auf die Glyphen, die die Komposition setzt, und inline eingebunden, sodass der file://-Render echte Schrift bekommt. Lade es vor dem Skript der Komposition, schreibe gegen var(--ink) / var(--display) oder LOOK.font('display', 96), und kette window.__ready an LOOK.ready. Führe es nach Textänderungen erneut aus; es benennt jedes Zeichen, das einer Schrift fehlt (--cjk <font> für Chinesisch / Japanisch / Koreanisch).
Kamera: eingetastet, aber bedient. OM.camera(t, keys) setzt die Kamera dorthin, wo jeder Beat sie braucht; das Gefühl eines Operators entsteht aus der Platzierung der Keys: taste das Subjekt ~0,1 s voraus auf sineInOut, um es zu verfolgen, taste den Landepunkt vor einem Schnappschuss auf expoInOut, um dorthin zu peitschen, füge eine Hand (einen langsamen Zwei-Sinus-Float, Null in den Halten) und OM.shake bei jeder Landung hinzu. Zeichne ein schwaches OM.lattice weiter hinten, oder auf einem leeren Grund liest die Bewegung nicht. Mit einer Kamera gibt __track Bildschirmboxen zurück (OM.projectBox), __motion gibt render.py die Bewegung, und __meta.inFrame benennt, was niemals den Rahmen verlassen darf. Die Methode, mit Code: references/composition.md → A camera.
6 · Rendern – 1080p30-Entwürfe, 4K60 nur nach Akzeptanz
python3 scripts/stills.py comp.html --times 0.7,2.4,3.8,6.2,9.9,12.7 --out stills.png # sieh nach, bevor du renderst
python3 scripts/render.py comp.html --out draft.mp4 --sfx sfx.wav # 1920×1080 · 30 fps · 180° Shutter
python3 scripts/render.py comp.html --out film.mp4 --final --sfx sfx.wav # 3840×2160 · 60 fps, sobald der Schnitt akzeptiert ist
Der Shutter ist echte Bewegungsunschärfe: Jeder bewegte Frame sind mehrere Suchen über den offenen Shutter, gemittelt in linearem Licht; Halte werden erkannt und übersprungen. Ein Capture ist ein Chrome-Screenshot (~150 ms; die Seite selbst zeichnet in unter 1 ms), also läuft render.py --workers Browser in parallelen Prozessen (Standard Kerne − 2, max. 16). Wähle die erste Worker-Zahl aus der CPU:gallery/sheets/host.png. Gib den --sfx-Pfad, wenn der Film einen begleitenden Soundtrack hat, der laut genug ist: Die Komposition enthält nur die internen Bewegungsgeräusche (OM.audio-Aufrufe mitbase/daintree/raw/krezip.wav; die externe WAV wird in die feinen Frames gemultiplext. Die --final-Option ist für die 4K-Ausgabe, den vollen Shutter und die volle Bildrate; verwende sie erst, wenn der Schnitt formell akzeptiert und die Komposition als endgültig markiert ist. Rendere niemals zweimal mit demselben --out`‑Ziel.
Kontrolle über das Orakel. verdict.py ref.mp4 draft.mp4 vergleicht den Entwurf mit der Referenz und gibt einen Bestehen/Nicht-Bestehen-Beschluss aus, der den Bestehen-Beschluss in der Referenz gewichtet: carry (ob die Bewegung von einem Beat zum nächsten trägt), stillness (ob das Bild in den gleichen Abschnitten wie die Referenz still ist), density (ob die Fläche jedes Beats das gleiche Verhältnis hat) und rhythm (ob die Schnittzeitpunkte mit dem Musikraster übereinstimmen – dazu ist --bpm erforderlich). Das Skript gibt einen Durchschnittswert von 0–1 und ein kurzes textuelles Urteil aus. Die bestehenden Fälle sind auf carry ≥ 0,90 und stillness innerhalb von 10 % der Referenz eingestellt; passe diese Schwellenwerte im Skript an, wenn das Projekt des Benutzers anders ist. Jeder Entwurf, der länger als 15 Sekunden ist, sollte zuerst einen Teil-Render seiner dichtesten 4 Sekunden haben, dann einen Voll-Render, wenn die ersten Ergebnisse akzeptabel sind. scripts/oracle.py wird in Kürze veraltet sein.
7 · Ausliefern – auf das Ziel beschneiden und liefern
python3 scripts/crop.py film.mp4 --out film_9x16.mp4 # 1080×1920 sozial, crop-top oder safe, wie die Plattform verlangt
Das Ausgabeformat ist H.264 in einem MP4-Container, progressive Abtastung. Für jede Plattform ein separates MP4 – die Palette und die Sicherheitszonen jeder Plattform sind unterschiedlich. Füge eine Untertitelspur nur bei, wenn die Zielplattform sie verlangt; die Komposition definiert ihre eigenen Untertitel als HTML-Elemente, gerendert von Chrome im --subtitle-Modus. Das endgültige Film-MP4 hat keinen Untertitel; die Untertitel sind eine separate Datei für jede Plattform. Hinweis: Das MP4 enthält keinen Audiostream; die externe WAV wird separat geliefert. Der Benutzer gibt die endgültigen Plattformen in der Konfigurationsdatei an.
8 · Einreichung und Überprüfung
Wenn der Film akzeptiert ist, füge ihn zur Fallliste des Skills hinzu, mit einem Eintrag in cases/README.md, der den Namen des Films, seine Länge, das Konzept, den benutzten Look, das BPM der Musik und den carry-Wert aus dem Orakel auflistet. Reiche den Film beim Skill-Repository ein, oder lade ihn auf die Plattform des Benutzers hoch, wie vereinbart. Der Fall sollte den Referenzfilm enthalten, gegen den er gemessen wurde, als ref.mp4 im Fallverzeichnis.
Fallliste
cases/motion-web-22s/– der erste Film, der das Protokoll lehrte; Rhythmus und Carry aus drei Schnitten gelernt.cases/pocket-weather-club-18s/– der zweite Film; Carry aus drei Schnitten gelernt.cases/one-dot-20s/– der dritte Film; Operator aus zwei Schnitten gelernt.cases/knockon-15s/– der vierte Film; Ursache als Carry.cases/clearing-15s/– der fünfte Film; Maßstab als Carry.cases/overlap-25s/– der sechste Film; Bedeutung in der Kunst.cases/huazhong-dongtian-22s/– der vertikale Promo, der den Nested-Portal-Tauchgang lehrte.cases/W1-vertical-promo-2026-11/– der fehlgeschlagene vertikale Promo, der die Lektion lehrte, dass Zahlen allein nicht ausreichen.
Referenzen
references/vertical.md– die Methode und die Zahlen für vertikale Filme.references/product-demo.md– die Methode, Zahlen und was es für Produktdemos ist.references/rhythm.md– die Rhythmus- und Carry-Regeln.references/composition.md– die Kompositionsmethode, einschließlich der Kamera.references/motion-library.md– die Bewegungsbibliothek.references/reference-deconstruction.md– die Methode zum Dekonstruieren einer Referenz.
Skripte
scripts/analyze_ref.py– analysiere eine Referenzvideodatei.scripts/beat_grid.py– finde das Musikbeat-Raster aus einer Audiodatei.scripts/look.py– verwalte Looks: Blatt, anwenden, aus Schüssen.scripts/record_footage.py– nimm echtes UI-Footage mit Playwright auf.scripts/probe.py– analysiere die Komposition auf Carry und Bewegungskurven.scripts/stills.py– rendere Standbilder aus der Komposition.scripts/render.py– rendere die Komposition zu Video.scripts/verdict.py– vergleiche den Entwurf mit der Referenz und gib einen Bestehen/Nicht-Bestehen-Beschluss aus.scripts/crop.py– beschneide das Video auf die Zielplattform.scripts/frame_diff.py– vergleiche zwei Frames auf Pixelidentität.scripts/vo_tools.py– Werkzeuge für die Erzählung: Audition, Zeilen, Wortzeiten, Untertitel.
Bibliotheken
lib/motion.js– die Bewegungsbibliothek, 39 Funktionen.lib/ui_kit.js– UI-Kit für den Nachbau von UI in HTML.
Vorlagen
templates/comp.html– die Kompositionsvorlage.
Galerie
gallery/sheets/– Blätter für Looks, Bewegungen, Host-Diagramm.
Lizenz
MIT