logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Haussmann Architectural Study With ZBrush & Unreal Engine 5

Matthieu Mouthon discussed recreating a traditional Haussmann-style building with ZBrush, Substance 3D, and Unreal Engine 5, focusing on the texturing pipeline and workflows.

Introduction

Hi! My name is Matthieu Mouthon. I am a 3D Environment Artist in the video games industry. I have been working on various AAA projects for almost 5 years now. I am originally from France, and I studied in the United States at the Rochester Institute of Technology, where I graduated in 2020 with a degree in 3D Digital Design. I was part of the 2020 PlayStation Intern program, where I worked at San Diego Studio as an Environment Artist Intern, then later a junior on MLB The Show 21. After shipping that game, I went on to work at Valkyrie Entertainment in Seattle as a 3D Artist, working in a co-development capacity on God of War: Ragnarök and other PlayStation first-party projects. During my time there, I also worked on our internal project, Guns Up! Mobile.

I have since moved back to France and am currently an Environment Artist-World Builder at That's No Moon, working on an unannounced project. 

Inspiration & References

Working on my Haussmann Architectural Study originally came from a desire to strengthen my skills in sculpting and material creation, as well as challenging myself to create a robust art pipeline in order to make a beautiful, robust modular kit that would be ready to use in a professional game production setting. My decision to pick an architecture modular kit came from that, as it was relatively out of my comfort zone. I went with the Haussmann architectural style for a few reasons:

  1. Haussmann is an inherently ornate type of architecture with plenty of character and flourishes. I was interested in the challenge of replicating this in my own style.
  2. I am often in Paris visiting family, and I had plenty of opportunities to take all of the reference pictures I needed to study and replicate a traditional Haussmann-style building, as well as inform set dressing on the balconies and at street level.

I use PureRef to organize all of my reference pictures. I like to work a bit messy when gathering images, PureRef's infinite board size lets me plaster images wherever I want, and the overlay function is very useful when blocking assets out or detailing out a material. I'll generally organize my reference loosely under material reference and general visual ref that guides my decisions on the kit look itself, asset needs, set dressing, etc. I tend not to choose one singular reference picture to base the entire kit on, but rather pick and choose parts I find attractive or interesting about different ones and blend them together to create something unique. Digesting more information about the topic will also help me understand the rules of what I'm building, here, a specific architectural style with some precise rules about how its buildings are constructed.

When gathering references on a specific topic, I find it important to look beyond pictures and seek more real-world information about the subject. I went diving for information about Haussmann architecture on different fronts.

For example, you can see above I looked for information on the hierarchy of a typical Haussmann building. The left picture (in English) breaks a typical mixed-use building, while the right one (in French) highlights a traditional residential building. The ground floor door gives access to an inner courtyard, as well as stairs leading to apartments and the servant's rooms at the very top, which have generally been converted into studios or smaller apartments nowadays. The second floor is reserved for nobles, and the top full floor will generally have a balcony along the whole facade. The roofs are traditionally covered in zinc at a 45-degree angle. 

Modeling

I model my blockouts in Maya and quickly bring the kit pieces into Unreal Engine to check that the scale and the modularity of the kit work. At this stage, I'll also play around with rotating a directional light around the building to get a good feel for how the light reacts against its forms. I'll generally make scaling adjustments to various parts of the models at this stage, to make sure all of the elements weigh together harmoniously and accurately to my reference.

The most time-consuming part of this project was sculpting all of the kit pieces: 14 unique assets, although kit pieces that were part of the same floor shared similarities, and I would save subtools of some of the ornate bits from duplicating into other sculpts and save time. Each of the kit's floors and roof is composed of one "flat" asset and a corner asset, plus the door and balcony end pieces.

Retopology & UVs

Once I have my high-poly mesh in ZBrush, I'll duplicate it and create a low-poly version using Decimation Master. Since I'm working in UE5 with Nanite workflows, I can afford a higher polycount than I generally would with another pipeline. However, Nanite is not a magic wand, so you should still be mindful of your polygon count! With some smart use of masking in ZBrush, you can keep a high model fidelity with less tris than you'd think. Baking a high-quality normal map is still an essential part of the process.

I used RizomUV to unwrap my assets and prepare them for the bake. I like using RizomUV with assets coming straight from ZBrush. The geometry Decimation Master gives you is fully triangulated, and there is no edge flow. RizomUV makes it a breeze to deal with high polycounts as it'll automatically calculate the routes you want your UV seams to take based on edge selection. Its packing algorithms are also very good, and I generally only need to do minimal input to make sure my UV map is well-packed. I was fairly lax with this particular point on this project, as I worked with high resolution for my tilers and mask maps; I would have paid much greater care to pack my maps tighter on a real production, where texture memory is much more limited.

After I've baked my asset, I’ll bring it to Maya to prep its second UV channel, which I use to set texel density for my tiling textures. I'll grab the existing shells, align them all on the same rotation axis, and use the Texel Density tool in the UV Toolkit to scale all the shells appropriately.

Texturing Pipeline & Workflows

You can see above an overview of the Master Material I used for all of the kit pieces and assets in the Haussmann project. The only exceptions to this are the asphalt and sidewalk materials, which used a tri-planar material setup, and the street signs, which used a standard unique texture workflow since they required custom texture work.

I start with a tiling texture that I created in Substance 3D Designer. All of the shells used for that go in my UV0 channel. I import the maps into my material as a Param2D, then hook them up to Named Reroute Declaration nodes, these functionally act the same as portal nodes in Substance 3D Designer. This lets me reference it at any other point in my material graph by putting down another Reroute node and selecting the name I gave the previous one. It's super useful to work neatly and increase the comprehensibility of your graphs! 

I then set up my grunge to be projected in World Space on top of my tilers. There are a few different ways of doing it, including cheaper ways than this, but WorldAlignedTexture is the simplest and most robust implementation, so I chose to use it in order to save some time. 

Here is how I layer the grunges onto my material. The next function of this material to outline is the RGB Mask implementation.

I baked my normal map and created my RGB masks for every asset inside Substance 3D Painter. I have a couple of different Smart Material presets that I created for this project, and I used them as starting points based on what kind of prop I was working with. I also created an export preset for 3D Painter in order to get the exact maps I needed out of it for my in-engine setup:

Here is how the masks are implemented in engine:

And here is how I blend the Tiling Texture normals and the Baked normal.

And finally, here is the blending with the Roughness and Metallic channels.

Composition

When choosing my compositions, I chose hero shots and secondary shots. The hero shots would showcase my kit in the strongest way and be more manicured in terms of lighting, composition, final dressing with assets, etc. My secondary shots were still important, of course, but they received (just a little bit) less love and complexity.

Here are some images in which I explain some of the thought processes and techniques I use to create the hero shots:

All of the background buildings you can see in the images above are in various stages of the blockout phase. I originally had a higher scope with this project of three different Haussmann-style architecture kits, but I decided to cut the two extra kits when I realized that I was losing steam. I work full-time already, and I didn't want to spend triple the amount of time on this project. But since I already had the blockouts, I used them to spruce up and diversify my backgrounds! There was no wasted work here.

Lighting

I used a fairly standard setup for outdoor lighting in this project. A Directional Light to control sun direction/shadows, a skylight to fill in the shadows and tint them slightly, as well as Spot Lights to create fake bounces where I felt my compositions needed them. I used temperature to color my Directional Light a bit warmer (about 5500), and my skylight has a slightly cool-blue tint. It's a simple lighting setup that'll get you fairly far. I crank up the indirect lighting intensity in my Directional Light to make sure that I get some nice bounces in my shadow. You can also use the source angle to control the sharpness of your shadows (less is more on that front).

In addition to all of this, I also use an HDRIBackdrop to get some more tinting and information in my shadows, as well as create the skybox. For this purpose, I downloaded an HDRI from Poly Haven, they have plenty of fantastic resources to use, including several high-quality HDRIs with a great variety of scenarios.

My camera settings are fairly standard. I use a Cine Camera Actor and play with the lens settings. I used a focal length of 28 as my base for all of the shots.

Here's a tip that I learned while working on this project for faking some nice Depth of Field with the camera settings. Put your Min FStop at 0, then play with the Current Aperture settings at a very low value after setting your focus distance. If you fiddle with those values a bit, you can get a really nice blur on your foreground and background assets. 

I don't like the auto-exposure histogram that UE5 has enabled by default, so I set it up manually per camera shot. This allows me to have greater control over the final result of a rendered image and not rely on automatic exposure changes that can mess up your intention with a scene. Here's how to set that up inside your camera: 

And finally, I use a Post-Process Volume for my final color grading and some additional camera effects, such as film grain and vignetting. Color grading is so unique to a given image that it wouldn't be useful to share those settings, however, here are all of the other post-process effects that I've fiddled with to achieve my final look. 

Conclusion

I worked on this Haussmann Architectural Study in my spare time and with a few breaks for about one year. It was important to me that I kept a healthy balance between working on this project and my free time: I find that forcing myself to produce results faster will hinder my enjoyment of creating art. I already do this for a living 8 hours a day, there were times where I needed to do something else with my evenings! The main challenges were controlling the scope of this project and the trial-and-error process of setting up a robust pipeline. This was my first time authoring a custom material pipeline, with all of the functionality implemented based on my needs and the specific look I wanted to achieve. It's been a whole lot of fun, and I've discovered some pretty cool tricks along the way! I hope that you've found this breakdown of my process useful.

My advice for beginning artists is to never rush the process. Game art is a medium that is, by nature, heavy on technical knowledge, but you also have to work your artistic muscles! Your shader can be as complex as you want, but presentation is everything. The magic happens when you're able to use the technical tools to serve your artistic intention.

Thank you for reading this article! You can find me on ArtStation here, and you can also catch me over on BlueSky!

Matthieu Mouthon, 3D Environment Artist

Interview conducted by Gloria Levine

Custom rock brushes and alpha set, 18 brushes and height/alpha maps + 3 ztool rock meshes and a mini tutorial.

Error
(2000-0001)

Join discussion

Comments 0

    You might also like

    A Week After "Basically Announcing" Minecraft 2, Notch Basically Cancels It

    Instead, he and his team will focus on the previously-announced retro-style roguelike.

    Rumor: Possible Release Date for Grand Theft Auto 6 Revealed

    A video game store from Uruguay appears to have disclosed the launch date for the gaming industry's most anticipated title.

    Breaking: Unity Suddenly Lays Off Numerous Developers With a 5 AM Email

    Apparently, the entire Unity Behavior team was cut, alongside many other employees.
    • Sea Creatures VDM Brush
      by Nicolas Swijngedau

      Scales, Fins, Gills and anything you need for your creatures of the deep!

      Error
      (2000-0001)
    • Smart Materials
      by Adam Homoki

      Ideal for all kind of stylized work! With this pack you can be creative, consistent, and cost-efficient!

      Error
      (2000-0001)

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more

    ×