Communitygithub.com

heygen-com/hyperframes

PORTE D'ENTRÉE — à charger AVANT toute composition d'animation ou vidéo HyperFrames. La loi de mouvement de haut niveau qui fait qu'une vidéo multi-scènes ressemble à UN seul plan continu au lieu d'une pile de diapositives animées indépendamment.

Qu'est-ce que hyperframes ?

Cette compétence définit la **Doctrine de Mouvement** pour le framework HyperFrames. Elle établit la loi fondamentale qui garantit qu'une vidéo multi-scènes ressemble à un seul et unique plan caméra continu, éliminant les cassures de rythme et les transitions saccadées. Elle couvre des concepts avancés comme la loi vectorielle (comment la sortie d'une scène détermine l'entrée de la suivante, avec la règle du signe sur l'axe Z), le courant directionnel du film, les éléments porteurs, la motion causale, la Porte de Jointure (vérification automatique des soudures), l'interdiction des oscillations oisives, et les itinéraires de mouvement soutenu. La compétence renvoie également aux compétences techniques de niveau inférieur qui implémentent ces règles (couper-la-courbe, curseur-surdimensionné, soudure-artisanale). Ces règles **SUPERSÈDENT** toute directive de mouvement générique ou en amont. Le but ultime est que chaque transition soit une performance narrative, pas une simple animation décorative.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/HEAD/.agents/skills/motion-doctrine

Demander à votre IA préférée

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

Documentation

Doctrine de Mouvement (Porte d'Entrée)

À lire avant de composer une animation. Elle décide CE qui se passe à chaque jointure et comment chaque scène performe ; les compétences techniques l'implémentent. Ces règles remplacent toute directive de mouvement générique ou en amont. L'échec à éviter : des scènes créées isolément — l'élan de l'œil meurt à chaque coupe, et les scènes oscillent sur place entre l'entrée et la sortie.

Carte des itinéraires

Décision (cette compétence)Compétence d'implémentation
Choix de transition de jointure + paramètres + codecut-the-curve §1–5 (le catalogue)
Cascades d'entrée de texte / élémentscut-the-curve §6 (entrée en cascade)
Repositionnement de groupe dans une scène (sans coupe)cut-the-curve §7 (courbe d'ajustement)
Action / lancement de scène / ignition de morphing mené par le curseuroversized-cursor
Mécanismes de rendu de jointure / protection anti-flash blancseam-craft
Travail de lancement de produit / d'explication / de sous-titressuperpose text-beat-economics, brand-faithful, captions-overlay par-dessus la compétence en amont

Ordre de création : registre vectoriel (ledger.json) → ESTAMPILLER les jointures maîtresses à partir de celui-ci (scripts/seam-stamp.mjs --ledger ledger.json --write index.html) → itinéraire de mouvement soutenu par phase → porteurs et causes → composer les constructions → VÉRIFIER (scripts/seam-gate.mjs). Ne faites à la main que les morphing/raccords de niveau A ; les jointures estampillées passent la porte par construction.


Partie 1 — La Loi de la Jointure

La Loi Vectorielle

La façon dont la scène A sort détermine la façon dont la scène B entre : même axe, même direction, vitesse adaptée, coupe en plein mouvement des deux côtés.

  1. Axe — x reste x, y reste y, Z reste Z. Ne jamais échanger d'axes à travers une coupe.
  2. Direction — ne jamais inverser. Sur Z, la direction = le SIGNE du changement d'échelle : grandir = pousser (caméra vers l'avant), rétrécir = tirer (caméra vers l'arrière). Une sortie qui recule répondue par une entrée qui grandit depuis une petite échelle est une inversion vectorielle — la violation la plus courante, car grandir depuis une petite échelle est l'entrée d'élément par défaut.
  3. Vitesse — vitesse initiale de l'entrée ≈ vitesse finale de la sortie, via des eases inversés (power4.in en sortie + power4.out en entrée, même distance et durée ; le côté entrant récupère ≥50% du chemin notionnel). Mécanismes dans cut-the-curve.
  4. Phase — la coupe atterrit en plein mouvement des DEUX côtés. S'arrêter avant la coupe, ou démarrer du repos après, est un temps mort.

Le Courant

Chaque film choisit UNE direction dominante (par défaut maison : GAUCHE). Toute jointure ordinaire l'utilise. Les autres vecteurs sont RÉSERVÉS — en utiliser un signifie quelque chose :

VecteurSignification
Le courant (GAUCHE)"prochain temps" — progression neutre vers l'avant
Vers le hautélévation — une conclusion ou une révélation s'élève au-dessus de ce qui a précédé
Z avant (zoom traversant)plonger plus profondément dans la même pensée
Z arrière (zoom inverse)ARRIVÉE — quelque chose de plus grand atterrit
Explosion d'échelle (éclatement)quitter un monde — une surface explose devant la caméra
  • Ne jamais enchaîner des jointures consécutives dans des directions opposées — le ping-pong est interprété comme une erreur.
  • Un changement de direction nécessite une cause visible (clic / rebond / impact) ou une limite de chapitre.

Le Registre Vectoriel

Écrivez-le avant de créer toute timeline maîtresse — sous la forme ledger.json à la racine du projet (schéma : references/seam-gate.md). Une ligne par jointure : temps de coupe, vecteurs de sortie et d'entrée (axe + direction signée ; les lignes Z portent le signe d'échelle), sélecteurs, technique. La sortie et l'entrée doivent correspondre ; si une ligne ne correspond pas, corrigez le plan, pas l'easing. Le vérificateur contrôle la cohérence des lignes statiquement avant tout échantillonnage en temps réel.

Porteurs

L'œil suit les objets, pas les abstractions. Les jointures les plus solides passent un porteur concret à travers la coupe avec une position ET une vitesse adaptées : un curseur à mi-chemin, un conteneur qui se réduit/s'accroche à la mise en page suivante, une marque qui vole jusqu'à son emplacement exact, le groupe de mots d'une coupe en cascade. Sans porteur naturel, les héros de la scène le portent (trajet partiel + fondu précoce, entrée en plein vol). Jamais de fondu enchaîné — il n'a aucun porteur.

Motion Causale

Enchaînez le mouvement pour que chaque déplacement soit visiblement lancé par le précédent : clic → écrasement → ressort de détente → vol → impact → recul → révélation.

  • Les effets commencent SUR l'image causale — même position dans la timeline, jamais "peu après".
  • Les réactions sont à l'échelle de la masse implicite : les gros éléments rebondissent plus lentement, les petits claquent.
  • Une force est une licence pour changer de direction ; un retournement sans cause est un ping-pong.

La Porte de Jointure (porte de construction — exécutez le vérificateur, sortie 0 ou la jointure n'est pas terminée)

node <SKILL_DIR>/scripts/seam-stamp.mjs --ledger ledger.json --write index.html  # générer
node <SKILL_DIR>/scripts/seam-gate.mjs  verify --ledger ledger.json --project .  # vérifier

Le script (utilisation + schéma du registre : references/seam-gate.md) applique numériquement, par jointure : cohérence de la ligne de registre, sortie encore en mouvement à la coupe, entrée en plein vol (jamais depuis le repos), direction mesurée = direction du registre, correspondance de vitesse entrée/sortie (AVERTISSEMENT), chevauchennent zéro (un côté visible par image — la coupe n'est pas un fondu), la règle du signe Z (d(échelle)/dt même signe des deux côtés ; les propres entrées de la scène entrante sont scannées pour détecter des conflits de signe), et la continuité du rectangle porteur avec l'échelle ancêtre incluse. Utilisez seam-gate.mjs probe --t <coupe> pour trouver les vrais sélecteurs de porteur de chaque jointure lors de la création du registre.

Règles que le script ne peut pas vérifier — toujours les vôtres :

  1. Les modifications rouvrent la jointure. Tout changement dans la première/dernière ~1s d'une scène (y compris le ré-étalonnage pour une nouvelle VO) invalide l'audit de cette frontière — relancez le vérificateur.
  2. L'audio est l'horloge. Ré-étalonnez les scènes sur les horodatages réels des mots de la VO ; ne précipitez jamais une lecture pour l'adapter à un créneau. Une régénération de la VO rouvre ses jointures.
  3. Piège du clip-gating (la cause habituelle d'un ÉCHEC de chevauchement zéro) : un clip dont le data-start précède son tween d'entrée est démasqué à son opacité initiale — définissez autoAlpha: 0 initial ET data-start = le temps de coupe, jamais plus tôt.

Partie 2 — Performance (la scène continue de performer)

Pas d'oscillation oisive

Les boucles sinusoïdales oisives (respirer, flotter, dériver, pulsation de lueur) sont INTERDITES en tant que mouvement soutenu — elles sont interprétées comme "la vidéo attend". Une scène qui finit d'entrer avec des secondes restantes est un bug de planification : ajoutez de l'histoire, pas des oscillations. Chaque phase entre l'entrée et la sortie est propriétaire de l'un de ces itinéraires (nommez l'itinéraire dans le plan) :

ItinéraireCe que c'est
Révélations échelonnéesRetenez du contenu ; révélez-le sur des temps de narration — le cadre continue d'apporter de l'information (par défaut pour ≥2 groupes de contenu)
Caméra avec intentionUn chemin de zoom+pan cartographié : établir large → voyager → arriver sur le sujet
Vie d'interface séquencéeLe produit se comporte dans le temps : la progression avance, les étapes se mettent en évidence, les compteurs défilent
Séquences animéesLes éléments jouent un temps : une carte se range dans une pile, un élément est glissé, un résultat s'assemble
Action menée par le curseurUn curseur surdimensionné guide l'œil vers un déclencheur ; son CLIC allume le temps suivant (oversized-cursor)

Test : mettez en pause à n'importe quelle seconde — quelque chose de significatif doit être en plein vol (une révélation qui arrive, la caméra qui voyage, l'interface qui fait ce que la narration dit).

Calme avant le sommet

Planifiez une pause de 0,3–0,75s entre l'action majeure et son résultat — la virgule dramatique. Une scène qui passe directement de l'action au résultat la perd.

Intention de timing

  • Entrée unique ≤ ~800ms ; accumulation plus longue = étalement multi-éléments, pas un seul élément lent.
  • Sortie ≈ 75% de l'entrée. Exception : cut-the-curve inverse ce rapport (entrée ~127% de la sortie).
  • Étalement total ≤ 500ms ; avec 8+ éléments, resserrez le délai par élément ou étalez les premiers.
  • Eases interdits : bounce.out / elastic.out. Dépassement d'entrée back.out(1.4–1.7) est acceptable.
  • Les éléments similaires partagent une intention d'ease+durée — jamais une paire unique par élément.

Vocabulaire de transition

N'utilisez que 2–3 transitions inter-scènes par film et répétez-les ; la frontière par défaut est cut-the-curve dans la direction du courant. Les morphings d'éléments partagés écrits à la main (intent: morph) ne comptent pas dans le budget.


Anti-Patterns

À ne pas faireÀ faire à la place
Créer l'entrée de chaque scène isolémentÉcrire d'abord le registre vectoriel
Fondu enchaîné entre les scènescut-the-curve dans la direction du courant
La sortie se termine, PUIS la scène changeCouper en plein mouvement des deux côtés
L'entrée commence depuis le repos après une coupeEntrer ≥50% à travers le chemin notionnel
Sortie en zoom inverse → entrée qui grandit depuis une petite échelle (ou poussée → rétraction surdimensionnée)Adapter le signe de la vitesse d'échelle (Porte de Jointure 7)
Intro pop-in de la scène entrante sous un relais ZTenir son image d'ouverture composée, ou adapter le signe
Oscillation oisive / respiration / flottement pour remplir le tempsAttribuer un itinéraire de mouvement soutenu ; ou ajouter de l'histoire
Inversion de direction sans causeDépenser une force, ou garder le courant
Vecteurs réservés utilisés comme variétéUtiliser le courant par défaut ; les dépenser pour le sens
Réaction quelques images après sa causeIgnition sur la même image
L'action passe directement au résultatPlanifier le calme avant le sommet (0,3–0,75s)

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

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

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