Babble dialog system & Lip syncing
Babble System
The babble dialog system is just used to make sure the actors don’t repeat the same line over and over again. It’s a way to control what they babble J
The babble system is activated either when the actor is used or a playdialog event is received by the actor.
alias <alias name> <real name> <parameters>
where parameters can be:
global - all instances act as one (not per actor)
stop - once used, don't use again
timeout <seconds> - once used wait specified time until using again
maxuse <times> - can only be used specified number of times
weight <weight> - random weighting
dialog <alias> <parameters>
where parameters can be:
randompick - randomly picks out dialog from alias list
playerhas <item name> - only plays if player has specified item
playerhasnot <item name> - only plays if player doesn't have specified item
has <item name> - only plays if actor has specified item
has_not <item name> - only plays if actor doesn't have specified item
depends <variable name> - only plays if the specified variable is set
dependsnot <variable name> - only plays if the specified variable is not set
random <percent between 0 and 1> - plays this percent of time
Both alias and dialog commands are put in the init/server section of the tiki of the actor that needs to say the dialog.
The way this works is when the system tells a dialog to play it starts at the top of the dialog list and tries each dialog line. The first one that it finds where all of the conditions are true is played.
Then it picks which exact dialog sound to play out of the alias list. It normally just does this in order, will play alias1, then alias2, etc. The randompick dialog parameter can change this as can the stop, timeout, maxuse, and weight alias commands.
ex.
init
{
server
{
alias secret_dialog1 "sound/whatever.wav" stop
alias edenmale_dialog1 "sound/dialog/edenfall/recruiter/newlife.wav"
alias edenmale_dialog2 "sound/dialog/edenfall/recruiter/bow.wav" maxuse 2
alias edenmale_dialog3 "sound/dialog/edenfall/recruiter/joinus.wav" timeout 5
dialog secret playerhas sercret_item1
dialog edenmale_dialog randompick
}
}
In this example the following will happen: if the player has secret_item1 then the actor will say secret_dialog1 (only once) otherwise he will say one of the edenmale_dialogs. It will randomly pick between the 3 of them except it will play edenmale_dialog2 a max of 2 times and will only play edenmale_dialog3 every 5 seconds.
Lip Syncing
To make a lip sync file:
lipsync <options> <list, wave, or mp3 file>
options: -q for quiet (doesn’t print most messages)
-f for force (converts all sounds regardless of timestamps)
NOTE: this program only works in NT right now (will be fixed).
This will produce a lip file for the file specified or all of the files specified in the list file.
For an example of a list file look at copy.ls in the root fakk directory.
Make sure to place the lip files in the same directories as their corresponding sound files.
This file tells the game how much and when to move the actor’s mouth while he is talking.