Modeling with 3D Editor
This is part of the Custom Track tutorial.
Using a 3D Modeling Program
If you have never made a 3D model before, it is recommended to use Google SketchUp 8, which is free and easy to learn to use.
You'll need the following downloads if you don't already have them:
- Google SketchUp: Google SketchUp 8 Download
- Obj exporter in the Plugins folder of SketchUp: OBJ Exporter download. The exporter included with Sketchup Pro is not recommended.
If you have never used GSU (Google SketchUp) before, you should watch and follow along with some of the video tutorials found here: Google SketchUp Video Tutorials. It is recommended that you complete the basic tutorials for new users before proceeding; explaining the basic terms and techniques covered by the GSU tutorials is beyond the scope of this article.
Creating Your Track in SketchUp
Suggestions and Guidelines
There are some important guidelines you should follow for the model to be Mario Kart Wii compatible.
- It is highly recommended to use the Simple Meters template. This is because 1 meter = 1 unit in Mario Kart Wii and it is easy to make accurate measurements using the tape measure tool in this template. If choose to use English measurements for some reason, 1 meter is equal to 3.2808399 feet.
- An ideal road should be about 4500m (15,000') across. This is the width of most roads in custom tracks. Narrow sections shouldn't be much less than 1500m (5,000') across. Avoid making long stretches of narrow roads without any wide sections; this can lead to problems when placing respawn points for when players fall off the track. Respawn points need to be placed on wide sections of track.
- If your entire model is too small or large you can use the scale tool to change its size. First select the entire track, then choose Scale from the Tools Menu.
- Boost pads can be easily made by drawing flat shapes on your track and applying a different texture to the shapes.
- There are two options for creating trick ramps: You can model it in your level or you can place an object like Mdush (the small trick ramp in Mario Circuit and Moo Moo Meadows) after importing. To make your own, draw a triangle with a back between 200 and 500m vertically, and 1000 to 2000m from the back to front. Use the pull tool to create the width. The width can be as much as the width of the entire road, or as little as 1000m. On your collision model, draw a line on the drivable surface dividing the bottom 25-35% from the top. The upper part will have a fast trick surface, the bottom will have a sticky road.
- As a rule of thumb, jumps from trick ramps across gaps should be about 5000m to allow jumping with out doing a trick in 50CC mode. This assumes that both platforms are the same height. The angle of the surface on the trick ramp will influence the distance karts travel.
- The whole drivable road must be above the red and green axis in SketchUp. Mario Kart Wii enforces a fall boundary below these axis even if it is not in the course.kcl file. If you were to build a road on or below these axis you will respawn (be picked up by Lakitu) over and over again.
- Lines in SketchUp will not be imported or visible in Mario Kart Wii; only faces appear.
- The OBJ exporter only exports the front (white) faces of the model. As you work on your model, make sure the white faces are pointing in the direction you want to see them. If they aren't, right click on them and click Reverse Faces. Of course, if the faces are textured you cannot see which way they are facing, so click Entity Info to check which side(s) are textured, or go to View -> Face Style -> Monochrome which disable the view of textures, you can always put texture view back on. If you want a face to be visible from both sides, you will have to add depth to it.
- It's a good idea to compare your track's scale to other custom tracks, especially if this is your first track. Many custom track models are available to download from Google's 3D Warehouse. When using these tracks as a guide for making your model, be aware that some of them were made to use an older version of the OBJ Exporter which required back (blue) faces to face forward.
- See the Model Database for a list of props like buildings, signs, and trees that can be immediately added to your level. Additionally, many other SketchUp components can be found on the 3D Warehouse, but may require rescaling and editing to work properly in your level.
Texturing and Optimizing your Model
- To texture your model, you can use the File > Import menu to import your own textures or use textures from SketchUp's built-in library. Many of SketchUp's textures are in very low resolutions or have non-standard dimensions so it is recommended to import your own. SketchUp can work with non-standard texture sizes, but these textures will appear glitchy in-game, so be sure that the dimensions of your textures are in powers of 2 (64*128, 16*16, 256*512, etc.) If you're interested in using some of the original textures from the game, they can be exported from an SZS using SZS Explorer.
- Textures can be positioned by right clicking any surface (Texture > Position.) When positioning textures, it is best to only use the red (move) pin. Use the use the green (rotate, scale, move) pin with caution; it can cause textures to be duplicated as 'distorted' textures when exported, bloating the size of your model, potentially causing memory issues if many are created. Do not use the blue and yellow pins. This is because the OBJ exporter is not compatible with SketchUp's method of skewing and distorting textures; most of the positioning information is discarded when exporting.
- Moiré patterns can occur when textures are under scaled, especially realistic textures. Many of SketchUp's built-in textures will exhibit this effect both in-game and while modeling, which is another reason to avoid them.
- You can easily scale all instances of a texture in your level. Open the Materials Browser (Windows > Materials), click on the house icon to show textures that are in use. click on a material, then click on the edit tab. The dimensions of the texture can be altered there.
- Do not use solid colors unless they are an actual image file; they will all be assigned a black texture when exported, and appear black in-game. You can check if you are using an image file or not in the edit tab of the Materials Browser. The Use texture image box will not be checked when using solid colors.
- To fix surfaces that flicker between two different textures, right click several adjacent surfaces and use the 'Intersect Faces' command. If one of the surfaces is part of a component, you will need to explode it (also found on the right click menu.) Some surfaces can flicker in-game when viewed from a distance, especially when viewing replay cameras, but look fine up-close. This happens when one surface is partially rendered behind another nearby surface. This can often be fixed by deleting unseen (but still rendered) faces in your model. You can right click any face and click erase. To help find these faces, you can press k in SketchUp to toggle on Back Edges view or choose Face Style > X-ray from the View menu.
- You will usually need to make a separate collision model. This is just a slightly simplified version of your level; apply different textures to areas you want to have different properties (boosts, off-road, walls, out of bounds, etc.)
- The OBJ file format does not support many of SketchUp's features such as camera animation, fog, shadows, and "photo" textures. These will not show up within Mario Kart Wii as they are controlled differently in-game.
Exporting Your Model from SketchUp
After your model is done and all textures are placed you can export your model with the OBJ exporter. The OBJ exporter is found under the File menu (not the Plugins menu.) It exports the whole model and textures to an OBJ file, and converts the textures to PNG.
Importing Your Model
Open the CTools Pack's BRRES Editor and click File-->New. The click File-->Import-->Wavefront OBJ. Use the '...' button next to the file path to open the OBJ model file.
If there is a problem with the OBJ file, a message should appear explaining what is wrong. If it is to do with materials, you can disable them using the Load Materials checkbox - but you'll have to import each texture manually later on. (the texture mapping goes OK, just the actual texture goes wrong) This should not happen if you use Google SketchUp and the plugin above. If it does, please send the OBJ file to Chadderz using Mediafire or post it on the Suggestions For Chadderz thread on the Mario Kart Workshop. This is for debugging purposes as CTools is still in development. Also, be careful not to flip through textures too fast with the arrow keys as this may also cause a crash.
If everything worked, more options should come available. If you are making a course model, be sure to check the Course Model box. DO NOT import map models here as the positioning will be glitchy (Chadderz is working on it). Normally you can leave all of the other settings alone. If any face(s) do not appear in game, you will need to reverse it in SketchUp so that the white face points in the direction that you want to see it from.
If your model is too big or small, use the scale feature to increase or decrease it's size. Typically a road in Mario Kart Wii is about 15000 feet across.
If your model appears rotated, or lying on its side, use the swap Y and Z check box to correct this problem. If you use SketchUp this will not happen, but any programs that use the Z axis for vertical will require this box to be checked.
After the OBJ model is imported, save the file as/over "course_model.brres" inside the SZS. If it is named anything else it will not appear in-game.
Textures get flipped upside down by the OBJ exporter. This doesn't really matter on a lot of simple tiling textures, but if your texture has printed text, complex patterns, or is vertically oriented, it will be very noticeable in-game. A good solution is to just work with your textures normally in SketchUp. When you use the OBJ exporter it generates a MTL file (which can be edited with notepad) and a folder full of PNG textures. Open all the textures you need to fix, flip them with an image editing program, and save them with a different name, add 'flipped' for example. Then open the MTL file and change the entries for all the textures you flipped to their new names. Once you import your OBJ into the BRRES editor, everything thing should be correct. If you made a typo, you'll get an error message in red when importing, just go back and check that your PNG file names match in both the folder and the MTL. (The reason for saving them flipped textures with a different name is that every time you run the OBJ exporter plugin in SketchUp, it will overwrite your changed files and you will have to flip them again every time you need to export your file.)
If your model has transparent textures, you will need to order the polygons so that the transparent ones are last. This is to prevent the Harry Potter effect - any surfaces behind the transparent texture will not render properly, creating an effect similar to Harry Potter's cloak of invisibility. In the MTL file, first put everything starting with v* outside polygons at the beginning of the file, in the same order as it first was. Then everything listed within the polygons start with f's that refer to the v* at the beginning. Now you can re-order them without corrupting the obj file. If you don't understand this, look here: Polygon order. You can also simply delete all your transparent textures in your SketchUp file and then re-import them. This method has the disadvantage of you needing to reposition all of your transparent textures. If you have any textures that are unintentionally transparent, you can remove the transparency by deleting the alpha channel in an image editor, or by saving in a format that does not support transparency, such as TGA or JPG. Unfortunately there isn't a way to get Objects like trees and other decorations to render properly behind transparent textures with the SZS Modifier or SZS Explorer, so be careful where you place your transparent textures, or add any decorations that will be seen behind your transparent textures to your course model.
Using Other 3D Model Editors
SketchUp, while an easy to use program with many powerful features, has some limitations, particularly in how it handles textures. In particular it does not have the ability to handle advanced UV Mapping, for example, making a road texture follow the curves in the track. Some custom track authors find it useful to create their model in SketchUp and then use the advanced texturing features of other programs, such as 3DS Max.
If you made your model in a 3D model editor that isn't Google SketchUp, you have to follow some different guidelines. Just as in SketchUp you will need to export it as OBJ file. You will need to set your polygons; in 3DS Max MKWii polygons are equal to meshes. You can merge meshes using the collapse tool in 3DS Max. The exported OBJ files are mostly not compatible with the SZS Modifier, but CTools fully supports them. You will need to import these models with CTools, as it can create BRRES files of any size.
If you still want it in the SZS Modifier (to keep animated textures), open a CTools made BRRES with the SZS Modifier, export the model as OBJ and import in the BRRES file you want.
After The Model Is Done
Once you finish your model, or if you want to test the scale of your model, follow the Solidity tutorial to make your track solid. You will also need to move the start position over the track.
Introduction – Textures – Scale – Modeling ⇒ Using Blender– BRRES: CTools
BRRES: BrawlBox – Minimap – Solidity – KCL: Wiimms Tools – KMP Editing
Object Editing – Cameras – Cannons – Post-effects – Videos
Getting Files – BrawlBox Tricks – Animations – Shadows – Mipmaps
Moving Terrain – Music – Ports – Paint Remakes – Tutorial Archive
Extended presence flags: Track Tutorial – LE-CODE Track FAQ