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.

- Sur le sous-dialogue, ajoutez le flag
Libretto.Flags.Subdialogue.Staging.RandomBarksdans Subdialogue Details ▸ Flags. Il cesse alors de jouer de haut en bas et choisit à la place une de ses lignesReplyau hasard. - Structurez-le comme un seul
Choiceen tête avec unReplypar 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. -
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 Selectorquand l'asset comporte plusieurs sous-dialogues. L'acteur prêt à l'emploiALBRShowcaseBarkerpilote cela pour vous depuis un volume de proximité, en mode minuteur ou interaction.
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.
- 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.
- 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. - 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.
- Sur les lignes
Text/Replyde votre sous-dialogue de barks, ajoutez le flagLibretto.Flags.Lines.Subtitle3D. - À 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.
-
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) etFP(Final Pass — le texte de la ligne).
-
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). - 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.

- 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). - 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 àSentet Libretto écrit un dossier de lot datéYYYY.MM.DD-HH.MM(un CSV par dialogue + unMerged.csvà transmettre). - 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(ouMissingCulturesi 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.

- 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. - 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