Creating a Dancing Character
This VERY extensive guide is used with permission from hellcat_444
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
For Lightwave 6.x - 8.x
||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.
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.
||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..
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.
||At this point we can now click on 'File' 'Export' and
'MilkShape 3D ASCII' and name it respectfully model.txt for stepmania to
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..
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:
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:
'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.
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.
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!
Made July 9th, 2005 by Bryon Morisette