Motion Replicate — von einem Referenzlink zu einem bearbeitbaren AE-Rebuild
Lies zuerst die Abschnitte "复刻参考片失败的五个根因" und "复刻参考片:先逐帧量,再动手" aus skill/SKILL.md.
Die Regel: Messen vor dem Bauen. Jede Zahl im Rebuild stammt aus der Referenz.
1. Referenz holen
python3 tools/fetch_reference.py "<link>" --slug <kurzname>
- Pinterest (pin.it oder /pin//): Lädt das Video des Pins über die öffentliche Widget-API von Pinterest herunter, inklusive Idea/Story-Pins. Wenn der Pin nur ein Bild ist, teilt das Tool dies mit und gibt den ausgehenden Link aus: Die echte Bewegung befindet sich normalerweise dort (ein Instagram- oder Behance-Post). Folge ihm.
- Direkte Video-URL (.mp4/.mov/.webm/.gif): Wird unverändert heruntergeladen.
- Behance, Vimeo, YouTube, Portfolio-Seiten: Lehnen oft Kommandozeilen-Anfragen ab (Exit-Code 3)
oder betten einen Player ein. Dann ansehen statt herunterladen:
- Öffne die Projektseite im Browser und liste die Player auf:
[...document.querySelectorAll('iframe,video')].map(n => n.src || n.currentSrc). - Öffne die Player-URL selbst (z. B.
https://player.vimeo.com/video/<id>), fügetools/browser_frame_sampler.jsin das JavaScript-Tool des Browsers ein, führeawait motionAgentSample({ fps: 12 })aus, dann Screenshot: Du erhältst ein zeitgestempeltes Kontaktblatt und die Bewegungsenergie pro Einzelbild.await motionAgentShowFrame(t)+ Screenshot ergibt ein vollauflösendes Einzelbild zum Messen von Positionen. - Speichere die Screenshots und das zurückgegebene JSON in
refs/<slug>/.
- Öffne die Projektseite im Browser und liste die Player auf:
- Umgehe niemals Logins, Paywalls oder Bot-Checks und manipuliere niemals Header, um geschützte Dateien abzurufen. Wenn eine Seite dich blockiert, verwende den Browser-Weg oder bitte den Benutzer, den Clip herunterzuladen.
Alles unter refs/ ist git-ignoriert. Referenzvideos gehören ihren Erstellern: Committe sie niemals
oder veröffentliche ihre Einzelbilder; gib den Ersteller (meta.json) im Fall an.
2. Messen
python3 tools/analyze_reference.py refs/<slug>/reference.mp4 --fps 24
Lies refs/<slug>/ANALYSIS.md: Größe, Bildrate, Dauer, Haltepunkte, Schnitte, schnellste Momente,
ob es looped, Palette, plus ein Kontaktblatt und ein Bewegungsenergie-Diagramm. Miss dann jedes
bewegte Element aus frames/ (Pixelpositionen, Skalierung, Rotation an Start, Ende und
Wendepunkten; tools/measure.py hilft) und schreibe eine kurze Spezifikation: Element → Keys (Zeit, Wert) →
Geschwindigkeitsform (Ease in / out / beides, Überschwingen).
Teile dem Benutzer in 3–5 Zeilen mit, was du gemessen hast und wie du es bauen wirst, bevor du baust.
3. In After Effects nachbauen
- Komposition mit der Größe und Bildrate der Referenz (maßstäblich ×2 für kleine Referenzen, und dies mitteilen).
- Öffne die Komposition im Viewer und bewege den Abspielkopf während der Arbeit, damit der Benutzer zusehen kann.
- Keyframes mit Bézier-Easing zuerst (explizite Geschwindigkeit/Influence, die die gemessene Geschwindigkeitskurve reproduzieren); Ausdrücke nur, wenn Keyframes es nicht können.
- Ein kurzes Wort pro Kompositions- und Ebenenname.
- Speichere ein Backup vor jeder strukturellen Änderung.
4. Vergleichen und iterieren
Rendere die gleichen Zeitstempel wie die Referenz-Einzelbilder und setze sie nebeneinander:
python3 tools/sheet.py "<unsere bilder-glob>" refs/<slug>/compare.png --pair "refs/<slug>/frames/f_*.jpg"
Überprüfe Timing (Haltepunkte und Schnitte landen auf den gleichen Einzelbildern), Positionen (innerhalb weniger Pixel beim gleichen Maßstab), Geschwindigkeitsform und Farbe. Behebe zuerst die größte Abweichung und vergleiche erneut. Melde jede Runde mit dem Vergleichsblatt. Höre auf, wenn der Benutzer zufrieden ist.
5. Behalte, was gelernt wurde
Wenn der Benutzer den Render bestätigt, führe agent-skills/motion-retrospective aus. Der Fall gibt
den ursprünglichen Ersteller und Quell-Link an, enthält nur die Einzelbilder unseres eigenen Rebuilds und
zeichnet die gemessenen Zahlen sowie die Keyframes auf, die sie reproduziert haben.