Montage chop-cut (HyperFrames)
Approuvé sur la bande-annonce « The Brief ». Les gens jugent les montages sur le rythme et la narration, pas seulement sur le polissage — un simple montage de belles scènes passe pour « basique ». Donne-lui une histoire avec des enjeux.
1. L'histoire d'abord (avant tout code)
Écris une histoire en 5 à 8 temps où chaque temps met en valeur une capacité et où le montage lui-même raconte l'histoire. Le modèle qui a fonctionné : accroche (un problème + une horloge) → montage de travail (une compétence par section) → rebondissement/obstacle (freeze frame, retour client) → réponse smash cut → dénouement fulgurant → livré → carte de fin. Un HUD persistant (horloge qui saute, étiquette de scène) garde le spectateur orienté malgré les coupes rapides.
Ensuite, une feuille de repère sur une grille : 150 BPM = beat 0,4 s, mesure 1,6 s (ou 120 BPM = 0,5 s). Chaque coupe, slam et légende se place sur un beat ; les sections changent sur les lignes de mesure. Accroche = 1 mot par beat pendant les 1,6–3,2 premières secondes.
2. Commencer à partir du modèle
cp -R templates/chop-reel videos/<nom> && cd videos/<nom>
../../.venv/bin/python score.py # écrit assets/audio/score.wav
python3 build.py 169 # écrit index.html (16:9) ; build.py 916 pour 9:16
npx --yes [email protected] lint && npx --yes [email protected] render -o ../../out/<nom>-169.mp4
Structure de reel.js — éditer dans cet ordre :
- Scènes :
function scene(g, l)dessine une image complète au temps locall. Utilise des unités relatives (W,H,M,PORT) pour que les deux formats fonctionnent ;fit()réduit le texte à une largeur maximale. - SHOTS :
[t0, t1, scene]— le montage.null= couvert par une transition. - Listes d'effets :
PUNCH(zoom 1,06× qui s'estompe sur 0,2 s à chaque coupe + beats supplémentaires),FLASH(blanc de 2 images sur les chutes, demi-blanc sur les coupes de section),SHAKES[début, durée, amplitude],WHIPS(poussée avec flou de mouvement entre les scènes, moyenne de 9 sous-images). - Les clips vidéo (art huashu, rendus de légendes, plans IA) se placent par-dessus en tant que `<video class=