Joel Alexandre talked about the way he remade Halo 2 Warlock map for Unreal Tournament with the help of UE4, Substance Painter and Quixel Megascans.
My name is Joel Alexandre, I’m 29 and I’m an Environment Designer from Viana do Castelo, Portugal. For 5 years up to now, I’ve been working as a 3D Artist at L3F Design de interiores where I develop projects with 3ds Max and V-Ray as well as virtual tours with Unreal Engine 4 and virtual reality with HTC Vive.
Some personal works:
These environments were created for the national competition PlayStation Awards, where I together with 4 other people developed a technical demo of a game. For it, we were awarded the Best use prize of the PlayStation platform and nominated for the best game.
Ever since I was a child I was always curious to know how the games I played were made. Then I discovered that the Unreal Tournament had an editor to build your own maps and I was fascinated though had no knowledge to do such a thing.
Not so long time ago I decided to return to this old passion. As now for professional reasons I have to use Unreal Engine, I decided to make a remake of a map of the series Halo, wizard/warlock. I always found this map fascinating and I thought it fitted well in the Unreal Tournament.
I started by blocking in 3ds Max so that I could see the scale of the map and test it in the game.
Detailing the Environment
Something that I have paid much attention to is Quixel. They have built a library fantastic both in quantity and quality, and I have been a fan of their work. I think the future of the CGI / video games industry is partly in photogrammetry. The realism, the quality of 3D models and especially the speed that this type of pipeline offers is immense. For this project, I used assets from Quixel Megascans to detail the map and thanks to it I spent only 7 days working 3 hours a day. I have a “hobby” subscription that allows me to use 2k textures and it is ok because UT4 maps do not have to be 500 MB or more as a big size can cause some problems on the servers.
After downloading all the assets that I decided to use, I imported them all into 3ds Max to examine, remove unnecessary geometry, and add modifiers like bend, symmetry, FFD etc. to adjust each asset to the proportions of the blockout.
I modeled the blocks for the pavement and its captions in ZBrush and added some extra geometry to the low poly model. That allowed me to use vertex paint inside Unreal Engine later.
Of course, many of the assets chosen in the Megascans library are from different biomes and the textures have very different values:
My next step was to adjust the textures to similar values, where they all shared a layer of moss. To make these corrections I used Substance Painter. Fortunately, Quixel also available for downloading high poly models which allowed me to bake the curvature maps and ambient occlusion needed to add my smart materials. I selected some Quixel materials to add moss:
Then I added a layer with the textures provided by Quixel and changed the normal auto map to OpenGL for its correct visualization.
On top of that, I used some layers with the moss textures chosen and adjusted.
Export to Unreal
Since the map is symmetrical, I only had to worry about adjusting and preparing the assets for 1⁄4 of the map.
To make it easier, I copied and positioned the remaining 3⁄4 of the map and defined the coordinates of the pivot of each asset to the point (0,0,0). So within the Unreal editor, I only had to copy and rotate the parts. Smaller assets such as the pillars and blocks of the pavement were exported and placed manually so that I could also break the repetition by positioning them in different ways.
After importing all the assets to Unreal, I started to do more tests with the lights while creating the master material that would be the basis for almost all the assets.
I have created only 3 base master materials:
- 1 for rocks, pillars, stairs etc.
- 1 for vegetation
- 1 for the landscape
I wanted to blend the landscape with the map assets, so I thought of choosing 2 materials that will be used both for the landscape and as s master material of the assets.
The terrain material is very basic with 4 materials to paint on the ground. L1 and L2 are the same ones that I will use in the master material for the remaining assets. Here the water is added to make a bit of mud:
In both materials, I created a world position graph that would serve to adjust the values of the scale and coordinates equally to ensure that the textures of the assets with the respective textures of the landscape will always hit right:
For the asset master materials, as the first layer, I exported the textures from each asset to in Substance Painter and created and adjusted some simple parameters like the intensity of the normal map, which is something that I consider useful to adjust in real time.
Then I created the same layers as in the landscape material: L1 and L2 and also water.
To paint these layers on the assets I used the node vertex paint: the red channel for L1, the green channel for L2, and blue channel for the water.
Adjusting Texture Brightness
Before proceeding to the map illumination, it’s very important to ensure that all textures have similar luminous values. One way to realize this is to open the textures in the Histogram Panel in Photoshop:
The textures have on average 88 of luminosity. It’s because very dark or very light textures would affect the illumination of the scene. A color with 55 luminousness in the engine is practically black, but if it is less than 55 it will greatly increase the light of the scene but completely ruin the visualization of the lighter textures. That’s why I kept the textures inside the number 88 and it seemed ok to me.
Here I used a CubeMap for the Skylight, Directional light as the Sun, and Atmospheric fog and point lights with the following characteristics:
During post-processing, I’ve adjusted the white balance, increased the contrast and global illumination.