Building Assassin's Creed Odyssey Modular Scene With UE & 3D Designer

Environment Artist Brecht Sohier walked us through the Plains of Lakonia, an authentic ancient Greek building that would seamlessly fit in with the world of Assassin's Creed Odyssey, detailing the approach to the creation of assorted pots, vegetation, and sculpted rocks, and sharing valuable tips for beginner artists.

Brecht Sohier is a third-year student at Breda University of Applied Sciences in the Netherlands, where he studies 3D Visual Arts. Brecht got into 3D art in college where he started playing with Unreal Engine in his free time, and then decided to pursue 3D environment art full-time at university.

To learn more about Brecht's latest project, Plains of Lakonia, a love letter to the beautiful world of Assassin's Creed Odyssey, we spoke to the artist himself, who explained the step-by-step process of recreating the modular environment based on game concept art and real-life scenery and shared a lot of useful advice that will help you get started with environment art with Unreal Engine, Blender, ZBrush, and Substance 3D Designer.

Plains of Lakonia originated as a university assignment to recreate a real-world building in the style of an existing game. Brecht chose to recreate a building from the Amalfi coast in the style of Assassin's Creed Odyssey as the combination of the vibrant and messy architecture of the Amalfi coast with the colorful world of the game instantly clicked for me.

Still, while Brecht was relatively happy with the result of this assignment, he also felt like it had a lot more potential and room for improvement, so, while wrapping up this project, he already started planning out a version of the project recreating an authentic ancient Greek building that would seamlessly fit in with the architecture of Assassin's Creed Odyssey.

"I first started analyzing the game's art style more thoroughly, as that was something I found lacking in the original project. Thankfully, the development of Assassin’s Creed Odyssey is very well-documented, with lots of talks and artwork being publicly available. I observed the shape language of the architecture and the use of color and ornamentation on the buildings. I also had a really good time following the talks by Vincent Dérozier and Pierre Fleau about how the game’s world was textured."

"I then walked around in the game's 'discovery tour' mode, where I could freely observe the world without any gameplay restrictions. I took a ton of screenshots of various buildings, vegetation, props, and textures.

One important thing that stood out to me which would later have a huge impact on the silhouette of my building, was how 'wobbly' the common houses in the game are. A lot of geometry features some form of deformation, which makes the boxy houses a lot more interesting to look at and gives the overall construction a messy look."

"After gathering references from the game, I started gathering real-world references. I used a lot of Arabian, African, and Native-American buildings as reference for my own building, as their shape language came very close to that of the game.

I also gathered references for the landscape I wanted to go for. I wanted the terrain to be lush and grassy so I could play around with natural colors coming from trees, flowers, and other vegetation. I tried to look at both landscapes from the game and real-world locations.

Finally, I borrowed the game's official art book from our school library and looked at concepts for the architecture. One particular building, concepted by Miguel Bouchard, stood out to me because, even though it had a very simple silhouette and minimal decoration/set dressing, it offered a lot of room for expansion and personal touch. I then took some rough measurement estimates of the building and broke down the modular kit."

When asked about the approach to planning the composition, Brecht explained, that at the start of the project, he decided to hold off on blocking out the whole landscape and keep the focus on the building. However, breaking down the process in these two different stages helped Brecht remain focused and develop both elements to their full potential.

"I really wanted the building to be modular as this was also a requirement for the original brief. I first took the original concept into Krita where I color-coded different sections of the building and guesstimated the metrics of the entire structure and each individual piece I would need. I then took the concept art into Blender where I 'traced' the facade, which formed my first block-out."

"Two additions I made to the building that weren’t in the original concept were the roofs and the shed extension to the right side of the house. I made these changes to give the house a more unique silhouette and break up its very cubic shape. I had planned to add ivy to the building from the start and I wanted to get this in-engine as soon as possible because I thought it would add some really nice color contrast to the building and would fill up some of the empty spaces on the walls."

"I also did a first texture pass early on to test out the color scheme of the building, the paint strips in particular were very important to me as these would involve a secondary UV channel workflow, which was completely new to me, and I wanted to make sure this workflow was properly working in-engine."

Moving on to modeling, Brecht shared that the modular kit was made in Blender:

"I blocked out the modular kit with very simple planes that exclusively featured the measurements of my building, I didn't cut out any windows or doors yet. When detail-modeling the modular kit, I made sure to deform the mesh itself a little bit for each wall using Soft Selection in Blender. This would break up the ‘straightness’ of the building and create a more interesting silhouette. I also made sure to round off all my corners and edges to bring the building even closer to the Assassin's Creed Odyssey architecture."

"After studying the buildings from Assassin's Creed Odyssey some more, I noticed that most of them featured some extra deformation at the bottom, I thought this would be a good addition to my own building as it would even more break up the cubic shape. The drawback of doing this was that I essentially needed two different modular kits, one for the base of the building and an additional one for the first floor.

The paint bands for the modular kit were created using a second UV-channel workflow. The walls essentially have two UV maps. One that is set to the proper texel density of 1024Px/M and an additional one that is set to fill a single UV tile, so that the paint bands tile properly.

To add more depth to the walls, I cut up my brick tileable and stuck some mesh bricks into the corners of the building, this made them look messier and more added to the silhouette."

As for the roofs, they were created based on a previously created tileable.

"I grabbed a plane, which I gave the correct Texel Density, and then created Edge Loops based on the position of the roof tiles. After finalizing my roof, I played around with Soft Selection a bit to deform the shapes of the roof. I also added little splotches of mortar between the tiles to make the roofs more believable. This workflow saved me a huge amount of time by not having to sculpt, bake, and manually lay out a bunch of roof tiles on three different sets of roofs."

According to Brecht, most of the workflow for the pots was very straightforward. They were SubD modeled and then had their geometry optimized by removing unnecessary Edge Loops.

"The broken pots were created by first grabbing a sphere in Blender, adding a Displace Modifier with a tiled noise to create a live Boolean object which I moved around to create interesting cracks.

To quickly clean up the broken pots, I selected polygon sides in Blender and set the number of sides to greater than 4. This automatically selected all N-Gons which I then triangulated."

"The pots use a terracotta tileable with a fresco trim I sourced from various online images which I made tileable and added additional ornamentation to in Substance 3D Designer.

To give the pots additional variation in-engine, I used a trick I picked up from a Dekogon video. By using an Object Position node and masking out the X, Y, and Z axes, I was able to multiply a random color based on position with my base color map. This gave me a lot of variation between assets while also only having to use a single tileable to texture all of them."

"Rather than fidgeting around with cloth simulation for the awning sail, I chose to save time by going with a SubD Soft Modeling workflow and a tileable. I looked closely at my references to make the cloth look as believable as possible.

To create unique cloth tears on the sail, I used a second-UV channel workflow so I could paint them in Substance 3D Designer. This means the sail features two UV maps with different texel densities that get split in-engine.

UV-0 targets the tileable and features the proper Texel Density of 1024PX/M.

UV-1 scales the UV to a single tile to allow for unique Substance 3D Painter texturing.

I also added a dirt and color variation mask in Substance 3D Painter which I all packed into an RGB output."

Brecht revealed that he really wanted to learn how to use proper workflows for rock creation with this project since it's something he never got the chance to look into and was very curious about.

"I had also never done rock sculpting prior to this project, so I started by looking at Daniel Castillo's Essential Rock Creation Techniques course and then went to work on it myself. The high poly for the rocks was sculpted in ZBrush. The most important lesson I learned while sculpting rocks for a project like mine is to not overdo it. You can add detail to rocks until the world ends, but in the end, are you going to see any of that detail unless you're face-to-face with one? Probably not. I recommend going for large to medium shapes. Another drawback of overdoing the surface detailing on rocks is that it might mess up your silhouette."

"My most frequently used brushes were:

Trim Smooth Border: useful for building up large shapes and harsh edge damage. Frequently switch between the alt-mode to create more interesting shapes.

Trim Dynamic: blend surfaces together and create softer edge damage. I used this with a square alpha to create some more rocky surface shapes.

Flakes: used to build up medium surfaces, I used a square alpha for this one as well, once again to give the surface a more roughed-up look.

Orb Flatten Edge: I use the alt mode of this brush to build up medium surfaces, I also use this brush to create sharp angles and flatten out areas where I went overboard with surface detail.

For the cracks: I used a brush pack called Marble Damage Brushes which I found on an online forum. I do think I went quite a bit overboard on my cracks, be careful with this when sculpting your own rocks as they really stand out in-engine."

"To create the low poly, I ran the rocks through Decimation Master in ZBrush and UV-mapped them in Blender. When UV-mapping, I tried making my islands as big as possible, as any small seams would mess with the normals when baked. The rocks were baked down in Substance 3D Painter, where I also set up masks for in-engine customizability. I packed these textures into an RGB output:

R: Ambient Occlusion

G: Edge Wear

B: Dirt

The main tileable for the rocks comes from a material I created in 3D Designer. Because I had never done rocks, I had also never looked into tileable rock textures. I thought this would be a really good learning opportunity and I followed Daniel Thiger's Rock Creation Techniques course to learn the basics. I then went to work on my own material. In-engine, I used an Absolute World Position setup for my main tileable and an additional detail Normal which I sourced from Quixel's Megascans library. I then combined this world-aligned setup with my baked Normal."

Finally moving to the vegetation, the ivy was created in ZBrush and Substance 3D Painter. Brecht, however, doesn't recommend assembling it by hand in Blender, since creating branch atlases in SpeedTree and baking these in 3D Designer is far a more efficient way of getting natural-looking foliage clusters.

"I first sculpted six individual leaves, assembled these in Blender, added roots using Curves, and baked these down in Substance 3D Designer. In Blender, I cut up the ivy and added some extra leaves on top of my cards to give the cards a sense of depth. I also used the Shrinkwrap modifier to create custom pieces of ivy for certain parts of the building."

All of the trees for this project were created with SpeedTree. The tree Brecht wanted to highlight was his first olive, which uses a scanned base. The artist shared, that he would've loved to go through the workflow of scanning his own olive tree, but unfortunately, there are not a lot of wild olive trees growing in the Netherlands, and therefore he had to source the base from Sketchfab.

"I first cleaned up the raw scan in ZBrush by cutting off noisy and messy parts of the trunk and then decimated the mesh.

After optimizing the geometry and cleaning up any unnecessary verts in Blender, I UV-mapped the tree, trying to keep my islands nice and big to create as little seams as possible.

I then baked the high-poly in Substance 3D Designer and transferred its maps onto the low-poly, which I brought in-engine for testing. After cleaning up blurry textures and harsh seams, I brought the low-poly into SpeedTree and used Stitch to procedurally add branches to the tree. I also created a bark tileable from a single photo using Substance 3D Sampler."

"The olive leaves were first SubD modeled in Blender, textured in 3D Painter, and then assembled into branches in SpeedTree, where I procedurally created variations and dead branches.

Afterward, I assembled a branch atlas by laying out the various branches within the bounds of a plane, cutting them up, and kitbashing some additional parts together. I then baked down the atlas in 3D Designer, making use of the transferred texture from the mesh attribute to assign the tileable bark to the branches in 3D Designer."

The mountain was created with Gaea, a software Brecht learned for this project. It allows you to procedurally create terrain assets using a node system. Gaea was easy to use for Brecht as Substance 3D Designer gave him a good base for node-based workflows.

To texture the mountain, he used an RGBmix node to combine different types of wear that he would later assign different textures to in-engine.

Brecht explained, that his main goal was to texture the building using mostly tileables and a trim sheet:

"All my tileables, including my trim sheet, involved 3D Designer in some way. Substance 3D Designer is a software I'm very comfortable with, and I wanted to play to my strengths a bit, so I decided to stay in my comfort zone for this one. I set the quality bar for my textures pretty high, this was the most important skill I wanted to show off, and I wanted to really nail the Assassin's Creed look through my texturing. I looked a lot at the game's material in combination with real reference, keeping an eye on mostly large to medium shapes, but also looking out for some interesting micro details that would pop in potential close-ups."

"An important lesson I learned from this project, was to not overdo materials for a larger environment because unique details are going to stand out very quickly. You can have a really nice material that looks great when tiled once in Substance 3D Designer, but then, when tiled across a larger surface, it suddenly looks extremely repetitive, and none of the micro details you spent so much time creating come through from your camera distance. The best tip I can give to prevent this from happening is to regularly export, prototype, and iterate on your textures in-engine, this will prevent you from pushing your materials more than necessary.

All of my wood elements were textured using a single trim sheet. I first sculpted a high-poly for this trim and baked it. In 3D Designer, I set up a tileable wood material which I then combined with the high-poly sculpt to create the final trim."

Setting up the landscape and composition was tricky, as it required a lot of experimentation, feedback, and iteration:

"I widened my camera lens several times to give the scene more breathing room and allow for the illusion of a larger world beyond the building. I looked a lot at villages from Assassin's Creed Odyssey to see how the houses were distributed on the terrain. I blocked out rock terraces using simple cubes which I then overlayed with my own rocks. I used olive trees to create strong shadows for the foreground that would nicely frame the building.

At the beginning of the project, the plan was to only make the olive trees myself and use megascans trees to fill up the background. I quickly saw, however, that these Megascans trees just wouldn't work in both a location and stylistic sense, and thus, I decided to take a closer look at my references and create an additional set of cypress trees as my background foliage. These very 'vertical' trees were a bit difficult to work with, but by not overdoing the number of trees placed in the background, I managed to make them work without them sticking out too much."

"I used Unreal's foliage painting tool to paint the grass and wheat fields, creating clusters for big, medium, and small grass patches, to keep the placement realistic and break up uniformity.

I used displacement meshes in addition to Runtime Virtual Textures to blend the rocks with the ground and create softer transitions between these assets and the terrain."

When asked about the final lighting and rendering approach, Brecht said that he wanted the lighting to feel like a warm summer day, a day for lounging around, drinking wine, and playing the lyre.

"At the beginning of the project, I tried using an HDRI, I mainly used this with a very low lighting intensity to get a nice-looking sky. After feedback, however, I realized that this was what was holding back the scene as a whole. I chose to re-do my entire lighting setup to create darker and more contrasty shadows. The whole scene is lit using a single Directional Light. What really helped me to get natural-looking lighting was using Light Temperature over Light Color. This adjusts the color of the light based on temperature from yellow (colder) to blue and almost white (warmer)."

"In the post-processing volume, I played around with the global saturation and contrast of the scene. I wanted the colors to really stand out so I set the saturation relatively high. I also played with the contrast and saturation of the shadows, to show that this is a hot summer day. Finally, I added some grain to make the scene more cinematic and increased the sharpening to make my textures pop a bit more.

William Faucher's EasyFog was used to blur out the background and dampen the noise coming from the large amount of grass in the scene. I kept most fog cards low to the ground to make them look like dust being swept up by the wind, rather than actual fog, as this wouldn't fit the climate I was going for.

To give the mountains a stronger sense of scale, I played with the sky atmosphere's Aerial Perspective View Distance Scale. This gave the scene a huge visual boost by shrouding the mountains in a dense, aerial fog."

In conclusion, Brecht disclosed that his main challenge during production was staying motivated. He started this project a little before last summer and finished it in February of next year. Staying motivated during such a long project can be very tough and there were a few moments he almost gave up, but thankfully he had a lot of great people supporting and encouraging him to keep going.

"I really recommend engaging with online communities like the DiNusty where I'm personally very active. There are tons of fellow artists from a wide range of backgrounds who are all very willing to help you out if you choose to reach out to them. Asking for feedback really helped my mental state and the project would've never been the same without all the amazing people who helped me out when I struggled to move the scene forward."

Lastly, Brecht shared an extremely valuable observation and advice on approaching creative work in a healthy way for other beginner artists:

"I had a habit of compulsively comparing myself to others and would often browse ArtStation with the mindset of 'I could never do that'. Over the course of this project, I managed to flip around that mindset and instead think 'Let's figure out how they did that'.

Don't look at others too much, I learned that everyone comes from a different background and faces their own set of challenges while getting to the point they're at now. Focus on improving yourself to the best of your abilities, and don't ruin yourself doing it. When you lose motivation or feel yourself getting burnt out, focus on some non-art-related things. I personally hit the climbing hall three times a week, which really helps me clear my mind and release some physical energy, and frequently go to the forest for hikes.

I also, once again, want to thank my amazing partner, Roshant Elvin, who never stopped telling me that I really could do this, and tore me away from my screen when I was down in the dumps about the project. I couldn't have done it without her constant support."

Brecht Sohier, Environment Artist

Interview conducted by Theodore McKenzie

Join discussion

Comments 0

    You might also like

    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