[HOWTO] How To: Handle Localized Voiceover in Development

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
User avatar
Tony Li
Posts: 23278
Joined: Thu Jul 18, 2013 1:27 pm

[HOWTO] How To: Handle Localized Voiceover in Development

Post by Tony Li »

Voiceover files typically use entrytags for filenames -- or entrytaglocal when localizing voiceover into multiple languages. (See Cutscene Sequence Tutorials part 4 for info on entrytags.)

As you're developing a game that uses voiceover, you may not have all of the voiceover files in place yet. If you use AudioWait(entrytaglocal) commands, they will silently end immediately if the specified voiceover file doesn't exist. By default, Audio() and AudioWait() sequencer commands don't report missing audio files to reduce Console spam during development. To be notified about missing voiceover files, tick the Dialogue Manager's Display Settings > Camera & Cutscene Settings > Report Missing Audio Files checkbox.

To ensure that the subtitle stays visible for a duration even if the audio file is missing, also use a Delay() command or a WaitForMessage(Typed) command.

For example, this command will wait for the AudioWait() command to finish and for a duration based on the text length:

Code: Select all

AudioWait(entrytaglocal);
Delay({{end}})
This command, on the other hand, will wait for the AudioWait() command to finish and for the subtitle text's typewriter effect to end:

Code: Select all

AudioWait(entrytaglocal);
WaitForMessage(Typed)
If you want to play the default audio file (e.g., entrytag) when a localized version (entrytaglocal) doesn't exist, you can make a subclass of SequencerCommandAudioWait that overrides the TryAudioClip() method. Your overridden method can check if the specified audio file exists. If not, load the default audio file instead.
Post Reply