Advanced Weapon Creation

Prop Breakdown

Howel Ganuchaud

M4_C1_resultat-scaled
74

Howel Ganuchaud

3D Artist

Introduction

Hello everybody, I’m Howel Ganuchaud, I’m a freelance Environment & Weapons artist from France. I’m mainly self-taught, thanks to all the amazing tutorials you can find online.

Project & Goals

I was hired at the end of 2020/the start of 2021 to create realistic weapons for FPS games. The weapons in question were: HK MP5A3, 870 Remington and two versions of the M4 (M4A1 & MK18). Then for my personal project, I created the HK MP7 and the SIG P320 M17.

The first goal for all those weapons was to achieve a realistic look, without a lot of damage or wear, but to still have a “used” effect on them, they’re not out of the factory but they didn’t survive an apocalypse either.

The second goal, was more about the rendering aspect. I wanted an original way to showcase those weapons, and since I wanted to go back to an environment, I thought that doing a workbench as a background would be the right direction.

Software

Softwares used:

Blender, Zbrush, Marvelous Designer (HK MP7 only), Marmoset Toolbag, Substance Painter, Photoshop, Unreal Engine

References/Inspiration

References are one of the most important points for me. I can’t work on a weapon with only five or six photos. For each weapon, I had between 80 and 300 photos (AR15). Of course, sometimes I don’t use all the photos (like the 300 of the AR15 for example), but the idea is to have the maximum angles and light scenarios as possible from the start. The idea is to have enough substance there you dont want it to get really annoying and be on a project for days/weeks to discover an all-new angle and some details you missed whilst you’re currently working on the texture (real-life experience).

I always take some hours to hunt high-res photos, with time you start to find really cool websites (auction sites, firearms forums, Reddit threads, shops, websites).
You need to learn about the weapon too, a little at least, especially when you have multiple variants. Having some firearms knowledge does help a lot, especially during the texturing phas. By “firearms knowledge” I mean how a firearm is carried, where the hands are and how it works to understand where the grease will build, those kinds of things. You can even push your asset further, for example, a special forces operator will not carry/use a weapon the same way a rookie handles it, you can integrate those levels of skills in the texture.

A good example:

The MP5A3 is a good example. At first, the client told me it was the MP5A3, so I started to grab some photos, but then the client told me it was the MP5A3 MLI variant, Mid Life Improvement, and that changes some things. Because you don’t find a lot of high-res photos for this particular modern variant. So, how did I achieve that?

1) This is an MP5 and the base is an MP5A3, so you grab photos of those 2 variants (as much as possible).
2) You search the differences between the A3 and the MLI (same concept, not the same pieces).
3) You search for a place where you can buy MP5’s parts. The best place for that is HK-Parts.
4) You find the MLI parts there and you start the work up.

Firearms forums, Reddit, auction websites, disassembly videos are something you need to start watching to get deep down into to get a better understanding of the gun.

Dinusty_Weapons_Library

It’s been a long time since I wanted to save & share all the photos I’ve grabbed these last few years, I wanted to create something to help other artists. I didn’t know exactly how to do that. Then, I talked about it with Jeremy Estrellado (Lead Environment Artist at Ubisoft Massive and Dinusty Empire Founder) and the idea of using Notion for that came out.
After some work, the WEAPONS LIBRARY is born!

This is a notion’s page that references a lot of weapons, we just released the first version so you don’t have all the weapons (yet). But the idea is to provide a good, high-res photo base for each and every weapon. You can pick just the photos you want/need or download the complete album (rar file). You can follow the development progress here & if you want to participate in this project by sending some high-res photos, you can contact me on Artstation, twitter, or discord (Defcon#3216).

Modelling

Polycount talk:

Polycount is an important thing when working on a weapon, even if nowadays we have more room for it. It’s not because we have the technology to have a pistol with 100k polys that you SHOULD do it. You should apply the same “temperature areas” on your model, close to the camera = more detail. Don’t make all the extremely tiny 3D details of this barrel or this suppressor in your low poly, just bake it.

A lot of people ask me the “average” polycount for weapons; I always share this here, even if it’s from 2017, it gives a good idea of polycount. But I’m going to share some examples:

• For a modern “big” firearm, I’m aiming for 20k/30k.*
• For a modern “small” firearm, I’m aiming for 10k for a pistol (or same size) and 15k/20k for an SMG.
• For an “old” firearm (WWI / WWII), you don’t have a lot of details, so I’m aiming for 10k/15k, 20k for big ones.
• If you want to use the mid-poly workflow (bevels + decals), this is where you can hit some crazy numbers, for example, some weapons in Cyberpunk reach 60k/70k.
*Modern Warfare 2019 even reached 40/60k for some weapons.

Blockout

The blockout phase is another important topic. From the start, you need good sizes and proportions for each part of your weapon. This is why we do a quick blockout, it’s like a really low poly style model of your gun. Don’t fall into the over detailing here, I know you want to add some details but don’t. Just make a quick version of your weapon and be sure that everything has the right scale and nothing looks weird. I put an example below.

Directly after your blockout, it’s always a good idea to emulate an FPS camera, to see how everything looks from this angle during the production.

IMAGE-FPS-CAMERA-scaled

Mid-Poly Modelling

When I’m happy with the blockout, I start detailing everything. For this phase, I will make all the 3D details I need/want (screws, small holes, connections between two parts etc).
Some quick steps of how I work with mid-poly:

• After the blockout, I will first focus on the main shapes of the object.
• When I’m happy with the shapes and silhouette in general, I start making some Booleans. I try to stay in a non-destructive workflow as much as possible.
• Then, I add all the small details (it’s mainly the details here that will be baked, but can also be some 3D screws/holes too) using booleans, floaters, decals.
• Let’s say I’ve now applied my Booleans and my small details are done. I will then put a bevel modifier on this model (because I’m using bevels as support loops) and try to fix the model where the bevels are broken.

This “mid-poly model” is the unsubdivided version of your high poly but without the support loops. When you are done and happy with the end result, you just need to duplicate it and apply what you need to achieve the High Poly (support loops) duplicate it again to optimise it for the low poly (removing any unnecessary details).

High Poly Modelling

You have different methods for the High Poly (I will not talk about any CAD workflow here):

• Send your unsubdivided highpoly to Zbrush.*
• Use the subdiv modifier in blender.**
• Create a similar workflow as ZBrush, but in Blender with the remesh modifier.***

*These ways are used commonly now. Basically, you add a crease set on your hard edges -> then subdivide multiple times -> then apply Dynamesh on it and finally add some polish on the edges. Don’t forget to decimate it before exporting, or even doing a remesh.

**Classic subdiv workflow. There are some tricks to keep it non-destructive in blender:

1) A) On your finished mid-poly, add a bevel modifier and use classic bevels as support loops on your edges.
2) B) OR you’re using the bevel modifier profile to add classic support loops around your hard edges without bevels.
3) Then, just add a subdiv modifier and go back to your mid-poly to fix the issues, if needed.

What you can do when, if you are having some performance issues, is use Marmoset Toolbag for the baking. When you’re happy with your high poly, you can export the whole model WITHOUT any subdivision modifiers, and in toolbag 4 (not sure you’ll have this in the third version), you can subdivide your meshes and bake.

***This third one is the one, is the workflow I use. It’s a pretty powerful one shared by Ben Bolton on Twitter, thanks to him!

1) Add a bevel modifier on your mid-poly to get support loops.
2) Add a subdivision modifier with a level of 2/3.
3) Then, add a Remesh modifier, in voxel, with a low value (your model needs to be closed !!!).
4) Just finish with a Smooth modifier with a value between 50/100.

This is the one I like the most, it’s a quick way to get a really good high poly BUT it’s quite costly in perfomance.

You can use some decals and some floaters to add details without working directly on the model. It’s a powerful method that you should use.

Low Poly Modelling

Low poly modelling. If you did a good job with your mid-poly, the optimization for your low poly should be pretty simple and quick. All small details need to be baked (lines of the pistol grip, small holes, stock rug pattern, screws (depends on the level of detail you want). This is the time to connect all the boolean’s vertex, clean all the support loops, removing unnecessary faces, connecting some parts where the lines between them will be baked, etc…

It’s important to keep a good silhouette for each part; you need to have a “seamless polygon” shape. You need to think “if someone takes a close look at this piece, will this person see a low polygon silhouette?” It’s okay to add some polys to have a really good-looking shape; you can always reduce the polygon amount somewhere on your model if you’re really out of budget.

I recommend you to check the part above, where I talk about average polycounts. Of course, it’s an “average”. the idea is to stay around it. For example, if the average for a pistol is 10k and you are more around 11,500 or 12k it’s fine.
Like I said before, yes, we have more room for polys, but having a good, clean topology is still very important.

Unwrapping & Baking

UVs:

Unwrapping

Unwrapping is a part that A LOT of people hate. I’m quite the opposite, I love it, and I’m not using the word “love” by mistake here, I really enjoying unwrapping!
Some rules to remember:

1) All hard edges need to be a seam.
2) Don’t forget to put a different smoothing group on each island*.
3) Straighten the maximum islands as much as possible to save some UV space.
4) Optional but helpful: Try to keep the island’s orientation like the viewport (vertical/horizontal).

*Even if sometimes you have a good/clean bake without it, it will prevent some possible errors.
As written above, each hard edge needs to be a seam, that’s really important. Straight islands are really important too, even if you need to add more seams in your cylinder to achieve that, do it, it will save you UV space and some hairs during texturing. Having some distortion is “ok” too, but it’s unique to each situation, ask yourself if it’s “okay” to have some distortion here based on the camera distance, temperature area.

Mirroring is an important part too, if you have some repeating elements, then this is something you should consider. This is connected to the texel density too. The more you’re using mirror islands, the more place you’ll have on your UV space, and you can have some bigger texel on the small pieces. Mirroring big parts (handguard, stock, mag) is useful, but keep in mind that we might see it. For me, using mirroring on big parts is a go only if:

• when you are sure that the player will not see the other side of the gun, from close shots at least (games without any customization menu).
• If you are sure that you can break the texture enough to not really see it.
• if the texture will help and you already know that we will not see it (I think that the last point depends on the artistic direction a lot, for example: A weapon for a stylized game).

Packing

I’m using blender for all the UVs, even if there are some cool external software for unwrapping, I’m mainly using the default blender stuff with addons:

– Textools
– UV Squares
– UV Magic
– UVPackmaster 2

Some are free, some are paid, but for me, it’s worth the couple bucks so much!
It’s important to understand how packing works, and doing some hand-packing will help with that. These tools sav time, for instance, UVPackmaster will always do a better job than you and quicker. You have a lot of settings to match your needs, and if you really can’t get a perfect pack, there are other free addons out there, or you can fix it by hand.

Texel Density

Personally, it took me some time to really understand this. Now, I’m going to link THIS GUIDE from Anthony O Donnell, and a huge thanks to him for all the work he did on this, read it, please!
I’m not going to explain everything about Texel Density, a lot of people have already talked about it here, so I think you are well aware of it. What I’m going to say is, for guns, you have different “temperature” areas, the closer an area is to the camera, the more details (3D or more texel and/or bigger texture resolution) you will need.

This is a good example of what I’m saying:

Blue: Low level of detail. Low Texel.

Cyan: Medium / average level of detail.

Green: An “in-between” level of detail, usually a small area.

Yellow: Big level of detail. Bigger Texel.

Something else about having a bigger texel density, attachments will have a separate material if you have a customization system in the game (scopes, grips, suppressors, etc…). Of course, it adds more materials/draw calls on it, so you need to give it more thought. But for example, Modern Warfare 2019 has some pretty crazy texture sets (Body, Body2, Stock, Mag, Grip, Bipod, Sights, Scope, Barrel, Muzzle etc).

Bakes:

For the bakes, I’m using Marmoset Toolbag. For me, this is the best baker out there right now. It’s simple, quick, intuitive, you have good control over the settings whether it is for the bake itself or for each map you also have a simple access to skew correction.
I’m mostly using exploded models for my bakes. I’ve never taken the step to use the “bake by names” tool, I should give it a try!
It’s okay if your bakes are not perfect. By that, I mean you can keep some small errors. For example, some really small things can be a pain to fix, so:

 if it’s in an area that the camera will not see.
 Or if it’s far from the camera.
 Or if it’s a really small thing and it disappears with the texture.

You can “keep” the small artifact(s). A lot of those will disappear with a texture, if not then you need to fix it. That’s why it’s good, during your bake tests to put a quick texture on your model to see how it looks. I’m mainly talking about small artifacts here of course. If you have some big normal shading errors, you need to fix them in your DCC.
Be careful about the OpenGL & DIRECTX normal map!

For example, by default Toolbag will bake in OpenGL and substance painter uses DirectX by default. You have, in toolbag the possibility to directly “invert” the normal map when it’s baked (in the normal map bake settings).

Texturing

This part is for me the most important one. Like lights in the render pass, a good texture can enlighten a bad model, and a bad texture can kill a good model. Texturing is when you give life to your model, it’s when you tell the story of it. I approach each part of the gun as a “main” part. Here comes all the “firearm knowledge” I talked about earlier.

For me, a good firearm and PBR knowledge combined will help you to reach that “godly level”, by adding the last 10% of extra details.
Just for the people out there, who like me before, don’t understand when I say “PBR knowledge”.

I often translate it as “real-life materials knowledge”. You need to understand how materials work, how an object is created, how the “layers” are applied in real life.

A good example: During the texturing of the MP5A3, I shared some progress on The Dinusty Empire discord to get some feedback. And Jeremy Estrellado told me that it was looking great BUT it wasn’t quite realistic enough and that I needed to learn PBR/Materials a bit more.

This is at this moment that I started to watch some firearms creation videos, and it helped a lot. I watched all the steps of an AR-15 creation, from the metal bars to the last product look. That knowledge helped me to reach that last 10%, it also helped me to understand how gunmetal is made in real life.

I’m not saying you need to watch hundreds of videos for every weapon you want to make. Those videos I watched; I can apply this knowledge to every modern weapon, and/or just create some perfect smart materials to help me to get a really good base for the next project.

How do I work when texturing?

I’m not using any scanned textures as a base for my weapons, I have never tried it so far, I still need to test it. I prefer to stick to the basic usage of Substance Painter and all the tools it offers. A good idea about how I approach my texturing:

1) I try to always start with the normal details I need to add.
2) I’m adding some basic materials/smart materials.
3) I do a quick pass on the colour, just to match my ref quickly.
4) Then, I work on the roughness for each material.*
5) During the same time, I start to work on the damage/wear part.**
6) When I start to have a good overall look, I will start posting on some discord to get some feedback -> Really important part!
7) Then I apply all the feedback, I repeat the process of roughness improvements -> damages -> colour variations -> feedbacks – until I’m really happy with the result.

*The roughness is the most important part when you’re working on a PBR model. You need to have a great variation between materials, or the model will look flat and unrealistic.
**This is where firearms knowledge enters the game, I will try to imagine who will use this gun, in what environment, how old it is, what surfaces it’s touched. And convert all this info into values (discoloration/roughness variation around the hand’s positions and moving parts, dirt and grease, damage in the right areas, maybe some custom marks, etc).

MP7_Painter_Layers
M17_Painter_Layers-1

Lighting & Rendering

I wanted to reach some photo-realistic renders. I’m not a huge fan of dramatic lights anymore, for weapons at least, almost all weapons look the same on Artstation. I tried something new with the background I built.
It’s basically a 3/4 points lights set up, add to that, the ceiling lights of the room.

Nothing crazy here, just enough lights to show the roughness and colour variations. And having that beautiful look at the end. Lumen helped a lot with that for sure. Even if, for me, the final renders missed some AO due to Lumen/UE5, it still reaches the initial goal.

Feedback

Gathering feedback is the most important thing you should do. I know it’s scary at first, but you’re not alone here and it’s not good to work, head down on a project for a long period of time without getting any feedback. Join a discord (Dinusty Empire, Experience Points, Polycount, Artstation message) or a forum, anywhere you can contact some artists, asking for feedback, keep it cool and polite, these people have a life and can’t reply to everyone, don’t expect anything after an hour of contacting them. Nobody said you should do this alone, so go out there and find people who will push you to the top!

Final words

Thank you for reading this; It was a really great project to work on. I’ve never worked so long on guns and it was a blast, I’ve discovered new and interesting ways to work, I’ve learned a lot about texturing, and already have some really cool ideas for some personal projects. It will be educationally oriented, to help people with weapons creation and hard surface in general. I can’t wait to share this with you!

Thank you, Games Artist, for the invitation, it was a premier for me and I loved the experience. Stay safe, and do what you love!