YesNoOk
avatar

Interactive KOF Character Tutorial (Read 78170 times)

Started by Koop, February 07, 2013, 04:41:25 pm
Share this topic:
Re: Interactive KOF Character Tutorial
#21  June 03, 2013, 11:14:14 am
  • *****
  • ???
    • UK
    • Skype - koopakootmugen
TBH I'm not sure there is much difference. I'm not sure exactly what that bug affects.
Re: Interactive KOF Character Tutorial
#22  June 03, 2013, 04:52:14 pm
  • ******
  • [E]
    • Mexico
not 13, 12 ; winmugen ignores one tick of pause time on the attacker, so if the attacker's frame last 5 ticks and you have 15 of pause time the frame will last 19 frames instead of 20, so you add 1 tick for winmugen, 16 in this case (there is one exception to the rule when teh pause time is 0 or 1 , nto sure but in practice it should not matter), so for mugen 1.0 you use the real pause time, 15 in this case.
Re: Interactive KOF Character Tutorial
#23  June 04, 2013, 05:26:48 am
  • ******
  • I'm not pushing you away,
  • I'm pulling *me* towards myself!
    • USA
    • network.mugenguild.com/jmorphman
Re: Interactive KOF Character Tutorial
#24  August 04, 2013, 10:53:51 pm
  • *
  • Quien coño te crees que soy!!!!!!
Would you please deepen in the 2003 ripping and animations taking please? I guess its the harder one to do.
Re: Interactive KOF Character Tutorial
#25  August 05, 2013, 09:03:17 am
  • *****
  • ???
    • UK
    • Skype - koopakootmugen
Re: Interactive KOF Character Tutorial
#26  August 05, 2013, 09:06:07 am
  • *****
  • ???
    • UK
    • Skype - koopakootmugen
Double Post because I fixed something in section 3-3. What else is there to talk about? I think I covered all the important parts.
Re: Interactive KOF Character Tutorial
#27  August 05, 2013, 09:00:37 pm
  • *
  • Quien coño te crees que soy!!!!!!
Ok, I used kong rips too, but for animations i like to know if there is a way to stop characters moving arroung or to see the "debug" character, I try every dipswitch and only send me a lot of numbers.... its for animations count principally
Re: Interactive KOF Character Tutorial
#28  August 05, 2013, 10:18:17 pm
  • *****
  • ???
    • UK
    • Skype - koopakootmugen
It could be possible with an artmoney table.
Re: Interactive KOF Character Tutorial
#29  November 12, 2013, 09:03:19 am
  • avatar
  • ****
For ripping sound, other than using Caname, are there any way to rip the sound from the game?
<- I exercise like that regularly!
Re: Interactive KOF Character Tutorial
#30  November 13, 2013, 04:24:50 am
  • ****
  • (o.O)!
  • MadkaT Was Here
    • Guernsey
    • a@b.xxx
    • Skype - admin
    • network.mugenguild.com/madkat
You could use winkawaks, the + and minus keys in the numeric pad and a sound recorder.
<- Foros Mugen en español. And also English forums.
Re: Interactive KOF Character Tutorial
#31  January 25, 2014, 05:26:21 pm
  • ***
  • Pro boxer
  • Meat!
    • dssunit.com
Hi, sorry for reviving topics. I have a question. For KOF projectiles in general (normal/super) do you recommend to use a Helper instead of MUGEN's classic Projectile controller?


Quote
The only reason we all keep using these priority parameters is because they were standards set by previous KOF creators (CCIronmugen, OrochiKOF97 among others).

Wait, nobody cares but I never used priority stuff on my characters' Hitdef. xD
Orochi did, though...
Re: Interactive KOF Character Tutorial
#32  January 25, 2014, 05:42:32 pm
  • ******
To add on to that question, it was mentioned that air.velocity was best done through approximation (unless using custom states were applied, which wouldn't work ideally). What would be a recommended yaccel number to prevent the character from falling all floaty and stuff? Also, (when they're not in a fall state) doesn't yaccel vary between characters in commercial games?

Btw, thanks for the tutorials... they helped me a whole lot.
Re: Interactive KOF Character Tutorial
#33  January 25, 2014, 05:44:53 pm
  • ****
    • Japan
I recommend going with helpers, they end up being very easy to update down the line.

One persistent problem with projectiles is that you can't control them after they're created. This is a problem with juggle systems since there's no reliable way of telling them not to hit anything anymore, this problem is of course fixed by using a helper.

It has been troublesome trying to setup a proper standard for helper projectiles though, but we're working on it. :)

I say helpers 100% all the way, they're easy to update and end up being the most compatible once you are able to detect projectiles made with the classic proj controller.

      Posted: January 25, 2014, 05:55:34 pm
To add on to that question, it was mentioned that air.velocity was best done through approximation (unless using custom states were applied, which wouldn't work ideally). What would be a recommended yaccel number to prevent the character from falling all floaty and stuff? Also, (when they're not in a fall state) doesn't yaccel vary between characters in commercial games?

Btw, thanks for the tutorials... they helped me a whole lot.

I'll try to explain it to the best of my ability. :P

KOF has several types of aerial gethit animations:

- Back gethit (such as a CD attack, or being hit by a Dokugami from Kyo)
- Launcher gethit (such as getting hit by an Oniyaki or Angel's down+C)
- Super launcher (getting hit by Kim's Hou'ou Hiten Kyaku)
- Spinning fall [and super spinning fall] (getting hit by Kyo's Nanase, Galactica Phantom)
- Spinning launcher (getting hit by Saika, Bari Bari Vulcan Punch's finish, K's Chain Drive)
- (And so on, counter wire, sliding on ground, etc. I'll focus on the first 3 first).

The first one is the very basic and can be done with MUGEN hitdefs (Data is -4.5,-7 with yaccel of 0.5). The rest are quite different.

Basically KOF likes using exponential friction in order to make acceleration in the ground but this is also true for the very special aerial gethits, like the ones I mentioned above. This "friction" is what gives them that really solid feeling, it cannot be recreated properly using MUGEN's veladd system.

What I used to do before programming the custom states was matching the opponent's maximum height and/or airtime, whichever makes the fall be longer. The most important part is making sure combos work properly.

The best solution would be using the custom states though (and thankfully we've got most of them covered now).

As for your second question, correct.

In commercial games the yaccel or gravity parameter is usually different between characters since it depends on their build and how they're supposed to feel. :)
Last Edit: January 25, 2014, 05:57:36 pm by Vans
Re: Interactive KOF Character Tutorial
#34  January 26, 2014, 12:49:02 am
  • ***
  • Pro boxer
  • Meat!
    • dssunit.com
Thanks for the answer Vans.
By the way, is there a way to get something like "projpriority" working on projectile helpers? I am talking about projectile helper VS projectile helper, but also projectile helper VS regular projectile (if you get what I mean).
Re: Interactive KOF Character Tutorial
#35  January 28, 2014, 11:19:31 am
  • *****
  • ???
    • UK
    • Skype - koopakootmugen
You can use a varset to give a projectile "hitpoints" I'm bad at explaining things with just words, so I'll explain it with code:

Code:
[State 1, Anim]
Type = ChangeAnim
Trigger1 = !Time && !prevstateno
Value = 3005 ;This stops the projectile anim from resetting whenever it goes back into this state

[State 1, projectiles only]
type = HitBy
trigger1 = 1
value = SCA, NP, SP, HP ;Can only be hit by projectiles
ignorehitpause = 1

[State 1, Override]
type = HitOverride
trigger1 = !time
attr = SCA, AA, AP, AT ;But can override anything just in case
stateno = stateno ;Goes into the same state
time = -1
slot = 2
ignorehitpause = 1

[State 1 VarSet]
type = VarSet
trigger1 = !time && !prevstateno
var(5) = 5 ;this is the primary "hitpoint" value set when the projectile is created
[State 1, VarAdd]
type = VarAdd
trigger1 = !time && prevstateno
var(5) = -1 ;Whenever the projectile goes back into this state it loses a "hitpoint"
ignorehitpause = 1
persistent = 0

[State -2, FlagHit]
type = VarSet
trigger1 = Movecontact && NumTarget
var(5) = 0 ;This is a safety for when the projectile makes contact with a character and the changestate doesn't activate
ignorehitpause = 1

[State 1, hits a projectile or is parried]
type=changeState
trigger1 = movecontact && !NumTarget
value= ifelse(var(5)=0,stateno+1,stateno)
ignorehitpause = 0

[State 1000, DestroySelf]
type = DestroySelf
triggerall = time > 1
trigger1 = FrontEdgeDist <= -40; flies off screen

[State 1005, End]
type=changeState
trigger1 = movecontact && NumTarget ;hits an opponent
trigger2 = var(5) <= 0 ;has run of hitpoints
value= stateno+1
ignorehitpause = 0
Re: Interactive KOF Character Tutorial
#36  January 28, 2014, 07:27:21 pm
  • ***
  • Pro boxer
  • Meat!
    • dssunit.com
Oh I see, now we only have to add velocities if needed and hitdef. Thank you very much. =)
By the way what's up with "[State 1" and "[State -2" ?
Re: Interactive KOF Character Tutorial
#37  January 28, 2014, 07:31:44 pm
  • *****
  • ???
    • UK
    • Skype - koopakootmugen
random numbers :P

      Posted: February 19, 2014, 08:44:36 pm
Because I'm lazy (I'm working on that, I promise) I always try to streamline things as much as possible. So instead of using a calculator when checking damages, I just made a list of all the possible damage values. Since 2002 UM is the standard I'm using at the moment I'll share that file.

Here it is

Also this is useful if you are converting a character from one style to the other and don't want to use the damages from that game (because of different scaling, etc).



Jmorphman updated the optional animation standards thread's first post, but I'm going to highlight the parts relevant to this thread:

Spoiler: Collapse/Cheese Kill/Crumple - 5950, 5955, (click to see content)

Spoiler: KOF hard knockdown - 5420, 5421, 5422, 5423, 5424, 5430 (click to see content)

Spoiler: Throw Escape/Tech Hit - 5940 (click to see content)

Spoiler: Throw has been escaped out of - 5945 (click to see content)
what have I gotten myself into???

Be sure to go over those notes that he made if you are adding those animations to your sprites.

This concludes the revival post. Next tutorial will go over custom KOF states.
Last Edit: February 19, 2014, 08:45:58 pm by KoopaKoot
Re: Interactive KOF Character Tutorial
#38  February 19, 2014, 08:45:37 pm
  • *****
  • ???
    • UK
    • Skype - koopakootmugen
Forgot to un-tick merge box. Bump (sorry).
Re: Interactive KOF Character Tutorial
#39  February 24, 2014, 09:13:03 am
  • *****
  • ???
    • UK
    • Skype - koopakootmugen
This section (not checking what number) will cover custom states and when to generalise them.

The majority of KOF custom states have already been made by Vans and myself. They are not difficult to make. I will go over a few situations that may occur when making these states.

-Since these are customs states, you may as well get the correct velocities if applicable. Be wary when getting vels as artmoney has a tendency of displaying vels 1 tick late. There's a chance the initial vels won't even appear.

 

KOF has a tendency to start with simple numbers, whole numbers or .5s etc. It's obvious that the y vel is actually 9. So what about the x vel? Does the word "exponential"  still scare you? It's not that bad. We can get mugen to tell us the answer.

Code:
[State 10900, 1]
type = VelSet
trigger1 = time < 7
x = ifelse((facing=enemynear,facing),((abs(gethitvar(xvel))*exp((-0.20763936477824450161544104426739)*(time)))),(-(abs(gethitvar(xvel))*exp((-0.20763936477824450161544104426739)*(time)))))


Spoiler: method (click to see content)

This controller takes the x vel provided the the appropriate hitdef (in this case x = 15.4375) and applies exponential friction to it for the first 6 ticks. The ifelse checks to see which way the opponent is facing when they get hit since mugen doesn't like x deceleration.



You can see the vel appeared correctly. Now we can get mugen to calculate the actual vel by making the velset controller activate a tick early:

Code:
[State 10900, 1]
type = VelSet
trigger1 = time < 7
x = ifelse((facing=enemynear,facing),((abs(gethitvar(xvel))*exp((-0.20763936477824450161544104426739)*(time)))),(-(abs(gethitvar(xvel))*exp((-0.20763936477824450161544104426739)*(time-1)))));time changed to time-1




and now we have a nice 19. Then we change the velset controller back so it triggers correctly and the hitdef to the correct values.

The next section will go over animation timings.
 
Last Edit: February 24, 2014, 09:23:35 am by KoopaKoot
Re: Interactive KOF Character Tutorial
#40  May 22, 2015, 04:43:56 pm
  • avatar
  • ****
Hi, I have got some basic attack hitdef questions that I am stuck:

- Can anyone explain to me how do I use this formula to calculate the damage?:
Code:
damage = floor(42*ifelse(var(56),1.25,1)) 
I tried to figure out for weeks and I still can't get it.
- for air.velocity, I am still not sure how this is calculated, can anyone explain more in depth about the calculation of the air.velocity?
- For the crouch strong kick attack hitdef, I tried to figure out the yaccel which is this:
Code:
yaccel = 0.807692307692307692307692307692308
and also the fall.yvelocity
Code:
fall.yvelocity = -2-(p2statetype=A)*0.5
they are very much different from the rest of the yaccel and I can't figure out how this is calculated, can anyone explain in-depth on how I should calculate these?
<- I exercise like that regularly!
Last Edit: May 22, 2015, 04:46:59 pm by tehdevil