logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Creating Weathered Pirate Ship with Unreal Engine

Margaux Duboc talked about modularity in her Captain's Ship project, showed how she made barnacles using ZBrush and Substance 3D Painter, and showed her workflow with Unreal Engine's Nanite.

Introduction

Hi, I'm Margaux Duboc, a 3D environment artist from Normandy, France. I'm thirty years old, and I've been working as a freelancer for a few months. My choice to become a 3D artist comes from the fact that I grew up in a family passionate about video games and the tech industry. I held my first controller while playing Sonic the Hedgehog on the Sega Mega Drive, and a few games and years later, I discovered the amazing universe of Warcraft, which made me fall in love with the fantasy style.

After my basic studies, I decided to move to Belgium to attend the Haute École Albert Jacquard in Namur, where I studied how to make games for four years. After that, I had the pleasure of working with Appeal Studio, THQ Nordic for four years.

Since becoming a freelancer, I’ve really wanted to challenge myself by creating a big project that matches my style better. I also wanted to improve my skills in composition, lighting, and Unreal Engine 5, which offers more efficient tools for exploring new methods. Nanite allows me to worry less about polycount, and Lumen provides dynamic lighting solutions.

Captain's Ship

I first searched for a concept that matched the style I wanted to practice, and I fell in love with Andy Walsh’s Captain Quarters concept. It perfectly captured the mood and atmosphere I was aiming for, so I adapted the title to better suit the overall project. My goal was to create a modular environment asset pack that could be used for different purposes and artistic directions, showcasing how many possibilities can be achieved with a small palette of assets.

I began by gathering references to capture the mood I envisioned. For this, I like using PureRef to organize my references, separating them into different categories such as mood, texture types, props, interiors, and barnacles, which play a significant role in this project.

Blockout & Composition 

To start the blockout, I opened an empty level in Unreal Engine, and the first thing I did was place a camera and lock its position to start building the level using primitives and separate the scene into smaller pieces.

Afterward, I exported the blockout using the Merge Actors tool to continue working on it in Blender. Always remember to use a human silhouette with good proportions to keep an eye on scale and proportion. In my case, I use a 180cm-tall human model as a reference both in Unreal and in my modeling software.

After the first pass of blocking, I adapted the meshes into modular pieces, keeping the same measurements and starting with a 4-meter square per asset. I kept the modular design as simple as possible at the beginning of the project to quickly start to use the pieces for other purposes.

Once that was done, I imported everything into Unreal Engine and started a quick blockout for the lighting. This step helps to better understand the concept and recreate the desired mood. At this stage, the priority is speed, so I used textures from the Megascans library to block out the base colors for my assets.

After the second pass, I achieved this result, which gave me a clear idea of how many assets I needed to create first.

Workflow & Modularity

Modularity is an essential workflow, but if you don’t understand its true purpose, it can become a problem rather than a solution. When working on something modular, the goal is to reuse the modules (meshes) to create new buildings, structures, and more. It’s a way to save time when creating variations from these assets.

The most challenging part of this modular project was creating the floor meshes in a modular way, with wooden planks arranged in a chaotic manner. I experimented with several approaches to achieve the desired result.

First, I created the pattern directly in Blender, allowing me to play with different plank sizes. I wanted a truly chaotic and irregular look, with some planks having defined beginnings and ends while others stretched across the entire room and made the texture tileable. Once I was satisfied with the result, I created a high-poly version to add details like nails on the planks and then moved on to creating textures in Substance 3D Painter. Finally, I produced several variations of the floor with different levels of deformation or broken shapes to add more diversity.

Never underestimate the power of modularity. Once all my modules were either completed or well started, I was able to create the hall with much more ease and speed. This allowed me to explore many possibilities and inspired new ideas for expanding the asset pack. For instance, I began thinking about how I could add complexity by creating additional pieces like the hold or stairs.

Don’t be afraid to experiment with your modular kit to explore uses beyond its initial purpose. For example, I didn’t have a specific mesh designed for the hold, so I reused ceiling meshes as new walls for it. The result was surprisingly effective, and I was quite happy with it. I enjoy the flexibility of rotating meshes and discovering new uses for them, especially when they fit seamlessly together by following consistent metrics.

Using the same measurements ensures that most pieces match perfectly. Always make sure to work with a snapping grid to keep your metrics precise. Personally, I use a snapping size of 100 cm, which helps maintain modularity and makes the assets easier to use. Don’t hesitate to spend extra time testing all the possibilities with the modular pieces you’ve created – it’s an investment that pays off in the versatility of your project.

Materials & Textures

I used ZBrush to sculpt all my wooden planks. After that, I brought them into Substance 3D Painter for texturing. For the wood textures, I created two variations for the floors and two for the walls (trim sheets).

Here is the final result of the wood textures. All the floors share the same baked normal map, and the walls use a single baked normal map as well. Below is a quick view of all the finished variations.

Shader

With this small variety of textures, I started to have many options regarding the direction I wanted to take this project. Of course, the shader provided endless possibilities for personalizing the look of my textures by adjusting saturation, brightness, and color tint, as well as controlling the roughness and intensity of the normal map directly in Unreal Engine. I also added the option to include normal details if you want to add more information to your texture. Although I didn’t use it myself because I was happy with the texture's look, the option is available if someone needs it.

The shader is a mix of materials working with a classic vertex paint workflow. You can blend up to four different textures, as I wanted to mix two wood variants and add barnacle textures with a moss texture to blend them together. Each material is separated into three textures: base color, AORMH (which contains ambient occlusion, roughness, metalness, and height information), and a normal map. I also added a wetness control to simulate puddles of water on the floor.

Barnacles

To produce the props, I used the classic workflow of sculpting in ZBrush and then baking the maps to texture all my assets in Substance 3D Painter. For the barnacles, instead of sculpting each barnacle individually, I made a rough sculpt of some of them. There's no need for a lot of detail in the high poly because the barnacles are small, so many of the details won’t be visible.

I then textured them in Substance 3D Painter. Again, there's no need to spend too much time on texturing, as you can adjust the color and details directly in the engine’s shader. Be sure to have enough contrast in the textures.

Next, I quickly composed the barnacles. Again, you don’t need a lot of mesh variations – just ensure you have different sizes and silhouettes. One small and one large size is enough.

Nanite

For adding this project to the Marketplace, I wanted to create both low poly and Nanite versions of each asset. To create the barnacles, you can decimate your high poly model while keeping a good subdivision, but it can be a bit challenging to unfold UVs with a lot of subdivisions. With this workflow, you would need two separate objects – one for Nanite and one for low poly – and then bake your assets twice, resulting in two separate textures for the same assets. To avoid this, I took my low poly mesh and added the ShrinkWrap modifier in Blender in addition to the subdivision level. This allowed me to snap my meshes onto the surface of every mesh I needed, essentially using the high poly on all meshes. This is a good way to add subdivision without breaking your UVs or baking.

To integrate the barnacles into the project, I used the foliage tool and started painting all the barnacles I needed. I used Nanite as a foliage tool and adjusted the size, orientation, and spacing between the meshes for different purposes. Make sure that the collision of the asset receiving the barnacles has enough geometry and fits well with your meshes. Otherwise, the barnacles won’t be placed naturally.

Organization

Once I was happy with my modular assets and foliage, I started producing the props. I tried not to create too many different assets and kept things as simple as possible. Only what was necessary was made. I used Trello to keep track of my entire asset list, which helped me focus on all the assets at once and avoid wasting time.

To produce them, I first blocked them out to get the right proportions, then sculpted them in ZBrush, baked them, and did a first pass of texturing before importing them into Unreal Engine. I forced myself to stick to just one pass of texturing to ensure all the assets matched.

After completing the first texturing pass, I began the second pass, using the same textures to maintain cohesion between them. For example, I only created 3 variants of wood for the entire list of props, and then I adjusted and adapted them slightly in the shader to integrate them seamlessly with the environment.

Lighting

Lighting a scene can be challenging, but it’s a key element that can either elevate or undermine your project. Thanks to Lumen, you can achieve decent lighting results without too much difficulty. It’s always the most challenging part for me, but also the most rewarding. The beauty of the entire scene depends on the quality of your lighting. We can’t emphasize this enough: a high-quality asset can look absolutely terrible if the lighting isn’t done well.

I started by blocking my lighting based on the concept, trying to be as accurate as possible. I used this reference as a base while aiming for a spooky atmosphere without making the lighting feel unnatural or overly saturated.

I mainly used two complementary colors to help me build the lighting as a main color scheme. To achieve this dark, foggy ambiance, I highlighted the center of the environment slightly more. I placed a primary light near the window to illuminate a larger part of the room and used varying light intensities to create contrasts that draw the eye toward the center. To introduce some subtle color variation, I incorporated soft blues into some lights, keeping the greens as neutral as possible. In the foreground, I used warmer tones to add details.

The candlelights are intentionally neutral, with a soft yellow hue to avoid adding excessive contrast to the scene. I selected candle colors that blend well with both atmospheres without altering them.

Since I was quite satisfied with the lighting in the first atmosphere, I proceeded to create another one while maintaining the same highlight in the center of the room.

I prefer using strong contrasts in ambient light to help distinguish different atmospheres, and I was pleased with the resulting shots, which showcase the two lighting directions.

Post-Processing & VFX

For VFX, I kept things as simple as possible, following a tutorial to help enhance the atmosphere. I added fog planes around the windows and floors for added effect, using a simple tutorial I found on YouTube. I also used a cube volumetric fog with some controls. You can control the Volumetric Scattering Intensity of your light (for example, I used it for candles) to create more localized fog around them.

Once I was happy with the lighting and the final result, I created a LUT in Photoshop with several layers. This gave me full control over the colors and allowed me to give the scene a cinematic look. Color correction was really simple, and I like how easy it is to create your own filter and apply it to your whole scene. This was quite challenging because I had to create a LUT that worked with all the different atmospheres.

Time, Challenges & Lessons Learned

Overall, it was a great experience creating an entire scene from scratch and preparing it for the marketplace. I really enjoyed making it. It took me around three months to finish this environment. I learned a lot about Unreal's shaders, and leveling up my composition and lighting skills was rewarding.

Don't be afraid to ask for feedback. All my feedback is added to my PureRef boards, so I always have it in view, but sometimes it can be overwhelming. The more time you spend looking at your work, the more you lose your critical eye. Sometimes I felt like I had no energy to continue, and the project seemed terrible. It was hard to stay motivated. I know a lot of artists face these issues.

Don't hesitate to take a break from your work and gain some perspective if needed. At the beginning of your project, try to keep things simple and stay focused on your direction. Be well-organized, and have a clear vision of the project with tasks and deadlines without being too hard on yourself. Keep in mind that production takes time, and mistakes help you learn. Keep an eye on the energy you spend on your tasks to be as efficient as possible. Working on it until you're satisfied will push the project to the next level.

Thank you for reading, and thanks to 80 Level for this interview! I hope it was fun to read and that it provided valuable insights for everyone curious about 3D art.

Margaux Duboc, Environment Artist

Interview conducted by Gloria Levine

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