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.