Emotional Robots would like to present a new asset this weekend - the flamethrower. The use of this asset doesn't require much explanation, but the process of how it was made is interesting. Our very own Robin Bonhoure is going to break it down for you guys, and show you how he went from concept to smokin' hot asset in under a week.

Who are you?
My name is Robin Bonhoure, I’m 23, I’m French and I’m living in Lyon, France. My portfolio can be found here: Bonhourerobin.com

I've always loved playing video games - I wasted many days playing on my NES. My last console was a Playstation, after that I never bought another console because I discovered the PC. After discovering the PC, I was very interested by the idea of making video games, so I started to mess around with Hammer (Half life Editor), and Unreal Editor, and 3DS Max to make my model. Several years have passed since I first opened those editors, and I have been able to cultivate that passion for game design into a career in the games industry, working at places such as Ubisoft. I'm currently working at Emotional Robots as a technical artist and designer, on their Warm Gun project.

What are you going to show us?
Well, I’m going to show you the process I’ve done to make our mounted flamethrower:

Design:
I started with nothing but an idea, and I wanted something that fit the Warm Gun style. Emotional Robots doesn’t have a lot of top-down management, so every artist on the team is their own art director and everyone can give his point of view on the actual work, which is a great thing. It cultivates a lot of unique creativity and constant iteration because everyone gives great critiques. While all assets pass through a quality control check; by the time it reaches QC the asset has been peer reviewed multiple times and our managers don't have to request many (or any) changes. The entire process is very smooth.

So after a lot of research and iterations I finally finished with these images, which show the highpoly version:

Low Poly:
Next, I made the lowpoly model: It wasn't too hard, I just deactivated all my “TurboSmooth” modifiers and deleted some edges:

Here is the process I used to make the high poly and low poly material above the frame:

For the high poly I used “Cloth” - very simple, I just use the frame for collision.
For the low poly, I used the awesome “ProOptimizer” tool to optimize the model.

The UVs were basic - I just used planar mapping, stitching and cutting a lot - nothing tricky. After that was done, I separated all UVs that shared the same space (symmetry) and put it on the right of the 1:1 UV space. To do that I used the function “Transform Tools”. I selected all UVs I wanted to move, set “U” to 1, and click “Offset”.

Baking:
After all the UVs had been set up, I needed to bake my high poly model.
But before making any baking, I organized my layers to make it easier:

Because I have a lot of little pieces, I had to baked all objects separately:

I rendered the normal map and the complete map next. When you put a white material on your high poly, create a skylight, and use the ray tracing, you can create a faked ambient occlusion map.

Normal map creation:
After having all my baking textures, I needed to reassemble these in one map:

Next I used my diffuse layer of scratches, import it into CrazyBump to get the normal map:

And then I assembled the two together by setting the scratches layer in “Overlay” and toggle off the “blue channel”.

Checking:
To check my normal maps I used the awesome directX shader by Laurens Corijn:

Texturing:
After I’ve seen that all my normal maps & UVs were working, I made the diffuse & specular maps:

I’ve made 3 materials: one for the frame, one for the flamethrower and one for the cloth.
I separated the flamethrower itself, because it’s the piece we will see in First Person, and it needs details. I separated the cloth too, because it’s the only material using “Two Sided”.

Import & Materials:
I imported the model into UDK:

And then set up the material:

I added reflection to the model for the metal pieces. I wanted to have a good control of the reflection so I made a reflection mask map which I embedded into the alpha channel of the specular map.

In order to properly send this off to our animator and pass quality check, I decided to do a basic animation in 3DS Max to show basic functions such as aiming, firing and reloading. The video can be seen below:

And finally, I imported it into UDK and attached one of our flame particles to it, to finish the setup and integration phase. The only thing left is to adjust damage properties (programmers) and rig/animate our characters to fit the asset (animators). After that, we'll be cooking!