Open Jedi Project Animation Event Information

Table of Contents

Introduction

    The animevents.cfgs are a very powerful config files allow you quickly and easily add new sound effects, visual effect, (OJP only) ambient model sounds. OJP has gone thru the MP animevent code and fixed/added code to give you full access to these powers. OJP Powered animevents.cfg

Features

    Be sure to do all your includes before doing any animevent declarations. - animevents are client side so players can choose which animevents.cfg they use. To use an animevents.cfg, just place it (or create one) in the model folder for the model you want it to play for. It doesn't have to be in the same pk3 as the model. If you want the animevent.cfg to apply to all the player models, just place your animevents.cfg in the /models/players/_humaniod folder.

Animation Event Catagories

Limitations

    Only one animevent of each type is allowed for each frame of animation.  For ambient sounds, you're allow one UPPEREVENTS ambient and one LOWERSEVENTS. If there's more than the allowed limit of any animevent, the last declared event will be used.

Standard Animevents

    (Most of this section was copied from one of Raven's animevents.cfg files.)

Sound Effects

Format:  animID AEV_SOUNDCHAN framenum soundpath channel randomlow randomhi chancetoplay

    animID: Animation enum/name    AEV_SOUNDCHAN = tells game which type of event it is (so it knows what to do with the following data)
    framenum:  Frame into sequence where event should start
    channel:  sound channel on which to play the sound.
    soundpath:  path to the sound to play
            %d - Means the next 2 numbers are the random range. For example, if you want to play laser1, laser2 or laser3, use "laser%d 1 3")    
            * - Means that this sound file is to be played from the model's individual sound set.  For example, it you want the model's taunt1 sound to be played, you'd use "*taunt1.mp3"
    randomlow:  low number for sound variant (if no variant, use 0)
    randomhi:  high number for sound variant (if no variant, use 0)
    chancetoplay:  probability event will play (0 = always, 1-99 is percentage of chance to play)

Footsteps

Format:  animID AEV_FOOTSTEP framenum footstepType chancetoplay
    Notes:  Footsteps should only be used for LOWEREVENTS.

    animID:  Animation enum/name
    AEV_FOOTSTEP:  tells game which type of event it is (so it knows what to do with the following data)
    framenum:  Frame into sequence where event should start
    footstepType:  FOOTSTEP_R, FOOTSTEP_L, FOOTSTEP_HEAVY_R or FOOTSTEP_HEAVY_L
    chancetoplay:  probability event will play (0 = always, 1-99 is percentage of chance to play)

Special Effects

    Format:  animID AEV_EFFECT framenum effectpath boltName chancetoplay

     animID:  Animation enum/name
     AEV_EFFECT:  tells game which type of event it is (so it knows what to do with the following data)
     framenum:  Frame into sequence where event should start
     effectpath:  path to the .efx file you want to play - if you put "special" it will play the hard-coded in-engine effect specified in the next field (usually boltName)
     boltName:  bolt (if any) to play the effect on.  If none use "none" or "NULL" - if you put "special" in the effectpath, this is the name of the hard-coded in-engine effect to do and the next field is how many milliseconds to do it for
    chancetoplay:  probability event will play (0 = always, 1-99 is percentage of chance to play) - if you put "special" in the effectpath, this is how many milliseconds to do the hard-coded in-engine effect for

Ambient Model Sounds

    Ambient models sounds are sounds that are played at set intervals while the model is ingame and alive.  Good uses for this feature are Vader's breathing, equipment beeping, etc.  Althou ambients are not linked to the animations they are sorted in the UPPEREVENTS and LOWEREVENTS for ease of use.  Each model may have one UPPEREVENTS ambient sound and one LOWEREVENTS ambient sound.

Ambient Sounds

    Format:  AEV_AMBIENT intervals randomfactor Channels soundpath randomlow randomhi chancetoplay
   
    AEV_AMBIENT:  Tells game which type of event it is (so it knows what to do with the following data)
    intervals:  The base time between attempts to play this sound.  This is affected by the random factor at runtime (in msecs.  This needs to be set (taking in account the randomfactor) so that the time intervals are never shorter than the length of the sound file.  If you don't do this correctly, your ambient sounds will overlap and sound terrible.
    randomfactor:  This gives a random factor to the time between sound attempts (in msecs).  The base time is added or subtracted by a random number between 0 and randomfactor.  This needs to be set (taking in account the intervals) so that the time intervals are never shorter than the length of the sound file.  If you don't do this correctly, your ambient sounds will overlap and sound terrible.
    channel:  Sound channel on which to play the sound.
    soundpath:  path to the sound to play
            %d - Means the next 2 numbers are the random range. For example, if you want to play laser1, laser2 or laser3, use "laser%d 1 3")    
            * - Means that this sound file is to be played from the model's individual sound set.  For example, it you want the model's taunt1 sound to be played, you'd use "*taunt1.mp3"
    randomlow:  low number for sound variant (if no variant, use 0)
    randomhi:  high number for sound variant (if no variant, use 0)
    chancetoplay:  probability event will play (0 = always, 1-99 is percentage of chance to play)

Examples

    AEV_AMBIENT          5000            0 CHAN_AUTO         *taunt%d.mp3                             1 3  50
   
    This ambient plays a random taunt (taunt 1, 2, or 3) of this model every 5 secs (5000 msecs) 50% of the time.

    AEV_AMBIENT          5000            1000 CHAN_AUTO         *land1.mp3                             0 0  0
   
    This ambient is set to play the breathing effect for cheshire_arco_vader's Lord Vader model.  It plays the breathing sound file every 4-6 seconds.

Examples

Example 1

//Use the default humanoid sounds plus an extra taunt for when this model misses a grapple attack and
//also randomly say a taunt every once in a while.
include _humanoid

UPPEREVENTS
{
    BOTH_KYLE_MISS       AEV_SOUNDCHAN   1 CHAN_AUTO         *taunt%d.mp3                             1 3  0
}

LOWEREVENTS
{
    AEV_AMBIENT          5000            0 CHAN_AUTO         *taunt%d.mp3                             1 3  50
}