Communitygithub.com

heygen-com/hyperframes

Importez du contenu Figma dans une composition HyperFrames — assets rendus, tokens de marque, composants, sections de storyboard → mouvement reconstruit (les images sont lues comme des états, pas des diapositives) (REST/CLI), mouvement assisté par connecteur quand disponible, et shaders depuis un connecteur ou une exportation native. Utilisez-le lorsque l'utilisateur colle un lien figma.com ou demande d'importer un design Figma, une image, un logo, une marque ou une animation dans une vidéo/composition.

Qu'est-ce que hyperframes ?

Cette compétence permet d'importer du contenu Figma dans HyperFrames, une plateforme de composition vidéo et d'animation. Elle traduit les designs Figma en assets statiques, tokens de marque, composants HTML, animations et shaders. Le processus est divisé en phases distinctes : les phases 1 à 3 utilisent REST via l'interface CLI (`hyperframes figma asset`, `tokens`, `component`), tandis que les phases 4 (mouvement) et 5 (shaders) nécessitent un connecteur Figma compatible ou une exportation native. La règle cardinale pour les storyboards est que les images ne sont pas des diapositives, mais des keyframes décrivant l'état d'un élément dans le temps. L'authentification se fait via un token Figma read-only (`FIGMA_TOKEN`) avec des scopes spécifiques. Les tokens de marque (phase 2) sont importés en tant que variables de composition, permettant une mise à jour centralisée. Les composants (phase 3) génèrent du HTML éditable avec des références aux tokens. Le mouvement (phase 4) utilise un connecteur pour produire des animations GSAP, avec validation obligatoire par comparaison vidéo. Les shaders (phase 5) sont principalement manuels car Figma ne les exécute pas dans son pipeline d'export.

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

Demander à votre IA préférée

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

Documentation

Installations du plugin : Avant les commandes de configuration ou de mise à jour, suivez les règles d'exécution du plugin lorsque cette compétence se trouve dans un plugin HyperFrames. Les installations autonomes conservent les instructions de mise à jour ci-dessous.

D'abord, gardez cette compétence à jour — confirmez avec l'utilisateur avant d'exécuter : npx hyperframes skills update figma. Une opération rapide sans effet si tout est à jour ; sinon, elle rafraîchit cette compétence ainsi que les compétences de base dont elle dépend avant que vous ne les utilisiez.

Figma → HyperFrames

Importez le travail Figma de l'utilisateur dans une composition. Divisé par capacité (spécification de design §2) :

PhaseQuoiTransportSurface
1Assets statiquesRESThyperframes figma asset
2Tokens/styles de marqueRESThyperframes figma tokens
3Composants → HTMLRESThyperframes figma component
4Mouvement → GSAPconnecteur quand disponibleutiliser son contexte de mouvement
5Shadersconnecteur / export manuell'utiliser ou une exportation native

REST est utilisé partout où c'est possible (utilisable en volume, sans interface graphique). Un connecteur Figma compatible est optionnel pour les données de mouvement et de shader ; sans lui, demandez une exportation native. Chaque chemin fige les assets localement pour que les rendus restent déterministes. Les reconstructions de storyboard composent les exportations d'assets de phase 1 (REST) avec un assemblage de timeline piloté par l'agent — aucun connecteur nécessaire. Les assets figés existants, les enregistrements de manifeste et les liaisons ne sont pas affectés par les changements de routage — la division ne change que les identifiants que la prochaine importation utilisera.

Authentification — deux identifiants, limités

Vérification préalable — avant le premier appel CLI, vérifiez qu'un token existe : variable d'environnement shell ([ -n "$FIGMA_TOKEN" ]) ou le fichier .env du projet (le CLI le charge automatiquement — une entrée .env compte comme configurée). Si aucun des deux, n'exécutez PAS la commande pour récolter l'erreur — guidez d'abord l'utilisateur dans la configuration unique, puis arrêtez-vous et attendez :

  1. figma.com/settings → Sécurité → Jetons d'accès personnel → Générer un nouveau jeton.
  2. Périmètres — lecture seule est tout ce dont cette intégration a besoin (elle n'écrit jamais dans Figma) : Contenu du fichier : Lecture seule + Métadonnées du fichier : Lecture seule. Ajoutez Contenu de la bibliothèque : Lecture seule si vous exécutez tokens sur un plan non Enterprise — la solution de repli des styles publiés accède à /v1/files/:key/styles, qui renvoie 403 sans ce périmètre (un périmètre que l'ancien texte de configuration omettait). Optionnellement Variables : Lecture seule pour les variables de marque — réservé aux plans Enterprise ; sans cela, tokens se replie automatiquement sur les styles publiés (attendu, pas une erreur — dites-le). Un code 403 indique désormais le périmètre manquant exact ; les 429 sont réessayés automatiquement (limite par minute, respecte Retry-After).
  3. Demandez à l'utilisateur de définir FIGMA_TOKEN dans son profil shell ou le fichier .env du projet ; ne lui demandez jamais de coller le token dans la conversation.

Pendant l'intégration, définissez également les attentes en une phrase : chaque importation aboutit à un fichier local figé avec provenance enregistrée — les rendus n'appellent jamais Figma, réexécuter une commande réimporte uniquement ce qui a changé dans Figma, et un seul token fonctionne pour les assets, les tokens de marque et les composants dans tous les fichiers que le compte Figma de l'utilisateur peut voir.

  • Phases 4–5 (mouvement/shadeurs) : un connecteur Figma compatible, avec une autorisation distincte du token. S'il est indisponible ou non authentifié, demandez à l'utilisateur de le connecter ou de fournir une exportation native, puis arrêtez-vous.
  • Dites exactement quel identifiant une phase défaillante nécessite — ne présentez jamais la division comme cassée.
  • BAD_TOKEN (401) en cours de route → le token a expiré ou a été révoqué ; recréez-en un. FORBIDDEN (403) → le message nomme le périmètre manquant exact (par ex. library_content:read pour le repli des styles) — ajoutez-le, ou le fichier n'est pas visible par le compte. REQUIRES_ENTERPRISE (403 sur les variables) → pas une erreur : le repli des styles a déjà été exécuté. RATE_LIMITED (429) → le client a déjà réessayé avec un backoff (cela s'applique à CHAQUE lecture — assets, tokens, styles, arborescences de nœuds, versions — la tentative de réessai réside dans le chemin de requête partagé ; Retry-After est respecté, plafonné à 60 s) ; si cela persiste, attendez une minute ou importez moins de nœuds par appel.

Conscience de la limite de débit (spécification §2.1) : les quotas du connecteur varient selon le plan Figma — regroupez les requêtes de trames parentes, évitez les captures d'écran de vérification sauf demande, et mettez en cache les réponses brutes pour que la re-dérivation n'utilise jamais un second appel. REST est par minute (10+/min, compartiments par point de terminaison) — acceptable en volume, ralentissez sur 429.

Routage

Analysez le lien figma de l'utilisateur avec parseFigmaRef (URL, fileKey:nodeId, fileKey nu). Ensuite, selon l'intention :

  • "utiliser ce calque / logo / image" → Asset (CLI)
  • "récupérer ma marque / mes couleurs / mes tokens" → Tokens (CLI)
  • "construire une scène à partir de cette trame" → Composant (CLI)
  • "importer cette animation / ce mouvement" → Mouvement (connecteur quand disponible, ci-dessous)
  • une section de storyboard / un filmstrip d'images de scène → Storyboard (ci-dessous)
  • remplissage/effet shader → Shaders (ci-dessous)

Narrez chaque étape pour l'utilisateur — avant chaque commande, dites ce que vous allez extraire de Figma ; après, dites où l'artefact a atterri (le chemin figé / sidecar / répertoire du composant), ce qui a changé dans la composition, et l'action immédiate suivante (aperçu, ajouter des variables imprimées, réimporter pour lier les liaisons). L'utilisateur ne devrait jamais avoir à demander "est-ce que ça a marché ?" ou "et maintenant ?".

Assets (Phase 1 — CLI)

hyperframes figma asset '<url-ou-fileKey:nodeId>' [autres réf…] [--format svg|png|jpg|pdf] [--scale 2] [--description "..."] [--entity "..."]

Rend via REST, nettoie le SVG, fige sous .media/images/, ajoute le manifeste avec provenance, régénère .media/index.md (l'inventaire partagé d'utilisation des médias), affiche un extrait <img>. Idempotent par fileKey:nodeId:format:scale:version. Préférez SVG pour les vecteurs/logos (évolutif, animable), PNG --scale 2 pour la fidélité raster. Passez toujours --description "<ce que c'est>" (il devient la ligne d'index + <img alt>) ; ajoutez --entity "<nom>" pour les marques nommées afin que resolve --entity de media-use les trouve plus tard (les correspondances d'entité s'étendent entre image/icône).

Regroupez plusieurs nœuds dans UNE SEULE requête — passez plusieurs références (séparées par des espaces ou des virgules) du MÊME fichier : hyperframes figma asset 'KEY:1-2' 'KEY:3-4' 'KEY:5-6'. Tous sont rendus dans un seul appel /v1/images, ce qui est la propre réponse de Figma à la limite de débit par minute — préférez-le à N commandes séparées lors de l'extraction d'une trame entière d'assets. --description/--entity s'appliquent à chaque nœud du lot, donc regroupez les nœuds qui partagent un objectif. Les 429 sont également réessayés automatiquement avec un backoff.

Tokens (Phase 2 — CLI)

hyperframes figma tokens <fileKey>

Importe les variables en tant qu'entrées de variable de marque de composition + sidecar figma-tokens.json + enregistrements d'index de liaison (.media/figma-bindings.jsonl). Les variables sont limitées aux plans Enterprise en amont : sur les autres plans, la commande se dégrade en métadonnées de style publié (les valeurs sont résolues au moment de l'importation du composant). Ajoutez les entrées imprimées au data-composition-variables de la composition.

Importez les tokens avant les composants lorsque les deux sont souhaités — cela permet aux couleurs des composants de se lier aux variables de marque plutôt que de dupliquer les valeurs.

Chemin des variables non Enterprise (testé sur le terrain) : les variables REST sont limitées aux plans Enterprise, mais un connecteur compatible peut fournir des définitions de variables. Lorsque tokens signale REQUIRES_ENTERPRISE et que le connecteur est disponible, récupérez les variables de la scène parente une fois, mettez en cache la réponse brute dans .media/figma-cache/, et utilisez-la pour construire l'index de liaison. L'arborescence des nœuds REST boundVariables fournit des VariableIDs par propriété ; joignez-les par nœud et propriété, puis écrivez les lignes .media/figma-bindings.jsonl ({kind:"binding", figmaId, sourceFileKey, compositionVariableId: "figma:<nom>", version}) plus les entrées de variable de composition. Tout ce qui suit (résolution var() du composant, rafraîchissement, variables CSS d'exécution) relève du mécanisme livré. Étiquetez-le pour l'utilisateur : "tokens via le connecteur Figma — les plans Enterprise les obtiennent directement via hyperframes figma tokens."

L'exécution définit chaque variable de composition déclarée comme une propriété personnalisée CSS (racine du document + hôtes des sous-composants), de sorte que var(--slug, littéral) importé remplit la recoloration lorsque la valeur par défaut de la variable change — mettre à jour une valeur dans data-composition-variables re-marque chaque composant importé sans rien réimporter. hyperframes render --variables '<json>' les remplace au moment du rendu.

Composants (Phase 3 — CLI)

hyperframes figma component '<url-ou-fileKey:nodeId>'

Arborescence des nœuds → HTML éditable à la géométrie exacte de Figma, emballé comme un élément de registre sous compositions/components/<nom>/. Les vecteurs/opérations booléennes sont automatiquement pixellisés via l'exportation de phase 1. Passage de liaison (spécification §7.1, ID exact uniquement — jamais de correspondance de valeur) :

  • Auto-vérification de la fidélité statique (obligatoire pour le contenu principal) : après l'importation, rendez le fragment et comparez-le aux propres pixels de Figma — figma asset <même nœud> --format png est la vérité terrain. Le texte est l'axe de dérive connu : une zone de texte Figma plus courte que sa hauteur de ligne a des limites verticales rognées (le mappeur émet text-box-trim pour celles-ci ; la dérive mesurée sans cela était d'environ 6px sur une police de 70px). Si la comparaison montre une dérive non couverte par le mappeur, signalez-la — ne modifiez pas manuellement le fragment en silence.
  • Remplissage lié à un token importé → var(--slug, #littéral) — la mise à jour de la marque se propage.
  • Lié à un token inconnu → littéral + indicateur data-figma-unresolved. La commande vous en informe ; proposez à l'utilisateur : exécutez tokens sur le fichier source (ou la bibliothèque), puis réimportez le composant pour les lier. Demandez une fois par bibliothèque inconnue de quel fichier il s'agit — ne devinez jamais, ne correspondez jamais par hexadécimal.

Mouvement (Phase 4 — assisté par connecteur)

Balisage d'utilisation : Les phases assistées par connecteur n'ont pas de point de contact CLI, donc déclenchez le balisage de compétence au début et à la fin (anonyme, avec consentement, n'échoue jamais) : npx hyperframes events --skill=figma-motion lorsque vous commencez, npx hyperframes events --skill=figma-motion --event=skill_completed --outcome=success|error lorsque vous avez terminé. De même pour les shaders (figma-shaders) et les storyboards (figma-storyboard).

Aucun équivalent REST n'existe. Lorsqu'un connecteur compatible est disponible, utilisez-le et transmettez sa sortie aux helpers purs dans @hyperframes/core/figma ; sinon, demandez une exportation native :

  1. Récupérez le contexte de mouvement de la trame parente en une seule requête récursive, pas une requête par élément. Sauvegardez le JSON brut à côté du projet (.media/figma-cache/) pour que la re-traduction soit gratuite.
  2. Normalisez en MotionDocs avec motionContextToDocs(rawResponse, { selectorFor, repeat }) de @hyperframes/core/figma — ne retranscrivez jamais les numéros de keyframe à la main. Le helper encode les règles de décodage testées sur le terrain de manière mécanique : il analyse les extraits motion.dev (l'encodage fiable — les extraits CSS étirent les durées et peuvent diverger ; ils sont ignorés), supprime les keyframes de fin de boucle (les segments sous-milliseconde à des temps ≈0,9999→1 sont la réinitialisation instantanée de la boucle, pas un mouvement intentionnel — l'enveloppe est réalisée par le redémarrage repeat), et préserve les courbes bezier textuellement. selectorFor doit retourner les identifiants de l'importation du composant de phase 3 — ne dérivez pas les sélecteurs des noms de nœuds. 2b. Validez par rapport à la vérité terrain avant de déclarer terminé — obligatoire : exportez la trame racine de la cohorte via le connecteur disponible et exécutez node skills/figma/scripts/verify-motion.mjs --reference <export.mp4> --render <render.mp4> --crop LxH+X+Y — il compare les deltas d'énergie de mouvement (la fidélité d'importation statique s'annule) et échoue en dessous de 15dB min motion-PSNR (calibré : fidèle ≈ 20+, divergent ≈ 5). Mesurez --crop à partir des bords réels de la carte du rendu, ne devinez pas. ÉCHEC signifie revérifier la traduction, pas le seuil.
  3. motionToGsap(doc) → emitTimelineScript(spec) → injectez comme <script> après les balises CDN GSAP + CustomEase. En pause, fini, enregistré sur window.__timelines avec une clé littérale.
  4. Piste intraduisible (pilotée par shader, propriété non prise en charge, masques complexes) → exportez via le connecteur, figez le MP4, puis intégrez-le comme <video class="clip">. Exception : les pistes pilotées par shader — le chemin d'exportation de Figma aplatit les shaders en couleur de base (voir Shaders ci-dessous), donc un rendu fixe y perd silencieusement le shader ; demandez plutôt une exportation Figma native à l'utilisateur. Dites toujours quel chemin vous avez utilisé et pourquoi. Les courbes nommées en dehors de l'ensemble mappé tombent en linéaire — la table de mappage se trouve dans motionEase.ts ; signalez le repli à l'utilisateur quand il se déclenche.
  5. Exécutez npx hyperframes check avant de déclarer terminé.

Shaders (Phase 5 — principalement manuelle)

Le chemin de rendu du connecteur Figma n'exécute pas les shaders (ils sont aplatis en couleur de base), et la source du shader n'est accessible que pour les styles publiés en bibliothèque (siège complet payant). Chemin par défaut : demandez à l'utilisateur d'exporter la trame shader nativement dans Figma (PNG ou Motion MP4), puis importez-la comme un asset / clip de phase 1. N'essayez pas la capture pixel du connecteur d'un shader — elle produira silencieusement un résultat erroné.

Storyboards (une SECTION d'images de scène → animation)

La règle cardinale : les images de storyboard sont des KEYFRAMES, pas des diapositives. Deux images contenant le même élément décrivent l'état de cet élément dans le temps — animez l'ÉLÉMENT entre les états ; ne jouez jamais les images comme une séquence d'images fixes. Un logo dessiné dans quatre images consécutives à un y décroissant est UN élément s'élevant à travers quatre keyframes. Jouer les images du storyboard les unes après les autres est le mode d'échec ; reconstruire les timelines d'éléments qu'elles impliquent est le travail.

Les fichiers de storyboard suivent une grammaire que vous pouvez analyser mécaniquement — ne regardez pas à l'œil, décodez :

  1. Unités de scène : à l'intérieur de la SECTION, chaque nœud de la taille d'une image est une scène — à la fois les FRAMEs nommées et les RECTANGLEs pleine image lâches (les designers collent des images fixes directement dans la section). Filtrez par taille (≈ format de la composition, par ex. >1400×900), pas par type de nœud ou nom.
  2. Ordre = position x (ligne principale si la bande s'enroule). Triez les scènes par absoluteBoundingBox.x.
  3. Différence entre scènes adjacentes : pour chaque propriété d'un nœud qui a changé d'une scène N à N+1 (position, opacité, rotation, visibilité, remplissage, trait), la propriété est une CLÉ d'animation de N à N+1. Métadonnées : transitionDuration: number (ms, défaut 400), transitionEasing: string ('linear'|'ease-in'|'ease-out'|'ease-in-out'|'cubic-bezier(p1x,p1y,p2x,p2y)').
  4. Supprimez les scènes en double : si N+1 est identique à N en position/propriétés visuelles, c'est intentionnel (la scène N a une durée de maintien) ; gardez la scène N+1 mais avec transitionDuration = la durée de maintien de N + la durée de transition de N. (C'est ainsi que les designers encodent « ceci reste ici pendant 2 secondes puis l'image suivante commence à arriver ».)
  5. Pour les compositions où l'image N dure jusqu'à ce que l'image N+1 la recouvre, la TIMELINE est une superposition de toutes les images de la section étalonnées pour commencer ensemble avec des durées individuelles — chaque image superposée a une <div> parente avec animation-delay: <temps cumulé des images précédentes>s. Il n'y a pas de coupure entre les images.
  6. 'this scene stops, next scene starts' = un fondu au noir explicite (une image noire RECTANGLE entre les scènes) suivi d'un fondu depuis le noir — c'est la seule façon dont un storyboard encode une coupure. Détectez-la uniquement par la présence d'une image noire intercalée entre des scènes non noires.

Ne déduisez jamais d'une image de storyboard plus que ce qui y est explicitement tracé — l'image est la vérité ; ce qui n'est pas tracé n'existe pas. Si l'utilisateur veut ajouter des keyframes intermédiaires, il doit éditer le fichier Figma original — le storyboard est la source d'autorité.

De plus, l'étape de reconstruction multi-image émet un MotionDoc en sortie qui est consommé par motionToGsap de la Phase 4 — la validation de la Phase 4 s'applique également (vérification de la PSNR de mouvement en sortie). Après l'importation du storyboard, exécutez toujours npx hyperframes check.

Alignement de l'importation

Les tokens utilisent des noms de variables et des slugs de propriété qui doivent correspondre aux attentes des composants et des appels de rendu.

Table de mappage des propriétés (fiable, non exhaustive)

Variable Figma (expectation)Slug CSSAttendu par
color-background-default--bgcomposition-variables
color-text-primary--textcomposition-variables
color-brand-primary--brand-primarymedia-use (résolution d'entité)
radius-default--radiuscomposition-variables
spacing-default--spacecomposition-variables

Toutes les valeurs sont exprimées avec des unités de correspondance de Pixel. Les variables de composition sont définies sur la racine du document (le hôte du composant, pas à l'intérieur).

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

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

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