Vidéo explicative 3D
Livraison complète, sans que l'utilisateur ait à demander : out/<slug>.mp4 (se termine avec la fermeture de la marque) +
thumbs/<slug>-1.png et -2.png + out/<slug>-legende.txt (légende de la publication avec sources et hashtags).
Sur le PC de l'utilisateur, la commande npm run expliquer copie aussi tout dans Google Drive
(G:\Mon Drive\Scientia\Posts\<date> · <slug> · <titre>\ : video.mp4, thumb-1/2.png, legende.txt, sources.txt).
Si "Je n'ai pas trouvé le Drive" apparaît, montrez à l'utilisateur les commandes de montage que le script imprime.
L'utilisateur ne fait que taper le sujet ; ne vous arrêtez pas en cours de route pour demander ce que vous pouvez décider seul.
RÉFÉRENCE DE QUALITÉ (décision de l'utilisateur, 16/10/2026) : la vidéo sur le paiement par approche.
videos/approche/script.json + src/explicatif/videos/Approche.tsx. Lisez les DEUX avant de
commencer et copiez la recette de references/reference.md. Les vidéos faites dans le "standard Ludificando"
(fond gris avec étagères, flou, nombreux personnages, 80–90 s) ont été REJETÉES — n'y revenez pas.
Ensuite lisez references/crochets.md (avant le script) et references/style.md + references/bibliotheque.md
(avant les scènes). references/ludificando.md est juste une source d'idées, pas une règle.
1. Rechercher (obligatoire)
- Tout ce qui est actuel (loi, nombre, fonction, délai) provient d'une recherche web faite MAINTENANT, dans 2+ sources fiables (Agência Brasil, Sénat/Chambre des députés, IBGE, g1, Folha…). Rien de mémoire.
- Notez les sources dans
sourcesdu script. Si les sources divergent, utilisez la plus officielle et mentionnez-le. - Séparez ce qui est un fait de ce qui est une projection/opinion ("le Dieese calcule…", "la CNI dit…").
2. Script → videos/<slug>/script.json
Recette de l'approche : ~60 s, 7 scènes, 18–30 mots par scène (~170–190 mots au total),
UNE idée par scène, explication en séquence logique (chaque scène amène la suivante : "C'est pourquoi…", "Alors…",
"Si quelqu'un…"). puce = nom court du chapitre en MAJUSCULES ("L'ÉNERGIE", "TOUT PROCHE", "ET SI ON COPIE?").
- Crochet = nombre fort + question ("Trois achats sur quatre… Mais comment une carte sans batterie peut-elle payer quoi que ce soit ?"). Dernière scène = l'information pratique que la personne retient (ex. : le plafond sans code).
- "Les deux côtés" et "attention/arnaque" n'entrent que si le sujet L'EXIGE (véritable polémique, véritable arnaque) — ils ne sont pas obligatoires.
- 1ère phrase = le crochet, TOUJOURS une question (règle de l'utilisateur) à laquelle la personne veut voir répondre, avec le fait fort à l'intérieur ou juste après. Ex. : "Comment une carte sans batterie peut-elle payer ?". Pas de "bonjour".
- Phrases courtes, comme si vous parliez à un ami. Écrivez les nombres en chiffres ("75 votes").
prononciationpour ce que la voix pourrait mal lire (sigles, "6x1", décimales "26,8").- Dernière scène : FERMETURE — l'information pratique finale / la réponse à la question du crochet. Interdit (règle de l'utilisateur) : demander un commentaire, un like, "sauvegarde", "suis", "commente X et je t'envoie…" — ni dans la parole ni à l'écran. Les sources ne figurent que dans la description de la publication. Après la dernière parole vient seulement la fermeture de la marque (automatique).
- Phrases de 6–14 mots, dites calmement (la narration est phrase par phrase, avec une pause à chaque virgule et point).
appeln'existe PLUS dans le script : la fermeture ne montre que la marque.sons: le défaut fait un impact sur la 1ère image, swoosh/whoosh aux changements de scène, "pop" sur la carte de nombre, "tick" sur les annotations/pilules et une montée entrant dans la fermeture. Pas de musique de fond (la référence n'en a pas ; n'activez"musique": "sfx/bed-scientia.mp3"que si l'utilisateur le demande). Écrivez 2–3accentssur les mots-clés (avec modération) :"sons": {"accents": [{"mot": "75", "scene": "approuve", "son": "sfx/ding.wav", "volume": 0.5}, {"mot": "eteint", "scene": "allume", "son": "sfx/boom.wav", "volume": 0.5}, {"mot": "horloge", "scene": "maintenant", "son": "sfx/riser.wav", "pic": 1.49, "volume": 0.35}]}. Sons prêts danspublic/sfx/: boom (choc), ding (nombre/révélation), pop (claquement), riser (suspense, utilisezpic), whoosh/swoosh. Le mot est celui écrit dansparole(pas celui deprononciation). Vous pouvez remplacer n'importe quel son par celui de la bibliothèque de l'utilisateur (public/soundeffects/catalog.md) —musique,transition(liste alterne),apparaitre,donnee,ouverture,fin;nulldésactive.composition= nom du composant (ex. :Echelle6x1).marque="SCIENTIA · <sujet court>"(la chaîne s'appelle Scientia).voix={ "principale": "masculine", "alterner": "non" }— N'insérez PAS devitessedans le script (elle vient duvoix.json, aujourd'hui 1.08).publication= légende Instagram/TikTok (devientout/<slug>-legende.txt) :{ "crochet": "<fait fort + question> 📌", "points": [3 phrases courtes, sans point final, avec chiffres], "sources": ["Agência Senado", "IBGE", …seulement les noms], "hashtags": ["sujet", "theme", …jusqu'à 5, sans #] }(#scientias'ajoute seule). Même ton que la vidéo : ce qui change pour la personne, sans opinion. Un emoji au maximum.miniature= couverture de la vidéo (voir étape 6) :{ "titres": [2 options], "scene": "<id de la scène de fond>", "image": <image de la scène>, "baisser": 330, "zoom": 1.45 }.
3. Narration
npm run narrer -- <slug> → public/explicatif/<slug>/narration.wav + temps.json (temps de chaque
mot, venant de la voix elle-même). Voix neuronale edge-tts (internet) ; sans internet, repli sur la voix locale Kokoro.
LA VOIX DE LA CHAÎNE se trouve dans voix.json (moteur, voix choisies par l'utilisateur, vitesse). Ne choisissez ou
ne changez jamais les voix, le moteur ou les ID de votre propre chef — c'est une préférence de l'utilisateur. Dans le script, le champ voix
ne définit que :
"principale": "masculine"— toujours. La voix approuvée de la chaîne est Antonio (Microsoft), celle des vidéos 6x1 et approche. La voix féminine Thalita Multilingual ressemblait à du portugais du Portugal (vidéo de l'urne) et a été retirée. N'utilisez jamais de voix "Multilingual". N'utilisez la féminine que si l'utilisateur le demande."alterner": "scenes"— les scènes alternent entre les deux voix (duo). Par défaut :"non".- Si l'utilisateur se plaint de la voix : montrez
npm run voix(Microsoft) /npm run voix -- elevenetnpm run voix -- utiliser <id> feminine|masculine. - Écrivez la parole pour l'OREILLE — c'est ce qui change le plus l'intonation de la voix synthétique :
- phrases courtes (6–14 mots), virgules où l'on respire, pas de parenthèses ni de sigles sans
prononciation; - question rhétorique toutes les 2–3 scènes ("Et qui a déjà payé ?") — la voix monte sur "?" et gagne en vie ;
- contraste et retournement : "Seulement…", "Mais attention :", "Et il y a plus :";
- nombre important seul à la fin de la phrase ("Ce fut 75 votes contre 1.") ou répété ("Onze jours !") ;
- évitez les longues phrases pleines de virgules et les listes de 4+ éléments (la voix devient monotone).
- phrases courtes (6–14 mots), virgules où l'on respire, pas de parenthèses ni de sigles sans
- La narration par défaut est celle de la référence : phrase par phrase, pause de 0,12 s à la virgule et 0,32 s au point,
0,45 s entre les scènes, Antonio à 1.08. NE passez pas à
"style": "continu"sans que l'utilisateur le demande. - Pour tester la voix locale plus expressive (Chatterbox sur le GPU de l'utilisateur) :
npm run voix -- comparer <slug>.
4. Scènes → src/explicatif/videos/<Nom>.tsx
- Copiez la structure de
Echelle6x1.tsx: un composant par scène,SCENES_<NOM>et, à la fin du fichier,export const VIDEO = { id: "<Nom>", script: script as Script, scenes: SCENES_<NOM> };(avecimport script from "../../../videos/<slug>/script.json"). La vidéo s'enregistre toute seule : NE modifiez PASCompositions.tsx(le modifier provoque un conflit lors dugit pull). - Une fois la vidéo terminée, sauvegardez sur GitHub :
git add videos/<slug> src/explicatif/videos/<Nom>.tsx+ commit + push (ainsi le prochaingit pullde l'utilisateur ne bloque pas). - Objet-héros (comme le terminal de paiement + carte) : UN ou deux objets du sujet, bien réalisés et GRANDS, qui apparaissent dans presque toutes les scènes ; chaque scène montre une partie/un état d'eux (champ qui s'allume, code à l'écran, clé qui sort). Personnage seulement comme second rôle (0–1 par scène, jamais au centre).
- Le kit (
three/Kit.tsx,ui/Kit.tsx) est optionnel : utilisez une pièce seulement quand la scène le demande (ex. :Hemicyclelors d'un vote). Ne remplissez pas la scène de pilules/règles. - Pour chaque scène, choisissez UNE métaphore visuelle de la donnée (voir
references/style.md) : votes → chaises qui s'allument ; heures → cubes qui disparaissent ; personnes → personnages (1 personnage = X) ; argent → pièces/fiche de paie ; délai → plaques sur une ligne de temps ; règle/loi → papier + checklist. - Synchronisez avec la parole :
w("mot")renvoie l'image à laquelle le mot est prononcé. Le visuel change SUR le mot (ex. : le numéro de la carte change quand la voix dit le numéro). - Caméra :
cam(pos, look)interpolant la position initiale → finale pendant la scène (ease(f, 0, dur)). - Décor : le
Stagevient déjà en mode sombre (fond noir, poussière) — identique à la référence. N'utilisez PASdecor="studio"nifinition(flou/bloom) sans que l'utilisateur le demande. - Caméra : distance 6–8 de l'objet, regardant vers y ≈ 1 ; rapprochement lent de 10–15 % dans la scène (comme dans Approche.tsx).
- Cadrage : l'objet principal occupe 40–70% de la largeur. Jamais de cadre vide, d'objet minuscule (ligne fine) ou de bloc qui prend tout l'écran sans référence. Mettez toujours à l'échelle avec une référence humaine (personnage à côté) ou un objet connu.
- Montez les objets du sujet avec des formes simples (livre = boîtes fines, coffre = boîte + cylindre, téléphone = boîte arrondie avec écran sombre, balance = cylindres) — le contexte concret accroche plus que des blocs abstraits.
- Contenu dans la bande centrale de l'écran (y ≈ 450–1250 px). Haut = marque/puce/carte ; 1300+ = légende et boutons de TikTok. Rien d'important sur le bord droit (icônes de l'app).
- Notez les sources des nombres dans
Callout(sub="SOURCE : …").
5. Vérifier les images
npm run images -- <slug> → out/images/<slug>/grille.jpg (une image de la fin de chaque scène).
REGARDEZ la grille. Vérifiez : rien coupé ou derrière la légende ; texte lisible ; objet principal assez
grand ; rien superposé à la carte/puce ; le visuel correspond à la phrase. Ajustez la caméra/l'échelle et répétez.
6. Miniature (couverture)
Écrivez 2 titres dans miniature.titres (lignes avec \n, accent entre astérisques) :
- 3 lignes, au maximum ~16 caractères par ligne ; la dernière ligne est la question/curiosité en évidence.
- Un avec le fait/le nombre fort ("75 votes contre 1."), un autre avec la question que la personne se pose ("Quand ça change ?").
- Véridique : rien de promettant ce que la vidéo ne montre pas.
- Fond : la plus belle scène/lisible (
scene+imagesur laquelle elle est déjà montée).npm run miniature -- <slug>→thumbs/<slug>-1.png,-2.png. REGARDEZ les deux avant de livrer.
7. Rendre et livrer
npm run expliquer -- <slug> → out/<slug>.mp4 + miniatures (rendu 3D sans GPU : ~6–10 min par minute de vidéo
dans Codespace). Regardez 3–4 images du mp4 final, vérifiez la fin de l'audio, et livrez avec les sources.
Montrez à l'utilisateur : la vidéo, les 2 miniatures (dites laquelle vous posteriez et pourquoi) et collez la légende du
out/<slug>-legende.txt prête à copier. Demandez son avis et notez ce qu'il en pense dans notes-du-editeur.md (section "Explicatifs").