Getting started¶
De quoi ai-je besoin avant de pouvoir écrire un dialogue ?¶
Un Blueprint de personnage que Libretto reconnaît. Un dialogue attribue chaque réplique à un
personnage, donc avant d'écrire quoi que ce soit il vous faut au moins un personnage que votre projet
peut incarner. Rendre un personnage utilisable ne prend qu'une étape : implémenter l'interface
LBRDialogueCharacter sur son Blueprint.

- Choisissez ou créez le Blueprint de personnage qui jouera la scène — généralement le pawn/character que votre jeu utilise déjà.
- Implémentez l'interface. Soit vous dérivez le Blueprint de la base fournie
ALBRSimpleDialogueCharacter(elle implémente déjà l'interface et vous donne unCharacterName), soit vous ajoutezLBRDialogueCharacterà une classe existante via Class Settings ▸ Implemented Interfaces. - Donnez-lui un nom d'affichage (optionnel mais recommandé) en surchargeant
LBRGetCharacterName— préférez un texte localisé, puisque le nom peut apparaître dans les sous-titres. - Répétez pour chaque personnage participant. Un Blueprint par personnage est la configuration la plus simple.
Piège
La plupart des projets implémentent l'interface une seule fois, sur une classe de base
partagée, puis créent un Blueprint par personnage à partir d'elle — vous ne refaites pas cela
par personnage. Pour des voix sans corps dans le niveau (un appel téléphonique, un narrateur),
dérivez plutôt de ULBRIntangibleCharacter : il ne nécessite que des paramètres de voix et
aucun acteur dans la scène.
Voir aussi : Characters · Intangible characters
Je veux juste faire parler deux personnages — par où commencer ?¶
Créez un asset Dialogue, ajoutez les deux personnages, écrivez l'échange, déposez une Dialogue Instance dans votre niveau et générez à partir d'elle, puis jouez-la. Vous n'avez pas besoin de stage, de caméras ni de cinématique : sans stage, la scène se joue en mode 3C et conserve la caméra normale du jeu, en pilotant l'animation, l'audio et les sous-titres des personnages déjà présents dans votre niveau.

- Créez le Dialogue. Clic droit dans le Content Browser ▸ Dialogue, nommez-le
D_MyScene, et ouvrez-le dans le Dialogue Editor. - Ajoutez les deux personnages participants. Utilisez les boutons jaunes de la barre d'outils du
Dialogue Editor pour ajouter chaque Blueprint de personnage — ceux-ci doivent implémenter
l'interface
LBRDialogueCharacter(voir De quoi ai-je besoin avant de pouvoir écrire un dialogue ?). Ce sont les mêmes Blueprints dont les acteurs vivent dans votre niveau. - Écrivez l'échange. Ajoutez une première réplique Text et définissez son Speaker et son
Listener. Laissez ensuite l'éditeur écrire les allers-retours pour vous :
Shift+Enter— nouvelle réplique avec Speaker et Listener inversés (l'autre personnage répond).Ctrl+Enter— nouvelle réplique avec le même Speaker et Listener (le même personnage continue de parler).
- Placez une Dialogue Instance. Le plus rapide : glissez l'asset
D_MyScenedu Content Browser directement dans le niveau — cela fait apparaître un acteurALBRDialogueInstancedont l'Input Dialogue est déjà réglé sur ce dialogue. (Vous pouvez aussi placer unALBRDialogueInstancevide et régler Input Dialogue à la main.) Assurez-vous que le niveau contient également les deux acteurs de personnage. - Générez. Avec l'Instance sélectionnée, utilisez les boutons de son panneau Details (catégorie General), dans cet ordre : si vous voulez de l'audio parlé, pressez d'abord Generate Assets pour produire le TTS (voir Voices), puis pressez Generate Sequences. Chacun ouvre un assistant où chaque sous-dialogue est déjà coché ; pressez Run.
- Jouez-la. Pressez Preview pour la voir immédiatement (entrée suivante), ou appelez
StartDialogueInstancedepuis votre jeu pour la déclencher pour de vrai (voir Faites-la jouer dans mon jeu).
Piège
Le générateur peuple la scène à partir des acteurs déjà présents dans le niveau : pour chaque
personnage il prend le premier acteur de la classe correspondante qu'il trouve
(FindCharacterByClass). Avec une seule instance de chaque classe de personnage, cela
fonctionne tout seul. Si plusieurs acteurs partagent une classe, le choix automatique peut ne pas
être celui que vous voulez — vous devez alors les désambiguïser explicitement (voir
Characters). Et rien ne se joue tout seul — une Instance
déposée ne se joue pas automatiquement ; c'est vous qui la déclenchez (étape 6).
Voir aussi : Dialogue Editor · Generation overview · Runtime · Core concepts
Comment le tester sans câbler la moindre logique de jeu ?¶
Sélectionnez la Dialogue Instance et pressez Preview dans son panneau Details. Cela lance le Play-In-Editor avec les tags du dialogue pré-réglés et le joue immédiatement — aucune interaction, déclencheur ni logique de jeu requis.

- Sélectionnez la Dialogue Instance dans le niveau.
- Dans son panneau Details (catégorie General), pressez Preview.
- Un court assistant d'options s'ouvre ; pressez Run. Le PIE démarre et le dialogue se joue.
Piège
Preview joue ce qui a été généré, pas ce que vous venez de taper — régénérez avant de prévisualiser à nouveau. Si vous avez changé du texte parlé, lancez d'abord Generate Assets, puis Generate Sequences ; si vous n'avez changé que la mise en scène ou les caméras, Generate Sequences seul suffit. Par défaut, Auto End Play ferme la session PIE quand le dialogue se termine ; désactivez-le dans l'assistant si vous voulez continuer à jouer ensuite.
Voir aussi : Generation overview · Runtime
Comment le faire réellement jouer dans mon jeu ?¶
Appelez StartDialogueInstance sur la Dialogue Instance depuis le Blueprint ou le C++, au moment
où votre jeu doit démarrer la conversation (une interaction, un volume déclencheur, une étape de
quête…). Une Instance générée ne se joue jamais d'elle-même.
- Obtenez une référence à l'acteur Dialogue Instance (placez-le dans le niveau, ou faites-le apparaître).
- Appelez
StartDialogueInstancequand vous voulez que le dialogue commence. - Liez les callbacks de fin de dialogue si vous devez réagir à sa conclusion.
Pas d'instance dans le niveau ?
Pour des dialogues purement vocaux ou ponctuels qui ne nécessitent pas d'acteur placé (un appel
téléphonique, un narrateur), générez le dialogue en générique (clic droit sur l'asset ▸
Libretto ▸ Generate Sequences…) et démarrez-le à l'exécution avec les fonctions statiques
StartGenericDialogue* — elles font apparaître une instance transitoire pour vous.
Voir aussi : Runtime · Blueprint API · Priorities