Waiting for Things
Several of the features in SUDS Pro are animated over time, such as fades, camera animations,
character emotes, etc. Unless otherwise specified, following lines in a script are
executed immediately without waiting for that animated effect to complete,
so for example:
In the above script, the fade in and camera dolly will occur at the same time. the dialogue only pauses at speaker lines, normally.
But, what if you want to wait for something before doing the next thing? Or, what if you want to just add a delay generally, say for a dramatic pause?
This section describes how to do that.
Wait Seconds
Need to delay the next thing in the script by a fixed amount of time? Sure:
Wait for Notification
If you need dialogue to wait until you send a notification, use the WaitNotify event.
To wait for any notification:
To wait for a specific notification:
Notifications are raised by your code, via the Blueprint node "Notify Waiting Dialogue of Event",
or in C++ via USudsProExtWait::NotifyWaitingDialogue.
Wait For Camera Fade
Need to wait for a fade out / fade in to finish?
Wait For Camera Effects
If you want to wait for all camera effects to finish (shake, dolly, whatever):
Wait for Character Animations
Need to wait for a character animation to finish? This is how you do that:
Wait for Sequences
Wait for a Sequence to End
If you don't want the next thing in the script to happen until the Level Sequence has finished, then do this:
Wait for Sequence Notification
To wait until a sequence sends any notification via "Notify Dialogue Of Sequence Event":
To wait for a specific notification via "Notify Dialogue Of Sequence Event":
Wait for Everything
Say you just want to wait for anything that's animated / delayed by SUDS Pro; you can do that too:
Waiting and Custom Events
If you use the standard ISudsParticipant function "On Dialogue Event", your custom events will be received as soon
as they in are scope in between speaker lines. Take this example:
Manny: Bye!
[event CharacterAnim `Manny`, `Wave`, 3]
[event WaitCharacter `Manny`]
[event FadeOut]
[event MyCustomEvent]
In this case, the SUDS Pro event FadeOut will not execute until the WaitCharacter completes. However,
your participant will receive the MyCustomEvent signal via "On Dialogue Event" immediately after the player
continues after the "Bye!" line - it won't wait.
This might be what you want. In fact, SUDS Pro receives all these events immediately too, but it queues them so
that the FadeOut doesn't happen until after the WaitCharacter.
If you also want to queue your events, implement ISudsProQueuedEventHandler on your participant, and instead of
using "On Dialogue Event", use "On Queued Dialogue Event". This will only be called after the wait is resolved.