Communitygithub.com

Motion Doctrine (Gateway)

Loi de mouvement de haut niveau qui transforme une vidéo multi-scènes en UN unique mouvement de caméra continu, au lieu d'une pile de diapositives animées indépendamment.

Qu'est-ce que Motion Doctrine (Gateway) ?

Cette compétence définit la loi de mouvement globale qui régit la composition de toute animation ou vidéo HyperFrames. Elle remplace les directives de mouvement génériques et garantit que les scènes ne sont pas animées de manière isolée, mais qu'elles forment un seul flux cinématographique continu. La doctrine couvre des concepts essentiels 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 d'échelle Z), le courant directionnel, les éléments porteurs, la motion causale, la porte de couture (enforcement build-gate), l'interdiction des oscillations inutiles, la pause avant le climax, et les routes de mouvement soutenu. Elle fournit également des liens vers des compétences techniques de niveau inférieur (comme 'cut-the-curve' pour la transition, 'oversized-cursor' pour les actions pilotées par curseur, 'seam-craft' pour les mécanismes de rendu). L'ordre de création est défini: d'abord le registre vectoriel (ledger.json), puis l'estampillage des coutures maîtresses, suivi des routes de mouvement soutenu, des porteurs et des causes, et enfin la vérification via le script seam-gate. Cette compétence est destinée à être utilisée AVANT toute autre composition d'animation, et ses règles prévalent sur toute directive de mouvement générique.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Drama2557/4RealDigital-Video-Studio/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 (Gateway)

Lisez ceci avant de composer une animation. Cela décide CE qui se passe à chaque couture et comment chaque scène se comporte ; les compétences techniques l'implémentent. Ces règles remplacent les directives de mouvement génériques. L'échec que cela évite : des scènes créées de manière isolée — l'élan de l'œil meurt à chaque coupure, et les scènes oscillent sur place entre l'entrée et la sortie.

Carte des routes

Décision (cette compétence)Compétence d'implémentation
Choix de transition de couture + paramètres + codecut-the-curve §1–5 (le catalogue)
Cascades d'entrée de texte / élémentcut-the-curve §6 (entrée en cascade)
Repositionnement de groupe dans la scène (sans coupure)cut-the-curve §7 (courbe de nudging)
Action / lancement de scène / ignition de morph pilotés par curseuroversized-cursor
Mécanismes de rendu de couture / garde de flash blancseam-craft
Travail de lancement de produit / explicatif / légendessuperpose text-beat-economics, brand-faithful, captions-overlay par-dessus la compétence en amont

Ordre de création : registre vectoriel (ledger.json) → ESTAMPER les coutures maîtresses à partir de celui-ci (scripts/seam-stamp.mjs --ledger ledger.json --write index.html) → route de mouvement soutenu par phase → porteurs et causes → composer les builds → VÉRIFIER (scripts/seam-gate.mjs). N'écrire à la main que les morphs / match-cuts de niveau A ; les coutures estampillées passent la porte par construction.


Partie 1 — La Loi de la Couture

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, coupure en plein mouvement des deux côtés.

  1. Axe — x reste x, y reste y, Z reste Z. Ne jamais échanger d'axes lors d'une coupure.
  2. Direction — ne jamais inverser. Sur Z, 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 en recul répondue par une entrée en croissance depuis une petite taille est un vecteur inversé — la violation la plus courante, car grandir depuis une petite taille est l'entrée d'élément par défaut.
  3. Vitesse — vitesse initiale d'entrée ≈ vitesse finale de sortie, via des easings en miroir (sortie power4.in + entrée power4.out, même distance et durée ; le côté entrant récupère ≥50% du chemin notionnel). Mécanique dans cut-the-curve.
  4. Phase — la coupure atterrit en plein mouvement des DEUX côtés. Se stabiliser au repos avant la coupure, ou démarrer du repos après celle-ci, est un temps mort.

Le Courant

Chaque film choisit UNE direction dominante (par défaut : GAUCHE). Chaque couture 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 précède
Z vers l'avant (zoom-traversée)pousser plus profondément dans la même pensée
Z vers l'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 exécuter des coutures 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 couture : heure de coupure, 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 de manière statique avant tout échantillonnage d'exécution.

Porteurs

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

Mouvement Causal

Enchaînez les mouvements pour que chaque déplacement soit visiblement lancé par le précédent : clic → compression → détente du ressort → 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 proportionnelles à la masse impliquée : les grands éléments rebondissent plus lentement, les petits claquent.
  • Une force est une licence pour changer de direction ; un changement de direction non causé est un ping-pong.

La Porte de Couture (porte de build — exécutez le vérificateur, sortie 0 ou la couture 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 couture : cohérence de la ligne du registre, sortie encore en mouvement à la coupure, entrée en plein vol (jamais au repos), direction mesurée = direction du registre, correspondance de vitesse entrée/sortie (AVERTISSEMENT), chevauchement zéro (un côté visible par image — la coupure n'est pas une dissolution), 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 les conflits de signe), et continuité du rectangle porteur avec l'échelle ancêtre incluse. Utilisez seam-gate.mjs probe --t <coupure> pour trouver les vrais sélecteurs de porteur de chaque couture lors de la rédaction du registre.

Règles que le script ne peut pas vérifier — toujours à votre charge :

  1. Les modifications rouvrent la couture. 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 — réexécutez 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 tenir dans un créneau. Une régénération de VO rouvre ses coutures.
  3. Piège du clip-gating (la cause habituelle d'un ÉCHEC de chevauchement zéro) : un clip dont data-start précède son interpolation d'entrée est découvert à son opacité initiale — définissez autoAlpha: 0 initial ET data-start = l'heure de la coupure, jamais plus tôt.

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

Pas d'oscillation inutile

Les boucles sinusoïdales inactives (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 de l'oscillation. Chaque phase entre l'entrée et la sortie est détenue par l'une de ces routes (nommez la route dans le plan) :

RouteCe que c'est
Révélations échelonnéesRetenez le contenu ; distribuez-le sur les temps de narration — le cadre continue de gagner de l'information (par défaut pour ≥2 groupes de contenu)
Caméra avec intentionUn chemin d'échelle + panoramique cartographié : établir le plan large → voyager → arriver sur le sujet
Vie UI séquencéeLe produit se comporte dans le temps : la progression avance, l'étape se met en surbrillance, les comptages défilent
Séquences animéesLes éléments exécutent un temps : une carte se classe dans une pile, un objet est glissé, un résultat s'assemble
Action pilotée par curseurUn curseur surdimensionné guide l'œil vers un déclencheur ; son CLIC déclenche le temps suivant (oversized-cursor)

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

Calme avant le point culminant

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

Intention de synchronisation

  • Entrée unique ≤ ~800 ms ; un buildup plus long = un décalage de plusieurs éléments, pas un seul élément lent.
  • Sortie ≈ 75 % de l'entrée. Exception : cut-the-curve inverse cela (entrée ~127 % de la sortie).
  • Décalage total ≤ 500 ms ; avec 8+ éléments, resserrez le délai par élément ou décalez les premiers.
  • Easings interdits : bounce.out / elastic.out. Le dépassement d'entrée back.out(1.4–1.7) est acceptable.
  • Les éléments similaires partagent une intention d'easing+durée — jamais une paire unique par élément.

Vocabulaire de transition

Utilisez seulement 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 morphs d'élément partagé écrits à la main (intent: morph) ne comptent pas dans le budget.


Anti-Motifs

À ne pas 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ènesCouper la courbe 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 au repos après une coupureEntrer ≥50 % du chemin notionnel
Zoom inverse en sortie → entrée en croissance depuis une petite taille (ou poussée → rétraction surdimensionnée)Faire correspondre le signe de la vitesse d'échelle (Porte de Couture 7)
L'introduction pop-in de la scène entrante sous un passage en ZMaintenir son cadre d'ouverture composé, ou faire correspondre le signe
Oscillation inutile / respiration / flottement pour remplir le tempsAttribuer une route de mouvement soutenu ; ou ajouter de l'histoire
Changement de direction sans causeDépenser une force, ou garder le courant
Vecteurs réservés utilisés comme variétéPar défaut, utiliser le courant ; dépensez-les pour le sens
Réaction quelques images après sa causeMême cadre d'ignition
L'action passe directement au résultatPlanifier le calme avant le point culminant (0,3–0,75 s)

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Drama2557/4RealDigital-Video-Studio

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 #13 (captions overlay, keep-out band retired) from the product-launch-video scene agent. Applies ON TOP of embedded-captions.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

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]

Drama2557/4RealDigital-Video-Studio

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet `anchor` rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill.

Drama2557/4RealDigital-Video-Studio

Use the HyperFrames CLI development loop: init, add, catalog, capture, lint, check, snapshot, compare, grade-compare, preview, play, present, beats, keyframes, single or batch render, publish, cloud, cloudrun, feedback, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, auth, tts, and remove-background. Also use when diagnosing build or render failures. validate, inspect, and layout are deprecated aliases; use check. Covers local, HeyGen-hosted cloud, AWS Lambda, and Google Cloud Run rendering.

Drama2557/4RealDigital-Video-Studio

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Also covers Tailwind projects and the STORYBOARD.md / SCRIPT.md plan formats. Read before writing composition HTML.

Drama2557/4RealDigital-Video-Studio

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

Drama2557/4RealDigital-Video-Studio

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

Drama2557/4RealDigital-Video-Studio

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

Drama2557/4RealDigital-Video-Studio

A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI animation (scroll, cursor, callouts), or fusing a real image's geometry into a chart. Usually under 10s (up to ~30s), no narration or live-action subject; renders to MP4 or transparent overlay. Longer / narrated / multi-scene → /general-video. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR topic explainer (/faceless-explainer). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

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.

Drama2557/4RealDigital-Video-Studio

Author a HyperFrames slideshow — a presentation, pitch deck, or interactive deck with discrete slides, fragment reveals, branching, hotspot navigation, and built-in presenter mode with speaker notes; also converts an existing page into a deck. Output is a navigable deck, not a rendered MP4. If the user didn't explicitly ask for a slideshow, confirm before authoring. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on "graphic overlays", "on-screen graphics", "package / dress up my video". Not plain subtitles (/embedded-captions). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Agent skill / project related to launch or product demo video: Drama2557/4RealDigital-Video-Studio

Skills associés