How to: Create a part
Hello fellow spore lovers. Sadly we have moved on from this game. However we have made an index of all the content on this website for your easy convenience, though mods are no longer supported by us. We now also have a Youtube channel focusing on geek parody music videos including Doctor Who, The Hobbit and Game of Thrones videos. Check out this video, and if you enjoy, please subscribe!
How to: create a part
The new SporeMaster 2 has the ability to pack models and textures into the renderware 4 (.rw4) format used by the game to store parts. This makes it possible to add new parts for the first time. This is still a very new development – literally the only parts mods in existence are my cheesy glasses and cube. So don’t expect the workflow to be completely smooth. Also note that texturing is somewhat limited – I haven’t really figured out how the different texture channels interact – and mesh-level animation is completely unsupported so far.
SporeMaster reads models from the OGRE3D mesh.xml format, and textures from S3TC-compressed (DXT5) .DDS (DirectDraw Surface) files. I picked the OGRE format because it’s easily readable, close to the type of data that Spore needs, and there are exporters for lots and lots of modeling tools: http://www.ogre3d.org/wiki/index.php/OGRE_Exporters I picked the DDS format because it can store images that are S3TC compressed, and since S3TC compression is lossy I didn’t want SporeMaster to do it automatically when packing.
In principle, then, you can develop models with any tool that supports these formats. I’m going to try to describe a workflow using Blender (for models) and the Gimp (for textures), which are both freely available programs. If you get a model imported using Maya or 3DS max or the XSI mod tool or whatever, please post how you did it.
To make a model you will need:
- SporeMaster 2: http://www.sporemods.org/forum/index.php/topic,201.0.html
- Blender: http://www.blender.org/download/get-blender/
- Blender OGRE export plugin: http://ogre.svn.sourceforge.net/viewvc/ogre/branches/v1-6/Tools/BlenderExport.tar.gz?view=tar
- OGRE command line tools: http://downloads.sourceforge.net/ogre/OgreCommandLineTools_1.6.0.msi?use_mirror=
- My proof-of-concept “glasses” mod: http://www.sporemods.org/forum/index.php/topic,247.0.html
- The original Blender file for the “glasses” mod (attached)
- Follow the installation instructions in the SporeMaster thread, make sure you can make and use packages with SporeMaster (and ideally know how to use it)
- Put the glasses mod in your Spore\Data directory and make sure it works
- Install Blender (and ideally know how to use it)
- Install the Blender OGRE export plugin. It doesn’t have an installer, and needs to go in your Blender scripts folder (not in a subdirectory). Generally that will be in your user profile, not in Blender’s installation directory. On Vista it is C:\Users\USERNAME\AppData\Roaming\Blender Foundation\Blender\.blender\scripts; I’m told that on the Mac it is /Applications/blender/blender.app/Contents/MacOS/.blender/scripts/, and you must reach it via Terminal or “Show Package Contents” on blender.app.
- Install the OGRE command line tools
- Make a copy of the glasses mod and rename it to addon_yourpart.package
- Open addon_yourpart.package in SporeMaster and unpack it
- Select “Show only modded files”
- Search for “glasses” and change every single occurrence to yourpart. This means renaming files and folders that have “glasses” in the name, and changing references in the XML files. If you don’t change every single reference, your mod will either not work or be incompatible with my mod and the mods of every other person who can’t follow instructions. SporeMaster does not have an easy to use rename feature so you will have to use Windows Explorer to rename files and folders; you can get there easily by selecting something and clicking the “Explore Right” button.
- In the creature_editor_palette_items~ folder, change the column and row from 4, 0 to a new location. Your mod will be incompatible with anyone who picks the same location, because there can only be one part at each location. I have expanded all the pages to have two new columns (4 and 5), and they all have different numbers of rows.
- Open glasses.blend in Blender and Save As a new file. Do not save .blend files in your SporeMaster .unpacked folder! Notice that the glasses are oriented facing toward the negative Y axis, and the Z axis is “up”. That is the normal orientation of a part in Spore. The negative Y axis always faces “away” from the creature, so it will be the front for things that you think of as going on the front of the creature, or the top for things you think of as going on the top of a creature. The origin is the point where the part “touches” the creature (where the mouse cursor in the creature editor would place it on the creature). Also notice the general scale of the glasses; you don’t want to create anything too much bigger or smaller.
- Create or import a new mesh in Blender that you want to make a part out of. This part I can’t help you with much; I’m no expert on 3D modeling. Important: The exporter exports a single mesh; it doesn’t care at all about the rest of the scene, or even the mesh’s position or orientation in the scene. To position something relative to the origin and orientation of the glasses, you need to make sure that its object transform has no translation, rotation or scale (by pressing ‘N’ in object mode you can see these numbers and change them to zero (or one in the case of scale). You then reorient the mesh in “Edit Mode” by selecting all vertices and transforming them.
- UV map the mesh. Blender’s “unwrap” feature is very useful for this. It doesn’t matter what texture you assign in Blender – the exporter may complain if you don’t have one, but SporeMaster will ignore material assignments. It DOES matter that the UV mapping is correct, even if you aren’t going to texture your object! Spore tries to do all kinds of bump mapping and other calculations with your UV coordinates, and if they are all messed up you will get weird effects.
- Select your new mesh and choose File > Export > Ogre Meshes from the menu. If the option isn’t there, you didn’t install the export plugin correctly. Make sure “Fix Y up” is off and “OgreXMLConverter” is on; go to Preferences and turn “Tangent” on and set the path to the converter. Export the mesh to a known directory.
- OgreXMLConverter was run by the mesh exporter to generate tangents, which are needed by Spore and which neither SporeMaster nor the exporter itself generate. Unfortunately, it has the side effect of turning the .mesh.xml file into a binary .mesh file, which SporeMaster won’t read. So you need to invoke OgreXMLConverter again manually to turn it back. You can do this from the command line or (probably) by drag and dropping the .mesh file. When that’s done, you should have a .mesh.xml file with <tangent> elements in it.
- Now copy that .mesh.xml file into the part_models~/ce_details_yourpart.rw4 folder (you can open it easily from SporeMaster by Explore Right), and make sure it is named model.mesh.xml (overwriting the file by that name that is already there).
- Select the .rw4 folder (NOT the files inside) in SporeMaster and look at the part (or the error message, if any). It should be oriented the same way as the glasses (and the same way as in Blender).
- Pack your mod! You should have a black-textured model in Spore. There are a lot of things you can tweak and tune in the XML files, but that should be enough to get a part in the game