Page 1 of 1

Keeping recent dialogue bubbles onscreen

Posted: Fri Sep 20, 2019 5:19 pm
by timeEgg
Hi Tony, I'm pretty new to Dialogue System and, while I imagine I can solve all the problems myself (eventually....), I figured I'd get your input on some of these. My main question: what solution would you use to get dialogue like in the game CrossCode (pictured below), where the most recent text bubbles appear at the bottom of the screen and move up (and fade slightly and eventually disappear) as new text bubbles appear?
Image
Also, if I wanted to have side conversations... that run on the upper corner of the screen while the player is backtracking, or even to add some back-talk/snide remarks while another conversation is going on, would it be best to rig another dialogue system? Or use timed barks? Or some other method?

Re: Keeping recent dialogue bubbles onscreen

Posted: Fri Sep 20, 2019 6:02 pm
by Tony Li
Hi,
timeEgg wrote: Fri Sep 20, 2019 5:19 pmHi Tony, I'm pretty new to Dialogue System and, while I imagine I can solve all the problems myself (eventually....), I figured I'd get your input on some of these. My main question: what solution would you use to get dialogue like in the game CrossCode (pictured below), where the most recent text bubbles appear at the bottom of the screen and move up (and fade slightly and eventually disappear) as new text bubbles appear?
This will require a little scripting. You can start with something like the Focus or VN template UIs in Plugins / Pixel Crushers / Dialogue System / Prefabs / Standard UI Prefabs / Templates to get the general shape of the UI.

However, these just show one line at a time, while you want to show maybe 4-6 at a time, with the older ones scrolling off the top and fading away. Here's how I'd approach it:

1. Write a script that manages a list of text bubbles. Include a public method that adds a new text bubble and automatically scrolls up and fades away the oldest bubble. For example, say it's called AddTextBubble(string).

2. Make a subclass of StandardUISubtitlePanel. Override the SetContent method to call AddTextBubble(). In your overridden SetContent, you can still keep the code that sets the portrait images. Just replace the code that sets the subtitle text element with a call instead to AddTextBubble().

If you get stuck or need more guidance, let me know.
timeEgg wrote: Fri Sep 20, 2019 5:19 pmAlso, if I wanted to have side conversations... that run on the upper corner of the screen while the player is backtracking, or even to add some back-talk/snide remarks while another conversation is going on, would it be best to rig another dialogue system? Or use timed barks? Or some other method?
You can run simultaneous conversations. Tick the Dialogue Manager's Other Settings > Allow Simultaneous Conversations. Use an Override Dialogue UI or Override Display Settings component to point the other conversation to a different dialogue UI.

Or you can use barks of course. You can use a Dialogue System Trigger (Add Action > Bark) or bark from script using DialogueManager.Bark().