Here's a quick guide to help the less experienced coders get a better understanding on some important hitdef related things. Keep in mind that all of this is simply tips and you should use this advice to help yourself decide on the direction you want to go for your character.
I'll start off with pause times. The first value is how long Player 1 pauses when he first lands the hit and the second value is how long Player 2 pauses (and shakes) when the attack hits him. Pausetime is not to be confused with hittime, I'll go more into that later. Generally you want P1's pause time to be shorter than P2's pause time. Pause time can also be useful if you want to lower the spammability of an attack. For example, let's say you want to be able to rapidly mash light punch but you don't want it to be cheap on impact and be able to rapidly keep hitting the opponent. By simply increasing Player 1's pause time you'll make it so the attack isn't so rapid upon impacts but will still have rapid function if it's missing. That's one way among several that you can lessen how spammable an attack is. Now I'll give some examples of my standard values for basics. Overall my values depend on how heavy a hitter the character is but I do have a general guide line I use for pause times for basics which are as follows [Keep in mind this is for a character with average speed and average strength, like my Non-Legends Scarecrow for instance]:
- For weak basics I generally have P1's value between 3-6 (most of the time I use 5), and for P2's value I have it 2-3 values higher than what I set P1's but usually just 2 values higher (so since I usually use 5 for P1 I usually make P2's 7).
- For medium basics I generally have P1's value between 5-8 (most of the time I use 7), and for P2's value I have it 2-3 values higher than what I set P1's but usually just 2 values higher (so since I usually use 7 for P1 I usually make P2's 9).
- For strong basics I generally have P1's value between 7-10 (most of the time I use 8 or 9), and for P2's value I have it 2-3 values higher than what I set P1's. If I use 8 for P1 then I set P2's to 10, sometimes 11. Or if I use 9 for P1 then I set P2's to 11, sometimes 12.
That's my brief lesson on pausetimes for basics but pausetime is very important when it comes to hitdefs so always perfect your values when making a character. Next I'll explain hittimes. hittime is how long Player 2 is in the hit state until he recovers and regains control. I'm not entirely sure if the pausetime is included in the hittime or if the pausetime is added onto the hittime, but I think it's the former where the pausetime is included as part of the hittime. To me it appears that pausetime will not stack onto the hittime but if the pause time is a higher value than the hittime then Player 2 will be left in that pausetime state until it is over and then will finish their hit animation when the pausetime is over. Also, ground.hittime and air.hittime are 2 seperate values so keep that in mind. Anyways, here's my general guideline on ground hittimes for basics and again it can sometimes greatly vary depending on what kind of character I'm making. But I usually have weak basics set to 12 or 13, medium basics between 12-14, strong attacks between 14-17, sometimes I'll make a strong attack even higher at like 18 or 20 if it's a real hard hitter that I made the hitdef into.
Now I want to move on to EnvShakes. This is completely optional for basics. But sometimes I like to have it in there depending on the character I'm making. But you almost always want to have EnvShake for specials and hypers. There's time, freq, and ampl that you can add but I usually just do time and ampl. Remember that this goes right into the hitdef, alternatively you can have an EnvShake sctrl and use a trigger like movehit or movecontact but usually it's best to just add it to the hitdef instead. If I have a character that I want envshake on the basics then here's my general guideline. Weak basics I have envshake.time set to a value between 4-6, usually 5. Weak basics I have the envshake.ampl set to 2. Medium basics I have envshake.time set to a value between 5-8, usually 7. Medium basics I have the envshake.ampl set to 3, or sometimes 2 if it doesnt look much more powerful than the weak basic like Scarecrow's weak and medium punches for instance. Strong basics I have envshake.time set to a value between 6-10, usually 7 or 8 though or more if it's a real hard hitter. Strong basics I usually have the envshake.ampl set to 4, or 5 if it looks strong (or 3 if it looks weak). Again, it all depends on how heavy a hitter your character is. I don't really have a guideline for envshake on specials and supers, I just do what feels right, but generally you want to go by my medium basics settings for a weak special or go by my strong basics settings if it's a strong special. Hypers on the other hand you usually want at the very minimum set to my strong settings but sometimes you want it even higher than that depending on the hyper. Play around with values until you find what's perfect for your character.
Next I'm going to talk about ground slidetimes. This value determines how many game ticks the opponent will be allowed to slide back after he's hit. So a value of 0 means that the opponent will not budge at all even if you have the x hit velocity set ridiculously high like -50. A value like 10 means that the opponent will slide back for 10 ticks and the speed at which he slides back is determined by what your ground x velocity is set at. However, if your ground x velocity is set to 0 then the opponent will not budge and completely ignore your slidetime value. Remember that if your x velocity is not high enough then the slidetime will not matter much. So let's say my slidetime is set to 20 and my x velocity is set to -1. What would happen is the opponent would slide very slowly but would only slide for about 4 or 5 ticks. That's not the exact amount of ticks, I'm just guessing there. Even though I have my slidetime set to 20 it will not matter because my x velocity is not high enough for the opponent to be sliding that long. Now let's say I have my slidetime set to 4 and my x velocity is set to -10. In this case the opponent would slide back at a fast rate of speed but wouldn't slide very far because I told it to only allow the opponent to slide for 4 ticks. Play around with values until the hitdef is perfect for your character. Remember, the stronger the attack the further you probably want the opponent to slide back, unless of course it's a hyper combo, in which case you'll want the opponent to slide very little, if at all, so that all of Player 1's hits connect.
Next issue, velocities. Now this can be too wildly different so there's really no right way of doing it. But basically there's 2 major accepted velocity styles I'd like to mention:
- First I'll start with the hit velocity style I usually prefer for my characters. My preferred style is generally set up so that the opponent is pushed back very little after a weak basic so that you can instantly follow up with a medium or strong basic because the opponent will most likely be well within range if you first attacked from up close. A medium basic also slides the opponent back only a little but it's slightly further than the weak basic. The Strong basic however knocks the opponent back almost 3 times as much as the weak and medium velocities but it's still not that far. The strong basic attack generally pushes the opponent just barely out of striking range of the strong basic attack which means if you hit strong attack again after the hit you will most likely miss unless you walked forward, or you'll just barely have nicked the opponent with your strong attack's range. A good example of this velocity style would be my updated version of Kurai Naito's Sagat. Another great example of this velocity style would be GokuZ2.
- The second hit velocity style has further knock back. POTS generally used this for his characters. POTS' Ryu is a good example for this. A weak basic pushes the opponent back further than the first mentioned velocity style but not by much because you still want the opponent within striking range of your character's medium or strong basic attack. The medium basic pushes the opponent much further so that the opponent is no longer within striking range of any of your character's basics (except maybe
your strong basic if your strong basic has a lot of range). Usually you want it just barely out of your character's basic striking range. The strong basic attack is the same as the medium but pushes the opponent even further and a bit faster and after hitting the opponent with it it should be impossible to hit the opponent with another basic attack unless you move your character forward first. Even though the knock back is much further than the first velocity style it still never pushes the opponent all the way across screen. Having the opponent get knocked back all the way across the screen with a basic attack is unacceptable. Try and figure out what kind of hit velocity style you want for your character and go from there.
All that was about ground velocities. Now I'll move on to air velocities:
- I'll start off with air velocities for your character's standing and crouching attacks. This of course means the hit velocity if you hit an airborne opponent. For your character's standing and crouching basic attacks you'll probably want the air velocitities to push the opponent up and away a little. For a light punch (this is of course going by my preferred velocity style listed above) I'll usually make the airborne opponent get knocked away only slightly but further than my ground velocity. So I'd use an air velocity like -2.5[x vel],-3[y vel]. And I increase it very slightly for the medium and strong attacks. I usually only up the vels by like -.5 or -1 for the medium, and do that again for the strong attack but I add it to what I set my medium to.
- This part is about ground velocities for your character's air attacks. Keep the y vel at 0. Set the x vel to something like -4 or higher. Usually your character won't be able to chain into a stronger air basic because you're most likely on your way down from the jump and will land on the ground right after you land your air basic. So if that's the case with your character's play style then you want the opponent to slide back a nice distance but not too outrageously far. So an x velocity like -4 for a weak air basic is good. Then add -1 or something to that for the next level air basic. My Kenpachi however is very comboable with his air basics so in that character's case I don't have the opponent slide back much.
- This part is about air velocities for your character's air attacks. Kind of the same situation as the ground velocities mentioned above but usually you want to make it about half of what you set the ground velocity. BUT, one thing I generally do is have a positive value for the y velocity so it hits the opponent down because usually your character's attack animation is angled down so that's the direction you want the opponent to go. But I keep that positive y vel low. So I usually set a weak air basic to something like -2[x vel],1[y vel]. then I usually set the medium air attack to something like -3,1. or -2.5,1. Follow that pattern for the strong attack too, unless the strong attack is a spike or something in which case do what ever you feel appropriate.
- This part is about air guard velocities. This is for your character's standing, crouching, and air attacks. You usually want the opponent to be knocked back very little. There's really no wrong answer here on what you have the velocity as. I usually keep it low like -2,-1 for my character's ground attacks or -1.5,-1 for my character's air attacks. You dont have to include air guard velocity if you don't want to, in which case it'll use the air velocity setting.
Now it's time for cornerpush veloff. This is how far your character gets pushed away when you hit an opponent that's trapped in the corner. This is very important because you want to make sure your character gets pushed back so that you can't trap the opponent and spam attacks infinitely. Use your own judgement on how far you want your character pushed back but make sure you can't land too many hits and have the opponent trapped while doing so. You want the opponent to be able to escape otherwise your character is unbalanced. Don't go too ridiculously high with your choice in velocity. By that I mean you dont want to hit a cornered opponent once and then be pushed all the way back to the opposite corner. Usually hypers are ok for trapping cornered opponents. It's usually ok to put a very low cornerpush veloff for your hypers, or even set it to 0 sometimes.
That concludes the hitdef portion of my guide but there's still a couple other rookie mistakes I'd like to address below.
I'd like to mention a common rookie mistake of chain setups for basics. You should only be able to chain like this Light > Medium > Hard. A Light Punch or Light Kick should never be able to chain into itself upon impact or be able to chain into the opposite Light attack. Same goes for Medium and Hard but also make sure Medium and Hard can't chain into a weaker hit so for example Hard > Medium > Light should never be allowed to be done.
Another issue I've seen before is the basic attacks are way too spammable and rapid fire like which can make your character do insane combos of 20+ hits with only basic attacks. Your character should never be capable of something so cheap. Sometimes the reason a character's basics are spammable like this is because of the animation timings. I'm just going to copy paste some advice I once gave someone on this issue so read this quote I wrote:
- Quote :
- I'd suggest adding some recovery time to the end of the animations. By this I mean you add a frame or 2 to the end of the attack or at least lengthen the time of the existing frames at the end of the animation (the frames that come after the actual hit frame with the red clsns). Plus some of the startup times should be lengthened a bit. I'll give you 2 examples of what I'd change the timings to:
Example 1: Light punch (animation 200):
- Frame 1 I'd change from 2 to 3.
- Frame 3 I'd change from 2 to 4.
Example 2: Medium Kick (animation 240):
- Frame 1 I'd change from 2 to 3.
- Frame 2 I'd change from 1 to 3.
- Frame 3 I'd change from 3 to 4.
- Frame 4 I'd change from 1 to 4.
One thing to keep in mind is you almost never want to use a timing of "1" for an animation. It's almost impossible for your eye to be able to see that during gameplay unless it's a very long animation that uses 1 for the timing of every frame like a super background for example with like 50+ frames. Usually you want to use a timing of 3 or 4 for each frame depending on the situation and the character.
That's the end of my guide. Thank you for reading and I hope some people found some useful info here. But I highly suggest that any coder that hasn't read the mugen docs info of the hitdef sctrl to do so. There's a lot of useful info in the mugen docs and it is a must read if you are a coder.