How do I make my own edit?

Can't find a character or stage? Ask here. Don't spam!

Moderator: Moderator

RyonaZim
Posts: 1
Joined: Wed May 05, 2021 5:00 am

How do I make my own edit?

Post by RyonaZim »

I was curious with this. I don´t know how does this works, because there is some time that I want to edit/update an old version of a character I like but I don´t know how can I make it to be compatible with the most used agressors chars (like Futacharsmaker and so). Any help would be excellent.

Thank you for reading
Ellye
Posts: 10
Joined: Sat Dec 19, 2020 9:33 am

Re: How do I make my own edit?

Post by Ellye »

There are multiple aspects to it. I'll assume that you'll have a basic understanding of MUGEN characters, but if you don't, I recommend you start with tutorials related to that.

If all you want is to add animations that are compatible with more characters, what you'll need is to edit the .sff file (to add any new sprites that you might need) and the .air file (to add the animations).

The trick here is that each aggressor is programmed different on how they behave to force the animation on the victim. There two main methods:
  • Some aggressors, especially older ones, tend to list the exact sprite that the victim should use. For compatibility with these aggressors, your character needs to have the correct sprite with the correct sprite number.
  • Most aggressors, especially newer ones, instead tend to ask the victim to go to a specific animation. For compatibility with these aggressors, your character needs to have the correct animation with the correct animation number.
And here we have an issue - there's no overall agreed upon standard for those numbers. Luckily, well-made aggressors tend to have fallbacks - they search the victim for multiple possible animation numbers. And for compatibility, many victim characters tend to repeat the same animation and the same sprite multiple times, with many different numbers.

Here's an example of the part of an aggressor move that is trying to change the animation of the victim:

Code: Select all

[State 7320, CheckForAnim2]
type = ChangeAnim
trigger1 = AnimExist(180500)
value = 180500

[State 7320, CheckForAnim3]
type = ChangeAnim
trigger1 = !AnimExist(180500)
trigger1 = AnimExist(12250)
value = 12250

[State 7320, CheckForAnim4]
type = ChangeAnim
trigger1 = !AnimExist(180500)
trigger1 = !AnimExist(12250)
trigger1 = AnimExist(180100)
value = 180100

[State 7320, CheckForAnim5]
type = ChangeAnim
trigger1 = !AnimExist(180500)
trigger1 = !AnimExist(12250)
trigger1 = !AnimExist(180100)
trigger1 = AnimExist(6621)
value = 6621

[State 7320, CheckForAnimElse]
type = ChangeAnim
trigger1 = !AnimExist(180500)
trigger1 = !AnimExist(12250)
trigger1 = !AnimExist(180100)
trigger1 = !AnimExist(6621)
value = 5020
In this example, the aggressor will look for the animation 180500 in the victim's .air file. If it isn't there, it will look for 12250. If it isn't there, it will look for 180100. If it isn't there, it will look for 6621. If it isn't there, it will use 5020 instead.

Best to make one specific character compatible with one specific aggressor is to look in the aggressor's .CNS files for which animations they need.

The basic path to find that information would be to open the aggressor's .CMD file, look for the move you want, note the move name, search at the end of the file for the ChangeState block with the same command name and note the value number of that block. Then open the character .CNS files and look for a statedef that has the same number.

Once there, you'll probably a chain of different states and/or helpers, but what you're mostly looking for is a "TargetState" check the number of that and go find that statedef. In that statedef, you'll have "ChangeAnim" blocks - that's the animations you'll need for compatibility.
Profile picture image by @artofsachi
Post Reply