This tutorial was written by the amazing James Brady and appeared in issue 108 of 3D Artist. Subscribe today and never miss an issue!
Unreal Engine 4
This tutorial demonstrates industry-standard methods of creating visually detailed assets for current next-generation game engines. In this tutorial, you will be learning how to create a highly detailed asset, along with using packages such as ZBrush to sculpt in extra detail. You will be learning how to create topology and effectively unwrap that topology according to the importance of the asset’s silhouette. We will also be covering baking maps for your topology and the importance of using a cage during the process of baking to achieve high-quality projections. Last but not least we will be using a texturing package called Quixel SUITE to texture the asset, followed by importing the asset and its materials into Unreal Engine 4.
Step 01 – Gathering references
When approaching making a game asset to the industry standard today, it is extremely important that you gather as many references as you can. This puts you in a great position to study that reference when you are initially blocking out the asset in real time. In today’s standard of quality, it’s important that you are spot on with the asset you are creating. It’s extremely important that you also seek reference from real-life images.
Step 02 – Block out your model
When creating an asset, it’s important that once you gather references, you begin to block out the asset while carefully studying the references you gathered. This enables you to get the proportions correct, along with saving time by avoiding any mistakes that would arise later down the line once you have moved onto detailing in ZBrush. Another point to remember is, if your blockout is exact and you are happy with it, you can always use it as the topology and save time by only having to unwrap it at a later stage.
Step 03 – Create the high-poly model
Once you are happy with the blockout, you can then begin to create the high-poly model. This will be the model that you will bring into ZBrush afterwards for extra detailing. When creating this model, it’s important to remember that keeping your edges really smooth enables you to capture better detail on the normal map than if they were to be really sharp. This also allows the model’s materials to still appear crisp at a distance, along with avoiding any aliasing issues too. Remember to save a version of your high-poly model to use for setting up Color IDs later down the line.
Step 04 – Import your model into ZBrush
When you open ZBrush, click Import, which is located under Tool, to import your high-poly asset. This will bring up a window where you can select the high-poly asset you want to import. Drag it into the scene and click Edit to start working on the high-poly model. In this section you should split the model up into relevant subtools. This can be achieved by clicking Split To Similar Parts under the Split section of the SubTool tab. This means that any parts of the mesh that are duplicated can be split into a group rather than having to work on them individually.
Step 05 – Detail your model in ZBrush
In this step, you will start to add detail to your model in ZBrush. I would recommend subdividing your subtools to get the best-quality sculpts. This can be done by hitting Divide under the Geometry tab. You should start by using the ClayBuildup brush to make welds around the sections of the model that are connected, as this makes them look more realistic. You can then use the TrimDynamic brush to break up the uniform pattern of the welds. You should repeat this process until all of the connected sections of the model have sculpted welds. This also blends the model’s high poly together when baking the normal map, along with catching the light nicely due to the exaggerated welding sculpts. In doing this, you also eliminate any visible seams between different parts of the mesh.
Step 06 – Import alphas
Once you are happy with the first pass sculpt and you feel that the high-poly model is fully welded together, the next step is to use alphas to start applying rust and other kinds of detail to the model. You can find a variety of free alphas on the ZBrush website. When you download an alpha, you can import it by clicking Import in the Alpha Quick Pick tab on the left-hand side of the UI.
Step 07 – Use alphas to apply extra detail
Once you have imported an alpha it’s time to start using it. It’s important to remember to check your Z Intensity, which is located at the top of the UI. Adjusting this enables you to increase or decrease the intensity of the alpha when applying it to your model. You can also choose to Zadd or Zsub. These options enable you to choose if you want to sculpt inwards or outwards from the model. When applying an alpha, you should make sure that you are using DragRect, which is located under the Strokes tab. This enables you to click on a section of the model and by dragging the mouse outwards, you are adjusting the scale/size of the alpha when being applied onto the model.
Step 08 – Decimate your models
When you are fully content with the final quality of the detailing pass inside of ZBrush, it’s important to remember to decimate the subtools of the model, which contain millions of polygons. This not only decreases the size of your high-poly model on export to OBJ, but it also decreases the polygon count of that model too, which means that it wont take as long when baking your maps. You won’t lose any of the detail since ZBrush’s Decimation Master crunches the polygons around the less dense area, leaving the more dense, focused areas with the main polygons. You can do this by first clicking Pre-process Current under Decimation Master in the Zplugin tab. This process allows Decimation Master to analyse the subtool you wish to decimate and come up with the best algorithm for doing so. Once the pre-process has completed, you can then move onto decimating that subtool. This is done by adjusting the percentage of decimation and clicking Decimate Current.
Step 09 – Export your model from ZBrush
In this step, we will export your finished high-poly model from ZBrush. To do this, click Export All SubTools, located under Decimation Master in the Zplugin tab. This lets you export the entire model as one mesh converted into an OBJ file. This saves time without you having to export each subtool individually. ZBrush exports models with triangles instead of quads, so it’s always best to finish your detailing before doing so.
Step 10 – Unwrap your low-poly model
In 3ds Max, select your low-poly model and choose Unwrap UVW in the modifier drop-down list. The next thing you want to do is click on Open UV Editor and then use the Projection options on the right-hand side of the UI to unwrap your low-poly model.
Step 11 – Bake your maps with xNormal
Once you open xNormal, you should click on the High definition meshes tab and then right-click and select Add meshes. Select your high-poly model and then repeat this process in the Low definition meshes tab also. In the Baking options adjust the size to be 2,048 x 2,048 and switch Antialiasing to 4x. This will result in really crisp projections. Select Normal map and AO map and then select 3D Viewer. If you click Launch Viewer it will load up your high-poly and low-poly models and enable you to adjust the cage accordingly to make sure it projects everything in the final bake. Make sure you save your cage before exiting the viewer and then hit Generate Maps to bake.
Step 12 – Bake your Color ID Map in 3ds Max
Open 3ds Max and select the high-poly model that you kept before exporting to ZBrush. Open the Material Editor and apply colours to the mesh according to what materials you want to create. Once you are happy with these colours, make sure that the Self-Illumination Color tab is at 100%. This eliminates any shading in your Color ID bake, which makes it easier to apply materials to the mesh later in Quixel SUITE. Make sure the low-poly model is sitting in the centre of the high poly to capture all of the colour information correctly. Select Render To Texture, enable Projection Mapping, select all of the high-poly model’s meshes and click OK. A distorted cage will appear around the mesh; this can be fixed by hitting Reset under the cage tab on the right-hand side of the UI. Make sure objects and sub-objects are using the same existing channel. Select Diffuse map and change it to 2,048 x 2,048. Click Bake. This will now bake your Color ID Map according to which colours you have applied to the high-poly model. Time to take
it into Quixel SUITE!
Step 13 – Open Quixel SUITE
Head back to Quixel SUITE and select DDO. This will bring up a small window that allows you to select the low-poly model, the Color ID and also the bakes that you made prior to this. Once you have all the maps selected, change the resolution to 2,048 along with making sure the Texel Density is also set to 2,048. This enables you to get some nice renders in Quixel SUITE’s built-in render system 3DO. Select Unreal 4 under the Export Target box and then click Create.
Step 14 – Texture with Quixel SUITE
Once you have loaded everything up in Quixel SUITE, it’s time to texture! Select which materials you would like to use under the Material Preset option and then click Apply. This will apply that material to the entire mesh; instead, click the Color ID that you want to assign that material to under the Color ID palette. Repeat this process for your entire mesh until it’s fully textured. Once you are fully happy with the texturing it’s time to add some extra detail such as dirt and rust.
Step 15 – Add extra detail
This part is really fun. Select the Material Browser and choose any kind of dirt or rusty metal that you would like to apply to the mesh. Don’t be afraid to increase the intensity on the albedo or normal map to really make those materials pop on the mesh. Once you have selected the materials of your liking, click on the Edit DynaMask option, which will bring default options showing how you can apply that material to the mesh. If you want to use these, select once and then select Apply Mask. This will then apply that material to the highlighted sections on the mask. Applying dirt to the areas of the AO bake is also a great way to ensure that it hits the correct areas.
Step 16 – Save and export your materials
It is now time to save and export those materials for Unreal Engine 4. Once you have saved them, close Quixel SUITE and then open the PSD files for each of the materials. Save them as a TGA file but remember to invert the Roughness map. Unreal Engine 4’s Roughness map is read from black being too shiny to white being really rough. Once all the maps are exported as TGA files it’s time to import everything into Unreal.
Step 17 – Import your final asset into Unreal Engine 4
Once you have opened Unreal Engine 4, import your low-poly FBX file along with the TGA material files that you saved above. Right-click in the Content Browser window and select New Material. Name it to your liking. Once you open the Material Editor window, drag all of your final materials into it and link them up to the correct nodes, for example Albedo map to Albedo, Normal map to Normal and so forth. Once this is complete, hit Save, then apply that material to your FBX file. Once you drag your FBX file into the scene, you will see the asset lit and fully textured in Engine.