How to Use Entrytags

Using entrytag To Simplify Sequences

In the sequencer, every dialogue entry has an associated "entrytag". This is a unique string in one of these format:

Format Example Notes
(ActorName)_(ConversationID)_(EntryID) Adam_27_42 Default format. Special characters not allowed in Lua strings are replaced by underscores (_)
(ConversationName)_(EntryID) MyConv_42 Special characters not allowed in Lua strings are replaced by underscores (_)
(ActorName)(LineNumber) Player42 Adventure Creator-style as "(ActorName)(LineNumber)". Characters not allowed in Unity filenames are replaced with underscores. The Dialogue System will attempt to assign a unique line number to every entry using the formula ConversationID*500 + EntryID.
(ConversationID)_(ActorName)_(EntryID) 27_Adam_42 Similar to default format but conversation ID is first. Special characters not allowed in Lua strings are replaced by underscores (_)
(ActorName)_(ConversationTitle)_(EntryDescriptor) Adam_MyConv_Hi EntryDescriptor looks for an entry title first, then menu text, and if none, uses the ID instead. Characters not allowed in Unity filenames are replaced with underscores.
(VoiceOverFile) (special) Assumes the dialogue entry has a custom field named VoiceOverFile. Sets entrytag to the value of this field.

The first format is the default, but you can change to the alternate formats on the Dialogue Manager GameObject under Camera Settings. When you export to CSV or Voiceover Script in the Dialogue Editor, you can choose the Entrytag format to use in the exported file.

For example, say an actor named Adam is assigned conversation 27, line 42. When this entry's Sequence field is being played in the sequencer, the reserved keyword entrytag will be Adam_27_42.

You can get a list of all entrytags by exporting a Voiceover Script as described in the Export Database section. This will generate a CSV spreadsheet file that you can give to your voice director and actors.

When you generate your voiceover audio files and/or animation clips, name them according to their entrytags. If you want to organize audio files by actor, you can create a separate folder for each actor and put them in a Resources subfolder inside the actor's folder.

Then, instead of manually specifying each filename in each dialogue entry's Sequence field, you can use a single Default Sequence in the Dialogue Manager such as:

  • Default Sequence: Voice(entrytag,entrytag)

Using the example above, when conversation 27 gets to line 42, it will play this sequence:

  • Voice(Adam_27_42, Adam_27_42)

This will play an audio file named Adam_27_42 and an animation clip on the speaker named Adam_27_42.


Localized Entrytags

In the sequencer, every dialogue entry also has a corresponding "entrytaglocal". This is the localized version of the entrytag. It's comprised of the entrytag followed by an underscore (_) and the current language code (see Localization).

If your game is localized into multiple languages, you may want to use entrytaglocal in sequencer commands that play voiceover recordings, such as the Audio() command.

In the example below, the AudioWait() command plays a localized audio clip. The AnimatorPlay() command plays the same animation state regardless of language.

  • AudioWait(entrytaglocal); AnimatorPlay(entrytag)

Where To Use Entrytags

You can use the entrytag or entrytaglocal keywords in any sequencer command. Other example uses include:

Command Description
Voice(entrytag,entrytag) Play legacy animation lipsync with audio and animations named "Adam_27_42"
Audio(entrytag) Play an audio clip named "Adam_27_42".
AnimatorPlay(entrytag) Play a Mecanim state named "Adam_27_42"
AnimatorTrigger(entrytag) Set a Mecanim trigger named "Adam_27_42"
Animation(entrytag) Play a legacy animation named "Adam_27_42"
Camera(entrytag) Cut to a camera angle named "Adam_27_42"
Delay()@Message(entrytag) Wait for a sequencer message "Adam_27_42"

<< How to Add Lipsync | How to Add Quick Time Events (QTEs) >>