Post by vyckstjudas on Dec 15, 2012 0:44:05 GMT -5
Followup
Intro: Probably most newbies aren't familiar with the title so let me describe it. Followup is automatic animation change effect which is triggered by attackbox which hit other entity. Examples are Abadede's ramming attack (Streets of Rage 2) and J-11's ramming attack (Ghost Chaser Densei). Both bosses have attack in which they charge forward while attacking. If their attack hits, they follow it up with combo attack, Abadede perform uppercut while J-11 perform flip then double kick. If their attack misses, they won't perform the combo at all.
Although above example is from enemies, followup can also be set for players too.
Procedure: 1st of all we need 2 animations, one is the attack animation which is going to have followup set and the other is the followup animation. The former could be any animations but the latter requires special animation named FOLLOW#. # is the number of follow animation.
Example:
Code: [Select]
anim grab
offset 40 121
bbox 39 20 21 102
delay 12
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
This is Joe's grab animation. Say we want him to followup this attack with other grabattack. In order to do that, we need to use 2 commands: followanim and followcond.
Quote
followanim {value}
~Determines which FOLLOW animation played when followup condition is met or when counter condition is met.
~Accepted values are 1, 2, 3 and 4.
~Used together with 'followcond' or 'counterframe'.
followcond {value}
~This command is to make the entity performs FOLLOW{#} if an attackbox in the animation hits.
~value determines the condition requirements before FOLLOW{#} is played.
1 = this animation will followup as long as it hits an entity.
2 = this animation will followup as long as it hits an enemy (Or player if an enemy uses it).
3 = this animation will followup as long as it hits an enemy and the target does not get killed or block the attack.
4 = this animation will followup as long as it hits an enemy, and the target is not killed, does not block the attack, and is not set to be ungrabbable.
~Which FOLLOW animation played is determined by 'followanim'.
Let's pick FOLLOW1 for followup animation and pick 3rd condition. So the grab animation becomes:
Code: [Select]
anim grab
followanim 1
followcond 3
offset 40 121
bbox 39 20 21 102
delay 12
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1 <--------
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
anim follow1
delay 12
offset 40 121
bbox 39 20 21 102
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
frame data/chars/joe/grab03.gif
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
When attackbox pointed by arrow above hits player, GRAB animation is stopped and Joe playes FOLLOW1 immediately. Notice that FOLLOW1 is started from frame with attackbox pointed by arrow in GRAB. That's to make animation change smooth.
Issue: As explained before, followup is activated if attackbox hits other entity and conditions are met. And above example starts FOLLOW animation in attacking frame. Now what if the attack animation has 2 or more attackboxes? at which frame FOLLOW animation should start for smooth animation change? That's the issue for using followup. It can be avoided by using only one attackbox in attack animation.
Still, script can solve this issue.
Extra: Followups can be set cascading meaning FOLLOW animation can have 'followanim' and 'followcond' to accept follow. Example:
Code: [Select]
anim grab
followanim 1
followcond 3
offset 40 121
bbox 39 20 21 102
delay 12
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
anim follow1
delay 12
followanim 2
followcond 3
offset 40 121
bbox 39 20 21 102
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
frame data/chars/joe/grab03.gif
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
anim follow2
delay 12
jumpframe 4 1 0
offset 40 121
bbox 39 20 21 102
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
frame data/chars/joe/grab03.gif
frame data/chars/joe/grab00.gif
delay 20
frame data/chars/joe/grab07.gif
delay 13
bbox 44 13 28 110
attack 63 32 33 33 14 1 1
frame data/chars/joe/grab08.gif
frame data/chars/joe/grab09.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
Another extra stuff is followup can also be trigger if entity is hit by other entity instead. To set this, 'counterframe' is used instead of 'followcond'. Details are explained in next section.
Intro: Probably most newbies aren't familiar with the title so let me describe it. Followup is automatic animation change effect which is triggered by attackbox which hit other entity. Examples are Abadede's ramming attack (Streets of Rage 2) and J-11's ramming attack (Ghost Chaser Densei). Both bosses have attack in which they charge forward while attacking. If their attack hits, they follow it up with combo attack, Abadede perform uppercut while J-11 perform flip then double kick. If their attack misses, they won't perform the combo at all.
Although above example is from enemies, followup can also be set for players too.
Procedure: 1st of all we need 2 animations, one is the attack animation which is going to have followup set and the other is the followup animation. The former could be any animations but the latter requires special animation named FOLLOW#. # is the number of follow animation.
Example:
Code: [Select]
anim grab
offset 40 121
bbox 39 20 21 102
delay 12
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
This is Joe's grab animation. Say we want him to followup this attack with other grabattack. In order to do that, we need to use 2 commands: followanim and followcond.
Quote
followanim {value}
~Determines which FOLLOW animation played when followup condition is met or when counter condition is met.
~Accepted values are 1, 2, 3 and 4.
~Used together with 'followcond' or 'counterframe'.
followcond {value}
~This command is to make the entity performs FOLLOW{#} if an attackbox in the animation hits.
~value determines the condition requirements before FOLLOW{#} is played.
1 = this animation will followup as long as it hits an entity.
2 = this animation will followup as long as it hits an enemy (Or player if an enemy uses it).
3 = this animation will followup as long as it hits an enemy and the target does not get killed or block the attack.
4 = this animation will followup as long as it hits an enemy, and the target is not killed, does not block the attack, and is not set to be ungrabbable.
~Which FOLLOW animation played is determined by 'followanim'.
Let's pick FOLLOW1 for followup animation and pick 3rd condition. So the grab animation becomes:
Code: [Select]
anim grab
followanim 1
followcond 3
offset 40 121
bbox 39 20 21 102
delay 12
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1 <--------
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
anim follow1
delay 12
offset 40 121
bbox 39 20 21 102
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
frame data/chars/joe/grab03.gif
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
When attackbox pointed by arrow above hits player, GRAB animation is stopped and Joe playes FOLLOW1 immediately. Notice that FOLLOW1 is started from frame with attackbox pointed by arrow in GRAB. That's to make animation change smooth.
Issue: As explained before, followup is activated if attackbox hits other entity and conditions are met. And above example starts FOLLOW animation in attacking frame. Now what if the attack animation has 2 or more attackboxes? at which frame FOLLOW animation should start for smooth animation change? That's the issue for using followup. It can be avoided by using only one attackbox in attack animation.
Still, script can solve this issue.
Extra: Followups can be set cascading meaning FOLLOW animation can have 'followanim' and 'followcond' to accept follow. Example:
Code: [Select]
anim grab
followanim 1
followcond 3
offset 40 121
bbox 39 20 21 102
delay 12
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
anim follow1
delay 12
followanim 2
followcond 3
offset 40 121
bbox 39 20 21 102
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
frame data/chars/joe/grab03.gif
frame data/chars/joe/grab00.gif
frame data/chars/joe/grab03.gif
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
anim follow2
delay 12
jumpframe 4 1 0
offset 40 121
bbox 39 20 21 102
attack 68 40 33 33 8 0 1
frame data/chars/joe/grab04.gif
attack 0
frame data/chars/joe/grab03.gif
frame data/chars/joe/grab00.gif
delay 20
frame data/chars/joe/grab07.gif
delay 13
bbox 44 13 28 110
attack 63 32 33 33 14 1 1
frame data/chars/joe/grab08.gif
frame data/chars/joe/grab09.gif
attack 0
delay 15
bbox 36 13 28 110
frame data/chars/joe/grab10.gif
Another extra stuff is followup can also be trigger if entity is hit by other entity instead. To set this, 'counterframe' is used instead of 'followcond'. Details are explained in next section.