Ultimate Motion DesignUMD v0.10.0
English
Menu

Commandes

/umd:go suffit au quotidien. Les autres commandes servent à piloter une étape précise.

CommandePour
/umd:go [ce que tu veux faire]La commande à retenir. Lance l'étape suivante et enchaîne jusqu'à la prochaine décision. /umd:go audit, /umd:go livrer… force une étape
/umd:kickoff [ce que tu veux faire]Configurer ou mettre à jour le projet : brief, profil, format, route, moteur, politique de licences, outils
/umd:storyboard [notes]Écrire le découpage et valider le look sur images fixes avant d'animer
/umd:build [beats ou notes]Construire la pièce, avec des brouillons relus jusqu'à 3 tours
/umd:render · /umd:render draftRendu final, fait deux fois pour prouver le déterminisme, puis analysé · brouillon rapide
/umd:auditAudit incrémental : seul ce qu'un changement peut affecter est revérifié. Il est complet au premier audit, après une mise à jour du plugin, ou si le dernier audit complet a plus de 30 jours
/umd:audit quickVérifications automatiques seulement, sans agent : le moins cher
/umd:audit fullTout revérifier depuis zéro
/umd:audit storyUn seul groupe : story, motion, sound ou delivery
/umd:audit TXT · /umd:audit TXT-01 SAF-01 · /umd:audit blockersUn domaine, des vérifications précises, ou seulement les points bloquants
/umd:fix · /umd:fix blockers · /umd:fix AUD-01Corriger par priorité (bloquants puis majeurs), seulement les bloquants, ou un problème précis
/umd:deliver [nom]Livrer le rendu audité, puis les versions par plateforme demandées
/umd:tokens [jours]Consommation de tokens par commande, et le conseil qui ferait le plus économiser
/umd:doctor · /umd:doctor fixVérifier ou installer les outils
/umd:handoffÉcrire .motion/handoff.md pour reprendre dans une autre session

Toutes ces commandes s'appuient sur une CLI sans dépendance, que tu peux aussi lancer toi-même : node <plugin>/scripts/umd.mjs (sans argument, elle affiche son aide). On y trouve notamment :

  • rendu : capture, still, render ;
  • analyse : analyze (coupes, mouvement, temps morts, flashs, loudness, planche contact), frames (--cuts : 12 images autour de chaque coupe), compare, vmaf, webperf, lint, licenses ;
  • son : mix (ducking, loudness, --backtime pour caler la fin de la musique sur le carton final), hits (les coups finaux d'un morceau), sync (chaque son contre son image), normalize, loudness, captions, burn ;
  • ressources : styles (1 323 styles, prompts et blocs ; styles match choisit d'après le brief), moves (120 techniques nommées), commons (images libres de Wikimedia Commons), sounds (effets et musiques libres), sfx (effets fabriqués sur place), characters (personnages, rigs, mouvements et kits 2D libres), lipsync (formes de bouche depuis une voix) ;
  • suivi : next, status, tokens, estimate (durée d'un rendu à partir d'une image test), adopt (fait passer une vidéo rendue par ton propre pipeline par l'analyse, l'audit et la livraison).

Ce qu'il crée dans ton projet

BRIEF.md                         le brief (écrit par /umd:kickoff)
.motion/
  project.json                   profil, route, moteur, format, rendu, politique de licences, seuils
  storyboard.md                  les beats, les événements, les repères sonores et la ligne « Stills validated » datée
  motion-tokens.json             durées et courbes (format DTCG)
  assets.lock.json               chaque asset avec sa source et sa licence
  styles/                        le prompt du style choisi, avec sa ligne de crédit
  LEDGER.md                      chaque tour de critique : ce qui a été trouvé, changé et mesuré
  stills/                        les images fixes clés
  renders/<id>/                  vidéo, render.json, analysis.json, sheet.jpg, determinism.json, logs
  renders/latest.json            le dernier rendu
  AUDIT.md                       le dernier rapport d'audit
  audits/<date>.json             chaque audit, pour suivre la note dans le temps
  audits/<date>/                 evidence.json, plan.json, parts/ (résultats des auditeurs)
  token-savings.json             tokens évités par les sorties compactes
  handoff.md                     le passage de relais entre sessions
assets/commons/                  les images téléchargées par umd commons
deliverables/                    livrables, avec leur manifeste et credits.txt

Versionne BRIEF.md et .motion/, sauf les rendus, pour garder l'historique des notes. LEDGER.md et le rapport d'audit montrent le soin apporté : tu peux les joindre à une livraison client. /umd:kickoff ajoute à ton .gitignore les rendus, les logs d'audit et le compteur de tokens.

La CLI umd

Toutes les commandes s'appuient sur node <plugin>/scripts/umd.mjs, sans dépendance. Tu peux la lancer toi-même ; c'est aussi ce que les agents utilisent.

Setup
  next                                The next step for this project (what /umd:go runs), from local files only
  doctor [--fix] [--blender] [--rhubarb]         Check FFmpeg, Playwright, Chromium and the route's tools (--blender: Blender and the GPU Cycles sees); --fix installs what it safely can
  detect                              Guess engine, route and profile from the current folder
  init [--force]                      Create .motion/ (project.json, storyboard, tokens, assets lock) and BRIEF.md from templates
  rules [domain|group...]             Build rules of the domains that apply to this project (compact)
Make
  styles match [words] [--project p] [--limit 6]    Rank the library against BRIEF.md and project.json: looks and blocks, with reasons
  styles <words> [--project promo|presentation|explainer|social|logo|film|web|3d] [--mood m] [--medium m] [--format 9:16]
         [--tier 2] [--kind style|prompt|block|component] [--source lemo|oscar|mg|opus|hf]   Search 1323 styles, prompts and blocks (no tokens)
  styles get <id>                                   Copy that style prompt (or block card) into .motion/styles/
  moves <words> [--family transitions|camera|type|...]   120 named motion techniques (match cut, whip pan, split-flap…)
  commons <words> [--allow-sa] [--limit 12]         Wikimedia Commons media under PD, CC0 or CC BY (BY-SA on request)
  commons get "File:Name.jpg" [--dir assets/commons] [--width 1920]   Download it and record it in assets.lock.json
  still <html|url> --at 0,1.5 [--out dir] [--width W --height H] [--hero "#tv"] [--hero-min 170] [--seek-check]
        Key stills on virtual time; measures the hero's width (an element, or window.umdHero(t) for canvas/WebGL) and
        checks that each frame drawn cold equals the same frame drawn in sequence
  capture <html|url> --out f.mp4 [--fps 30] [--duration s] [--width 1920 --height 1080] [--from s]
          [--draft] [--transparent] [--format mp4|webm|mov|gif|png] [--audio f] [--seed n] [--subframes 16 --shutter 0.5]
          Deterministic HTML → video; --subframes averages that many sub-frames per frame over the shutter (motion blur)
  adopt <video> [--draft]                         Make a video rendered by your own pipeline the latest render (analysis, audit, deliver apply)
  render [--draft] [--twice] [--no-analyze] [--engine eevee|cycles]  Render the project (project.json "render"), then analyze; --engine reaches a
          Blender command as UMD_ENGINE (default: render.engine)
  mix --voice v.wav --music m.wav [--sfx a.wav@1.2 ...] --out mix.wav [--duck 9] [--lufs -14] [--length s]  (length defaults to duration_s)
      [--backtime | --hit s --card s | --music-start s]   Back-time the music: its own ending lands on the end card, one continuous piece
  hits <music>                                    Strong attacks near the end of a track (candidates for its final hit)
  sounds <words> [--music] [--max 8] [--cc0]      Free sound effects (Freesound, Wikimedia) or music (Jamendo) via Openverse: CC0, CC BY, public domain only
  sounds get <id> [--dir assets/audio]            Download as 48 kHz WAV, record author, licence and credit line in assets.lock.json
  characters [words] [--dims 3d|2d] [--style anime|film|low-poly|flat…] [--age child|senior…] [--face visemes|full] [--kind pack|avatars|generator|rig|motion|kit2d|code|tool] [--route blender|threejs|html]
             Free characters, rigs, animation clips and 2D kits for commercial work (catalogue + live lists: Mesh2Motion, KayKit, Open Source Avatars)
  characters get <id> | info <id> | add <file> --id <entry> [--licence --author --url]   Download (or record a manual download) with its licence in assets.lock.json
  lipsync <voice.wav> [--text script.txt] [--fps 30]   Mouth shapes A–H, X per frame (Rhubarb, MIT) for character.py and the 2D puppet
  sfx [<kind>] [--dur s] [--seed n] [--gain dB]   Synthesise an effect (whoosh, swipe, riser, impact, subdrop, click, tick, pop, chime, shimmer, glitch, roomtone)
  normalize <in> <out> [--lufs -14] [--tp -1]      loudness <file>
  captions <words.json> --out subs.ass|srt|vtt [--style karaoke|pop|line] [--max-chars 32] [--width --height --font --color --highlight]
  burn <video> <subs.ass> --out f.mp4             Burn captions in (libass)
Check
  analyze <video> [--out dir] [--loop]            Probe, cuts, freezes, dead air, black, flashes, loudness, contact sheet; --loop checks the seam
  frames <video> --at 1,2.5 | --every 2 | --cuts | --sheet [--out dir] [--width 960]   (--cuts: 12 frames around each cut)
  sync <video> [--timing timing.json | --cues storyboard.md] [--tolerance-ms 45]   Do the sound hits land on their visual events?
       (.motion/timing.json, the master clock, when it exists; else the storyboard's "## Sound cues")
  compare <a> <b>                                 Frame-hash equality + SSIM       vmaf <encode> <master>
  lint [dir]   licenses   webperf <url>   captions-check <subs> <words.json>
  evidence [--date D]                             All automatic checks for the audit + statuses of auto criteria
  plan [scope...] [--incremental]                 Criteria left for the auditors      assemble [--date D]      status
Deliver and account
  deliver [--name n]                              Copy the audited render to deliverables/ (refused while a blocker is open)
  tokens [--days 30] [--session id] [--json]      Token use per /umd:* command, from the session transcripts
  run <label> "<command>"                         Run a command, keep the log on disk, print a compact summary
  estimate --frames N [--parallel P] -- <command rendering one frame>   Time one frame, multiply: render time before committing
  version                                         Plugin version
a path to show: relative inside the project, absolute outside it (never ......AppData…)
everything after a lone "--" is a command line for umd estimate, never parsed as options
boolean flags never take a value, so `umd capture --draft page.html` keeps page.html as the input
"music" is a switch only for `umd sounds --music`; `umd mix --music file.wav` takes a file
Compact output for large results: full JSON on disk, summary on stdout.
the per-second motion timeline stays in analysis.json; stdout gets its shape
---------- audit pipeline ----------
A film rendered outside umd (the project's own scripts, Blender, After Effects…) becomes the project's latest render,
so analyze, the audit and deliver judge it like any other. It never replaces the checks: it lets them run.