First of all, make sure that you know the basics of SimCityPak by following the
Basic Modding Tutorial
Retexturing an existing object in SimCityPak is relatively easy once you understand the basics. I'm assuming some simple knowledge about Photoshop or any equivalent image editing software though - there are plenty of good tutorials out there if you haven't
used any of these before.
If you're looking for free image editing software, you might want to look at the following links:
I personally use Photoshop in combination with the
NVIDIA Texture Tools
Getting a Vehicle Texture
Open SimCityPak and open the SimCity_Game.package. This package contains most of the vehicle textures. To find a specific vehicle you want to edit, we'll first search for the PROP file that defines the vehicle. A lot of these files are already identified
in SimCityPak, so in the instance dropdown field, you can easily search for it. For demonstration purposes, we'll choose the city bus. To help you quickly find the property file, you can paste the instance ID (0xdf88e6c3) into the instance ID filter box:
Note the property "Vehicle Models"; this property contains an array of
, which are used to show different level of details depending on the zoom levels. These are usually referred to as LODs. All of these contain their own mesh and textures, so to completely retexture an object, we'll need to retexture all the
LODs. Luckily, we can use the same texture for all of them. For the sake of simplicity, we'll start with the most detailed model, which is stored in the first slot of the array; "Vehicle Models ".
Click the pencil icon next to the property, and copy the instance ID. Paste this into the instance filter on the index list, and you should now see one single RW4 index. This index represents the 3d model. Our next step is to find the corresponding texture
index. To do this, we'll have to select the materials row of the RW4 Model:
On the materials view, locate the Texture ID for the material where 'Unknown1' is zero; this will be (in technical terms) the diffuse texture, which is what's mapped onto the vehicle in-game to define its appearance.
Copy the Texture ID found in the previous step into the Instance Id filter (you should be an expert at this at this point) and you've found the file that contains the texture, which looks like this:
Now we'll have the opportunity to export this file into its own separate package file which we can distribute later on. Right-click on the index and select 'Export to Package...'
Editing a Vehicle Texture
Open the package file you created in the previous step, select the texture instance and click 'Export' in the menu. You can now export the current texture to a DDS format bitmap.
This is where your image editing software comes in. You can edit the file in any way you like. When you're happy with your texture, it's time to export it back into the .DDS format. Most of the popular image editing applications these days have either
built-in support or plugins for this purpose. I've included a few of these in the 'Getting Started' section of this tutorial, but I can't give specific instructions for each of them. Instead, here are a few things to look out for:
- Export in DXT5 format. DXT1 or any other format is not supported for import yet.
- Alpha channel is required. This is a part of the DXT5 requirements.
- Generate Mipmaps.
If you use photoshop, set the plugin to the following settings:
Open SimCityPak and click 'Import'. Select your new texture and the updated texture should be shown as follows:
Next, save your package by going to the 'Packages' tab, right clicking on your package file and selecting the 'Save' option.
...and that's all there is to it - if you were to start the game, you should be able to see your new retextured vehicle in all its glory. You can experiment with the texture types and you'll become an expert at this in no-time.
There are multiple Texure sections in a model, all of which have a different purpose. You should be able to differentiate at least the following five types:
- Diffuse map: The actual visible texture.
- Normal map: A grayscale normal map that adds the illusion of a bumpy surface. The rgb channels define the 'left-right' lighting, while the alpha channel defines the 'up-down' lighting.
- Mask map: A mostly completely blue texture that indicates which areas of the texture are windows or lights.
- Gloss map: A texture with varying shades of green and purple which indicate how shiny parts of the texture are.
- Color Palette: A very small bitmap with one single row of pixels that contains one pixel of each color that can be randomly chosen for this vehicle. These colors are visible when the Diffuse Map has transparency
Optional: Combine Separate Indices into One Package File
One problem you'll come across is that when you have several separate package files for one mod (such as the four different LODs you will have to create for a texture replacement) your data folder gets cluttered quickly. In this case, you can easily combine
your package files into one. In SimCityPak, open the 'Open Packages...' dialog and select all the packages you want to combine at once
open the first one and add the others by using the 'Add Packages...' dialog. Then, select
the indices in the index list, right-click and choose 'Export to Package...'. If you enter a name and save, all your indices from all your separate package files will be combined into one. You should delete your old separate package files
to make sure that the game only uses the combined one.