-
Notifications
You must be signed in to change notification settings - Fork 0
3.2 A Bubble Dialog
BDC_Patrick edited this page Dec 10, 2025
·
11 revisions
| Image | Info |
![]() |
World-space conversations that appear above characters. |
| Description | |
|
Bubble Dialogs are "NPC Chats" or "Barks" that happen in the game world. Unlike Front Dialogs (which usually pause gameplay), Bubbles run asynchronously in the background. Multiple Bubble Dialogs can run simultaneously alongside a main Front Dialog. |
|
To make an NPC capable of showing a speech bubble, you must configure their Actor components.
-
Add Component: Attach a
BDC_DialogBackend_ActorComponentto your Actor Blueprint. - Setup Identity: In the Component's Details Panel, locate the Participant category.
-
Dialog_ParticipantIDTag: Set a unique GameplayTag (e.g.,
NPC.Guard_01). This is crucial for the system to know which actor should display the text. -
Scene Component: Add a Scene Component named exactly
DialogBubbleto your Actor's Hierarchy. The Dialog Component looks for this specifically, to attach the Widget Component to.
Move it around as you please, to also offset the Widget Component.-
Trigger Logic: Call
StartDialog(set Type toDialogBubble) when needed.- Optimization Tip: It is recommended to trigger these via BeginOverlap / EndOverlap events or only when the player is close, to reduce the performance cost of rendering Widget Components.
- Optimization Tip: It is recommended to trigger these via BeginOverlap / EndOverlap events or only when the player is close, to reduce the performance cost of rendering Widget Components.
-
Trigger Logic: Call
Creating the content for a Bubble Dialog is similar to standard dialogs, with a few specific rules.
-
Message Nodes: Add your text here.
-
Critical: You MUST set the
SpeakingParticipanttag in the Message Node details to match the Actor'sDialog_ParticipantIDTag. If this tag is missing or incorrect, the system won't know which actor's head to spawn the bubble over, and nothing will appear.
-
Critical: You MUST set the
- Structure: Ensure the flow ends with an End Node to clean up the widget properly.
| Supported | Not Supported |
|
|
Bubble Dialogs are always automatic. They advance to the next node by themselves.
- If a Message Node has a specific
AutoForwardTimeset, it uses that. - If the node's time is not set (or is too short), the system enforces the BubbleMinAutoTime defined in Project Settings (Default: 3.0s).
- Note: Players cannot manually skip or speed up Bubble text.
You need a specific Widget class for Bubbles (different from your main HUD). Set this class in Project Settings -> Dialog Widgets -> Widget - Bubble Dialog.
-
Root: A
SizeBoxorScaleBoxto control the overall size. -
Background: A
BorderorImagestyled like a speech bubble (e.g., with a pointer arrow at the bottom). -
Content: A
RichTextBlockfor the message. (Speaker Names and Avatars are rarely used in overhead bubbles, but supported if you want them).
Implement BDC_DialogBackend_InterfaceUI:
- OnDialogStarted: Play a "Pop In" animation.
- OnDialogUpdated: Set the text in your RichTextBlock.
- OnDialogMaybeHide: (Optional) Play a "Pop Out" or fade animation if the bubble needs to vanish temporarily.
- OnDialogFinished: Play a closing animation and remove the widget.
- Background Task: Bubble Dialogs run on a separate logic track within the Subsystem. This means a Bubble Dialog can run at the same time as a Main (Front) Dialog without conflict.
-
Events: Even though Bubbles are automated, if you use an Event Node in a Bubble graph, the Actor's
OnReceivedEventdispatcher will still fire, allowing NPCs to perform actions (like emoting) during their background chatter. - Auto pausing: Bubble Dialogs for participating Actors get paused, when a Front Dialog with the same participant is starting. Preventing a Bubble to appear while a normal Message is shown.
I. What is the Dialog Backend?
II. Setting up
|
