Table des matières
Language / Langue : FR | EN
Image maps / Point & clic (YAML)
Les image maps transforment une image en zone interactive. L'auteur fournit deux fichiers :
- une image visible, affichée au joueur ;
- un masque PNG, où chaque couleur plate correspond à une zone.
La fonctionnalité est interactive sur web, desktop et export HTML5 standalone. Sur Discord et terminal, l'image reste affichée comme média lisible, sans interaction point & clic.
Insérer une image map
Dans un texte de salle ou dans un encadré HUD :
texte: "[[#map:scene:https://cyril-fiesta.fr/jdr-bot/scenarios/images/showcase/taverne.png|https://cyril-fiesta.fr/jdr-bot/scenarios/images/showcase/taverne-masque.png]]"
Format général :
[[#map:id:image.png|masque.png]]
ididentifie la map dans la salle.image.pngest l'image visible.masque.pngest l'image de masque : chaque couleur pleine représente une zone.
Déclarer les zones
Les zones se déclarent dans la salle avec la clé zones: puis l'id de la map.
zones: scene: couleurs: - couleur: "#FF0000" clic: parler_barman highlight: true - couleur: "#0000FF" clic: examiner_salle survol-tooltip: "Regardez attentivement la salle..." highlight: true - couleur: "#00FF00" survol-tooltip: "Une sortie vers la rue." survol-event: observer_sortie
Chaque entrée de couleurs: associe une couleur du masque à une interaction.
Options de zone
couleur:: couleur HTML du masque, au format#RRGGBB.clic:: id d'un événement local déclenché au clic.survol-tooltip:: texte affiché dans une bulle au survol.survol-event:: id d'un événement local déclenché au survol.highlight: true: affiche la zone en surbrillance au survol.couleur-affichage:: couleur utilisée pour la surbrillance ou la peinture permanente.mode-affichage::pleinoucontour.etat::visible,desactiveouinvisible.
Événements associés
Les ids référencés par clic: ou survol-event: doivent correspondre à des événements de la salle.
evenements: - id: parler_barman texte: | Le barman grommelle :+n+ **« On commande ou on dégage. »** faire: "parle_barman.=.1" - id: examiner_salle texte: "La salle est basse de plafond et sent la bière éventée." - id: observer_sortie once: true texte: "L'air frais de la rue passe sous la porte."
Les événements associés gardent leurs champs habituels : si:, faire:, vers:, texte:, texte-ko: et once:. Les clés visible-si: et grise-si: s'appliquent à la map entière. Pour conditionner une zone précise, utilisez etat: et ses couches si:.
État d'une zone
L'état est vérifié à l'affichage et au moment du clic.
| Valeur | Effet |
|---|---|
visible | État par défaut. Le clic, le survol et le tooltip fonctionnent. |
desactive | Le clic et la surbrillance de survol sont coupés. Le tooltip reste disponible. Si couleur-affichage: est définie, la zone reste peinte. |
invisible | Le clic, le survol et le tooltip sont coupés. |
Une zone peut porter plusieurs couches si:. Elles sont évaluées dans l'ordre et ne remplacent que les clés qu'elles déclarent.
zones: scene: couleurs: - couleur: "#F21010" clic: trouver_cle highlight: true si: - si: "v_cletrouvee_v.=.1" etat: desactive couleur-affichage: "#777777" mode-affichage: plein
Une zone décorative peut utiliser etat: et couleur-affichage: sans avoir de clic:. Une zone desactive ou invisible ne peut pas être déclenchée par un clic forcé envoyé au serveur.
once: zone / once: zone-salle
Quand une même couleur du masque contient plusieurs zones séparées, chaque composante peut être déclenchée individuellement :
once: zone: chaque composante ne se déclenche qu'une seule fois par partie ;once: zone-salle: les composantes se réarment à chaque retour dans la salle.
evenements: - id: toucher_bouteille once: zone-salle texte: "Vous inspectez une bouteille vide." faire: "bouteilles.+.1"
once: couleur / once: couleur-salle
Ces deux valeurs regroupent toutes les taches qui utilisent la même couleur du masque :
once: couleur: le premier clic consomme toute la couleur pour le reste de la partie ;once: couleur-salle: le premier clic consomme toute la couleur jusqu'à la prochaine visite de la salle.
evenements: - id: toucher_bouteilles once: couleur texte: "Toutes les bouteilles portent le même symbole."
Utilisez once: zone pour traiter séparément plusieurs objets d'une même couleur. Utilisez once: couleur quand un seul clic doit les désactiver ensemble.
apres-clic: - marquer les zones consommées
Sur une zone dont l'événement de clic utilise l'un des modes zone ou couleur, la clé apres-clic: choisit le rendu une fois l'interaction consommée :
| Valeur | Effet |
|---|---|
masquer | Plus de highlight au survol, zone inerte. |
fixe | Highlight affiché en permanence (déjà cliqué). |
“#RRGGBB” | Highlight permanent de cette couleur. |
La clé optionnelle apres-mode: (plein ou contour) change le type de highlight de la marque - par exemple contour au survol, mais remplissage plein une fois l'élément trouvé. Idéal pour un cherche-et-trouve :
zones: scene: couleurs: - couleur: "#00FFF3" clic: toucher_bouteille highlight: true contour-seul: true apres-clic: "#000000" apres-mode: plein
Avec les variantes zone et couleur, les marques persistent au retour dans la salle. Les variantes zone-salle et couleur-salle se réarment à chaque visite.
Dans un HUD
Une image map peut rester affichée en permanence dans un encadré :
encadre: - position: haut hauteur: 42 texte: "[[#map:scene:/scenarios/images/taverne.png|/scenarios/images/taverne-masque.png]]"
Les textes d'événements apparaissent alors dans le flux principal pendant que la scène reste cliquable.
Conseils
- Utiliser un masque PNG sans compression destructrice, avec des aplats nets.
- Éviter les couleurs trop proches dans le masque.
- Garder une zone par couleur quand c'est possible ; utiliser
once: zoneouonce: zone-sallesi une couleur représente plusieurs éléments identiques. - Prévoir un choix classique de secours si la navigation dépend entièrement du point & clic hors du mode
ui: plein-ecran.
Voir aussi : Tooltips interactifs, Éléments cliquables, HUD.
