World of Trainz Home Page Shop at World of Trainz Downloads Upcoming Projects Tutorials Forum About Links  
 
 

3D Studio Max Rolling Stock Tutorial

In this tutorial you will learn how to create a box and texture it, add the required attachment points, export it and then create the config.txt file. The methods used to create the flatcar can be adapted to any Trainz rolling stock item.

Note. To complete this tutorial you will need to download the sample texture here.

3DStudio Max will be referred to as 3ds.

 

To complete these tutorials with the dimensions listed herein you will need the following setup
1. Open the "Units Setup.." dialog from the "Customize" menu and select the "System Units Setup" button. In the "System Units Scale", use the system unit scale of 1.0 units = 1m
2. In the "Units Setup set "Display Units Scale" to Metric Meters.

1. Create a box.

The first thing you need to do is create a box. At this point the size of the box does not matter.

 

Figure 1 Box tool

 

Figure 2 Box

 

2. Resize the box

Once you have created the box we need to resize it. You will need to select the box and then switch to the "Modify" panel.

Figure 3 Modify menu with the box selected

 

For the box you will need to enter the following dimensions

 

Parameter Box1(Main Body)
Length 12
Width 3
Height 0.2
Length Segments 1
Width Segments 1
Height Segments 1

 

Figure 4 Results after resizing

 

 

4. Converting to mesh (Optional)

The next step is to convert the body to an editable mesh object we do this by selecting the object and right clicking which then opens a context menu as shown in figure 5. Select the "Convert to Editable Mesh" entry. This is not required to complete the tutorial but if the box requires further editing or reshaping then you will need to convert the object to an editable mesh.

 

Figure 5 Converting to Editable Mesh

 

5. Relocating

Select the main body (Box1) and then select the move tool from the main tool button menu and type the following dimensions into the co-ordinate boxes. These boxes are located at the bottom of the 3d Studio Max window. You can also right click the "Move tool" and type them in the "Absolute World" section of the "Transform Type-in" window.

 
X
Y
Z
Box1
0
0
1

 

Figure 6 Move tool

 

Figure 7 Co-ordinate boxes

6.Applying Textures

We can now apply the textures to the main body. To do this we need to open the "Material Editor". Select the Material editor icon and the "Material Editor" will appear. Select the first globe and then expand the "Maps" menu. Find the entry "Diffuse Color" click on the corresponding "None" item. A new window will open called the "Material/Map Browser". You will see a list of items with a green parallelogram icon  Double click the "Bitmap" entry. This will open a "Select Bitmap Image File" dialog box. You will need to find and select the "Tutorial.tga" file. (You may need to change the file type to view tga files)

 

Figure 8 Material Editor Icon

 

Figure 9 Material Editor showing the globes at the top

 

When you have completed the texture loading select the first globe and drag it to the main body. In order for the textures to show up in the window select the blue and white cube in the "Material Editor".

 

7. Adding an "Unwrap UVW" modifier

Now that we have applied the texture to the main body we need to map the texture to the correct location. To do this we need to add an "Unwrap UVW" modifier to the main body. To add the modifier you need to select the main body and then go to the modify list in the modify menu. You may have to scroll down to find the "Unwrap UVW" modifier

 

Figure 10 Applying the Unwrap UVW modifier

 

Figure 11 Effect after adding the Unwrap UVW modifier

 

After you have applied the modifier expand the "Unwrap UVW" in the "Modifier List" and select the "Select Face" entry. Select the top of the main body and click on "Planar Map" and then click on "Edit" in the "Parameters" section of the "Unwrap UVW". A new window will appear called the "Edit UVW"

 

Figure 12 Select face

 

Figure 13 Face selected ready for mapping.

 

Now that we have a face selected and the "Edit UVW" window open you will see the screen in figure 14. If the texture in the background is wrong then you will need to change the map. To do this select the correct map from the drop down box on the top tool button bar.

 

Figure 14 Face map ready for aligning

 

To make it easier to align the textures to the main frame correctly we need to change the size of the map. To do this select "Show Options" in the bottom right of the Mapping window. Then under "Bitmap Options" select the "Use Custom Bitmap Size" option and change the width and height to the size of the file which in this case is 256 x 256. Make sure the "Use Custom Bitmap Size" checkbox is checked.

 

Figure 15 Using custom map size.

 

While the top face of the main body is still selected we need to normalize the map. To do this select the "Normal Mapping..." from the "Mapping" menu. When the "Normal Mapping" box appears select the "Top/Bottom Mapping" from the drop down box and click OK. This will allow us to detach the top face of the main body from the rest of the mapping.

 

Figure 16 Normal mapping from the Mapping menu

 

Figure 17 Normal mapping dialog box.

 

Figure 18 Freeform Mode.

 

Before proceeding any further we need to make sure the "Freeform Mode" icon is selected. Place the cursor over the selected map and move it to one side. Then select the rest of the mapping and move it to one side. You can also use the "Filter Selected Faces" icon to hide the other mapping but I prefer to leave all maps visible that way you don't apply the same texture area to two different mesh areas. Now we need to adjust the mapping to suit the texture. To resize the map place the cursor over the corner of the map and a triangle shaped cursor should appear. You can now drag the corner of the map down or up to the correct size. Place the texture as shown in figure 20. Continue selecting faces and moving and or resizing maps until you are happy with the locations and you have a result similar to figure 21. You will need to repeat this for each side.

NOTE The texture map outlines may be a different color in your version of 3ds

 

Figure 19 Filter selected faces.

 

Figure 20 Adjusting and relocating maps

 

Figure 21 Final mapping results.

 

8. Alternative mapping method

There is an alternative method that is available in 3ds and that is to select the entire main body and use the "Flatten Mapping" option from the menu. This will separate each face and allow you to resize and relocate them without having to use the "Normal Mapping" tool for each face. Depending on the type and shape of the object will decide the tool you use for the separation of maps. Trial and error is the only way to find the best method in some circumstances. Control-Z will undo any changes you have made that you are not happy with.

 

Figure 22 Alternative Flatten Mapping tool

 

9. Adding the attachment points

Now that the body of the flatcar is created and textured we need to add the attachment points for the bogeys and to show Trainz where each end of the flatcar is. When adding the attachment points it is recommended to switch to the "Top" view. To add a "Point" item in 3ds you need to go to the "Create" tab and then to the "Helpers" tab. You will need to add four attachment points. Name them and move them as follows

Name X Y Z
a.limback 0 6.5 0.89
a.bog1 0 4.5 0.45
a.bog0 0 -4.5 0.45
a.limfront 0 -6.5 0.89

The naming of these attachment points is critical and all of them must be included on the model.

 

Figure 23 Top view

 

Figure 24 Point menu item

 

Figure 25 Finished flatcar with attachment points

 

 

10. Exporting

Once you have completed the mesh then we need to export it to the Trainz format. Deselect everything and select "Export" from the file menu. Type in a name with the .im extension. Then select the "Trainz format [*.IM,*.KIN,*.PM]" entry from the file type drop box and click "Save".

 

Figure 26 File name dialog box

 

11. Config.txt creation

Once you have the flatcar exported and the directory created in the custom folder* we need to create the config.txt file and enter the following text

 

 

Config.txt entry Description
kuid <KUID2:86105:15000:0> This is the kuid number. Replace the "86105" with your user number and replace the15000 with a suitable number for your item. The recommended range for a rolling stock freight car is 15000 to 19999. The last number represent the version number for the item.
name Flatcar Tutorial This is the name that will show up in Driver. Give the flatcar a meaningful title but keep it short as possible. This should be kept the same as the "Username"
company Santa Fe This is a company name for the item.
origin USA The original country the rolling stock was used or created in.
bogey <KUID:86105:50001> This is the kuid number of the bogey file that will be used on the flatcar. I have used one of my own bogey numbers you can change the number to the bogey you want to use.
kuid-table {
0 <KUID:86105:50001>
}
This tells the download station what items are required to use the flatcar.
engine 0 This tells Trainz that the item is rolling stock and not a locomotive.
mass 50000 This is the mass of the flatcar in kgs
kind traincar This tells Trainz that the kind is a Traincar and not a scenery or track item.
category-class XFM This will allow the content to be sorted by the category class. XFM is a general service flatcar.
category-region-0 US This is the region the flatcar was used in. If there is more than one country required then you can add category-region-1 on the next line.
category-era-0 2000 This is the years that the item is used in. As with the region category you can have more than one.
enginespec <KUID:-1:42004201> This is a dummy engine spec file. This file is included with Trainz.
description "Tutorial on how to create a simple Flatcar" This is a description about the flatcar. It can be brief or very detailed.
asset-filename Tutorial This is the folder that the meshes and the textures are contained in.
username Flatcar Tutorial This should be the same as the "Name" category.

mesh-table
{
default
{
mesh Tutorial_body/Tutorial_body.lm
auto-create 1
}
shadow
{
mesh Tutorial_shadow/Tutorial_shadow.im
}
}

This is the mesh table. In this table you can reference items such as animation and other attachments. Animated items can also be controlled via the use of a script.

You will notice that the main body mesh does not point to the actual im mesh but to a lm file. This file is the level of detail file (see below).

 

12. Tutorial.lm.txt creation

Now that you have created a config file for the flatcar you will now need to create a level of detail file for the flatcar.

 

Version 1.0  
offset = 0.01; This prevents popping between two level of details repeatedly
calcPoint = center; The position where the level of detail is calculated from.
multiplier = 1.0; Level of detail multiplier.
animationCutOff = 0.00; This the level where the animation stops 1.00 = full width, 0.5 = half screen width and 0.00 = never stop animation.
renderCutOff = 0.00; The level (to screen width) where rendering stops.
attachmentCutOff = 0.06; The level where :Cull flagged attachments are dropped. To make use of this feature the attachment points must be renamed with the :Cull at the end of the name ie. a.bog0:Cull

mesh ("0.07")
{
name="Tutorial_body_lowest.im";
}

mesh ("0.30")
{
name="Tutorial_body_low.im";
}

mesh ("0.52")
{
name="Tutorial_body_med.im";
}

mesh ("1.0")
{
name="Tutorial_body.im";
}

This is the table that tells TRS2004 to display different meshes at different screen sizes. For example the first entry will display the lowest detail mesh when the loco requires 0.07 of the screen. For this tutorial you will only need the last entry. But when you are making a complex object such as a locomotive then you will need all the files which are the same locomotive at varying degrees of detail and texture size. For example with the SD70MAC the textures for the original are 1024 x 1024 and the polycount is around the 22000 mark but for the lowest detail mesh the texture size is dropped to 128 x 128 and the polycount is 8000.

mesh ("1.0")
{
name="Tutorial_body.im";
}

 

The next step is to see if the flatcar shows up in Trainz. If you have created the folders correctly and entered the correct entries into the config.txt file and the level of detail file then the flatcar should show up in driver.

 

NOTE: If you are copying and pasting from this tutorial then please make sure the quotes are correctly formatted.

 

*See the Rolling Stock File Folder Tutorial

 

Was this tutorial helpful? Not enough or too much detail? Points not explained properly? Suggest any improvements? Please let me know what you think here.

Download this tutorial here as a PDF document.

 

HOME

| DOWNLOADS | UPCOMING PROJECTS | FEEDBACK | TUTORIALS | 3DS, GMAX TIPS | ABOUT | FORUM | SOFTWARE | LINKS

Copyright © 2004 P. Campbell. All rights reserved.

Revised: September 23, 2004
Site questions? webmaster