Aller au contenu

Contenu vivant

Je veux que des PNJ lancent des répliques ponctuelles au hasard quand le joueur passe

Transformez un sous-dialogue ordinaire en source de barks avec un seul flag — après quoi il tire une seule réponse au hasard à chaque démarrage, et vous le déclenchez depuis le gameplay comme un dialogue « générique » jetable. Aucune caméra ni baking : il joue simplement une réplique là où vous le faites apparaître.

Le flag RandomBarks sur un sous-dialogue

  1. Sur le sous-dialogue, ajoutez le flag Libretto.Flags.Subdialogue.Staging.RandomBarks dans Subdialogue Details ▸ Flags. Il cesse alors de jouer de haut en bas et choisit à la place une de ses lignes Reply au hasard.
  2. Structurez-le comme un seul Choice en tête avec un Reply par bark en dessous. Un bark peut être d'une ou plusieurs lignes, et impliquer plus d'un personnage — chaque reply est un embranchement libre, tiré et joué en entier.
  3. Déclenchez-le avec le nœud Blueprint Start Generic Dialogue (donnez-lui l'asset Dialogue et une transform d'apparition), ou les variantes …With Selector quand l'asset comporte plusieurs sous-dialogues. L'acteur prêt à l'emploi ALBRShowcaseBarker pilote cela pour vous depuis un volume de proximité, en mode minuteur ou interaction.

    L'acteur barker de la vitrine dans le niveau

Piège

Les ID de lignes sont des identifiants stables, pas un ordre de lecture — ils peuvent paraître non séquentiels (0, 1, 2, 7, 9) et cela n'a jamais d'importance, car le tirage se fait à partir du type de ligne. Vous voudrez souvent Do Once, Display et Availability sur des replies individuels pour conditionner des barks précis à l'état du jeu.

Voir aussi : Random barks · Barks — le flag RandomBarks

Je veux que mes barks s'effacent quand une scène importante démarre (et ne se répètent pas)

Donnez aux barks une faible priorité de dialogue — le système de priorité ignore simplement un bark chaque fois qu'une scène de priorité supérieure tourne déjà avec un personnage en commun — et reposez-vous sur l'anti-répétition intégrée pour que le même bark ne se joue jamais deux fois de suite. Les deux sont automatiques une fois les priorités réglées.

  1. Réglez une Dialogue Priority faible sur les barks et une plus élevée sur vos scènes clés. Quand un bark tente de démarrer alors qu'un dialogue plus important détient un personnage partagé, il est ignoré — le minuteur continue de se déclencher, mais rien ne se joue jusqu'à la fin de la scène.
  2. L'anti-répétition est activée par défaut : après le tirage d'une réponse, elle est enregistrée (sous Libretto.RuntimeFlags.BarkHistory) pour que le tirage suivant l'évite. Seul le bark le plus récent est mémorisé — suffisant pour éviter une répétition immédiate.
  3. Pour un historique plus riche (ne jamais répéter avant épuisement de tous, pondération, plusieurs tirages en arrière), sous-classez l'instance de dialogue et surchargez les BlueprintNativeEvents CanPlayRandomBark / MarkBarkPlayed.

Piège

Un personnage ne peut être que dans un seul dialogue à la fois. Un bark et une scène scriptée qui partagent un personnage se disputeront ce slot — arbitré par la priorité, pas par un verrou strict. Si des PNJ de foule continuent d'entrer en collision avec une scène scriptée sur le même personnage, séparez barks et scènes dans des assets Dialogue distincts afin que leurs listes de personnages ne se chevauchent jamais.

Voir aussi : Barks et priorités de dialogue · Dialogue Priorities

Je veux que le sous-titre d'un bark flotte au-dessus du locuteur, pas sur le HUD

Ajoutez le flag de ligne Libretto.Flags.Lines.Subtitle3D à la ligne du bark — son sous-titre est alors rendu dans l'espace du monde, au-dessus du locuteur, au lieu du HUD 2D. C'est le choix habituel pour les répliques d'ambiance prononcées en plein monde plutôt que dans une conversation cadrée.

  1. Sur les lignes Text / Reply de votre sous-dialogue de barks, ajoutez le flag Libretto.Flags.Lines.Subtitle3D.
  2. À l'exécution, le gestionnaire de dialogue donne à chaque ligne portant le flag un widget dans l'espace du monde au-dessus de son locuteur, qui a priorité sur le sous-titre du HUD pour cette ligne.

Piège

Le flag est par ligne, pas par sous-dialogue — posez-le sur les lignes de bark que vous voulez voir flotter, et laissez-le désactivé sur celles qui doivent rester sur le HUD.

Voir aussi : Barks — sous-titres 3D · Sous-titres

Je veux écrire des dialogues dans un tableur et les importer

Écrivez vos lignes dans un tableur, exportez un CSV séparé par |, et utilisez Import Dialogue — Libretto crée des dialogues entiers avec leur texte et leurs lignes Speaker déjà remplies. C'est la façon la plus rapide d'amener du contenu écrit en masse dans l'éditeur.

  1. Préparez un CSV avec les en-têtes fixes Title (le nom du Dialogue), Character (le nom du locuteur), Intention (mappé sur la Stage Direction de la ligne) et FP (Final Pass — le texte de la ligne). La fenêtre d'options d'Import Dialogue

  2. Utilisez Import Dialogue dans le menu déroulant Libretto de la barre d'outils. Dans sa fenêtre d'options, donnez un préfixe de nom (p. ex. D_QX_), un chemin commençant par /Game/ (p. ex. /Game/Dialogues/QX), et un mapping de chaque nom de personnage vers son Blueprint (créez ces Blueprints au préalable pour éviter le mapping à la main).

  3. Si un Dialogue portant ce nom existe déjà, les lignes sont ajoutées à son premier sous-dialogue au lieu de créer un nouvel asset.

Piège

Enregistrez le CSV en UTF-8, avec uniquement le séparateur | et le délimiteur de chaîne ", et cochez « Edit filter settings » lors de l'enregistrement depuis LibreOffice — puis fermez LibreOffice avant d'importer. Ces mêmes réglages s'appliquent à chaque CSV que Libretto lit.

Voir aussi : Importer un dialogue depuis un CSV

Je veux envoyer mes dialogues en traduction et les récupérer

Configurez une cible de localisation une fois, déplacez les lignes finalisées vers ToLocalize, exportez un lot daté, et réimportez les CSV renvoyés — Libretto rattache automatiquement chaque ligne à sa réplique. Les assets Dialogue sont la source unique de vérité ; la boucle est pilotée par des statuts par ligne.

Le Localization Dashboard avec une langue native et une culture ajoutée

  1. Configuration unique : dans Tools ▸ Localization Dashboard, ajoutez chaque dossier de dialogues à une target (ajoutez /*, décochez les autres cases « Gather from »), réglez la langue native plus au moins une langue localisée, puis lancez un Gather Text initial (enregistrez d'abord les dialogues).
  2. Exporter un lot : déplacez les lignes vers ToLocalize (le portail d'export — seules celles-ci sortent), puis Content Browser ▸ Export Dialogue To CSV File ▸ Localization. Avec Change Line(s) Status coché, les lignes exportées passent à Sent et Libretto écrit un dossier de lot daté YYYY.MM.DD-HH.MM (un CSV par dialogue + un Merged.csv à transmettre).
  3. Réimporter : Import Localization dans le menu déroulant Libretto, choisissez le(s) CSV renvoyé(s). Les lignes sont rattachées par dialogue + index ; elles deviennent Localized (ou MissingCulture si certaines langues sont encore vides).

Piège

Le statut d'une ligne renvoyée doit toujours être Sent, sinon tout l'import est annulé plutôt qu'appliqué à moitié. Distinguez la Base loca (la langue de base envoyée en traduction) de la Multi loca (toutes les langues livrées) — laquelle un export touche est déduit des langues que vous choisissez. Et commitez les fichiers .manifest / .archive sous Content/Localization/ en même temps que le Dialogue.

Voir aussi : Localisation & import/export · Le cycle de vie des statuts · Exporter un lot

J'ai modifié une ligne déjà traduite — que se passe-t-il ?

Libretto protège les lignes traduites : en modifier une fait apparaître une popup demandant si l'on invalide sa traduction (Different) ou si on la conserve telle quelle — il ne jette jamais silencieusement un travail qui a un coût. Le même garde-fou se déclenche en lot pendant l'import lorsque du texte entrant écraserait des lignes protégées.

La popup Safeguard line lors d'une nouvelle édition

  1. Modifier le texte d'une ligne protégée fait apparaître la popup Safeguard line, avec une case à cocher par type concerné (Base loca / Multi loca / Audio) et trois choix : Update Status (les statuts passent à Different, l'Audio à ToRetake — la ligne est reprise dans un futur lot), Keep Status (accepter que le sous-titre soit désormais désynchronisé), ou Cancel la modification.
  2. Pour relire les embranchements sans un cycle de traduction complet, utilisez Export Dialogue To CSV File ▸ Choices And Replies (CSV des choices et replies du dialogue), ou Export Dialogue To Txt file** (tout le dialogue en ordre de lecture).

Piège

Modifier le texte natif d'une ligne efface ses traductions, forçant une retraduction des autres langues. Et un simple copier/coller perd la localisation d'une ligne — utilisez le collage spécial pour emporter la localisation et les assets associés avec les lignes copiées.

Voir aussi : Réédition d'une ligne traduite — le Safeguard · Exporter les dialogues en CSV