With some nice animations to boot.
I've been in a bit of a SoaSEy mood recently, and I've been putting some effort into learning 3ds Max using the game assets. I figured I'd write up a little guide using what I've learned. This guide has absolute beginners in mind, so I'll include some general info about 3ds Max.
Here are a few test animations I did to give some inspiration:
Advent Capital with Compositing and Starfield
Planet with Ships
Shield Bubble Test
All of them need a lot of work, but it was a lot of fun making them.
A link to the finished project detailed in this guide can be found here here.
To start out, you need 3ds Max and some image editing program. You can get an educational version of 3ds Max free for three years. I'm using the 2017 version. I also use Photoshop, but you can probably use GIMP or some other image editor.
First up we need to import a mesh from the SoaSE files. A mesh is a representation of geometry, made up of vertices connected by lines. A mesh has no color, texture, or anything else, it's just geometry.
Luckily for us, there exists a tool to do just that. Download and install the tool from here. To run the tool, go to the right side of 3ds max, open the utilities tab, click MaxScript, and Run Script. If you installed the import tool correctly, you should see SinsOfASolarEmpire_Rebellion.ms inside the 3ds Max scripts directory. Double click the script. Now use the dropdown to select the script, and click Import mesh TXT and BIN.
At this point I'd suggest going to your Sins installation directory and copying the Mesh and Texture folders to a project directory. It's never a good idea to work directly on game files, even if the risk of screwing things up is pretty low.
Browse to your copied Mesh folder and select a mesh to import. I'll be using the Advent colony capital ship, called CapitalShip_PsiColony.mesh
You should now see a big colored ship in the center of all your viewports. Viewports give you different views into your scene. You'll probably end up doing a good deal of work in the Perspective viewport, but you can reconfigure the viewports however you like. If you're not familiar with the difference between orthographic and perspective views, I suggest you go google it and come back.
You may notice that the ship is lying on its back. Select the rotate tool and toggle angle snapping on. Click on the ship and rotate it by 90 degrees so it's in the correct orientation. Hooray, we now have a ship mesh to work with!
Next up let's create a material and apply it to the ship. If you go to your Textures directory, you'll see that SoaSE uses a lot of dds files which 3ds Max can read, but not natively. You'll need to install this plugin from NVIDIA first. You might be tempted to use the dds files directly inside 3ds Max, but SoaSE has some information stored in different channels of the dds files, and rendering them out separately before putting them into 3ds Max will make things much easier.
Let's go over what the different texture files do. If you do a search for CapitalPsiColony in the textures folder, you'll see three files: CapitalPsiColony-cl.dds, CapitalPsiColony-da.dds, and CapitalPsiColony-nm.dds
The cl (color) file has four channels, red, green, blue, and Alpha. The RGB channels are the diffuse map, the base color of the ship, and the alpha channel contains the Team Colors map.
The da (data) file also has four channels. Red is the specular map, green is luminosity/self illumination, blue is reflectivity, and alpha is bloom.
The nm (normal/bump map) is the bump map. We can pretty much leave this one as is.
For the other two files however, we need to separate out the individual channels to be used in 3ds Max. There might be a way to do this inside 3ds Max itself, but I've found it's much easier to use Photoshop to copy the channels to their own layers. To do this, you'll need to install the Photoshop dds plugin from NVIDIA.
Open up the data file for your ship inside Photoshop. Start by unlocking the background and having a look at the Channels tab. Here you can toggle different channels on or off. Note that you should click on an actual channel name to make it active, do not hide channels by using the little eye icon to the left. Make sure only the Red channel is active, hit ctrl+a to select everything, and copy the selection. Now go back to the Layers tab, create a new layer, and paste the selection. Again, make sure that only the red channel got pasted. Name this layer Specular, and hide it. Do the same for the remaining three channels, naming each accordingly. You should end up with something like this. Have a click through the layers to make sure they all look significantly different. Save the file as a psd.
Do the same thing for the cl file, only this time you'll only need two layers, Diffuse (RGB channels) and Team Colors (Alpha channel).
You can either import the psds into 3ds Max multiple times, or save each layer of the psd as its own file. I'll be using the multiple import method.
Now back in 3ds Max, let's create a new material. Open the material editor and set it to Slate mode. Search for Standard and drag it into the view. Search for Bitmap, drag it into the view, select your psd, select Individual Layer, and select the first layer. Do this three more times, grabbing the next layer each time. You only need the layers that you previously separated out, not the original with all the layers on top of each other. Do the same thing with the cl file. You can import the nm file natively by just dragging it into the material editor. Double click on each bitmap in the Slate editor and give it the appropriate name. You should end up with something like this.
Now let's connect things up as follows, with the map name on the left and the corresponding material slot on the right:
Diffuse > Diffuse Color
Specular > Specular Level
Illumination > Self-Illumination
Bump > Bump
Reflectivity > Reflection
The Bloom and Team Colors maps don't really need to be used to get a good looking render, but they can be useful later on.
Give the material a name, and while you're at it also rename the mesh to something more informative. Click on the mesh name, and double click on the material in the material editor. Then click Assign Material to Selection.
If you have a look at the perspective view, it may appear that nothing has changed. This is because the view has not been set to show maps. To fix this, click on Standard > Materials > Shaded Materials with Maps. Taddaa, the ship looks kinda normal now!
These are the main steps needed to get a workable model into 3ds Max. Now let's move on to making something that actually looks decent.
First let's do a test render. Open up the render configuration window. Render settings can get very involved, but for now select Production Rendering Mode and either Scanline Renderer or NVIDIA mental ray. Scanline is much faster but not as pretty, mental ray uses raytracing but takes longer. Click on the perspective viewport, then the little lock icon in the renderer to tell it to always render that view. Click on render. Things probably look a little strange right now, but that's ok, we can fix that.
Let's add a light to the scene. Go to Create > Lights > Standard Lights > Omni. Click a point in a vieport to place the light, and right click to exit creation. Position your light however you like. Click on the light, go to the right side of 3ds Max, go to the Modify panel, and expand Intensity/Color/Attenuation.
This is where things start to get a little subjective. The omni light acts as the sun in our scene. Since a star is really bright, it doesn't make much sense to use decay. Something 30,000 miles away from a star will not be illuminated very differently from something 32,000 miles away, so I tend to just turn down the intensity multiplier to around 0.6. This saves on rendering time too over using attenuation. You can add a color tint to the star if you like, and for greater realism also enable shadows. Raytraced shadows look best, but as always with this kind of thing, also take longer to render.
Now let's tweak the settings of our material. Go back to the material editor, double click your material, and expand Maps. Again, these settings can be largely subejctive, but here's a starting point:
Diffuse Color > 100
Specular Level > 5
Self-Illumination > 100
Bump > 10
Reflection > 5
After another test render, we can see that things look alright but still not perfect. The dark spots are grainy and the reflections look weird. This is where my understanding of 3ds Max starts to fall apart, but here's my current fix.
The reflection map works much better if you feed it into a raytraced reflection. To do this, go to the Material Editor, and grab a Raytrace map. Plug the map into the Reflection map input of your material, and plug the reflection map into the Raytrace map, like this. The results look much nicer. Before, After.
It doesn't look like much right now, but if we stick another ship in the scene it will reflect nicely.
Past this point I start to have very little idea what I'm doing, so I won't try to offer any more advice. However I encourage you to experiment, and I hope this guide helps a bit. Smoothing is one area where I'm having some serious trouble figuring out what works best, so if anyone has any suggestions please let me know.
I've only been using 3ds Max for a few weeks, so I probably made some mistakes and forgot some steps. Feel free to call me out on them. I'll probably add more info at some point, maybe a video tutorial too. We'll see.
Hope this helps!