Timeline Dialogue SetContinueMode

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
Kamotachi
Posts: 54
Joined: Fri Nov 29, 2019 9:03 pm

Timeline Dialogue SetContinueMode

Post by Kamotachi »

Hello!
I was wondering if the following is possible:

I have an active conversation using the Timeline.
I use a Conversation Track to start conversations and a Continue Conversation Track to continue to the next text node in that conversation.

I use the timeline for cinematics, and I don't want the player to be able to skip the texts.

I know that I can use in the Sequencer “SetContinueMode(false)”, but of course, when I use it, it jumps automatically to the next node without waiting for the continue of the Timeline.

I think that a solution is to put a Delay(9999) in each node, but I wonder if there is a more optimal way to handle this.

Thanks!
User avatar
Tony Li
Posts: 23250
Joined: Thu Jul 18, 2013 1:27 pm

Re: Timeline Dialogue SetContinueMode

Post by Tony Li »

Hi,

1. Inspect the conversation in the Dialogue Editor. Select Menu > Conversation Properties.

2. Then tick Override Display Settings.

3. If the Dialogue Manager GameObject's Subtitle Settings > Continue Button mode is set to a mode that shows the continue button, set Conversation Properties > Override Display Settings > Subtitle Settings > Continue Button mode to Never.

4. Set Camera Settings > Default Sequence to: WaitForMessage(Forever)

Note: Nothing actually sends the message "Forever". This means the dialogue entry will wait forever -- except that the Continue Conversation clip will advance the entry anyway when it runs.

If you want to hide the subtitle text after the typewriter is finished, you can change the conversation's Default Sequence to something like:

Code: Select all

Delay(2)@Message(Typed)->Message(ClearTextNow);
ClearSubtitleText(all)@Message(ClearTextNow);
WaitForMessage(Forever)
The first line will wait for the typewriter to finish. Then it will delay an additional 2 seconds, then send the message "ClearTextNow". The second line listens for "ClearTextNow" and then hides the subtitle text.

If you're not using a typewriter effect, you can delay for a duration based on the text length:

Code: Select all

ClearSubtitleText(all)@{{end}};
WaitForMessage(Forever)
Kamotachi
Posts: 54
Joined: Fri Nov 29, 2019 9:03 pm

Re: Timeline Dialogue SetContinueMode

Post by Kamotachi »

It works and is less work than I was doing! :mrgreen:

Thank you so much!
User avatar
Tony Li
Posts: 23250
Joined: Thu Jul 18, 2013 1:27 pm

Re: Timeline Dialogue SetContinueMode

Post by Tony Li »

Happy to help!
Kamotachi
Posts: 54
Joined: Fri Nov 29, 2019 9:03 pm

Re: Timeline Dialogue SetContinueMode

Post by Kamotachi »

I'm resuming the post due to a related problem!

Summary of the current setup:
In Dialogue System Controller > Camera & Cutscene Settings > Default Sequence I have WaitForMessage(Forever).
This keeps the subtitles on screen (without closing automatically), using Override Display Settings with Continue Button = Never in the cinematic dialogs. This way, the jumps between nodes are handled from the Timeline, without the player being able to advance the text manually.

This works perfectly.

The issue is with the items:
When approaching an item a menu (actually, a dialog) appears with answers like “Equip” or “Leave”. To get those options to show up, I use Override Display Settings > Sequence Settings > Delay({{end}}).
Without this, the responses do not appear (probably because of the WaitForMessage(Forever)).

So far, so good.

The problem:
There is an NPC with this Sequence: SetContinueMode(false); SetContinueMode(true)@3; (I need that 3s delay because he walks to the player).
After talking to him, when I interact with an item again, the dialog stays at “Do you want to equip this item?” and no responses appear.

If I remove the SetContinueMode(...) from the NPC, everything works again.
I think SetContinueMode changes something about the "continue button" that affects dialogs with options. Is it possible?
User avatar
Tony Li
Posts: 23250
Joined: Thu Jul 18, 2013 1:27 pm

Re: Timeline Dialogue SetContinueMode

Post by Tony Li »

Hi,

If you want the default value for the continue button to be false (never), then in the last node of that conversation use the sequencer command SetContinueMode(false). This will leave it in the proper default state for the next conversation.
Post Reply