Reverse Engineering StepMania Characters

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!

Prerequisites

  • 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!

(3rd) Emi (b) character directoryIn 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. MilkShape-3d Import Emi MessIf 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. Model.txt problem for stepmania charactersIn 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.

Bones helper file selection for stepmania bones and animation 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. Selecting the entire bone text file for stepmania characters 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.   Copying Bone data into the model.txt file for stepmania 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. MilkShape-3d Import Emi Mess"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 MilkShape Anim Button button on the bottom right-hand corner of the screen.

Emi StepMania Model after Anim Button is pressed!After you click the animation button the model pops right into shape! Perfect!

What about the texture? I selected the texture in MilkShape but all I get is the white outline like in your example pictures?

Turn on Texture in MilkShape Preview PaneSelect Face Texture if it has one in MilkShape for StepManiaRight-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 frame animation settings in MilkShape 3dAdjust 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.

FIN!

End of tutorial for StepMania character reverse engineering.

End of tutorial. I hope this was helpful for anyone reading this.

Related Blogs:

StepMania Character Guide Title.Read on if you want to know more about how to make your own Stepmania characters.

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.

11 thoughts on “Reverse Engineering StepMania Characters

  1. Quick question you may or may not know the answer but idk where else to ask: would it be possible to edit the dancers moves with this program? I'm not a fan of the male dancers using the female dance moves (vice versa!) and I wish I knew how to fix that. I've looked on google, reddit and some forums and no one knows a thing. I started playing stepmania again out of nostalgic reasons and yea, this is my only gripe right now.

    Reply
    • A very long time ago we talked with a developer of Stepmania. Not entirely sure which one. But They explained to me that the dances were hastily ripped right from the playstation images. By them doing it this way without really having a standard. The Stepmania dev team invented their own bone structure by accident. You'll see it if you open one of the files that unlike a traditional milkshape3d skeleton the bones are NOT relative to eachohter. But instead, each bone is based off of global axis's and rotation. Now, would it be terribly hard to convert parent/child forward kinetic bones of milkshape 3d INTO global bone positioning for usage in stepmania? For an average dev probably not. Perhaps its even better to use another software that has more/better scripting support such as blender. Capture the bones from a global axis and convert from there.

      But You're right! The animations are super-dated. having the ability to revise animations with pre-existing skeleton anims meta-environments like Second Life and VR Chat perhaps would be optimal and breath new life into such modeling. It's something we wish we had more time to investigate.

      Reply
      • I just recently started fiddling around with Blender but I don't have the expertise to do that. I could give it a shot but I'd be walking around a dark room with glassware stacked all over the place with no flashlight. It's a tiny complaint I've had for 20 years now, it's not a big deal if it's never fixed. Oh well. Thanks alot for the reply, btw!

        Reply
        • Yeeeah, even doing something like this in the confines of MilkShape3d would require programming skill that at the time I simply didn't possess.. If i had more free time i'd try again in blender by making a standard forward kinetic bone structure but then parent 'floating polys' or bones to the kinetics and record those.. as my math sucks at calculating rotational/distance axises in 3-dimensional space to a global world coordinate.

          Reply
  2. also one more question, do you know how to apply the default rest position to the model so when i export it in a format that isnt the ms3d ascii file, it doesnt scrunch up into a ball? i feel like you might not know this

    Reply
    • A little confused by this. Project Outfox really has no characters when downloading the binary itself. Unless there's a build on there that we didn't see. just a TXT file within the /characters/ folder explaining that for copyright reasons the bone files are not in play and there's no indication if they will provide their own bone standard or not.

      As project outfox is a fork of the StepMania 5.3x; Its source temporarily closed for very good reasons (I've seen some of the drama). It holds the same file structure as Stepmania 5.1 . Also, all of the instructions on how to install characters applies on Project Outfox as well.

      So if you reverse engineer a stepmania character. The same techniques will hold true for Project Outfox (for now.)

      - S

      Reply
        • Back when we were making stepmania characters we found the closest anim frame that represented a t-pose and exported that in order for us to make our own models. The dance system is something i'd like to revisit in the future in the hopes of porting new dance moves and getting rid of the DDR rip once and for all but that will take a bit of time.

          Glad you found your answer though. Good luck in making your own characters!

          - S

          Reply
  3. There are official characters from DDR which haven't been put into Stepmania yet like Rhythm & Blues from Japanese Exclusive Title DDR FESTIVAL and Dance Dance Revolution EXTREME US.

    Will it be possible for someone to rip their models out of the DDR Games they came from and make them compatible with Stepmania?

    Reply

Leave a Comment to the Void