Air Combos
After Mortal Kombat,at least to my knowledge, introduced juggles to fighting games, Capcom went further and introduced Air Combos,Aerial Raves or whatever u want to call em. They first appeared in X-Men :Children of the Atom in limited form, and where fully exploited in Marvel Super Heroes and the games that followed,including the currently popular Marvel vs Capcom 2.
Example: Magneto (Magneto by Overlander)
These combos have basically two parts:
1) A Launcher move,that sends the opponent flying into the air:
Magneto launching Hanzo into the air,with his crouching Fierce
2) The SuperJump
Magneto following his opponent
3) The Air Combo itself
Magneto doing a simple Air Combo on Hanzo
Let's look at these parts individually:
1) The Launcher
If you want to include Air Combos like the ones in Marvel vs Capcom 2 (for example) , you must include an attack that serves as a launcher. This launcher is one of your normal attacks ,only with special properties,that let you send your opponent flying into the air,defenseless.
In the case of Magneto, he uses his Crouching Fierce as Launcher,so lets look at its code:
Magneto's
CMD file:
;----------------------------------------------------------- ;Crouch_Z [State -1] type = ChangeState value = 404 triggerall = command = z triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl = 1 trigger2 = movecontact = 1 trigger2 = stateno = 401 trigger3 = movecontact = 1 trigger3 = stateno = 403 trigger4 = movecontact = 1 trigger4 = stateno = 400 trigger5 = movecontact = 1 trigger5 = stateno = 402 trigger6 = movecontact = 1 trigger6 = stateno = 201 trigger7 = movecontact = 1 trigger7 = stateno = 200 trigger8 = movecontact = 1 trigger8 = stateno = 203 trigger9 = movecontact = 1 trigger9 = stateno = 202 |
Nothing worth noting here,right? Just the standard checkings and all the code that lets you chain this move with others. But you know how to make chains already,donĀ“t you? ; ) Let's look at the CNS part:
Magneto's CNS file:
;---------------------------------------------------------------- ;CROUCH_Z [Statedef 404] type = C movetype= A physics = C juggle = 9 velset = 0,0 ctrl = 0 anim = 404 poweradd = 60
[State 201, 6] type = PlaySnd trigger1 = Time = 0 value = 0,2
[State 201, 6] type = PlaySnd trigger1 = Time = 0 value = 0,7
[State 404 , 1] type = HitDef trigger1 = AnimElem = 2 trigger2 = AnimElem = 3 trigger3 = AnimElem = 4 ;trigger4 = AnimElem = 5 persistent = 0 attr = C, NA damage = 80 animtype = Heavy guardflag = L hitflag = MAF priority = 3, Hit pausetime = 10,8 sparkno = -1 sparkxy = -10,-70 hitsound = S0,29 guardsound = 6,0 ground.type = low ground.slidetime = 15 ground.hittime = 20 air.hittime = 20 ground.velocity = -0.5,-10 air.velocity = -1.5,-8 guard.velocity = -3,-6 airguard.velocity = -3,-6 fall.recover = 0
[State 404, 7] type = ChangeState trigger1 = AnimTime = 0 value = 11 ctrl = 1 |
More standard stuff here except for the highlighted lines:
ground.velocity = -0.5,-10
air.velocity = -1.5,-8
The velocity arguments, as you might expect, serve to apply velocity to your opponent. This is useful when you
want to knock them far from you, or when you want to knock them up in the air, as we are doing now.
First argument is the X velocity or the "horizontal" velocity, if you want them to move away from you, you apply
negative X velocity, if you want them to move above you (like in this case), you apply negative Y velocity, which
is the vertical one.
The difference between ground.velocity and air velocity resides whether the opponent (not you) is in the air or not.
There is another important thing:
fall.recover = 0
Now that you have your opponent flying in the air, you don't want him to recover and block again, you want them to remain "unconscious" while flying, if you want to put it that way. With fall.recover=0 we do just that: the opponent can't recover while in the air. This is equivalent to Street Fighter Alpha 3, where you recovered in the air by pressing two punch buttons to avoid juggles. By setting recover to 0 you can be juggled with no chance of recovering,at least for the first attack..
So, to sum it up: To make a launcher move you choose any move you want and apply negative Y velocity in the
Hitdef (State 404,1 in the above example) to make the opponent fly. Of course, how much Y velocity you apply
will affect how high the opponent will go, so play with the values till you are confortable with the results.
You also set fall.recover to 0 so the opponent can't recover and you can jump after them with no fear of them blocking your first attack.
2) The SuperJump
Magneto has hit his opponent, and has sent them into the air, now we want to jump high to meet him in the air.
Magneto's
CMD file:
;----------------------------------------------------- ;combo crouch Z/stand y/stand c----> air attack [State -1] type = ChangeState value = 40 triggerall = command = "holdup" trigger1 = movecontact = 1 trigger1 = stateno = 404 trigger2 = movecontact = 1 trigger2 = stateno = 202 trigger3 = movecontact = 1 trigger3 = stateno = 205 trigger3 = Time >= 19 |
In all the Capcom Marvel games, you must hold up immediately after you launched your enemy in order to jump after them.
In MUGEN, there is already a holdup command defined, so we just check if the user has done it AFTER launching the opponent.
First we check if he has launched him:
trigger1 = movecontact = 1
trigger1 = stateno = 404
"movecontact" lets us check if the attack "made contact" with the opponent, if true, then movecontact equals 1.
We are checking for the crouching fierce launcher, which is state 404 ( if you don't remembre,scroll up to the previous section!). Both triggers have the same number (trigger1) because we want both conditions to happen at the same time.
Now that we know that the move made contact AND its the launcher move, we just check if the user held up:
triggerall = command = "holdup"
The other triggers (trigger2 and trigger3) do similar stuff for other launcher moves that Magneto has, so I won't go in detail there. What I want you to note is that after all said conditions are met we change to state 40:
type = ChangeState
value = 40
State 40 is one of MUGEN's preprogrammed states, that is, it already comes with the engine, you don't have to code it yourself. There are lots of this states and if you are curious about them you can find them in the COMMON1.CNS file. This is why we don't have a CNS section for the superjump, because it already has been taken care of by the engine!.
State 40 is the "Jump Start" state. It's the state that the engine uses to make your char jump into the air. So you basically are making Magneto jump as soon as he launches the opponent.
Of course there are other ways to make your char Super Jump, you can write a separate state so your char really jumps up VERY high (a la Strider by Yohko and ShadowWatcher), but then you would also need special stages that support this heights or your char will disappear from the screen!
I prefer this method of Superjump because, like I said before, there aren't a lot of double height stages in MUGEN,as most stages are ripped from games like KOF or Street Fighter Alpha, that don't have air combos.
3) The Air Combo itself
Air combos are in essence just that: combos. And in the Capcom Marvel games air combos are chain combos and 2 in 1s for the most part. Take a look at Magento's Air RoundHouse for example:
;---------------------------------------- ;Jump_C [State -1] type = ChangeState value = 605 triggerall = command = c trigger1 = statetype = A trigger1 = ctrl = 1 trigger2 = movecontact = 1 trigger2 = stateno = 601 trigger3 = movecontact = 1 trigger3 = stateno = 600 trigger4 = movecontact = 1 trigger4 = stateno = 603 trigger5 = movecontact = 1 trigger5 = stateno = 602 |
As you can see, it just handles all the chain combos and cancels here. If you are not familiar with chain combos and 2 in 1s in MUGEN, I suggest you to check:
-Making Chains (or comboing a normal move into another normal move)
-Making 2 in 1s (or Cancelling a normal move with a special move)
SUMMARY
To incorporate air combos to youur char:
1) Choose one of your char moves. Then on its Hitdef section in the CNS file, give it a negative Y velocity to make the opponent fly. Also set fall.recover to 0 to render them unable to block the first hit.
go here for a more detailed explanation
2) Check in the CMD if the player has held up after launching the opponent.
go here for a more detailed explanation
3) Use MUGEN method of cancelling moves to build your air combo
go here for a more detailed explanation