Willie the Choo-Choo
Modeling a Toy Train In Softimage 3D

 

 

 

 

By Paulo de Andrade

Editor's Note: This is Part One of a two-part tutorial, focusing on the modeling process. In Part Two, we will take the finished model and make an animation out of it.

I see lots of tutorials on how to create intricate special effects and complex creatures. I have even written a few of those myself. But I hardly ever see tutorials on the creation of simple, cartoonish characters. And since kids are one of the broadest markets available, knowing how to create 3D for kids is a very marketable skill. After all, could it be just a coincidence that the top grossing all-time 3D motion pictures such as Toy Story, Antz and Bug's Life are aimed at kids? For this tutorial I decided to create a very simple toy train. Furthermore, I decided to ignore the tendency to use complex tools such as NURBS and concentrate on Softimage's often underused polygon tools. We'll start with very simple primitives and work on them to create our little train. Softimage has a polygon mode that is great for this type of work. The beauty of it is that in very little time we can create fairly complex shapes.

To start, let's go to Get>Primitive>Cyllinder and, leaving all the other values at default, let's increase the longitude step to 24. This will give us a rounder shape, good enough for a toy train. If you want higher model resolution, just increase this number. Rotate the cylinder in X by 90 degrees and press SHIFT + F to fill all four views with the cylinder. Next, hold down the "T" key on your keyboard (shortcut for Tag) while pressing the left mouse button and drag a rectangle around the inner circle visible in the front view. As a result, the points that form the inner circle should appear tagged (red points). You'll notice on the top view that the pints in the back of the cylinder are also tagged. To untag them hold down the "T" key on your keyboard, go to the top view and, while pressing the middle mouse button, drag a rectangle around the tagged points. On the lower right corner of the interface, select the POL button to go into polygon mode. Then, In the MODEL module, select Polygon>Select by Tag Vertex. The resulting screen should look like this, with the selected polygon now pink:

We are now going to create the headlight/nose by copying polygons. Hold down the "D" key (shortcut for Duplicate) and, in the front view, click inside the pink circle. Go to the top view and translate the polygon in Z until it looks like the screen below.

Repeat the polygon duplication above and scale the new polygon down in UNI mode until you see a rim around it. Duplicate the polygon again and translate it back in Z. Untag the present points and tag the points at the very front of the headlight. In TAG mode, rotate these points down in X then translate them up in Y again using the right view so that the top of the headlight becomes perfectly horizontal. Make all necessary adjustments, including translating the tagged points in Z, until your object looks like the one below.

Go into object mode by clicking on the OBJ button at the lower right part of the interface and, in the Matter module, assign a material to the object. In my case I used the sky blue material that ships with Softimage. Switch to polygon mode and select Polygon>Assign New Material. Use a yellow material. You'll now notice that we have two materials on the same object, one for the train body and another for the light. Now let's create the train cabin. For this we'll get a primitive cube with a length of 3. Translate the cube in Z until its front is aligned to the cylinder's rear and then translate it in Y until the bottoms are aligned. Tag the top part of the cube go into POL mode and select the tagged polygon. Duplicate it and scale it in UNI mode so that it overlaps the top of the cube slightly. Duplicate it again and translate it in Y. You should now have a roof. Get into TAG mode, untag the rear vertices and translate the front ones forward in Z a little. Your object should look like the screen below.

In OBJ mode, assign a material to the cube. I'll use a deep orange material to start. Get beck into POL mode, tag all the roof's vertices and assign a new material to them. I chose Indian red, so that the roof looks more distinct. Now let's create the wheels. Get a new cylinder with a radius of 1.2, height of 0.3, longitude step of 24 and latitude step of 1. Rotate the wheel by 90 degrees in Z and translate it so that it is properly positioned at one side of the cabin. Tag the inner circle of the wheel and, in TAG mode, scale it up so that you have what looks like a rim. You'll notice that as you scaled the vertices up, they also moved away from the wheel. That actually works to our advantage, and we'll fix it now. Using the front view, untag the inner vertices. Translate the points in X towards the wheel a bit, still leaving them sticking out a bit. Get into POL mode and select the polygon by tagged vertices. Duplicate>Immediate and translate the new polygon in X until it sits inside the wheel a little bit. Unselect all polygons and repeat the above procedures with the by tagging the vertices on the left part of the wheel and positioning the resulting polygon so that it matches the previous one. Your wheel should look something like this:

Untag the points on the wheel. To place a copy of this wheel at the opposite side of the cabin, get into OBJ mode and select Model > Effects > Symmetry. Select YZ plane and set Y to -1. To create the front wheels, duplicate the first wheel twice, scale the copies down and place them at the front of the train. Use the symmetry effect to create copies on the opposite side. Since this is just a toy train, we are not going to spend a lot of time in realistic details. But we don't want those front wheels just floating in space, either. To create the axles, get a primitive cylinder with a radius of 0.1 and a height of 2. Rotate it in Z by 90 degrees, position it at the center of the font wheels and create a duplicate for the middle wheels. Next get a primitive cube 3.5 units in size, scale and translate it so that it is positioned underneath the very first cylinder we have created. With the cube still selected, apply Effect > Rounding with a value of 0.1. Then go to Info > Selection and select Faceted. To give it the same material as our train, change the lower right view to Schematic and get into Matter mode. In Matter, select Mat_Oper > Associate and click on the Blue material. Your train should now look similar to the one below.

There are several ways to create the windows. Since this is a toy train, we'll pretend that they are painted on by selecting tagged polygons and assigning new materials to them. First, select the cabin and, in Matter, use Polygon > Unselect All. Next, apply the Model > Effect > Subdivision command with the default values (4, 4, 4). Tag the points where you want your windows to be and select the polygons by tagged vertices. Assigned a new material to these polygons. One little tip: If you tag the points around the new windows and get into TAG mode, you can change the size and shape of these windows by using simple commands such as Scale. If you don't want the extra polygons created by the subdivision you can return to a simpler geometry by using the command Model > Effect > Cleanup with the "Merge Polygons If Angle Smaller Than" option selected. In my case, the polygon count for the cabin went down from 190 to 14. To make the chimney we'll use another cylinder, this time with a radius of 0.4, height of 2, longitude step of 5 and latitude step of 25. Translate the cylinder to the position where the chimney should be. We'll now use a slightly different technique to give it the proper shape. You'll notice that the cylinder is divided into 5 vertical slices by 4 rows if points. Tag these four rows using the front view and, In TAG mode, Translate them up to match the image below.

Untag all the points and tag just the two top rows, scaling them up in UNI mode by about 50%. Untag everything and tag the third row from the top. Translate it up so that it almost touches the second row and scale it up to that you end up with a rim formed by the two top rows. Tag just the fourth row and scale it up to be slightly larger then the two top rows. Fine-tune the position of the rows using tags so that your finished chimney resembles the image below.

To finish our chimney, go to Info > Selection and change the Automatic Discontinuity angle to 45. If you wish to make the chimney hollow you can use the polygon duplication technique we applied earlier to the headlight. For the cowcatcher I used a primitive cone set to a Longitude step of 4. I then rotated it by 90 degrees on X and 45 degrees in Y, scaled it properly and positioned it at the front of the train. By getting into TAG mode and tagging the right points I aligned the rear of the cone to the inner bevel of the lower cube (the one between the wheels). I then tagged and lowered the lower front vertices in the right view to create a level bottom. When finished it should look like the screen capture below.

We could stop modeling our little train right here, but we can turn it into a cute character just by adding a few features. Since we can use the headlight as a nose, we'll add eyes with eyelids that we can manipulate for expressions. For the eyes we'll use a primitive sphere with a radius of 0.3 and U/V steps of 14. To make it easier to create the eyelid we'll leave the sphere at its origin for a moment and hide everything else by using the command Display > Hide > Unselected. Go to the Model section, magnify the front view and fill it with the sphere. Next go to Draw > Curve > Bezier and draw a curve following the circumference of the eye, matching the image below. You use the "M" swift key to fine-tune the position of the points at any time.

Now we are ready to finish the eyelid by applying the command Surface > Revolution with the Axis of Revolution set to Y, 360 degree angle and a subdivision of 24. Make the resulting revolution a child of the sphere by using the Parent command. Rotate the eyelid in X by -30. For the pupil we'll use a smaller sphere, with a radius of 0.08, translated to the front of the eye globe so that about a third of it sticks out. Let's also make the pupil a child of the globe. Add the proper materials to each individual part of the eye and unhide the rest of the train using the command Display > Hide > Unhide All. Now let's translate the eye hierarchy so that it matches the screen capture below.

Use the command Effect > Symmetry to the eye hierarchy to create the second eye. For the mouth we'll use a very simple object that will appear to have been painted on, yet it can be easily animated. Using the front view and the train's "face" as a guide, draw a Bezier curve in the shape of a mouth. Close the curve and apply the command Draw > Convert to Face. Translate this object to the front of the train, slowly, until it appears in front of the engine. Keep it as close to the engine as possible without it disappearing. So far this is the only object in our train that is not a polygon. You can convert it to a polygon by using the command Model > Effect > Convert and then selecting polygon. But if you wish to animate the mouth you can alter the shape of this face to match the desired expressions and phonemes and create a polygon for each. You can then morph between the resulting polygons to create the animation. Attach materials and textures to our little toy train to suit your taste and you'll be ready to render it. You can create the cars by utilizing the same techniques we have discussed in this tutorial. The cars, of course, will be a lot easier to make than the locomotive. In the next installment we'll set up Willie, the Choo Choo for animation.

Continued on Part 2

Paulo de Andrade has been animating in front of a computer for over 16 years. As a result of the exposure to such large amounts of monitor radiation he has lost most of his hair and actually glows in the dark, which forces his wife to sleep wearing sunglasses. Paulo can be reached at pdeandrade@digitalmedianet.com.