Those animations look amazing!! Great job!
Very cool review of the making of Spellbreak. Would be even more cool to see some videos inside UE4 showing how they do a few very specific things unique to them.
This was so helpful for me. I'm hoping to adapt your tutorial to pull off something similar comparing modern satellite imagery with historical maps. No topo, so my steps should be simpler, but I'm a novice with Blender and you've really helped. Thanks!
Alex Gallucci talked about his crisp Sig Sauer MPX model created within CGMA course Weapons and Props for Games led by Ethan Hiley. Software used: Maya, ZBrush, Marmoset Toolbag, Rizom 3D, and Substance Painter.
Hi, my name is Alessandro Gallucci or Alex for short. I currently live in Italy and I’m a freelance 3D Artist. I have been doing 3D work for a few years: before that, I was studying Japanese culture and language and I’ve spent some years living in Japan. While I was there I decided to pursue a career as a video game artist. I’m currently looking for a full-time position while polishing my portfolio.
Sig Sauer MPX Project: Start
Sig Sauer MPX started when I enrolled in the CGMA course Weapons and Props for Games led by Ethan Hiley: I wanted to improve my modeling and texturing skills with a complex model. That’s why I chose the Sig-Sauer MPX: for me, it was a nice challenge to push my limits and learn from it.
The software solutions I used were Maya, ZBrush, Marmoset Toolbag, Rizom 3D and Substance Painter.
I used PureRef to gather my references, one for the main weapon and another one for the XPS sight. I tried to keep it clean, using notes to create sections for each part so I could quickly find the part I’m looking for. I also kept track of small details like engravings or marks I wanted to add in the end in order to avoid forgetting about them.
Another useful resource is the manual for the weapon, it can provide renders of the weapon, specifications, engravings/logos and even an in-depth look at some components and how they work.
The first step was establishing the right proportions and sizes. For me, the best way to do this was using the mounting interface rails. Rails are standards to allow many attachments to fit, and you can easily find the sizes of them on Wikipedia. Then I created another object scaled to the weapon length and used those two to get the correct scale for the reference in my Maya scene.
I spent a lot of time trying to achieve a nice blockout, having all the main forms of the final model that I could later use for both the sculpt and the low-poly mesh.
This part of the modeling was the fastest, using a lot of shapes and booleans trying to achieve the right look without worrying too much about the geometry. Just throw in shapes with the right size, make a Boolean union and fix it so it doesn’t break and let’s move on. It’s also easier to model this way since you can easily break a complex mesh in simple forms.
When the blockout was done, I proceeded to use Dynamesh in ZBrush, with Boolean to achieve mid details followed by a polishing pass.
One little touch I like to apply to my plastic surfaces is the mold line in the center. I’ve seen it in the ZBrush Presentation with Mike Climer and wanted to add it to my models too (if you are interested in it, check the video below from 1:05:00).
Something I can’t stress the importance of enough is having good smoothing on the edges. Usually what new artists try to have is a perfect 90° angle on the surfaces. While it’s realistic, when the model is looked at from afar it will get jagged and start to alias. A smoother edge will read fine even from the distance. This picture is probably something I’ve seen hundreds of times:
The holes in the handguard were done by Boolean operations. Using the same workflow explained before, I created a mid-poly version of the holes and duplicated them. Adding some bevels I obtained a high-resolution mesh that I later used in ZBrush to dynamesh the whole model and get the holes. I repeated the process with all the pieces to obtain a clean sculpt that I reimported in Maya after the decimation.
The mid-poly was later used to retopologize the model, and I spent a bit of time trying to preserve the silhouette while lowering the polygon count and making sure that the bake was still good even on close up shots.
For other details, like the arrows on the holographic sight, I just did the inverse. I created the high-poly in Maya and then combined them using Dynamesh to obtain that merged look that seems more natural for casted pieces.
I rely on Marmoset Toolbag for the baking. Since the inclusion of groups, it became my main baker. Before I used to explode the models, moving the pieces colliding together away. In this weapon, I just made different groups for each main object, and for all the small pieces I tried to group them in clusters avoiding any intersection.
Another useful tool is the skew painting, to get nice planar details on the bake.
Be careful about the tangent space and especially the normal direction, since they can create problems in other software solutions like Unreal and Maya. The best way to test for mistakes is to bring the model with the baked maps into the engine and just see for yourself how it appears.
Substance Painter is my preferred software for texturing, as it grants me the high quality of the result and the ability to change details fast.
To be able to see the whole mesh but also get into the occluded part, I duplicate my meshes and put them aside. This way I can both paint it separately and see the overall look.
I generally start with a base layer with some color and rough value for a material, then proceed to apply some textures that I get from Textures.com or a similar website to start obtaining details in the albedo and roughness. Something interesting I’ve learned in the course was to see past the ‘title’ of a texture. Ethan showed us how even a marble texture could produce nice effects for metals, so don’t limit yourself to look for ‘metal texture’, but experiment a lot.
Seeing the subtlety of materials is something that will help the project go really far. Even an industrial piece like a rifle is made by different components and each is slightly different. For more realism, you can slightly variate the value in the albedo, making it just a notch darker or lighter. It’s subtle but it works. Even damage can be different. The gun could use pieces from different manufacturers and the quality of the material could be different, so they will age and get worn in different ways.
It’s easy to get lots of details using generators and smart masks, but they will look too procedural in the end. Using a paint layer with a brush you can tune it down to make them more believable.
One of the first steps I do in Painter is to finalize the normal details, by creating decals and any other pattern or engraving, usually with Photoshop. These could be done in ZBrush but as I later discovered, having it on a layer in Painter gives me the ability to easily modify them if I ever need it. It’s also the part where I love to add small ‘easter eggs’ like important dates and numbers for me, or small writings.
I apply them on a fill layer with a slight amount of height, then use a mask with a paint layer to put the details on the mesh. For a nicer look, I then add a blur filter that will make them less brand new.
For the small sticker, I was lucky to find a high-resolution photo during my research phase but it can be easily recreated in Photoshop. Using some surface imperfection texture I gave it some damage and rough variation. In the end, using a dirt brush, I just removed pieces on the edges to make it worn and used.
Achieving the Best Result
Getting a crisp and neat model at the end requires a lot of time and problem-solving. I can’t really think of one phrase that could sum up all the work that each artist needs to do in order to make something look really good. For me, it’s a slow process, approached step by step and with a varying degree of frustration in the middle. I try to replicate the references exactly as they are until I am comfortable with what I’ve obtained.
I use Marmoset Toolbag to render my props. After setting up the object and the materials, it’s just a matter of playing with lights and the skylight. I select a good HDRI texture (you can find them for free online, too).
I set up different cameras where I’d like to render the model by duplicating and moving them. Then for each of those, I create a lighting setup, since each view requires different illumination settings depending on the details. It’s a bit time consuming at first, but it saves time when you want to go back to a previous camera and tweak the lights some more, or when you reopen the project after a long time!
For the lighting, I start with a simple 3 point light setup, then I throw in some more to get better highlights or rim lights.
Something I learned in this phase was to not overcolor my lights since the texture shouldn’t be changed too much. It’s alright to use a cold or warm light but try not to alter the base texture with different colors.
Post-processing effects should be controlled, too. It’s easy to add a lot of chromatic aberration but I prefer to use small values.
Challenges & Feedback
Perfectionism is an Achilles’ heel of mine when trying to produce a real object. I spend time and time again studying the forms, surfaces, and materials so that I can replicate it in the most realistic way possible. Setting up a time frame to complete the project forced me to get past it. The more projects you complete, the better the end result will be, so force yourself past your block.
I also understood the importance of asking frequently for feedback to improve. Aside from my mentor I often address questions to, there’s a Discord server for Weapon and Gun enthusiasts called The Armory. The admin and all the users there are really supportive and they helped me push the textures and lighting one step further so I can’t thank them enough. Jump right in with the link above, I’m sure you will find a lot of useful support in there!