Stepmania – Reverse Engineering Existing characters!
It appears that some people were interested more in how to extract characters from StepMania in order to understand how the process works. I should note that you should only do this if you want to get a better understanding for how StepMania characters are designed and how the program re-assembles the data structure once it was received. So this is an add-on tutorial explaining how to take a character that you may have downloaded from this site. and then how to view it in MilkShape and even have it animate right before your eyes!
- Milkshape 3-d – download a demo of it here – The cost for this program is rather cheap!
- an unzipping tool – WinRAR is my personal favorite and can be downloaded from rarlab.com (do not go to any other sites which claim themselves as WinRAR on Google or bing as a lot of them are spyware/scam programs)
- A character file from Stepmania – you can go here if you want to download some – or check out the Stepmania forum for some Mediafire links.
- the dance moves for a character – hosted locally – click here to download that.
Let us Begin!
In this tutorial example, we’re going to use the (3rd) Emi (b) character that was going on the site listed above. When downloading your file it will have a .smzip file extension for any and all Stepmania themes, songs, characters, note skins, etc. Just rename it from a .smzip to a .zip and you should be able to extract it with any unzipping tool. The file that contains the mesh of the character is model.txt which is saved in MilkShape ASCII format. This is the file that we will be focusing on during this brief tutorial. If you attempt to do a ‘File’ ‘Import’ ‘MilkShape 3d ASCII’ import of the model.txt in your Emi character file you will get something that looks like this. Basically a ball of unrecognizable mesh data. And if you remember from the earlier tutorial this is because all characters in Stepmania are saved without their bone data as the Stepmania program pulls that data from another file. In the model.txt when you scroll down past all of the mesh and UV map data (Note: Line 1774 for this Emi file, this line number will change depending on the character you open) and you see where the problem is; All of the coordinates for the bones have been zeroed out which warps the entire mesh into a tiny ball.
Fixing the “model.txt” so it is usable again.
Now we need to go and find the dance bone animation files. which can be extracted out of the “bones+helper.zip” file. A brief description of what these files are is these are bone animation files that were extracted out of the original Konami DDR PC version of the game. The model’s mesh files, UVs, and bones, were all extracted and re-exported into Stepmania. The files were separated so the bones could be used on all Stepmania characters. This is why when you looked at the emi file directory example you just found a .redir instead of these bone files. For this example we are just going to click on _DDRPC_common_Dance0001.bones.txt which is where all of the bone data exists in. be clicking ‘edit’ and ‘Select All’ and then ‘copy’ will ensure we copy every single line in this text file, which is 16 bones with 748 frames of animation. Next, we are going to open the models.txt of the character that we are working on. In this case the “Emi” character. highlight all of the bones that are zeroed out and pasted all of the data from _DDRPC_common_Dance0001.bones.txt file . Then, save the file as model-b.txt so you don’t overwrite your existing character and -really- mess up your model when it is processed by Stepmania. Once the model-b.txt file is saved (or whatever you want to name it) we can re-import this into MilkShape using the MilkShape 3d ASCII import. “What the hell?!? It didn’t do anything!” – This is the reaction I had when I first tried to import mesh data from a StepMania character. That is until I actually had to go into animation mode in MilkShape mode by hitting the Anim button on the bottom right-hand corner of the screen.
What about the texture? I selected the texture in MilkShape but all I get is the white outline like in your example pictures?
Right-Click in the preview pane of your MilkShape editor and then change it from “Flat Shaded” to “Textured” and you get to see the StepMania Object file textured. Also, if the StepMania object has facial animations as most of them tend to have. Then in order to see that you will need to go into the Materials tab. Select the “Face” material and then where it says “Face.ini” for the actual material name, change it to a logical file. In this example, I have it set up as “face1.bmp”. From there; You should be able to see your character as how it would look in StepMania and be able to export it out to whatever format you choose by using the ‘file’ and ‘export’ features within MilkShape.
What about viewing the animations? I can’t get MilkShape to play the animations.
Adjust the ‘max frame’ and ‘total frame’ values in two text boxes on the right of the animation bar. By doing this you have told Milkshape to look past the first frame of animation which will then make those bones animate without an issue.
End of tutorial. I hope this was helpful for anyone reading this.
Final thoughts and disclaimers.
By reverse engineering any model. I am not responsible for any damage that can occur when extracting data as well as saving the model into different formats, you should always retain backups of project files that you are working on. “Emi” and other characters within StepMania are copy-written to their respective owners and this site does in no way wish to infringe upon those intellectual properties.