UpSpring: Easy Workflow Tutorial
Posted: 06 Jun 2008, 10:36
Here is my basic tutorial about how to use UpSpring, from start to finish. This is not a complete documentation of the software's features, many of which, for various reasons, I don't use. But it will get you to the point that your model is ready to animate and will look great in Spring very quickly.
I haven't written a tutorial in forever, because I was under the impression that people were getting how to do most stuff now, but the continuing questions about UpSpring indicate that this is a program most people don't really understand very well, and our documentation about version 1.54 (Euler version) is, well, practically non-existent.
I've written this because I feel like the major modelers around here, who've been here for ages, basically have a "cult of knowledge" on this topic, so it's time to make things clear to newer people, who've probably quit trying to model for this engine in large numbers simply because there aren't good tutorials. Should have done this a year ago, honestly, very little of this has changed since 1.54 was originally released.
This tutorial is designed for all levels of user, including newbies. I think most of the non-newbies will find a few new things in here, though.
Tutorial:
***************************************************
1. Export your model from your modeling application, using the 3DS format, with all pieces named, but no hierarchy.
Do not export without naming your pieces first- if you don't know how to name your pieces, you need to read your modeling application's documentation.
Don't bother with the other formats UpSpring supports. Anybody still using OBJ is wasting lots of their time, and they'll see why, if they follow this tutorial, this is much faster than importing one piece at a time.
***************************************************
2. Click the File menu and select Import. Select the 3DS file, and then import into UpSpring, using option 2. This will bring all pieces into the model, all attached to a "dummy point" named whatever the model's name is.
***************************************************
3. Do any master rotations or full-model scaling now, using the dummy point.
***************************************************
4. Click the Mapping Tab, and load Texture1 (diffuse, teamcolor) and Texture2 (glow, reflect, 1-bit transparency).
If you do not know what Texture2 is all about, please read the documentation about the S3O format in the Wiki first, it will save you much frustration.
***************************************************
5. Save the model, to your Objects3D folder of the game you're working on. Re-open the model, to reset the dummy point's rotations.
Don't skip this step, or you may really mess up your model.
***************************************************
6. Click on the Object menu, and select Recalculate vertex normals.
***************************************************
7. Click the Objects tab. Select your pieces from the menu on the lower right (you can use the CTRL key to select multiple objects- very, very handy), and then adjust them by the amount of smoothing required.
To do this, click the Object menu button, and select Recalculate Vertex Normals, 3DO Style and the sub-menu Selected Objects. A dialog box will come up, and it expects a number (floats are allowed, but not necessary).
To correctly set the welding angles, based on the angles you wish to see welded (and therefore smoothed in Spring), you will need to use greater or lesser numbers.
Higher numbers mean more "aggressive" welding- i.e., a setting of 90 means that 90-degree angles and lower are all welded, and Spring's rounding shader will attempt to show all of those vertices as rounded, in game.
Protip: I never, ever go above 89, because you will start to see welding flaws (dark areas on the rendered model in-game) past that point. There is a real limit to how un-blocky you can make something look. If you need something to be smooth, you must spend the triangles.
Do this entire process with lighting on (click the 3D button, in the upper-left corner of the 3D POV, and it will show you a sub-menu where you can turn on lighting).
You will not see the welding flaws or really see how well your smoothing is working unless you have lighting.
***************************************************
8. Voila, you now have a properly-smoothed model. Now you're ready to make your hierarchy. Make it now, before moving any origins, by using the Cut button to cut pieces you want to make children of other pieces. Select the piece you want to be the parent (higher in the hierarchy- i.e., a person's foot is the child of the shin- the shin is the parent of the foot- get it?) and click the Paste button to build the hierarchy.
If you're me, after this step you'll want to save, then re-open the model again, just to be sure everything is still OK.
***************************************************
9. Once your hierarchy is built, move the origins. I usually just checkmark the "Only move origin" checkmark, which is located below the XYZ Position / Rotation section on the Objects tab, and do it one axis at a time, using the up and down arrow keys- right/left arrow selects the level of precision.
But you can also do it by hand, using the Select Origin Move Tool, which is the red, cross-shaped icon on the icon panel to your left. This is good for quick stuff that doesn't need to be very precise, but I strongly prefer doing it the other way- rigging a model is something you should only have to do once, why not take a few extra minutes and get it right the first time?
***************************************************
10. Save your model, and re-open it, and make sure that all origins are still correct (it's fairly easy to forget to hit the Enter key, to validate a change).
Now you have a properly-assembled, scaled and smoothed model. You're not done yet, but you're getting close.
***************************************************
11. If you need to merge any parts together, use the M key to Merge any parts that you've kept separated up until now. Remember, Merge works hierarchically- i.e., if the ankle is connected to the knee, and the knee is connected to the thigh, and you select the knee and hit the M key, the knee is now gone, and the ankle is now attached to the thigh. So do this part carefully, and remember- UpSpring supports almost unlimited Undo (ctrl-z).
***************************************************
12. Add your point objects, for FX generation, by selecting the piece you want to be the parent from the Objects list, and then clicking the Add Empty button.
***************************************************
13. Scale your hitsphere, if you're using one, on the Model tab. This is called the "radius", and it must be at least 8 units in size to work properly. The next version of Spring allows for cuboids, cylinders, and spheroid hit-detectors as well as spheres, but that goes outside the scope of this tutorial, and you still must set up a radius, it's used for a number of things.
While you're on the Model tab, adjust the model height to be as high as the highest point on the model, and move the center (model center, XYZ, on the Model tab) to the correct location. It is very handy to turn on the option Draw Model Radius + height, which can be found by clicking on any of the viewport buttons, located in the upper-left corner of the viewports.
***************************************************
14. Unless you need it for some reason, you can safely remove the base dummy point now. Use Swap to exchange it with the real root of your model (Spring does not require a "base" piece, in case you didn't know already), then simply use Cut to remove it.
Then, assuming you didn't wreck your hierarchies or anything, it's time to save the model again, re-open it for one last check... and give yourself a big pat on the back- you're done.
You should have a scaled, properly-smoothed, adjusted, origin-set, skinned and completely rigged model at this point.
I know it sounds like a lot of stuff to do, at first, but most of it's trivial, once you know where the buttons are, etc. Note how I use practically nothing else, either- you simply don't need to, unless you're doing something unusual, or working with 3DOs.
Hope this helps the newbies and the non-newbies using a slower workflow. This is my process every time, and I get a model rigged in about 30 minutes, on average.
I haven't written a tutorial in forever, because I was under the impression that people were getting how to do most stuff now, but the continuing questions about UpSpring indicate that this is a program most people don't really understand very well, and our documentation about version 1.54 (Euler version) is, well, practically non-existent.
I've written this because I feel like the major modelers around here, who've been here for ages, basically have a "cult of knowledge" on this topic, so it's time to make things clear to newer people, who've probably quit trying to model for this engine in large numbers simply because there aren't good tutorials. Should have done this a year ago, honestly, very little of this has changed since 1.54 was originally released.
This tutorial is designed for all levels of user, including newbies. I think most of the non-newbies will find a few new things in here, though.
Tutorial:
***************************************************
1. Export your model from your modeling application, using the 3DS format, with all pieces named, but no hierarchy.
Do not export without naming your pieces first- if you don't know how to name your pieces, you need to read your modeling application's documentation.
Don't bother with the other formats UpSpring supports. Anybody still using OBJ is wasting lots of their time, and they'll see why, if they follow this tutorial, this is much faster than importing one piece at a time.
***************************************************
2. Click the File menu and select Import. Select the 3DS file, and then import into UpSpring, using option 2. This will bring all pieces into the model, all attached to a "dummy point" named whatever the model's name is.
***************************************************
3. Do any master rotations or full-model scaling now, using the dummy point.
***************************************************
4. Click the Mapping Tab, and load Texture1 (diffuse, teamcolor) and Texture2 (glow, reflect, 1-bit transparency).
If you do not know what Texture2 is all about, please read the documentation about the S3O format in the Wiki first, it will save you much frustration.
***************************************************
5. Save the model, to your Objects3D folder of the game you're working on. Re-open the model, to reset the dummy point's rotations.
Don't skip this step, or you may really mess up your model.
***************************************************
6. Click on the Object menu, and select Recalculate vertex normals.
***************************************************
7. Click the Objects tab. Select your pieces from the menu on the lower right (you can use the CTRL key to select multiple objects- very, very handy), and then adjust them by the amount of smoothing required.
To do this, click the Object menu button, and select Recalculate Vertex Normals, 3DO Style and the sub-menu Selected Objects. A dialog box will come up, and it expects a number (floats are allowed, but not necessary).
To correctly set the welding angles, based on the angles you wish to see welded (and therefore smoothed in Spring), you will need to use greater or lesser numbers.
Higher numbers mean more "aggressive" welding- i.e., a setting of 90 means that 90-degree angles and lower are all welded, and Spring's rounding shader will attempt to show all of those vertices as rounded, in game.
Protip: I never, ever go above 89, because you will start to see welding flaws (dark areas on the rendered model in-game) past that point. There is a real limit to how un-blocky you can make something look. If you need something to be smooth, you must spend the triangles.
Do this entire process with lighting on (click the 3D button, in the upper-left corner of the 3D POV, and it will show you a sub-menu where you can turn on lighting).
You will not see the welding flaws or really see how well your smoothing is working unless you have lighting.
***************************************************
8. Voila, you now have a properly-smoothed model. Now you're ready to make your hierarchy. Make it now, before moving any origins, by using the Cut button to cut pieces you want to make children of other pieces. Select the piece you want to be the parent (higher in the hierarchy- i.e., a person's foot is the child of the shin- the shin is the parent of the foot- get it?) and click the Paste button to build the hierarchy.
If you're me, after this step you'll want to save, then re-open the model again, just to be sure everything is still OK.
***************************************************
9. Once your hierarchy is built, move the origins. I usually just checkmark the "Only move origin" checkmark, which is located below the XYZ Position / Rotation section on the Objects tab, and do it one axis at a time, using the up and down arrow keys- right/left arrow selects the level of precision.
But you can also do it by hand, using the Select Origin Move Tool, which is the red, cross-shaped icon on the icon panel to your left. This is good for quick stuff that doesn't need to be very precise, but I strongly prefer doing it the other way- rigging a model is something you should only have to do once, why not take a few extra minutes and get it right the first time?
***************************************************
10. Save your model, and re-open it, and make sure that all origins are still correct (it's fairly easy to forget to hit the Enter key, to validate a change).
Now you have a properly-assembled, scaled and smoothed model. You're not done yet, but you're getting close.
***************************************************
11. If you need to merge any parts together, use the M key to Merge any parts that you've kept separated up until now. Remember, Merge works hierarchically- i.e., if the ankle is connected to the knee, and the knee is connected to the thigh, and you select the knee and hit the M key, the knee is now gone, and the ankle is now attached to the thigh. So do this part carefully, and remember- UpSpring supports almost unlimited Undo (ctrl-z).
***************************************************
12. Add your point objects, for FX generation, by selecting the piece you want to be the parent from the Objects list, and then clicking the Add Empty button.
***************************************************
13. Scale your hitsphere, if you're using one, on the Model tab. This is called the "radius", and it must be at least 8 units in size to work properly. The next version of Spring allows for cuboids, cylinders, and spheroid hit-detectors as well as spheres, but that goes outside the scope of this tutorial, and you still must set up a radius, it's used for a number of things.
While you're on the Model tab, adjust the model height to be as high as the highest point on the model, and move the center (model center, XYZ, on the Model tab) to the correct location. It is very handy to turn on the option Draw Model Radius + height, which can be found by clicking on any of the viewport buttons, located in the upper-left corner of the viewports.
***************************************************
14. Unless you need it for some reason, you can safely remove the base dummy point now. Use Swap to exchange it with the real root of your model (Spring does not require a "base" piece, in case you didn't know already), then simply use Cut to remove it.
Then, assuming you didn't wreck your hierarchies or anything, it's time to save the model again, re-open it for one last check... and give yourself a big pat on the back- you're done.
You should have a scaled, properly-smoothed, adjusted, origin-set, skinned and completely rigged model at this point.
I know it sounds like a lot of stuff to do, at first, but most of it's trivial, once you know where the buttons are, etc. Note how I use practically nothing else, either- you simply don't need to, unless you're doing something unusual, or working with 3DOs.
Hope this helps the newbies and the non-newbies using a slower workflow. This is my process every time, and I get a model rigged in about 30 minutes, on average.