logo80lv
Articlesclick_arrow
Professional Services
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
Order outsourcing
Advertiseplayer
profile_loginLogIn

Learn How To Create A Cozy Kitchen Scene With Unreal Engine 5 & Maya

Environment & Texturing Artist Tam Le has shared a detailed breakdown of the Cozy Kitchen project, explaining the egg sunny side up technique in Maya & ZBrush, texturing workflows in Substance 3D, and setting up a homey, nostalgic atmosphere with UE5, along with providing numerous tutorials for beginner artists.

In case you missed it

You may find these articles interesting

Introduction

Hi everyone! My name is Tam or Tammy Le and I'm a recent graduate from Savannah College of Art and Design, Atlanta with a BFA in Animation. I'm a 3D Artist specializing in environment art and texturing.

My journey with 3D art started when I took my first Maya class in college in the fall of 2021. I originally wanted to become an illustrator but fell in love with 3D animation, especially the environmental aspect of it, so I decided to study technical animation at SCAD. During my study, I learned various aspects of 3D including modeling, texturing, lighting, and rigging. I also spent many hours watching tutorials on YouTube and reading 80 Level's articles to further hone my skills.

The Cozy Kitchen

The Cozy Kitchen project started as a school assignment for a game art class. I had already been using Unreal Engine for almost a year and wanted to dive deeper into the software and its diverse tool set by making one of my favorite places in the world: the kitchen.

I have a Pinterest board full of ideas of what I want for my future home and I decided that this would be a great chance to make some visualization of my dream kitchen. To make the kitchen as lively as possible, I tried to add elements such as a sunny side up being cooked and steaming hot coffee. Similarly, I also researched references for mildly dirty kitchens and old kitchenware since most of my initial references from the Pinterest board were very clean.

Composition & Blockout

To begin with, I made a quick drawing to plan out where each thing would be, based on the references. Next, I quickly blocked out the scene in Maya using primitives, the Unreal mannequin for proper scaling, and set up a camera to match the drawing.

I wanted the scene to be lit up entirely by natural light so I placed a window in the structure and played with the idea of using the window's frame as a place to hold extra seasonings or plants that a lot of small apartments have. The drawings also helped me identify areas where I can potentially use Megascans' assets to populate.

Modeling

I wanted this project to challenge me in terms of hard-surface modeling inside Maya since I did not have much experience with hard-surface topology and workflow beforehand. The coffee machine was the first object I modeled in the scene. It helped me get a general idea of what edge loop tips I can use and the workflow I can follow for the rest of the objects.

Here is the tutorial that I referenced to:

I had not modeled anything like an egg carton before so it was also a challenge to figure out a way to approach it.

I referred to this Foundry's MODO tutorial to see how another modeler approached the topology of a carton and tried to mimic the same techniques using tools inside Maya:

As for the coffee bean jar, I wanted to try out MASH in Maya to fill up the jar rather than using a texture. I referred to this tutorial for MASH:

The sunny side up is the highlight of this project and I knew that I had to nail it. I started in Maya by making a basic egg shape with proper topology and keeping the whole thing single-sided. Then, my friend Hung Nguyen taught me some new techniques in ZBrush that helped bring the fried egg to life!

He showed me how to use Dynamic Subdivision, masking with Surface Noise, and Deformation's Inflate Balloon. First, we apply Dynamic Subdiv to the model that I blocked out in Maya.

After Dynamic Subdiv, I used the move brush to deform the overall silhouette to look more like a sunny side up.

Once happy with the overall shape, I hit the Apply button to finalize the silhouette. Next, I divided the mesh a few times to smooth it further then applied a Perlin noise in the Surface tab, and hit MaskByNoise so I could use Deformation's Inflate Balloon attribute to add the bubble pattern that we would see in a fried egg. Make sure to also mask out the egg yolk area before applying Inflate Balloon.

Finally, I used the Form Soft brush to add more bubbles to the egg white part and added random holes to make the surface more organic. To add a crispy feeling to the edges, I used the Clay BuildUp brush, changed the stroke to DragRect, and the alpha to Alpha 08 to add small noises to the edges of the egg.

After modeling everything inside Maya and assembling the low-res and high-res sculpts from ZBrush into the Maya scene, I placed all assets at the origin to maintain proper pivot positions when exporting them into individual FBX and reassembling them in Unreal Engine 5.

Texturing

Texturing is my favorite part of this project! I spent some time looking for more references for each object and analyzing them to understand how to show a mild level of wear and tear on different types of material.

I used Substance 3D Painter to texture all assets with the help of Substance 3D Designer to create some original materials: the mitten fabric and the kitchen tiles.

The mitten fabric material was very fun to make since I got to try matching procedural stitches in 3D Designer for the first time! I referred to this tutorial:

For the kitchen tiles, I started with a Tile Sampler node and Slope Blur node to set the overall shapes of the tiles.

Next, I used 3 variations of the Flood Fill to Gray Scale node with different Random Seed as inputs for the rest of the graphs to make sure details don't get masked on the same tiles too many times.

For the metallic materials, I set up a Mask Editor to procedurally create the small-dots pattern that we usually see on old steel.

Most of my Mask Editors for this project are heavily driven by curvature maps. Additionally, I used the Mat Finish filters to quickly achieve the look of certain types of metals. 

Here is my general workflow inside Substance 3D Painter:

Megascans is a great resource for all things texturing. I used a lot of Quixel Megascans imperfection maps to mask food leaks, heavy water stains, wipe marks, and specific dirt patterns. I also used their wooden flank materials as the base for the window, and the wooden counter, and added further color variation and dirt inside 3D Painter.

For the green backsplash tiles, I duplicated and modified the Megascans' Master Material in Unreal to turn them into an Imperection Vertex Painting material. I used the imperfection maps from Megascans to mask an overlay of dirt on the original base color and roughness maps.

This is a great tutorial to learn how to incorporate Megascans' imperfection maps into existing material maps: 

Next, I referred to this tutorial to set up Vertex Painting with custom noise parameters:

For the wall materials, I used two Megascans materials to drive the Vertex Painting rather than having a dirt overlay like the backsplash material. Since the Megascans' plaster material was quite clean, I overlaid two imperfection maps on top of the base color map to add more dirt and grime to it.

Here are the walls and tiles before and after Vertex Painting:

Assembling the Final Scene

After placing all assets in Unreal, setting up shaders, and applying all texturing, the whole kitchen still felt not cozy enough due to how clean and unused all the large surfaces looked. Thus, I created some decals for dirt and coffee powder dropping on the countertop and used the Megascans' bay leaf as foliage to scatter across the countertops.

For the custom decal, I used an imperfection map as the micro detail multiplying on top of a tileable cloud noise as the macro detail, and used the output to drive the Opacity attribute. Both maps have parameters to control its tiling, offset, contrast, and intensity which allow me to dynamically adjust the look of the decal and create variations.

Here is the demo of the custom decal:

Here is the comparison of before and after foliage and decals:

Lighting & Rendering

I chose Unreal Engine for this project mainly to use its extensive set-dressing tool kit, such as foliage and decals, as well as to utilize the power of real-time rendering to play around with different compositions and lighting setups for the final renders.

For the lighting of this project, I wanted a subtle, foggy morning to accompany the frying egg and steaming hot coffee that the owner of this home is preparing for their breakfast.

The main light is a direction light with some volumetric scattering to enhance the feeling of early morning. Since this is an interior scene, I learned from William Faucher's Interior Lighting video that placing a rectangular light with Cast Ray Traced Shadows enabled will help objects catch better specular highlights and softer shadows.

Since I wanted to use ray tracing for the transparency of the glass object, I also placed some rectangular lights connected only to Channel 1 (along with the glass objects in the scene) with more intensity so the glasses could catch more highlights on the surface.

For the coffee machine's pressure display, I placed a small rectangular light between the glass and the inner layer to fake some light passing through the glass and lit up the display.

For post-process volume, I kept the Global Illumination at default Lumen, changed the Reflection and Transparency to Ray Tracing, and used the setting below.

It was difficult to get the reflection and translucency of the glass to work accurately. However, after some time playing around with all the attributes, I figured the setting below works quite well with interior-lit glasses.

And this was the tutorial I referenced for the glass setup:

For the steam FX, I referenced this video:

For the fire FX, I referenced this video to understand how to set up a basic fire:

Then I played around in Niagara to figure out how to make the fire repeat around a pivot. After some research, I figured out I could use a Shape Location attribute to set the sprits to be at specific locations on a ring shape. My method is probably not the most optimal one but I was not able to find much information on Niagara's stove fire setup example.

Conclusion

I learned so much through this project and improved my skill sets in a lot of areas from modeling, texturing, and broadening my Unreal Engine knowledge. I faced many challenges but I already knew from the start that I wanted this project to allow me to dive deeper into environment building in Unreal Engine. One of the biggest challenges was to figure out how to get a nice specular highlight and translucency on the glass since I know that is one of the areas where real-time rendering is still struggling. However, I'm very happy with the final result. 

My advice to fellow artists is to not be afraid to seek help from friends or just to get their fresh eyes to look at your project for feedback. It is always helpful to get another person's perspective on a problem. Moreover, it is never too late to revisit an old project and make improvements to it. There are a lot of great online tutorials on YouTube and 80 Level that are extremely helpful for self-learning and I hope that the ones I introduced in this article could be helpful to some new artists out there. 

Thank you so much for reading the breakdown of my piece Cozy Kitchen. If you enjoy this artwork or have any questions regarding the process, feel free to reach out to me on ArtStation, LinkedIn, or email me. Have a great day and good luck with your 3D journey!

Tam Le, Environment & Texturing Artist

Interview conducted by Theodore McKenzie

Keep reading

You may find these articles interesting

Join discussion

Comments 3

  • Production LARK

    There were so many useful tips, it was really great!
    Thank you for sharing this production process!

    2

    Production LARK

    ·16 days ago·
  • Anonymous user

    Thanks so much for this breakdown! I really appreciate how detailed you have been and all the amazing tips and learning resources you have given us. I have learn a lot with your article! And the scene looks insanely good by the way, great job and congrats!

    0

    Anonymous user

    ·7 days ago·
  • Galiza John

    I enjoyed reading this breakdown! Great job, Tammy

    2

    Galiza John

    ·16 days ago·

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