Everything you could ever wish to know about...
This guide will explain everything you need to know about Animations in Saints Row 2.
Everything here was learned through the development of FPA+.
This guide will explain everything you need to know about Animations in Saints Row 2.
Everything here was learned through the development of FPA+.
What This Guide Covers:
- .anim_pc filename structure.
- How to add Triggers, Inverse Kinematics, Foleys, Props, and Effects to an animation via Anim_Files.xtbl.
- Preloading animations via preload_anim.tbl.
- Animation Sets, and how they all interact with each other (including tree diagrams).
- "State" vs "Action" animations.
- Customizing Compliments, Taunts and Walk Styles for Player Creation (Plastic Surgeon).
Don't be fooled by the "Spoilers". There is A LOT of information in this guide.
CLICK A SPOILER TO GET STARTED!
.anim_pc Filename Structure:
These files are the Animations themselves. Their Prefixes are named after the Animation Set they were designed for.
The following list breaks down the naming structure of these files. It is as complete as I could make it from memory of FPA+'s development over two years ago.
There might be a couple of things missing here and there, or some things I'm not entirely sure of at the time of writing.
These files are the Animations themselves. Their Prefixes are named after the Animation Set they were designed for.
The following list breaks down the naming structure of these files. It is as complete as I could make it from memory of FPA+'s development over two years ago.
There might be a couple of things missing here and there, or some things I'm not entirely sure of at the time of writing.
PREFIXES:
Cutscene:
Filename: | Translation: | Notes: |
---|---|---|
ACCS | Activity Cutscene |
Human:
Filename: | Translation: | Notes: |
---|---|---|
gml1 | Generic Male Life 1 | Male Playa, etc. |
gml4 | Generic Male Life 4 | Unused? |
gfl1 | Generic Female Life 1 | Female Playa, etc. |
pml1 | Pedestrian Male Life | |
pfl1 | Pedestrian Female Life | |
pol1 | Pedestrian Old Life | Also Bums |
cml1 | Cop Male Life | |
cust | Customization | Wardrobe, etc. |
bro | Brotherhood | |
trbl | Brotherhood | Tribal |
crib | Samedi | Caribbean |
ykza | Ronin | Yakuza |
Lipsync:
Filename: | Translation: | Notes: |
---|---|---|
bfplayer | Black Female Player | |
bmplayer | Black Male Player | |
hfplayer | Hispanic Female Player | |
hmplayer | Hispanic Male Player | |
wfplayer | White Female Player | |
wmplayer | White Male Player |
Vehicle:
Filename: | Translation: | Intended Animation Set: | Notes: |
---|---|---|---|
apc | APC | anim_auto_apc.xtbl | eg: Grizzly |
apch | Apachee Helicopter | anim_helifighter.xtbl | eg: Tornado |
atv | ATV | anim_moto_atv.xtbl | eg: Toad |
auto | Automobile | anim_auto.xtbl | Generic Cars |
bipn | Bi-Plane | anim_biplane.xtbl | eg: Parrot/Corsette/High Rise |
boat | Boat | anim_boats.xtbl | Generic Boats |
chop | Motorcycle | anim_moto_chopper.xtbl | eg: Sabertooth |
crft | Wavecraft | anim_boats_craft.xtbl | eg: Shark |
crsr | Cruisers | anim_moto_cruiser.xtbl | eg: Sabertooth, Shark |
dirt | Dirtbike | anim_moto_dirt.xtbl | eg: Sandstorm |
fght | Fighter Plane | anim_planes.xtbl | eg: Wolverine |
hydro | Hydroplane | Anim_Boats_Hydro.xtbl | Unused - Enter/Exit animations for the Hurricane |
jet | Jet Plane | anim_jet.xtbl | eg: Snipes 57 |
jet1 | Jet Plane | Ingame_Jetplane.xtbl | Unused - Enter/Exit animations for a Jet Plane - Likely Snipes 57 |
mopd | Moped | anim_moto_moped.xtbl | eg: Widowmaker |
pckt | Pocket Bike | anim_moto_pocket.xtbl | eg: Peewee |
plan | Unused | Unused | Unused - Enter/Exit animations for a Plane - Possibly Wolverine |
poli | Police Helicopter | anim_police_4d.xtbl | eg: Oppressor |
rckt | Crotch Rocket (Motorcycle) | anim_moto_rocket.xtbl | eg: Tetsuo, Kenshin |
sped1 | Speed Boat 1 | anim_boats_sped1.xtbl | Unused - Enter/Exit animations for Speed Boats |
ufo | UFO | UFO.xtbl | Destroy |
SUB-FIXES:
Generic:
Filename: | Translation: | Notes: |
---|---|---|
aim | Aim | |
ar | Arrest | |
atk | Attack | |
attk | Attack | |
bash | Bash | Weapon Melee |
bs | Base | |
bsejmp | Base Jump | |
cell | Cellphone | |
ch | Crouch | |
comp | Compliment | |
cr | Crouch Ready | |
cv | Cover | |
cw | Cower | |
cy | Carry | |
dv | Dive | |
eat | Eat | |
et | Eat | |
face | Facial Expression | |
faim | Fine Aim | |
fire | Fire Weapon | |
fl | Fall | |
flnch | Flinch | |
fn | Fence | |
get | Get | Recieve |
give | Give | |
gr | Grip Ledge | Climbing |
grp | Grapple | |
grnd | Ground | |
hb | Hospital Bed | rn07 |
hl | Hold | Grapple |
hs | Human Shield | |
idle | Idle | Timeout |
insult | Taunt | |
jm | Jump | |
jog | Run | |
jr | Jump Running | |
lg | Lounge | |
ln | Lean | |
m | Multi | To be used over State animations |
onf | On Fire | |
phone | Cellphone | |
pmp | Pimp | These can be SR1 animations |
pwup | Power-Up | Food/Drugs |
pwupm | Power-Up | Multi |
pt | Pant | |
rd | Ready | |
reac | Reaction | |
run | Run | |
runfr | Run, Fire Weapon | |
sd | Stand | |
situ | Situation | |
st | Sit | |
streaking | Streaking Diversion | |
strtl | Startle | |
sttl | Settle | |
sp | Sleep | |
sprint | Sprint | |
su | Surrender | |
swim | Swimming | |
talk | Talk | |
tred | Swim Stationary | |
trn | Turn | |
trvs | Traverse | |
walk | Walk | |
wlk | Walk | |
wlkfr | Walk, Fire Weapon |
Weapons:
Filename: | Translation: | Notes: |
---|---|---|
1h | Melee 1-Hand | |
2h | Melee 2-Hand | |
ak | Assault Rifle | |
bks | ? | |
csaw | Chainsaw | |
defib | Defibulator | |
dfib | Defibulator | |
firext | Fire Extinguisher | |
fk | ? | |
flashbang | Flashbang | |
flshbng | Flashbang | |
gigr | Geiger Counter | |
h1h | Havok 1-Hand | Makeshift Weapons |
h2h | Havok 2-Hand | Makeshift Weapons |
h2hh | Havok 2-Hand High | Makeshift Weapons |
h2hl | Havok 2-Hand Low | Makeshift Weapons |
hd | ? | |
hds | ? | |
heli | Helicopter Side Shooter | |
hose | Firehose | Cut from Firefighter Diversion |
hp | ? | |
mc | Melee Combat | |
melee | Melee Grab | Unused |
mg | Melee Grab? | |
mng | Minigun | |
pimp | Pimp Shotgun | |
ps | Pistol | |
psd | Dual Pistols | |
pspry | Pepperspray | |
pyro | Fireworks Box | |
pyrobox | Fireworks Box | |
relmv | Reload Moving | Multi |
rl | Rocket Launcher | |
rload | Reload | |
rpg | Rocket Launcher | |
s12 | Spas 12 | Automatic Shotguns |
scrg | Satchel Charge | |
sg | Shotgun | |
smg | SMG | |
so | ? | |
sr | Sniper Rifle | |
swd | Samurai Sword | |
trafficsign | Traffic Sign | Havok Weapon |
tribe | Brotherhood Melee | |
ykuz | Ronin Melee | |
vidcam | Video Camera |
Idle:
Filename: | Translation: | Notes: |
---|---|---|
acm | Adjust Crotch (Moving) | |
adc | Adjust Crotch | |
crkbk | Crack Back | |
flr | Flirt | |
grf | Greet (Wave) | |
grfm | Greet (Wave) (Moving) | |
hap | Happy | Little Dance |
hair | Fix Hair | |
imp | Impatient | |
lan | Look At Nails | |
sa | Scratch Ass | |
sam | Scratch Ass (Moving) | |
shc | Showcase Self | |
str | Stretch | |
suk | Suck Lollipop | |
tcs | Touch Self | |
tis | Tie Shoelace | |
twh | Twirl Hair |
Idle Multi (idlem):
Filename: | Translation: | Notes: |
---|---|---|
chtxt | Check Text | Multi |
crkwr | Crack Wrists | Multi |
hair | Fix Hair | Multi |
lan | Look At Nails | Multi |
lar | Look Around | Multi |
rlnck | Roll Neck | Multi |
sfce | Scratch Face | Multi |
React:
Filename: | Translation: | Notes: |
---|---|---|
ang | Angry | |
app | Applause | |
avc | Avoid Car | |
avp | Avoid Person | |
cal | Toe Injury | |
cha | Cheer A | |
chb | Cheer B | |
cob | Inspect Body | "Crouch Over Body"? |
comp | Compliment | |
heliroto | React to Low-Flying Helicopter Rotors | |
hrf | Horrified | |
hrta | Heart Attack | |
ins | Insulted | |
jer | Jerk | |
laff | Laugh | |
oho | Oh No You Di-in't! | |
pepspry | React to Pepperspray | |
pnt | Point | |
poo | Pour One Out | |
srp | Surprised | |
tgas | Tear Gas | |
tgasm | Tear Gas (Moving) | |
wac | Watch Carefully | |
wav | Wave |
Talk:
Filename: | Translation: | Notes: |
---|---|---|
cnf | Confrontational | |
dno | Dunno | |
drs | Disrespect | |
lng | Long | |
no | No | Shaking Head |
shrt | Short | |
sub | Submissive | |
wrs | With Respect | |
yel | Yelling | |
yes | Yes | Nodding Head |
Celebrity (celb):
Filename: | Translation: | Notes: |
---|---|---|
fan | Fan | |
fath | Female Athlete | |
fmusic | Female Musician | |
fpstar | Female Pornstar | |
fstar | Female Moviestar | |
intrv | Interview | |
math | Male Athlete | |
mmusic | Male Musician | |
mpstar | Male Pornstar | |
mstar | Male Moviestar | |
rprtr | Reporter |
Construction (cnstrct):
Filename: | Translation: | Notes: |
---|---|---|
hmmr | Hammer | |
jckhmmr | Jackhammer | |
rdsign | Road Sign | |
wvthru | Wave Through | |
saw | Saw |
Prisoner (inmate):
Filename: | Translation: | Notes: |
---|---|---|
bars | Gripping Prison Cell Bars | |
bngcup | Bang Cup Along Bars | |
curl | Curling | Lift Weights |
dig | Dig At Cell Wall | |
lovepstr | Love Poster | |
playharmon | Play Harmonica | |
scrub | Scrub Floor | |
scrbflr | Scrub Floor | |
carve | Carve Into Cell Wall |
Other:
Filename: | Translation: | Notes: |
---|---|---|
3cm | Three Cup Magic | Cut Diversion |
arcade | Arcade Machine | |
atm | ATM | Cash Machine |
bchr | Bench Read | |
bd | Breakdancer | |
beg | Begger | |
bev | Beveridge | Drink |
bg | Bong | |
binoc | Binoculars | |
bl | Blunt | |
blkjck | Blackjack | |
bnch | Bench | |
books | Books Carrying | Student |
br | Beer | |
broom | Broom | |
brwscloth | Browse Clothing | Clothing Store |
brwsgun | Browse Pistols | Gun Store |
brwsjwlry | Browse Jewelry | Jewelry Store |
brwswine | Browse Wine | Brown Baggers/Gas Station |
btwl | Beach Towel | |
carpush | Car Push | from an unused sequence |
carrpair | Car Repair | Mechanic |
celb | Celebrity | Crowd Control |
cheerldr | Cheerleader Routines | |
chutefail | Parachute Failure | Falling from the sky! |
cig | Cigarette | |
clipbd | Clipboard | |
cnstrct | Construction | |
comedy | Stand-Up Comedy Routine | |
cpr | CPR | EMT Chest Compressions |
craps | Play Craps | |
dance | Dance | |
dk | Drunk | |
dmno | Dominos | |
drman | Doorman | |
et | Eat | |
firbrthr | Firebreather | |
fishn | Fishing | |
flash | Flashing | |
flyers | Hand Out Flyers | |
fo | 40oz | |
gardenr | Gardener | |
gat | Gat Injured | rn04 |
gp | Guitar Player | |
gurney | Gurney | Patients |
haksac | Hacky Sack | |
hcking | Shaundi Hacking | ss10 |
hcvr | Head Cover | with Newspaper from Rain |
hedgetrim | Hedge Trimmer | |
hlmt | Helmet | ykza |
hnsd | Handstand | vsurf |
ho | Ho | |
hyd | Hydrant | basking in burst Fire Hydrant spray |
inmate | Inmate | Prisoner |
janitr | Janitor Cart | |
jg | Jogger | |
jgglr | Juggler | |
jggle | Juggle | |
junkie | Junkie | Drug Addict |
jukebox | Push Over Jukebox | from an unused sequence |
lapdance | Lapdance | |
lfegrd | Lifeguard | |
lc | Lean to Car | Ho |
line | Queueing in Line | |
lmbo | Limbo | |
lndry | Laundry Basket | |
lookout | Lookout | Coin-Operated Binoculars |
lover | Lovers | Two Person Bench |
ltop | Laptop | |
lwnchair | Lawn Chair | |
ma | Martial Arts | Practice |
mechan | Mechanic | |
metldetct | Metal Detector | |
mgaphn | Megaphone | |
mr | Magazine/Newspaper Read | |
mrn | Mourn | |
o2tnk | Oxygen Tank | |
paintr | Painter | |
phand | Panhandle | |
piano | Piano Player | |
pinball | Pinball Table | |
pix | Take Picture | |
pkr | Poker | |
pnic | Picnic | |
pol | Poledancer | |
pond | Pond Scoop | BugNet |
pool | Pool Table | |
poop | Poop | From cut Vandalism Diversion |
pr | Protest | |
psnatch | Purse Snatch | |
ptable | Picnic Table | |
pwrwlk | Power Walk | |
qrt | Barbershop Quartet | |
rap | Rap Battle | |
rdbk | Read Book | |
rdppr | Read Newspaper | |
reacneg | React Negative | Flashing |
reacpos | React Positive | Flashing |
rprtr | Reporter | |
rps | Rock/Paper/Scissors | |
rulte | Roulette | |
security | Security Guard | Airport |
shdwbox | Shadow Boxing | |
shpbg | Shopping Bag | |
shwr | Shower | |
signin | Shaundi Sign-In Police Station | ss10 |
sing | Crooner Singing Routine | |
sk8bd | Skateboard | |
skate | Rollerskate | |
slf | Slap Fight | |
slot | Slot Machine | |
smkin | Smoking | |
sofa | Sofa | |
spad | Sketch Pad | |
stcsepull | Suitcase Pull | Airport |
stg | Stagedancer | |
stool | Stool | |
support | ? | |
tag | Tagging Diversion | |
tchi | Taichi | |
tdance | Tap Dance | |
terror | Terrorize | crib/ykza |
tkout | Takeout | Noodles |
tpdnc | Two Person Dance | |
tr | Tourist | |
um | Umbrella | |
uniq | Unique | |
vndr | Hotdog Vendor | |
vsurf | Vehicle Surf | |
watermelon | ? | Lipsync Animations |
wndowsh | Window Wash | Squeegee |
wory | Worry | |
wrkngtrk | Working On Truck | Mechanic |
wrmhnds | Warm Hands | Fire Barrel |
wtrbtl | Water Bottle | |
yog | Yoga | |
zm | Zombie |
Directions:
Filename: | Translation: | Notes: |
---|---|---|
bck | Back | |
bk | Back | |
fn | Front | |
frbh | From Behind | |
frn | Front | |
frwd | Forward | |
l | Left | |
lft | Left | |
r | Right | |
rgt | Right | |
trn | Turn | |
trnb | Turn Back | |
trnl | Turn Left | |
trnr | Turn Right | |
skid | Skid to Stand |
Vehicle:
Filename: | Translation: | Notes: |
---|---|---|
cycl | Motorcycle Weapon Attacks | |
cyclpa | Motorcycle Passenger Weapon Attacks | |
heliasslt | Heli Assault | NPC Rescue |
rascal | Mobility Scooter | Can be seen in very early pre-release material |
ANIM_FILES.xtbl:
This file controls which animations exist in the game, and any Prop, Foley, IK and Trigger information which may be assigned to them.
A basic string for an animation in this file looks like this:
Fleshed out (All Elements):
Easier-to-Read Format:
"FRAME" = A value based on 30 FPS. (This will not change if you play at a different frame rate.)
TRIGGERS:
References: anim_triggers.xtbl
A Trigger causes the animation to do something. Examples of these are "jump takeoff", "open door" and "ragdoll start".
Interestingly, footstep sounds are Triggers, not Foleys ("left-foot", "right-foot"). It's likely done this way to allow different footstep sounds for different surfaces.
<Frame>:
On which animation frame is the Trigger triggered?
IKs:
IK stands for Inverse Kinematics. IKs allow limbs to be animated further than was initially animated in the base .anim_pc file.
SR2's IK system is a little murky, as some of it is hard-coded. But here's what I've learned about it:
LOCATION:
References: anim_ik_location.xtbl
This is the limb which will be manipulated.
SITUATION:
References: anim_ik_situation.xtbl
This is where the limb will be moved to.
There are two types of Situation Names listed in anim_ik_situation.xtbl:
1. <Name>
Some Situation Names have prefixes. These are:
<Frame>:
On which animation frame does the IK start?
<Blend>:
This is how many frames it takes for the Location (limb) to reach the Situation.
SOUNDS:
References: foleys.xtbl
These are Foleys (sound effects) listed in foleys.xtbl.
<Frame>:
On which animation frame does the Foley start?
<Looping>:
Does the Foley play only once, or continue infinitely? (True/False)
OLDPROPS:
References: items_3d.xtbl, anim_prop_sets.xtbl, effects.xtbl
Presumably, Volition were developing a new Props system at one point, but ended up going back to the old one. Hence "OldProps" is used, and "Props" isn't.
This allows you to tie a Prop/Effect to the character using the animation. This is used extensively for NPCs and Action Nodes. (Eg: Taking a Photo, or walking with an Umbrella.)
<Name>:
The Prop listed in items_3d.xtbl.
<Set>:
A set of Props listed in anim_prop_sets.xtbl. This isn't used often. But it's used for variety. (Eg: "Drinks" allows either "SodaCupPlastic" or "CoffeeCupPlastic" Props to be used.)
<StartFrame>:
On which animation frame does the Prop appear?
<EndFrame>:
On which animation frame does the Prop disappear?
<AttachPoint>:
This is the part of the body this Prop/Effect is tied to.
I'm unsure if this references an .xtbl file somewhere. But what I've listed in the "Easier-to-Read Format" above is what is used in Anim_Files.xtbl.
As mentioned earlier in this guide, any valid input here can also be used as a <Prop_Name> in anim_ik_situation.xtbl.
<FXStart>:
On which animation frame does the Effect start?
<FXEnd>:
On which animation frame does the Effect stop?
<FXName>:
An Effect listed in effects.xtbl.
<HardStop>:
I'm not entirely certain what this is. More often than not, this is set to (Disabled).
This file controls which animations exist in the game, and any Prop, Foley, IK and Trigger information which may be assigned to them.
A basic string for an animation in this file looks like this:
Code:
<Anim_file><Animation><Filename>NAME.animx</Filename><Preload>True/False</Preload></Animation><Triggers></Triggers><IKs></IKs><Sounds></Sounds><Voice_Lines></Voice_Lines><Props></Props><OldProps></OldProps></Anim_file>
Fleshed out (All Elements):
Code:
<Anim_file><Animation><Filename>NAME.animx</Filename><Preload>True/False</Preload></Animation><Triggers><Trigger><Name>NAME</Name><Frame>0</Frame></Trigger></Triggers><IKs><IK><Enable>True/False</Enable><Location>NAME</Location><Frame>0</Frame><Blend>0</Blend><Situation>NAME</Situation></IK></IKs><Sounds><Sound><Frame>0</Frame><Looping>True/False</Looping><Foley>NAME</Foley></Sound></Sounds><Voice_Lines>UNUSED</Voice_Lines><Props>UNUSED</Props><OldProps><Prop><Name>NAME</Name><Set>NAME</Set><StartFrame>0</StartFrame><EndFrame>0</EndFrame><AttachPoint>NAME</AttachPoint><FXStart>0</FXStart><FXEnd>0</FXEnd><FXName>NAME</FXName><HardStop>Yes/No/(Disabled)</HardStop></Prop></OldProps></Anim_file>
Easier-to-Read Format:
Code:
<Anim_file>
<Animation>
<Filename>NAME.animx</Filename>
<Preload>True/False</Preload>
</Animation>
<Triggers>
<Trigger>
<Name>(ref:anim_triggers.xtbl:Trigger.Name)</Name>
<Frame>0</Frame>
</Trigger>
</Triggers>
<IKs>
<IK>
<Enable>True/False</Enable>
<Location>(ref:anim_ik_location.xtbl:Location.Name)</Location>
<Frame>0</Frame>
<Blend>0</Blend>
<Situation>(ref:anim_ik_situation.xtbl:IK_Situation.Name)</Situation>
</IK>
</IKs>
<Sounds>
<Sound>
<Frame>0</Frame>
<Looping>True/False</Looping>
<Foley>(ref:foley.xtbl:Foley.Name)</Foley>
</Sound>
</Sounds>
<Voice_Lines>UNUSED</Voice_Lines>
<Props>UNUSED</Props>
<OldProps>
<Prop>
<Name>(ref:items_3d.xtbl:Item.Name)</Name>
<Set>(ref:anim_prop_sets.xtbl:Anim_Prop_Set.Name)</Set>
<StartFrame>0</StartFrame>
<EndFrame>0</EndFrame>
<AttachPoint>Left Hand/Right Hand/L-hand/R-hand/l-foot/r-foot/l-thigh/r-thigh/head (there might be more)</AttachPoint>
<FXStart>0</FXStart>
<FXEnd>0</FXEnd>
<FXName>(ref:effects.xtbl:Effect.Name)</FXName>
<HardStop>Yes/No/(Disabled)</HardStop>
</Prop>
</OldProps>
</Anim_file>
TRIGGERS:
References: anim_triggers.xtbl
A Trigger causes the animation to do something. Examples of these are "jump takeoff", "open door" and "ragdoll start".
Interestingly, footstep sounds are Triggers, not Foleys ("left-foot", "right-foot"). It's likely done this way to allow different footstep sounds for different surfaces.
<Frame>:
On which animation frame is the Trigger triggered?
IKs:
IK stands for Inverse Kinematics. IKs allow limbs to be animated further than was initially animated in the base .anim_pc file.
SR2's IK system is a little murky, as some of it is hard-coded. But here's what I've learned about it:
LOCATION:
References: anim_ik_location.xtbl
This is the limb which will be manipulated.
SITUATION:
References: anim_ik_situation.xtbl
This is where the limb will be moved to.
There are two types of Situation Names listed in anim_ik_situation.xtbl:
1. <Name>
Anim_Files.xtbl references <Name>. This is what you'll assign to an animation string in Anim_Files.xtbl.
2. <Prop_Name><Prop_Name> is the internal name of the Attach Point. It is unknown what they all are, or how all of them work.
You can use the same Attach Points used to position Props though. These will work for any animation.
For example; You can move the "Left Hand" Location to the "l-thigh" Attach Point Situation.
The anim_ik_situation.xtbl file I've attached to the bottom of this post has new entries which allow you to try these out for yourself (using the currently known Attach Points). They can be found at the bottom of the table with the unique "AP" prefix.
Some Situation Names have prefixes. These are:
"VID" = Visual Identifier (This appears to be something to do with Props).
"PO" = Pull Out (ie: Carjacking) (TableTemplates only).
"MS" = Morphed Surface.
"2P" = Two Person (Eg: Lovers sitting on a bench).
<Frame>:
On which animation frame does the IK start?
<Blend>:
This is how many frames it takes for the Location (limb) to reach the Situation.
SOUNDS:
References: foleys.xtbl
These are Foleys (sound effects) listed in foleys.xtbl.
<Frame>:
On which animation frame does the Foley start?
<Looping>:
Does the Foley play only once, or continue infinitely? (True/False)
For "Action" animations, use False.
For "State" animations, use either True or False.
OLDPROPS:
References: items_3d.xtbl, anim_prop_sets.xtbl, effects.xtbl
Presumably, Volition were developing a new Props system at one point, but ended up going back to the old one. Hence "OldProps" is used, and "Props" isn't.
This allows you to tie a Prop/Effect to the character using the animation. This is used extensively for NPCs and Action Nodes. (Eg: Taking a Photo, or walking with an Umbrella.)
<Name>:
The Prop listed in items_3d.xtbl.
<Set>:
A set of Props listed in anim_prop_sets.xtbl. This isn't used often. But it's used for variety. (Eg: "Drinks" allows either "SodaCupPlastic" or "CoffeeCupPlastic" Props to be used.)
<StartFrame>:
On which animation frame does the Prop appear?
<EndFrame>:
On which animation frame does the Prop disappear?
<AttachPoint>:
This is the part of the body this Prop/Effect is tied to.
I'm unsure if this references an .xtbl file somewhere. But what I've listed in the "Easier-to-Read Format" above is what is used in Anim_Files.xtbl.
As mentioned earlier in this guide, any valid input here can also be used as a <Prop_Name> in anim_ik_situation.xtbl.
<FXStart>:
On which animation frame does the Effect start?
<FXEnd>:
On which animation frame does the Effect stop?
<FXName>:
An Effect listed in effects.xtbl.
<HardStop>:
I'm not entirely certain what this is. More often than not, this is set to (Disabled).
PRELOAD_ANIM.tbl:
This is a list of animations the game will keep ready-to-go (pre-loaded) at all times.
Any animations you want to add to your Playa's animation set (GML1.xtbl/GFL1.xtbl) will need to be listed once somewhere in this file.
Some animations which are not listed here are used in individual preloads for each chunk of the map (.anim_list). These can also be modified, though you don't really need to do this unless you're adding action nodes to a specific area (which is beyond the scope of this guide).
The effects of this can be seen when using SuperUI's animation codes. This is why the animations only work in certain areas of the map.
This is a list of animations the game will keep ready-to-go (pre-loaded) at all times.
Any animations you want to add to your Playa's animation set (GML1.xtbl/GFL1.xtbl) will need to be listed once somewhere in this file.
Some animations which are not listed here are used in individual preloads for each chunk of the map (.anim_list). These can also be modified, though you don't really need to do this unless you're adding action nodes to a specific area (which is beyond the scope of this guide).
The effects of this can be seen when using SuperUI's animation codes. This is why the animations only work in certain areas of the map.
ANIM_SET_FILENAMES.xtbl:
This is a list of all Animation Set files in the game. In order to add a custom Animation Set file, it must be added here for the game to recognise it.
ANIMATION SET FILES:
Each character in the game is assigned an Animation Set. These contain sets of animations suited for a certain type of character or situation. All animation sets are structured as a hierarchy, meaning characters will default to using animations in a parent animation set if no equivalent animation exists in their child animation set.
Human Animation Sets:
![sr2_AnimSetTree.png sr2_AnimSetTree.png](https://www.saintsrowmods.com/forum/data/attachments/42/42834-c108a0490b6212ada170d64ccd623e16.jpg?hash=1um7C1bYCA)
Credit to IdolNinja (RIP), who laid most of the ground work for me to complete this tree.
Vehicle Animation Sets:
![sr2_AnimSetTree_Vehicles.png sr2_AnimSetTree_Vehicles.png](https://www.saintsrowmods.com/forum/data/attachments/42/42835-179bc09eeae1847ebfa873de5d38d832.jpg?hash=4aAjDq2deG)
This is a list of all Animation Set files in the game. In order to add a custom Animation Set file, it must be added here for the game to recognise it.
ANIMATION SET FILES:
Each character in the game is assigned an Animation Set. These contain sets of animations suited for a certain type of character or situation. All animation sets are structured as a hierarchy, meaning characters will default to using animations in a parent animation set if no equivalent animation exists in their child animation set.
Human Animation Sets:
![sr2_AnimSetTree.png sr2_AnimSetTree.png](https://www.saintsrowmods.com/forum/data/attachments/42/42834-c108a0490b6212ada170d64ccd623e16.jpg?hash=1um7C1bYCA)
Credit to IdolNinja (RIP), who laid most of the ground work for me to complete this tree.
Vehicle Animation Sets:
![sr2_AnimSetTree_Vehicles.png sr2_AnimSetTree_Vehicles.png](https://www.saintsrowmods.com/forum/data/attachments/42/42835-179bc09eeae1847ebfa873de5d38d832.jpg?hash=4aAjDq2deG)
STATE vs ACTION ANIMATIONS:
These are the "slots" the animations themselves fill in the Animation Set files.
STATE:
-"State" animations are animations which play on a loop, such as "stand" or "walk".
ACTION:
-"Action" animations are single use, such as transitional animations, or firing a gun.
It is worth remembering what the animation is going to be used as when assigning an Effect or Foley in Anim_Files.xtbl, or you could encounter unwanted bugs (such as a Foley playing infinite times canonically, getting louder each time the State is repeated. Or looped Foleys playing on infinitely after an Action has finished.)
There are two files relating to States and Actions: anim_states.xtbl and anim_actions.xtbl
Each of these files are structured the same as each other. The interesting feature of these files is the "Anim_Flag" options.
While I haven't toyed around with all of them, I've found the "camera look at bone" Flag in anim_states.xtbl can be added to any movement State to create a Camera Shake effect (as seen in "First Person (+Driving) v1.1").
I recommend having a play around with these to see what can be achieved!
These are the "slots" the animations themselves fill in the Animation Set files.
STATE:
-"State" animations are animations which play on a loop, such as "stand" or "walk".
ACTION:
-"Action" animations are single use, such as transitional animations, or firing a gun.
It is worth remembering what the animation is going to be used as when assigning an Effect or Foley in Anim_Files.xtbl, or you could encounter unwanted bugs (such as a Foley playing infinite times canonically, getting louder each time the State is repeated. Or looped Foleys playing on infinitely after an Action has finished.)
There are two files relating to States and Actions: anim_states.xtbl and anim_actions.xtbl
Each of these files are structured the same as each other. The interesting feature of these files is the "Anim_Flag" options.
While I haven't toyed around with all of them, I've found the "camera look at bone" Flag in anim_states.xtbl can be added to any movement State to create a Camera Shake effect (as seen in "First Person (+Driving) v1.1").
I recommend having a play around with these to see what can be achieved!
CUSTOMIZABLE COMPLIMENTS, INSULTS & WALKS:
These files determine the Names and Voice Lines associated with Compliments, Taunts and Movement styles found in Player Creation (Plastic Surgeon).
(The animations themselves can be changed in GML1.xtbl.)
Both files are structured similarly.
CUSTOMIZABLE_ACTION.xtbl:
<Name>:
The internal Name of this Compliment/Taunt. Best not to change this.
<ActionType>:
Will this appear in the "Compliment" menu, or the "Taunt" menu?
<LocalizedTag>:
This is the name which will appear in the in-game menu. It is designed to use localized names from PlayerCreation_text.xtbl, but anything you put here will show in-game. Just remember there's a limit to how many text characters you can use for custom names in general.
<Action>:
Which "Action" animation slot is this going to use? You could theoretically use ANY Action.
<Team>:
Which Gang's Story Arch do you unlock this Compliment/Taunt through? References teams.xtbl.
<Situation>:
This is the set of Voice Lines the Playa can draw from for this Compliment/Taunt. This references persona_situations.xtbl. The Vanilla Situations only have one Voice Line for each Playa's voice. But there are others which have multiple lines which will play sequentially each time the Action is performed.
Here is a list of all the Situations listed in persona_situations.xtbl which contain Voice Lines for the Playa (Tested with Female Voice 3):
CUSTOMIZABLE_WALK.xtbl:
Unlike customizable_action.xtbl, Walk Styles are shown in the same order in-game the entries in this file.
<Name>:
The internal Name of this Walk Style. Best not to change this.
<display_name>: (Same as <LocalizedTag> in customizable_action.xtbl.)
This is the name which will appear in the in-game menu. It is designed to use localized names from PlayerCreation_text.xtbl, but anything you put here will show in-game. Just remember there's a limit to how many text characters you can use for custom names in general.
<Animation_State>: (Same as <Action> in customizable_action.xtbl, but for States.)
Which "State" animation slot is this going to use? You could theoretically use ANY State.
These files determine the Names and Voice Lines associated with Compliments, Taunts and Movement styles found in Player Creation (Plastic Surgeon).
(The animations themselves can be changed in GML1.xtbl.)
- customizable_action.xtbl controls "Compliments" & "Taunts".
- customizable_walk.xtbl controls "Movement Styles" (Walks).
Both files are structured similarly.
CUSTOMIZABLE_ACTION.xtbl:
<Name>:
The internal Name of this Compliment/Taunt. Best not to change this.
<ActionType>:
Will this appear in the "Compliment" menu, or the "Taunt" menu?
<LocalizedTag>:
This is the name which will appear in the in-game menu. It is designed to use localized names from PlayerCreation_text.xtbl, but anything you put here will show in-game. Just remember there's a limit to how many text characters you can use for custom names in general.
Compliments and Taunts are shown in alphabetical order in-game according to this string.
<Action>:
Which "Action" animation slot is this going to use? You could theoretically use ANY Action.
Tip: "Insult" Actions (eg: "Insult A") have a angry facial expression assigned to them. If you wanted to use that expression for a Compliment, simply edit the <ActionType> to "Compliment".
<Team>:
Which Gang's Story Arch do you unlock this Compliment/Taunt through? References teams.xtbl.
<Situation>:
This is the set of Voice Lines the Playa can draw from for this Compliment/Taunt. This references persona_situations.xtbl. The Vanilla Situations only have one Voice Line for each Playa's voice. But there are others which have multiple lines which will play sequentially each time the Action is performed.
Here is a list of all the Situations listed in persona_situations.xtbl which contain Voice Lines for the Playa (Tested with Female Voice 3):
Situation: | Notes: |
---|---|
combat - player congratulate self | Boasting |
drunk - say shit | |
escort - player fail mini game | Hoing Fail |
group - player dismiss confirm | Dismiss Homie |
misc - player collision with npc | |
misc - player timeout | Idle Voice Lines |
special - player arrested by cop | Unheard in-game |
threat - player driver extract | Steal Car |
threat - player pull rider off motorcycle | Steal Bike. (According to Female Voice 3, her "Old Man" had a Motorbike.) |
threat - player alert group attack | Rally Saints to Attack |
voice - boo | |
voice - cheer | |
voice - cough | |
voice - death scream | |
voice - fall | Long Scream. Used when falling from great height. |
voice - fire scream (on fire) | |
voice - laugh | |
voice - making out | Hoing Noises |
voice - pain shout | |
voice - startled line | "WTF?" |
voice - struggling | |
voice - thrown | "Woah!" |
voice - grunts | "Ah!" |
voice - panting | |
voice - basejumping | "WOOOOHOOOOO!!!" - Unused |
player compliment - arsenio | "Yeah! Woof, woof, woof, woof, woof!" |
player compliment - blow kiss | *Kiss, Blow. |
player compliment - bow | "Well played, Sir." |
player compliment - fonz collar | "Ehhhhhhh" |
player compliment - fonz point | "Ehhhhhhh" |
player compliment - jig | *Whistling |
player compliment - laugh | "Ha Ha" |
player compliment - number one | "You and me? We're number one." |
player compliment - ok | "I like it. I really do." |
player compliment - salute | "Aye aye, Captain." |
player compliment - thumbs up | "That's what I like." |
player taunt - arm flex | "You can't handle this much sexy!" |
player taunt - ass slap | "You ain't never getting none of this, baby." |
player taunt - chest bump | "Come get it!" |
player taunt - flip off | *Spanish |
player taunt - hulkster | "Oh, yeah, let's hear it. Woohoo!" |
player taunt - matrix | *Karate noises |
player taunt - na na | "Na na na nana na", *Blows Raspberry |
player taunt - no you didnt | "No, no, no", *Spanish |
player taunt - oh yeah | "Woohoo! Yeah!" |
player taunt - pee | *Humming |
player taunt - poop | "This is what I think of you. Yeah. See that?" |
player taunt - ride the donkey | "Yeeha! Woo yeah! A little more! Yeow!" |
player taunt - roar | "Roar!!" |
player taunt - smooth criminal | "Woo! Alright!" |
player taunt - spit and flick | *Spanish |
player taunt - teabag | "Watchu gonna do about it?" |
player taunt - throat slit | "I'll cut you." |
player taunt - vomit | *Blech! |
player taunt - wanker | *Spanish |
player taunt - you crazy | "You fucking stupid?" |
CUSTOMIZABLE_WALK.xtbl:
Unlike customizable_action.xtbl, Walk Styles are shown in the same order in-game the entries in this file.
<Name>:
The internal Name of this Walk Style. Best not to change this.
<display_name>: (Same as <LocalizedTag> in customizable_action.xtbl.)
This is the name which will appear in the in-game menu. It is designed to use localized names from PlayerCreation_text.xtbl, but anything you put here will show in-game. Just remember there's a limit to how many text characters you can use for custom names in general.
<Animation_State>: (Same as <Action> in customizable_action.xtbl, but for States.)
Which "State" animation slot is this going to use? You could theoretically use ANY State.
Attachments
Last edited: