The Mugen Fighters Guild
Beyond M.U.G.E.N => IKEMEN Releases => Topic started by: SuperFromND on January 16, 2021, 02:56:32 AM
In most modern fighting games, there's a feature that allows you to see what the command inputs for a given character's moves are. This is meant to be a quality-of-life feature, to help out newer players with remembering how to use special moves.
IKEMEN GO added this feature using a movelist file, named movelist.dat. This file contains a list of special and super moves, along with their command inputs, and some miscellaneous formatting data. I think it's especially useful for IKEMEN, since by it's nature you're constantly switching between different fighting game styles.
However, since this feature didn't exist in MUGEN, and since IKEMEN GO is still relatively new and not-yet-widely adopted, almost no characters include such a file by default. Because of this, I wanted to try and make a tool that can generate these kinds of files as quickly as possible.
My tool attempts to read a character's existing .cmd file, figure out what moves have what commands, and then generate a movelist.dat file with those commands, ready to use with IKEMEN GO.
Here's a step-by-step guide on how to use the generator:
- Open the generator. The link is at the bottom of this post.
- Find a character's .cmd file. Usually it's in the same directory as the .def file, but it might also be in a "code" subdirectory.
- Open the file, and press Ctrl-A to select all of its contents, and then either Ctrl-C or Ctrl-X to copy it.
- Click the green ".cmd Contents" textfield and hit Ctrl-V to paste the contents of the .cmd file. The generator will run as soon as you do this.
- When the generator is done, you can click the Download as .dat button to download the generated file. I'd recommend placing it in the same directory as the .cmd file.
- To see the movelist.dat file in IKEMEN, you'll need to add "movelist = movelist.dat" to the character's .def file, under the [Files] section. Adjust the value if movelist.dat is in a subdirectory.
Since MUGEN/IKEMEN content is extremely variable, I've included many options to tweak to help with getting the generated file you want. The page already includes basic descriptions of what each option does, but I think it's worth going into a bit more detail here.
Remove AI Commands
Removes any move that contains the word "AI" in the name.
Custom AIs in the winMUGEN typically require the character author to duplicate state controllers in the .cmd file, with AI-specific moves (for example, "press X twenty times in the span of two frames", which is physically and technically impossible for a human to do.) Modern characters don't need such a move (thanks to the AiLevel trigger, among other methods), and are already filtered out by default.
Remove One-Button Commands
Removes any move that only takes one button input to activate.
This is intended to filter out normals, which only require one button press. Some characters actually do use single buttons to activate specials and supers (as an example, four-button characters that dedicate C and Z to supers).
Compresses certain combinations of directional motions into single glyphs.
Along with normal directions, IKEMEN GO also includes a lot of dedicated glyphs for common directional motions (quarter-circles, half circles, full circles, Z motions, etc). This should really only be disabled if your character has an unorthodox directional motion (such as the SF2 Tiger Knee motion's tilted half-circle) or for stylistic reasons (like for Mortal Kombat characters).
Use Comment-Based Move Names
Names moves according to a commented line placed above the state controller header.
This applies to a large portion of MUGEN content (and is encouraged by programs like Fighter Factory). If no comment is found (or if this option is disabled), the generator will use whatever name is in the state controller header itself. If there isn't a name there either, it'll default to "Unknown Move".
Apply Button Remap
Applies the settings in the [Remap] section to the movelist.
The [Remap] section of a .cmd file allows a user to rebind the buttons of a particular character, without having to modify every single command input to accomodate. This is handy for incorporating characters with unusual button layouts (such as Nijikaku characters) into rosters with more conventional button layouts. This usually won't affect characters that haven't been explicitly modified by the user (as very few authors use [Remap] for any purpose besides disabling certain buttons).
Specialized Button Labels
Uses LK, MK, HK, LP, MP, and HP for buttons.
As an alternative to the more universal A/B/C/X/Y/Z, some fighting games display a more specialized LK, MK, HK, LP, MP, and HP button configuration (to denote different-levels of punches and kicks). Since this is a purely aesthetic choice (and doesn't work well with non-six-button characters), it's disabled by default.
Annotate Palette Requirements
Adds a "requires ##p" string to moves with a PalNo trigger.
This is particularly useful to many-in-one type characters whose movesets change completely depending on the palette you select. This string is given a unique color (defaulting to #8080FF), which can be specified in the "Color Options" section.
Debug Console Logging
Disabled by default for performance reasons. There's not much reason to enable this unless you're debugging, or just want a peek at the generator's logs.
The IKEMEN GO Github wiki has more info on the movelist.dat specifications: https://github.com/K4thos/Ikemen_GO/wiki/Miscellaneous-Info#movelists (https://github.com/K4thos/Ikemen_GO/wiki/Miscellaneous-Info#movelists)
This is a list of features I'd personally like to add to this tool in the future. None of these are guaranteed to be implemented, nor are they listed in any particular order.
- The ability to auto-denote air/EX moves
Reading "commented-move-name" names for moves (which accounts for quite a lot of MUGEN characters) Added 2/12/2021! Better merging of multiple, similar commands Added 2/12/2021!
- A "Preview Move Display" section
- A command-line version of the tool, for easy batch-processing
Swapping A/B/C/X/Y/Z for LK/MK/HK/LP/MP/HP (ideally accounting for both 6-button and 4-button characters) Added 4/22/2021!
The tool can be found here: https://superfromnd.gitlab.io/ikemen-cmdlist/ (https://superfromnd.gitlab.io/ikemen-cmdlist/)
This sounds like a potentially huge timesaver, I only messed around with making some of the command lists for a few characters, but got demotivated to continue making them just because it can be quite time consuming. I'll definitely give this one a shot, seems like a really nice tool to have, thanks for this, hopefully you can just continue on improving upon it!
Tool's just been updated! Here's everything that's changed:
- Added support for comment-based move naming
- Added support for held-down directional buttons
- Improved merging of similar command inputs
- Made debug console logging more verbose
- Some miscellaneous CSS changes and mild optimization
- Fixed erroneous detection of one-button moves that were longer than one input
- Fixed a method of triggering false-positives on palette requirement detection
- Fixed custom movetype header colors accidentally updating an empty generated movelist
- Fixed potential oversight of the generator code not being ran as UTF-8
Same link as usual, https://superfromnd.gitlab.io/ikemen-cmdlist/ . If you've used the tool recently, you may need to clear the page cache to get the new features. Enjoy!
Minor update today!
- Throws are now listed under a separate category (if there are any detected)
- "Annotate Palette Requirements" now disabled by default
Nothing too substantial, but it's nice to have.
I wonder where is the Moderator. I know this is very important and I think this post should have its own Sticky :O
Rise and shine, MUGENites! (or is it IKEMENites now? IKEMEN GOsts? IKEMEN GOblins?) Anyways, tool update!
- [Remap] parameters can now be applied (this can be toggled with the new option Apply Button Remap)
- Debug log now lists both milliseconds and seconds in "Conversion done!" message
- Debug log now highlights conversion stages using console.warn();
- Fixed debug log not being fully disabled
- Fixed broken CSS "height" values when viewed at extreme zoom amounts
Same link as usual. (https://superfromnd.gitlab.io/ikemen-cmdlist/) Enjoy your Fridays, everyone! :D
Another minor update today... or is it?
- Lots of backend changes to make the code more portable
- Fancy new scrollbars!
- Fixed a bug where certain inputs in certain orders would conflict wth eachother (a replacement-symbol collision)
- Fixed "Remove One-Button Commands" not functioning due to erroneous JS function name
I've also been experimenting with using Node.js and vercel's pkg (https://github.com/vercel/pkg) to create command-line executables! They're not quite good enough for me to release them just yet (for an idea of how primitive it is: you currently have to specify EVERY option for it to even function), but I'll keep all of you up to date on that as new updates to this tool come! :D
I haven't really been working on this project much, I just don't think there's much that I want to add still (not to mention my attention has been divided among several other small projects). That being said, some more small updates!
- A new "Upload File" button, meaning you no longer need to copy-paste a .cmd file using a text editor
- New option: "Specialized Button Labels", for using LK/MK/HK/LP/MP/HP instead of A/B/C/X/Y/Z
- More minor tweaks to the backend to make the code more portable
As for the command-line executables I mentioned, I've managed to get them working somewhat! Unfortunately, there are two giant drawbacks:
- The executables are utterly MASSIVE (around 26MB, just for some text manipulation!?)
- There seems to be some non-parity between Node/pkg and in-browser JS, as the resulting .dat files have some differences.
Despite this, I decided to make the repository used to generate the executables public on my GitLab (https://gitlab.com/SuperFromND/igoclg-cmd) if you want to play around with it anyways. I'd strongly recommend using the web version regardless!