MotionKit
Racine du kit : le dossier parent de ce skill, un niveau au-dessus (appelez-le $KIT ; si le skill a été lié symboliquement, résolvez le lien — par ex. ~/.claude/skills/motionkit → <clone>/skill, donc $KIT = <clone>). Il est distillé à partir de 60 vidéos de référence sélectionnées par l'utilisateur ; suivez-le plutôt que les réglages génériques par défaut.
Non-négociables (préférences permanentes de l'utilisateur)
- Pas de coupures soudaines. Chaque changement de scène est porté par quelque chose des deux côtés de la couture (
$KIT/grammar/01-continuity.md). Maximum ⅓ des jonctions peuvent être des coupures franches, et seulement sur un temps fort. - Liquide, fluide, arrondi. Easing de sortie longue traîne, squash/stretch au contact, changements de matériau avant la forme, flou comme colle (
02-motion-easing.md). - Ne jamais générer ou synthétiser de musique. Utilisez la piste de l'utilisateur. Si aucune n'est fournie, demandez-en une. Le kit ne contient pas de musique.
- Caméra décidée par le contenu (tours 3–4) : planifiez un parcours varié (jamais la même direction deux fois de suite : camion G/D, piédestal haut/bas, diagonales, poussées, tirages, arrêts) et alternez les temps de caméra avec les temps d'éléments où des éléments finis interagissent sous une caméra fixe ; synchronisez les événements avec la musique (
sync_check.pyseuil ≥ ×1.35 ;beatSync()pour les pistes ambiantes, grille de temps pour les pistes rythmiques). Films guidés par le texte → caméra suiveuse qui GLISSE (splinee:"glide"à travers les cibles de mots, easing en cloche entre les régions — jamais de sauts par mot) ; films guidés par les éléments → caméra quasi fixe avec uniquement des mouvements motivés et ensemencés (camSeed,seed) — jamais de déplacement pour lui-même, jamais de motif répété. Règle précédente, toujours valable pour les films textuels : (tour 2 : "c'est juste la perspective, la caméra ne bouge pas") : caméra suiveuse sur le mot actif/protagoniste à travers un monde plus grand que le cadre, voyage porte-drapeau entre les stations pour les histoires d'objet unique, couche de référence parallaxe toujours ($KIT/grammar/08-camera.md§ v3,$KIT/research/camera-notes.md, primitives §19–20). Aussi : (l'utilisateur a qualifié son absence de "DÉFAUT MAJEUR MAJEUR MAJEUR MAJEUR") : construisez chaque film comme un monde 3D vu à traverscamera-rig.js; caméra en mouvement ≥ 65 % des images (références : médiane 77 %, mesurée avecresearch/camera_motion.py) ; les légendes chevauchent le monde, les pauses continuent de voyager, rythme pause-et-balayage, ≥ 3 couches de profondeur avec parallaxe, profondeur de champ, dérive stabilisée, flou de mouvement sur les balayages ($KIT/grammar/08-camera.md). - Niveau de finition (
$KIT/grammar/09-polish-bar.md) : lueurs serrées uniquement (pas de halos, jamais d'échelle sur un élément lumineux, pas de grands filtres de flou SVG — dégradés + grain) ; les morphs de conteneurs sont en géométrie SVG pour que les coins restent arrondis à chaque image (pas de révélations par clip-path) ; l'interface textuelle arrive depuis la profondeur/le flou doux — pas de pop à l'échelle, pas de mise en page autocollante inclinée ; chaque objet plat reçoit ombre + lueur de bord + ombre de contact. - Éléments et polices professionnels : construisez les pièces UI/3D à partir de
$KIT/elements/(voirelements/showcase/etresearch/element-notes.md) ; typographie à partir de$KIT/fonts/FONTS.md— jamais de polices génériques par défaut. - Finition professionnelle : un accent par ligne, emphase en italique-serif ou saut de poids, chaque image a ≤ 3 éléments focaux, une constante persistante (toile, titre, horizon ou brouillard) à travers le film.
- Reels d'abord sauf indication contraire : 1080×1920, texte dans la bande 168–1330 px, ≤ 5 mots par ligne, rien en dessous de 28 px, l'image 0 est l'accroche (jamais noir, jamais un logo).
- Soyez efficace en tokens : un fichier de scène par chapitre (ou un seul pour un morph continu entier), ne prenez en instantané que les changements d'état.
Flux de travail
- Brief (court). Sujet/marque, message, format, durée, le fichier musical. Ne demandez que ce qui manque ; un tour.
- Choisissez un style depuis
$KIT/styles/STYLES.md(le tableau en bas fait correspondre les briefs → styles). Lisez cette fiche complètement ; ouvrez 1–2 de ses notes de référence dans$KIT/research/video-notes/pour les détails. - Analysez la musique :
npx hyperframes audio <piste> --only kind,bpm,beats,downbeats,sections,onsets --json. Rythmique → grille de temps (beat(n),bar(k), primitives §1). Ambiante → chapitres sur les limites de section, événements héroïques sur les attaques les plus fortes (--threshold 0.3). - Planifiez dans un tableau : chapitres × (fenêtre temporelle, porteur vers le suivant, état de l'objet, légende, mouvement de caméra). Nommez le porteur et le mouvement de caméra pour chaque couture ; si vous ne pouvez pas, reconcevez la couture. Disposez les chapitres comme des lieux dans un seul monde 3D.
- Construisez avec HyperFrames (chargez d'abord
/hyperframespour le contrat). Commencez par l'échantillon le plus proche (v2 = avec caméra) :$KIT/samples/a-ember-lumen(S1),b-morph-nook(S2),c-neon-aura(S3),d-saas-tally(S4) —cp -Rle vers le nouveau projet, puis réécrivez. Utilisez les blocs de$KIT/primitives/PRIMITIVES.md. Placez la palette + polices dans les variables racinedata-composition-variables. - Vérifiez :
npx hyperframes check --json 2>/dev/null(stderr est bruité) → corrigez les erreurs, pesez les avertissements →npx hyperframes snapshot --at <chaque changement d'état + mi-balayage> -o .snap/x→ lisez la feuille de contact → corrigez (zoomez sur les coins et les lueurs :snapshot --zoom). Passez en revue07-engineering-pitfalls.mdet la liste de contrôle09-polish-bar.md. Après le rendu, mesurez le mouvement de la caméra :python3 $KIT/research/camera_motion.py <dossier-avec-mp4> out.json— objectifmoving_frac≥ 0.65 (quartile inférieur des références ; médiane 0.77). - Rendu :
npx hyperframes render -o <sortie>.mp4. Ouvrez l'aperçu Studio avant un rendu de livraison lorsque l'utilisateur révise.
Références rapides
- Porteurs (choisissez 3–5 par film) : élément-devient-monde · zoom-à-travers · morph de forme · objet guide · une carte plusieurs états · iris · inondation de couleur · fouet de flou · caméra de monde continu · mot ancré · rime de forme · porter-à-travers · dissolution de particules · fondu moyen.
- Palette d'easing : arrivée
expo.out/power4.out0.5–0.9 s · sortiepower3.in(40–50 % de l'entrée) · caméra/morphpower2.inOut· ressort premiumback.out(1.4)· linéaire uniquement pour orbite/rotation/progression. - Typographie : flou à l'entrée par mot (pas de translation) · lecture gris→encre · machine à mots · pilule de surbrillance de mot-clé · accent italique-serif · icône en ligne dans la phrase.
- Formes narratives : problème(sombre)→révélation→caractéristiques→CTA · chaos→ordre · un protagoniste plusieurs états · invite→résultat · manifeste avec mot ancré · micro-boucle.
Développer le kit
Lorsque l'utilisateur ajoute de nouvelles vidéos de référence : réalisez des feuilles de contact (horodatées, échantillonnage 0.33–1 s) + bandes à 10 ips sur les transitions, écrivez une note par vidéo dans research/video-notes/, ajoutez des lignes à research/INDEX.md, et intégrez les nouveaux schémas dans les fichiers de grammaire/style. Lorsqu'une construction enseigne un nouveau bug ou primitive, ajoutez-le à 07-engineering-pitfalls.md / PRIMITIVES.md.