Page 1 of 1

Dialogue UI

Posted: Sat Feb 03, 2024 7:30 am
by rima96
Hi, I'm very new to the dialogue system, and I can't seem to find a way to change the delay time for the dialogue window to appear. I want the window to appear as soon as the function StartDialogueWithPlayer is called, I tried changing the visibility in the prefab to Always From Start, but it doesn't change anything.

Re: Dialogue UI

Posted: Sat Feb 03, 2024 8:45 am
by Tony Li
Hi,

Are you referring to Quest Machine's StartDialogueWithPlayer() method that's on the Quest Giver component? If so, I'll move this thread to the Quest Machine forum section and reply.

If you're referring to starting a conversation in the Dialogue System, are you using a Dialogue System Trigger component?

Re: Dialogue UI

Posted: Sat Feb 03, 2024 2:36 pm
by rima96
Yes, I'm using the Quest Machine but with the Dialogue System. I was referring to the Dialogue System in general, either using Quest Machine of Trigger, where there is a delay of a few seconds before displaying the Dialogue window however a dialogue is started.

The NPC subtitle panel has a 1 second delay fading in animation, and Response Menu an about 4 second delay, I found that setting in the Dialogue Manager > Subtitle Settings > "Min Subtitle Seconds", into 0 removes the response menu delay, but I don't know if that's how it's supposed to be changed. Also, didn't find anything about the NPC subtitle panel animation delay.

In 'Standard UI Subtitle Panel' I found a 'Visibility Settings' that IO changed to 'Always From Start' , and, in 'Standard UI Menu Panel', a 'Start State' under 'Visibility' that I tried to set to 'Open', but it didn't seem to change anything. I was wondering what those two were meant to do. Thanks!

Re: Dialogue UI

Posted: Sat Feb 03, 2024 4:06 pm
by Tony Li
Hi,

Please see: How To: Control the Duration of Subtitle Text for information on how to make the response menu appear sooner, etc.

If you want to start a conversation but not have it visible right away, add an empty node after <START>. Then link the empty node to the first "real" node. Set the empty node's Sequence to something like:

Code: Select all

SetDialoguePanel(false, immediate);
required SetDialoguePanel(true)@3;
Continue()@3
The first line immediately hides the dialogue UI so it's not visible.

The second line makes the dialogue UI visible after 3 seconds. (You can change the number to whatever duration you want.)

The last line continues to the next node after that duration. If you haven't set the Dialogue Manager's Display Settings > Subtitle Settings > Continue Button to a mode such as Always that requires a continue button click, you can omit the last line of the Sequence.

Alternatively, if you always want to delay the beginning of the conversation, configure your Dialogue Panel's Animator > Show animation to delay for a duration before fading in or otherwise showing the dialogue UI. On your dialogue UI and subtitle panel, tick all of the Wait For Show/Open checkboxes.