Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a HyperFrames composition needs a punch-in, punch-out, zoom, reframe, Ken Burns treatment, camera move, visual match/whip handoff, or other seek-safe 2D/3D keyframes; also for GSAP, CSS keyframes, Anime.js, WAAPI, FLIP, paths, masks, SVG morph/draw, text trails, 3D depth, or `hyperframes keyframes` diagnostics. Don't use for broad scene strategy, brand design, media sourcing, captions, or general video planning.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Plugin installs: Before setup or freshness commands, follow plugin execution rules when this skill is inside a HyperFrames plugin. Standalone installs keep the update instructions below.
Keyframes are a pose contract: visible states, continuous subject identity, seek-safe runtime, verified pixels.
Use hyperframes-animation for broad scene recipes. Use hyperframes-cli for full command docs. Use references/keyframe-patterns.md only when choosing implementation mechanisms, not visual style.
Keyframes own visual motion, not clip assembly. Source-range hard cuts, trim,
splice, and reorder belong to /hyperframes-core: author one media element per
kept range, place it with data-start and data-duration, and select its source
offset with data-media-start. Adjacent ranges make a hard cut. A crossfade
uses overlapping clips on different tracks plus visual opacity keyframes; sound
fades use /hyperframes-audio.
| Creator request | Truthful mechanism |
|---|---|
| Punch-in / punch-out | Keyframe scale with x/y or percentage translation on a non-timed visual/crop wrapper inside the clip. Use a set/short tween for a hard punch and a tween for a smooth move. |
| Smooth multi-state zoom or reframe | Keep one subject wrapper alive and author multiple zoom/reframe states as a pose ladder with per-segment easing. |
| Pan, reframe, or Ken Burns camera move | Animate wrapper translation plus scale. Geometry is authored; this is not face tracking or automatic semantic reframing. |
| Chained camera moves | Chain labeled transform beats on one registered seek-safe timeline. |
| Match cut or whip pan | /hyperframes-animation owns the visual handoff; /hyperframes-registry supplies primitives; keyframes preserve authored geometry, direction, and velocity. There is no automatic matching-frame discovery. |
| Crop and mask reframe | Interpolate clip-path or a mask on an inner visual wrapper to crop/reframe without changing source time. Polygon keyframes can form a polygon/mask transition. |
| Directional wipe cut or iris/reveal cut | Animate a mask/clip boundary across overlapping visual clips; /hyperframes-animation owns the handoff choreography. |
| Split-screen handoff | Keep both visual clips placed by core, then keyframe their inner crop/mask wrappers and divider geometry. |
| Constant source retime | /hyperframes-core owns normalized data-playback-rate (0.1..10) for render-safe picture and pitch-preserved sound. It is constant for the whole media element. |
| Source speed ramps | A rate lane in data-automation on the <video>/<audio> (t in clip seconds, v 0.1..10, log interpolation); it wins over the constant rate. |
| Freeze / hold | A visual pose, final source frame, or finished sub-composition can hold. Arbitrary mid-source freeze is not supported; preprocess a still/derived segment, place it as its own clip, then resume with another source range. |
When editing picture and sound together, load /hyperframes-core, this skill for
visual motion, and /hyperframes-audio for fades, crossfades, volume automation,
ducking/carve, or effects on the placed tracks.
A visual transition or cropping treatment is not a temporal source trim or
splice. /hyperframes-core owns the timeline, clip timing, and source ranges;
keyframes only animate the visible handoff or crop on wrappers inside those clips.
For copyable combined picture/sound recipes, use /hyperframes-core → references/creator-editing-recipes.md.
references/keyframe-patterns.md only if the mechanism is unclear.document.fonts.ready is fine.hyperframes check (it runs lint), hyperframes keyframes, one focused --shot, and snapshots at proof times.GSAP:
document.fonts.ready, and register only after the build completesgsap.timeline({ paused: true })window.__timelines[compositionId]data-composition-idtl.play() for render-critical motionCSS keyframes:
animation-fill-mode: bothdata-start when timing belongs to a clipAnime.js:
autoplay: falsewindow.__hfAnimeWAAPI:
durationfill: "both"--shot (it seeks WAAPI) and snapshotsNever use for render-critical motion:
Date.now()performance.now()Math.random()requestAnimationFrameconst 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;
Use labels for semantic states. Use position parameters instead of chained delays. Use immediateRender: false for later from()/fromTo() tweens touching the same property.
ease: "none" on the parent when each stop carries its own easing.easeEach when every segment should share the same feel.Do not copy numeric distances or timing from examples. Derive them from the actual composition geometry and duration.
For one subject moving between two boxes, prefer one continuous transform tween or FLIP. Split x/y/scale into multiple eased keyframes only when the viewer should feel distinct beats; every segment changes velocity and can read as a hitch.
Prefer compositor/visual channels: x/y/z, xPercent/yPercent, scale, rotationX/Y/Z, skew, transformOrigin, svgOrigin, opacity, autoAlpha, clip-path, masks, CSS vars, SVG path/dash values, camera transforms, shader uniforms.
Avoid layout/lifecycle channels: top/left/right/bottom, width/height, margin/padding, display, visibility, late DOM creation, helper overlays doing subject motion.
For visibility changes, use autoAlpha on the registered seekable GSAP timeline, or a zero-duration tl.set() at an explicit boundary. Target only a non-clip element or a wrapper inside the clip; never target .clip itself. Never duration-tween raw visibility, and never tween display.
Choose the smallest mechanism that proves the prompt:
| Need | Mechanism |
|---|---|
| Same subject changes box or hierarchy | shared element / FLIP |
| Subject travels a visible route | path travel |
| Stroke grows or traces | stroke draw |
| Shape becomes another shape | shape interpolation |
| Reveal boundary is visible | clip, mask, or shader uniform |
| Many items move with order | stagger / indexed delay |
| Text itself moves | line, word, character, or band subdivision |
| Surface bends, stretches, or crops | parent/child counter-transform |
| UI has states | explicit state machine |
| Scene has depth | DOM 3D, Three.js, or WebGL camera/object keyframes |
Mechanisms can combine, but each one must clarify the idea. Decoration is not proof.
ease: "none".clip-path/mask changes while the same hero surface is also scaling or traveling; use nested reveals after the main move settles.Preserve line boxes, word spacing, readability, and final fit. If text moves internally, move the glyphs or masked bands, not only decorations around the text. Snapshot readable frames.
For stroke growth prefer DrawSVGPlugin, then stroke-dasharray/stroke-dashoffset. For shape interpolation prefer MorphSVGPlugin; convert primitives to paths when needed and split complex silhouettes into simpler parts.
Scale alone is fake depth. Use perspective on a stable parent, transform-style: preserve-3d, z travel, rotation, camera/world motion, occlusion, and layer order when objects cross.
Use one or two diagnostic angles that expose the depth relationship. If angled proof shows no depth crossing, improve z/camera/occlusion.
Keyframe camera position, camera target, object transform, material opacity, shader uniforms, and postprocess intensity through deterministic state. Render from HyperFrames time. Use --ghost because marker boxes cannot see internal canvas motion.
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>
Choose <selector> for the real animated subject. Choose <times> for first frame, proof poses, final-minus-hold, and exact final. Choose <angle> only when depth must be proven.
| Tool | Proves |
|---|---|
keyframes | targets, explicit stops, paths, traces, composed parent/child motion, CSS stops, Anime registration |
--shot | ghosts, route shape, time spacing, DOM 3D projection, focused selector proof |
--layout strip | in-place motion, overlaps, contact, subtle scale/opacity, text waves |
--ghost | canvas, WebGL, shader motion, rendered 3D |
snapshot --at | masks, text readability, full state, final lockup, black/reset tails |
If selector proof looks wrong:
--jsonflat means no explicit middle poses. keyframes means explicit stops exist. motionPath means a route exists. trace means multi-stroke drawing. composed with means child motion inherits parent motion.
Even ghost spacing means constant speed. Clustered ghosts mean slow-in or settle. Large gaps mean fast travel.
A helper-selector shot is not proof. An onion shot over a broken full frame is not proof.
| Failure | Fix |
|---|---|
| endpoint-only | add middle poses, hold peak proof, rerun --shot |
| identity break | keep one element alive, use shared source/final boxes, remove substitute crossfade |
| fake 3D | add z/camera travel, occlusion, angled proof |
| wrong final | add final hold, snapshot final-minus-hold and exact final |
| unseekable runtime | pause autoplay, remove timers, register the instance after the build completes |
| unreadable text | preserve line boxes, reduce displacement, add final hold, snapshot text frames |
Run hyperframes check (it runs lint), hyperframes keyframes, one focused --shot, and snapshots. Confirm first frame, proof poses, final-minus-hold, exact final, subject-owned motion, and no debug overlays.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.
日本語の概要は準備中です。原文の説明を表示しています。
Overlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions. Quotes the rail+embed model from embedded-captions and constraint
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.
日本語の概要は準備中です。原文の説明を表示しています。
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]
日本語の概要は準備中です。原文の説明を表示しています。