Annexes : Broc

Annexe — Scénario 3 : « Tempo a filé » (webtoon, 12 cases)

Troisième scénario de démonstration de Broc. C'est un épisode de webtoon (format: toon), une petite aventure dans un décor récurrent de la bible : La Cave du Bouquet (set-cave-bouquet), avec un détour par La Rue de la Serre (set-rue-serre).

Statut. Ce document est un brouillon de travail, pas un fichier de récit. Il suit la bible (sites/plans/pages/annexes/broc/bible.md), qui fait foi. Ce qui ne vient pas de l'image de référence est marqué inferred (bible, préambule) : l'histoire, les répliques, Mila et Tempo. Lieux, artistes et personnes sont fictifs ; le seul nom réel est « lebrocoli.fr » (bible §10, règle 5). Le jumeau JSON reste un brouillon jusqu'à P16 (schémas BibleSource et attributs de scène communs, plan 14 D3 et D4). Broc n'a ni smoking, ni casquette, ni aucun vêtement ou accessoire (bible §1 et §2.5).

1. Fiche

ChampValeur
TitreTempo a filé (3 mots, Unbounded, bible §12)
Série« Les soirées de Broc », épisode 3
Objectifmontrer le format toon de bout en bout avec un personnage de bible : 12 cases, bulles en lettrage généré, poses de la planche, décors vérifiés, prompts en données
Objectif narratiffaire aimer la Cave du Bouquet et l'idée « le concert, ça se vit sur place », sans aucune info pratique inventée
Publiclecteurs de lebrocoli.fr sur mobile (15–40 ans, sorties, jazz), lecture au scroll en moins de 2 minutes ; tout public, sans prérequis musical
Format principaltoon (P7) : la lecture verticale au pouce est la forme naturelle d'une petite aventure en cases ; le lettrage est du texte, donc traduisible et accessible
Formats dérivésmotion 9:16 par le pont toon → motion (P7, W4) ; stories et deck réécrits à la main (pas de pont fermé depuis toon) ; book en recueil plus tard (§8)
Languesfr (source), en (fichier de textes par id, §4.3). Les images sont partagées entre langues
Gabarit de beatsbroc-sortie : hook → context → tension → payoff → call (bible §10)
Poses utiliséesles 9 lignes de codex-pet-v1, chacune au moins une fois (§3.2)
Durée de lectureenviron 75 s au scroll ; 58 s en vidéo 9:16 (§3)

2. Pitch

Ce soir, à la Cave du Bouquet, le Trio Lorem attend le signal de Tempo, le petit métronome en bois qui donne toujours le départ du premier morceau. Un courant d'air, une porte entrouverte : Tempo a filé. Broc remonte la Rue de la Serre en suivant un tic-tac, se prend la couronne dans les guirlandes, et retrouve le fugueur planté devant une vitrine pleine de métronomes. Retour en courant, premier set lancé à temps, et un Broc qui, au fond de la salle, cache un peu la vue.

Ressorts de la bible : la couronne qui gêne (§3, ressort comique principal, toujours aux dépens de Broc) ; Broc rebondit après failed (§9) ; Mila, contrepoint calme (§8) ; Tempo, muet, qui « parle » par son balancier (§8).

3. Découpage case par case

Largeur de référence 800 px (plan 08 §2). Hauteurs : 1000 (4:5), 1200 (2:3) ou 1422 (9:16). La durée est celle du plan vidéo produit par le pont toon → motion (lecture au scroll : libre). La transition est la gouttière après la case en lecture web, et l'effet du plan en motion.

3.1 Tableau

#idBeatDécor, cadragePose (codex-pet-v1)Texte à l'écran (encart, sfx)Réplique (bulle)Voix off (:::notes, motion)Haut.DuréeTransition
1c01hookset-cave-bouquet, widewavingencart « La Cave du Bouquet, juste avant le concert. »Broc : « Salut ! Ce soir, le Trio Lorem joue ici. Je t'ai gardé une place. »Ce soir, à la Cave du Bouquet, tout est prêt. Ou presque.14225 sgouttière 120 ; panoramique vers le bas
2c02contextset-cave-bouquet, medium (piano)review—Mila : « Tempo donne le départ. Comme toujours. » / Broc : « Il bat la mesure mieux que personne. »Tempo, le métronome, lance toujours le premier morceau.12006 sgouttière 60 (même lieu, même instant)
3c03contextset-cave-bouquet, wide (porte)idleencart « Personne ne voit Tempo descendre du piano. » ; sfx « tic… tac… »—Un courant d'air. Une porte entrouverte.12005 sgouttière 160 (ellipse)
4c04tensionset-cave-bouquet, close (piano vide)failed—Mila : « Où est Tempo ? » / Broc : « Oups. Le piano est vide. »Le piano est vide. Sans Tempo, pas de premier morceau.10005 sgouttière 40 ; coupe sèche
5c05tensionset-cave-bouquet, stairs (escalier)running-right—Broc : « Pas de panique, je le retrouve ! »Broc ne panique pas. Il file.10004 sgouttière 200 ; balayage vers la droite
6c06tensionset-rue-serre, widewaitingsfx « tic » (petit, au loin)Broc (pensée) : « Écoute… un tic-tac, quelque part. »Dans la Rue de la Serre, il tend l'oreille.14226 sgouttière 80 ; panoramique lent
7c07tensionset-rue-serre, medium (guirlandes)running—Broc : « Ma couronne s'accroche partout. Ça pousse un peu trop, là-haut. »Il cherche partout. Sa couronne, elle, s'accroche partout.12005 sgouttière 80
8c08tensionset-rue-serre, vitrinereviewencart « Tempo, bien planté devant la vitrine. » ; sfx « tic tac tic tac »Broc : « Te voilà. Tu voulais voir la famille ? »Le voilà, devant une vitrine pleine de métronomes.12006 sgouttière 120
9c09tensionset-rue-serre, wide (retour)running-left—Broc : « On rentre à la fraîche. Le trio t'attend. »Retour en vitesse. Le trio attend toujours.10004 sgouttière 200 ; balayage vers la gauche
10c10payoffset-cave-bouquet, medium (piano, scène)jumpingsfx « TIC TAC » (grand)Mila : « Pile à temps. » / Broc : « Et c'est parti pour le premier set ! »Tempo reprend sa place. Le premier set commence.14226 sgouttière 60 ; zoom léger
11c11payoffset-cave-bouquet, wide (salle, dos)idle—Broc : « Désolé pour le rang de derrière. Je ne peux pas enlever ma tête. »Au fond de la salle, Broc écoute. Et cache un peu la vue.12005 sgouttière 120
12c12callset-cave-bouquet, medium (sortie)wavingencart « Les vraies soirées sont sur lebrocoli.fr. »Broc : « Bonne soirée. Et garde la tête verte ! »La suite de nos sorties, c'est sur lebrocoli.fr.12006 sfin d'épisode ; crédits (mention IA, §9)

Total vidéo : 5+6+5+5+4+6+5+6+4+6+5+6 = 63 s de plans, ramenés à environ 58 s par les fondus enchaînés de 0,4 s du pont (à mesurer sur la première sortie, pas promis).

3.2 Contrôles de cohérence avec la bible

  • 9 poses sur 9 : waving (1, 12), review (2, 8), idle (3, 11), failed (4), running-right (5), waiting (6), running (7), running-left (9), jumping (10).
  • failed suivi d'un rebond (bible §9) : failed en 4, puis jumping en 10 et waving en 12. failed et jumping apparaissent une seule fois (§10, règle 7).
  • running n'est pas une course (§9) : en 7, Broc fouille (concentration), les courses sont en 5 et 9 (running-right, running-left).
  • Ouverture et fermeture par Broc en waving (§10, règle 1).
  • Jeux de mots (§4) : « ça pousse » (7), « bien planté » (8, encart), « à la fraîche » (9), « garde la tête verte » (12). Un au plus par case, aucun répété. Aucun dans le titre.
  • Répliques ≤ 140 caractères (§10, règle 3) : la plus longue (case 1) en fait 65.
  • Un point d'exclamation au plus par réplique, pas d'émoji (§4).
  • Aucune info pratique (date, heure, prix, adresse) : l'épisode est une fiction ; l'appel final renvoie à lebrocoli.fr sans rien promettre (§6, §10 règle 2).
  • Rien de §6 : pas d'alcool (la Cave est un club de jazz, on n'y montre ni verre ni bar), Broc n'est pas un aliment, aucune moquerie (Tempo n'est pas grondé).
  • Interdits visuels (§2.5) : Broc ne tient rien. Tempo n'est jamais dans ses mains : il saute à côté de lui (cases 9 et 10). La vitrine (case 8) montre des métronomes dans le décor.
  • Personnages secondaires (§8) : jamais plus de deux avec Broc à l'image (Mila et Tempo en 2, 4 et 10) ; le Trio Lorem et le public sont des silhouettes floues (public).

4. Source Markdown Récit complète

Emplacement proposé : examples/scenario-lebrocoli/toon/tempo-a-file.md (non créé : ce plan n'écrit que dans sites/plans/pages/). C'est une source de récit : jamais passée par oxfmt (bible §10, règle 11).

Choix de syntaxe, tous tirés des plans :

  • frontmatter à plat (plan 08, préambule) : width, gutter, font ; cast: en liste (plan 14 D4 : « ou de plusieurs : liste ») ;
  • séparateurs --- id=… clé=valeur (plan 02 §3) avec les attributs communs beat=, cast=, set=, shot=, pose=, prompt= (plan 14 D4) et les attributs de case alt=, height=, gutter= (plan 08 §2). Pas de src= : prompt= donne l'image de la case (l'asset enregistré pour ce prompt, sinon une image de remplacement, plan 14 D7). Pas de type= : il est réservé aux blocs motion (plan 02 §3), le pont toon → motion choisit le plan lui-même ;
  • :::bubble, :::caption, :::sfx du spec toon (plan 08 §2) ; :::dialogue est « plus tard » (plan 14 D6), donc les répliques sont des bulles positionnées ;
  • :::notes porte la voix off : non publiée dans le lecteur toon (notes d'auteur), elle devient la voix off ou le sous-titre du plan dans le pont vers motion (plan 02 §4).

4.1 tempo-a-file.md

MarkdownMarkdown
--- title: Tempo a filé description: Les soirées de Broc, épisode 3. Tempo, le métronome de la Cave du Bouquet, a disparu juste avant le concert. format: toon lang: fr author: lebrocoli.fr width: 800 gutter: 120 font: lexend cast: - ../cast/broc/character.md - ../cast/lieux.md - ./tempo-a-file.cast.md --- --- id=c01 beat=hook cast=broc set=set-cave-bouquet shot=wide pose=waving prompt=p-t3-c01 height=1422 alt="Une cave voûtée en briques éclairée par des lampes basses. Au premier plan, Broc, un brocoli souriant au rendu 3D doux, salue le lecteur de la main. Au fond, une petite scène avec un piano droit." :::caption La Cave du Bouquet, juste avant le concert. ::: :::bubble{x=58% y=58% tail=bottom-left} Salut ! Ce soir, le Trio Lorem joue ici. Je t'ai gardé une place. ::: :::notes Ce soir, à la Cave du Bouquet, tout est prêt. Ou presque. ::: --- id=c02 beat=context cast=broc set=set-cave-bouquet shot=medium pose=review prompt=p-t3-c02 height=1200 gutter=60 alt="Près du piano droit, Broc observe avec attention un petit métronome en bois dont le balancier oscille. À côté, Mila, en vêtements gris anthracite et casque de régie autour du cou, montre le métronome." :::bubble{x=22% y=12% tail=bottom-right} Tempo donne le départ. Comme toujours. ::: :::bubble{x=64% y=30% tail=bottom-left} Il bat la mesure mieux que personne. ::: :::notes Tempo, le métronome, lance toujours le premier morceau. ::: --- id=c03 beat=context cast=broc set=set-cave-bouquet shot=wide pose=idle prompt=p-t3-c03 height=1200 gutter=160 alt="Broc, de face, attend tranquillement au premier plan. Derrière lui, sans qu'il le voie, le petit métronome descend du piano et file vers une porte entrouverte au fond de la cave." :::caption Personne ne voit Tempo descendre du piano. ::: :::sfx{x=78% y=40% rotate=-8} tic… tac… ::: :::notes Un courant d'air. Une porte entrouverte. ::: --- id=c04 beat=tension cast=broc set=set-cave-bouquet shot=close pose=failed prompt=p-t3-c04 height=1000 gutter=40 alt="Gros plan sur le dessus du piano, vide. Broc, déçu mais pas abattu, baisse un peu la tête. Mila, à moitié dans le cadre, regarde autour d'elle." :::bubble{x=20% y=10% tail=bottom-right} Où est Tempo ? ::: :::bubble{x=62% y=22% tail=bottom-left} Oups. Le piano est vide. ::: :::notes Le piano est vide. Sans Tempo, pas de premier morceau. ::: --- id=c05 beat=tension cast=broc set=set-cave-bouquet shot=stairs pose=running-right prompt=p-t3-c05 height=1000 gutter=200 alt="Broc court vers la droite et grimpe l'escalier de pierre de la cave, vers la porte ouverte sur la rue de nuit." :::bubble{x=30% y=14% tail=bottom-right} Pas de panique, je le retrouve ! ::: :::notes Broc ne panique pas. Il file. ::: --- id=c06 beat=tension cast=broc set=set-rue-serre shot=wide pose=waiting prompt=p-t3-c06 height=1422 gutter=80 alt="Une rue piétonne pavée, la nuit, bordée d'affiches de concerts sans texte lisible. Broc, seul au milieu de la rue, tend l'oreille, curieux." :::bubble{x=50% y=16% tail=bottom shape=thought} Écoute… un tic-tac, quelque part. ::: :::sfx{x=86% y=34% rotate=6} tic ::: :::notes Dans la Rue de la Serre, il tend l'oreille. ::: --- id=c07 beat=tension cast=broc set=set-rue-serre shot=medium pose=running prompt=p-t3-c07 height=1200 gutter=80 alt="Broc, concentré, fouille derrière des bacs de plantes. Une guirlande d'ampoules s'est prise dans sa couronne de fleurettes." :::bubble{x=56% y=12% tail=bottom-left} Ma couronne s'accroche partout. Ça pousse un peu trop, là-haut. ::: :::notes Il cherche partout. Sa couronne, elle, s'accroche partout. ::: --- id=c08 beat=tension cast=broc set=set-rue-serre shot=vitrine pose=review prompt=p-t3-c08 height=1200 gutter=120 alt="Devant la vitrine éclairée d'une boutique de musique, remplie de métronomes, le petit métronome en bois se balance sur le trottoir. Broc, penché, l'examine avec un sourire soulagé." :::caption Tempo, bien planté devant la vitrine. ::: :::sfx{x=74% y=46% rotate=-10} tic tac tic tac ::: :::bubble{x=26% y=18% tail=bottom-right} Te voilà. Tu voulais voir la famille ? ::: :::notes Le voilà, devant une vitrine pleine de métronomes. ::: --- id=c09 beat=tension cast=broc set=set-rue-serre shot=wide pose=running-left prompt=p-t3-c09 height=1000 gutter=200 alt="Broc court vers la gauche dans la rue de nuit. Le petit métronome sautille à côté de lui, sur les pavés." :::bubble{x=64% y=14% tail=bottom-left} On rentre à la fraîche. Le trio t'attend. ::: :::notes Retour en vitesse. Le trio attend toujours. ::: --- id=c10 beat=payoff cast=broc set=set-cave-bouquet shot=medium pose=jumping prompt=p-t3-c10 height=1422 gutter=60 alt="Le métronome est de retour sur le piano, son balancier en mouvement. Broc saute de joie. Mila sourit. Derrière, trois silhouettes floues de musiciens prennent place sur la petite scène." :::sfx{x=50% y=8% rotate=0} TIC TAC ::: :::bubble{x=18% y=34% tail=bottom-right} Pile à temps. ::: :::bubble{x=66% y=40% tail=bottom-left} Et c'est parti pour le premier set ! ::: :::notes Tempo reprend sa place. Le premier set commence. ::: --- id=c11 beat=payoff cast=broc set=set-cave-bouquet shot=wide pose=idle prompt=p-t3-c11 height=1200 alt="Vue de la salle depuis le fond. Le public est assis, en silhouettes floues, face à la scène éclairée. Broc, debout au dernier rang, écoute ; sa grande couronne masque une partie de la scène à la silhouette derrière lui." :::bubble{x=60% y=12% tail=bottom-left} Désolé pour le rang de derrière. Je ne peux pas enlever ma tête. ::: :::notes Au fond de la salle, Broc écoute. Et cache un peu la vue. ::: --- id=c12 beat=call cast=broc set=set-cave-bouquet shot=medium pose=waving prompt=p-t3-c12 height=1200 alt="Broc, au pied de l'escalier de la cave, salue le lecteur de la main avec un grand sourire. Derrière lui, la scène éclairée et le petit métronome sur le piano." :::bubble{x=56% y=14% tail=bottom-left} Bonne soirée. Et garde la tête verte ! ::: :::caption Les vraies soirées sont sur lebrocoli.fr. ::: :::notes La suite de nos sorties, c'est sur lebrocoli.fr. :::

4.2 Bible complémentaire : tempo-a-file.cast.md

Personnages secondaires, cadrages des deux décors, gabarit de beats et prompts de l'épisode. Les décors eux-mêmes (set-cave-bouquet, set-rue-serre) sont supposés dans la bible partagée cast/lieux.md ; leurs entrées sont reprises en §6.1 pour le cas où elle n'existe pas encore. Les id de cadrage (wide, medium, close, stairs, vitrine) sont à ajouter en ::shot à ces entrées (§6.1). Syntaxe : plan 14 D2.

MarkdownMarkdown
--- title: Tempo a filé — distribution et prompts kind: bible lang: fr bible: promptLang: en style: doux-3d beats: broc-sortie --- --- id=mila entry=character ## Mila La régisseuse de la Cave du Bouquet. Calme, pragmatique, parle peu. :::identity Stylized adult woman, soft expressive 3D render in the style of a family animated film, simpler and less detailed than the main character. Short dark hair, plain charcoal grey long-sleeved top and trousers, a stage headset resting around her neck. Calm, friendly face. ::: :::traits - species: human {inferred} - role: régisseuse de la Cave du Bouquet {inferred} - voice: phrases très courtes, calme {inferred} ::: ::pose[Standing, relaxed, hands at her sides]{id=idle} ::pose[Pointing gently at something]{id=pointing} ::pose[Looking around, slightly worried]{id=searching} ::pose[Small satisfied smile, arms crossed]{id=satisfied} :::avoid - vegetable or plant features - logos, text or patterns on clothing - drinks, glasses or bottles - more detail than the main character ::: --- id=tempo entry=character ## Tempo Un petit métronome en bois, vivant, muet. Il s'exprime par son balancier. :::identity Small living wooden pyramid metronome, warm honey-colored varnished wood, a brass-colored pendulum, no mouth, two tiny round black dot eyes on the front face, two short stubby wooden legs. Soft expressive 3D render in the style of a family animated film. ::: :::traits - species: metronome {inferred} - role: donne le départ du premier morceau {inferred} - voice: muet ; tic-tac du balancier {inferred} ::: ::pose[Standing still, pendulum swinging]{id=idle} ::pose[Small hop on its stubby legs]{id=hopping} :::avoid - mouth, arms or hands - text, numbers or scale markings - being held by another character ::: --- id=doux-3d entry=style ## 3D doux :::identity Soft expressive 3D render in the style of a family animated film, soft diffuse lighting, gentle shadows, no harsh specular highlights, no black outlines. ::: --- id=broc-sortie entry=beats 1. hook — Broc accueille le lecteur dans le lieu 2. context — on découvre l'enjeu de la soirée 3. tension — un contretemps, puis la recherche 4. payoff — la soirée est sauvée 5. call — salut final et renvoi vers lebrocoli.fr --- id=p-t3-c01 entry=prompt subject=broc set=set-cave-bouquet shot=wide pose=waving aspect=9:16 Broc stands in the foreground, waving at the viewer with one hand, a warm welcoming smile. Behind him, the empty small stage with an upright piano under low amber lamps. --- id=p-t3-c02 entry=prompt subject=broc set=set-cave-bouquet shot=medium pose=review aspect=2:3 Broc leans slightly toward a small living wooden metronome standing on top of an upright piano, studying its swinging pendulum with attentive interest. Mila stands beside the piano, pointing gently at the metronome. --- id=p-t3-c03 entry=prompt subject=broc set=set-cave-bouquet shot=wide pose=idle aspect=2:3 Broc stands calmly in the foreground, facing the viewer, unaware. In the background, the small wooden metronome hops down from the piano toward a half-open door at the back of the cellar. --- id=p-t3-c04 entry=prompt subject=broc set=set-cave-bouquet shot=close pose=failed aspect=4:5 Close view of the empty top of the upright piano. Broc, mildly disappointed, head slightly lowered, a small "oops" expression, not sad. Mila, half in frame, looks around searching. --- id=p-t3-c05 entry=prompt subject=broc set=set-cave-bouquet shot=stairs pose=running-right aspect=4:5 Broc runs to the right, climbing the stone stairs of the cellar toward an open door that shows a night street. --- id=p-t3-c06 entry=prompt subject=broc set=set-rue-serre shot=wide pose=waiting aspect=9:16 Broc stands alone in the middle of the empty pedestrian street, head tilted, listening with curious attention. --- id=p-t3-c07 entry=prompt subject=broc set=set-rue-serre shot=medium pose=running aspect=2:3 Broc, focused, searches behind large planters along the street. A string of small light bulbs is tangled in his broccoli crown, his hands are free. --- id=p-t3-c08 entry=prompt subject=broc set=set-rue-serre shot=vitrine pose=review aspect=2:3 In front of a lit music shop window filled with wooden metronomes, the small living wooden metronome stands on the pavement, pendulum swinging. Broc bends toward it with a relieved, amused smile. --- id=p-t3-c09 entry=prompt subject=broc set=set-rue-serre shot=wide pose=running-left aspect=4:5 Broc runs to the left along the cobbled street. The small wooden metronome hops along on the pavement next to him, not touching him. --- id=p-t3-c10 entry=prompt subject=broc set=set-cave-bouquet shot=medium pose=jumping aspect=9:16 The small wooden metronome is back on top of the upright piano, pendulum swinging. Broc jumps for joy, both arms up. Mila smiles, arms crossed. Behind, three blurred musician silhouettes take their places on the small stage. --- id=p-t3-c11 entry=prompt subject=broc set=set-cave-bouquet shot=wide pose=idle aspect=2:3 View from the back of the room. A seated audience of soft blurred silhouettes faces the lit stage. Broc stands in the last row, listening calmly; his large crown hides part of the stage from the blurred silhouette behind him. --- id=p-t3-c12 entry=prompt subject=broc set=set-cave-bouquet shot=medium pose=waving aspect=2:3 Broc stands at the foot of the cellar stairs, waving goodbye at the viewer with a big smile. Behind him, the lit stage and the small wooden metronome on the piano.

4.3 Traduction : tempo-a-file.en.md (extrait)

Le fichier de langue ne contient que les textes par id de case (plan 08 §2, « traductions ») : alt, encarts, bulles, sfx, notes. Images et prompts partagés (bible §10, règle 9). Les jeux de mots s'adaptent au lieu de se traduire mot à mot (au plus un par case).

MarkdownMarkdown
--- title: Tempo Ran Off lang: en --- --- id=c01 alt="A brick vaulted cellar lit by low lamps. In the foreground, Broc, a smiling soft 3D broccoli, waves at the reader. In the back, a small stage with an upright piano." :::caption The Bouquet Cellar, just before the show. ::: :::bubble{x=58% y=58% tail=bottom-left} Hi! Tonight, Trio Lorem plays here. I saved you a seat. ::: --- id=c12 alt="Broc, at the foot of the cellar stairs, waves goodbye to the reader with a big smile." :::bubble{x=56% y=14% tail=bottom-left} Have a good night. And keep a green head! :::

5. Jumeau JSON typé

Brouillon jusqu'à P16. Forme StorySource (plan 09 §2.2) avec les champs toon (plan 09 §2.3) ; les attributs communs de la bible restent dans attrs (plan 14 D4). Deux champs ne sont pas encore fixés par les schémas : cast (le chemin des bibles, posé ici à la racine) et l'absence de src quand prompt le remplace. Les deux sont tranchés en P16 (IA1) ; ce brouillon ne les anticipe pas autrement. Équivalence visée : compile(md) == compile(toJson(md)) (plan 09 §2.4).

JSONJSON
{ "$schema": "https://recit.dev/schema/v1/story.json", "kind": "story", "version": 1, "format": "toon", "meta": { "title": "Tempo a filé", "description": "Les soirées de Broc, épisode 3. Tempo, le métronome de la Cave du Bouquet, a disparu juste avant le concert.", "author": "lebrocoli.fr", "lang": "fr" }, "settings": { "width": 800, "gutter": 120, "font": "lexend" }, "cast": ["../cast/broc/character.md", "../cast/lieux.md", "./tempo-a-file.cast.md"], "scenes": [ { "id": "c01", "attrs": { "beat": "hook", "cast": "broc", "set": "set-cave-bouquet", "shot": "wide", "pose": "waving", "prompt": "p-t3-c01" }, "alt": "Une cave voûtée en briques éclairée par des lampes basses. Au premier plan, Broc, un brocoli souriant au rendu 3D doux, salue le lecteur de la main. Au fond, une petite scène avec un piano droit.", "height": 1422, "captions": ["La Cave du Bouquet, juste avant le concert."], "bubbles": [{ "x": "58%", "y": "58%", "tail": "bottom-left", "text": "Salut ! Ce soir, le Trio Lorem joue ici. Je t'ai gardé une place." }], "notes": "Ce soir, à la Cave du Bouquet, tout est prêt. Ou presque." }, { "id": "c02", "attrs": { "beat": "context", "cast": "broc", "set": "set-cave-bouquet", "shot": "medium", "pose": "review", "prompt": "p-t3-c02" }, "alt": "Près du piano droit, Broc observe avec attention un petit métronome en bois dont le balancier oscille. À côté, Mila, en vêtements gris anthracite et casque de régie autour du cou, montre le métronome.", "height": 1200, "gutter": 60, "bubbles": [ { "x": "22%", "y": "12%", "tail": "bottom-right", "text": "Tempo donne le départ. Comme toujours." }, { "x": "64%", "y": "30%", "tail": "bottom-left", "text": "Il bat la mesure mieux que personne." } ], "notes": "Tempo, le métronome, lance toujours le premier morceau." }, { "id": "c03", "attrs": { "beat": "context", "cast": "broc", "set": "set-cave-bouquet", "shot": "wide", "pose": "idle", "prompt": "p-t3-c03" }, "alt": "Broc, de face, attend tranquillement au premier plan. Derrière lui, sans qu'il le voie, le petit métronome descend du piano et file vers une porte entrouverte au fond de la cave.", "height": 1200, "gutter": 160, "captions": ["Personne ne voit Tempo descendre du piano."], "sfx": [{ "x": "78%", "y": "40%", "rotate": -8, "text": "tic… tac…" }], "notes": "Un courant d'air. Une porte entrouverte." }, { "id": "c04", "attrs": { "beat": "tension", "cast": "broc", "set": "set-cave-bouquet", "shot": "close", "pose": "failed", "prompt": "p-t3-c04" }, "alt": "Gros plan sur le dessus du piano, vide. Broc, déçu mais pas abattu, baisse un peu la tête. Mila, à moitié dans le cadre, regarde autour d'elle.", "height": 1000, "gutter": 40, "bubbles": [ { "x": "20%", "y": "10%", "tail": "bottom-right", "text": "Où est Tempo ?" }, { "x": "62%", "y": "22%", "tail": "bottom-left", "text": "Oups. Le piano est vide." } ], "notes": "Le piano est vide. Sans Tempo, pas de premier morceau." }, { "id": "c05", "attrs": { "beat": "tension", "cast": "broc", "set": "set-cave-bouquet", "shot": "stairs", "pose": "running-right", "prompt": "p-t3-c05" }, "alt": "Broc court vers la droite et grimpe l'escalier de pierre de la cave, vers la porte ouverte sur la rue de nuit.", "height": 1000, "gutter": 200, "bubbles": [{ "x": "30%", "y": "14%", "tail": "bottom-right", "text": "Pas de panique, je le retrouve !" }], "notes": "Broc ne panique pas. Il file." }, { "id": "c06", "attrs": { "beat": "tension", "cast": "broc", "set": "set-rue-serre", "shot": "wide", "pose": "waiting", "prompt": "p-t3-c06" }, "alt": "Une rue piétonne pavée, la nuit, bordée d'affiches de concerts sans texte lisible. Broc, seul au milieu de la rue, tend l'oreille, curieux.", "height": 1422, "gutter": 80, "bubbles": [{ "x": "50%", "y": "16%", "tail": "bottom", "shape": "thought", "text": "Écoute… un tic-tac, quelque part." }], "sfx": [{ "x": "86%", "y": "34%", "rotate": 6, "text": "tic" }], "notes": "Dans la Rue de la Serre, il tend l'oreille." }, { "id": "c07", "attrs": { "beat": "tension", "cast": "broc", "set": "set-rue-serre", "shot": "medium", "pose": "running", "prompt": "p-t3-c07" }, "alt": "Broc, concentré, fouille derrière des bacs de plantes. Une guirlande d'ampoules s'est prise dans sa couronne de fleurettes.", "height": 1200, "gutter": 80, "bubbles": [{ "x": "56%", "y": "12%", "tail": "bottom-left", "text": "Ma couronne s'accroche partout. Ça pousse un peu trop, là-haut." }], "notes": "Il cherche partout. Sa couronne, elle, s'accroche partout." }, { "id": "c08", "attrs": { "beat": "tension", "cast": "broc", "set": "set-rue-serre", "shot": "vitrine", "pose": "review", "prompt": "p-t3-c08" }, "alt": "Devant la vitrine éclairée d'une boutique de musique, remplie de métronomes, le petit métronome en bois se balance sur le trottoir. Broc, penché, l'examine avec un sourire soulagé.", "height": 1200, "captions": ["Tempo, bien planté devant la vitrine."], "sfx": [{ "x": "74%", "y": "46%", "rotate": -10, "text": "tic tac tic tac" }], "bubbles": [{ "x": "26%", "y": "18%", "tail": "bottom-right", "text": "Te voilà. Tu voulais voir la famille ?" }], "notes": "Le voilà, devant une vitrine pleine de métronomes." }, { "id": "c09", "attrs": { "beat": "tension", "cast": "broc", "set": "set-rue-serre", "shot": "wide", "pose": "running-left", "prompt": "p-t3-c09" }, "alt": "Broc court vers la gauche dans la rue de nuit. Le petit métronome sautille à côté de lui, sur les pavés.", "height": 1000, "gutter": 200, "bubbles": [{ "x": "64%", "y": "14%", "tail": "bottom-left", "text": "On rentre à la fraîche. Le trio t'attend." }], "notes": "Retour en vitesse. Le trio attend toujours." }, { "id": "c10", "attrs": { "beat": "payoff", "cast": "broc", "set": "set-cave-bouquet", "shot": "medium", "pose": "jumping", "prompt": "p-t3-c10" }, "alt": "Le métronome est de retour sur le piano, son balancier en mouvement. Broc saute de joie. Mila sourit. Derrière, trois silhouettes floues de musiciens prennent place sur la petite scène.", "height": 1422, "gutter": 60, "sfx": [{ "x": "50%", "y": "8%", "rotate": 0, "text": "TIC TAC" }], "bubbles": [ { "x": "18%", "y": "34%", "tail": "bottom-right", "text": "Pile à temps." }, { "x": "66%", "y": "40%", "tail": "bottom-left", "text": "Et c'est parti pour le premier set !" } ], "notes": "Tempo reprend sa place. Le premier set commence." }, { "id": "c11", "attrs": { "beat": "payoff", "cast": "broc", "set": "set-cave-bouquet", "shot": "wide", "pose": "idle", "prompt": "p-t3-c11" }, "alt": "Vue de la salle depuis le fond. Le public est assis, en silhouettes floues, face à la scène éclairée. Broc, debout au dernier rang, écoute ; sa grande couronne masque une partie de la scène à la silhouette derrière lui.", "height": 1200, "bubbles": [{ "x": "60%", "y": "12%", "tail": "bottom-left", "text": "Désolé pour le rang de derrière. Je ne peux pas enlever ma tête." }], "notes": "Au fond de la salle, Broc écoute. Et cache un peu la vue." }, { "id": "c12", "attrs": { "beat": "call", "cast": "broc", "set": "set-cave-bouquet", "shot": "medium", "pose": "waving", "prompt": "p-t3-c12" }, "alt": "Broc, au pied de l'escalier de la cave, salue le lecteur de la main avec un grand sourire. Derrière lui, la scène éclairée et le petit métronome sur le piano.", "height": 1200, "bubbles": [{ "x": "56%", "y": "14%", "tail": "bottom-left", "text": "Bonne soirée. Et garde la tête verte !" }], "captions": ["Les vraies soirées sont sur lebrocoli.fr."], "notes": "La suite de nos sorties, c'est sur lebrocoli.fr." } ] }

Remarques sur ce brouillon :

  • x et y sont gardés en chaînes "58%", comme dans le Markdown ; le schéma P7 peut préférer un nombre (0–100). À trancher en W1, avec la propriété d'aller-retour.
  • sfx[] reprend x, y, rotate et un text : le plan 09 §2.3 cite sfx[] sans en donner la forme. Brouillon.
  • Le compagnon anglais est un Sidecar (kind: "sidecar", plan 09 §2.2) dont scenes est indexé par id (c01 … c12) et ne contient que alt, captions, bubbles[].text, sfx[].text, notes.

6. Prompts d'images (données, sans fournisseur imposé)

Les prompts sont dérivés de la bible par le gabarit déterministe du plan 14 D7 : identité du style, identité du personnage (mot pour mot, bible §11.1), décor, cadrage, pose, action, puis avoid. Langue : anglais (promptLang: en). Récit ne génère rien : recit prompts build écrit les .txt, l'auteur génère ailleurs en passant toujours reference.png (et la planche spritesheet.webp comme référence de pose quand l'outil l'accepte), puis recit assets register <image> --prompt p-t3-cNN écrit la provenance (kind: "asset").

Aucune nouvelle pose de Broc : les 9 lignes de codex-pet-v1 suffisent. Nouveaux éléments visuels : deux décors à fixer par une image de référence (ils existent dans la bible §7 mais n'ont ni :::identity ni image), deux personnages secondaires et cinq cadrages.

6.1 Décors (entrées entry=set, à placer dans cast/lieux.md)

MarkdownMarkdown
--- id=set-cave-bouquet entry=set ## La Cave du Bouquet Club de jazz en sous-sol voûté, briques, lampes basses, piano droit. :::identity Small underground jazz club in a vaulted brick cellar, low warm amber lamps, a small wooden stage with an upright piano, a few rows of simple wooden chairs, stone stairs leading up to a door. Cozy, intimate, fictional place. No bar, no bottles, no glasses, no readable signs. ::: :::traits - time: soirée - light: lampes ambre basses, projecteur doux sur la scène - palette: brick=#8a4b34, amber=#f2b45a, shadow=#2b1d1a - props: piano droit, tabourets, chaises en bois, escalier de pierre - ambience: jazz feutré {inferred} ::: ::shot[Wide, whole cellar, stage in the back]{id=wide} ::shot[Medium, piano and stage edge]{id=medium} ::shot[Close, top of the upright piano]{id=close} ::shot[Stone stairs going up to an open door, night street outside]{id=stairs} --- id=set-rue-serre entry=set ## La Rue de la Serre Rue piétonne de nuit, affiches de concerts sans texte lisible, pavés. :::identity Narrow fictional pedestrian street at night, wet-looking cobblestones, warm string lights between the facades, large planters with green plants, concert posters with abstract shapes and no readable text, soft indigo sky. No real landmark, no readable signs. ::: :::traits - time: nuit - light: guirlandes chaudes, ciel indigo - palette: sky=#1f2346, lights=#f4c46b, stone=#5a5560 - props: guirlandes d'ampoules, bacs de plantes, affiches sans texte, vitrine d'une boutique de musique ::: ::shot[Wide, full street in perspective]{id=wide} ::shot[Medium, planters and string lights]{id=medium} ::shot[Lit music shop window full of wooden metronomes, pavement in front]{id=vitrine}

Palettes des décors : proposées (inferred de fait, à valider), choisies pour que l'ambre et l'indigo ne teintent jamais le vert de Broc (bible §7).

6.2 Images de référence des décors (vides, sans personnage)

Code
{style:doux-3d} {set:set-cave-bouquet} Empty establishing shot, no characters, eye-level, 2:3 vertical framing, even soft lighting so the plate can be reused as a reference for every panel set in this place. Avoid: text, letters, numbers, logos, watermark, bottles, glasses, bar, real places.
Code
{style:doux-3d} {set:set-rue-serre} Empty establishing shot, no characters, eye-level, 9:16 vertical framing, string lights on, posters with abstract shapes only. Avoid: text, letters, numbers, logos, watermark, readable signs, real landmarks, cars.

Ces deux images s'enregistrent comme ::reference{src=… role=set} des entrées de décor (plan 14 D2) et se passent en référence avec reference.png pour chaque case.

6.3 Références des personnages secondaires

Code
{style:doux-3d} {character:mila.identity} Full body, front view, neutral relaxed standing pose, centered, plain warm off-white background (#f2eee5), soft contact shadow. Avoid: vegetable features, logos or text on clothing, drinks, extra limbs, watermark.
Code
{style:doux-3d} {character:tempo.identity} Full body, three-quarter view, standing still with the pendulum mid-swing, centered, plain warm off-white background (#f2eee5), soft contact shadow. Avoid: mouth, arms, hands, numbers or scale markings, text, being held, watermark.

6.4 Prompt dérivé d'une case (exemple complet : p-t3-c07)

Ce que produira recit prompts build pour la case 7. Les autres cases suivent le même gabarit avec l'action du §4.2.

Code
Soft expressive 3D render in the style of a family animated film, soft diffuse lighting, gentle shadows, no harsh specular highlights, no black outlines. Friendly smiling broccoli character, soft expressive 3D render in the style of a family animated film. Large rounded broccoli crown of dense green florets growing from the top of the head, about one third of total height, wider than the shoulders, with branching stems visible under it. Pear-shaped light leaf-green face, small rounded ears, big round eyes with cream whites, nearly black irises and a white highlight, thick dark green sculpted eyebrows, small round button nose, gentle closed-mouth smile with dimples. Slim tubular stem-like body, thin arms with rounded four-fingered mitten hands, short thick legs with rounded feet. Matte velvety soft-vinyl skin, single green palette (skin #7aac3d, crown #508132, brows #2a4a18). No clothing, no accessories. Same face, proportions, crown, colors, materials and 3D style as the canonical reference image. Setting: Narrow fictional pedestrian street at night, wet-looking cobblestones, warm string lights between the facades, large planters with green plants, concert posters with abstract shapes and no readable text, soft indigo sky. No real landmark, no readable signs. Shot: Medium, planters and string lights. Pose: focused, working, searching (codex-pet-v1 row "running": concentration, not a race). Action: Broc, focused, searches behind large planters along the street. A string of small light bulbs is tangled in his broccoli crown, his hands are free. Warm evening lighting that keeps the character's greens unchanged. Character is the clear focal point, other figures simpler and less detailed. Vertical 2:3 framing, leave the top fifth of the image calm for speech bubbles. Avoid: tuxedo, bow tie, cap, hat, glasses, headphones, clothing, shoes, gloves, jewelry, accessories, held objects, musical instrument in hand, black outline, flat 2D, cel shading, pixel art, changed face, changed eye color, teeth, angry expression, extra limbs, extra fingers, other humanized vegetables, text, letters, numbers, logo, watermark, signature.

Points propres à cet épisode :

  • La guirlande dans la couronne (case 7) est un élément du décor accroché à Broc, pas un accessoire porté : l'action le dit explicitement, et la relecture vérifie qu'aucune autre décoration n'a été ajoutée. Si l'outil en fait un « collier » ou une « couronne lumineuse », regénérer : c'est un interdit de la bible §2.5.
  • Tempo jamais tenu (cases 8 à 10) : chaque action le place « à côté », et avoid de Tempo contient « being held ».
  • Place pour les bulles : chaque prompt de case réserve une zone calme en haut de l'image (le lettrage est généré par le format, jamais dans l'image).
  • Niveau 0, sans IA : sans asset enregistré, chaque prompt= rend une image de remplacement (cadre neutre, nom du personnage, du décor et id du prompt, plan 14 D7). L'épisode est donc lisible et testable avant toute génération.

6.5 Variante économe (proposition, non prévue par les plans)

Au lieu de 12 images générées, deux plaques de décor (§6.2) par cadrage et la case de la planche posée dessus par ::sprite{character=broc pose=…} (plan 11 D9, SpriteImage statique). Avantage : Broc est exactement celui de la planche validée, sans dérive d'identité. Limites : une case de 192×208 agrandie sera floue en 800 px de large (plan 11 D9), et le spec toon (plan 08 §2) ne prévoit pas de bloc dans une case. À n'envisager qu'après les goldens de P7 ; ce scénario ne s'en sert pas.

7. Durées et rythme

  • Lecture au scroll : le rythme vient des gouttières (plan 08 §2, gutter). Petites (40 à 60) entre deux cases du même instant, grandes (160 à 200) pour une ellipse ou un changement de lieu (après 3, 5 et 9).
  • Vidéo : les durées du tableau §3.1 (4 à 6 s) sont des propositions pour le pont toon → motion, calées sur environ 2,5 mots par seconde de bulle plus 2 s de regard sur l'image. Le pont n'a pas encore d'attribut de durée par case : à porter par hold= ou dur= (attributs motion, plan 05) si W4 les accepte sur une case, sinon par la règle par défaut du pont.

8. Déclinaison dans les autres formats

FormatA du sens ?Comment
toonoui, sourcece document. Lecteur web, tranches 800 px (W3), PDF (PDF2)
motionouirecit render tempo-a-file.md --as motion --aspect 9:16 (pont toon → motion, plan 08 §0, W4) : une case = un plan 9:16 avec panoramique vertical, bulles en apparition, :::notes en voix off ou sous-titre. Les images 1422 de haut (cases 1, 6, 10) ont le panoramique le plus long. Durées : §3.1
storiesoui, réécritpas de pont toon → stories (seul stories → toon existe, plan 14 D6). Version courte de 5 cartes réécrite à la main avec les mêmes prompt= : c01 (hook, waving), c04 (tension, failed), c08 (review), c10 (payoff, jumping), c12 (call, waving, ::cta vers lebrocoli.fr). Respecte la règle des 3 à 7 scènes (bible §10, règle 1)
deckpeupas de pont depuis toon. Seul usage utile : un « making-of » par le pont bible → deck (plan 14 D6, plus tard) : une slide par entrée (Broc, Mila, Tempo, les deux décors), plus une slide « de la bible à la case » qui montre le prompt p-t3-c07 et son image
bookplus tardpas de pont toon → book. Quand plusieurs épisodes existeront : un recueil où chaque épisode est un chapitre avec ses cases en figures[] (légende = alt), et l'annexe back: [cast] (« Dramatis personae ») tirée de la bible (pont bible → book)
docsouipage docs.recit.dev › Formats › Webtoon, avec l'épisode en <StoryEmbed format="toon" /> et les fiches de Broc, Mila et Tempo (CharacterSheet, plan 14 D6)

9. Points d'attention

9.1 Accessibilité

  • alt obligatoire sur chaque case (plan 09 §2.3, exigé par le PDF balisé). Les 12 alt décrivent l'image (qui, où, quel geste), jamais le texte des bulles, qui est déjà du texte HTML lisible par un lecteur d'écran. Ils sont traduits dans tempo-a-file.en.md.
  • Ordre de lecture : dans chaque case, l'ordre du Markdown est l'ordre de lecture (encart, puis bulles de gauche à droite et de haut en bas, puis sfx). Les sfx sont décoratifs : à exposer avec aria-hidden sauf s'ils portent l'histoire (case 3 : « tic… tac… » porte l'indice ; à garder lisible).
  • Qui parle : sans :::dialogue, le locuteur n'est donné que par la queue de bulle, invisible pour un lecteur d'écran. À prévoir en W1 : un nom de locuteur dans le texte accessible de la bulle (aria-label), ou un attribut cast= sur :::bubble. Question ouverte, voir §10.
  • Mouvement : apparition des bulles au scroll désactivée sous prefers-reduced-motion ; en motion, panoramiques doux, aucun flash.
  • Contraste : bulles blanches à texte noir en Lexend, encarts sur fond crème #f2eee5, jamais de texte posé directement sur l'image sombre de la rue.

9.2 Mention IA et provenance

  • Chaque image de case générée a son fichier de provenance (p-t3-cNN.webp.json, kind: "asset", origin: "ai", aiGenerated: true, references: ["cast/broc/reference.png", <plaque du décor>], plan 14 D3 et D7).
  • La mention « généré par IA » apparaît dans les crédits de fin d'épisode et dans les métadonnées publiées (plan 14 §5.1 ; scenario.aiLabel: credits, valeur à aligner sur ce défaut). Elle n'est pas écrite dans le Markdown de l'épisode : elle vient de la provenance.
  • Publication bloquée tant que l'auteur et la licence de reference.png manquent (bible §1, §14). Un build --strict refuse aussi les traits inferred (Mila, Tempo, voix) et toute image de remplacement restante.

9.3 Cohérence et relecture

  • Relire chaque case générée contre la bible §2.5 : pas de vêtement, pas de casquette, pas de smoking, pas d'objet tenu, couronne intacte, verts inchangés par l'éclairage ambre ou indigo.
  • Mila et Tempo doivent rester moins détaillés que Broc (bible §8).
  • La vitrine de la case 8 ne doit montrer ni enseigne lisible ni marque.

10. Questions ouvertes (à reporter aux plans propriétaires)

  1. Longueur. La bible §10 (règle 1) dit « 3 à 7 scènes » par récit ; un épisode de webtoon en demande 8 à 12. Proposition : la règle vaut pour stories et motion courts, et le toon a sa propre fourchette (8 à 15 cases). À trancher dans la bible.
  2. Plusieurs personnages par scène. cast= (plan 14 D4) ne nomme qu'un personnage ; Mila et Tempo ne sont ici que dans l'action des prompts. Proposition : cast="broc mila" (liste séparée par des espaces), vérifiée au build. À trancher en IA1.
  3. Locuteur d'une bulle. :::bubble n'a pas d'attribut de personnage (plan 08 §2). Lien avec :::dialogue (plan 14 D6, « plus tard ») et l'accessibilité (§9.1).
  4. cast: et src dans le JSON (§5) : champ racine ou settings ; src facultatif quand prompt= est présent.
  5. Attribut de :::dialogue : la bible §10 écrit :::dialogue{who=broc}, le plan 14 D4 écrit :::dialogue{cast mood}. Ce scénario n'en utilise pas ; à aligner sur cast= dans la bible.
  6. Gabarit broc-sortie : la bible §10 cite cinq beats, le plan 14 ne livre que three-act et hook-tension-payoff. Le gabarit est déclaré ici en entry=beats (§4.2) ; à déplacer dans la bible partagée de scenario-lebrocoli.