Enrico Labarile talked about the creation of Chapter 2 of the animated Mediterranea-vibe environment, detailing the modeling, texturing, and shading processes for the trucks and cliffs while emphasizing how storytelling was achieved.
In case you missed it
You may find this article interesting
Introduction
My name is Enrico Labarile. I am a Level Artist from Italy who currently lives in Austria. In my free time, I love to work on an environmental art project based on my Mediterranean culture.
A lot has changed since my last project (The Tower), both on a personal level, as well as on an industry level, as you are surely aware. Due to this difficult situation, I was recently laid off from my job. However, thanks to Austria's excellent unemployment support, I was able to resist this harsh time. If anything, I took this free time as an opportunity to focus entirely on a new project while continuing my job search.
The previous chapter, The Tower:
About The Truck Project
The project started as a simple block-out during the summer. At the time, I wasn't yet sure whether I would have had the time to do a full-scale project. My only goal was rather to have some fun modeling the truck and freeze the idea for future reference. I have started to accept that sometimes it is okay to start things and leave them aside if you don't have enough time to flesh them out properly.
The inspiration came from a now rare phenomenon in small Southern Italian towns, where merchants travel around to sell house goods door to door, basically working as grocery stores on wheels.
With this project, I wanted to fix issues I found after analyzing my previous project: poor planning and poor storytelling. Additionally, from an artistic point of view, I already had in mind I wanted to improve my cliff workflow.
Composition, Blockout & Modeling
I always use Miro to collect references and take notes. Here, I collect references related to both generic themes (lighting, mood, detail benchmark) and more specific ones (props, foliage, cliffs, et cetera).
Since this project is not directly based on pre-existing concept art, I needed to do some extra work to find the right composition that would support the main storytelling idea.
To build a compelling story, I knew I needed a protagonist, a goal, and an opposing force. I had the truck, and I knew the truck needed to reach a lonely building. Also, given that I wanted to work on cliffs, it didn't take long until I realized that the impervious environment (rockslides, thin paths, steep slopes) would be the opposing force.
Concept art wise, Simon Stalenhag has been a solid inspiration. Not necessarily for the style or for the mood, but rather for the subject. He has made lots of illustrations where there is a vehicle as the protagonist that feels small compared to the environment surrounding it.
In general, all the references were useful to explore the relationship between the three elements of the storytelling: the truck, the cliffs, and the building. However, they were only useful during the pre-production phase, as I wanted to realize a new and unique environment for the final project.
The first step in the production phase was modeling the cliffs and the truck. As I previously mentioned, the truck came first as a standalone project. In this phase, I was mostly interested in adding some storytelling flavor to the vehicle.
We will see more details later on how I approached the texturing and shading for the truck. To stay on the modeling topic, let's talk about the cliffs.
When I realized I was ready to start working on a new environment, I knew the cliff needed to be the first real modeling task. As a rule of thumb, I usually tackle the biggest assets first, as those will impact the environment the most.
The workflow for the cliffs involves a technique I haven't seen before. I use a Blender plugin called BoxCutter. It is usually associated with hard surface modeling, but it is very powerful and flexible, and it seemed to fit my workflow very well.
To model most of the rocks, I use slice mode to divide the block into smaller parts and cut mode to carve and define the edges of each component.
Once the asset is detailed enough, I combine the meshes and DynaMesh them all together. This way, I have one cohesive asset that I can simply unwrap and texture without wasting UV space.
I will come back to the texturing and shading of the cliffs later.
UV Unwrapping
This project didn't require retopo, as there was no high-poly baking involved in the process.
Regarding UV Unwrapping, I have been using UV Packmaster (Blender Plugin) for a year now and since then I have pretty much stopped hand-packing UVs. With the heuristic-search function on, the results are usually much more efficient and fast than anything I would do by hand.
The only cases in which I do hand-made layouts are trimsheets, foliage cards, and special UVs for VFX, as those usually require a lot of planning in the placement of the UVs.
Texturing
The Truck
The truck was custom-textured in Painter. I used a tileable paint brush texture (made in Designer) in combination with the basic colors and Mesh Maps to achieve a more unique style for the truck.
This tileable texture is used pretty much everywhere on my project: On the cliffs, on the terrain, and even on the water.
The truck also uses a world position offset shader to make the truck vibrate, making it feel as if the engine is really turned on, making the truck vibrate. You can find the material function file on my Gumroad for free.
The Foliage
The foliage was hand-painted in Krita: each foliage asset has one grayscale texture that works as both alpha texture and color texture.
I rarely hand-paint masks, so I chose Krita because it's simpler software than Photoshop. This allowed me to get straight to the drawing with fewer panels and options to worry about.
In Unreal Engine, the grayscale texture is fed into a material function that maps three colors of my choice to the grayscale. You can get the material function for free on my Gumroad.
The Cliffs
In a similar way, the cliffs use one custom grayscale texture per type. Such texture is made in Photoshop by mixing the aforementioned tileable paint brush texture and the Mesh Maps of the asset (Ao, Curvature, et cetera).
The grayscale mask is then fed into my Color Mapper material function to dynamically apply some color to it.
To make the single asset more reusable and generally have some color variation, I added a world space noise in the shader.
Can you guess which tileable mask I used?
Assemble the Final Scene
The final scene required several iterations. Since there was not one specific concept art, I had to create some temporary scenes to test out the cliffs (the most impactful element).
In this phase, I kitbashed the cliff blockouts and added the truck blockout to start having a feeling for their relationship.
I then focused on modeling the rock in more detail. It was fundamental to judge their utility when used in combination rather than focusing on the look of each single module.
First Test:
Second Test:
This was also an occasion to start working on the shader part of the cliff. I found it essential to develop the shader fairly soon, as that is essential to decide the balance between texture detail and model detail.
Once the rocks started looking good enough (far from final), I began settling on a specific composition.
While the overall camera frame and lighting remained overall similar, the cliffs went through a lot of updates, resulting in a drastic change of the overall image. I realized that the general scene looked too vertical and the cliffs were too gamey.
Therefore, I went back on my steps and adjusted the terrain and the layout of the cliff modules to feel more natural.
Lighting & Rendering
Since I wanted a very colorful look, I made sure to crank up the saturation of actors, like the Directional Light, the skylight, and the atmosphere. To intensify this contrast between direct and indirect light, I also increased the saturation of the shadows in the post-process volume to 1.5.
Speaking of post-processing, I found it fundamental to raise the Sharpness value to 2 to make sure assets like the foliage would keep a sharp, clean edge.
I also used a light function shader in the Directional Light to make the scene more readable, highlighting some areas and darkening other ones. As you can see from the .gif below, the shader is a mix of two masks: One is a Perlin noise, the other is a gradient that simply masks the background (mapped to the pixel depth), making it darker. This helps keep the focus of the scene in the mid-distance.
Finally, let's talk about the cinematic.
Long before starting to work on the cinematic itself, I started creating a bunch of interesting still shots that I will use as a sketch for the sequence I want to create. This helps me focus my efforts only on the areas of the environment that will really matter for the final sequence.
To animate the scene, I used Unreal's Sequencer tool to make a bunch of shots that I later adjusted in Adobe Premiere Rush.
The actor Camera_Rig_Rail is a godsend for this type of task, as it streamlines the process of animating camera movement, reducing the elements that need to be key-framed. It is probably obvious, but I recently realized that you can use this asset in combination with any object, not strictly cameras.
For example, I used it to animate the truck driving up the hill. It is fairly simplistic, but it worked well for the context of my project.
Summary
The project took roughly 300 hours to complete from September to December.
I use a task manager app called Tick-Tick to track my working time. This helps me keep frequent breaks and keep track of the tasks that are necessary to complete the project.
A big challenge for this project was its scale and scope. Finding a balance between asset quality and variety was hard to achieve and required accepting that some assets would not look that great when inspected up close. Sometimes, it meant that I had to cut the content all together.
Many suggest making very focused, polished works for a portfolio, and it is probably a more efficient way.
However, I find that doing these larger projects helps me develop the look of Mediterranea in a more organic way, starting from the large scale and gradually getting more and more into the details. This also means that over time, I am building a library of tileables and material functions that I can pretty much just reuse and make my production faster over time.
The risk for this kind of generalist approach is choice paralysis, as well as overscoping. I have to admit several of those 300 hours were spent testing the idea of a playable demo, in which the player would be able to actually drive the truck through the cave and further up the hill until the building in the background. Needless to say, this was not possible in the given time, but since this is an expanding project, I will totally reiterate this idea in the future.
I am not sure yet when I will be able to work on the next chapter, but sure enough, the topic will be architecture, particularly inspired by Southern Italian fortified farmhouses called Masserie. See you in the next chapter!