Communitygithub.com

heygen-com/hyperframes

Name: hyperframes-keyframes

Was ist hyperframes?

HyperFrames Keyframes ist ein Skill zur präzisen Steuerung von Animationen und visuellen Bewegungen in HyperFrames-basierten Projekten. Es definiert Keyframes als „Pose-Kontrakt“: sichtbare Zustände, durchgehende Subjektidentität, suchsichere Laufzeit und verifizierte Pixel. Der Skill arbeitet eng mit `/hyperframes-core` (für Clip-Assemblierung und Timing) und `/hyperframes-audio` (für Audioblenden) zusammen, wobei Keyframes ausschließlich die visuelle Bewegung auf Wrappern innerhalb der Clips steuern. Er unterstützt GSAP, CSS-Keyframes, Anime.js und WAAPI als Laufzeiten und bietet klare Regeln für suchsichere, deterministische Animationen ohne zufällige oder asynchrone Elemente. Ein umfangreiches Verfahren (Pose identifizieren, Mechanismus wählen, Keyframes autorisieren, mit CLI-Tools wie `hyperframes lint`, `hyperframes keyframes` und `hyperframes snapshot` verifizieren) stellt sicher, dass Animationen zuverlässig und reproduzierbar sind. Der Skill ist insbesondere für Entwickler und AI-Agenten geeignet, die visuelle Effekte, Kamerafahrten, Überblendungen und komplexe Animationsmuster in HyperFrames-Compositionen umsetzen möchten.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Plugin-Installation: Vor dem Ausführen von Setup- oder Aktualisierungsbefehlen befolgen Sie die Plugin-Ausführungsregeln, wenn sich dieser Skill innerhalb eines HyperFrames-Plugins befindet. Bei eigenständigen Installationen gelten die unten stehenden Aktualisierungshinweise.

HyperFrames Keyframes

Keyframes sind ein Pose-Vertrag: sichtbare Zustände, durchgehende Subjektidentität, suchsichere Laufzeit, verifizierte Pixel.

Verwenden Sie hyperframes-animation für allgemeine Szenenrezepte. Verwenden Sie hyperframes-cli für die vollständige Befehlsdokumentation. Verwenden Sie references/keyframe-patterns.md nur, wenn Sie Implementierungsmechanismen auswählen, nicht den visuellen Stil.

Bearbeitungsgrenze des Erstellers

Keyframes steuern die visuelle Bewegung, nicht die Clip-Assemblierung. Harte Schnitte im Quellbereich, Trimmen, Splice und Neuanordnung gehören zu /hyperframes-core: Pro beibehaltenem Bereich ein Medienelement erstellen, es mit data-start und data-duration platzieren und den Quell-Offset mit data-media-start auswählen. Benachbarte Bereiche ergeben einen harten Schnitt. Ein Crossfade verwendet überlappende Clips auf verschiedenen Spuren plus visuelle Opazitäts-Keyframes; Audioblenden verwenden /hyperframes-audio.

Anfrage des ErstellersWahrheitsgetreuer Mechanismus
Punch-in / Punch-outKeyframe scale mit x/y oder prozentualer Verschiebung auf einem nicht-zeitgesteuerten visuellen/Crop-Wrapper innerhalb des Clips. Verwenden Sie ein kurzes Tween für einen harten Punch und ein Tween für eine sanfte Bewegung.
Sanfter Multi-State-Zoom oder ReframeEinen Subjekt-Wrapper am Leben erhalten und mehrere Zoom/Reframe-Zustände als Pose-Leiter mit segmentweisem Easing erstellen.
Schwenken, Reframe oder KameraschwenkWrapper-Translation plus Scale animieren. Geometrie wird manuell erstellt; dies ist keine Gesichtsverfolgung oder automatische semantische Neurahmung.
Verkettete KamerafahrtenMarkierte Transform-Beat auf einer registrierten suchsicheren Timeline verketten.
Match Cut oder Whip Pan/hyperframes-animation besitzt die visuelle Übergabe; /hyperframes-registry liefert Primitive; Keyframes bewahren die erstellte Geometrie, Richtung und Geschwindigkeit. Es gibt keine automatische Framefindung.
Crop- und Mask-Reframeclip-path oder eine Maske auf einem inneren visuellen Wrapper interpolieren, um zu croppen/reframen, ohne die Quellzeit zu ändern. Polygon-Keyframes können einen Polygon/Masken-Übergang bilden.
Gerichteter Wisch-Schnitt oder Iris/Reveal-CutEine Masken/Clip-Grenze über überlappende visuelle Clips animieren; /hyperframes-animation besitzt die Übergabechoreografie.
Split-Screen-ÜbergabeBeide visuellen Clips behalten, die vom Core platziert wurden, dann deren innere Crop/Mask-Wrapper und Trenngeometrie mit Keyframes versehen.
Konstante Quellzeitraffung/hyperframes-core besitzt normalisierte data-playback-rate (0.1..10) für rendersichere Bild- und tonhöhenerhaltene Tonwiedergabe. Sie ist für das gesamte Medienelement konstant.
QuellgeschwindigkeitsrampenEine rate-Spur in data-automation auf <video>/<audio> (t in Clip-Sekunden, v 0.1..10, logarithmische Interpolation); sie überschreibt die konstante Rate.
Freeze / HaltenEin visuelles Pose, endgültiger Quellframe oder abgeschlossene Sub-Komposition kann gehalten werden. Ein beliebiges Einfrieren mitten im Quellmaterial wird nicht unterstützt; ein Standbild/ein abgeleitetes Segment vorverarbeiten, als eigenen Clip platzieren, dann mit einem anderen Quellbereich fortfahren.

Wenn Bild und Ton gemeinsam bearbeitet werden, laden Sie /hyperframes-core, diesen Skill für die visuelle Bewegung und /hyperframes-audio für Blenden, Crossfades, Lautstärkeautomation, Ducking/Carve oder Effekte auf den platzierten Spuren.

Ein visueller Übergang oder eine Zuschneidebehandlung ist kein zeitlicher Quelltrim oder Splice. /hyperframes-core besitzt die Timeline, das Clip-Timing und die Quellbereiche; Keyframes animieren nur die sichtbare Übergabe oder den Zuschnitt auf Wrappern innerhalb dieser Clips. Verwenden Sie für kopierbare kombinierte Bild/Ton-Rezepte /hyperframes-core → references/creator-editing-recipes.md.

Verfahren

  1. Das animierte Subjekt, die sichtbaren Zustände, den Endzustand und die Laufzeit identifizieren.
  2. Den kleinsten Mechanismus wählen, der die Anfrage beweist. references/keyframe-patterns.md nur lesen, wenn der Mechanismus unklar ist.
  3. Suchsichere Keyframes in der deklarierten Laufzeit erstellen. Synchron aufbauen und die Laufzeitinstanz registrieren.
  4. Mit hyperframes lint, hyperframes check, hyperframes keyframes, einem fokussierten --shot und Snapshots zu Beweiszeitpunkten verifizieren.
  5. Wenn der Beweis fehlschlägt, die Quell-Keyframes korrigieren und die kleinste fehlschlagende Diagnose erneut ausführen, bevor gerendert wird.

Vertrag

  • Das sich bewegende Subjekt benennen.
  • Die Posen benennen, die benötigt werden, um die beabsichtigte Bewegung zu beweisen, einschließlich des Endzustands.
  • Sichtbare Kanäle mit Keyframes versehen, nicht versteckte Hilfszustände.
  • Objektidentität bewahren, wenn Kontinuität wichtig ist.
  • Crossfade nur, wenn die beabsichtigte Bewegung Ersetzung oder Auflösung ist.
  • Lesbare oder semantische Zustände lange genug halten, um sie zu sehen.
  • Der letzte Frame ist Teil der Animation, kein Aufräumen.
  • Nicht in den Ruhezustand zurücksetzen, es sei denn, es wird verlangt.
  • Nicht mit Schwarz enden, es sei denn, es wird verlangt.
  • Beim Bearbeiten einer Starterszene Layout, Kopie, Assets, Farben und Endzustand beibehalten, es sei denn, ein Redesign wird verlangt.

Laufzeitregeln

GSAP:

  • Synchron beim Seitenladen erstellen
  • gsap.timeline({ paused: true }) verwenden
  • Als window.__timelines[compositionId] registrieren
  • Der Registry-Key muss mit data-composition-id übereinstimmen
  • tl.play() nicht für rendkritische Bewegung aufrufen
  • Wiederholungen endlich halten

CSS-Keyframes:

  • Endliche Dauer und Iterationsanzahl
  • Deterministische Verzögerung
  • animation-fill-mode: both
  • data-start verwenden, wenn das Timing zu einem Clip gehört

Anime.js:

  • Synchron erstellen
  • autoplay: false
  • Endliche Dauer und Schleifen
  • Jede Instanz zu window.__hfAnime hinzufügen

WAAPI:

  • Endliche duration
  • fill: "both"
  • Deterministische Konstruktion
  • Die Textoberfläche listet WAAPI nicht auf; mit --shot verifizieren (es sucht WAAPI) und Snapshots

Niemals für rendkritische Bewegung verwenden:

  • Date.now()
  • performance.now()
  • Nicht gesetzter Math.random()
  • Hover-/Scroll-Trigger
  • Timer
  • Asynchron erstellte Timelines
  • Nicht registriertes requestAnimationFrame
  • Unendliche Schleifen

GSAP-Skelett

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;

Labels für semantische Zustände verwenden. Positionsparameter anstelle von verketteten Verzögerungen verwenden. immediateRender: false für spätere from()/fromTo()-Tweens verwenden, die dieselbe Eigenschaft berühren.

Keyframe-Formen

  • Array-Keyframes: Pose-Leiter mit Schritt-für-Schritt-Dauer/Easing.
  • Prozent-Keyframes: exaktes Timing innerhalb eines Tweens.
  • Eigenschafts-Arrays: kompakte Multi-Stop-Änderungen.
  • ease: "none" auf dem Elternteil, wenn jeder Stop sein eigenes Easing trägt.
  • easeEach, wenn jedes Segment dasselbe Gefühl haben soll.

Keine numerischen Abstände oder Timings aus Beispielen kopieren. Sie aus der tatsächlichen Zusammensetzungsgeometrie und -dauer ableiten.

Für ein Subjekt, das sich zwischen zwei Boxen bewegt, einen kontinuierlichen Transform-Tween oder FLIP bevorzugen. Aufgeteilte x/y/scale in mehrere erleichterte Keyframes nur dann, wenn der Betrachter unterschiedliche Beats spüren soll; jedes Segment ändert die Geschwindigkeit und kann als Ruckler gelesen werden.

Kanäle

Bevorzugen Sie Compositor-/Visuelle Kanäle: x/y/z, xPercent/yPercent, scale, rotationX/Y/Z, skew, transformOrigin, svgOrigin, opacity, autoAlpha, clip-path, Masken, CSS-Vars, SVG-Pfad/Dash-Werte, Kamera-Transformationen, Shader-Uniforms.

Vermeiden Sie Layout-/Lifecycle-Kanäle: top/left/right/bottom, width/height, margin/padding, display, visibility, späte DOM-Erstellung, Helfer-Overlays, die Subjektbewegung ausführen.

Für Sichtbarkeitsänderungen verwenden Sie autoAlpha auf der registrierten suchsicheren GSAP-Timeline, oder ein tl.set() mit Nulldauer an einer expliziten Grenze. Zielen Sie nur auf ein Nicht-Clip-Element oder einen Wrapper innerhalb des Clips; zielen Sie niemals auf .clip selbst. Niemals rohes visibility mit Dauer tweenen und niemals display tweenen.

Mechanismusauswahl

Wählen Sie den kleinsten Mechanismus, der die Anfrage beweist:

BedarfMechanismus
Gleiches Subjekt ändert Box oder HierarchieGemeinsames Element / FLIP
Subjekt reist eine sichtbare RoutePfadreise
Strich wächst oder zeichnetStrich zeichnen
Form wird zu einer anderen FormForminterpolation
Enthüllungsgrenze ist sichtbarClip, Maske oder Shader-Uniform
Viele Elemente bewegen sich mit OrdnungStagger / indizierte Verzögerung
Text selbst bewegt sichZeilen-, Wort-, Zeichen- oder Bandunterteilung
Oberfläche biegt, dehnt oder cropptEltern/Kind-Gegentransform
UI hat ZuständeExplizite Zustandsmaschine
Szene hat TiefeDOM 3D, Three.js oder WebGL-Kamera/Objekt-Keyframes

Mechanismen können kombiniert werden, aber jeder muss die Idee klären. Dekoration ist kein Beweis.

Timing

  • Antizipation nur, wenn sie die Ursache oder Richtung klärt.
  • Beschleunigung verlässt den Ruhezustand.
  • Höhepunktbeweis zeigt den Mechanismus unverkennbar.
  • Durchlauf verkauft Energie und Richtung.
  • Überschwingen nur, wenn sich das Subjekt elastisch oder taktil anfühlen soll.
  • Reisen mit konstanter Geschwindigkeit benötigen normalerweise ease: "none".
  • Diskrete UI-Zustände benötigen normalerweise ein scharfes Aus-Easing.
  • Wiederholte Elemente benötigen geordnete Offsets, nicht identisches Timing.
  • Finale Verriegelungen benötigen längere Haltezeiten als Übergangsposen.
  • Glätte bedeutet kontinuierliche Geschwindigkeit auf demselben Subjekt.
  • Überlappen Sie keine Tweens, die dasselbe Transform-Eigenschaft schreiben, es sei denn, die Überlappung ist beabsichtigt und verifiziert.
  • Vermeiden Sie es, große clip-path/Masken-Änderungen zu animieren, während dieselbe Hauptoberfläche auch skaliert oder reist; verwenden Sie verschachtelte Enthüllungen, nachdem sich die Hauptbewegung beruhigt hat.

Text

Bewahren Sie Zeilenboxen, Wortabstände, Lesbarkeit und endgültige Passung. Wenn sich Text intern bewegt, bewegen Sie die Glyphen oder maskierten Bänder, nicht nur Dekorationen um den Text. Erstellen Sie Snapshots von lesbaren Frames.

SVG

Für Strichwachstum bevorzugen Sie DrawSVGPlugin, dann stroke-dasharray/stroke-dashoffset. Für Forminterpolation bevorzugen Sie MorphSVGPlugin; konvertieren Sie Primitive bei Bedarf in Pfade und teilen Sie komplexe Silhouetten in einfachere Teile auf.

3D

Maßstab allein ist falsche Tiefe. Verwenden Sie Perspektive auf einem stabilen Elternteil, transform-style: preserve-3d, Z-Reise, Rotation, Kamera-/Weltbewegung, Okklusion und Ebenenordnung, wenn Objekte sich kreuzen.

Verwenden Sie ein oder zwei diagnostische Winkel, die die Tiefenbeziehung offenlegen. Wenn der angewinkelte Beweis keine Tiefenkreuzung zeigt, verbessern Sie Z/Kamera/Okklusion.

Canvas / WebGL

Bewegen Sie die Kameraposition, das Kameraziel, die Objekttransformation, die Materialopazität, die Shader-Uniforms und die Nachbearbeitungsintensität durch deterministischen Zustand. Rendern Sie aus der HyperFrames-Zeit. Verwenden Sie --ghost, da Marker-Boxen die interne Canvas-Bewegung nicht sehen können.

CLI-Beweis

npx hyperframes lint
npx hyperframes check
npx hyperframes keyframes .
npx hyperframes keyframes . --json
npx hyperframes keyframes . --runtime all
npx hyperframes keyframes . --selector "<selector>" --shot "<file>" --samples <n>
npx hyperframes keyframes . --selector "<selector>" --shot "<file>" --layout strip --from <t0> --to <t1>
npx hyperframes keyframes . --shot "<file>" --ghost --angle <angle>
npx hyperframes snapshot . --at <times>

Wählen Sie <selector> für das reale animierte Subjekt. Wählen Sie <times> für den ersten Frame, Beweisposen, Final-Minus-Halt und exakten End-Frame. Wählen Sie <angle> nur, wenn Tiefe bewiesen werden muss.

ToolBeweist
keyframesZiele, explizite Stopps, Pfade, Spuren, zusammengesetzte Eltern/Kind-Bewegung, CSS-Stopps, Anime-Registrierung
--shotGeister, Routenform, Zeitabstände, DOM-3D-Projektion, fokussierter Selektorbeweis
--layout stripBewegung an Ort und Stelle, Überlappungen, Kontakt, subtile Skalierung/Opazität, Textwellen
--ghostCanvas, WebGL, Shader-Bewegung, gerendertes 3D
snapshot --atMasken, Textlesbarkeit, vollständiger Zustand, endgültige Verriegelung, Schwarz-/Reset-Schwänze

Wenn der Selektorbeweis seltsam aussieht ...

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]

Verwandte Skills