Motion Replicate — d'un lien de référence à une reconstruction AE modifiable
Lisez d'abord les sections "复刻参考片失败的五个根因" et "复刻参考片:先逐帧量,再动手" du fichier skill/SKILL.md.
La règle : mesure avant de construire. Chaque chiffre dans la reconstruction provient de la référence.
1. Obtenir la référence
python3 tools/fetch_reference.py "<lien>" --slug <nom-court>
- Pinterest (pin.it ou /pin//) : télécharge la vidéo de l'épingle via l'API publique widget de Pinterest, y compris les épingles d'idée/histoire. Si l'épingle n'est qu'une image, l'outil le signale et affiche le lien sortant : le vrai mouvement s'y trouve généralement (un post Instagram ou Behance). Suivez-le.
- URL vidéo directe (.mp4/.mov/.webm/.gif) : téléchargée telle quelle.
- Behance, Vimeo, YouTube, sites portfolio : refusent souvent les requêtes en ligne de commande (code de sortie 3) ou intègrent un lecteur. Dans ce cas, regardez au lieu de télécharger :
- Ouvrez la page du projet dans le navigateur et listez les lecteurs :
[...document.querySelectorAll('iframe,video')].map(n => n.src || n.currentSrc). - Ouvrez l'URL du lecteur lui-même (ex.
https://player.vimeo.com/video/<id>), colleztools/browser_frame_sampler.jsdans la console JavaScript du navigateur, exécutezawait motionAgentSample({ fps: 12 }), puis prenez une capture d'écran : vous obtenez une planche contact avec horodatage et l'énergie de mouvement par image.await motionAgentShowFrame(t)+ capture d'écran donne une image pleine résolution pour mesurer les positions. - Enregistrez les captures d'écran et le JSON retourné dans
refs/<slug>/.
- Ouvrez la page du projet dans le navigateur et listez les lecteurs :
- Ne contournez jamais les connexions, les paywalls ou les contrôles anti-bot, et ne falsifiez jamais les en-têtes pour récupérer des fichiers protégés. Si une page vous bloque, utilisez la méthode navigateur ou demandez à l'utilisateur de télécharger le clip.
Tout ce qui se trouve sous refs/ est ignoré par git. Les vidéos de référence appartiennent à leurs créateurs : ne les commettez jamais
et ne publiez jamais leurs images ; créditez le créateur (meta.json) dans le compte rendu.
2. Mesurer
python3 tools/analyze_reference.py refs/<slug>/reference.mp4 --fps 24
Lisez refs/<slug>/ANALYSIS.md : taille, fréquence d'images, durée, arrêts, coupures, moments les plus rapides,
s'il boucle, palette, plus une planche contact et un graphique de l'énergie de mouvement. Mesurez ensuite chaque
élément en mouvement à partir de frames/ (positions en pixels, échelle, rotation à son début, sa fin et ses points
de changement de direction ; tools/measure.py aide) et rédigez un court cahier des charges : élément → images clés (temps, valeur) →
forme de la vitesse (ease in / out / les deux, dépassement).
Informez l'utilisateur en 3 à 5 lignes de ce que vous avez mesuré et de la manière dont vous allez le construire avant de commencer.
3. Reconstruire dans After Effects
- Comp à la taille et à la fréquence d'images de la référence (multipliez l'échelle par ×2 pour les petites références, et précisez-le).
- Ouvrez la comp dans la visionneuse et déplacez la tête de lecture pendant que vous travaillez, pour que l'utilisateur puisse regarder.
- Utilisez d'abord des images clés avec easing Bézier (vitesse/influence explicites qui reproduisent la courbe de vitesse mesurée) ; expressions uniquement lorsque les images clés ne peuvent pas le faire.
- Un mot court par nom de comp et de calque.
- Enregistrez une sauvegarde avant chaque changement structurel.
4. Comparer et itérer
Rendez les mêmes horodatages que les images de référence et placez-les côte à côte :
python3 tools/sheet.py "<glob de nos images>" refs/<slug>/compare.png --pair "refs/<slug>/frames/f_*.jpg"
Vérifiez le timing (les arrêts et les coupures tombent sur les mêmes images), les positions (à quelques pixels près à la même échelle), la forme de la vitesse et la couleur. Corrigez d'abord la plus grande différence et comparez à nouveau. Faites un rapport de chaque tour avec la planche de comparaison. Arrêtez-vous lorsque l'utilisateur est satisfait.
5. Conserver ce qui a été appris
Lorsque l'utilisateur confirme le rendu, exécutez agent-skills/motion-retrospective. Le compte rendu crédite
le créateur original et le lien source, n'inclut que les images de notre propre reconstruction, et enregistre les
chiffres mesurés et les images clés qui les ont reproduits.