Communitygithub.com

kohryan/unrealmotion

Créez des vidéos explicatives animées silencieuses à partir d'une invite, en utilisant des références ImageGen, une reconstruction Three.js réelle, un mouvement causal et un rendu MP4 déterministe. Idéal pour les explications de processus, les coupes, le réassemblage, les films produits, la typographie cinétique et la visualisation de données ; pas pour le montage uniquement basé sur des séquences.

Qu'est-ce que unrealmotion ?

UnrealMotion est un outil de création vidéo basé sur des agents d'IA qui transforme des invites textuelles en vidéos MP4 explicatives entièrement animées et en scènes Three.js sources. Il fonctionne localement, sans nécessiter de modèle de langage externe, de clé API ou de service vidéo payant. Le processus commence par l'inférence du sujet, de l'action et du message à partir de l'invite, puis utilise des références ImageGen pour guider la reconstruction de géométries 3D réelles dans Three.js. L'agent construit ensuite un plan de production détaillé, incluant la conception de la scène, les trajectoires de caméra continues, les transitions et les animations, avant de rendre la vidéo finalisée au format MP4. L'outil prend en charge les explications de processus, les coupes, le réassemblage, les films produits, la typographie cinétique et la visualisation de données, et offre un contrôle précis via des commandes en ligne de commande pour la création, l'aperçu, l'assurance qualité et le rendu. Il intègre un catalogue de références de 4 146 entrées pour la consultation de code et un catalogue de métadonnées NVIDIA pour les actifs industriels, garantissant une production riche et informée.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kohryan/unrealmotion-skill/tree/HEAD

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait unrealmotion ?

Livrez un MP4 lisible et la source de la scène à partir de l'invite de l'utilisateur. L'agent de codage actif est le moteur créatif ; les scripts fournis récupèrent les références, servent la scène, capturent les images et encodent la vidéo. Aucun modèle de langage, clé API ou service vidéo payant n'est nécessaire. Il s'agit de Three.js, pas d'Unreal Engine.

Résolvez <skill> vers le répertoire contenant ce fichier ; exécutez les commandes des packages à cet endroit. Utilisez un nouveau répertoire <project> pour chaque production, en préservant le travail précédent. Si des dépendances manquent : npm ci et npx playwright install chromium. Vérifiez avec node <skill>/scripts/unrealmotion.mjs doctor. Node 22+, Python 3.10+, FFmpeg et ffprobe sont requis ; les packages Python ne sont nécessaires que pour récupérer le code complet du jeu de données.

De l'invite au film

  1. Déduisez le sujet, l'action, le message souhaité, la langue, la durée, le format et le réalisme de la demande. Pour les explications, lisez imagegen-threejs.md et explainers.md. Utilisez ImageGen → modèle Three.js réel → vidéo silencieuse, en commençant par --mode explainer : par défaut 60 secondes, 1080×1920, 30 images/s. Conservez le style de coupe pastel simple établi, sauf si l'utilisateur le modifie explicitement. L'invite détermine le sujet, le modèle, l'histoire et la recette de mouvement ; une démo fournie n'est pas le contenu par défaut. Les présentations courtes conservent 12 secondes, 1920×1080 à 60 images/s. Respectez les formats et les actifs demandés. Procédez avec des hypothèses raisonnables ; pas de questionnaire de modèle/d'approbation requis.
  2. Lisez art-direction.md et motion-library.md. Pour les nouvelles explications, lisez dynamic-story.md : lisez continuous-camera.md et utilisez un monde connecté avec un véritable itinéraire de caméra 3D continu, un rythme de lecture calme et compréhensible et 2 à 4 références ImageGen cohérentes pour des contextes explicatifs distincts. Lisez text-motion.md pour les copies dynamiques et data-motion.md lorsque les quantités aident à l'explication. Choisissez une base de scène et un profil de mouvement, puis rédigez un plan.json compact : géométrie définissant l'identité, palette de matériaux, minutage des plans, actions du sujet, trajectoire de la caméra, transitions, actifs locaux et provenance. Un adjectif tel que « réaliste » nécessite des preuves concrètes : proportions, réponse de surface, contact, lumière cohérente et mouvement.
  3. Recherchez dans le catalogue HF de 4 146 entrées fourni, en utilisant des termes anglais de sujet/matériau/mécanisme. Lisez dataset.md pour récupérer 1 à 3 exemples de code pertinents lorsque des détails structurels seraient utiles. Inspectez la construction HTML/JS réelle, pas seulement les titres. Citez les identifiants de scène dans plan.json. Ne copiez pas les traces de raisonnement. Le jeu de données est un corpus de référence, pas un modèle entraîné ou affiné. Pour les actifs industriels/objets avec un stockage limité, lisez simready-imagegen.md : recherchez dans le catalogue de métadonnées NVIDIA de 2 677 entrées et récupérez uniquement une vignette/licence budgétisée pertinente. Cela alimente les références d'apparence ImageGen et la reconstruction du maillage d'origine ; ne téléchargez jamais l'ensemble du corpus USD/texture. Pour le démontage/réassemblage, lisez aussi reassembly.md.
  4. Créez le projet. Pour une explication, générez et inspectez le lot de références ImageGen spécifique à l'invite, spécifiez des parties nommées stables dans reconstruction.json, et construisez des volumes Three.js réels dans model.mjs. Enregistrez les invites/provenances exactes dans asset-plan.json. Rédigez storyboard.json avec la question, la progression causale, l'action/copie par temps, la caméra 3D et la résolution. Conservez une hiérarchie de maillage par objet physique à travers les coupes, le réassemblage et le fonctionnement ; utilisez des racines de scène nommées persistantes pour les contextes connectés, avec des placements mondiaux et un cameraPath continu. Liez chaque temps à ses identifiants de référence réels. Pas de substitut d'image raster/recadrée. Pour les présentations, rédigez scene.mjs directement. La CLI est un point de départ de création, pas un interpréteur d'invite sémantique ; un titre changé sur un modèle non lié n'est pas une complétion.
  5. Prévisualisez, parcourez, effectuez l'assurance qualité et inspectez les images représentatives à la résolution native. Suivez quality.md : vérifiez la fidélité, la mécanique/anatomie, les matériaux, le cadrage, la copie, les transitions et le mouvement significatif dans la seconde moitié. Corrigez les échecs et répétez les vérifications concernées. Enregistrez un review.json véridique, lié au hachage source.
  6. Effectuez le rendu avec --final, vérifiez les métadonnées et livrez le MP4, le projet modifiable et une note de vérification concise. Une demande de film fini autorise l'exportation locale. Si l'utilisateur demande uniquement un aperçu, livrez-le à la place. Ne remplacez pas le HTML source ou une feuille de contact par une vidéo demandée.

Commandes locales

node <skill>/scripts/unrealmotion.mjs templates
node <skill>/scripts/unrealmotion.mjs create <project> --prompt "Film kamera titanium, lensa merakit presisi" --template optical-studio --motion precision-assembly
# Rédigez project/scene.mjs, project/project.json et project/plan.json pour le brief.
node <skill>/scripts/unrealmotion.mjs preview <project>
node <skill>/scripts/unrealmotion.mjs qa <project>
# Inspectez output/qa/contact-sheet.png ET les PNG d'images en résolution native, puis écrivez review.json.
node <skill>/scripts/unrealmotion.mjs render <project> --final
node <skill>/scripts/unrealmotion.mjs probe <project>/output/video.mp4

--width, --height, --duration, --fps, --supersample sont des options de création. Les nouvelles explications utilisent des histoires de version 2 avec --pace calm --assets multi ; choisissez --pace dynamic ou --assets single lorsque le brief le justifie. Les projets existants de version 1 restent pris en charge. Utilisez --output <new.mp4> pour préserver une exportation ; --force remplace une sortie explicitement choisie. Un --audio <local.wav> optionnel ajoute du padding/tronque une piste audio fournie à la vidéo. N'ajoutez pas de narration ou de musique synthétique sauf demande explicite. L'aperçu imprime une URL de bouclage avec lecture/pause et défilement d'images ; ce n'est pas un déploiement public.

La base de l'explication par défaut est imagegen-explainer : référence spécifique à l'invite → modèle Three.js → histoire → vidéo. water-system-explainer est l'étude de mouvement SVG antérieure uniquement. Les bases de présentation sont optical-studio, architectural-light, kinetic-editorial, pelagic-bloom et mechanical-reassembly. Profils de caméra de présentation : cinematic-orbit, precision-assembly, macro-dolly, continuous-flow, editorial-spring. Les explications choisissent un mouvement de suivi du flux, d'opération en coupe, de réassemblage, de seuil/réponse ou de comparaison avec un chemin de caméra créé. Les recettes ne changent pas le style établi. Voir motion-library.md.

Propriétés de production non négociables

  • Chaque état visible dérive de l'image/temps demandé, y compris les shaders, particules, poses de rig, changements de matériaux et copie. Préservez createScene(config) → {update(seconds, normalizedTime), draw(), inspect()} ; voir runtime.md. Pas de rotations cumulatives, de pas de physique, d'échantillonnage aléatoire pendant les mises à jour ou d'enregistrement d'écran en temps réel pour la livraison finale.
  • Conservez les actifs locaux, les packages épinglés, la génération de scène avec graine, un pipeline de couleurs, une échelle physique cohérente et des identités d'objet stables. Le moteur de rendu bloque les requêtes externes. Chargez les modèles, textures et polices avant l'état de préparation ; les actifs manquants sont des échecs.
  • Modélisez les volumes et les attaches réels. Utilisez des chanfreins, des parties cohérentes, des pivots corrects, une rugosité/métallisation justifiée, des ombres de contact douces et des réflexions contrôlées. Rendez les surfaces transparentes avec soin. Un tas de primitives, une anatomie en bâton, des pièces flottantes, des rigs cassés ou un objet générique en rotation ne satisfont pas à un brief détaillé.
  • Pour les humains photoréalistes, les animaux, les objets de marque ou les scènes critiques pour la ressemblance, utilisez des modèles, textures et actifs riggés appropriés sous licence/fournis par l'utilisateur lorsque la géométrie procédurale ne peut pas répondre au brief. Enregistrez la source/licence. Inspectez l'attache, les articulations, la silhouette, le contact et l'occlusion tout au long de l'action. Ne remplacez pas silencieusement le réalisme par des acteurs géométriques simples. Indiquez clairement toute limite de fidélité des matériaux.
  • L'action du sujet doit porter l'histoire : les mécanismes opèrent, la matière s'écoule, les pièces s'assemblent, la structure se déploie ou l'information se transforme. L'orbite de la caméra et les particules dérivantes seules sont insuffisantes. Évitez les transformations rigides à vitesse constante ; utilisez l'accélération, le suivi, le décalage lorsque cela est motivé et les chemins de caméra à vitesse continue.
  • Une explication doit répondre à sa question par une séquence visuelle complète. Une durée plus longue, des légendes supplémentaires et une bobine de démonstration ne remplacent pas la cause/effet, l'explication lisible, une illustration/modèle approprié et des transitions de scène cohérentes. Respectez les demandes silencieuses ; n'ajoutez pas de configuration audio.
  • Faites correspondre la complexité et le style de la référence. Préférez une géométrie simple et cohérente, des surfaces pastel et des coupes nettes pour ce flux de travail ; n'inventez pas une nouvelle direction artistique et n'ajoutez pas de détails décoratifs. ImageGen guide l'apparence ; il ne récupère pas la CAO cachée, les dimensions exactes ou les métadonnées de simulation NVIDIA.
  • L'assurance qualité automatisée vérifie les propriétés techniques. Elle ne certifie pas la beauté, le photoréalisme, l'anatomie précise ou l'exactitude physique. Marquez les vérifications visuelles comme réussies uniquement après avoir inspecté leurs preuves. Signalez ce qui a été réellement testé.

Moteurs existants optionnels

Par défaut, utilisez le moteur de rendu Three.js fourni. Pour un projet Remotion ou HyperFrames existant d'un utilisateur, lisez engine-interop.md et conservez son contrat natif d'image/recherche. Leurs exécutions sont optionnelles, sous licence indépendante, et ne sont pas fournies ou testées simplement en les mentionnant. Les études sources derrière cette compétence, les révisions exactes et les distinctions de licence se trouvent dans source-study.md.

Skills associés