Tladlokta’s Market

Environment Breakdown

Aylinn Nguyen

1a_Main_Shot
105

Aylinn Nguyen

Environment Artist

Introduction

Hi! My name is Aylinn Nguyen and I'm from Vancouver, Canada. Before we begin, here's a little introduction about myself and how I got to where I am today!
In high school, I signed up for an animation class, not realizing it was 3D animation and not 2D. However, I soon discovered that I really enjoyed the blend of artistic and technical aspects involved in 3D art.
After graduation, I decided to pursue 3D and applied to Think Tank, where I was accepted and learned a lot. I found a particular love for environment art for games, and now here I am!

Software

  • Maya – I used this for modeling, UVing, and retopologizing my high poly sculpts in my scene.
  • Unreal Engine 4 – The render engine I used.
  • ZBrush – This was used for sculpting my wood kit, vegetables and fruit notably.
  • Substance Designer – For creating my tileable textures, wood kit and bakes.
  • Substance Painter – Also used for textures and bakes; more specifically for smaller props and RGBA masks.
  • Marvelous Designer – Used to simulate the tarps.
  • Photoshop – For texturing the posters and creating decals.
  • PureRef – Where I placed all my references.

Goals

I found Kiara Leneuf’s concept of Tladlokta City and fell in love! However, the scope of the concept was far too big for me. Instead, I decided to do just the fruit market from the city concept. I took the concept art and added a background to it.

I wanted the viewer’s focus to be on the building as it has beautiful shapes and details that I really love. I didn’t want to have a background that took away from the structure, so I went with clouds and mountains that frame and direct the eyes toward the building.

1_mockup

For the project, the look I wanted to go for was a more stylized, painterly, Studio Ghibli-esque look. A few projects I studied to understand this look were:
William Tate’s The Rose Inn
, Jasmin Habezai-Fekri’s Sunny Market Entrance, and Mick Jundt’s Wizard Tower.

There are also plenty of stylized textures on ArtStation that I also had for reference. I feel like the key for my was noticing things from different references that I liked and then applying those elements to my own work.

Before I started, I found it very useful to somewhat plan out what I was going to do. Specifically kits and identifying different materials.

2_kit_prep

I cut out pieces from the concept and put them to side to have a visual of what I could make a kit of. Going into a project with a mental plan makes the project far less daunting and makes it way easier to dive right in!

Here is a view of what my PureRef after gathering everything I needed:

3_pureref

Blockout and Modelling

I started off by blocking out the main shapes of my building. I would always look at the reference and try to get the proportions correct and feel good.

A key part of my process was constantly referencing a human mesh in the scene to make sure the scale of all the parts of my building made sense. It is also important not to get too caught up with unnecessary details while you’re starting out; starting with the basic shapes and building up from there.

Once you near the end of your blockout, it doesn’t hurt to dive into certain things in your scene that you are unsure how to approach. For example, in the metal sheets in my project, I did a quick model of the corrugation just to get an idea of how I’d approach it properly in the future and to see what look to really go for.

Another tip is to apply simple colour to your blockout just to get an idea of the different materials you will have to work on so you can start planning accordingly!

2_blockout_col

After completing the blockout, I felt comfortable enough to start doing the detailed models and filling the scene with my finalized meshes. For the most part, working on the scene was quite straightforward. The process for many of the things in my scene model parts of the scene with more detail and replace the blockout with said meshes. One important tip for stylized work is beveling.

Chunkier edges appear softer and more stylized compared to sharp ones. Don’t get too lost in the smaller details; the bigger shapes are very important too! I will also go over my process for my props, fruits & vegetables, and wood kit in more detail further into the article! 

Materials, Tileable Textures, Stylization

I feel like the textures in my environment are what really brought my scene to life. The way the materials interact with your lighting, the colour palette and the textures should be a big focus when it comes to creating a stylized look. In this section, I’ll go over the techniques and approaches I used to create the textures in my scene. 

The biggest help during my texturing process was looking at other people’s stylized scenes. Take note of the colour range, colour variation, and the shapes. It is also nice to study other textures to see the things you like from them and implement them into your texture.

Before I dive into my texture-making process, I would like to cover material layers. I followed this tutorial for the material setup: https://youtu.be/UZghyZLzRyM. The RGBA masks have been most useful for getting the walls to look exactly the way I want. Having full control of where grime and dirt is on such large objects is extremely powerful. I feel like without material layering, I would not have been able to pull of the look that I achieved. 

As you can see in the following video, I show off my RGBA mask. I create this mask in Substance Painter. My process was to bake the wall and create the different layers of the mask in Painter. In my material, I gave myself the ability to tint my walls with vertex painting. With the combination of material layers and vertex painting, I’m able to have a lot of control over my walls.

I also used the material layer method on large objects in my scene like my boat.

I will walk through how I made my brick texture to demonstrate my general process.

Starting off with the height map, I made sure to add lots of height variation and slight size variation as well. It makes the texture far more dynamic and interesting to look at compared to perfectly sized and placed bricks.

Your environment has a whole story behind it! It’s important to make sure your scene doesn’t feel like it was built in a machine, rather, make it feel like it’s lived in. I also made the bricks a bit beveled as it gives a more stylized and softer look. Added some chipped edges for more interesting shapes to the bricks, some dents, and small specks into the bricks as well. Also, notice the damage is most prevalent on the bricks that stick out the most.

Here’s a view of the ambient occlusion for a better view of what the bricks look like!

4_brick

Now for the albedo. I started off with a gradient map that I plugged my height map into and chose the overall colour of my bricks. Also adding colour variation to the different bricks. I feel like colour variation adds much more interest to the material and is also a key part to a lot of stylized textures.

I also added the chipping and grout. The main thing I want to point out is the extra colour variation I added to the texture. It adds a smaller level of detail that gives it a very interesting and painterly look.

Adding curvature highlights the edges and brings a lot of shape to the bricks. I also made the specs on my bricks the same colour as the curvature. I feel like it adds a smaller level of detail with more interest and variation to the bricks. I finished it off with a mossy texture as the climate of my scene is a humid one and I imagine that grime would build up between the bricks.

Here is a run-through of me building the roughness. I started off with a noise that I slope blurred then stacked different masks from my graph on top of it. 

13_roughness_gif

Fruits and Vegetables

Starting off with a blockout of the fruits and vegetables, I made a proxy of my baskets, as well as a mesh of a human so I could get the correct scale.

While I was creating my fruit, I kept in mind what I could do to optimize it. In this instance, I’m reusing my apple mesh and creating different leaves to create the tomato and persimmon.

2_example

I brought my blockout into zBrush and sculpted. The main brushes I used for this were from the iconic orbs brush pack by Michael Vicente.
I used the clay buildup and the move brushes to create the shapes, the orb extreme polish to smooth out the mesh, and orb cracks for the cuts in certain vegetables.

3_sculpt

Next, I decimated the sculpt and brought it back into Maya for retopology for my low poly. I brought the low and high poly into Substance Painter for baking and texturing. As for texturing, take note of the gradient I added to a lot of the fruits (refer to the carrot for example), the colour variation, and the vibrance in my colour choice.

4_texturing

Wood kit 

My process for creating the wood kit is similar to my workflow for fruit and vegetable assets. There were a few things that I’d like to highlight.

To start, I turned to Damian Kijowski’s helpful breakdown (available at https://www.artstation.com/artwork/nQmRPK) on how to approach sculpting wood grain. While my process was quite similar, I decided to accentuate the grooves on the wood grain to add a more distinct and prominent texture.

With the placement of the wood, it’s important to strike a balance between believability and aesthetics. Real wooden buildings often have slight imperfections and irregularities that add character and a bit of a story. I placed the wood with a focus on avoiding symmetry and perfection. Varying the thickness, length, and rotation.

Props

A key part of creating an immersive environment is the use of props and other small details. They help fill up empty space and added lots of visual interest. They can also play an important role in storytelling and worldbuilding. I paid special attention to the placement and variety of props throughout the scene. Try to imagine the environment was inhabited by real people and used my props as a way to convey information about the world and its inhabitants.

For example, in this side area, I placed a stool with cans on top of the barrel. To me, it reads as a little rest area where the residents in this scene take a seat and relax while cracking some cans. Some tarps on the ground, along with some rope. I also placed extra empty baskets near the fruit stalls, signifying that they have extra baskets, possibly from restocking. Another tiny story I tried to imply is with the straw hat on the wooden pole. My intention was for the viewer to think someone left it there once they got off of their boat. Even the flip-flops in front of the door tell the viewer that there are people who live in the scene and are in the building.

Leaving a cone over a hole on the deck to warn customers to be careful about where they’re walking! Potatoes on the ground that had fallen from the stalls. These props don’t take too much to create, yet elevate the scene to a whole different level.

3_props
4_cone

Foliage

I feel like foliage can bring a lot to an environment; giving the building more life and the subtle movement to the scene really enhanced a lot of my shots. The foliage that can be found in my scene are ivy, lilies, and grass.

1_plant

First, I’ll go over the ivy. The approach for the ivy was to make a texture of a variety of leaf clusters that I stack and overlapped with each other to create proper 3d bundles of ivy. The texture itself is called an atlas. I created a sketch of the different clusters to get an idea before I started. 

2_atlas_template

Starting off a new texture in Substance Designer can be a bit challenging. The beginning is a bit of a struggle, thinking about how to approach it. I tackled how to make my leaves format the way I wanted it to with the different clusters and would like to share how I did it with you!

The key was using an SVG node to draw out a mask of where I wanted the leaves to form. Being able to use the SVG node and draw out as well as to fully control where the leaves form was very nice. I plugged the SVG mask into some blurs and levels to create different layers of leaf clusters. I also created two leaf shapes; one is a simple circle and the other is a heart shape that I created using the directional warp. I used a Tile Sample node to plug the masks in and to scatter my leaves.

3_atlas_creation

After adding in colour and layering the leaves together, I ended up with this!

4_atlas

As for modeling, I wanted to replicate the ivy placement that the concept had since I really liked the shapes that the artist drew. To start off, I applied the texture onto a plane and cut it out. After cutting the leaves out, I also added some shape to the planes just to make my look more dynamic before I started to place them into my scene.

5_ivy_cut

With the little ivy kit I had made, I placed my ivy into the scene. At the end of it, the vegetation looked like this in Maya! I also baked my vertex normals on the ivy using this method

6_ivy_place

Next up are the lilies! I decided to create these as proper meshes rather than using one-sided planes because I wanted these plants to have a thickness to the leaves. 

I started off with a blockout in maya. I decided to make 4 different meshes to scatter around my scene because I felt like 4 meshes would bring me enough variety for when I do place them into the scene.

7_lily_blockout

Next, I brought the meshes into zBrush. I sculpted the veins, smoothed out the mesh and refined the shape of the leaves. 

8_lily_sculpt

I then decimated and imported the mesh into maya for retopology.

9_lily_retopo

I took a lot of time placing my lilies and making sure the shapes were very dynamic and interesting to look at!

 

For the grass, I created blades of grass using a plane that was cut up a couple of times as shown in the following image:

12_grass_wire

Making sure the UVs are oriented where the bottom of the grass is pointing downwards. This will be important for the masking in Unreal when applying the SimpleGrassWind to your shader.

13_grass_uv

Speaking of the shader, I have set up a basic shader that uses a gradient on the texture coordinate as the WindWeight mask.

14_grass

For ivy and lilies, I used SimpleGrassWind (plugged into World Position Offset) for the wind movement with the ability to vertex paint the WindWeight where I want. 

15_wind

As well as subsurface scattering combined with FuzzyShading.

16_sss

World Building & Details

The building in my environment is undoubtedly the focal point of my scene, drawing the eye to its design and colours. However, as important as the building itself may be, the surrounding landscape also has a huge part in the scene as it provides the context of where my scene is set as well as gives me the opportunity to build on the composition. I placed my clouds in a way that directs the eyes toward my building, creating a sense of focus and direction. 

Animating parts of the scene adds dynamism and visual interest, breathing life into a static world. In my environment, I incorporated animated elements like swaying leaves, swaying boats, swaying tarps, and waving clothes, adding a layer of depth and creating a more immersive experience. Adding animation, whether subtle or pronounced, can make the scene feel more realistic and engaging. I had covered how I made my vegetation move, so I will briefly go over the other animated elements of my scene. 

For the hanging clothes, I used Unreal Engine’s cloth simulation. Using Unreal’s wind to control how my clothes move is quick and has a very nice result when it comes to how they sway. This video goes over the process

1_sim

As for the tarps, I created a new material layer to put on top of my tarp that creates subtle movement.

2_tarp

For the water I used Unreal’s water plugin. The only changes I made to Unreal’s shader were to mask out the water inside my boats and water contact. 

The water mask utilizes a shader that uses distance fields as a mask.

3_mask

In order to properly mask out the inside of the boat, I modeled a mesh that fills the inside of the boat. With the mask mesh, go into your boats details and find “distance field replacement mesh” and apply your mask mesh. Now the engine is using the mask mesh to mask out the water.

4_distancefield

The water contact also uses the distance field of the boat.

5_contact

As for the mountains, I had sculpted one big mountain mesh that is two-sided so I could scatter it around the background without it being obvious that it is all the same mesh.

6_mountain

I apply a world-projected texture that projects grass on top for a touch of vegetation on the mountains. This gives me a lot of freedom with the rotation of my mountains without the worry of having the grass being somewhere it shouldn’t be.

7_mountain

Decals were an important touch to many sections of my scene. A lot of them were used to add character and some colour to certain parts of my building. The crack and divot decals were especially useful for adding damage and interest to my plaster walls.

8_decals

Lighting & Rendering

Lighting, rendering, and presentation of your scene are what really can elevate a scene. These things really show off and highlight all of your hard work and it’s important that you take some time and care during this process of the project. My lighting is nothing special, however, I can share a couple of tips and resources that I followed along the way.

 

My scene was dynamically lit, as well as using distance field shadows. This video from Unreal Engine, showing off Fortnite’s lighting techniques was a very useful resource for me. I also found that some of my shadows were culling too early, which I solved by running the command r.shadow.radiusthreshold. 

Using lighting channels, to control certain aspects of my lighting, and faking some lighting as well. I also placed coloured lights to fake the light shining through my tarps. 

3_lighting

Finally, instead of using Unreals Sequencer, I used the Movie Render Queue plugin to render out my shots. This video series by William Faucher is a great place to refer to when starting off.

Conclusion

This project was a significant learning process for me. It exposed me to various challenges and helped me familiarize myself with the process of creating an environment. I could not have done this without the support of those around me, especially my mentor, Jason Cheng. Thank you for taking the time to read through this, and thank you to GamesArtist for giving me the opportunity to write about everything I have learned!