Custom Character Tutorial


Updated to Actually Work This Time!

Files
Right Click and "Save As"
Stepmania
Stepmania CVS Character Pack
All files mentioned in tutorial.


Ever want to see one of your favorite cartoon characters dance? Got a girlfriend that you want to see dancing in front of you in glorious 3d? NOT A PROBLEM! If you can make the model, then I can help you get it into the game! Just a big fat note for everybody: I will NOT be explaining how to make a model or texture it. This is all about putting a completed model into Stepmania using Milkshape 3d. There are a variety of tutorials out there to help you with the actual construction of the model.

A bit of information...


I really don't know exactly what you can and can not import into Stepmania. The Dancer models are around 800 polygons. They use very low-rez textures and are separated into lots of little pieces. The model I used had two textures that were about 256x256 in size, and the model was 700 polygons. The textures were in bitmap format. I reccomend sticking to the same filetype and stuff. If you’ve ever imported one of the ASCII model files that come with the dancing pack, you’ll noticed that the character model is a mass of strange looking polygons. No matter how your model looks now, it will look just like that when exported: and that’s what we want! Stepmania will make things look correctly in the end.

This is the quick run down of what I’m going to explain!
1. Size model to correct size
2. Arrange joints
3. Assign Vertices to Joints
4. Mode all joints to origin while in animation mode.
5. Export model to ASCII File while in animation mode.
6. Open model.txt file and replace bones info

EXTRA STEP: Open model.txt and replace bones info with animation file to see your model shimmy and shake!

7. Setup files for Stepmania
8. Briefly explain animated faces.
9. Dance!

Fabulous Tips Constructing Your Model



1. Segmentation
It's very good to make certain parts of the model in different groups. For Gman, I made several additional groups in the event that I had to adjust him a bit later. I reccomend having the head, each individual hand, the feet, the upper body, lower body and arms to all be seperate from each other. This is an optional suggestion, but it can help make things easier in the end.

2. Polygons
The polygon count for all of the DDRPC chararacters is around 700-800 polygons. Sticking to that number will ensure that your game won't explode! It will also make the vertex count lower, thus making the assignment process later on MUCH easier.

Besides; I don't think the game would be the same if the models weren't all cute and low poly.

3. Position
If you're building a model, I think would be a good idea to build your model keeping the DDRPC characters in mind. By that, I mean the way they're all positioned. Arms and legs downward. Also, DO NOT model them with bent arms and legs! Keep it all straight! It will make everything else MUCH easier.

The Model


For this tutorial, I will be using the Gman model from the award winning computer game, Half-Life. He comes complete with two textures from his body. This will let me jump right into things! On top of that, it will look funny! Kudos to DXander for giving me the idea, as well as sending me the model. This model has no skeleton at all. It's just the plain old mesh with textures.



Step One: Sizing Your Model

The first step is to size the model so that it will be the same size as the other dancers. I’ve made a file available to you all with one of the dancers in it in 3ds format. Download it up in the files section

Open your model up in Milkshape and go to File>>Import>>Autodesk 3ds

import the 3ds file that you downloaded from here. The dancer should load into the program...and she may look smaller then your model!



See that? Look at the difference! All I have to do is resize G man so that he’s about the same size as my dancer. I’m just gonna use the scale tool and scale him down to size.



It's VERY important that your model is the size of the other dancers. If not, your model will look messed up in the end.

Step Two: Arranging the Joints



This step is pretty easy, though slightly tricky at the same time. For some reason, importing the skeleton will turn your model into a booger if your model is in the same window as it. Export your model as an Autodesk 3ds file from the export menu. and save it to somewhere close. The Desktop perhaps?

Clear the window by going to File>>New. You might want to save your model in case you want to come back later for it. With the window all fresh and clean, it’s time to import a skeleton! I f you want, you can import a character.txt file and delete the mesh, leaving the skeleton for you to use. I’ve made a file with just the skeleton available for download towards the top of the page. Do whatever you want with that.

Import the skeleton by going to File>>Import>>Milkshape ASCII. Import those bones! You should see a mass of joints at the origin. Actually, it looks more like one joint. There are lots of joints there: one on top of the other. If you import my skeleton.txt file, you’ll see a sphere sitting in the middle of the screen. Just delete it.

Now go to file>>import>>Autodesk 3ds. Find your model and import it back into Milkshape.

All you have to do is go through the joints list and move all of the joints to the appropriate places on your model. I do this by selecting the move option. Then I go to the joint tab and highlight the joint I want to move in the list. That will select the joint in the actual work area. Then I just drag it to the correct area. You have to do this with every single joint. All 16 of them!

Note
When you select a joint from the joint tab, you won’t see the joint you selected highlighted in red or anything. Just drag it from the mass of joints at the center of the screen. You’ll see it then.

Demonstration!




Select the joint you want from the list of joints....


Drag it from the mass of joints at the center and put it where you want it.

Make sure you do this part correctly! The right and left leg joints should be at the right and left knee. The right and left foot should be at the ankle. Ect, ect.

And here’s Alex with all the joints in the right place.


There are afew important things to notice here.

1. the pelvis and torso bone should both be in the EXACT same place.
2. The bones should be placed on the model so that the center of the bone is at the point where the model is going to rotate (IE: The r leg bone should be at the right knee).
3. Inside the Zip file, I've included a MS3D file of Alex standing around with her bones properly placed. Use it as a reference if you get stuck somewhere. Just take into consideration that her arms and legs are bent. You WILL NOT have to rotate the bones if your model has straight arms and legs.
That’s step two! On to the worst step of them all: Step 3!

The worst of all steps, Step 3: Assigning Vertices to the Joints


This won’t be too difficult for me to explain, because I’m not going to do it very well! You have to attach the skeleton to the model by assigning vertices to each joint. There are tutorials that explain this process. Take a look at these tutorials and learn the magic of assigning vertices! You’ll be doing this like a pro in no time! Actually, it might take some time. I'm just optimistic :D

Machinima
Modeling by ISO (Video tutorials)

Step 4: Moving the Joints



Now it's the time where our character turns into a blob! Be sure to save your work to another file before doing this. You may need to go back later and adjust your vertex assignment later! There's no turning back with this after moving these bones. You've been warned!



Ever wonder what those colored lines in your working area are? That's a little place I like to call...the origin! It's DEAD center! This is going to be very important to us in this next step.

What you want to do is hide your model. Hide everything except for the joints (which I don't think you can hide anyway). This will make things much easier for you!

Click the "anim" button in the bottom right corner of the screen to put Milkshape into Animation Mode. This is CRUCIAL! If you don't do this, you're going to mess up big time! Then, select one of your joints and drag it towards the origin. Move the bone DIRECTLY ON TOP OF the origin! Check this out at all angles! This must be as close as you can possibly put it! You don't have to do it in any particular order.


Perfect!

Do that with all 16 bones. When you're done, unhide your model. It's a blob! Hooray!


PLEASE do a better job then I did moving the bones to the origin! I'm anxious to get this stupid tutorial done, so I rushed it!

Step 5: Export and Edit!



Almost done with the modeling portion!

It's time to export your model! Before you do this, you should have your textures applied to the model. I'm sure you do already though.

Go to file>>export>>Milkshape 3d ASCII. The file's name will have to be "model". Create a new folder named after your character and save it into it. Find your textures and stash them in there too!

CONGRATS! The modeling portion is over! (Unless you want to do the extra step). I know that was a pain in the ass, but it's over with! Now there's just some simple text editing and maybe more texturing!

Go to the folder where you saved your model.txt and double click it to open it up in wordpad. Scroll down until you find a section that begins with Bones: 16. You're going to have to replace that section with a section that I'll be giving you in a moment. This will ensure that the bones in your model will be at the origin where they belong!

The Section



___________________
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
___________________


Copy the above bones information (Everything INBETWEEN the lines) and go to your model file. Select all the information from the Bones:16 to the bottom of the document and paste in the above information. You can also find the bones info in a text file in the files section.

Save it and you're done with the model construction!

The Extra Step



If you don't feel confident about your vertex assignment (and you probably shouldn't), this step is for you! Instead of replacing the bones information with the stuff I gave you above, you can paste an animation file in instead. This will give you a chance to see your character dance. If something looks weird, you can refer to an old saved file and fix it, drag the bones to the origin again and go onward!

Go to your Stepmania folder (C:\Program Files\StepMania CVS\Characters) and open one of the text files there. They should be named like _DDRPC_commondance or something like that. Any one will work for you!

Make a copy of your model.txt file for this part. It will save you a bit of time later!

So now, using a copy of your model.txt file, use wordpad to get to the bones information (bones:16). Go back to your animation file and copy the contents of the entire document. It will be BIG! Go back to your copy of the model.txt, highlight all the information from Bones:16 downward and paste the new information. Save the copy and go to Milkshape!

Import the copy of your model.txt into Milkshape (File>>Import>>Milkshape 3d ASCII) to see your blob once again! Upon clicking the animation button, your model will spring to life!


Good enough for me!

The Extra Step




This is the folder for Jenny: One of the DDR Characters. Here's what everything does!

Break.bmp: The Screen that pops up during breaks in Endless mode. I could be wrong thigh...

Card.bmp: This pops up if the Stepmania skin you're using has a character select screen.

Character.ini: Not too sure about this one. I think it has to do with the special "Magic Dance" game mode.

Face.ini: This is a list of all the facial textures you might have. It's what makes the face texture animate! More on this later!

model.txt: This is the actual model. You should know this by now!

The bmp files: These files are textures for the normal body, as well as the face when it animates.

The Folders: These tell the game how your character will dance. I believe that certain characters dance differently depending on what's in the folder.


Since I'm not sure what the character.ini actually does, I'm not going to write about it.

What I reccomend doing is going to your characters folder (C:\Program Files\StepMania CVS\Characters), picking your favorite dancer, copyng the folders, the card.bmp, the break.bmp, the character.ini and the face.ini. Paste them into the folder with your model.txt. We will be editing them to our needs!

Have fun with your card.bmp and break.bmp! Make them however you want! I used a Background made by Snowball from Halflife2.net. DXander whipped up a quick card, that looks very nice.



Note
I would keep the resolution for the break at 640x480. The resolution for the card should be 100x100!


Now we have to edit the face.ini file, which goes into the next and final section!

The Final Step: Facial Animation.



When you open up the face.ini, this is what you see! (minus the arrows and everything behind them)

[AnimatedTexture] Frame0000=t0_gfac.bmp <- Default Jenny Face
Delay0000=2.00
Frame0001=t1_gfac.bmp <- Blinking Jenny Face
Delay0001=0.30
Frame0002=t0_gfac.bmp <- Default Jenny Face
Delay0002=2.00
Frame0003=t1_gfac.bmp <- Blinking Jenny Face
Delay0003=0.30
Frame0004=t0_gfac.bmp <- Default Jenny Face
Delay0004=2.00
Frame0005=t2_gfac.bmp <- Happy Jenny Face
Delay0005=2.00
Frame0006=t0_gfac.bmp <- Default Jenny Face
Delay0006=2.00
Frame0007=t1_gfac.bmp <- Blinking Jenny Face
Delay0007=0.30
Frame0008=t0_gfac.bmp <- Default Jenny Face
Delay0008=2.00
Frame0009=t3_gfac.bmp <- Angry Jenny Face
Delay0009=2.00


There are four textures in Jenny's folder: Angry, normal, blinking and happy. At certain points in the game, the face.ini file tells the game what face to put on Jenny.

If you wanted to make your character with an animated face, you could make afew extra textures of your character with his/her eyes closed, happy, or angry and just replace the names of Jenny's textures with your own.

For Example: Let's just say that my G man has textures that make him look normal, blinking, happy and angry. I would just swap them with Jenny's files in the face.ini. Just like this:
[AnimatedTexture] Frame0000=gmannormal.bmp <- Default Gman Face
Delay0000=2.00
Frame0001=gmanblink.bmp <- Blinking Gman Face
Delay0001=0.30
Frame0002=gmannormal.bmp <- Default Gman Face
Delay0002=2.00
Frame0003=gmanblink.bmp <- Blinking Gman Face
Delay0003=0.30
Frame0004=gmannormal.bmp <- Default Gman Face
Delay0004=2.00
Frame0005=gmanhappy.bmp <- Happy Gman Face
Delay0005=2.00
Frame0006=gmannormal.bmp <- Default Gman Face
Delay0006=2.00
Frame0007=gmanblink.bmp <- Blinking Gman Face
Delay0007=0.30
Frame0008=gmannormal.bmp <- Default Gman Face
Delay0008=2.00
Frame0009=gmanmad.bmp <- Angry Gman Face
Delay0009=2.00


And that's it! You can mess with the face.ini to get your facial animations looking differently if you want. I personally...don't want to. I've been writing this for a long time and I'm completely numb.


And that's it!

Now that you have all the right files, move your folder into your Characters folder (C:\Program Files\StepMania CVS\Characters) and load it up in Stepmania CVS! That's all I have to say! I'm entirely done with this tutorial!







This tutorial created by Luke de Ayora AKA LD1984. Stepmania, The DDR Characters pack, and logo are property of Stepmania.com. Gman is property of Valve Software.