Utilisation détaillée

Cette page présente les éléments du système dans l'ordre habituel de leur utilisation : le point de gestion global, la logique centrale, les speakers, les conversations, puis les données d'affichage et les entrées.

1. Game Instance Subsystem

Le Game Instance Subsystem est le point d'accès global d'ADS Dialog System. Il est disponible pendant toute la session de jeu.

Accès

Depuis Blueprint, utilisez la fonction Get Dialog System. Elle renvoie directement la logique de dialogue active : le résultat de Get Dialog Logic (Typed).

Fonction Get Dialog System

Les fonctions

FonctionDescription
Get Dialog SystemRenvoie la logique de dialogue active, c'est-à-dire le résultat de Get Dialog Logic (Typed).

La logique Blueprint

Le Subsystem utilise BP_ADS_DialogSystem comme logique centrale. Cette logique Blueprint est créée et conservée par le Subsystem pendant la session de jeu. Elle est séparée du Subsystem afin de pouvoir être plus facilement étendue dans votre projet, sans modifier le fonctionnement central du système.

2. Logique centrale BP_ADS_DialogSystem

La logique centrale est l'espace où vous reliez ADS Dialog System à votre projet. Elle peut être étendue dans Blueprint pour appliquer vos règles de jeu, ouvrir des widgets ou réagir au déroulement d'une conversation.

Les paramètres

NomDescription
Acceptable DistanceDistance utilisée pour considérer qu'un speaker est suffisamment proche lors d'une conversation.
Auto NextValeur par défaut qui active la progression automatique vers la réplique suivante. Elle peut être modifiée au Runtime.
Seconds Per WordDurée utilisée pour calculer le passage automatique à la réplique suivante selon le nombre de mots.
Min DurationDurée minimale d'affichage d'une réplique, même lorsque son texte est court.
Dialog ContextInput Mapping Context utilisé pour les commandes de dialogue.
Travel ContextInput Mapping Context utilisé pour les conversations en mode Travel.
Camera PresetsEnsemble des préréglages de caméra disponibles pour les répliques.
Current IETFValeur par défaut du code de culture IETF utilisé par le système, par exemple en-US.
Dynamic Text Data TableData Table utilisée pour remplacer les balises de texte dynamique, par exemple {{TownName}}.

3. Actor Component AC_ADS_Dialog

AC_ADS_Dialog est le component qui relie un Actor de votre jeu au système de dialogue. Ajoutez-le au Blueprint de chaque Actor qui doit être utilisé comme speaker, puis configurez ses données et ses conversations.

Ajouter et brancher le component

Dans le Blueprint du speaker, ajoutez AC_ADS_Dialog depuis le panneau Components. Le component doit rester attaché à l'Actor concerné. Configurez ensuite ses données de speaker et les conversations auxquelles cet Actor peut participer.

Les paramètres

NomDescription
Acceptable DistanceDistance à laquelle l'interaction avec le speaker est considérée comme possible.
Collision RadiusRayon utilisé par le component pour sa zone de détection.
AvatarDonnées d'avatar utilisées pour représenter le speaker dans le dialogue.
ConversationsListe des conversations associées à ce speaker.

Les fonctions

FonctionDescription
Find Nearest NPCRecherche le NPC le plus proche pouvant être utilisé par le dialogue.
Find ConversationRecherche une conversation associée au speaker.
Is Conversation EnabledIndique si une conversation est actuellement activée.
Hide WidgetMasque le widget de dialogue associé au component.

4. Speaker Asset PDA_Speakers

PDA_Speakers est l'asset de données utilisé pour définir un speaker. Créez un asset enfant pour chaque speaker de votre projet, par exemple DA_Player pour le joueur ou DA_NPC pour un NPC, puis associez-le au component AC_ADS_Dialog de l'Actor correspondant.

Les paramètres

NomDescription
Speaker NameNom affiché pour le speaker dans les dialogues.
AvatarDéfinition visuelle de l'avatar du speaker.

5. Conversation Asset PDA_ConversationParent

PDA_ConversationParent est l'asset parent de vos conversations. Créez un asset enfant pour chaque conversation de votre projet, puis ajoutez cet asset à la liste Conversations de AC_ADS_Dialog.

La liste Conversations contient les conversations de l'ensemble du jeu, y compris celles qui ne sont pas encore accessibles. Une conversation de fin de jeu peut donc être assignée dès le départ, rester désactivée par défaut, puis être activée au Runtime par un événement du projet ou par une conversation précédente.

Paramètres généraux

NomDescription
EnabledDéfinit si la conversation est actuellement disponible. Cette valeur peut être modifiée au Runtime.
Is Travel ConversationDéfinit si la conversation utilise le mode Travel. Lorsqu'il est désactivé, la conversation utilise le mode Classic.

Lines

Lines contient les répliques de la conversation. Chaque élément correspond à une réplique et possède les paramètres suivants :

NomDescription
SpeakerSpeaker Asset qui prononce la réplique.
TextTexte de la réplique. Il peut contenir du Rich Text, des icônes, des variables et des portions résolues par fonctions.
VoiceLineMap de Voice Lines associées à la réplique.
BubbleSpeachType de bulle de dialogue utilisé pour la réplique.
BubbleAppearApparition utilisée par la bulle de dialogue.
Camera.ChangeCameraDéfinit le changement de caméra appliqué pendant la réplique.
Camera.CameraPresetPréréglage de caméra utilisé lorsque la réplique change de caméra.
Camera.DurationChangeDurée utilisée pour le changement de caméra.
EventNameNom de l'événement à déclencher lors de la réplique. Cet Event doit exister dans l'asset de conversation.
AutoNextDurationDurée avant le passage automatique à la réplique suivante.
bForceAutoNextForce le passage automatique pour cette réplique.

Choices

Choices contient les choix proposés au joueur.

NomDescription
TextTexte affiché pour le choix.
ConversationConversation lancée lorsque le joueur valide ce choix.

Activation des conversations

NomDescription
Deactivate ConversationsListe des conversations à désactiver lorsque cette conversation se termine.
Activate ConversationsListe des conversations à activer lorsque cette conversation se termine.

6. Texte, bulles et affichage

Les structures et Data Tables du dossier Data permettent de préparer l'affichage des répliques.

Texte dynamique et Rich Text

Les Data Tables du dossier Data/Tables permettent de préparer les textes affichés par les répliques.

Créer un texte dynamique

  1. Dans DT_DialogDynamicText, ajoutez une ligne.
  2. Renseignez son Tag et le Text qui doit le remplacer.
  3. Dans le texte d'une réplique, utilisez ce tag entre doubles accolades.

Exemple de texte dynamique

Par exemple, si le Tag est Demo et le Text est Framework, une réplique contenant {{Demo}} sera remplacée par Framework lors de la lecture.

Afficher une valeur par fonction

Resolve Expression est déjà surchargée dans BP_ADS_DialogSystem.

  1. Ouvrez la fonction Resolve Expression dans BP_ADS_DialogSystem.
  2. Sur le nœud Switch on String, ajoutez un pin portant le nom de la fonction souhaitée, par exemple UserName.
  3. Développez la logique correspondant à ce pin, puis renvoyez le texte à afficher.
Fonction Resolve Expression dans BP_ADS_DialogSystem

Dans une réplique, appelez ensuite la fonction avec la syntaxe {{=NomDeLaFonction()}}. Par exemple, {{=UserName()}} appelle le pin UserName du Switch on String.

Créer un style Rich Text

  1. Dans DT_RichText_Dialog, ajoutez une ligne avec le nom du style souhaité, par exemple yellow.
  2. Configurez ce style dans la Data Table.
Styles Rich Text dans DT_RichText_Dialog

Dans le texte d'une réplique, la balise ouvrante utilise le nom de ligne : <RowName>. La balise fermante est toujours </>.

Par exemple, pour la ligne yellow, utilisez <yellow>portion</> : seule portion utilise le style yellow.

Les icônes utilisées dans le texte sont définies dans DT_TextIcon.

UI et Menu

MENU_Dialog, W_DialogAuto, W_DialogButton, W_DialogNPC_Icon et UI_DialogTravel sont les widgets utilisés directement par le système. Modifiez leur apparence pour adapter l'interface à votre projet.

ATTENTION

Ne modifiez pas les éléments définis comme variables. Seule la personnalisation de leur apparence est autorisée.

Créer un style de bulle

  1. Ajoutez le nouveau style dans l'enum E_BubbleAppear.
  2. Dans MENU_Dialog, ajoutez le widget correspondant dans le WidgetSwitcher_Bubble.
  3. Éditez l'Event SetLine et, sur le nœud Switch on E_BubbleAppear, ajoutez la logique qui affiche ce style.
Switch on E BubbleAppear dans SetLine

6. Entrées

Le dossier Inputs contient IMC_Dialog et les Input Actions du système : IA_Dialog_Up, IA_Dialog_Down, IA_Dialog_Validate, IA_Dialog_Skip et IA_Dialog_Auto. Utilisez-les pour relier les commandes du joueur à la navigation dans les choix, à la validation, au skip et à la lecture automatique.