This page describes how to set up the Dialogue System with Crazy Minnor Studios' SALSA LipSync Suite. (SALSA LipSync Suite is required.)
SALSA LipSync Suite copyright © Crazy Minnow Studios.
Follow these steps to set up the Dialogue System with SALSA LipSync Suite.
entrytag
keyword; see Entrytags.The Example folder contains an example scene that uses SALSA box head character. It also uses entrytags. (See Entrytags.) If you open the dialogue database and examine the first NPC line in the 'Private Hart' conversation, you'll see these lines:
SALSA(entrytag); EyesRandom(on,on,on)
The first command plays the audio associated with the dialogue entry node's entrytag.
The second command makes the character randomly move its head, eyes, and blink.
The second NPC dialogue entry node has another Sequence that demonstrates other SALSA commands.
You can use the following sequencer commands in your dialogue entries' Sequence fields to interface with SALSA LipSync Suite.
Syntax: SALSA(
clip, [subject], [nowait
])
Description: Plays an audio clip with SALSA. Note: This command is just an alias for the Dialogue System's AudioWait() command.
Parameters:
Resources
folder or registered asset bundle.speaker
.Example:
SALSA(Greetings/Hello)
(Plays the clip Resources/Greetings/Hello
)Syntax: Emote(
emoteName, [on|off
], [oneway|roundtrip
], [duration], [subject], [nowait
])
Description: Plays an emote.
Parameters:
Example:
Emote(Smile)
(Plays the Smile emote on the speaker)Syntax: EyesAffinity(
[on|off
], [percentage], [timerMin], [timerMax], [subject])
Description: Sets an Eyes component's affinity.
Parameters:
Example:
EyesAffinity(on,0.5,1,2)
(Sets the affinity to 0.5 for 1-2 seconds)Syntax: EyesBlink(
[durationOn], [durationHold], [durationOff], [subject], [nowait
])
Description: Sets an Eyes component's blink pattern.
Parameters:
Example:
EyesBlink(0, 2, 0)
(Keeps eyes closed for 2 seconds)Syntax: EyesLook(
[target], [subject])
Description: Sets the position where the subject will look.
Parameters:
Example:
EyesLook()
(Makes speaker look at listener)Syntax: EyesRandom(
[head], [eye], [blink], [subject])
Description: Sets an Eyes component's random movement.
Parameters:
on|off
. Omit to turn leave head setting unchanged.on|off
. Omit to turn leave eye setting unchanged.on|off
. Omit to leave blink setting unchanged.Example:
EyesRandom(on,on,)
(Sets head and eye movement to random but leaves blink setting unchanged)More info: Cutscene Sequences
SALSA has a TextSync addon that can simulate mouth movement based on text instead of audio. If you're using TextSync, add a TextSyncActor component to your SALSA characters.
If you allow continue buttons to skip dialogue, replace your continue button's StandardUIContinueButtonFastForward component with a ContinueButtonStopTextSyncActor component.
Alternatively, instead of using a TextSyncActor component, use the TextSync([subject]) sequencer command. This plays the current subtitle's text on the subject's CM_TextSync component. If the subject is omitted, it will use the dialogue entry's speaker.