AI_VO_Hooks

The new VOs are defined by an event type and a bunch of modifiers:

VOSound = "rep_inf_com_chatter_acquired1 AcquiredTarget"

VOSound = "rep_inf_com_chatter_acquired2 AcquiredTarget +Above"

Both of these work on the AcquiredTarget event, which is played when an AI picks a new target to shoot at. The first one is the normal sound, and might say something

like "I'm shooting at that guy". But if there is ever a case where the new target is above that guy, it would get the "+Above" modifier when that VO is called, which would

cause it to play the second sound, which could be "I'm shooting at that guy up there".

You can have more than one modifier on a sound. So if in addition to the two sounds above you added two more:

VOSound = "rep_inf_com_chatter_acquired1 AcquiredTarget"

VOSound = "rep_inf_com_chatter_acquired2 AcquiredTarget +Above"

VOSound = "rep_inf_com_chatter_acquired3 AcquiredTarget +Right"

VOSound = "rep_inf_com_chatter_acquired4 AcquiredTarget +Above +Right"

It will use the most specific one that it can. So if you had a target above and to the right, it would play the 4th sound. But if you had a target that was above and

to the left, it would use the 2nd one, since it could match +Above, but nothing had +Left.

The modifiers I've come up with so far are listed below. There are many more that would be useful. We talked about specific Hero names. They could also include

specific vehicle names, or other unit types besides IsSniper. Or info about theplayer's current weapon ("Are you crazy, you're not going after that ATAT with a

pistol are you?"). Let me know what you want.

The 'target' object for each VO can be set for each case. So for AcquiredTarget it is obviously a unit or vehicle, but for some of the command post VO's the target

could actually be the CP itself, so the Left/Right/Above modifiers would work on its position. Basically anything that is an object in the game can be a target.

Also the list of VO event hooks (at the bottom) can be greatly added to. Basically anything you think should have a VO can be added as an event, just let me know. What

I've got so far is just the ones from last game, and the two or three CP ones we just talked about. A lot of things can come out of hint nodes and squad behavior, and

also the new game modes.

The modifiers come in sets, and you can only get one modifier (or none) from each set at a time.

Set 1:

"Above" - TARGET above us

"Below" - TARGET below us

"Cover" - TARGET is hidden or in cover. Not sure how this will be defined yet.

Set2:

"Right" - TARGET to the right

"Left"

"Behind"

Set3:

"ReallyNear" - TARGET is <10 m away

"Near" - TARGET is <30 m away

"ReallyFar" - TARGET is >100m

Set4:

"TargetHealthBelow25"

This is the TARGET's health.

Set5:

"PlayerHealthBelow25"

This is the PLAYER's (the listener's) health.

Set6:

"IsFlyer"

"IsHover"

"IsWalker"

"IsTurret"

"IsSniper"

"IsRocket"

"IsHero"

These talk about the TARGET.

Set7:

"InFlyer"

"InHover"

"InWalker"

"InTurret"

"IsZoomed"

"IsProne"

These talk about the PLAYER. Not the guy that's talking, but who's listening, which is usually the local player. Useful in case you want to have an AI say something like

"I see an enemy coming, stop lying down!".

Set8:

"AdrenalineLow"

"AdrenalineMedium"

"AdrenalineHigh"

The adrenaline level of the PLAYER. Adrenaline goes up when action gets busy, people dying, people getting shot, and stuff like that. It will slowly bleed off over time.

You can view the player's adrenaline level in the game by typing "ai.showadrenaline" at the console.

Set9:

"VOUnitNum__" ie. "VOUnitNum23"

A tag like this means that the hook applies to (and only to) a target with this specific VO unit number id. The id for each unit should be set in the units' odf

file with a line:

VOUnitType = 221

The id can range from 1 to 255.

This is the list of VO hook events. The 'speaker' is who is actually saying the VO, so this is the ODF that the sound comes from. The 'target' is the object it uses for the TARGET modifiers above.

**************************************************************************************

**************************************************************************************

AcquiredTarget

Speaker: the guy that acquired the target

Target: the new guy he picked

- played when a nearby AI on your team picks a new target. happens quite a lot. this is a very common hook that can say anything that involves the bad guys location, and should be used for idle battle chatter. The 'ReallyNear' could say "They're right on top of us!". The 'Above' and 'IsSniper' could be used together to say "They have snipers up on the roof!".

**************************************************************************************

FriendlyFire

Speaker: the guy you shot

Target: you

- played when you shoot one of your own AI guys

**************************************************************************************

MissileLocking

MissileLocked

MissileIncoming

Speaker: the player

Target: the guy that shot the missile that is locked onto you

- played when a missile is in the various stages of locking onto the player. these directly correspond to the "MISSILE LOCKING" etc text that shows up on the HUD. note

that the three of these can happen very quickly in succession.

**************************************************************************************

PathFollowWait

Speaker: the guy that stops

Target: the closest human player

- this is played when an AI stops on his path for a moment. Usually it is when they are running down a narrow corridor, and they stop to take cover near a wall for a second or

two, turning to face the player. In the future it could also include a hand-wave forward sort of gesture. The VO's for this should be something like "Come on" or "This way". Just

about the only useful modifiers for this are the "Above"/"Below" ones, so you could say something like "Come on up", or "Its down here".

**************************************************************************************

Kill

HeadshotKill

Speaker: any nearby AI guy on your team

Target: the guy you killed

- played when the player (and only a player) kills somebody. HeadshotKill is for when the killing shot was a headshot.

**************************************************************************************

KillingSpree4

KillingSpree8

KillingSpree12

KillingSpree16

Speaker: anyone nearby

- played when the player (and only a player) kills X enemies in a row. If you don't kill anyone for 4 seconds the counter resets.

**************************************************************************************

Grenade

Speaker: the guy thats dodging it

Target: the grenade (just its position - for above/below/right/left/behind/near/reallynear modifiers)

- played when a grenade is detected nearby, the same as the old hook 'Flee' but with position modifiers.

**************************************************************************************

RepairStart

RepairEnd

GivePowerup

Speaker: the repair guy that is repairing

Target: the repair target (either a person, a vehicle, or a building/turret)

These are played when the repair guys do their repair stuff:

"RepairStart" is played when they choose something to repair (this happens before they go over to it, so they won't necessarily be close to the object)

"RepairEnd" is played when they fully repair (100% health) their target

"GivePowerup": if the target is a person, and the repair guy has a powerup dispenser, this is played when they give one out.

There are really two sequences for these, one for Soldiers and one for Vehicles/Turrets, which can be chosen based on the modifiers

-- add modifiers for damaged vehicles

VOSound = "snd1 RepairStart +IsHover"- 'That hover needs some fixing'

VOSound = "snd2 RepairEnd +IsHover"- 'Now you're all set!'

-- or turrets (can be unbuilt or damaged)

VOSound = "snd3 RepairStart +IsTurret"- 'Let me fix up this turret for you!'

VOSound = "snd4 RepairStart +IsTurret +TargetHealthBelow25" - 'I'll build a turret here'

VOSound = "snd5 RepairEnd +IsTurret"- 'That'll help you out'

-- no modifiers means it applies to Soldiers, which will usually be a dispenser weapon

VOSound = "snd6 RepairStart"- 'You could use some help...'

VOSound = "snd7 GivePowerup"- 'Take this'

you don't really need to define one that is just "snd RepairEnd" (no modifiers), because usually they only give out one powerup, so often that would play directly

after the 'GivePowerup' hook plays.

**************************************************************************************

DefendIdleLookWeapon

DefendIdleLookAround

DefendIdleLookPlayer

Speaker: the AI guy thats doing it

Target: the player for LookPlayer, nothing for the others

These are played while AI are defending and idle. They play an animation and then this sound.

LookWeapon is a 'checking my weapon' type of animation.

LookAround looks behind them to both sides.

LookPlayer looks directly at the closest player or AI for a few seconds.

**************************************************************************************

RebelsShootDeadBody

Speaker: the guy doing the shooting

Target: the guy he just killed

This is ONLY ever played by guys on the Rebel Alliance. Every once in a while if they kill a guy that is fairly near them, they'll run over and start shooting at the corpse on the

ground and play this sound. It should be trash talking of the finest quality.

**************************************************************************************

SC_Follow

SC_StopFollow

SC_VehicleWaitUp

SC_GetIn

SC_GetOut

Speaker: the player

Target: for follow/stop/wait: the object (soldier/vehicle) you're looking at.

for GetIn: the vehicle that the player is in (so you can use the type: "get into my ATST!")

for GetOut: the first AI in the vehicle you're in (so you can address it by type: "get out you wookiee!");

SC_FollowResponse

SC_StopFollowResponse

SC_VehicleWaitUpResponse

SC_GetInResponse

SC_GetOutResponse

Speaker: whoever you just ordered to do this

Squad Commands. See data/docs/SquadCommands.doc for more info on how they work. Each is a command (said by the player) and a response (said by the target).

Follow - aim at a soldier, they'll start following you around.

StopFollow - if somebody is following you, they'll stop.

VehicleWaitUp - aim at a vehicle, it'll wait for a few seconds while you run over.

GetIn - If you're in a vehicle with empty slots, this is said to guys around you.

GetOut - If you're in a vehicle with other people, this is said to the guys in it.

**************************************************************************************

SC_GetInResponseRepeat

Speaker: the unit that is already boarding your vehicle

Target: the player's vehicle

This is played when the player is in a vehicle and gives a squad command order to get in, then gives it again before the unit has actually gotten in. The order VO will not play again, but the unit that followed the order the first time will say this. Should be a somewhat sarcastic remark such as "Already on my way" or "I'm coming as fast as I can".

**************************************************************************************

NotShootingCriticalHit

Speaker: nearby AI

Target: the vehicle being shot

This is played when the player is shooting at a vehicle (walker/hover/flyer), but NOT aiming towards the critical hit location (if it has any). Played every 5 seconds as long as

they keep hitting non-crit points.

**************************************************************************************

JustBoardedVehicle

Speaker: the guy that just boarded

Target: the vehicle he got into

This is played when an AI guy gets into the same vehicle that the player is in. The TARGET is the vehicle, so you can tell which kind of vehicle it is.

**************************************************************************************

VehicleWaitingImpatiently

Speaker: the guy driving the vehicle

Target: the player

Played when a player tells a vehicle to wait up (via squad commands, ala the hook SC_VehicleWaitUp), but then doesn't get in right away. About 7-10 seconds later, this hook will play. 5 seconds after that the vehicle will give up and drive away. This should be used to taunt the player into getting into the vehicle: "Are you gonna get in or what?"

**************************************************************************************

NearbyEnemySlaughter

NearbyFriendlySlaughter

NearbyTeamKillSlaughter

Speaker: a nearby AI guy

Target: none

These are played when a lot of guys die around the player. Enemy happens when bad guys die, Friendly is your team, and TeamKill is your team dying because they were killed by your team. The parameters for this to be played is currently 4 guys die in 8 seconds within 25m of the player. Those can be changed if necessary.

**************************************************************************************