Tutorial :: Creating weapons for next-gen games ::

 Sup
 
So here I will be showing you the entire process behind making a weapon for a next-gen game/engine. I chose to make an organic weapon, a prehistoric / tribal dagger of sorts, since it's probably the easiest and fastest way to show the process. You can interpolate the same process for any other kind of organic weapon, staffs, bows, swords, etc... it just takes longer and there are more steps in the planning / sculpting stage to consider. Even though we are just dealing with a dagger here, all the important steps are there. Again this method is mostly used for organic non-mechanical objects.
While nothing stops you from sculpting a gun or rifle in zbrush (it's totally up to you), it's way more sensible to use a program like 3dsmax or XSI for mechanical hard-edge objects, so that you get good results.
People ask me all the time what takes longer to create, something organic or mechanical? While it depends what you are making first of all, it usually takes waaaaaaaaaaay longer to make mechanical stuff, like the Uzi Sub Machine Gun that I linked in the intro blog. That took 2 days to create the high res model, and if I have the time, I will show you exactly why. Whereas what I am about to show you, took about an hour or so to create (and texture) the high res.
 
So let's get started with the basics. It's organic, so we bust out the Wacom and zbrush to sculpt it. Usually when I do a 3D doodle and I'm not really sure what direction I will be taking, so I start everything in zbrush, like in the timelapse video I showed in the previous blog. However, since I know what I will be doing from the start in this case, it's easier to model a base mesh in 3dsmax of roughly what my model will be. When you create a base mesh in max to be imported into zbrush, you want your objects to have consistent subdivision of polygons, so when you subdivide the object in zbrush, you will not get areas which are more subdivided than others. And it's even more important to have your object in quads (4 sided polygons), and not triangles, which will subdivide like shit in zbrush.
So here we go, we are doing a dagger right? so we go into 3dsmax, and we model extremely basic shapes, as basic as you can have it, while determining the core shape of the object. This is what we get:
 

 Yeah, you're right, it looks like cac



Now that we have our base mesh, we export it to zbrush. We could have used a single piece for the whole thing, but it's better to split your object into manageable parts.
So we export the handle, and then the blade, as separate files. We export them as .OBJ which is the most common 3D filetype in the industry (game/movies). Every 3D program should be able to read an OBJ file, if it doesn't, don't use it.
So now that we have both pieces exported and ready as OBJs, we import them into zbrush 1 by 1 and into the same zbrush document. We consequently get two subtools in zbrush, the handle, and the blade.  

Now for the fun part! We are about to sculpt that piece of shit into a dagger. So what we do is go to giantbomb.com/podcast, load up the latest bombcast (this is key), and start working. I didn't use any references this time, so I kind of sculpted "whatever", but it's usually a good idea to bring up pictures of ancient weapons in this case, and put them up on the second monitor to get some good ideas; or obviously if you are working from a 2D concept or model sheet, put that up on the second monitor.  
 



 
Now when you are sculpting, the main workflow is to work as much detail as you can at your current subdivision level (polygonal count). So at the low polygon levels, you want to move stuff around and get the general shape in. Once you start subdiving into the hundreds of thousands or millions of polygons, you can then start detailing. Once the sculpting process is complete, you can then paint color over the millions of polygons you have, which is called... holy crap... PolyPainting. Sculpting and coloring it took me roughly the amount of time to listen to the PAXcast, so roughly an hour and a few minutes. (sorry for the shit vimeo quality which blurs everything out, you can download the quicktime version at the video's webpage if you want)
 

 
 

 
 
 
 Completed high res model with polypaint coloring


 
Okay, so now that the sculpting (and high res is complete), what we are going to take out from this is the high res mesh itself, the coloring (diffuse map) since we painted it, and also we are going to create our low-res model straight from zbrush thanks to a zbrush plugin called decimation master. What decimation master does is take a high-res model in the millions of polygons and reduces it down to whatever polycount you are aiming for.
In this case, our low-res will be about 5000-10,000 tris, which is good for First Person Games. That's actually a lot for a knife in a FPS, but that's fine for now. If we were making a low res of this for a Third Person Game, we would have had made a low res of 1000-5,000 tris, depending on the complexity. This dagger is pretty simple so we can keep things low.  
Here comes a complicated part. We need to export our color painting off of the high res and onto the low res, right? To do that, we need it to have a texture unwrap on it. But wait, to decimate the model, we had to combine both subtools into a single piece. And when you combine both pieces into a single object, zbrush loses the unwrap that both subtools previously had, and also zbrush loses the subdivision history, so you can't go back to your low res version! So we have to reconstruct the object that you have above, while having it keep the coloring. This involves a tricky step in zbrush where you duplicate the model and reconstruct one of them so that you can have access to lower subdivisions. You also have it borrow the color polypaint. Once you do these two things, you will have an object that has all its subdivision states along with the colors! Now that you have that, to export the coloring into a PSD from zbrush, like every other object, you go to the lowest subdivision and export the color texture. Pretty complicated shit eh? I haven't even started.
 

 Merging two subtools into one complete object, but with lost subdivision history :(


 Yikes! That's not much, actually, in the world of zbrush. I've worked in statue scenes with 45million polygons in total. My computer hates me!

So now that I reconstructed the high res via a cloned high res, I can now go through all the subdivisions and I have the polypaint intact and available at the lowest subdivision! This is key because when you export a texture (the colors) from zbrush, you want to export from the lowest subdivision of your object so that it doesn't fuck up the texture you are exporting:
 

 
 

 So from the lowest subdivision you see there at the end of the video, I use GUVTiles on the object so that it generates an unwrap for the object.
 

 This is what an automatic unwrap from zbrush looks like (like shit), and why it's important to export from a low subdivision (less squares)

Now we decimate the high res model to get a cool looking low res model, you dont need to use Decimation Master, you can do this manually my modeling your own low poly over the high res, its just that decimation master is quicker for that stuff:
 

 Low res in-game model, decimated from a 3,5million polygon model, nice! You can probably tell that we can optimize further and that there are a lot of useless polys in the model, but for the sake of the length of the tutorial I will just keep it this way. 


We then export the decimated low res and import into 3dsmax where we will unwrap the low res. This is so that the low res can "accept" the Color map, Normal map, Spec map, Ambient Occlusion map, that we will be giving it. Since the dagger is symmetrical, we can save texture space by deleting one side of the dagger and only unwrapping that part. Once one side is unwrapped, we then mirror the mesh so that it gets the other side back, just that the other side uses the exact same unwrap the first side is using. Unwrapping is the least fun job of an artist, like, ever.
 

fun stuff right here


  Now that we have our low res unwrapped, we can finally start the most important process, transferring all the shit from the high res to the low res. I use x-normal for that. In x-normal, you have to:
 
  • Import High Res models
  • Convert High Res Models from OBJ to SBM
  • Import Low Res Models
  • Apply Diffuse texture to High Res Models (zbrush's exported texture, has to be flipped vertically). 
  • Set values for proper normal baking (ray distances between high res and low res)
  • Bake and save normal map
  • Bake and save Diffuse map
  • Bake and save Ambient Occlusion map
  • Bake and save Cavity Map (optional)
 
 
Woot! finally, the 3 most important "maps", gotten from the high res onto the low res's unwrap thanks to x-normal.
 
Now for some photoshop magic, we will take these three maps and combine them in photoshop in different ways to create better textures than this default crap.
Once the awesome-sauce textures are done, we test them in 3dsmax on the model to see if anything is wrong. The textures I made in this case are:
 
  • Diffuse map (color of object)
  • Specular map (Shininess of object and color of shine)
  • Normal map (3D light information of object)
  • Self-Illumination map (Glow, for the blue parts of the knife)

After this it's pretty much exporting to whatever engine you want. I'll be exporting to Unreal Engine 3. I don't have much experience with it since we don't use it at Ubisoft, we use Anvil and Dunia instead. However, it's a learning process for all of us so let's do it for UE3. 
 
After importing an ASE. of your low res and TGAs of your diffuse, normal, spec, emissive (self illumination) into the package of your choice, you can now place your object into the engine, create a new material and link those textures into the corresponding slots in the material.
 

wihtout glow/self illumination


with glow

Tadaa! That's it. All that is left technically is to create LODs (level of detail over distance) and since its a weapon, animation riggers will set up bone systems on the weapon so characters in the game can hold it. As an artist, your part is done right about now.
 
Hope you enjoyed this little tutorial/look into what it takes to create assets for a game these days. 
28 Comments
29 Comments
Posted by warxsnake

 Sup
 
So here I will be showing you the entire process behind making a weapon for a next-gen game/engine. I chose to make an organic weapon, a prehistoric / tribal dagger of sorts, since it's probably the easiest and fastest way to show the process. You can interpolate the same process for any other kind of organic weapon, staffs, bows, swords, etc... it just takes longer and there are more steps in the planning / sculpting stage to consider. Even though we are just dealing with a dagger here, all the important steps are there. Again this method is mostly used for organic non-mechanical objects.
While nothing stops you from sculpting a gun or rifle in zbrush (it's totally up to you), it's way more sensible to use a program like 3dsmax or XSI for mechanical hard-edge objects, so that you get good results.
People ask me all the time what takes longer to create, something organic or mechanical? While it depends what you are making first of all, it usually takes waaaaaaaaaaay longer to make mechanical stuff, like the Uzi Sub Machine Gun that I linked in the intro blog. That took 2 days to create the high res model, and if I have the time, I will show you exactly why. Whereas what I am about to show you, took about an hour or so to create (and texture) the high res.
 
So let's get started with the basics. It's organic, so we bust out the Wacom and zbrush to sculpt it. Usually when I do a 3D doodle and I'm not really sure what direction I will be taking, so I start everything in zbrush, like in the timelapse video I showed in the previous blog. However, since I know what I will be doing from the start in this case, it's easier to model a base mesh in 3dsmax of roughly what my model will be. When you create a base mesh in max to be imported into zbrush, you want your objects to have consistent subdivision of polygons, so when you subdivide the object in zbrush, you will not get areas which are more subdivided than others. And it's even more important to have your object in quads (4 sided polygons), and not triangles, which will subdivide like shit in zbrush.
So here we go, we are doing a dagger right? so we go into 3dsmax, and we model extremely basic shapes, as basic as you can have it, while determining the core shape of the object. This is what we get:
 

 Yeah, you're right, it looks like cac



Now that we have our base mesh, we export it to zbrush. We could have used a single piece for the whole thing, but it's better to split your object into manageable parts.
So we export the handle, and then the blade, as separate files. We export them as .OBJ which is the most common 3D filetype in the industry (game/movies). Every 3D program should be able to read an OBJ file, if it doesn't, don't use it.
So now that we have both pieces exported and ready as OBJs, we import them into zbrush 1 by 1 and into the same zbrush document. We consequently get two subtools in zbrush, the handle, and the blade.  

Now for the fun part! We are about to sculpt that piece of shit into a dagger. So what we do is go to giantbomb.com/podcast, load up the latest bombcast (this is key), and start working. I didn't use any references this time, so I kind of sculpted "whatever", but it's usually a good idea to bring up pictures of ancient weapons in this case, and put them up on the second monitor to get some good ideas; or obviously if you are working from a 2D concept or model sheet, put that up on the second monitor.  
 



 
Now when you are sculpting, the main workflow is to work as much detail as you can at your current subdivision level (polygonal count). So at the low polygon levels, you want to move stuff around and get the general shape in. Once you start subdiving into the hundreds of thousands or millions of polygons, you can then start detailing. Once the sculpting process is complete, you can then paint color over the millions of polygons you have, which is called... holy crap... PolyPainting. Sculpting and coloring it took me roughly the amount of time to listen to the PAXcast, so roughly an hour and a few minutes. (sorry for the shit vimeo quality which blurs everything out, you can download the quicktime version at the video's webpage if you want)
 

 
 

 
 
 
 Completed high res model with polypaint coloring


 
Okay, so now that the sculpting (and high res is complete), what we are going to take out from this is the high res mesh itself, the coloring (diffuse map) since we painted it, and also we are going to create our low-res model straight from zbrush thanks to a zbrush plugin called decimation master. What decimation master does is take a high-res model in the millions of polygons and reduces it down to whatever polycount you are aiming for.
In this case, our low-res will be about 5000-10,000 tris, which is good for First Person Games. That's actually a lot for a knife in a FPS, but that's fine for now. If we were making a low res of this for a Third Person Game, we would have had made a low res of 1000-5,000 tris, depending on the complexity. This dagger is pretty simple so we can keep things low.  
Here comes a complicated part. We need to export our color painting off of the high res and onto the low res, right? To do that, we need it to have a texture unwrap on it. But wait, to decimate the model, we had to combine both subtools into a single piece. And when you combine both pieces into a single object, zbrush loses the unwrap that both subtools previously had, and also zbrush loses the subdivision history, so you can't go back to your low res version! So we have to reconstruct the object that you have above, while having it keep the coloring. This involves a tricky step in zbrush where you duplicate the model and reconstruct one of them so that you can have access to lower subdivisions. You also have it borrow the color polypaint. Once you do these two things, you will have an object that has all its subdivision states along with the colors! Now that you have that, to export the coloring into a PSD from zbrush, like every other object, you go to the lowest subdivision and export the color texture. Pretty complicated shit eh? I haven't even started.
 

 Merging two subtools into one complete object, but with lost subdivision history :(


 Yikes! That's not much, actually, in the world of zbrush. I've worked in statue scenes with 45million polygons in total. My computer hates me!

So now that I reconstructed the high res via a cloned high res, I can now go through all the subdivisions and I have the polypaint intact and available at the lowest subdivision! This is key because when you export a texture (the colors) from zbrush, you want to export from the lowest subdivision of your object so that it doesn't fuck up the texture you are exporting:
 

 
 

 So from the lowest subdivision you see there at the end of the video, I use GUVTiles on the object so that it generates an unwrap for the object.
 

 This is what an automatic unwrap from zbrush looks like (like shit), and why it's important to export from a low subdivision (less squares)

Now we decimate the high res model to get a cool looking low res model, you dont need to use Decimation Master, you can do this manually my modeling your own low poly over the high res, its just that decimation master is quicker for that stuff:
 

 Low res in-game model, decimated from a 3,5million polygon model, nice! You can probably tell that we can optimize further and that there are a lot of useless polys in the model, but for the sake of the length of the tutorial I will just keep it this way. 


We then export the decimated low res and import into 3dsmax where we will unwrap the low res. This is so that the low res can "accept" the Color map, Normal map, Spec map, Ambient Occlusion map, that we will be giving it. Since the dagger is symmetrical, we can save texture space by deleting one side of the dagger and only unwrapping that part. Once one side is unwrapped, we then mirror the mesh so that it gets the other side back, just that the other side uses the exact same unwrap the first side is using. Unwrapping is the least fun job of an artist, like, ever.
 

fun stuff right here


  Now that we have our low res unwrapped, we can finally start the most important process, transferring all the shit from the high res to the low res. I use x-normal for that. In x-normal, you have to:
 
  • Import High Res models
  • Convert High Res Models from OBJ to SBM
  • Import Low Res Models
  • Apply Diffuse texture to High Res Models (zbrush's exported texture, has to be flipped vertically). 
  • Set values for proper normal baking (ray distances between high res and low res)
  • Bake and save normal map
  • Bake and save Diffuse map
  • Bake and save Ambient Occlusion map
  • Bake and save Cavity Map (optional)
 
 
Woot! finally, the 3 most important "maps", gotten from the high res onto the low res's unwrap thanks to x-normal.
 
Now for some photoshop magic, we will take these three maps and combine them in photoshop in different ways to create better textures than this default crap.
Once the awesome-sauce textures are done, we test them in 3dsmax on the model to see if anything is wrong. The textures I made in this case are:
 
  • Diffuse map (color of object)
  • Specular map (Shininess of object and color of shine)
  • Normal map (3D light information of object)
  • Self-Illumination map (Glow, for the blue parts of the knife)

After this it's pretty much exporting to whatever engine you want. I'll be exporting to Unreal Engine 3. I don't have much experience with it since we don't use it at Ubisoft, we use Anvil and Dunia instead. However, it's a learning process for all of us so let's do it for UE3. 
 
After importing an ASE. of your low res and TGAs of your diffuse, normal, spec, emissive (self illumination) into the package of your choice, you can now place your object into the engine, create a new material and link those textures into the corresponding slots in the material.
 

wihtout glow/self illumination


with glow

Tadaa! That's it. All that is left technically is to create LODs (level of detail over distance) and since its a weapon, animation riggers will set up bone systems on the weapon so characters in the game can hold it. As an artist, your part is done right about now.
 
Hope you enjoyed this little tutorial/look into what it takes to create assets for a game these days. 
Posted by warxsnake

the vids in the post take a while to load apparently, if you don't see them initially.

Posted by Diamond

Very nice creation of artwork.  It's always different seeing a practiced artist create something.  The order in which things (strokes of a pen, slices in a sculpture, and such) are done is baffling to me as a non-artist...
 
I have a question you could probably answer easily.  In so many games to this day you rarely see animations of stuff like fingers articulated to really hold weapons so it looks realistic.  It's still sort of in that kung-fu grip, especially in 3rd person games.  Is it just a matter of time consumed to get these things right, or do they keep the grips light to preserve compatibility with a large range of potential weapons or what?

Posted by Gav47

These posts are class, very in-depth and hope you continue to put them up in the future. Thanks
 
If anyone is interested in the three maps you can download a feature on the US PSN called "Killzone 2: Behind the Bullet". It shows a video running in the three maps and the finished product, every interesting.

Posted by SinGulaR

Awesome
Posted by warxsnake
@Gav47 said:
" These posts are class, very in-depth and hope you continue to put them up in the future. Thanks If anyone is interested in the three maps you can download a feature on the US PSN called "Killzone 2: Behind the Bullet". It shows a video running in the three maps and the finished product, every interesting. "
Thanks! Oh yeah, I checked that killzone 2 vid, it's very interesting!
 
@Diamond said:
" Very nice creation of artwork.  It's always different seeing a practiced artist create something.  The order in which things (strokes of a pen, slices in a sculpture, and such) are done is baffling to me as a non-artist...  I have a question you could probably answer easily.  In so many games to this day you rarely see animations of stuff like fingers articulated to really hold weapons so it looks realistic.  It's still sort of in that kung-fu grip, especially in 3rd person games.  Is it just a matter of time consumed to get these things right, or do they keep the grips light to preserve compatibility with a large range of potential weapons or what? "

Thanks! Yeah, animation is not my thing but I'd say that it's a combination of both. On one hand (hahaha..hand..fingers...get..it?..oh god) you have to optimize for memory and if that means only making one kind of animation for a multitude of cases then that's the best way to do it. On the other hand, it's the sheer number of animations you have to deal with when it comes to character rigs. On our project for any weapon you have animate idle pose, reload, fire, the transitions for all of those, and then repeat that process for every concievable angle the character will be facing. And then on top of that, you have to create those sets to work with each animation from the lower body. Sooo, Up Left -> Reload, Fire, Transition Up Right -> Reload Fire Transition Up Center Reload, Fire Transition, etc... So you tend to build weapons that have similar skeletons so that animations can be easily translated from weapon to weapon.
But again I'm not an animation expert so don't take my word for it.
Posted by UnsolvedParadox

Really nice tutorial! Now I feel guilty about the incredibly basic things I threw together for game design class in the Unreal editor,   back in the day... :)
Posted by CL60

You are awesome.

Posted by turbomonkey138

You sir have talent

Posted by iam3green

that looks badass. i have a question, what kind of programs do game artist use? i think u might know because ur using a game engine to make a awesome dagger.

Posted by Diamond
@iam3green said:
" that looks badass. i have a question, what kind of programs do game artist use? i think u might know because ur using a game engine to make a awesome dagger. "
He had a previous thread where he went over that.
Posted by iam3green
@Diamond said:
" @iam3green said:
" that looks badass. i have a question, what kind of programs do game artist use? i think u might know because ur using a game engine to make a awesome dagger. "
He had a previous thread where he went over that. "
thanks, it answered it.
Posted by buzz_clik

Brilliant blog, and fascinating video. Cheers for the insights!

Moderator
Posted by L33tfella_H
@buzz_clik said:
" Brilliant blog, and fascinating video. Cheers for the insights! "
this basically. it's always interesting to read about stuff like this, especially from someone with experience.
Posted by ZombiePie

This went a little over my head but was impressive nonetheless! Keep up the good work!

Moderator
Posted by warxsnake
@ZombiePie said:
" This went a little over my head but was impressive nonetheless! Keep up the good work!

"
Hehe thanks! I'm honored!
And thanks for everyone's comments
Posted by lemon360

thats cool
Posted by Gamer_152

Amazing work and great tutorial. This is one of the best things I've ever seen any Giant Bomb user post.

Moderator
Posted by zyn

Very cool stuff.

Posted by Absurd

This is really cool, I'm sort of interested in trying this myself but it seems hard to get into.

Posted by gingertastic_10

You sir are the coolest guy on the site now. Great work.

Posted by warxsnake

Sorry, small correction. The whole part about joining the two subtools (handle and blade) into one and reconstructing it from a cloned high res is not necessary in this case, you can take the high resolution handle and the high resolution blade and export each into x-normal with their own color texture, to bake onto the low res with no problems.
 
The only time you need to reconstruct an object is when that specific subtool has lost its subdivisions for whatever reason (lost the ability to go back incrementally to the lowest subdivision), i.e. lost the ability to export an unwrapped Polypaint color -> texture.  
 
Yeah I know..

Posted by GreggD

Good shit, man. You should post more models, as you create them.

Posted by Scooper

Very impressive. I had no idea how much talent went into making 1 item nowerdays.

Posted by Damian

This is great. Very inspiring. ZBrush seems to have let artists be artistic, and leave a lot of the math (that scares the crap outta me) behind. I gotta grab me some ZBrush!
Good stuff, man. Please keep these things coming.

Posted by warxsnake

Sorry for necroposting, 
but just to let you guys know I will be making another tutorial, this time it will involve the process behind creating a character for a next gen game, in this particular case, making something that would adhere to an artistic direction such as that in Mass Effect. It's a sci-fi character so that I could show additional graphics features that you would typically not get with traditional style, those include emissive textures (glowy parts on armor, lights, etc), as well as alpha textures to create effects such as transparent screens and holographic effects (like the holographic screens in the Normany Mass Effect ship).
I might extend the tutorial past the character and make props, vehicles and weapons for the same setting, and (much) later on, I will do the same for different style games, i.e. Bioshock (art-deco / steampunk / ) style for example. 
Just fyi, this will take a lot longer than the dagger :P

Posted by keyhunter

I once made a pretty sweet Humvee in maya. You should Zbrush a Humvee.

Posted by Jayge_

Man, you bring professionalism and seriously interesting content to the boards with these blogs. I'm not even an artist (let alone a 3d artist) and I still read/watched the entire thing. Awesome.

Posted by Hav0cc

Hey man! Awesome tutorial, Im using it do a short-sword type of thing, just to see if i can pul this off, but I'm getting stuck. 
 
Quote: " This involves a tricky step in zbrush where you duplicate the model and reconstruct one of them so that you can have access to lower subdivisions. You also have it borrow the color polypaint."  
 
Thats the part where I got stuck, I got no idea how to do this, and what you mean by 'reconstruct' a model. (im not too familiar with Zbrush btw, stated using recently.) 
Could you explain this to me and how to succesfully do this? 
 
Thanks man! Cheers