Communitygithub.com

MBehtemam/montagent-skills

Chronométrage, courbes d’animation et mise en page pour toute vidéo Montagent : grille rythmique à partir de la musique, courbes d’easing et durées de maintien, zones de sécurité, échelle typographique, retenue. À charger avant de juger si un plan est juste.

Qu'est-ce que montagent-skills ?

Ce skill définit les règles de timing, d’easing et de layout pour les vidéos créées avec Montagent, un outil de composition vidéo procédurale. Il permet de générer des grilles rythmiques à partir de fichiers audio (ou de valeurs BPM manuelles), de contrôler les durées d’animation et les courbes d’easing pour chaque type de mouvement, et de vérifier la conformité avec les zones de sécurité (title-safe, action-safe) et l’échelle typographique. Le skill inclut également des contraintes de vitesse (limites de déplacement, rotation, lecture en mouvement) et des principes de « retenue » pour limiter le nombre de couleurs, d’idées par plan et d’effets. Il fonctionne avec les commandes `montagent` (comme `query`, `preview`, `measure`) et un script Python `beat_grid.py`. L’utilisateur doit exécuter les vérifications visuelles décrites dans la section « The look » avant chaque rendu. Le skill s’applique à tous les projets Montagent, quel que soit le format ou la fréquence d’images.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/MBehtemam/montagent-skills/tree/HEAD/skills/montagent-craft

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Craft : chronométrage, courbes d’animation et mise en page

Les nombres qui tiennent dans toute pièce Montagent, quelle que soit sa fonction, sa forme ou sa fréquence d’images. Les durées sont en millisecondes. Les tailles sont des fractions du cadre, mesurées par rapport à son côté court (la hauteur d’un cadre large, la largeur d’un cadre haut), afin de rester valables quelle que soit la taille ou le rapport d’aspect. La recette d’un skill Job donne ses propres nombres pour son propre mouvement ; à l’intérieur de cette recette, ses nombres prévalent.

Le look

À chaque étape du look, vérifiez les images que l’étape nomme par rapport à chaque ligne ci-dessous, et la vidéo entière une fois de plus avant de rendre. Jugez ce qui est dans l’image, jamais ce que vous aviez l’intention de construire. Une ligne que vous n’avez pas pu vérifier à partir de ce que vous avez regardé est considérée comme non vérifiée : regardez à nouveau.

  1. Sur le temps. Chaque cut, entrée et changement de section se trouve sur l’image dessinée de son temps, ou au maximum une image plus tôt (Grille rythmique). query --from --to liste les cuts ; comparez-les avec la grille.
  2. Dans la zone de sécurité. Chaque mot se trouve dans la zone titre-sécurisée, et chaque visage et produit dans la zone action-sécurisée (Zones de sécurité). Pour le texte, query --at <t> --json donne la boîte d’encre de chaque élément en pixels.
  3. Assez grand. Aucun texte destiné à être lu n’est inférieur à 3 % du côté court, et les niveaux sont clairement distincts (Typographie).
  4. Lisible. Le texte par rapport à ce qui se trouve derrière lui atteint le rapport de contraste indiqué dans Typographie, dans chaque image où il est présent. Sur une séquence ou une photo, vérifiez l’image la plus lumineuse et la plus chargée.
  5. Un seul point focal. À tout moment, une chose dirige : la plus récente, la plus grande, la plus lumineuse ou accentuée. Tout le reste a disparu, est immobile ou est nettement en arrière (Retenue).
  6. Fluide. Dans preview, rien ne stroboscope, ne saccade ni ne se présente en copies de lui-même (Limites de vitesse).
  7. Assez long pour être lu. Chaque ligne se maintient pendant son temps de lecture avant que quoi que ce soit ne la déplace (Maintiens).
  8. La fin. La dernière image est complète et immobile, et ce depuis au moins 1 s. Le son atteint 0 sur cette image.

Le look est terminé lorsque chaque ligne tient sur chaque tuile du contact sheet, et à chaque image nommée par l’étape. Corrigez ce qui échoue, puis revenez à l’étape de vérification de montagent.

Grille rythmique

La musique donne le tempo. Trouvez le tempo et le premier temps fort avant de placer quoi que ce soit.

  • Tempo indiqué dans le brief ou les notes d’asset : utilisez-le, avec le temps fort qu’il indique.
  • Tempo non indiqué : exécutez python3 scripts/beat_grid.py <project> <spec> (exécutez-le avec --help pour la spec). Il écoute la piste, la place de sorte qu’un temps fort atterrisse là où vous le souhaitez, et la fond en fondu sur la dernière image dessinée. Il imprime le projet sur stdout, donc redirigez-le vers un nouveau fichier, et la grille en JSON sur stderr. Lisez les deux confiances : en dessous de 1,5, ou downbeat_by à first, la grille est une estimation. Donnez bpm (et downbeat) dans la spec lorsque vous les connaissez, et dites dans votre transmission que la grille a été estimée.
  • Pas de musique : un temps de 500 ms (120 BPM).

L’arithmétique :

  • Un temps vaut 60000 / BPM ms, une mesure vaut quatre temps, et une phrase vaut quatre mesures (parfois huit).
  • Comptez à partir du premier temps fort, jamais en ajoutant. Le nième temps est downbeat + n × beat, puis déplacé vers son image dessinée : floor(round(t * fps / 1000) * 1000 / fps). Ajouter un temps arrondi encore et encore dérive d’une image toutes les quelques mesures. measure --at confirme qu’un instant est dessiné.
  • À 90, 100 et 120 BPM, un temps est un nombre entier d’images à 30 et 60 ips (également 24 ips à 90 et 120, et 25 ips à 100). À d’autres tempos, les temps tombent à 14, 14, 15… images d’intervalle. C’est acceptable lorsque chaque temps est compté à partir du temps fort.

Où placer les choses :

  • Changements de section sur les temps forts, et le plus grand tournant de la pièce (le dévoilement, la marque) sur le premier temps fort d’une phrase.
  • Événements principaux sur les temps : un cut, un mot qui atterrit, un changement de couleur. Mouvement secondaire sur les demi-temps ou quarts de temps : un tassement, un décalage à l’intérieur d’un groupe, une étiquette après sa barre.
  • Quelle image est « sur le temps » : un cut, un flash ou un pop est sur le temps à sa première image. Un mouvement plus long qu’un demi-temps, dont l’arrivée est le point, se termine sur le temps à la place.
  • En avance, jamais en retard : les spectateurs remarquent une image qui suit son son d’environ 45 ms, soit une ou deux images. Un impact une image plus tôt est perçu comme sur le temps ; une image plus tard est perçu comme en retard.

Durées et courbes d’easing

MouvementLongueurImages à 30 ips
Un impact : une image flash, l’impact d’un slam, un échange brusque70–130 ms (moins de 2 images semble être un glitch)2–4
Un petit mouvement : un pop, un coup de pouce, une étiquette qui apparaît en fondu200–350 ms6–10
Un mouvement standard : une carte qui entre, un déplacement à travers une partie du cadre400–600 ms12–18
Un mouvement lourd : un dévoilement héroïque, une grande poussée700–1000 ms21–30
Une dérive : un zoom avant, un flottement lenttout le temps à l’écran
  • Les sorties s’exécutent à 60–70 % de la durée de l’entrée qu’elles annulent.
  • Décalez les éléments d’un groupe de 60–130 ms (2–4 images à 30 ips), et maintenez l’ensemble du décalage en dessous de 500 ms. Un groupe plus long donne plutôt à chaque élément son propre temps.
  • Courbes. Les choses qui arrivent décélèrent ; les choses qui partent accélèrent ; les choses qui se déplacent entre deux endroits à l’écran atténuent dans les deux sens. Choisissez une courbe par rôle pour toute la pièce et tenez-vous-y : la courbe fait partie de la voix de la pièce.
RôleCourbeVitesse de pointe, × la moyenne
Entrée avec un long tassement[0.16, 1, 0.3, 1]6.3
Entrée plus douce[0.25, 1, 0.5, 1]4.0
Pop avec environ 10 % de dépassement[0.34, 1.56, 0.64, 1]4.6
Sortieease-in1.7
Entre deux endroits, wipe, balayage[0.65, 0, 0.35, 1]2.9
Rotation[0.3, 0.3, 0.5, 1]1.6
Dérive, fondu sonore, rotation constantelinear1.0

La colonne de pointe alimente la vérification de vitesse ci-dessous : l’instant le plus rapide d’un mouvement est sa vitesse moyenne multipliée par ce nombre.

Limites de vitesse

Pour un mouvement rapide, appliquez motion_blur sur l’élément en mouvement ("shutter" : 180, "samples" 8–16) plutôt que de ralentir le mouvement. Ce n’est pas une valeur par défaut : mettez-la sur les éléments qui se déplacent vite, pas sur tout. Un élément sans cela est dessiné comme une image nette par image, donc un mouvement rapide apparaît comme des copies séparées, et les limites ci-dessous s’appliquent à lui. Vérifiez l’image la plus rapide de chaque mouvement : distance × peak ÷ (length in frames).

  • Déplacement : le pas d’un mouvement à son image la plus rapide reste inférieur à la moitié de la taille de la chose en mouvement le long du mouvement. Au-delà de sa taille totale, l’œil voit deux choses.
  • Rotation : moins de 45° par image à l’image la plus rapide. Quelque chose qui se répète en tournant (une forme à quatre rayons, un cadran à douze graduations) doit rester sous la moitié de son angle de répétition par image, sinon elle semble tourner en arrière : moins de 45° pour quatre rayons, moins de 15° pour douze graduations. Trois tours en 1 s sur [0.16, 1, 0.3, 1] culminent à environ 200° par image à 30 ips : cela stroboscope.
  • Lecture en mouvement : le texte, un visage ou une capture d’écran qui continue de bouger pendant qu’il est lu (un défilement, un panoramique sur une capture d’écran, une longue dérive) traverse au maximum 15 % de la largeur du cadre par seconde. C’est la règle du cinéma : une largeur de cadre complète en pas moins de 7 s.
  • Flashes : au maximum trois changements de luminosité en plein écran ou de grande taille en une seconde, y compris les cuts de glitch et les stroboscopes.

Maintiens

  • Temps de lecture : 330 ms par mot (environ trois mots par seconde), plus un temps pour remarquer l’arrivée de la ligne. Jamais moins de 1 s pour une ligne, et arrondi au temps suivant.
  • Trop long : une image sans rien qui bouge pendant plus d’environ 7 s semble caler. Donnez-lui une dérive, ou passez à autre chose.
  • La fin : la dernière image complète et immobile pendant au moins 1 s (une marque ou un appel à l’action : 1,5 s ou plus).

Zones de sécurité

Les bords de l’image sont recadrés, couverts ou ignorés. Gardez ce qui compte à l’intérieur de ces boîtes. Les fonds, les débordements et les arrière-plans vont jusqu’au bord et au-delà.

CadreTitre-sécurisé : chaque motAction-sécurisé : visages, produits, l’action
Large ou carré (16:9, 4:3, 1:1)5 % à l’intérieur de chaque bord3,5 % à l’intérieur de chaque bord
Haut (9:16, 4:5)5 % à l’intérieur des côtés, 12,5 % du haut et du bas3,5 % à l’intérieur de chaque bord

Sur du 1920×1080, la zone titre-sécurisée est x 96–1824, y 54–1026. Sur du 1080×1920, elle est x 54–1026, y 240–1680. Lorsque le brief indique que la vidéo est lue dans un flux dont le lecteur dessine ses propres boutons et légendes sur l’image, gardez également le texte en dehors du cinquième inférieur.

Typographie

Les tailles sont le size de la police en fraction du côté court.

NiveauTailleÀ 1080
Affichage : l’accroche, le seul grand mot7–12 %76–130 px
Titre5–7 %54–76 px
Corps, légendes5–6,7 %54–72 px
Étiquettes, petits caractères3,5–4,5 %38–49 px
Rien destiné à être lumoins de 3 %32 px
  • Échelons : deux niveaux dans une même image diffèrent d’au moins 1,25× ; en dessous, ils sont perçus comme une erreur plutôt qu’une hiérarchie.
  • Lignes : au maximum 42 caractères, et au maximum deux lignes pour tout ce qui est lu pendant que les choses bougent. Une accroche fait six mots ou moins.
  • Polices : une famille, dans deux graisses très différentes (gras pour l’affichage, regular pour le corps). Une deuxième famille uniquement lorsqu’elle contraste clairement : un serif ou un mono à côté d’un sans.
  • Contraste (rapport WCAG, à partir de la luminance relative des deux couleurs) : au moins 4,5:1 pour le corps, les légendes et les étiquettes, et au moins 3:1 pour la taille d’affichage. Sur une séquence ou une photo, le rapport change à chaque image, donc donnez au texte un fond qui lui est propre : une pilule, une barre ou une ombre.

Retenue

  • Une idée par plan, avec de l’espace autour. Une image qui doit être lue en plusieurs parties fait deux plans.
  • Trois couleurs : un fond, une encre et un accent. L’accent marque une chose à la fois ; une deuxième utilisation vole le poids de la première.
  • Un mouvement focal à la fois, plus au maximum une dérive ambiante lente en dessous.
  • Les effets servent le brief. Les lueurs, glitchs, séparations chromatiques, secousses, flares et explosions de particules ont leur place dans un trailer qui les demande ; dans une publicité ou un explicatif, ils sont perçus comme du bruit.
  • Pas de chrome artificiel. Les étiquettes de coin, les timecodes, les compteurs d’images, les marques « REC » et les cadres HUD ne sont ajoutés que lorsque le brief les demande.
  • Du matériel réel plutôt que des substituts. Utilisez les captures d’écran, les séquences et la marque du brief ; une UI de produit redessinée à la main semble faux à côté de la vraie.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills associés