Communitygithub.com

heygen-com/hyperframes

Contrat de poses pour un mouvement visuel précis : états visibles, identité continue du sujet, exécution sûr en seek, pixels vérifiés.

Qu'est-ce que hyperframes ?

HyperFrames Keyframes est un skill spécialisé dans l'animation visuelle au sein du workflow HyperFrames. Il fournit un contrat de poses qui garantit des états visibles, une identité continue du sujet, une exécution fiable en seek et des pixels vérifiés. Contrairement à `hyperframes-animation` qui gère les recettes de scène larges, ce skill se concentre sur la mécanique fine du mouvement : zoom, reframe, panoramique, transitions par masque, incrustation, split-screen, etc. Il ne gère pas le montage temporel (coupures, trim, splice) qui appartient à `/hyperframes-core`, ni les transitions audio qui relèvent de `/hyperframes-audio`. Le skill définit des procédures strictes pour créer des keyframes seek-safe avec GSAP, CSS, Anime.js ou WAAPI, et inclut des commandes de vérification (`hyperframes lint`, `hyperframes check`, `hyperframes keyframes`, `snapshot`) pour valider la correction des animations. Il est conçu pour les utilisateurs de Claude Code, Cursor, Codex ou autres assistants AI qui travaillent avec HyperFrames sur des tâches de motion design technique, en garantissant que chaque mouvement est reproductible, vérifiable et conforme aux intentions du créateur.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/main/skills/hyperframes-keyframes

Demander à votre IA préférée

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

Documentation

Installation des plugins : Avant les commandes de configuration ou de mise à jour, suivez les règles d'exécution des plugins lorsque ce skill se trouve dans un plugin HyperFrames. Les installations autonomes conservent les instructions de mise à jour ci-dessous.

Keyframes HyperFrames

Les keyframes sont un contrat de poses : états visibles, identité continue du sujet, exécution fiable en seek, pixels vérifiés.

Utilisez hyperframes-animation pour les recettes de scène larges. Utilisez hyperframes-cli pour la documentation complète des commandes. Utilisez references/keyframe-patterns.md uniquement lors du choix des mécanismes d'implémentation, pas du style visuel.

Limite d'édition du créateur

Les keyframes gèrent le mouvement visuel, pas l'assemblage des clips. Les coupures franches sur la source, le rognage, l'épissage et le réordonnancement appartiennent à /hyperframes-core : créez un élément média par plage conservée, placez-le avec data-start et data-duration, et sélectionnez son décalage source avec data-media-start. Des plages adjacentes créent une coupure franche. Un fondu enchaîné utilise des clips superposés sur différentes pistes plus des keyframes d'opacité visuelle ; les fondus sonores utilisent /hyperframes-audio.

Demande du créateurMécanisme véridique
Punch-in / punch-outKeyframe scale avec x/y ou translation en pourcentage sur un wrapper visuel/recadrage non temporel à l'intérieur du clip. Utilisez un tween court pour un punch sec et un tween pour un mouvement fluide.
Zoom ou reframe fluide multi-étatGardez un wrapper de sujet vivant et créez plusieurs états de zoom/reframe comme une échelle de poses avec un easing par segment.
Panoramique, reframe ou effet Ken BurnsAnimer la translation du wrapper plus le scale. La géométrie est créée manuellement ; ce n'est pas un suivi de visage ni un recadrage sémantique automatique.
Mouvements de caméra enchaînésEnchaînez des transformations étiquetées sur une timeline unique enregistrée et compatible seek.
Cut match ou whip pan/hyperframes-animation gère la transition visuelle ; /hyperframes-registry fournit les primitives ; les keyframes préservent la géométrie, la direction et la vélocité créées. Il n'y a pas de découverte automatique de cadre correspondant.
Recadrage et reframe par masqueInterpolez clip-path ou un masque sur un wrapper visuel interne pour recadrer/reframer sans changer le temps source. Les keyframes polygonales peuvent former une transition polygone/masque.
Cut par volet directionnel ou iris/révélationAnimez une limite de masque/clip à travers des clips visuels superposés ; /hyperframes-animation gère la chorégraphie de transition.
Transition split-screenGardez les deux clips visuels placés par core, puis keyframez leurs wrappers de recadrage/masque internes et la géométrie de séparation.
Retiming constant de source/hyperframes-core gère data-playback-rate normalisé (0.1..10) pour une image sécurisée au rendu et un son préservant la hauteur. Il est constant pour tout l'élément média.
Rampes de vitesse sourceUne piste rate dans data-automation sur <video>/<audio> (t en secondes de clip, v 0.1..10, interpolation log) ; elle prime sur le taux constant.
Freeze / arrêt sur imageUne pose visuelle, une image source finale ou une sous-composition terminée peut rester figée. Un freeze arbitraire au milieu de la source n'est pas pris en charge ; prétraitez un segment figé/dérivé, placez-le comme son propre clip, puis reprenez avec une autre plage source.

Lorsque vous éditez l'image et le son ensemble, chargez /hyperframes-core, ce skill pour le mouvement visuel, et /hyperframes-audio pour les fondus, fondus enchaînés, automations de volume, ducking/carve, ou effets sur les pistes placées.

Un traitement de transition visuelle ou de recadrage n'est pas un rognage ou un épissage temporel de la source. /hyperframes-core gère la timeline, le timing des clips et les plages source ; les keyframes ne font qu'animer la transition visible ou le recadrage sur les wrappers à l'intérieur de ces clips. Pour des recettes combinées image/son copiables, utilisez /hyperframes-core → references/creator-editing-recipes.md.

Procédure

  1. Identifiez le sujet animé, les états visibles, l'état final et la durée d'exécution.
  2. Choisissez le plus petit mécanisme qui prouve la demande. Lisez references/keyframe-patterns.md uniquement si le mécanisme n'est pas clair.
  3. Créez des keyframes compatibles seek dans la durée déclarée. Construisez de manière synchrone et enregistrez l'instance d'exécution.
  4. Vérifiez avec hyperframes lint, hyperframes check, hyperframes keyframes, un --shot ciblé, et des instantanés aux temps de preuve.
  5. Si la preuve échoue, corrigez les keyframes source et relancez le plus petit diagnostic en échec avant de rendre.

Contrat

  • Nommez le sujet en mouvement.
  • Nommez les poses nécessaires pour prouver le mouvement prévu, y compris l'état final.
  • Keyframez les canaux visibles, pas les états cachés d'assistance.
  • Préservez l'identité de l'objet lorsque la continuité est importante.
  • Faites un fondu enchaîné uniquement lorsque le mouvement prévu est un remplacement ou une dissolution.
  • Maintenez les états lisibles ou sémantiques assez longtemps pour être vus.
  • La dernière image fait partie de l'animation, pas du nettoyage.
  • Ne revenez pas à l'état de repos sauf si demandé.
  • Ne terminez pas sur du noir sauf si demandé.
  • Si vous éditez une scène de départ, préservez la mise en page, les copies, les ressources, les couleurs et l'état final sauf si une refonte est demandée.

Règles d'exécution

GSAP :

  • construisez de manière synchrone au chargement de la page
  • utilisez gsap.timeline({ paused: true })
  • enregistrez comme window.__timelines[compositionId]
  • la clé de registre doit correspondre à data-composition-id
  • n'appelez pas tl.play() pour le mouvement critique pour le rendu
  • gardez les répétitions finies

Keyframes CSS :

  • durée limitée et nombre d'itérations
  • délai déterministe
  • animation-fill-mode: both
  • utilisez data-start lorsque le timing appartient à un clip

Anime.js :

  • créez de manière synchrone
  • autoplay: false
  • durée et boucles limitées
  • poussez chaque instance vers window.__hfAnime

WAAPI :

  • duration limitée
  • fill: "both"
  • construction déterministe
  • la surface texte ne liste pas WAAPI ; vérifiez avec --shot (il cherche WAAPI) et les instantanés

N'utilisez jamais pour le mouvement critique pour le rendu :

  • Date.now()
  • performance.now()
  • Math.random() non ensemencé
  • déclencheurs hover/scroll
  • timers
  • timelines créées de manière asynchrone
  • requestAnimationFrame non enregistré
  • boucles infinies

Squelette GSAP

const root = document.querySelector("[data-composition-id]");
const compositionId = root.dataset.compositionId;
const tl = gsap.timeline({ paused: true });

tl.addLabel("state-a", 0);
tl.to(".subject", {
  keyframes: [
    { x: 0, opacity: 1, duration: 0.2 },
    { x: 120, opacity: 1, duration: 0.4, ease: "power2.out" },
    { x: 100, opacity: 1, duration: 0.2, ease: "power2.inOut" },
  ],
  ease: "none",
});

window.__timelines = window.__timelines || {};
window.__timelines[compositionId] = tl;

Utilisez des étiquettes pour les états sémantiques. Utilisez des paramètres de position au lieu de délais chaînés. Utilisez immediateRender: false pour les tweens from()/fromTo() ultérieurs touchant la même propriété.

Formes de keyframes

  • Keyframes en tableau : échelle de poses avec durée/easing par étape.
  • Keyframes en pourcentage : timing exact à l'intérieur d'un seul tween.
  • Tableaux de propriétés : changements compacts multi-arrêts.
  • ease: "none" sur le parent lorsque chaque étape porte son propre easing.
  • easeEach lorsque chaque segment doit partager la même sensation.

Ne copiez pas les distances numériques ou les timings des exemples. Dérivez-les de la géométrie et de la durée réelles de la composition.

Pour un sujet se déplaçant entre deux boîtes, préférez un seul tween de transform continu ou FLIP. Divisez les x/y/scale en plusieurs keyframes avec easing uniquement lorsque le spectateur doit ressentir des étapes distinctes ; chaque segment change de vélocité et peut être perçu comme un à-coup.

Canaux

Privilégiez les canaux du compositeur/visuels : x/y/z, xPercent/yPercent, scale, rotationX/Y/Z, skew, transformOrigin, svgOrigin, opacity, autoAlpha, clip-path, masques, variables CSS, valeurs SVG path/dash, transformations de caméra, uniforms shader.

Évitez les canaux de mise en page/cycle de vie : top/left/right/bottom, width/height, margin/padding, display, visibility, création tardive du DOM, overlays d'assistance effectuant le mouvement du sujet.

Pour les changements de visibilité, utilisez autoAlpha sur la timeline GSAP enregistrée et compatible seek, ou un tl.set() de durée nulle à une limite explicite. Ciblez uniquement un élément non-clip ou un wrapper à l'intérieur du clip ; ne ciblez jamais .clip lui-même. Ne faites jamais de tween temporel sur la visibility brute, et ne faites jamais de tween sur display.

Choix du mécanisme

Choisissez le plus petit mécanisme qui prouve la demande :

BesoinMécanisme
Le même sujet change de boîte ou de hiérarchieélément partagé / FLIP
Le sujet parcourt un itinéraire visiblevoyage sur chemin (path travel)
Un trait s'allonge ou tracedessin de trait (stroke draw)
Une forme se transforme en une autreinterpolation de forme (shape interpolation)
La limite de révélation est visibleclip, masque ou uniform shader
Plusieurs éléments bougent avec un ordrestagger / délai indexé
Le texte lui-même bougesubdivision de ligne, mot, caractère ou bande
La surface se plie, s'étire ou se recadrecontre-transformation parent/enfant
L'interface a des étatsmachine à états explicite
La scène a de la profondeurDOM 3D, Three.js ou keyframes de caméra/objet WebGL

Les mécanismes peuvent se combiner, mais chacun doit clarifier l'idée. La décoration n'est pas une preuve.

Timing

  • L'anticipation uniquement lorsqu'elle clarifie la cause ou la direction.
  • L'accélération quitte le repos.
  • La preuve maximale montre le mécanisme de manière indubitable.
  • Le suivi (follow-through) vend l'énergie et la direction.
  • Le dépassement (overshoot) uniquement lorsque le sujet doit sembler élastique ou tactile.
  • Un voyage à vitesse constante sur un chemin nécessite généralement ease: "none".
  • Les états d'interface discrets nécessitent généralement un ease-out prononcé.
  • Les éléments répétés ont besoin de décalages ordonnés, pas d'un timing identique.
  • Les verrouillages finaux nécessitent des durées plus longues que les poses de transition.
  • La fluidité signifie une vélocité continue sur le même sujet.
  • Ne superposez pas les tweens qui écrivent la même propriété de transformation, sauf si le chevauchement est intentionnel et vérifié.
  • Évitez d'animer de grands changements de clip-path/masque pendant que la même surface héroïque est également en train de se redimensionner ou de se déplacer ; utilisez des révélations imbriquées après que le mouvement principal se soit stabilisé.

Texte

Préservez les boîtes de ligne, l'espacement des mots, la lisibilité et l'ajustement final. Si le texte se déplace en interne, déplacez les glyphes ou les bandes masquées, pas seulement les décorations autour du texte. Prenez des instantanés des images lisibles.

SVG

Pour la croissance d'un trait, préférez DrawSVGPlugin, puis stroke-dasharray/stroke-dashoffset. Pour l'interpolation de forme, préférez MorphSVGPlugin ; convertissez les primitives en chemins si nécessaire et divisez les silhouettes complexes en parties plus simples.

3D

Le scale seul est une fausse profondeur. Utilisez la perspective sur un parent stable, transform-style: preserve-3d, le déplacement en z, la rotation, le mouvement caméra/monde, l'occlusion et l'ordre des calques lorsque les objets se croisent.

Utilisez un ou deux angles de diagnostic qui exposent la relation de profondeur. Si la preuve angulaire ne montre aucun croisement de profondeur, améliorez le z/caméra/occlusion.

Canvas / WebGL

Keyframez la position de la caméra, la cible de la caméra, la transformation de l'objet, l'opacité du matériau, les uniforms shader et l'intensité du post-traitement via un état déterministe. Rendez à partir du temps HyperFrames. Utilisez --ghost car les boîtes de marqueur ne peuvent pas voir le mouvement interne du canvas.

Preuve CLI

npx hyperframes lint
npx hyperframes check
npx hyperframes keyframes .
npx hyperframes keyframes . --json
npx hyperframes keyframes . --runtime all
npx hyperframes keyframes . --selector "<sélecteur>" --shot "<fichier>" --samples <n>
npx hyperframes keyframes . --selector "<sélecteur>" --shot "<fichier>" --layout strip --from <t0> --to <t1>
npx hyperframes keyframes . --shot "<fichier>" --ghost --angle <angle>
npx hyperframes snapshot . --at <temps>

Choisissez <sélecteur> pour le véritable sujet animé. Choisissez <temps> pour la première image, les poses de preuve, la finale avant maintien, et la finale exacte. Choisissez <angle> uniquement lorsque la profondeur doit être prouvée.

OutilProuve
keyframescibles, arrêts explicites, chemins, traces, mouvement composé parent/enfant, arrêts CSS, enregistrement Anime
--shotfantômes, forme de l'itinéraire, espacement temporel, projection DOM 3D, preuve de sélecteur ciblé
--layout stripmouvement sur place, chevauchements, contact, scale/opacité subtils, vagues de texte
--ghostcanvas, WebGL, mouvement shader, 3D rendu
snapshot --atmasques, lisibilité du texte, état complet, verrouillage final, queues noires/repos

Si la preuve par sélecteur semble étrange pour le mouvement ciblé, elle est soit excessive soit mal ciblée. Ajustez le sélecteur pour cibler le sujet mobile réel.

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

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 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

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

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

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

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

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

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

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

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

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]

Skills associés