Hey there, my name is Malte Sturm and I’m a 3D artist working in the games industry, in Hamburg, Germany.
I really enjoy creating characters and things that don’t exist in the real world. For example fictional spaceships, which is what I do for my day job at Bigpoint.
My job there includes creating a wide variety of assets, but mostly spaceships. I enjoy being able to create an asset from start to finish – modeling, unwrapping, texturing, animation and sometimes even the concept.
Today I’m going to describe a couple particular elements of the workflow I used on the Mimesis Spaceship for DarkOrbit. The concept was done by Young-Il Shim.
Note: This is not going to be a complete making-of but a collection of hopefully interesting tips and highlights I’ve used during the workflow. If you are interested in something I didn’t cover or have additional questions / feedback, feel free to hit me up on Facebook.
This is the concept of the ship I was provided with. Concepts can range from rough to more detailed sketches like this. The idea here was to create a modular-magnetic ship that consists of different parts held together by magnets.
Dark Orbit is a top-view based online-game, so it’s important to find the sweet spot between production effort and in-game benefit. As the ships are only seen as small as approx. 100×100 pixels depending on ship size, zoom etc, it wouldn’t make sense to model every single bolt if it’s not going to be seen. But there are also renders we use for marketing, ingame views, shop views etc. The level of detail has to be sufficient enough for all these components: marketing needs details that can be explored on renders in the size of 1000×1000 pixels, ingame renderings have to have a high readability in small sizes and shop views should make the players want to have a certain ship.
To meet those requirements, I used a mixture of high to mid-poly modelling, floaters (explained below) and Substance Painter using some alphas for additional normal details.
Modelling the ship was mostly done by straightforward poly-modeling in 3ds Max. All big shapes that really define the overall-look of the ship or custom elements were modelled that way.
Smaller elements that help to increase detail and lead the eye were partially done using floaters. As the name suggests, these pieces of geometry only float above the actual surface – and as such can be moved, copied and re-used freely. In order to make them work correctly it is crucial to have them follow the underlying surface so that in the process of normal baking there won’t be any visible surface changes. Since other people already described the principle of floaters very well, I won’t go into detail. If you are interested in floaters, you might want to watch this.
Tip: if you use Xnormal to bake your AO, turn on “ignore backface hits” in the AO settings to prevent the floaters back side produce unwanted shadow.
The image above shows the side-bracket element of the spaceship and an example of floaters and individually modeled parts. Although the floaters are very simple, the technique can be used for more complex shapes.
The image above shows the round floater the way Xnormal or any other baking software perceives it.
Tip for 3ds Max users: miauu’s script pack contains a very handy tool called “drop on surface”. Its perfect for aligning floaters to the underlying surface and makes the process much easier. Check it out.
Lowpoly, UV and baking
When modeling the highpoly in 3dsmax, I usually try to block out the main shapes first and put supporting loops etc onto another edit-poly modifier afterwards. This way I just have to delete the modifier in order to get a good base for the lowpoly.
The UV’s have been done with the internal 3ds Max tools and the script “textools”.
I really like this one in addition to the default tools. It gives you handy things like the ability to convert UV shells to smoothing groups, several checker maps, easier stitching, and a lot more.
Also I like tools and plugins that can make my life as a 3D artist easier. Something I recently tested is a program called IpackThat for doing the puzzle work with UV shells for me and gives a pretty good base to work from. Although the Mimesis ship doesn’t have that many uv shells, that little program was very helpful to optimize the usage of texture space – a process that can swallow a lot of time when done completely manually.
For baking, I used Substance Painter. Its Ambient Occlusion baker is really fast and gives nice results. I still go with the explode-and-bake workflow (still need to try the new bake-by-naming function of Substance Painter). For the Mimesis ship, I did a bake of the exploded high-poly and then baked a second one for the compound low-poly version. By multiplying both, you can get nice results – especially in areas where the exploded-bake doesn’t produce much shadow.
Texturing and additional details
Once all the baking is done, the fun part begins. I love Substance for not having to texture on flat sheets in Photoshop anymore! As mentioned in the beginning, we use Substance Painter to further enhance visual details. For that we use existing alpha libraries and our own one that we started to build up recently. I recommend you make an alpha from any details you model, so your library grows as you grow.
To capture any surface detail and make an alpha from it, I simply use ZBrush’s “GrabDoc” feature: Place your surface detail perpendicular to the camera and make sure it fills as much of the screen space as possible.
Then open the alpha slot and click “GrabDoc”. Your surface detail appears as an alpha map in the slot. Export it and maybe tweak it in Photoshop. Then load it into Substance Painter and use it to your liking.
Alpha taken from a high-poly in ZBrush
When texturing in Substance Painter, a lot of people tend to overdo it with wear & tear and noisy things like too much contrast in the roughness channel. I am guilty of doing that myself – that’s why I recommend to go with the “less is more” approach 🙂
Substance’s handy features make it easy to make every edge look used and aged but real world objects always never have a regular level of wear and tear.
Looking at references closely helps to find a good amount of wear.
Substance to Sketchfab
As Substance Painter recently got a nice Sketchfab integration, it is very very easy to publish our models to Sketchfab! To take advantage of the exporter with a model that has animations, we do a small trick:
- Export your model from Substance Painter using the Sketchfab preset
- Abort the uploading process
- Locate the “model.zip” file
- Replace the actual model (fbx, obj or whatever) with the one that has animations
- Upload the updated zip file to Sketchfab
- This way you have all your materials already nicely set up even for an animated model.
This is the final model: