Matthew Hickey talked to us about the Strange City project, discussing the creation of the Dishonored-inspired urban scene with elements of neo-classical architecture, the process of translating a 2D concept into 3D, and adding unique dirt and wear to the props using Blender, Substance 3D Designer, and Unreal Engine.
Introduction
Hi folks! I'm Matthew Hickey, an Environment Artist looking for my first role in the games industry. My passion for 3D art began a few months before I started university. I wanted to get a headstart on some of the things we'd tackle in the course, so one of the tutors recommended I try Blender, and I've been hooked ever since.
I studied Games Art and Design at Norwich University of the Arts. After graduating, I further developed my skills using various online resources (tutorials, articles, breakdowns) and seeking feedback on my work through Discord servers like ExperiencePoints and Dinusty Empire.
My interest in environment art started with games like Minecraft and Terraria. I would spend hundreds of hours building elaborate bases, outposts, and camps and adding little story elements.
Getting Started
The Strange City project was largely inspired by a wonderful piece of concept art by Ukrainian artist Maksym Harahulin. I loved the sense of scale and how the composition felt almost claustrophobic despite it being quite a large space.
The concept is very reminiscent of the Dishonored games, and through that connection, I found a lot of striking images of the neo-classical architecture in the city of Edinburgh. As I was refining the blockout, I decided I wanted to incorporate some of those details into the design of the buildings and my trim sheet.
Asset Production Pipeline
Everything is modeled using Blender's default poly modeling tools. The UV unwrap was equally straightforward – I placed seams on hard edges and mapped islands to different parts of my trim sheet. I used the TexTools add-on to stack similar islands to speed up the process, which I could then distribute on the X and Y axis using the "randomize" tool for variation. As I wanted to utilize a detailed Normal Map, I created a 2nd UV channel, unwrapped, packed, and scaled the islands to match my texel density.
Texturing
From the start, I knew I wanted to use timesheets, as it's a skill I want to develop further and learn more about. To create it, I divided a 4x4 plane into 8 sections and modeled the architectural details I mentioned earlier. I then baked the texture in Substance 3D Designer, adding some chipping effects using slope blur nodes. I then used the curvature derived from the normals as a base for my Albedo Map and blended grunge textures to add more color variation.
For more detail, I created three unique Grunge Maps in Designer, which I then exported as a channel-packed texture. Using a combination of Lerp, vector 4, and scaler parameter nodes, I can control the color of each texture and the mask's overall opacity.
Once the blockout stage was complete, I began replacing blockout geometry with more refined models, creating materials with controls for colour and normal adjustments, followed by a decal pass, and a lighting pass.
My approach to composition was to use the concept as a rough guideline. Initially, I wanted the camera to be very tight, but as I progressed, I decided to pull the camera back and make the sensor width higher to show more of the scene and to give a better sense of scale.
As I wanted this project to be a practice in modularity, I altered the design of some of the buildings, and I added some foliage and decals that were not present in the reference.
Creating the character model was straightforward. With the camera angles I intended to use, I knew I didn't need to create the whole body. So, using cloth simulation, poly modeling, and sculpting, I created a pair of legs, a cloak, and a mask utilizing the Unreal Engine 4 mannequin with a custom pose as a base.
Lighting, Rendering & Post-Production
The lighting is mostly driven by a Directional Light and a SkyLight, with a few Point and Rect lights to create some faked bounce lighting. I used a few hidden, scaled-up cubes as shadow blockers in key areas to better match the concept, and I placed a lot of fog sheets from Epic's "Blueprints" sample project to suggest depth and establish a moodier feel. To contrast the pinks and yellows on the right side, I used color correction regions, along with a few decals and point lights tinted blue.
One of my favorite parts of creating an environment is movement, as this breathes an extra bit of life into the scene. To create a swaying effect on my cables and the character's cloak, I used sine and "rotate about axis" nodes, with a few parameters for control. The result is masked with the vertex color node and connected to the World Position Offset input.
To create the moving cloud shadows, I made a material set to "light function" in the material domain, with a slightly warped Gaussian noise texture connected to the emissive input. Panner and Texture Coordinate nodes are connected to the UV's input of the texture, with some scaler parameters to control the panning speed and the scale of the texture itself.
For the cinematic, I needed to manually keyframe the movement of the shadows, as leaving it as a real-time effect gave me some undesirable results.
Conclusion
This project took roughly six months to finish. I worked on it between my days off from my day job, and I had to take a few breaks between for health reasons. I think it's important to both give yourself time to recharge and to push your work as far as you can, so I would advise beginners to relax a little – the quality of your work and your overall health (both mental and physical) are vital to your success.