Creating a Dancing Character

This VERY extensive guide is used with permission from hellcat_444 A GUIDE TO TRANSFERING MODELS INTO STEPMANIA

A GUIDE TO TRANSFERRING MODELS INTO STEPMANIA (Version 1.0)

 

 This is a guide to help with the transition of characters which are pre-made either 3rd party app such as Lightwave or 3d-Studio MAX. This is NOT a complete how-to-model guide and assumes that you have an already have modeling experience along with a pre-made model in either professional package with correct UV-Mapping and now wish to export said character into Stepmania.  All information documented in this is effective as of Stepmania 3.9 RC3 and can change at any given version time. In the event of change. I'll try to update as best as possible.

STEPMANIA FILE FORMAT

 The stepmania file model format is a malformed version of the "MilkShape ASCII" exported file system. Except that the mesh data is saved into the file 'models.txt' file which contains all of the mesh data and is assigned to the ./characters/<foo>/ folder. While the bones are saved in the root of the characters folder as _DDRPC_Animations_XXX.txt.

The animation files was a temporary hack made by the DDRMX crew and will be slowly replaced over versions. We shall discuss the specifics of this process..

CHAPTER 1. Import

The first thing we're going to do is import your model. Before you import your model. make sure that the conversion process of your model runs smoothly by doing as much editing work as possible in the 3-d rendering program of choice, make sure to triple your polygons to ensure that they are all three sided. and to remove all bones from the model as none of the bone structure nor animations will be used Imported via Milkshape.

For 3DSMAX

Select File , Import,  AutoDesk 3DS and choose the 3DSMAX object that you have generated. It will come up with a window questioning what you want to import. If everything is UV'ed properly in 3dsMAX everything should come in perfectly fine..

For Lightwave 6.x - 8.x

Select File , Import,  Lightwave LWO and choose the lightwave object that you have generated. It will come up with a window questioning what you want to import.

These are the default settings.. you don't have to change anything. Click OK

This is normal. Click Okay.

Your model should appear in Milkshape fully textured and ready for us to start work on it.

Note: If your model imports into milkshape and you do not see a textured model right away, do not panic. You have not lost your UV's on your model.. click on the 'Materials' tab and click on your 'UV.bmp' file , or whatever BMP file you use to UV your character with.. and it should return to normal.

 

In this tutorial. We will be using a model which is totally unrelated to stepmania, in this tutorial I will be using a character named 'Ukidig' for a project under a Torque gaming engine which has been abandoned. The model is 1 material and 1653 polygons and the material is tied to a 512x512 discontinuous UV bitmap..

Note: the average Stepmania character is two materials, a facial animation material, and a vram or 'default' material. and the mesh itself is around 700 polygons.  Not to say that you can't go big.. but when importing your model. think of those which lesser powered systems or are on X-box's which are very limited on RAM. use polygon reduction tools at any given chance you can. and attempt to resize your bmps as small as possible without loosing all of your detail or crippling your ability to animate your character..

If you have imported your model from Lightwave and your model is running on one material only.. click on 'Vertex' and then 'Weld Together'. if your running on multiple materials welding might cause distortion . try and weld and if it becomes distorted you can always 'edit' and 'Undo'

In your materials tab open. set your 'Ambient' 'specular' 'Diffuse' 'Emissive' color values to 255,255,255 all white so that we're not looking at a dark shadowy model.

To download either models . Click on the following Links.

.LWO version
.3DS version
.BMP used for UV

 

CHAPTER 2. Modification

The first modification that we will be doing with your stepmania model is placing it's arms to it's side. By defaults a lot of modelers 'rest' positions are with the arms stretched out, and the legs nice and straight, this is to give total flexibility of the model and to make it easier to add bones. However, the Stepmania bone rest positions have the arms at the side. You could go back to your modeler of choice and re-do your model and re-import it back into milkshape.. or... Click the 'Select' Button and select the 'Vertex' option to and then click drag your mouse over areas of the model to grab the points you want to rotate, when while all vertex's are highlighted, clicking on the 'Rotate' and 'Move' buttons to place the limbs at their side.

Note: When in selection mode, you can hold down the shift key for multiple selections at one time.. if you over-selected too many vertices that you wanted to move, you can de-select without starting over by keeping the shift key on hold while click-dragging the right-mouse button. you will be doing a lot of this selection/deselection later on.

 

The next thing That we're going to be doing is re-sizing our model. Unless your super lucky the size of your model will be different then the size of the DDR character. We Must keep your model the same size as all of the other stepmania models before. This is very important when we map out the skeleton of the character. Before we begin, Click on 'Edit' and then 'Select All' and the click on the 'Move' Button to drag the model off to the side. We will not import Emi  in the resting mode to give as an approximate difference of size. If you want the ms3d version of Emi that I used. you can click here to download it. We are going to do a 'File' and 'Merge' and then select our newly modified emi.ms3d file to do our size comparison,  our model is extremely huge compared to the Emi model.. What we are going to do is we are going to select our Ukidig Mesh and 'Scale' it to match the Emi model on that was just imported in..

You might want to use the numerical panel on the right-hand side of the screen to scale your character. You can control exactly how far your character gets scaled down.. my scaling values for Ukidig was X 0.3 Y 0.33 Z 0.3. and also. Since the Design of Ukidig was a little different.. such as proportions from pelvis to shoulders. I adjusted it accordingly by doing a vertex selection and moved accordingly to match Emi as close as possible. Once you are all done.. Select Emi and delete her and then move your character back to the center plane of the modeler.

CHAPTER 3. Joints


* - Torso Bone And Pelvis Bone are in same rest position.

The completed transition of the bones in the tutorial Ukidig Model..

 Setting up the joints on your new model is actually easy. The biggest trick in having an effective and workable stepmania model is to try to keep the relative positioning of all of the joints in YOUR model the same as the model presented on the right. There is 16 bones in all. These bones are un-parented and run off of global accesses..

 

To begin, click on your Model tab and select the Joint button, and begin by placing down the 16 joints that we will need. Remember to click on the 'Select' button and deselect the joint that you have just made so that you don't have parented joints. Once you have setup your bones completely inside of your model. Then go to the Joints tab in Milkshape and select each of your newly generated bones.. each bone you select will show up in red, type in the name  according to the bone and hit the 'Rename' button to change the bone name. repeat this process until all of the bones are renamed just as they are on the left-hand side of the this document.

Remember, stepmania as of 3.9 RC3 cannot read relative joint position, By setting up your joints normally in milkshape by using joints to connect in a relevant position will result in a failed joint structure and you would've wasted a lot of time.

Click Here if you want to download the pre-defined 'resting' joints for your model in Milkshape format..

Click Here if you want to download the Milkshape Emi model for resizing purposes.

 

The next step that we will be doing is assigning the joints to parts of the vertices of the model. This tells stepmania whenever it moves a joint in a dance move what polygons to affect, and how to effect it. Proper placement of these points is essential to having a nicely animated model for all to enjoy the model that you've created.

Click on the 'Model' tab and click on 'Select' and then 'Verts'. With all options highlighted click on the 'Joints' tab and select the 'Head' for starters. NOW, while holding down the shift key begin click-dragging your selection box over the areas you want the head bone to effect. (Always remember, is you select too much, you can right-click-drag a box to deselect without loosing your entire model selection). Once you are satisfied with your selection, click on the 'Assign' button in the Joints tab to assign the vertices to the head joint.

You don't want to have any vertices that are left unassigned to your model, to check the region that you just assigned, click on the 'Sel Unassigned' button in the Joints menu to see if you are missing any vertices in your selection. In the example above. I missed one vert when assigning it.. which is no problem. click on the 'Sel Assigned' button and while holding down the shift key highlight the missing vertices and hit the 'Assign' button again to complete your selection.

Repeat this process under all verts are joints as respectively assigned to the body.. Here are some hints I can give you when assigning vertices to your joints..

  • On low polygon objects - when working on limbs, always assign the verts up the next joint.. this will cut down on the raggidy-ann effect that would normally come when assigning verts around the bone on outward..
  • If the backside of your polygon has a very low poly (like mine) make sure that you assign the verts around the arms to the back as well.. this will especially help keeping body form when crouched over as some of the dance moves are.
  • If your Mesh alignment is a little off.. then keep mapping your verts until finished, and go back to re-align your mesh. make sure to get it closely lined up to your joints as you can.

Note: This is the most tedious portion of the tutorial. It took me an average of 1 hour to assign all verts respectively to a model.

 

Once you are satisfied with your vertex assignment, joint Positioning, and Mesh alignment, we prepare the model to be exported to stepmania as a 'model.txt' file. To begin, click on the 'Anim' button located in the lower-right hand corner to switch milkshape into animation mode. What you then must do with your model is go through and select each of your joints, and move them to the center of the board.. that is.. where the cyan/yellow/magenta lines intersect on your coordinates board. Once you have all of the bones as close as you can to 0,0,0 then click on the 'Animate' button in the menus and select the 'Set Keyframe' option.

Note: It is VERY important that you set a keyframe, or else a lot of wasted time and effort will occur when you save your file. And always keep a backup of your MS3D file, you will need it in case you have to re-assign as new vertices map for your joints.

Click here to download the completed model with all rest bones in .ms3d format.

 

At this point we can now click on 'File' 'Export' and 'MilkShape 3D ASCII' and name it respectfully model.txt for stepmania to read.

We are not finished with the model yet!!!!!!! the last and final thing we need to do is we need to make SURE that all of the coordinates for the joints X,Y,Z are zeroed out so they don't cause us ANY trouble when they begin to animate. down below is the text that you will need to copy and paste over your current bones in your model.txt file. you may use any text editor to accomplish this task..

<<Cut here>>

Bones: 16
"torso"
""
8 0 0 0 0 0 0
0
0
"head"
""
8 0 0 0 0 0 0
0
0
"pelvis"
""
8 0 0 0 0 0 0
0
0
"r lower arm"
""
8 0 0 0 0 0 0
0
0
"r foot"
""
8 0 0 0 0 0 0
0
0
"r hand"
""
8 0 0 0 0 0 0
0
0
"r leg"
""
8 0 0 0 0 0 0
0
0
"r thigh"
""
8 0 0 0 0 0 0
0
0
"r upper arm"
""
8 0 0 0 0 0 0
0
0
"neck"
""
8 0 0 0 0 0 0
0
0
"l lower arm"
""
8 0 0 0 0 0 0
0
0
"l foot"
""
8 0 0 0 0 0 0
0
0
"l hand"
""
8 0 0 0 0 0 0
0
0
"l leg"
""
8 0 0 0 0 0 0
0
0
"l thigh"
""
8 0 0 0 0 0 0
0
0
"l upper arm"
""
8 0 0 0 0 0 0
0
0

<<Cut here>>

Click here to view the tutorial in it's model.txt format

CHAPTER 4. Finishing Touches

Okay, you now have your completed model.txt file. as well as your bmp that's going to be used for the UV Texture. In order to make it a fully functional StepMania character folder. We are going to need a couple of things.

A 'card.bmp' file is the picture that everyone will see at the character selection prompt in StepMania. It could be a picture of anything you want (preferably of your SM character) and the picture must be a BMP of 120x160

A 'break.bmp' file. This is the file that comes in during certain game modes in StepMania.You can add any artwork you want in this screen. This file should be a 640x480 .BMP file.

Note: You can use PNG and JPG file formats as well for your card.bmp or break.bmp. Such formats can be also used on the model.bmp or face(x).bmp file as well however it is highly advisable to keep said models in a lossless format such as BMP.

A 'character.ini' file. From my personal experience. I've only seen this used in 'Rave' mode. and that the entries in the .INI are essentially attack moves that you can do to the other player. here an example of what the . INI file looks like:

[Character]
Level1Attack1=1.5x
Level1Attack2=hidden
Level1Attack3=reverse
Level2Attack1=2x
Level2Attack2=sudden
Level2Attack3=expand
Level3Attack1=3x
Level3Attack2=boost
Level3Attack3=brake
 

A 'face.ini' is an optional script which controls animations of the face material as well as how long it should use a certain face material before cycling to a new face. the face.ini file is applied into the model.txt in replacement of it's material UV reference (Example: ./face1.bmp <=> ./face.ini) . I have given an example of what the face.ini looks like:

[AnimatedTexture]
Frame0000=face1.bmp
Delay0000=2.00
Frame0001=face2.bmp
Delay0001=0.30
Frame0002=face3.bmp
Delay0002=2.00
Frame0003=face2.bmp
Delay0003=0.30
Frame0004=face1.bmp
Delay0004=2.00
Frame0005=face3.bmp
Delay0005=2.00
Frame0006=face1.bmp
Delay0006=2.00
Frame0007=face2.bmp
Delay0007=0.30
Frame0008=face3.bmp
Delay0008=2.00

 

'face(x).bmp' where x is the number, face bmp's are the actual images of the facial changes themselves, from blinking, to happy, sad, etc.

For the sake of the tutorial, I will add the face.ini into the tutorial model along with four dummy .BMP files just to act as a placeholder.

There is also the following folders. which are as follows. 'Dance' 'HowToPlay' 'Rest' and 'WarmUp'. These are directories that reference all of the bones for your model. and commonly there is .redir files in each of the directories. These are text files which refer to where the 'real' joint hierarchy resides. This is important to remember for those which make custom animations, as you can isolate your custom animations in these directories so you won't overwrite and possibly damage the other dancer files.

 

Now that your folder is all complete you may now inject this folder into your StepMania into your /characters/ folder.

CHAPTER 5. Testing

Testing is always important to make sure that your animations are fluid, that your bones are operating perfectly, and there's no clipping. It is also a very important step before deploying your model for obvious reasons..

While you could inject the model into stepmania cross your fingers and hope for the best, it is not the best way to diagnose what it wrong with your mesh.

Note: This step is completely optional.

With a text editor open any one of the many stepmania dancing bone files. The one that I used is _DDRPC_Common_Dance0001_Bones.txt

Open the dance .txt file into a notepad and click 'Edit' and 'Select All'and then click 'Edit' and 'Copy' next.. open up your model.txt file and highlight the entire area where your bones are.. and click 'Edit' and 'Paste' to insert all of the keyframes of said dance moves into your model.txt file..

Once you are done.. make sure you save this file as a different name. as you will only be using this .txt file to test your model.

Open up Milkshape and re-import your milkshape ASCII format back in. and set your keyframes to the length of your model (in the example on the left, it is set for 792 frames of animation) and then use your slider bar to go through the animation.

For those who'd like to see the modified model.txt file.. click here.

END

What... want you see the end result? okay!

Good Luck and I hope to see you modeling!

Thanks and Acknowledgements.

I'd like to thank the following for providing resources and links to make this tutorial possible.

 

  • DDRFrance - For being first site which published the how-to-model Stepmania using Gman. Without them I wouldn't have gotten as far with my own tutorial.

  • Stepmania - And all of it's developers. Because without them well there wouldn't be a tutorial. or a game to do a tutorial for.;)

  • thebusdr5er - for providing a full English translated version of the how-to-model from the Stepmania France site.. as much fun it is to use Babel fish. it was very hard to understand.

  • DDRManiax - For providing me with a lot of great info on my own ventures in Stepmania.

  • Anonymous - For the character concept and design.

 

This tutorial is only the start of it all. I hope to do more advanced tutorials in the future explaining more about stepmania modeling.

This tutorial is FREE to download and distribute, give to your freinds, neighbors, pet dogs, anything you want, go CRAZY using the model provided in said tutorial in anyway you see fit, i'd like some e-mail hearing me how it's being used. but not a requirement! As long as no money is being made off of the model or tutorial, go crazy!

If you really didn't want to learn anything after all and just wanted a free stepmania character out of all of this then click here.

If you want a perfect copy of this entire web-site so that you can mirror it at other places. click here.

 

Made July 9th, 2005 by Bryon Morisette

- Hellcat_444

Article -  Edit -  History - 
Hover for description
News
FAQ Tutorials Docs
Downloads
Songs
StepMix 1 Songs
StepMix 1 Songs (2)
StepMix 2 Songs
StepMix 2 Songs (2)
StepMix 3 Songs
StepMix 3 Songs (2)
StepMix 4 Songs
User Songs
Song Download Sites
Themes
Announcers
Backgrounds
Other Downloads
ITG Downloads
Message Boards

Dance Pads

Dance Pad Info
Dance Pads
Other Controllers
USB Adapters

Cool Stuff

StepMix 4 Contest
StepMania CD-ROM
StepMania Scores
In The Groove
StepMania Online
Movies
Pictures
Products
Links
Other Simulators
Frappr,MySpace,Facebook
Dance Dance Revolution
Pump It Up

Other StepMania

Documentation
Help/Support
Create & Share
Video Cards
Video Drivers
Spread StepMania
Developers
RSS Feeds
Contact Us

Search

Translate