Hyper Turbo Galaxy World 3D Edition, yada, yada, yada.
So hey! Have you ever wondered to yourself, "Aw man, this character's attack animation is real complex, like. Fighter Factory ain't gonna cut it, yo.", or something similar? Or are you perhaps wondering how Movelist sections like N64Mario's Pulseman's have animations with afterimages on them? Then you've accidentally stumbled across the right blog post, skipper! Uncle Plas is going to show you how to rip animations directly from M.U.G.E.N itself!
Do be aware that in most cases, this is more tedious than merely exporting them from Fighter Factory, but if you don't mind getting more accurate animations, then good for you! Also of note is that this isn't a mandatory method that you have to use; both methods are fine, though this one is preferred.
- M.U.G.E.N 1.1 - this is a necessity, actually. Previous versions of M.U.G.E.N are limited to 16-bit colour, meaning certain colours don't display correctly, including the background colour of this wiki, which is vitally important, I'll have you know.
- Fighter Factory - any version will do, though FF3 is preferred. While it's not required, it just makes it easier and saves you having to add characters to your select.def.
- M.U.G.E.N Recorder - something I put together using AutoHotkey. There's no GUI or anything (it's a script), but it works like a charm. Press F10 to unpause/pause.
- Photoshop CS2* - while I'm lead to believe any other version above CS2 can perform this task, CS2 is free, which is why I linked to it (you do need an Adobe account, but that's also free). Photoshop Elements does not have the features needed, unfortunately. Yes, Photoshop CS2 is a hefty 340 MB; I am very sorry for those who don't already have it.
- Import Folder as Layers for Photoshop CS2 - by default, CS2 does not include a Load Files into Stack script and newer Photoshop scripts are not backwards-compatible, unfortunately. The Import Folder as Layers script essentially mimics the Load Files into Stack Script, only you select the folder to be imported rather than individual images. From what I've tested, this script actually loads images faster than at least CS3's built-in stack script.
- My custom-made MUGEN Photoshop Action - it comes bundled with two different actions (Background Removal and Batcheroo), though Batcheroo is the one of interest (automated background removal, haha!). Please note that it'll only remove a specific colour, which is why you'll need...
- This stage - a stage consisting of nothing but the MUGEN Database's background colour (dark grey). Allows animations with transparent effects to display correctly on this site, seeing as .gifs don't support partial/alpha transparency.
- Invisichar - should P2 be needed during an attack, use this character. Even though he's invisible, he can still be attacked.
- Hide lifebars and player 2 (unless the attack requires either) - in most cases, they just get in the way, but if an attack requires the presence of P2 (like a projectile, grab or whatever) then leave them there. I can only think of one instance where the lifebar would be needed. Remember to use Invisichar when P2 is required.
- Remove obstructing effects - dust, envshake, hyper backgrounds, hyper portraits, superpause sparks, superpause darken (add darken = 0 to superpause states), hitsparks, etc. To remove dust effects that are generated by the engine itself, remove them from fightfx.sff. Do not remove effects like afterimages. Should a character have fullscreen effects like Rare Akuma that are part of the character itself rather than a specific move, remove them. If you're unsure about removing something, ask me.
- Remove/comment out all instances of DisplayToClipboard present within the character's code; this state controller causes M.U.G.E.N Recorder to dump far less frames than it should, possibly due to the additional debug information constantly being checked and updated.
- Set your opponent to Invisichar and the M.U.G.E.N executable as 1.1 in Fighter Factory.
- In order to use the dark grey stage when ripping animations, open mugen.cfg, go to [Debug], find
StartStage =and change it to
StartStage = stages/Teststage.def.
That should be it.
Part 1 - Recording
To be clear, this is exactly how I rip the animations -- programs included -- so there's a chance that not everything will apply to the programs you're using; they should be similar, however.
For starters, open up Fighter Factory and the character you want the animations for. In this example, we'll be using Kung Fu Man because why the heck not. While you're at it, open up M.U.G.E.N Recorder and Photoshop if you're feeling brave enough.
If the character is low-res, add the following line to its .def file under
localcoord = 640,480
What this does is scale everything down by half, including velocities, thus effectively giving you more room to rip animations (useful for characters with big effects). By doing this, you do not need to scale the animation down in Photoshop because the character is already at the ideal size. Also be aware that this doesn't work properly with moves that use full-screen background effects like speedlines or custom backgrounds as they are obviously set to cover the whole screen, as the localcoord will disrupt that; in such a case, you'll have to scale it down in Photoshop.
Go to the commands tab and change the activation method of the move you're going to record to a single button; to avoid conflicts, don't alter every move, just the one you're going to record.
You can now open M.U.G.E.N through Fighter Factory. With M.U.G.E.N open, press Ctrl+F twice to change the frameskip from auto to 1 (this helps with capturing frames. If you're not sure which frameskip you're set to, press Ctrl+D to bring up the debug feed, which should show a little piece of text on the bottom-left of the screen (among other things) saying SKIP: 1; if it's not, keep pressing Ctrl+F until it is and press Ctrl+D twice to remove the debug feed) press Ctrl+L to remove the lifebars, and Ctrl+Alt+2 to remove P2 (unless they're required for the attack).
Providing M.U.G.E.N Recorder is running, press F10 to begin recording the active M.U.G.E.N window. Unlike previous applications I've suggested using in the past, M.U.G.E.N Recorder is a fixed script, so you can't change the unpause/pause key to anything else. The reason I say unpause/pause as opposed to pause/unpause is because M.U.G.E.N recorder starts paused, so pressing F10 will unpause it; that said, if you're unsure whether or not M.U.G.E.N Recorder is paused, check the little M.U.G.E.N icon on the right of your taskbar (if you don't see it, click on the little white arrow, also on the right side of your taskbar).
Blue means unpaused/recording.
Black/greyscale means paused/not recording.
After the attack animation has finished, press F10 to pause M.U.G.E.N Recorder and then close M.U.G.E.N (if you don't close M.U.G.E.N, it will continue dumping images for quite a while, despite the key not being pressed any more). If you're done recording, to close M.U.G.E.N Recorder, right-click its icon and select "Exit". If you can't find it, open Task Manager and end the process named "M.U.G.E.N Recorder.exe".
With that out of the way, go to your M.U.G.E.N 1.1 folder and you should notice a multitude of images (I'm so sorry). Within these images should be the attack animation, so just delete any images that don't resemble the animation (they're typically the idle animation). That's it! You've successfully recorded an animation from M.U.G.E.N!
"BUT WAIT! These images are 640x480 pixels! That's way too big for such a small animation!", I hear you cry. Do not fear, young one, for that's what this next step is for.
Part 2 - Cropping and exporting
Open up Photoshop. If you haven't already, install both the Import Folder as Layers script and the MUGEN Action. Don't fret, I'll show you how.
To install the script, go File > Scripts > Browse... and locate Import Folder as Layers.jsx.
To install the action, go Window > Actions (if the Action window isn't already active), then in the Actions Window, click on the little arrow on the right and select Load Actions.
You could instead place the two files into their respective folders inside the Photoshop CS2 program folder, but I won't go into that.
With that out of the way, you'll have something like this:
Now for the actual background removal! Go File > Automate > Batch... and a window should appear. If they aren't already, change Set to MUGEN, Action to Batcheroo, Source to Folder and Destination to None. Now, click on Choose... and locate your M.U.G.E.N 1.1
Click OK. Photoshop will now automatically remove the background of each image individually until all have been processed.
Once all images have been processed, go File > Scripts > Import Folder as Layers and locate your M.U.G.E.N 1.1 folder. Click OK. Photoshop will then begin importing all your images as their own layers in a rather hasty fashion. You'll notice that the document has already been cropped to the size of the biggest layer.
Now, if you weren't able to use localcoord on your low-res character due to full-screen effects, you'll need to scale everything down manually. Go Image > Image Size... and change the settings so that Resample Image is ticked, Resample Image is set to Nearest Neighbor and Width and Height are both at 50 percent.
Click OK. You'll notice that the image has been halved in size, but the image quality has remained intact and not blurred.
You're almost done! Yay! Using the Animations window (Window > Animations if it's not already active), click on the little arrow on the right and select Make Frames From Layers. This will turn each individual layer into its own animation frame.
Using that same little arrow on the right, select Select All Frames.
With all frames selected, click on the 0 sec. underneath any frame, select Other... and enter 0.03.
Click OK. All frames should have their delay changed to 0.03; anything lower will cause the animation to run slowly on web browsers. Almost done. I'm serious, just a bit more! Would you believe it's as simple as File > Save for Web... and then clicking Save? Because it is!
Save it as if it were an animation exported from Fighter Factory, typically meaning CreatorCharacternameAttackname.gif or something similar.
Part 3 - The finished product
Ta-dah! A perfect rip from M.U.G.E.N itself!
Part 3 - FAQ
Because nothing is perfect. These are basically answers to problems I've encountered when doing this method.
Q: My Internet browser claims M.U.G.E.N Recorder is a virus. I can't believe you'd try to kill my computer!
A: This is a false positive; M.U.G.E.N Recorder is completely harmless. I've only heard this story from Chrome users, so if you do encounter this problem, type chrome://downloads into your URL bar, click on 'recover malicious file' and accept. Again, M.U.G.E.N recorder is completely harmless; Chrome only sees it as malicious because it's a lone .exe file.
Q: It's not capturing every single frame.
A: It won't capture literally every single frame because it's not actually at a delay of 0.01. I don't know what the cut-off point is for the delay (where it stops getting faster) but it's somewhere between 0.1 and 0.01. I just put it at 0.01 for the sake of simplicity.
Q: Frames aren't being dumped into the M.U.G.E.N 1.1 folder.
A: Do be aware that you have to have M.U.G.E.N as the active window. If it's not, then F12 isn't going to work.
Q: Frames aren't being dumped into the M.U.G.E.N 1.1 folder properly - they stop at a certain point and then continue again when I've stopped Auto Key Presser.
A: Why are you still using Auto Key Presser?! Get your stuff together and go grab M.U.G.E.N Recorder!
Q: How do you actually close Auto Key Presser? I've clicked on the x but it just minimises to the taskbar.
A: You have to actually press the Exit button. Bugs and all that. Best to uninstall it and GO GRAB M.U.G.E.N RECORDER!!
Q: Some pixels get warped when I resize a low-res character in Photoshop. Why?
A: I have no idea why. All I know is that if that does happen, skip the resizing step and doing it later during the exporting step using the same settings; it's under Image Size, you can't miss it. Alternatively, the character may be using non-whole numbers as scale values, which is not your problem. You could always scale the character in M.U.G.E.N itself via localcoords, which is actually quite beneficial until you get to attacks with full-screen effects, at which point you haven't got any choice but to scale down in Photoshop.
Q: The character I'm ripping animations from goes off the top of the screen slightly. How can I remedy this?
A: The "Test Stage of Testiness" has two zoffset values, though one is commented out. Uncomment the one with a value of 230 and comment the other one. This will place your character further down.
Q: The character's animation goes outside the screen no matter what I do. What now?
A: If it cannot be helped, then leave it that way.
Q: When trying to remove obstructions, what state controllers should I look for?
A: Typically Explods, SuperPauses and BGPalFX. For SuperPauses, add "darken = 0" and "anim = -1" (or replace the values, should those parameters already be there). Do be cautious about Explods though, as some might actually be effects relating to the attack rather than hyper portraits/backgrounds. AssertSpecial might also be another state controller to look out for, but that depends on its flags; NoBG and NoFG are common ones to look out for.
Q: Are you my mummy?
A: Ugh, you're such an Empty Child...
Q: How can I gwow up to be big and stwong like you, mister?
A: Eat lots of VeggieTales.
Q: Oh, no! What we gonna do?
A: You tell me.
Q: Is there an Auto Mouse Clicker program?
A:. Now go play Cookie Clicker, you cheating bastard.
Q: Why are the previous four questions completely unrelated to this blog post?
A: To break monotony, I guess.
Part 4 - Closing notes
If you have a question about this, please do leave a comment. That's about it, really. It may seem like quite a long and tedious process, but it's actually quite quick and produces more accurate animations than merely exporting from Fighter Factory.