Communitygithub.com

heygen-com/hyperframes

Le catalogue des techniques : cinq SEAMS à vélocité appariée (zoom avant, zoom arrière inverse, coupe de courbe, coupe en cascade, flou de maquillage) plus deux techniques intra-scène — l'entrée en cascade (arrivées décalées pour les cartes-titres / ouvreurs de segments) et la courbe de poussée (glissements de groupe en trois phases lent-rapide-lent). Couvre l'appariement de vélocité à déplacement partiel (~12% du cadre) via des easings power4 miroirs, la règle du signe d'échelle Z, le flou adapté à la taille (10px texte / 18-20px plein cadre), les coupes mot par mot, le rythme des cascades selon le poids des éléments, et le ratio de glissement 10/65/25. À lire avant de créer toute transition, transmission de rythme textuel, entrée de texte cinétique, ou repositionnement de groupe.

Qu'est-ce que hyperframes ?

Ce référentiel décrit un système complet de transitions cinématiques conçues pour les séquences de texte dynamique et le motion design, connu sous le nom de technique Hyperframes. Il définit cinq techniques de couture (SEAM) — zoom-through, inverse zoom-through, coupe de courbe, coupe en cascade, et transition par flou de mise au point — plus deux techniques intra-scène pour les entrées et les glissements de groupe. Le principe central est de couper au pic de vélocité, en faisant correspondre la direction et la vitesse des deux côtés de la transition, créant un flux continu plutôt qu'un saut. Chaque technique spécifie des paramètres précis : les valeurs d'échelle, l'intensité du flou, la durée, les fonctions d'easing et les distances de déplacement, souvent avec un déplacement partiel d'environ 12% du cadre. Les implémentations sont destinées aux bibliothèques d'animation JavaScript comme GSAP, avec des modèles fournis dans un fichier séparé. Les cas d'utilisation vont de l'avancement d'un argument (zoom-through) aux changements de scène par défaut (coupe de courbe), en passant par les transitions mot par mot (coupe en cascade). Les anti-patrons sont clairement identifiés pour éviter les erreurs courantes comme les inversions de signe sur l'axe Z ou les vitesses de transition incohérentes. Plateformes prises en charge : Tout environnement utilisant des animations JavaScript pilotées par le code (GSAP, etc.), applicable aux agents d'IA qui rédigent des transitions de motion design pour des présentations, vidéos explicatives, ou contenu dynamique. Le système est conçu pour être implémenté par des workers utilisant des registres et des injecteurs.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/HEAD/.agents/skills/cut-the-curve

Demander à votre IA préférée

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

Documentation

Coupe de Courbe — le catalogue des techniques

Cinq techniques SEAM, un principe : couper au pic de vélocité, faire correspondre la direction et la vitesse des deux côtés de la coupe — plus les deux techniques intra-scène (§6 arrivées, §7 glissements). La LOI de couture — loi vectorielle, le courant, le grand livre, la Porte de Couture — réside dans motion-doctrine ; lisez-la d'abord. Cette compétence concerne les paramètres et la mécanique. Tous les modèles de code GSAP (worker + registre) : examples/gsap-implementation.md.

Catalogue

#TechniquePortéeAxeUtilisation pour
1Zoom-Through (avant)Échange de texte intra-scèneZ, vers le spectateurprogresser plus profondément dans la même pensée
2Zoom-Through InverseTemps d'arrivée / de récompenseZ, loin du spectateurquelque chose de plus grand atterrit
3Coupe de CourbeEntre les scènesX / Yla frontière par défaut, le courant du film
4Coupe en CascadeCouture texte-à-texteX, par mottransmission au niveau du mot entre les grands temps textuels
5Flou de Mise au Point - CoupeChangement d'état sur la même surfaceX / Y / Zla coupe que vous voulez VOIR — un ornement de tirage de mise au point DSLR
6Entrée en CascadeARRIVÉE intra-scène (pas de couture)Y, d'en bascartes-titres, ouvreurs de segments, introductions de listes
7Courbe de PousséeGlissement de groupe intra-scène (pas de couture)X / Yrepositionner un groupe composé pour faire de la place

La direction Z est un signe

"Même axe" ne suffit pas sur Z — le signe de d(échelle)/dt doit correspondre à travers la coupe :

Vecteur ZÉchelle de sortieÉchelle d'entréeVariante
Poussée (avant)croissante 1 → 1,2croissante 0,75 → 1zoom-through
Tirage (arrière)décroissante 1 → 0,8décroissante 1,25 → 1zoom-through inverse

Miroirs interdits : une sortie qui recule répondue par une entrée qui grandit depuis petit (le tirage se transforme en poussée — le plus courant, puisque grandir depuis petit est l'entrée d'élément par défaut), et une sortie par poussée répondue par une rétraction surdimensionnée. Cela lie les PROPRES entrées de la scène entrante pendant la fenêtre de couture (coupe + ~0,5s), pas seulement le tween wrapper : maintenez le cadre entrant composé, ou écrivez son entrée pour correspondre au signe. Vérifiez selon la règle 7 de la Porte de Couture.

Logique de flou (toutes les variantes Z)

SujetFlou de crêtePourquoi
Échelle de texte (titre, groupe de mots)10px20px brouille les formes de lettres — la coupe se lit comme un glitch, pas de la vitesse
Surface plein cadre (fenêtre, carte, capture d'écran)18–20pxun flou plus léger sur une grande surface se lit comme un hoquet de rendu

Même flou de crête des deux côtés à l'image d'échange. Floutez le WRAPPER, jamais les enfants.


1. Zoom-Through (avant)

Coupe appariée en vélocité sur l'axe Z ; jamais les deux textes visibles. Tout CROÎT : le texte sortant accélère vers la caméra, un échange dur se cache au pic de flou, le texte entrant continue de grandir dans le plan focal. Titres et phrases courtes seulement. Total ≈ 0,4s.

PhaseÉchelleFlouOpacitéEaseDurée
Sortie1 → 1,20 → 10px1 → 0,15power3.in (opacité : tween none séparé)0,2s
Coupe (tl.set)in: 0,7510pxout: 0 / in: 0,15——
Entrée0,75 → 110 → 0px0,15 → 1expo.out0,5s

L'opacité de sortie DOIT être son propre tween linéaire — power3.in maintient l'opacité près de 1 trop longtemps. À l'entrée, toutes les propriétés partagent expo.out.

2. Zoom-Through Inverse (arrière)

Le miroir de tirage : l'élément sortant RECULE ; l'élément entrant arrive SURDIMENSIONNÉ (comme s'il venait juste derrière la caméra) et se rétracte dans le plan focal. Tout RÉTRÉCIT. Consacrez-le aux temps d'ARRIVÉE/récompense — une ligne de récompense, une réponse géante, un état final soutenu — jamais aux frontières ordinaires. Total ≈ 0,7s (30% sortie / 70% entrée).

PhaseÉchelleFlouOpacitéEaseDurée
Sortie1 → 0,80 → 10px1 → 0,15power3.in (opacité : tween none séparé)~0,2s
Coupe (tl.set)in: 1,2510pxout: 0 / in: 0,15——
Entrée1,25 → 110 → 0px0,15 → 1expo.out~0,5s

Le flou est de 10px pour l'échelle de texte ; 18–20px seulement lorsque les deux côtés sont des surfaces plein écran.

Discipline du signe : la scène entrante arrive comme un cadre composé à l'intérieur du wrapper qui se rétracte — pas d'introduction qui grandit depuis petit dans la fenêtre de couture. Les entrées échelonnées se produisent après que la rétraction se stabilise, ou commencent à ≥1 et se rétractent.

3. Coupe de Courbe (frontière de scène par défaut)

Coupe appariée en vélocité X/Y — la valeur par défaut pour TOUTES les frontières scène-à-scène, dans le courant du film, pas un accent. Le héros sortant accélère dans une direction, la coupe atterrit en plein mouvement, le héros entrant continue dans la MÊME direction et décélère. Total ≈ 0,6s ; directions GAUCHE / DROITE / HAUT / BAS (GAUCHE par défaut).

Déplacement partiel : ~12% du cadre (≈230px à 1920) — jamais de mouvements hors écran complets.

DirectionSortieDébut → fin de l'entrée
Vers la gauchex: 0 → −230x: +230 → 0
Vers la droitex: 0 → +230x: −230 → 0
Vers le hauty: 0 → −230y: +230 → 0
Vers le basy: 0 → +230y: −230 → 0

Mécanique :

  • Easing miroirs : sortie power4.in + entrée power4.out, même distance et durée — les deux moitiés d'un power4.inOut, donc la vélocité correspond exactement à la coupe.
  • L'astuce de fondu : l'opacité de sortie se termine à ~25–30% de son déplacement (fondu ≈ 0,18–0,3s vs mouvement 0,3–0,34s) ; l'entrée s'allume à ~0,35 d'opacité à mi-chemin. Chronométrez le dernier élément qui s'estompe pour mourir juste à la coupe — un écart où rien ne bouge se lit comme un temps mort.
  • Sortie 0,2–0,4s ; entrée ≥ sortie. Flou optionnel 8–10px.
  • Sol de scène : #root doit être opaque (background: var(--canvas-deep, var(--canvas, #000))) — la coupe à mi-fenêtre ouvre une fenêtre d'opacité sommée < 1 qui flashe autrement en blanc (voir seam-craft).

push-slide existe mais viole le déplacement partiel et la phase de mi-mouvement ; préférez coupe-de-courbe.

4. Coupe en Cascade (coupe de courbe mot par mot)

Coupe de courbe à la granularité MOT — la coupe vers la gauche la plus forte pour les coutures texte-à-texte. Les mots sortants s'éloignent sur leurs propres courbes ; les mots entrants cascadent en plein vol — une vague que l'œil chevauche à travers la couture.

Portée : écrite par le worker à l'intérieur d'une composition multi-temps (couches .beat empilées plein cadre), PAS un type registre/injecteur — elle tweene des étendues de mots, pas des wrappers de clip. La frontière vers et hors du bloc de rythme textuel obtient toujours une transition de registre normale. Ne compte pas dans le budget de 2–3 transitions.

ParamètreValeurPourquoi
Déplacement±230px (~12% cadre)déplacement partiel + vélocité > poussée plein cadre
Sortie0,34s power4.inl'accélération EST la coupe
Fondu de sortie0,18s, commence avec xmot disparu à ~25–30% du déplacement — pas de traînée
Décalage de sortie+0,022s ordre de lecturela ligne se décolle, pas un glissement en bloc
Entrée0,3s power4.outdeuxième moitié du composite — correspondance de vélocité
Opacité de début d'entrée0,35allumage à mi-chemin ; le binaire 0→1 pop
Écarts d'entrée0,05s × 0,84 d'atténuationcascade accélérée, se résout en composé

Règles :

  • Une direction par chaîne, chevauchant le courant. Le zoom inverse est le temps d'ARRIVÉE de la chaîne uniquement.
  • Pré-définir tous les mots à x: +230, opacité: 0 au moment de la construction — immediateRender: false seul laisse les mots non démarrés visibles au repos.
  • Un premier temps court peut sortir en ligne entière : son fondu se termine ~0,02s avant la coupe pour qu'il file encore quand les mots suivants s'allument — pas d'écart mort.
  • Transformation/opacité uniquement (sûr pour la recherche) ; sol de scène opaque applicable.

5. Flou de Mise au Point - Coupe (la coupe visible)

La seule variante où la coupe est VUE : un pic de flou de défocalisation cache un échange dur d'une seule image — un tirage de mise au point DSLR portatif. Utilisez-le comme un ornement occasionnel pour un changement d'état de la MÊME surface dans un thème visuel ; jamais la frontière par défaut.

Différences par rapport aux autres : la sortie reste COMPLÈTEMENT OPAQUE jusqu'à la coupe (le flou cache l'échange — pas de fondu précoce) ; easing power2.in / power2.out (optique douce, pas d'élan).

Règles :

  • Déclenchez-le uniquement à un temps narratif, ≤ une fois par ~8s ; jamais au milieu d'une légende ou pendant une pause.
  • Coupez au PIC du flou (≥6px ; pic 8–12px, ≤16–18px max) — échanger en montant montre la coupe.
  • Une échelle subtile (~1,06 de respiration de lentille) le vend comme de l'optique.
  • Même direction des deux côtés — la loi vectorielle tient toujours. Entrée ≥ durée de sortie.
  • Floutez le wrapper ; ne floutez jamais + opacité dans un seul tween sur un seul élément (bogue de composition headless) ; ne floutez jamais directement une <video> (enveloppez-la).

6. Entrée en Cascade (arrivée intra-scène — pas une couture)

Cascade d'ARRIVÉE décalée : les mots/éléments arrivent en fouettant par le bas (une direction cohérente), chacun commençant avant que le précédent ne se stabilise — une vague accélérée qui se résout en une disposition composée. Cartes-titres, ouvreurs de segments, introductions de listes/features. Le frère de couture est le §4 ; ne mélangez pas leurs règles :

§6 Entrée (arrivée)§4 Coupe en Cascade (couture)
OpacitéBINAIRE 0→1 via tl.set à l'entrée — jamais de fondus'allume à 0,35 à mi-chemin — le fondu EST l'astuce de vélocité
Axe par défautY, d'en basX, chevauchant le courant
Côté sortantaucunles mots s'éloignent sur power4.in miroir

Chorégraphie :

  • Chevauchez, ne mettez pas en file d'attente — l'élément suivant commence dans les ±2 images de la stabilisation du précédent ; les écarts RÉTRÉCISSENT à travers la cascade ; le dernier élément s'enclenche.
  • La vélocité varie selon le poids — les éléments lourds/ancre voyagent plus loin et plus longtemps ; les mots légers/ponctuation s'enclenchent serrés :
ParamètreAncre/lourdMot normalLéger/ponctuation
Décalage Y60–80px40–50px30–48px
Durée0,16–0,20s0,13–0,16s0,10–0,13s
Chevauchementécart 0–2fchevauchement 1fchevauchement 1–2f
  • Ease power4.out (expo.out pour un surcroît d'enclenchement) ; jamais .inOut sur une entrée.
  • Une direction par cascade.
  • Divisez le MOT FINAL en fragments pour prolonger l'apogée ; les fragments voyagent plus loin.
  • Après la stabilisation, le groupe glisse généralement pour faire de la place pour le temps suivant — c'est le §7.

7. Courbe de Poussée (glissement de groupe intra-scène — pas une couture)

Repositionnement lent-rapide-lent d'un groupe composé (rangées de mots, piles de cartes, listes) pour révéler du contenu ou faire de la place. Aucun ease intégré unique ne le produit — power4.inOut s'arrête net. Enchaînez trois tweens sur une propriété :

PhaseEaseDistanceTempsSensation
1 montée en puissancepower3.in~10%~20%bouge à peine — le mouvement s'enregistre, pas de secousse
2 rafalenone (linéaire)~65%~18%~2× la moyenne px/image — déterminé
3 queuepower4.out~25%~62%glissement décroissant jusqu'au repos — tue le claquement

Règles :

  • La queue est ≥3× la montée en puissance en TEMPS. Si elle claque encore : prolongez le temps de la queue (pas la distance) ou utilisez power5.out.
  • La phase 2 reste linéaire — l'easing perd le contraste de rafale.
  • Révélez le nouveau contenu PENDANT la phase 2 — la rafale masque son apparition.
  • Mêmes ratios en vertical ; mettez les distances à l'échelle proportionnellement, gardez les ratios de temps.

Choisir une Variante

Zoom-ThroughZoom InverseCoupe de CourbeCoupe en Cascade
PortéeÉchange de texte intra-scèneTemps d'arrivée/récompenseEntre les scènesCouture texte-à-texte
Signe Z / axecroissant (poussée)décroissant (tirage)X / YX, par mot
Déplacement/échelle1→1,2, puis 0,75→11→0,8, puis 1,25→1±230px±230px
Flou de crête10px texte / 18–20 plein cadre10px texte / 18–20 plein cadre8–10px optionnelaucun
Easingpower3.in / expo.outpower3.in / expo.outpower4.in / power4.outpower4.in / power4.out
Sensationprogression à traversarrivée àporté latéralementune vague à travers la couture

Anti-Patrons

| Ne faites pas

…

[suite tronquée pour la traduction] }

```json
{
  "name": "heygen-com/hyperframes",
  "description": "Le catalogue des techniques : cinq SEAMS à vélocité appariée (zoom avant, zoom arrière inverse, coupe de courbe, coupe en cascade, transition par flou de mise au point) plus deux techniques intra-scène — l'entrée en cascade et la courbe de poussée. Couvre l'appariement de vélocité à déplacement partiel, la règle du signe d'échelle Z, le flou adapté à la taille, les coupes mot par mot et le rythme des cascades. À lire avant de créer toute transition ou repositionnement de groupe.",
  "aiSummary": "Ce référentiel décrit un système complet de transitions cinématiques conçues pour le motion design textuel, appelé Hyperframes. Il définit cinq techniques de couture (SEAM) — zoom-through, inverse zoom-through, cut-the-curve, waterfall cut et rack-focus blur-cut — ainsi que deux techniques intra-scène pour les entrées et les glissements de groupe. Le principe central est de couper au pic de vélocité en faisant correspondre la direction et la vitesse des deux côtés, créant un flux continu. Chaque technique spécifie des paramètres précis : échelle, flou, durée, fonctions d'easing et distances de déplacement partiel (~12% du cadre). Les implémentations sont destinées à des bibliothèques d'animation comme GSAP, avec des modèles fournis dans un fichier séparé. Les cas d'utilisation vont de l'avancement d'un argument (zoom-through) aux changements de scène par défaut (cut-the-curve), en passant par les transitions mot par mot (waterfall cut). Les anti-patrons sont clairement identifiés pour éviter les erreurs comme les inversions de signe sur l'axe Z ou les vitesses incohérentes.",
  "skillMarkdown": "# Coupe de Courbe — le catalogue des techniques\n\nCinq techniques SEAM, un principe : **couper au pic de vélocité, faire correspondre la direction et la vitesse des deux côtés de la coupe** — plus les deux techniques intra-scène (§6 arrivées, §7 glissements).\nLa LOI de couture — loi vectorielle, le courant, le grand livre, la Porte de Couture — réside dans `motion-doctrine` ; lisez-la d'abord. Cette compétence concerne les paramètres et la mécanique.\nTous les modèles de code GSAP (worker + registre) : `examples/gsap-implementation.md`.\n\n## Catalogue\n\n| # | Technique | Portée | Axe | Utilisation pour |\n| --- | -------------------------- | ------------------------------ | ------------------- | ------------------------------------------------------ |\n| 1 | **Zoom-Through** (avant) | Échange de texte intra-scène | Z, vers le spectateur | progresser plus profondément dans la même pensée |\n| 2 | **Zoom-Through Inverse** | Temps d'arrivée / de récompense | Z, loin du spectateur | quelque chose de plus grand atterrit |\n| 3 | **Coupe de Courbe** | Entre les scènes | X / Y | la frontière par défaut, le courant du film |\n| 4 | **Coupe en Cascade** | Couture texte-à-texte | X, par mot | transmission au niveau du mot entre les grands temps textuels |\n| 5 | **Flou de Mise au Point - Coupe** | Changement d'état sur la même surface | X / Y / Z | la coupe que vous voulez VOIR — un ornement de tirage de mise au point DSLR |\n| 6 | **Entrée en Cascade** | ARRIVÉE intra-scène (pas de couture) | Y, d'en bas | cartes-titres, ouvreurs de segments, introductions de listes |\n| 7 | **Courbe de Poussée** | Glissement de groupe intra-scène (pas de couture) | X / Y | repositionner un groupe composé pour faire de la place |\n\n## La direction Z est un signe\n\n\"Même axe\" ne suffit pas sur Z — le signe de d(échelle)/dt doit correspondre à travers la coupe :\n\n| Vecteur Z | Échelle de sortie | Échelle d'entrée | Variante |\n| -------------- | ------------------- | -------------------- | -------------------- |\n| Poussée (avant) | croissante `1 → 1,2` | croissante `0,75 → 1` | zoom-through |\n| Tirage (arrière) | décroissante `1 → 0,8` | décroissante `1,25 → 1` | zoom-through inverse |\n\nMiroirs interdits : une sortie qui recule répondue par une entrée qui grandit depuis petit (le tirage se transforme en poussée — le plus courant, puisque grandir depuis petit est l'entrée d'élément par défaut), et une sortie par poussée répondue par une rétraction surdimensionnée. Cela lie les PROPRES entrées de la scène entrante pendant la fenêtre de couture (coupe + ~0,5s), pas seulement le tween wrapper : maintenez le cadre entrant composé, ou écrivez son entrée pour correspondre au signe. Vérifiez selon la règle 7 de la Porte de Couture.\n\n## Logique de flou (toutes les variantes Z)\n\n| Sujet | Flou de crête | Pourquoi |\n| --------------------------------------------- | ----------- | -------------------------------------------------------------- |\n| Échelle de texte (titre, groupe de mots) | **10px** | 20px brouille les formes de lettres — la coupe se lit comme un glitch, pas de la vitesse |\n| Surface plein cadre (fenêtre, carte, capture d'écran) | **18–20px** | un flou plus léger sur une grande surface se lit comme un hoquet de rendu |\n\nMême flou de crête des deux côtés à l'image d'échange. Floutez le WRAPPER, jamais les enfants.\n\n---\n\n## 1. Zoom-Through (avant)\n\nCoupe appariée en vélocité sur l'axe Z ; **jamais les deux textes visibles.** Tout CROÎT : le texte sortant accélère vers la caméra, un échange dur se cache au pic de flou, le texte entrant continue de grandir dans le plan focal. Titres et phrases courtes seulement. Total ≈ 0,4s.\n\n| Phase | Échelle | Flou | Opacité | Ease | Durée |\n| -------------- | -------- | -------- | ----------------- | ------------------------------------------ | -------- |\n| Sortie | 1 → 1,2 | 0 → 10px | 1 → 0,15 | power3.in (opacité : tween `none` séparé) | 0,2s |\n| Coupe (`tl.set`) | in: 0,75 | 10px | out: 0 / in: 0,15 | — | — |\n| Entrée | 0,75 → 1 | 10 → 0px | 0,15 → 1 | expo.out | 0,5s |\n\nL'opacité de sortie DOIT être son propre tween linéaire — `power3.in` maintient l'opacité près de 1 trop longtemps.\nÀ l'entrée, toutes les propriétés partagent `expo.out`.\n\n## 2. Zoom-Through Inverse (arrière)\n\nLe miroir de tirage : l'élément sortant RECULE ; l'élément entrant arrive SURDIMENSIONNÉ (comme s'il venait juste derrière la caméra) et se rétracte dans le plan focal. Tout RÉTRÉCIT. Consacrez-le aux temps d'ARRIVÉE/récompense — une ligne de récompense, une réponse géante, un état final soutenu — jamais aux frontières ordinaires. Total ≈ 0,7s (30% sortie / 70% entrée).\n\n| Phase | Échelle | Flou | Opacité | Ease | Durée |\n| -------------- | -------- | -------- | ----------------- | ------------------------------------------ | -------- |\n| Sortie | 1 → 0,8 | 0 → 10px | 1 → 0,15 | power3.in (opacité : tween `none` séparé) | ~0,2s |\n| Coupe (`tl.set`) | in: 1,25 | 10px | out: 0 / in: 0,15 | — | — |\n| Entrée | 1,25 → 1 | 10 → 0px | 0,15 → 1 | expo.out | ~0,5s |\n\nLe flou est de 10px pour l'échelle de texte ; 18–20px seulement lorsque les deux côtés sont des surfaces plein écran.\n\n**Discipline du signe :** la scène entrante arrive comme un cadre composé à l'intérieur du wrapper qui se rétracte — pas d'introduction qui grandit depuis petit dans la fenêtre de couture. Les entrées échelonnées se produisent après que la rétraction se stabilise, ou commencent à ≥1 et se rétractent.\n\n## 3. Coupe de Courbe (frontière de scène par défaut)\n\nCoupe appariée en vélocité X/Y — la valeur par défaut pour TOUTES les frontières scène-à-scène, dans le courant du film, pas un accent. Le héros sortant accélère dans une direction, la coupe atterrit en plein mouvement, le héros entrant continue dans la MÊME direction et décélère. Total ≈ 0,6s ; directions GAUCHE / DROITE / HAUT / BAS (GAUCHE par défaut).\n\n**Déplacement partiel :** ~12% du cadre (≈230px à 1920) — jamais de mouvements hors écran complets.\n\n| Direction | Sortie | Début → fin de l'entrée |\n| --------- | ----------------- | ----------------- |\n| Vers la gauche | `x: 0 → −230` | `x: +230 → 0` |\n| Vers la droite | `x: 0 → +230` | `x: −230 → 0` |\n| Vers le haut | `y: 0 → −230` | `y: +230 → 0` |\n| Vers le bas | `y: 0 → +230` | `y: −230 → 0` |\n\nMécanique :\n\n- **Easing miroirs :** sortie `power4.in` + entrée `power4.out`, même distance et durée — les deux moitiés d'un `power4.inOut`, donc la vélocité correspond exactement à la coupe.\n- **L'astuce de fondu :** l'opacité de sortie se termine à ~25–30% de son déplacement (fondu ≈ 0,18–0,3s vs mouvement 0,3–0,34s) ; l'entrée s'allume à ~0,35 d'opacité à mi-chemin. Chronométrez le dernier élément qui s'estompe pour mourir juste à la coupe — un écart où rien ne bouge se lit comme un temps mort.\n- Sortie 0,2–0,4s ; entrée ≥ sortie. Flou optionnel 8–10px.\n- **Sol de scène :** `#root` doit être opaque (`background: var(--canvas-deep, var(--canvas, #000))`) — la coupe à mi-fenêtre ouvre une fenêtre d'opacité sommée < 1 qui flashe autrement en blanc (voir `seam-craft`).\n\n`push-slide` existe mais viole le déplacement partiel et la phase de mi-mouvement ; préférez coupe-de-courbe.\n\n## 4. Coupe en Cascade (coupe de courbe mot par mot)\n\nCoupe de courbe à la granularité MOT — la coupe vers la gauche la plus forte pour les coutures texte-à-texte. Les mots sortants s'éloignent sur leurs propres courbes ; les mots entrants cascadent en plein vol — une vague que l'œil chevauche à travers la couture.\n\n**Portée :** écrite par le worker à l'intérieur d'une composition multi-temps (couches `.beat` empilées plein cadre), PAS un type registre/injecteur — elle tweene des étendues de mots, pas des wrappers de clip. La frontière vers et hors du bloc de rythme textuel obtient toujours une transition de registre normale. Ne compte pas dans le budget de 2–3 transitions.\n\n| Paramètre | Valeur | Pourquoi |\n| ----------------- | --------------------- | ------------------------------------------- |\n| Déplacement | ±230px (~12% cadre) | déplacement partiel + vélocité > poussée plein cadre |\n| Sortie | 0,34s `power4.in` | l'accélération EST la coupe |\n| Fondu de sortie | 0,18s, commence avec x | mot disparu à ~25–30% du déplacement — pas de traînée |\n| Décalage de sortie | +0,022s ordre de lecture | la ligne se décolle, pas un glissement en bloc |\n| Entrée | 0,3s `power4.out` | deuxième moitié du composite — correspondance de vélocité |\n| Opacité de début d'entrée | 0,35 | allumage à mi-chemin ; le binaire 0→1 pop |\n| Écarts d'entrée | 0,05s × 0,84 d'atténuation | cascade accélérée, se résout en composé |\n\nRègles :\n\n- Une direction par chaîne, chevauchant le courant. Le zoom inverse est le temps d'ARRIVÉE de la chaîne uniquement.\n- Pré-définir tous les mots à `x: +230, opacité: 0` au moment de la construction — `immediateRender: false` seul laisse les mots non démarrés visibles au repos.\n- Un premier temps court peut sortir en ligne entière : son fondu se termine ~0,02s avant la coupe pour qu'il file encore quand les mots suivants s'allument — pas d'écart mort.\n- Transformation/opacité uniquement (sûr pour la recherche) ; sol de scène opaque applicable.\n\n## 5. Flou de Mise au Point - Coupe (la coupe visible)\n\nLa seule variante où la coupe est VUE : un pic de flou de défocalisation cache un échange dur d'une seule image — un tirage de mise au point DSLR portatif. Utilisez-le comme un ornement occasionnel pour un changement d'état de la MÊME surface dans un thème visuel ; jamais la frontière par défaut.\n\nDifférences par rapport aux autres : la sortie reste COMPLÈTEMENT OPAQUE jusqu'à la coupe (le flou cache l'échange — pas de fondu précoce) ; easing `power2.in` / `power2.out` (optique douce, pas d'élan).\n\nRègles :\n\n- Déclenchez-le uniquement à un temps narratif, ≤ une fois par ~8s ; jamais au milieu d'une légende ou pendant une pause.\n- Coupez au PIC du flou (≥6px ; pic 8–12px, ≤16–18px max) — échanger en montant montre la coupe.\n- Une échelle subtile (~1,06 de respiration de lentille) le vend comme de l'optique.\n- Même direction des deux côtés — la loi vectorielle tient toujours. Entrée ≥ durée de sortie.\n- Floutez le wrapper ; ne floutez jamais + opacité dans un seul tween sur un seul élément (bogue de composition headless) ; ne floutez jamais directement une `<video>` (enveloppez-la).\n\n---\n\n## 6. Entrée en Cascade (arrivée intra-scène — pas une couture)\n\nCascade d'ARRIVÉE décalée : les mots/éléments arrivent en fouettant par le bas (une direction cohérente), chacun commençant avant que le précédent ne se stabilise — une vague accélérée qui se résout en une disposition composée. Cartes-titres, ouvreurs de segments, introductions de listes/features. Le frère de couture est le §4 ; ne mélangez pas leurs règles :\n\n| | §6 Entrée (arrivée) | §4 Coupe en Cascade (couture) |\n| ------------- | --------------------------------------------- | --------------------------------------------------------- |\n| Opacité | BINAIRE 0→1 via `tl.set` à l'entrée — jamais de fondu | s'allume à 0,35 à mi-chemin — le fondu EST l'astuce de vélocité |\n| Axe par défaut | Y, d'en bas | X, chevauchant le courant |\n| Côté sortant | aucun | les mots s'éloignent sur power4.in miroir |\n\nChorégraphie :\n\n- **Chevauchez, ne mettez pas en file d'attente** — l'élément suivant commence dans les ±2 images de la stabilisation du précédent ; les écarts RÉTRÉCISSENT à travers la cascade ; le dernier élément s'enclenche.\n- **La vélocité varie selon le poids** — les éléments lourds/ancre voyagent plus loin et plus longtemps ; les mots légers/ponctuation s'enclenchent serrés :\n\n| Paramètre | Ancre/lourd | Mot normal | Léger/ponctuation |\n| --------- | ------------ | ----------- | ----------------- |\n| Décalage Y | 60–80px | 40–50px | 30–48px |\n| Durée | 0,16–0,20s | 0,13–0,16s | 0,10–0,13s |\n| Chevauchement | écart 0–2f | chevauchement 1f | chevauchement 1–2f |\n\n- Ease `power4.out` (expo.out pour un surcroît d'enclenchement) ; jamais `.inOut` sur une entrée.\n- Une direction par cascade.\n- Divisez le MOT FINAL en fragments pour prolonger l'apogée ; les fragments voyagent plus loin.\n- Après la stabilisation, le groupe glisse généralement pour faire de la place pour le temps suivant — c'est le §7.\n\n## 7. Courbe de Poussée (glissement de groupe intra-scène — pas une couture)\n\nRepositionnement lent-rapide-lent d'un groupe composé (rangées de mots, piles de cartes, listes) pour révéler du contenu ou faire de la place. Aucun ease intégré unique ne le produit — `power4.inOut` s'arrête net. Enchaînez trois tweens sur une propriété :\n\n| Phase | Ease | Distance | Temps | Sensation |\n| --------- | --------------- | -------- | ---- | ---------------------------------------- |\n| 1 montée en puissance | `power3.in` | ~10% | ~20% | bouge à peine — le mouvement s'enregistre, pas de secousse |\n| 2 rafale | `none` (linéaire) | ~65% | ~18% | ~2× la moyenne px/image — déterminé |\n| 3 queue | `power4.out` | ~25% | ~62% | glissement décroissant jusqu'au repos — tue le claquement |\n\nRègles :\n\n- La queue est ≥3× la montée en puissance en TEMPS. Si elle claque encore : prolongez le temps de la queue (pas la distance) ou utilisez `power5.out`.\n- La phase 2 reste linéaire — l'easing perd le contraste de rafale.\n- Révélez le nouveau contenu PENDANT la phase 2 — la rafale masque son apparition.\n- Mêmes ratios en vertical ; mettez les distances à l'échelle proportionnellement, gardez les ratios de temps.\n\n---\n\n## Choisir une Variante\n\n| | Zoom-Through | Zoom Inverse | Coupe de Courbe | Coupe en Cascade |\n| ------------- | ---------------------------- | ---------------------------- | ---------------------- | ---------------------- |\n| Portée | Échange de texte intra-scène | Temps d'arrivée/récompense | Entre les scènes | Couture texte-à-texte |\n| Signe Z / axe | croissant (poussée) | décroissant (tirage) | X / Y | X, par mot |\n| Déplacement/échelle | 1→1,2, puis 0,75→1 | 1→0,8, puis 1,25→1 | ±230px | ±230px |\n| Flou de crête | 10px texte / 18–20 plein cadre | 10px texte / 18–20 plein cadre | 8–10px optionnel | aucun |\n| Easing | power3.in / expo.out | power3.in / expo.out | power4.in / power4.out | power4.in / power4.out |\n| Sensation | progression à travers | arrivée à | porté latéralement | une vague à travers la couture |\n\n## Anti-Patrons\n\n| Ne faites pas\n\n…\n\n[suite tronquée pour la traduction]"
}

Individual skills in this repo

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

general-video

>

heygen-com/animejs

Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.

heygen-com/claude-design-hyperframes

Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.

heygen-com/contribute-catalog

Author a new HyperFrames registry block (caption style, VFX block, transition, lower third) or component (text effect, overlay, snippet) and ship it as an upstream PR to the hyperframes repo. Use ONLY when the user wants to CONTRIBUTE to the public catalog — for in-project caption/transition authoring use the `hyperframes` skill, for installing existing registry items use the `hyperframes-registry` skill.

heygen-com/css-animations

CSS animation adapter patterns for HyperFrames. Use when authoring CSS keyframes, animation-delay based timing, animation-fill-mode, animation-play-state, or CSS-only motion that HyperFrames must seek deterministically during preview and rendering.

heygen-com/gsap

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

heygen-com/hyperframes

A tiled headline surface flips cell by cell under a sweeping depth field to reveal the rear headline. HyperFrames block, 1920×1080, 8s, 18 variables.

heygen-com/hyperframes

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.

heygen-com/hyperframes

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

heygen-com/hyperframes

A single feature card orbits a dot sphere on approved Blender camera motion. HyperFrames block, 1920×1080, 10s, 4 variables.

heygen-com/hyperframes

A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.

heygen-com/hyperframes

Glass shards fly in through fog and tile themselves into the headline. HyperFrames block, 1920×1080, 12.16s, 19 variables.

heygen-com/hyperframes

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

heygen-com/hyperframes

An orbiting camera follows an ice logo as it breaks apart, reforms into two text moments, and fades. HyperFrames block, 1920×1080, 22.5s, 216 variables.

heygen-com/hyperframes

name: embedded-captions

heygen-com/hyperframes

A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.

heygen-com/hyperframes

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

heygen-com/hyperframes

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

heygen-com/hyperframes

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

heygen-com/hyperframes

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

Skills associés