Hi,
Sure, there are a few ways to do it. I'll describe how to use sequencer commands. Make sure your Dialogue Panel has a unique name (e.g., "Dialogue Panel"). Use the
SetActive() sequencer command to set it inactive at the beginning of the sequence.
Then set your sequence to something like this example:
Code: Select all
SetActive(Dialogue Panel,false);
Camera(Wide,speaker,2);
AnimatorPlay(Dance);
AudioWait(Rhumba)->Message(Done);
AnimatorPlay(Idle)@Message(Done);
SetActive(Dialogue Panel)@Message(Done)
Here's what this sequence does, line by line:
1. SetActive(Dialogue Panel,false): Hides the Dialogue Panel.
2. Camera(Wide,speaker,2): Moves the camera to a wide shot of the speaker over 2 seconds.
3. AnimatorPlay(Dance): Plays the speaker's Dance animator state.
4. AudioWait(Rhumba)->Message(Done): Plays the audio clip "Rhumba" and waits until it's done; then sends a sequencer message "Done". (The message can be any string of your choice.)
5. AnimatorPlay(Idle)@Message(Done): When the message "Done" has been sent, plays the speaker's Idle state.
6. SetActive(Dialogue Panel)@Message(Done): When the message "Done" has been sent, shows the Dialogue Panel.
Other approaches: use the dialogue entry's On Execute event (e.g., trigger an animation that fades out the panel for a duration), or a C# script that listens for
script messages, or use a scrubbing cutscene editor like Cinema Director or SLATE. (The Dialogue System has integration with several cutscene editors.)