| Getting AI actors to Talk, Anim |
|
| 2005-12-03 08:24:30 |
So you want to know how to get your plain AI actors to act more mature? well in a few small steps you will be able to
Tut written by Hercules
|
////////////////////////////////////////////
//////INTRO_ANIM_SOUND/////
///////////////////////////////////////////
Step 1: make an AI actor, put him where ever you want right click>>>>actor
Step 2: give him the entitys below...
targetname moody
script_friendname Sgt. Moody
Thats it for the mapping, save & compile
////////////////////////////////////////////////////////////////////
////////////////now for the scripting//////////////////////
//////////////////////////////////////////////////////////////////
Step 3:
#using_animtree("generic_human");
main()
{
maps\_load_gmi::main();
level.scrsound["foley"] ["open_speech"] = "foley_ev00_01";
level.scr_face["foley"] ["open_speech"] = (%f_foy_foley_ev00_01);
level.scr_anim["foley"] ["open_speech"] = (%c_us_foy_foley_ev00_01);
wait 2;
level.scrsound["foley"] ["open_speecha"] = "foley_ev00_01a";
level.scr_face["foley"] ["open_speecha"] = (%f_foy_foley_ev00_01a);
level.scr_anim["foley"] ["open_speecha"] = (%c_us_foy_foley_ev00_01a);
wait 4;
level.scr_face["foley"] ["whistle_blow"] = (%PegDay_facial_Friend1_01_incoming);
level.scr_anim["foley"] ["whistle_blow"] = (%c_us_foy_blow_wistle);
level.scrsound["foley"] ["whistle_blow_rolloff2"] = "whistle_blow_rolloff2";
wait 4;
thread foley();
}
foley()
{
level.foley = getent("moody","targetname");
level.foley.animname = "foley";
level.foley thread anim_single_solo (level.foley,"open_speech");
wait 19;
level.foley thread anim_single_solo (level.foley,"open_speecha");
wait 4;
level.foley thread anim_single_solo (level.foley,"whistle_blow");
}
anim_single_solo (guy, anime, tag, node, tag_entity)
{
newguy[0] = guy;
maps\_anim_gmi::anim_single (newguy, anime, tag, node, tag_entity);
}
/////////////////////////////////////////////////////////////////////
/////////////////now for the sounds////////////////////////
///////////////////////////////////////////////////////////////////
Step 4: in your soundaliases folder, make a new txt document and rename it to YOURMAPNAME.csv and put this inside
"# If the text in the first column of a row starts with a # character, the row is ignored",,
,,"If the first column for a row is blank, then the row is ignored"
# The first non-comment line of a sound alias file specifies the key name for all values appearing in this column.,,
"# This means it is safe to swap entire columns around, though you should never swap partial columns.",,
"# You can invent new keys, but the game will ignore them if it doesn't know about them.",,
"# You can leave out keys, but the ""name"" and ""file"" keys must always be present.",,
,name,name of the alias that is used to play this sound (required)
,sequence,"used to uniquely identify alias entries when more than one
sound goes to an alias, used only to catch unwanted duplicates (default
= 0)"
,file,the name of the file that contains the sound data (required)
,vol_min,"0 is silent, 1 is full volume (default = 1)"
,vol_max,"0 is silent, 1 is full volume (default = same as vol_min)"
,pitch_min,"1 is normal playback, 2 is twice as fast, 0.5 is half as fast (default = 1)"
,pitch_max,"1 is normal playback, 2 is twice as fast, 0.5 is half as fast (default = same as pitch_min)"
,dist_min,"within this distance in inches, the sound is always full volume (default = 120)"
,dist_max,"outside this distance in inches, the sound is not started.
If left blank or set to 0, the sound will play from any distance. This
does not affect sound volume
falloff."
,channel,"auto, menu, weapon, voice, item, body, local, music, announcer (default = auto)",,,,,,,,,,,,,
,type,streamed / loaded (default = loaded),,,,,,,,,,,,,
,probability,weight to use for the weighted probability of playing this
sound instead of another sound (default = 1),,,,,,,,,,,,,
,loop,"whether this sound is ""looping"" or ""nonlooping"" (default = ""nonlooping"")",,,,,,,,,,,,,
,masterslave,"if ""master"", this is a master sound. If a number, then
this sound won't exceed this volume whenever any master sound is
playing. If blank, then neither
master nor slave.",,,,,,,,,,,,,
,loadspec,"space-separated list of which maps should use this alias;
eg, ""burnville dawnville"". If blank, the alias is used on all
maps.",,,,,,,,,,,,,
name,sequence,file,vol_min,vol_max,pitch_min,pitch_max,dist_min,dist_max,channel,type,probability,loop,masterslave,loadspec,subtitle
#foley,,,,,,,,,,,,,,,
foley_ev00_01,,voiceovers/foy/foley_ev00_01.mp3,1,,,,80,1500,voice,streamed,,,,MAP NAME HERE,GMI_SUBTITLES_FOY_FOLEY_EV00_01
foley_ev00_01a,,voiceovers/foy/foley_ev00_01a.mp3,1.1,,,,80,1500,voice,streamed,,,,MAP
NAME HERE,GMI_SUBTITLES_FOY_FOLEY_EV00_01A
whistle_blow_rolloff2,,misc/whistle_blow_rolloff2.wav,1,,,,80,1500,voice,streamed,,,,MAP NAME HERE,
Step 5: in your soundloadspecs folder, make a new folder rename it to
SP, and inside that make a new txt document rename it to
YOURMAPNAME.csv and put this inside
# This file defines the default soundalias files to load if no map specific loadspec file is found
# If you want to include sounds into your map file which are not included here you should make a seperate
"# load spec file int the form of ""
Thats it, wasnt hard was it you can get the .map file & files from HERE.
|
|