Dialogue disappearing and continuing before typewriter finishes

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
EatAllTheGames
Posts: 23
Joined: Mon Jul 30, 2018 9:20 am

Dialogue disappearing and continuing before typewriter finishes

Post by EatAllTheGames »

Hi,

I've searched around to do the following:

1. Have a speech bubble for my player instead of the usual subtitle panel
2. Use typewriter within that speech bubble, set to 10 chars per second (same for Dialogue Manager settings).

However, the dialogue system moves to the next node without allowing the typewriter to finish entirely... it only works if I use "Delay(0)@Message(Typed)", even then it moves on instantly, not giving people a chance to read the last few words.

Moving on instantly is my desired behaviour for nodes without Dialogue Text, as I'm using Salsa and sequences for other things like moving around. But for ones with Dialogue Text, I would like the typewriter to finish typing and for there to be a short pause before moving on. Right now I can achieve this by using Delay(2)@Message(Typed) or another small number...

As an aside... I can see typewriter allows us to play a sound, or random sounds from a list. Any way to play a sound per character per actor? e.g. I have a folder of sounds for each actor containing "a, b, c, d" all the way to "z".
User avatar
Tony Li
Posts: 22163
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue disappearing and continuing before typewriter finishes

Post by Tony Li »

Hi,
EatAllTheGames wrote: Tue May 18, 2021 5:25 am1. Have a speech bubble for my player instead of the usual subtitle panel
2. Use typewriter within that speech bubble, set to 10 chars per second (same for Dialogue Manager settings).

However, the dialogue system moves to the next node without allowing the typewriter to finish entirely... it only works if I use "Delay(0)@Message(Typed)", even then it moves on instantly, not giving people a chance to read the last few words.
If you're using SALSA without entrytags, try these Dialogue Manager settings:
  • Subtitle Settings > Subtitle Chars Per Second: 9 (i.e., take longer than the typewriter).
  • Camera & Cutscene Settings > Default Sequence:

    Code: Select all

    Delay({{end}})
  • If any of your nodes have content in their Sequence fields, also include {{default}}, such as:

    Code: Select all

    SALSA(hello); {{default}}
The settings above will wait for the typewriter plus a small delay based on the text length. If instead you want to always delay 1 second after the typewriter, use these settings:
  • Camera & Cutscene Settings > Default Sequence:

    Code: Select all

    Delay(1)@Message(Typed)
  • If any of your nodes have content in their Sequence fields for which you want to delay based on the typewriter, also include {{default}}, such as:

    Code: Select all

    SALSA(hello); {{default}}
If you're using SALSA with entrytags, set your Default Sequence to:

Code: Select all

SALSA(entrytag); Delay({{end}})
or

Code: Select all

SALSA(entrytag); Delay(1)@Message(Typed)
and use {{default}} in any nodes that have their own Sequences for which you want to delay based on the typewriter.
EatAllTheGames wrote: Tue May 18, 2021 5:25 amAs an aside... I can see typewriter allows us to play a sound, or random sounds from a list. Any way to play a sound per character per actor? e.g. I have a folder of sounds for each actor containing "a, b, c, d" all the way to "z".
See this post. There's a link to an example scene a few posts down from it, too.
EatAllTheGames
Posts: 23
Joined: Mon Jul 30, 2018 9:20 am

Re: Dialogue disappearing and continuing before typewriter finishes

Post by EatAllTheGames »

Tony Li wrote: Tue May 18, 2021 8:39 am Hi,
EatAllTheGames wrote: Tue May 18, 2021 5:25 am1. Have a speech bubble for my player instead of the usual subtitle panel
2. Use typewriter within that speech bubble, set to 10 chars per second (same for Dialogue Manager settings).

However, the dialogue system moves to the next node without allowing the typewriter to finish entirely... it only works if I use "Delay(0)@Message(Typed)", even then it moves on instantly, not giving people a chance to read the last few words.
If you're using SALSA without entrytags, try these Dialogue Manager settings:
  • Subtitle Settings > Subtitle Chars Per Second: 9 (i.e., take longer than the typewriter).
  • Camera & Cutscene Settings > Default Sequence:

    Code: Select all

    Delay({{end}})
  • If any of your nodes have content in their Sequence fields, also include {{default}}, such as:

    Code: Select all

    SALSA(hello); {{default}}
The settings above will wait for the typewriter plus a small delay based on the text length. If instead you want to always delay 1 second after the typewriter, use these settings:
  • Camera & Cutscene Settings > Default Sequence:

    Code: Select all

    Delay(1)@Message(Typed)
  • If any of your nodes have content in their Sequence fields for which you want to delay based on the typewriter, also include {{default}}, such as:

    Code: Select all

    SALSA(hello); {{default}}
If you're using SALSA with entrytags, set your Default Sequence to:

Code: Select all

SALSA(entrytag); Delay({{end}})
or

Code: Select all

SALSA(entrytag); Delay(1)@Message(Typed)
and use {{default}} in any nodes that have their own Sequences for which you want to delay based on the typewriter.
EatAllTheGames wrote: Tue May 18, 2021 5:25 amAs an aside... I can see typewriter allows us to play a sound, or random sounds from a list. Any way to play a sound per character per actor? e.g. I have a folder of sounds for each actor containing "a, b, c, d" all the way to "z".
See this post. There's a link to an example scene a few posts down from it, too.

Hi and thank you for the reply.

I'm using SALSA without entry tags, but I also already had "Delay({{end}})" in my default sequence.

When I have a node with Dialogue Text only, (no sequence), it moves onto the next node before the typewriter has completed.

However I did try your suggestion:
Subtitle Settings > Subtitle Chars Per Second: 9 (i.e., take longer than the typewriter).
and that makes it look almost right, perhaps it's moving to the next one at the exact time it finishes. Is this how it's supposed to work? I thought the typewriter chars per second were supposed to match the subtitle chars per second?

Any way to apply for example "Delay(3)@Message(Typed)" but only to nodes which don't have a Sequence entry (Dialogue Text only)?


Thank you for linking the thread for speaking the letters - going to look at it soon!
User avatar
Tony Li
Posts: 22163
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue disappearing and continuing before typewriter finishes

Post by Tony Li »

EatAllTheGames wrote: Tue May 18, 2021 9:28 amI did try your suggestion:
Subtitle Settings > Subtitle Chars Per Second: 9 (i.e., take longer than the typewriter).
and that makes it look almost right, perhaps it's moving to the next one at the exact time it finishes. Is this how it's supposed to work? I thought the typewriter chars per second were supposed to match the subtitle chars per second?
The typewriter Characters Per Second and Subtitle Settings > Subtitle Chars Per Second are independent values. However, Subtitle Chars Per Second should be equal to or less than the typewriter Characters Per Second if you're using {{end}}.
EatAllTheGames wrote: Tue May 18, 2021 9:28 amAny way to apply for example "Delay(3)@Message(Typed)" but only to nodes which don't have a Sequence entry (Dialogue Text only)?
Yes. Set the Dialogue Manager's Camera & Cutscene Settings > Default Sequence to that.
EatAllTheGames
Posts: 23
Joined: Mon Jul 30, 2018 9:20 am

Re: Dialogue disappearing and continuing before typewriter finishes

Post by EatAllTheGames »

Tony Li wrote: Tue May 18, 2021 10:33 am
EatAllTheGames wrote: Tue May 18, 2021 9:28 amI did try your suggestion:
Subtitle Settings > Subtitle Chars Per Second: 9 (i.e., take longer than the typewriter).
and that makes it look almost right, perhaps it's moving to the next one at the exact time it finishes. Is this how it's supposed to work? I thought the typewriter chars per second were supposed to match the subtitle chars per second?
The typewriter Characters Per Second and Subtitle Settings > Subtitle Chars Per Second are independent values. However, Subtitle Chars Per Second should be equal to or less than the typewriter Characters Per Second if you're using {{end}}.
EatAllTheGames wrote: Tue May 18, 2021 9:28 amAny way to apply for example "Delay(3)@Message(Typed)" but only to nodes which don't have a Sequence entry (Dialogue Text only)?
Yes. Set the Dialogue Manager's Camera & Cutscene Settings > Default Sequence to that.
Thanks. Setting the Dialogue Managers "chars per second" lower than the Typewriters "chars per second" kind of works. Setting them equal reproduces the issue I described above.

Is setting one slower a "hacky" solution to my issue, or is it the actual solution? If setting them equal is supposed to let the typewriter finish before advancing to the next node then there's an issue elsewhere that I'm very keen to solve... please let me know
User avatar
Tony Li
Posts: 22163
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue disappearing and continuing before typewriter finishes

Post by Tony Li »

It's not a hack. The important thing to keep in mind is that the values are entirely independent.

The typewriter's Characters Per Second only determines how fast the typewriter types. It has nothing to do with how long the dialogue entry stays onscreen before progressing the conversation.

The Dialogue Manager's Subtitle Settings > Subtitle Chars Per Second only determines the value of the {{end}} keyword. If your sequences (including the Dialogue Manager's Default Sequence) do not use {{end}}, then Subtitle Chars Per Second doesn't come into play at all.

The dialogue entry will stay onscreen for the duration of its Sequence (or the Default Sequence if the entry's Sequence field is blank). This duration is unrelated to the typewriter.
Post Reply