Lara D'Adda walked us through the working process behind the Stylized Mountain Village project, explained how the NPR buildings were modeled and textured, and discussed the rendering pipeline.
In case you missed it
You may find these articles interesting
Hi everyone! My name is Lara D'Adda, I am a 26-year-old art student at Howest DAE in Belgium. My art journey started when I was young, as I always knew I was going to do something creative, but it took me a while to figure out exactly what.
I studied fine arts, with a focus on painting and sculpting, and later graduated in New Media Arts at Santagiulia Academy of Fine Arts in Italy. There, I started working with 3D and discovered I had a big passion for it that I wanted to expand and grow. This way, I found my current college and decided to move from Italy and pursue a career as a 3D Artist.
This past year I discovered how much I love creating and building up environments from scratch and that environment art is what I want to put my focus on going forward. So right now, I am mostly trying to build my portfolio and showcase my passion and love for environments in hopes of finding an internship!
The Stylized Mountain Village Project
I only started learning Unreal Engine this year, making various projects using Megascans and/or other asset packs I find online, and even if I enjoy creating realistic environments, I feel like I have the most fun with stylized-looking ones. It for sure does help a lot, especially in the beginning, to have a smaller scope using those free resources, to learn about composition, lighting, and just in general building up a scene. And I think that was an important step that helped me resolve a lot of future possible problems in other projects.
After this, I felt like I was finally ready for a bigger stylized project, where I put all my skills and knowledge into it. I found this concept that I really loved as it reminded me of a Ghibli movie. And I already saw how I could work with a lot of modular assets, building shaders in Unreal, as well as trim sheets and tileable materials with Substance 3D Designer, so I was just really excited to start working on it!
To start, I made a plan trying to understand how I would tackle the different parts of the concept. It's pretty messy, and honestly, I changed some things along the way, but it really helped me to begin with it. I figured out where I could use some trims and which materials and assets I would need.
After this, I made a blockout of my project. The concept is a big village with a landscape that has a lot of height differences, so it was a bit hard to get it right. I mainly used two things for it, a simple blockout of a house and church, and basic boxes for the landscape. I figured I would block the landscape as well with boxes to have a preview of what kind of angles, turns, and heights the landscape would have.
At this stage, I also save some camera positions that are going to be my main points of view so that I could build my scene around it. I also add a basic lighting setup, a skylight with an HDRI, and a directional light.
Creating the Buildings
After planning, I started working on the houses. I was stuck in this step for quite some time, especially in the texturing, since I had to create all the textures and materials for it. First of all, I started modeling the different pieces. Looking at the concept, I decided having different sets of walls with beams would be the best and quickest option for me, since I had to build a lot of houses I didn't want to work with singular pieces of wall.
The walls have the same size and pivot so that I can easily change between them. Same for the windows, to switch between different types of windows. The walls are just a plane mesh, the beams have some edge loops to add some character and make it more interesting.
For the roof, I used a plane mesh, and I modeled some extra tiles that are shoved in the roof to give it some more details and geometry. I used this same trick for the brick walls and the chimneys where I stuck some single models of bricks in the wall plane to add a bit of silhouette.
When I was done modeling and importing in Unreal, I started creating the textures. I wanted to create materials that I could reuse for all the houses since only elements like their colors were changing, and also that I could control the level of moss, color variations, and the number of bricks exposed of.
The base material for the plaster, the bricks, and the roof were done in Substance 3D Designer. Since I'm still learning this program, I took some inspiration from tutorials and adapted the work to my style. Especially these two tutorials were pretty helpful for the roof and for the bricks:
Here are the screenshots of how the base materials looked like:
In Unreal Engine, I used these materials to create my master materials. I wanted to make sure that every wall looked different and that I could blend the houses well with the landscape using a moss gradient from the bottom.
In the material, I can change the base color using mainly the Blend Overlay node. I also exported an Ambient Occlusion Map to have stronger AO and control its color. To add some variations, I also used a noise texture in a lerp between the plaster color and a tint. For the exposed bricks, I set up a mask with a noise texture to lerp between the bricks and the plaster, with some values to control the noise. And for the moss, I created a gradient from the bottom to the top of the mesh and added some variation to it with a noise texture again.
From these materials, I created all the instances for the different houses. Every house color mainly had a different instance for the walls on the ground layer, since they needed more moss, and one for the rest of the walls.
I used this workflow for almost all shaders. What changes in shaders like the bricks (for the brick walls) and the roof is that I also add an extra level of moss using a Height Map exported from Substance 3D Designer. This way, the moss blends with the material to look more realistic.
Trimsheets and Extras
For the wood part of the houses, as well as for some rock elements on the church and in the landscape, I used trim sheets. I had an older version of this wood trim used in a previous project that I kept working on and used for all the wood beams in this one. I sculpted the trim in ZBrush and textured them in Substance 3D Painter, making different versions, one with the paint and one without.
In Unreal, I used a material that would add the same moss as the walls to the beams, a moss gradient from the bottom with a noise, and a general moss around the whole mesh. Especially in the color variation, by tweaking the low and high target of the RemapValueRange I managed to add more color variation to the beams that were less exposed.
To change the color of the paint in the painted wood, I exported the mask I used in Substance 3D Painter and used it as alpha to lerp with a changed color version of the painted beams.
The nice thing about these trims is that I use them for a lot of the other props in the scene. From the flower pots, the market stands, windows, the boxes, etc. In the trim sheets, I also created a tiling rock material and some single rocks.
I used these elements for all the rock parts of the church, as well as for different rocks I had around the scene. Like the big ones over the walls or the ones on the walking path. I just created a material with some moss and some color variation. To add some more details to the church I used decals with leaks and dirt.
Looking back at these materials I managed to work with just a few of them from where I would create all the instances I needed, but I could have optimized them even more for sure since I realized I used a lot of the same nodes here and there, for example using material functions. I had a short time to finish everything so when everything worked I went along with it, but it taught me a lot for the next time! Thanks to resources shared online, I managed to achieve the results I wanted. Breakdowns by Silke Van Der Smissen and Jasmin Habezai-Fekri were particularly helpful.
I wanted to create a very chill and cozy landscape, with a lot of colors and elements. To create the trees, grass, and flower, I got a lot of tips from Victoria Zavhorodnia's tutorials. These tutorials are pretty great and break down in detail how to achieve that stylized look.
For the trees, I used TreeIt since it’s free. It took me a while to get e decent tree and I still think I could have worked on it a bit more. But when I applied the material I really liked the results. The most important thing was the slight emissive value that helped me get rid of the darker shadows created by the mesh. I used one mesh for the grass and the flowers, and virtual textures for their colors so that they would be influenced by the color of the landscape. For the flowers I used different instances with different colors to paint the foliage all over the landscape as well as in the flower pots where I hand-placed them.
The landscape material uses 5 different layers that I later painted on the landscape mesh. The first four layers are simply a base color, for different grass shades and a ground color, all with a roughness set to 1 and flat normals.
While the fifth one is a stone path tiling material, made in Substance 3D Designer. With the exported Height Map and a noise (to break up the tiling), I created a mask to lerp between the stone path and some grass. So I used multiple Layer Blend nodes to blend between the different base colors, the roughness, and the normals.
For the background, I created a rock/mountain mesh that I sculpted and textured and then placed all around trying to create the mountain valley. In the shader, I used nodes to add some color variations and the same moss from the bottom as in the other meshes. In addition, I wanted to control and have moss on the areas facing the top no matter the position or rotation of the mesh, and that would also be affected by the normals of the rock.
To adjust the direction of the moss I used the Dot product of the BlendAngleCorrectedNormals node with a Vector3. Changing this value I could control the direction of the moss and have it on the top and slightly on the sides.
For the trees and mountains in the background, I painted some textures to use as impostors on planes. This way, I didn’t have to model anything more and I could easily control the look of the background.
I wanted to make the scene feel alive and less static and boring. So to fix that, I tried making a lot of elements moving. Having small things in the scene moving is actually not too complicated and can make a big difference in the final presentation.
For the falling leaves and for the butterflies, I used a free pack I found on the Unreal Engine Marketplace and I just changed some values and colors. Especially for the leaves I removed the base color texture and just used a full color that I also plugged in the emissive.
A big element in my scene was the clouds since they were going to cover a lot of areas. After finding some free cloud images on the internet and editing them in Photoshop I used their alphas to create cloud cards. I placed the clouds trying to achieve some layering between the mountains and the trees, to add some more depth. To have more fluffy clouds, I animated them by distorting the UV with a noise texture that could be controlled and animated with some values. I also used the wind with very low values in the world position offset to just push the effect a bit further. I created all the cloud cards and used a few instances of the material with different opacity/colors.
The grass, flowers, and ivy use the world position offset with a SimpleGrassWind node. Having these elements moving made the scene fill more alive and more in theme with the whole windy/mountain environment. I used this node in the cloth that covers the market stands as well so that they would move along with the rest.
The smoke out of the chimney is a very simple particle effect, with a linear velocity to bring the smoke up and some gravity to make it bend on the side. In the material, I distort the UV with noise to animate the smoke and have a slight fluffy effect.
At last, I used the birds and flame particles I made for a previous project in the lamps and animated the clock on the tower in Maya so that it would rotate. The funny thing is, the birds were bats in the previous project, and I forgot to change the alpha texture in the material, so on a closer look it’s actually visible that the flying birds are actually bats with their spikey wings.
Lighting and Rendering
Lighting was definitely the hardest thing. Even if it turned out to be a very simple setup. The most difficulties for me were lighting a scene this big with a lot of elements in an open space. The final setup includes mainly a Sky Light with an HDRI and a slight blue tone and a warm yellow Sun Light. I also used a Rect light in the front to light up some darker areas and a few warm point lights in the lamps positioned at the front.
To create more interesting light settings I made use of some meshes placed in the sky, not visible but still casting shadows, using the HiddenShadow setting. This way I had some shadows area around the scene and some different tones to play with. Especially I tried having the mountains in the shadows so that they wouldn’t attract much attention.
For the post-processing, I created a specific LUT for my scene and that is doing all the work. I first lowered the Toe value in the PostProcessVolume settings and took some screenshots. I put the shots in Photoshop and start editing them, adding curves and levels, and making use of the base LUTs in the program. When I was satisfied with the edit, I drop all the editing levels in the base LUT from the Unreal website and saved my custom LUT, ready to use in Unreal. Mainly, I lowered the darker shadows and pushed some cold blue tones.
When I completed my scene, I wanted to show to a friend what I did and started playing around with the materials. I then realized I liked what I was making and since it was pretty quick for how the materials were set up I ended up making an autumn warm and cozy version.
I copied some of the material instances I had and only changed the color of the vegetation elements.
I really liked how different this turned out. And especially realized how having set up the scene as I did helped me make all these changes very fast and easily.
Overall, this was the biggest project I’ve worked on so far, and during the process, I learned a lot of lessons that I will bring to my next project.
What I realized is that I really have to trust the process, in the beginning, I found myself worried about not being able to tackle a lot of things or not knowing exactly how. All these problems slowly went away while working as I resolved them one by one and just replaced what I had in mind with new and better solutions. I also realized how I could actually reuse a lot of elements, mash them together, and get away with a lot of things, so I just needed to trust my skills and be confident about it.
Especially with stylized elements, it’s not really about the fidelity and realism of what you are making, but more about the feelings and the personality it transfers through its core properties.
This project was done in the span of three weeks, working full time on it since I had a tight deadline. The limited amount of time gave me the right focus on the big picture without losing myself in details, the planning I had in my mind made sure I knew what steps I needed next, so I am happy I took some time, in the beginning, to think about it.
Last but not least, another thing that I found helpful was working with my friends during this time, and how much feedback we would share with each other. I often get too much into the work and forget to take my eyes off of it or ask for feedback and opinion from other people, losing sight of the things I actually need to work on. While in this situation I realized how much sharing feedback with other people helped me in the process and that I should remember to do that more often! So big thanks to all my talented friends.
I hope this breakdown was helpful in some way, as I also found a lot of resources through similar articles, I am happy I got to share back some of what I learned. Thank you all for getting all the way to the end!
You may find these articles interesting