, by Andréane Brousseau

The Life Aquatic: Constructing an Underwater Scene

Andréane Brousseau discusses her process creating a colourful underwater scene using Substance 3D.

  • Interview
__+_+_

The Concept

I created this piece as part of an ArtStation challenge. At first, due to a busy work schedule, I wasn’t sure if I was going to be able to participate. However, I saw the piece by Solène Michon and fell in love with her concept.

At the beginning of my career, I had to work on an underwater scene. Once done, it was pretty much all blue. You couldn’t see the other colors well, even if I tried to tweak the textures. Everything looked blue with some brown and dark greens. I thought the ArtStation challenge was a great opportunity to create an underwater scene again, but this time making it really colorful.

It took seven weeks from the time that I decided to participate to when I completed the final touches on the artwork. I used a simple Excel spreadsheet for my planning. I noted the props that needed their own textures made in Substance 3D Painter and the textures that needed to be created in Substance 3D Designer. These included the tiling that would be used for the sand and rocks. I also noted down a shortlist of VFX I needed.

Before now, I usually kept most of the plan in my head when working on a personal project. I have found that having it all written down made the project seem a lot more manageable than I thought, and I felt more motivated overall. It was good to have a road to follow instead of trying to remember from memory what each next step was.

Building the Scene

My scene began the classic way: by blocking it out and getting everything in place, then modeling. I found the blocking process easy because I had a clear vision of how I wanted it to be. That is how it is when you are working from a 2D concept, I find. However, the difficult part is how to adapt it in 3D. I thought creating brain coral would be the most difficult, but in the end, it was a lot easier than I expected. The trickiest part was perfecting the rocks. I had trouble with their positioning, as I wanted them to align well with the water and keep the same shape and feeling as in the concept. It took a lot of trial and error, with many tweaks, but it all came together and I’m proud of the result.

Modeling Process

I initially used ZBrush for sculpting all the details. I tried to avoid straight lines when modeling apart from the lily pads- which were cylindrical. To break the top of the shape, I added a noise modifier in 3ds Max, and this allowed it to blend in more with the environment.

For the brain coral, I didn’t want them to look like misshapen spheres – I wanted them to be detailed and stand out when I added the lighting later. I was considering using the height map with the tessellation in Unreal Engine (UE) 5, but I learned that it had been deprecated and replaced with Nanite. Instead, I imported the base mesh of the brain coral, with UVs done, into ZBrush. Then, I added more geometry to it and used the displacement with the height map that I created in Designer. I adjusted the intensity of the map, applied it, and then it was ready to be imported into UE5. Usually, I like to start in 3ds Max to do model the basics and then import them into ZBrush to add the details.

The Rocks

As mentioned, the rocks at the top of the scene were complicated to create. In the end, the way I did it was by starting with the blocking, keeping in mind where I wanted to have a sharp edge in the camera view. I then imported what I had done into ZBrush to add more details and curves. In 3ds Max, I did a low-resolution retopology and smoothed the area in between the sharp edges. After this, I added the modifier Turbosmooth to achieve gentle curves overall and finished it by adding chamfers on all the sharp edges. This way, I had a mesh with clean curves and corners.

I wanted to have a more detailed mesh with lots of rocks sculpted in with cracks. I did several iterations, but it always felt too noisy from the camera view. So, I had to change my plan and keep it minimal. Once textured, it still felt a bit too flat, so I decided to create a mask with the curvature map (that I baked in Painter), and I added it in the shader in UE5. Finally, all the sharp corners stood out and the rocks had more volume.

Animation Inspiration

I really wanted to make it beautiful. My idea was not to have a lot of props, but rather to create a feeling of magic.

I was inspired by games like Super Mario Odyssey, Dragon Quest XI, Ni No Kuni, Kirby and the Forgotten Land, and Spyro Reignited Trilogy for several elements of the scene. For the sparkles, I was inspired by the ones you see in Super Mario Odyssey in Lake Kingdom when you’re underwater. I really liked the little touch it added. For the bubbles, I was inspired by both Dragon Quest XI and Spyro, after looking at them closely.

I wanted to give an anime feel to the water. So, I reused the same shader I used for the caustics, but I made it simpler and created the texture in Designer. Contrary to the caustics, the texture doesn’t move – like the bubbles – and there is a normal map panning to create the effect of movement. What I love about Unreal Engine is how easy it is in general to find resources and find answers to my questions.

Using Designer

My skills with Designer were a bit rusty because the last time I used it was around seven years ago. I found this survival kit from Vincent Derozier just before the ArtStation challenge and it allowed me a lot to discover interesting node combinations. The kit is basically a hierarchy and designation library that provides a range of node recipes, with graphs and explanations.

Almost everything in my piece has a touch of Designer. As mentioned, I did several tiling textures for the sand and the rocks. Even the props that had their own textures had a base texture I made in Designer. I wanted to have the same base texture on all the props, that had a slight variation of color. This helped speed up the process of texturing them. All the textures of the VFX were also done in Designer, as was the background sky.

The Slope Blur node is quite magical. I think I’ve used it on almost everything. Another special node that helped me to create the texture for the brain corals is called Reaction Diffusion Fast. With this one, you can just plug in any noise texture, and then you’re good to go!

Light and Dark

I included a white overlay and a map of ambient occlusion to enhance the dark places in the image. For some meshes, I added the white overlay with a curvature mask in Painter, directly on the texture of the base color. For the ambient occlusion, I did something similar in Painter but with a dark blue color, and the occlusion map as the mask. In this case, I didn’t want the scene to be all blue because of the lighting. So, they’re light blue, almost white. This way, all the other colors in the scene were not affected. It is mainly the fog in the scene that has a good amount of blue, and this adds to the mood of the scene.

I also wanted to make use of the Subsurface scattering (SSS), but after some investigation, I saw that it wasn’t working 100% in UE5, and the workaround was to use some other settings. I tried it but it wasn’t successful, so I went with the way of having an emissive map.

The Challenges

One of the more difficult things for me was the trial and error when working on different elements of the piece. There were some days when I was frustrated because I didn’t manage to get the result that I wanted. I would then stop and tell myself that I would come back later after working on something else. That often happens to me: I will be halfway done with my artwork, but I won’t be completely sure that everything will come together in the way that I want to. It can be demotivating. What I do in moments like that is push myself to continue, celebrate the small wins, and focus on the things that made me excited. One of these things was animation. Once I started to add movement to the piece – along with the lighting – I got a glimpse of how it would look at the end, and this gave me the incentive I needed to not quit.

Read more