Malte Rosenberger-Loosmann prepared a detailed breakdown on his Dan & Wesson 500 Revolver and shared his workflow.
I studied media design in Berlin where I got introduced to the 3D world. Being caught and motivated by creating everything that I could think of, I joined the Games Academy in Germany for 3 years. Immediately after that, I joined Ubisoft as a 3D environment artist.
During my career, I worked on Anno 1404 (Dawn of Discovery), Drakensang 2 (RPG) and some mobile games.
All along I always had a keen interest in visualization and design. Starting as an environment artist I got my hands on a weapon to see if I would be able to create hard surface shapes too. During modeling, I discovered my addiction to hard surface weapon modeling. Finishing the first weapon I got in contact with the developers of Hot Dogs, Horseshoes & Hand Grenades (H3VR) to support the game. During the time I finished several realistic 3D weapons which got implemented.
For me, holding my own 3D assets in VR was stunning and motivating so I spend lots of my spare time into weapon modeling and applied that at Rocksteady.
Speaking of the weapon designs I like realistic ones the most. Each model has various shapes so each project is a challenge for me in modeling, texturing and presentation. My focus is not only on just making realistic weapons but on representing the character of the weapon in the most interesting way.
For the Dan & Wesson 500 project, I chose the revolver since I think it’s featured in several movies and games which makes the revolver so iconic. To represent its weight, power, and characteristics I focused on the shapes a lot. When creating all stages such as high poly and low poly, I often think about some stuff to add to make the weapon unique otherwise it’s just a default weapon mesh on Artstation.
First, I start off searching real-life references on Google and getting them all together in PureRef which is a great tool for having the references on top.
Sometimes it is hard to find useful references so I do some research on Artstation as well. In the case of the DW500, I got a toy replica at home which helped me to study its function, measurements, and design.
I’m a Maya user coming from 3ds Max. It doesn’t really matter which tool you’re using, I think you could achieve the same results within any kind of 3D modeling software. Most important are proportions and functionality of the weapon. Also, it depends if you’re producing a weapon for a 1st person or 3rd person game.
After saving some references I pick a nice side view image and bring it up into my 3D software of choice. Getting all measurements together, I start blocking out my weapon.
I’m not a huge fan of doing blockouts but it is very useful especially if you develop a game and another department needs to test or implement things during early stages. Also, it previews proportions and animations.
High poly modeling is the 2nd most rewarding step for me. The first one is baking. Shapes are really important to transfer a level of realism and believability. That’s why I tend to exaggerate my bevels on high poly meshes. Also, you prevent yourself from getting anti-aliased artifacts in-game later on.
Transitions are important to build up that certain level of realism and believability. When studying the technical details of a weapon I always make sure to separate parts which could move or are attached/ detached in the original reference. Of course, you could build your low poly around some parts and have it as one mesh to save polygons. It always depends on your project needs/polygon limits. Furthermore, I keep analyzing my references to build up very fine details and technical parts of the weapon. Youtube and slow-motion videos are a good source to get all details and movable parts of the asset.
To speed up your production time I would recommend adding kit-bash objects as primitives and shapes which will re-occur all the time.
In Maya, I use HardMesh for stack boolean operations. It is a really nice tool to live bool in Maya viewport. I have full control over bevel size and can edit my negative shapes on-the-fly.
Also, I keep a copy of my basic shapes to re-bool those without edge loops and division to save a lot of time on my low poly mesh.
When working on a high poly, during the process, I keep thinking of how I could give a weapon some unique characteristics. In the case of the D&W revolver, I decided to add a dog tag and a special Picatinny rail.
It is a good idea to check your shading. I use a simple Blinn shader with increased specular values. When panning around the object in the viewport you could see how light is affecting your bevels/surface.
To speed up the production, keep in mind your geometry doesn’t need to be perfect on flat surfaces. Like connecting every loop isn’t necessary all the time. It’s a huge time saver.
Working on a low poly is a task requiring great diligence. Often I see myself building a complex high poly mesh and starting with a box/plane primitive first to build my low poly around the high poly. It is on you to decide where to put more geometry and where less. Depending on your project restrictions you have to deliver a balanced lop poly mesh.
It is quite handy to save a copy of all your booled meshes. First, I arrange all the meshes which I want to bool. Second, in a layer called “bool_backup”, I put copies of my meshes in and hide them for later. Those will save your back when recreating a really complex mesh.
You decide which stuff to bake in your low meshes and which meshes should be visible as geometry in-game. To decide, have a look at the silhouette. If a screw or an element is supporting your silhouette make it geometry. Also, if it has a great impact on asset depth (shadows, complexity, size and if a shape is convex or concave).
UVs are very important for your texture density. You have to decide which parts will have a higher or lower resolution. For example, in the first-person games, the weapon’s shoulder stock will have a lower resolution as the main body. For the third-person games, all parts would likely have the same resolution. Inner parts such as shell chamber, barrel and bolts will be also scaled down. Sure, there are some exceptions like cinematic slow-motion animation with a heavy focus on detailed parts of the weapon or full screen sized UI presentation.
Usually, I start with selecting a low poly mesh and adding an auto unwrap first plus a rough layout packing iteration as a base. From here, I stitch edges together and break edges as I need them. Depending on the shape flow I have the rule to break every 90-degree edge to avoid having gradients in my normal map after baking. These gradients could mess up your transferred shading of the high poly mesh. Also, hide your UV seams as well as you can.
Sometimes, I stitch big visible parts and 45 – 90-degree angles together although it could cause gradients. As my mesh would have a visible cut I either support my low poly with a bevel or go with a slight gradient. Also, it depends on the mesh itself.
Layout and packing UVs is really fast. If you first got your UV shells scaled uniformly ( “Shell Pre-Scale” to “Preserve 3D Rations”) you can scale down your inner parts or parts which should have a lower texture resolution than others and crank up your UV Layout values.
Make sure to smooth edges/ smoothing groups by UV shells to ensure smoothing fits your stitched UVs and you won’t end up in hard shading cuts.
I do all of my bakes in Marmoset. It has some really good features such as editable cages and bake painting directions. Also, you could split your texture sets very easily and have a seamless import into Substance Painter. A nice bake is really rewarding for all the hard work.
When storing your baked textures make sure to apply the correct naming convention to them so you can import and auto apply them in Substance Painter which is a huge time saver!
Material names from Maya/Max and baked texture names from Marmoset need to match together.
You should take your time when texturing a realistic asset. In my case, I could hold my replica revolver and tilt it to every angle so I could get a feeling of the materials and its surfaces. Taking a regular weapon to its basic texture is a good first step. From the base look and feel you should give it a personal touch by painting scratches, adding dirt, and roughness variation.
I will use the grip as an example of how I build up my texture layers.
During my texturing progress, I got Marmoset or Unreal open to check RGB values and roughness color. It is important since you could end up with brightness issues especially for dark materials such as plastics or rubber. Also, you get a nice preview on how it would look in-game.
For my rendering, I decided to quickly model and texture a weapons case top. Presenting a weapon in an empty environment is good to keep focus but I found it interesting to have a connection to the background or the story. Also, hands and arms are a good way to show the weapons scaling.
My rendering setup isn’t anything special. I cranked up the values in GI, turned on ambient occlusion and reflections. The light setup is a simple 3-point light setting: key, rim and fill light with some more point lights.
I turned down the skylight brightness and created a rim light (blue tint) first. Fill light is a warm color and key is white. I added another camera to check my angles. Some Omni lights are useful to brighten up dark spots and get nice surface specular. To support the attention of the sight I added two green Omni lights.
Thank you for reading my breakdown. I had a lot of fun creating the D&W revolver and hope these insights were useful for you.
If you are interested in working with me or have any further question about weapon creation don’t hesitate to get in contact.
Malte Resenberger-Loosmann, Freelance Weapons Artist
Interview conducted by Kirill Tokarev
If you found this article interesting, below we are listing a few related Unity Store Assets that may be useful for you.