Polina Tarakanova shared the workflow behind the Fisherman's Inn project, showed how the moisture effect was done, and explained how the lighting was set up.
Hello! My name is Polina Tarakanova, I'm 30 years old, and I'm a beginner environment artist from Moscow. Ever since I was a child, I've been deeply passionate about both gaming and drawing, and it has always been my dream to dedicate my life and career to these pursuits.
I have worked as a 2D artist-illustrator for the past eight years, primarily taking on freelance projects. Unfortunately, due to a wrist injury requiring surgery, I haven't been able to dedicate an entire workday to drawing and further developing in this field for the past couple of years. It was this challenge that led me to make the decision to transition into the 3D industry approximately a year and a half ago.
I specifically chose to pursue environment art for a variety of reasons. Firstly, as an avid gamer, I find immense joy in exploring virtual worlds, and the opportunity to create captivating and narrative-rich locations truly resonates with me. The second reason is my limited ability to use a tablet. Of course, sculpting is necessary when creating environments, but to a lesser extent than what character artists do.
The expertise I gained in 2D art and visual library I gained through the years has been instrumental in my 3D work. Also, the skills I honed in composition, color theory, and storytelling play an indispensable role in the world of environment art.
My first project in 3D was a diorama in Unreal Engine, followed by some props. It was then that I realized I was ready to put my hand on the environment. To further develop my skills and familiarize myself with the pipeline, I decided to enroll in the Game Location in Unreal Engine course by Sergei Panin and Smirnov School. The result of this endeavor was my Fisherman's Inn location. I would like to express my immense gratitude to Sergei for his insightful lectures, incredibly helpful feedback, and assistance at every stage of the process.
The Fisherman’s Inn Project
My primary objective for the course was to gain expertise in modular systems and refine my skills in creating outdoor environments with some foliage in Unreal Engine 5. To streamline the process and avoid getting caught up in designing and composition from scratch, I decided to work with a reference. After exploring numerous options, I discovered a great artwork by an unknown artist that resonated with me.
The concept was incredibly inspiring, reminiscent of my favorite games — The Elders Scrolls: Skyrim and The Witcher 3, and provided a solid foundation for my work. It was exactly what I was looking for — an opportunity to use module assets for building while also practicing with the landscape and foliage tools for the surrounding.
The first thing I did was break down the concept into assets to have a clear understanding of the scope of work. I didn't know exactly how many modules I would end up with, but I tried to determine which assets I could reuse. For instance, I recognized that employing a trim sheet for beams and railings would be ideal and planned to utilize the same planks from the main building to construct the bridge. I also made the decision early on to acquire vegetation and rocks from Megascans and the Unreal Marketplace. While it would have been interesting to work on these aspects myself, I knew it would exceed reasonable time constraints. Therefore, I chose to focus my efforts on the main building.
During this phase, I allowed my imagination to wander as I contemplated the story within my scene. Unfortunately, the concept art was in a relatively low resolution, causing some details to be lost. As a result, I decided to unleash my imagination and deviate slightly from the concept. In my vision, the main structure could be a tavern in a small village where fishermen gather to rest and dry their nets. This inspired me to incorporate additional assets, such as nets and fishing rods, to further emphasize the chosen theme.
The next task was to gather references. Pinterest, Google, and Yandex were helpful platforms for this purpose. I always create an extensive PureRef board, aiming to find suitable images for each detail. The more reference material I have at my disposal, the easier and more comfortable it is for me to work. I often combine multiple references, borrowing interesting details and adding my own touch. I also consider it crucial to include screenshots from various games on my board, as they provided invaluable insights into how industry artists tackled diverse challenges, emphasized certain aspects, and simplified elements. Furthermore, these in-game screenshots served as benchmarks for the final quality of my scene and individual props.
I started with a very simple blockout in Blender, using cubes to establish the basic proportions of the building before breaking it down into modules. I placed the character meshes from Unreal all over the scene to check the scale and ensure that the building wouldn't be too large or small. During this stage, I took screenshots of the tavern and traced them over in Photoshop to get an idea of how the tavern would look from various sides and determine which modules I would need. While I didn't strictly follow the tracing, they provided a solid foundation and saved time in figuring out certain details not visible in the concept.
I continued refining the blockout in Blender, assembling almost the entire scene before exporting it to the engine. Although I could have transitioned to Unreal Engine earlier, I felt more comfortable working within Blender as it gave me a greater sense of control over the process.
Next, I needed to break everything down into modules. This turned out to be one of the most challenging parts of the work for me. The sections of the building varied significantly in height and width, making it impossible to fit everything into a few universal modules. I had to create quite a few unique pieces and several variations of universal modules to get some variations of the walls. I also made some adjustments to the proportions, deviating slightly from the original concept to ensure the height and width of the modules were multiples of 0.5 meters, making them easier to align and reuse.
To achieve a weathered and neglected look for the tavern, which was influenced by high humidity, I wanted to create broken or missing boards that revealed the construction behind the wall. I assembled the walls in three layers: backboard, framing, and facade planks. I wanted the tavern to have a weathered and neglected look due to high humidity. I utilized a tileable texture from Megascan for the backboard layer and a trim texture for the framing. I could have used the same trim texture for the facade boards as well but ultimately decided to make them unique. While trim is a convenient tool that simplifies and speeds up work, I wanted to give the boards more expressiveness and individuality. I aimed for a rough and textured surface with chips, breaks, and cracks, which I achieved through sculpting.
I did most of the sculpting work, except for the finest details, using a trackball. With practice, I found that it was possible to work at a speed comparable to using a tablet, and adjusting the Intensity and LazyStep settings allowed for greater precision when necessary. So the inability to work extensively with a tablet was not a limitation for me, which I'm very glad about. Sculpting is one of my favorite parts of the entire process. At this stage, I prioritized creating rough chips and fibers, rather than refining the finest details and wood texture. For sculpting the wood, I often use the all-favorite TrimSmoothBorder brush with a square alpha and the ClayBuildup brush to add or remove volume. I also liked using Orb_Cracks. While it is stylized, I combined it with TrimSmoothBorder to refine edges and create convincing cracks.
After finishing the sculpting, I manually placed the planks on the prepared modules. It's a somewhat time-consuming and tedious process, but a bit of copy-pasting with subsequent adjustments can speed it up. Once the modules were ready, I reconstructed the building, including the beams with trim, inside the engine. I approached the roofs in the same way as the walls. I later assembled the bridge and small pier from the same planks and beams.
During this stage, I set up additional cameras and realized that certain parts of the building, specifically the left and rear sections, wouldn't be visible in the final shots, so I was wasting time creating extra modules for this. Lesson learned — it's better to make such decisions during pre-production to avoid wasting time and effort on something that won't be visible in the final.
To enhance the overall expressiveness and individuality of the tavern I made the windows, doors, and other assets unique. The exception was the net – I used tileable textures for the rope and the net itself. Additionally created the mountain using Gaea. It turned out to be a useful experience, and the process was quite straightforward. Michael Gerard provides a detailed description of it in his Ultimate Forest Environment Course lectures.
Texturing & Materials
With the modular construction of the tavern complete, it was time to move on to texturing. I performed all the texturing work using Substance 3D Painter. In my scene, there were numerous wooden assets for which I created multiple smart materials to ensure a consistent appearance among objects crafted from the same type of wood. This approach not only streamlined my workflow but also contributed to achieving a cohesive visual. To create smart materials, I used textures from Megascans, Textures.com, and Adobe Substance Source as a base, which I further customized within Substance 3D Painter using procedural generators and grunges.
When texturing the modules, it is important to keep in mind that they will be repeated throughout the entire location. Therefore, it is necessary to make the textures uniform and somewhat plain, without prominent or eye-catching details that would draw too much attention and reveal the repetition. However, when texturing unique assets, I like to add accents. For instance, I intentionally brightened and lightened the windows to emphasize them against the walls, effectively breaking the monotony of the wooden surfaces.
The second stage of texturing the modules involved creating masks. I considered using vertex painting but ultimately decided to use masks and decals to explore that pipeline. This required merging the modules and generating a second UV channel for RGB masks. I accomplished this directly in Unreal Engine using the UVEditor, which can be found in the plugins. Afterward, I exported new merged modules from the engine and created masks within Substance 3D Painter. Since I had already set up cameras for each frame by this point, I only created masks for the walls that were visible in the final shots, saving time on the rest.
When it comes to texturing, just like with modeling, it's crucial to find good references. To ensure authenticity and realism, I gathered a large collection of photographs showcasing the aging and weathering effects on wood, particularly under the influence of moisture. By utilizing masks, I replicated these effects in my texturing work. I employed the three color channels to control weathering, dirt, and dust, achieving a believable appearance. Each material has flexible settings for mask contrast, brightness, color, roughness, and tiling, enabling precise control over the desired outcome.
I wasn't aiming for heavy optimization, and I enjoyed experimenting with materials, so I also created two additional procedural masks. One is to lighten and desaturate the bottom part of the wood, which is a gradient from bottom to top, broken up with a grunge based on World Align. The second mask was for moss, also based on the World Align grunge.
Assembling the Scene
I assembled the scene incrementally while working on various assets. To manage the size and complexity of the scene, I utilized levels in Unreal Engine, allowing me to enable or disable elements as needed. I organized the scene into separate levels, including the background house, forest, vegetation, road meshes, mountains, and even secondary light sources. By hiding the levels I was not working at the time, I ensured smoother performance on my computer.
As mentioned earlier, I get the rocks and foliage from Megascans. I spent some time selecting rocks that matched the desired shapes and ended up choosing around five-six variations. To achieve color consistency, I employed a trick I learned from the free Dekogon's Environment Production tutorial. I created an instance of the material from one asset with a different color and assigned it as the master material for all the assets in the same collection of scans. This allowed me to adjust the hue of all the different assets simultaneously by manipulating a single slider in the new master material.
Creating the effect of moisture where the rocks touched the river was a slight challenge. Initially, I attempted to incorporate this effect within the material using distance fields. However, since my river was a large merged spline mesh, the distance fields did not work correctly. To address this, I utilized modeling tools within the engine. I cut and copied a small portion of the river that appeared prominently in the shoot, assigned an invisible material to it, and used it as a source for generating distance fields.
I also created the road from scratch by combining textures from Megascans in Substance 3D Painter and then displacing the geometry in Blender. I utilized a spline to lay it out on only a small section of the map, due to mesh was quite heavy. After merging the spline, I converted it to Nanite geometry. Since Nanite doesn't support vertex painting, I utilized decals to add puddles and break the visual monotony of the road. I placed these decals near the tavern, where moisture would likely accumulate around nets, barrels, and dangling fish.
For vegetation, I opted for ready-to-use packs. The forest was created using the MW Conifer Trees Forest Biome. Although the pack included numerous meshes, I selected only three with distinct shapes. As the forest served as more of a background element, the lack of meshes was not noticeable. The key was to establish a dynamic size variation using the foliage tool to achieve a realistic and dynamic forest line. It was also important to ensure that the horizon line was not perfectly flat, so I sculpted the landscape tool to create some bumps.
The remaining trees were two meshes from Megascans Trees: European Black Alder and the grass was from the Megascans Meadow Pack. For the background, I populated the grass with a big brush and relatively low density. But closer to the cameras, I increased the density and placed the grass more carefully. In some areas, I added a second pass to remove or add specific plants, such as clumps of grass between the road tracks.
I quickly decided not to adhere to the concept in terms of the scene's mood and lighting. I wanted to create a more colorful and captivating image. Initially, I aimed to convey the atmosphere of a day before an impending thunderstorm, with high contrast and warm sunlight, but I wasn't quite satisfied with the results. Therefore, I opted for a completely different lighting scenario. It was a summer morning, damp and hazy, with the sun just rising above the horizon. This alternative lighting setup became the final one.
The directional light and skybox alone were insufficient to achieve the envisioned image I had in mind. To attain the desired outcome, I utilized multiple additional light sources. I added several Rect Lights to simulate sunlight casting on the house's wall, as well as additional Rect Lights and Point Lights to illuminate the darkest areas.
I also added a second directional light that specifically illuminated the mountains. I disabled all the shadows, and influence on the atmosphere and assigned Lighting Channel 1 to mountains and the light.
Fog sheets (I used EasyFog), played a crucial role in creating the desired atmosphere. Additionally, the fog helped blend the scene together, support the composition, and hide any flaws.
For the final touches, I use PostProcessVolume. I performed necessary adjustments directly within the engine, avoiding the use of LUT and ensuring precise control over the scene's color grading and overall aesthetic.
"The Fisherman's Inn" scene was my first major project, and it was a challenge. I spent three months working intensely during the course and another two afterward, at a slower pace, refining the props and putting it all together. Considering the scale of the project, I could have worked on it endlessly, adding more detail to the background buildings, fine-tuning the smallest elements, and polishing the scene. But as my mentor said, such scenes cannot be finished, and at some point, you just have to stop. Therefore, it is very important to identify the main focus and points of interest. Since my work is solely for my portfolio, I could determine what I wanted to showcase in the final shots and where to allocate more time. And, based on my experience, the sooner you do this, the easier it will be in the future. The pre-production phase and planning are equally important as the actual process of creating the scene.
In conclusion, I want to thank my mentor Sergei Panin once again, as well as my friend Alexander Permyakov and my husband Artemiy for their support and honest feedback.
You may find these articles interesting