**Language / Langue :** **FR** | [[en:yaml:dialogues|EN]]
====== Dialogues et séquences ======
Un texte de salle peut devenir une **séquence de répliques** : le joueur clique pour faire avancer la conversation, avec un locuteur, un portrait, un cadre et un fond.
Tout est facultatif. Une séquence sans portrait ni fond reste une suite de répliques affichées l'une après l'autre.
===== Une première séquence =====
salles:
- id: taverne
texte:
type: sequence
repliques:
- locuteur: Mara
texte: "Vous arrivez tard. La route était mauvaise ?"
- locuteur: Vous
texte: "Disons que je ne l'ai pas choisie."
Le joueur voit la première réplique, clique, puis voit la seconde. Une fois la séquence terminée, la salle affiche ses choix normalement.
Dans un scénario anglais, utilisez ''replies:'' à la place de ''repliques:'' et ''text:'' à la place de ''texte:''. Les deux langues restent acceptées par le moteur.
===== Registre de personnages =====
Plutôt que de répéter le nom et le portrait à chaque réplique, déclarez vos personnages une fois pour tout le scénario.
personnages:
mara:
nom: Mara
portrait: /scenarios/images/mon-jeu/mara.png
garde:
nom: Le garde
portrait: /scenarios/images/mon-jeu/garde.png
position-portrait: droite
salles:
- id: poste
texte:
type: sequence
repliques:
- personnage: mara
texte: "Laissez-nous passer."
- personnage: garde
texte: "Personne ne passe cette nuit."
Une réplique qui ne précise que ''personnage:'' hérite du nom, du portrait et de la présentation enregistrés. N'importe quelle propriété peut être redéfinie sur la réplique : elle prime alors sur le registre.
- personnage: garde
texte: "Bon... entrez vite."
portrait: /scenarios/images/mon-jeu/garde-souriant.png
===== Héritage entre répliques =====
Une réplique qui ne redéfinit rien **conserve** le personnage, le portrait et le fond de la précédente. C'est ce qui permet d'écrire une longue tirade sans répéter le locuteur.
repliques:
- personnage: mara
texte: "J'ai connu cette ville avant l'incendie."
- texte: "On y venait pour le marché aux épices."
- texte: "Il n'en reste rien."
Pour retirer explicitement un élément, utilisez ''null''.
- texte: "La voix vient de nulle part."
portrait: null
===== Valeurs par défaut =====
''dialogue-defaut:'' fixe la présentation de toutes les séquences du scénario. Chaque séquence, puis chaque réplique, peut s'en écarter.
dialogue-defaut:
position-locuteur: haut-gauche
position-portrait: gauche
taille-portrait: 30
===== Portraits =====
* ''portrait:'' image affichée à côté du texte.
* ''position-portrait:'' ''gauche'' ou ''droite''.
* ''taille-portrait:'' pourcentage de la hauteur de la zone narrative.
* ''decalage-portrait-x:'' et ''decalage-portrait-y:'' déplacent le portrait.
* ''chevauchement-portrait:'' fait mordre le portrait sur le cadre du dialogue.
- personnage: mara
texte: "Approchez, je ne mords pas."
taille-portrait: 43
decalage-portrait-y: 18
chevauchement-portrait: 24
===== Nom du locuteur =====
''locuteur:'' affiche un nom sans passer par le registre.
- locuteur: Mara
texte: "Vous arrivez tard."
Pour lui donner sa propre typographie, écrivez ''locuteur:'' sous forme de bloc :
- locuteur:
nom: Mara
couleur: "#d8c9a3"
police: Georgia
texte: "Vous arrivez tard."
Deux clés complètent la présentation, sur la réplique ou dans ''dialogue-defaut:'' :
* ''position-locuteur:'' ''haut-gauche'', ''haut-droite'', ''bas-gauche'', ''bas-droite''.
* ''cadre-locuteur:'' cadre propre à l'étiquette du nom.
Sans couleur imposée, le moteur choisit automatiquement du noir ou du blanc selon le fond réellement affiché, pour que le nom reste lisible. Une couleur écrite par l'auteur est toujours respectée.
===== Fonds =====
''image-fond:'' pose une image derrière la scène. Elle se déclare sur une réplique, sur la séquence, ou directement sur la salle, même sans dialogue.
salles:
- id: laboratoire
image-fond: /scenarios/images/mon-jeu/labo.png
mode-fond: couvrir
texte: "Les cuves bourdonnent dans la pénombre."
Le fond **reste actif dans les salles suivantes** tant qu'il n'est pas remplacé ou supprimé avec ''image-fond: null''.
''mode-fond:'' choisit le cadrage :
^ Valeur ^ Effet ^
| ''adapter'' | l'image entière est visible, en conservant ses proportions |
| ''couvrir'' | l'image remplit la zone, quitte à rogner les bords |
| ''etirer'' | l'image est déformée pour occuper exactement la zone |
| ''centrer'' | l'image garde sa taille, centrée dans la zone |
| ''mosaique'' | le motif est répété |
Sans ''mode-fond:'', l'image entière est affichée en conservant ses proportions. Une image animée fonctionne comme une image fixe.
===== Cadres =====
Un cadre entoure la bulle de dialogue. Deux façons de l'obtenir.
**À partir d'une image**, découpée en neuf zones pour s'étirer sans déformer les coins :
cadre: /scenarios/images/mon-jeu/cadre.png
decoupe-cadre: 24
**Sans aucun fichier**, en décrivant le trait :
cadre:
epaisseur: 2
couleur: "#d8c9a3"
fond: "#1b1a17"
coins: arrondis
rayon: 12
style: plein
* ''coins:'' ''carres'' ou ''arrondis'' (avec ''rayon:'').
* ''style:'' ''plein'', ''tirets'', ''pointille'' ou ''double''.
===== Animation du texte =====
Par défaut, une réplique s'affiche **immédiatement**. L'animation est un choix, pas une obligation.
- personnage: mara
texte: "Chaque lettre arrive à son tour."
animation:
type: caractere
vitesse: 20
''type:'' vaut ''caractere'' (lettre à lettre) ou ''fragment'' (par groupes de mots). ''vitesse:'' est le délai en millisecondes.
Un premier clic termine l'animation en cours, le suivant passe à la réplique suivante. Les liens, mots interactifs, boutons et glisser-déposer ne font **jamais** avancer la séquence par accident : le joueur peut les utiliser librement.
===== Transitions =====
Le fond, le portrait et la bulle ont chacun leur transition.
- personnage: garde
texte: "Qui va là ?"
transition:
portrait:
type: glissement
duree: 300
direction: droite
dialogue:
type: fondu
duree: 220
Une valeur simple s'applique à l'ensemble :
transition: fondu
''type:'' vaut ''glissement'' (l'élément entre en coulissant) ou ''fondu'' (apparition en douceur, comportement par défaut). ''duree:'' est exprimée en millisecondes, et ''direction:'' n'a de sens que pour un glissement.
===== Masquer les contrôles =====
''masquer-controles: true'' cache les boutons pendant une séquence, pour une scène qui doit se dérouler sans interruption. Ils réapparaissent à la fin.
texte:
type: sequence
masquer-controles: true
repliques:
- texte: "La porte se referme derrière vous."
===== Mélanger texte et séquences =====
Un champ ''texte:'' accepte une liste : textes simples et séquences s'y succèdent dans l'ordre écrit.
texte:
- "Vous poussez la porte du bureau."
- type: sequence
repliques:
- personnage: mara
texte: "Je vous attendais."
- "Elle referme le dossier posé devant elle."
Le texte qui suit une séquence n'apparaît qu'une fois celle-ci terminée. Cela fonctionne aussi dans un événement, une action ou un encadré HUD.
===== Réutiliser le texte d'une autre salle =====
''%%[[SALLE:n]]%%'' insère le contenu narratif de la salle numéro //n//. Utile pour une réplique récurrente écrite une seule fois.
- personnage: garde
texte: "Toujours la même réponse.[[SALLE:12]]"
La forme anglaise est ''%%[[ROOM:n]]%%''. Les renvois circulaires sont détectés et arrêtés.
===== Sur les autres supports =====
Les séquences s'affichent dans toutes les interfaces web et desktop : classique, cartes, deck, téléphone, plein écran, et dans un encadré HUD.
Discord, le Terminal et l'export PDF n'ont pas de bulle de dialogue : ils produisent une lecture linéaire ''Locuteur : texte'', dans l'ordre des répliques. Le scénario reste jouable partout.
===== Voir aussi =====
* [[fr:yaml:texte|Texte et mise en forme]]
* [[fr:yaml:medias|Images, sons et vidéos]]
* [[fr:yaml:hud|Encadrés HUD]]
* [[fr:ui:presentation|Modes d'interface]]