Heyas,
I likely won't be adding any more animations to this particular animation set for states which involve weapons because the animation file is now very big and sort of unwieldy.
@ HKCrazy- the normal reload anim is already only a second or less in length so I don't think it would be a good use of animation space. (see explanation below)
@ those whose suggestions were brilliant but won't be added- Please consider that when ever an animation is added which can be used with a weapon, it needs to be duplicated five addtl. times for all of the weapon types or else things can break. I basically had a limit of 389 frames of new animations which could be added (389x6=2334 total frames of new animation) and I have reached that limit now. If I add anything else it would mean needing to add yet another 2334 frames of animation which IMO needlessly swells the character's memory footprint. I will however still tack on another 100 or so total frames of animations for unarmed/weapontype=0 use only which will be useful to designers in storytelling. All in all I'm pretty pleased with what I've been able to add considering I honestly thought I'd be adding just two or three new anims when I started!
Here is the current animation list. New anims are in ALLCAPS: (I am nearly completed testing animations and fixing minor glitches here and there with anim popping, etc. Soon I will add the last of the animations and have one last round of beta testing before finalizing meshes and release of characters and animation assets)
EAI character animation reference list:
;Animationdesc (0-49-unarmed,50-99pistol,100-149 submach,150-199 rifle,200-249 heavyweap,250-299 bazooka)
anim0 = Spawn 190,209
anim1 = Idle 210,234
anim2 = Move Slow 235,259
anim3 = Strafe Left 260,279
anim4 = Strafe Right 280,299
anim5 = Move Fast 300,318
anim6 = Reload Weapon (or Toss) 319,355
anim7 = Climb 160,189
anim8 = TALK NEUTRAL 2540,2564
anim9 = GET UP PRONE 2871,2886
anim10 = HEADSHOT/KO 2650,2667
anim11 = Impact Front 0,19
anim12 = Bounce Front 20,39
anim13 = Get Up Front 493,522
anim14 = Impact Back 40,59
anim15 = Bounce Back 60,79
anim16 = Get Up Back 523,552
anim17 = Impact Left 120,139
anim18 = Bounce Left 140,159
anim19 = STUNNED 2669,2673
anim20 = Impact Right 80,99
anim21 = Bounce Right 100,119
anim22 = FLINCH: GUT 2692,2701
anim23 = GUARD WALK 2500,2524
anim24 = TALK YES 2564,2585
anim25 = TALK NO 2585,2605
anim26 = GUARD IDLE 2525,2539
anim27 = POINT 2605,2623
anim28 = STOP 2623,2649
anim29 = FLINCH: LEFT 2674,2683
anim30 = FLINCH: RIGHT 2683,2692
anim31 = Crouched Idle 356,380
anim32 = Crouched Move Slow (same) 381,405
anim33 = Crouched Strafe Left (same) 381,405
anim34 = Crouched Strafe Right (same) 381,405
anim35 = Crouched Move Fast (same) 381,405
anim36 = Crouched Reload Weapon (or toss) 406,442
anim37 = GO PRONE 2823,2838
anim38 = PRONE IDLE 2838,2849
anim39 = PRONE MOVE (Generic) 2850,2870
anim40 = Freeform Idle 443,462
anim41 = Freeform Move 463,492
anim42 = Recover Back 493,522
anim43 = Recover Face 523,552
anim44 = FLINCH: CRITICAL 2701,2720
anim45 = DOOR KNOCK 2721,2750
anim46 = DOOR KICK 2750,2772
anim47 = MELEE FOREWARD 2773,2789
anim48 = MELEE LOW 2790,2806
anim49 = MELEE CROUCHED 2807,2823
;Weapon anims must repeat every 389 frames!
anim50 = Weapon Spawn 553,572
anim51 = Weapon Idle 573,597
anim52 = Weapon Move Slow 598,622
anim53 = Weapon Strafe Left 623,642
anim54 = Weapon Strafe Right 643,662
anim55 = Weapon Move Fast 663,681
anim56 = Weapon Reload Weapon 682,731
anim57 = Weapon NEW Climb 160,189
anim58 = Weapon TALK NEUTRAL 2929,2953
anim59 = Weapon GET UP PRONE 3260,3275
anim60 = Weapon HEADSHOT/KO 3039,3056
anim61 = Weapon Impact Front 0,19
anim62 = Weapon Bounce Front 20,39
anim63 = Weapon Get Up Front 882,911
anim64 = Weapon Impact Back 40,59
anim65 = Weapon Bounce Back 60,79
anim66 = Weapon Get Up Back 912,941
anim67 = Weapon Impact Left 120,139
anim68 = Weapon Bounce Left 140,159
anim69 = Weapon STUNNED 3058, 3062
anim70 = Weapon Impact Right
anim71 = Weapon Bounce Right
anim72 = Weapon FLINCH: GUT 3081,3090
anim73 = Weapon GUARD WALK 2889,2913
anim74 = Weapon TALK YES 2953,2974
anim75 = Weapon TALK NO 2974,2994
anim76 = Weapon GUARD IDLE 2914,2928
anim77 = Weapon POINT 2994,3012
anim78 = Weapon STOP 3012,3038
anim79 = Weapon FLINCH: LEFT 3063,3072
anim80 = Weapon FLINCH: RIGHT 3072,3081
anim81 = Weapon Crouched Idle 732,756
anim82 = Weapon Crouched Move Slow (same) 757,781
anim83 = Weapon Crouched Strafe Left (same) 757,781
anim84 = Weapon Crouched Strafe Right (same) 757,781
anim85 = Weapon Crouched Move Fast (same) 757,781
anim86 = Weapon Crouched Reload Weapon (or toss) 782,831
anim87 = Weapon GO PRONE 3212,3227
anim88 = Weapon PRONE IDLE 3228,3238
anim89 = Weapon PRONE MOVE (Generic) 3239,3259
anim90 = Weapon Freeform Idle 832,851
anim91 = Weapon Freeform Move 852,881
anim92 =
anim93 =
anim94 = Weapon FLINCH: CRITICAL 3090,3109
anim95 = Weapon DOOR KNOCK 3110,3139
anim96 = Weapon DOOR KICK 3139,3161
anim97 = Weapon MELEE FOREWARD 3162,3178
anim98 = Weapon MELEE LOW 3179,3195
anim99 = Weapon MELEE CROUCHED 3196,3212
So, I've been testing and (feebly) scripting most of the evening and have a few cool test scripts! Some have problems maybe some of you can be kind enough to identify and help point me in the right directions or give me tips on how to make the scripts tidier...
The first one, they charge at you shooting and when close unleash a flurry of random melee attacks including a foreward strike, low strike and kick (door kick anim
). When they hit i use AirMod's
camshake action. When they kick you it disarms you with the AirMod
hideplrweapon action. I have an AirMod
plrblocking=0 condition but haven't tested if it works right yet. The script mostly works ok and is pretty fun (a small group can really wreck you when they start kicking) but I haven't been able to make the shooting as fast as I want and when they shoot the bullets always go through me :S It also walks into corners and crap like an idiot:
desc = shoot and melee when close
;Triggers
:state=0,plrdistwithin=100:state=1
:state=0,plrdistfurther=100:animate=2,state=10
;shoot
:state=10:rotatetoplr
:state=10,plrdistwithin=100:state=1
:state=10,plrdistfurther=50:rotatetoplr,runfore=10,animate=5
:state=10,ifweapon=1,plrcanbeseen=46,plringunsight,rateoffire:useweapon,rundecal=6
:state=10,ifweapon=0:state=11,setframe=6
:state=11:incframe=6
:state=11,frameatend=6:state=0,reloadweapon,sound=audiobankgunsreload.wav
;attack1 melee
:state=1,plrdistfurther=50:rotatetoplr,movefore=4,animate=2
:state=1,plrdistfurther=200:animate=1,state=0
:state=1,plrdistwithin=80,rateoffire:rotatetoplr,setframe=47,state=2
:state=2,framebeyond=47 60,plrdistwithin=90,plrblocking=0:plraddhealth=-10,sound=audiobankvoicesmaleland.wav,camshake=5,state=3
:state=2:incframe=47,rotatetoplr
:state=2,frameatend=47,random=2:state=1
:state=2,frameatend=47,random=2:state=7
:state=3:incframe=47
:state=3,frameatend=47,random=2:state=1
:state=3,frameatend=47,random=2:state=7
;attack2 kick
:state=4,plrdistfurther=50:rotatetoplr,movefore=4,animate=2
:state=4,plrdistfurther=200:animate=1,state=0
:state=4,plrdistwithin=80,rateoffire:rotatetoplr,setframe=46,state=5
:state=5,framebeyond=46 60,plrdistwithin=90,plrblocking=0:plraddhealth=-10,sound=audiobankvoicesmaleland.wav,camshake=20,hideplrweapon,state=6
:state=5:incframe=46,rotatetoplr
:state=5,frameatend=46,random=2:state=1
:state=5,frameatend=46,random=2:state=7
:state=6:incframe=46
:state=6,frameatend=46,random=2:state=1
:state=6,frameatend=46,random=2:state=7
;attack3 melee low
:state=7,plrdistfurther=50:rotatetoplr,movefore=4,animate=2
:state=7,plrdistfurther=200:animate=1,state=0
:state=7,plrdistwithin=80,rateoffire:rotatetoplr,setframe=48,state=8
:state=8,framebeyond=48 60,plrdistwithin=90,plrblocking=0:plraddhealth=-10,sound=audiobankvoicesmaleland.wav,camshake=5,state=9
:state=8:incframe=48,rotatetoplr
:state=8,frameatend=48,random=2:state=1
:state=8,frameatend=48,random=2:state=4
:state=9:incframe=48
:state=9,frameatend=48,random=2:state=1
:state=9,frameatend=48,random=2:state=4
The next one is for a chainsaw (equipped as weapon which can be picked up by the player- uses the minigun weapontype)
AI follows you around and it acts like the normal melee script mostly but tuned to be a little more responsive/agressive. Uses AirMod bloodsplash when you get hurt. It also has a chance for kicking/disarming you. The idle sound plays as long as your close enough and it revs when doing a saw lunge. I'm thinking I'll make the default behaviour like hes just standing there sawing something and only comes at you if hurt or something:
desc = Chainsaw Melee Follow and Attack
;Triggers
:plrdistwithin=800:sound=gamecoregunsEAICHAINSAWidle.wav
:state=0,plrdistwithin=500:state=1
;attack1
:state=1,plrdistfurther=50:rotatetoplr,movefore=4,animate=2
:state=1,plrdistfurther=500:animate=1,state=0
:state=1,plrdistwithin=80,rateoffire:rotatetoplr,setframe=6,sound=gamecoregunsEAICHAINSAWsinglerev.wav,state=2
:state=2,framebeyond=6 60,plrdistwithin=90:plraddhealth=-10,sound=gamecoregunsEAICHAINSAWsinglerev.wav,camshake=5,bloodsplash=100,state=3
:state=2:incframe=6,rotatetoplr
:state=2,frameatend=6,random=2:state=1
:state=2,frameatend=6,random=2:state=4
:state=3:incframe=6
:state=3,frameatend=6,random=2:state=1
:state=3,frameatend=6,random=2:state=4
;attack2
:state=4,plrdistfurther=50:rotatetoplr,movefore=4,animate=23
:state=4,plrdistfurther=500:animate=1,state=0
:state=4,plrdistwithin=80,rateoffire:rotatetoplr,setframe=46,sound=gamecoregunsEAICHAINSAWsinglerev.wav,state=5
:state=5,framebeyond=46 60,plrdistwithin=90,plrblocking=0:plraddhealth=-10,sound=audiobankvoicesmaleland.wav,camshake=20,hideplrweapon,state=6
:state=5:incframe=46,rotatetoplr
:state=5,frameatend=46,random=2:state=1
:state=5,frameatend=46,random=2:state=4
:state=6:incframe=46
:state=6,frameatend=46,random=2:state=1
:state=6,frameatend=46,random=2:state=4
The third one (working on now) is for testing damage reactions and i hope i can add it to other scripts easily once working.
If hurts it rolls a die to see what ping to play and there is a chance for instant incapacitate(suspend,coloff). I want it to play one of the three normal flinches of damage more than 10 but only roll for critical or incapacitate if damage is higer than 20.
In the script I have has:
:shotdamage=20:sound=audiobankvoicesmaleland.wav,state=99
:shotdamage=10:sound=audiobankvoicesmaleland.wav,state=98
but it only rolls for the statement which comes first so i might have to lump them together which sort of blows. Next, I'll try to add something simple for the Ply'sMod weapon detection for when using the stungun on AI. Here's the script:
desc = damage test
;Triggers
:state=0:animate=1
:shotdamage=20:sound=audiobankvoicesmaleland.wav,state=99
:shotdamage=10:sound=audiobankvoicesmaleland.wav,state=98
;choose hit flinch
:state=98,random=1:setframe=22,state=20
:state=20:incframe=22
:state=20,frameatend=22:state=0
:state=98,random=1:setframe=29,state=30
:state=30:incframe=29
:state=30,frameatend=29:state=0
:state=98,random=1:setframe=30,state=40
:state=40:incframe=30
:state=40,frameatend=30:state=0
;choose critical hit or incapacitate
:state=99,random=1:setframe=44,bloodspurt=1,state=50
:state=50:incframe=44
:state=50,frameatend=44:state=0
:state=99,random=5:setframe=10,bloodspurt=2,state=60
:state=60:incframe=10,bloodspurt=2,sound=audiobankvoicesmalefinalmoan.wav
:state=60,frameatend=10:suspend,coloff
I hope to upload a video in a day or two so people can get a good look.