Avery Yang shared the breakdown of the Lil Thief in the Potion Shop project created with Unreal Engine 5, explained how the glass material for the bottles was made, and showed the work on dried herbs in SpeedTree.
Introduction
Hi, my name is Avery Yang, and I’m a 3D environment art student. Before learning 3D, I worked in something completely different: the death care industry. Seeing people pass away on a daily basis made me realize that death is the same for both the rich and the poor. It also made me understand how brief life is, and that I should spend my time doing something I truly enjoy.
While arranging cemetery and funeral packages and supporting grieving families, I also took time off to attend local fine art schools and art events to get inspired and learn from great artists. On one occasion, I came across an advertisement for my current school, Think Tank Training Center, which led me to switch from a local fine art school to studying video game art online.
At first, I tried to balance my foundation term at Think Tank with my full-time job. But by April of this year, I made a huge decision by leaving my six-year career, moved in with my partner, and committed completely to making art. That’s when my project, Lil Thief in the Potion Shop, began. For months, it was the center of my life, and through it, I came to understand the full workflow behind creating game-ready assets.
Lil Thief in the Potion Shop
I think my secret to choosing an art project is letting someone else help me pick it. With my fine art background, I tend to like very niche stuff that may not appeal to everyone, and I believe that, to create good 3D art, it should be something others can enjoy as well. So I asked my best friend at school, Joseph Chan, to recommend a concept to me, and he suggested Tarmo Juhola’s Potion Shop. My first thought was: “This is amazing! But it has so much glass material, and so many pieces!”
With an adventurous spirit and a strong eagerness to learn, I decided to take on the challenge.
So I set out my main objectives by looking at and planning phrases, which are:
- Create versatile furniture trim sheets.
- Tackle glass, a difficult material to reproduce, in Unreal Engine 5.
- Efficiently produce a large amount of content within my time limit.
- Gain experience creating dried herbs using SpeedTree.
Art Test & Furniture Trim Sheets
First of all, my mentor Sergei Panin told us that when game studios hire you, they usually give you an art test beforehand, aimed at junior artists. There’s a good chance you will need to complete a piece of furniture in one day using a sophisticated trim sheet. That was my main inspiration for practicing the drawer, and every fixture or piece of furniture I created in this project was done with the goal of preparing for an art test when applying for jobs.
With that in mind, I put all my effort into planning the trim sheets after completing the blockout. I had a hard time imagining which part of the furniture would go on which portion of the sheet. In Maya, I flipped the furniture onto a plane, cut out each face, and arranged them to visualize the trimsheet layout.
One thing to keep in mind is that you need to include ground dust, surface dust, grunge, spills, and damage marks on the top or bottom surfaces. In real life, none of the wood surfaces are perfectly flat, and adding the basic details mentioned will add more story to your scene. While arranging the trim sheet, keep in mind that grouping similar elements close together will make the texturing phase much easier, so all the faces that will get dust from the ground should be closer together.
Wood is a challenging material to get right in UE5. I had to go back and forth many times to tune it correctly. The key thing to remember is that all the wood should feel like it’s from the same material but still have some variety. You want viewers to recognize that the furniture is wooden but made at different times, with different finishes, and affected by various kinds of wear and tear. Applying subtle color tweaks and marks, different roughness values that tell a story, can contribute greatly to this effect.
Using good references is also essential. For example, I relied on references to create the ceiling, observing different shades of wood and signs of damage. For furniture, antique stores or restoration websites are great references, but keep in mind that some of them are more modern. You’ll need to use your imagination and creativity to make pieces that match the era of your scene.
Roof reference images from PureRef
Making Glass
After mastering trim sheets, I moved on to the glass material. My biggest recommendation to all readers is: never be afraid to ask questions to people who are more experienced than you. I’m generally an introvert and don’t talk much at work, but whenever there’s something I don’t understand, I’m eager to ask anyone, even those I don’t know, to find the answers.
I messaged my school’s tech artist, Joe, who taught me about Fresnel in UE5. I also reached out to another student, Jules, who had created a bar scene last term with lots of glass items. He shared his method for making glass, and I researched all kinds of glass shaders online until I finally found one that worked. At the time of writing this, the shader is still free and open source for both game and personal projects. The artist is very generous, though they don’t provide training or tutorials on how to use it.
After gathering all the information on how to create it, I decided to use transparent UE5 glass only for the few bottles that have contents inside. Most of the bottles in the scene are opaque, with a fake liquid shader instead.
Opaque Bottle
One thing to keep in mind when texturing glass is that the Base Color map needs the Opaque option turned on in Substance 3D Painter. Apply it to every bottle first, and then add dust and stickers.
It’s also a good idea to use the water drop and rust effects. These two Substance 3D Painter generators directly modify the Normal map of the bottles, so you don’t have to hand-paint damages to your normal ones, which saves a lot of time.
Old Stickers
For the old stickers, I first created clean, brand-new versions in Photoshop.
For the ones applied to white jars, I made them into alphas so I could stamp them directly onto the parts I wanted. Then, I added a bit of wear and tear by masking or erasing portions of the stickers.
For the ones on opaque bottles, I used Substance 3D Painter’s Sticker function. Be sure to turn off the Height and Normal channels; otherwise, the glass shape will be affected by the stickers. When applying them, keep in mind that they are from the Victorian era, so they must look old, yellowed, and dirty. After applying them, add another dust layer on top to cover both the stickers and the bottles.
Transparent Bottles
My schoolmate Jules and a tech artist helped me set up the glass material. I’m not a tech artist when it comes to making glass, but from an artist’s point of view, transparent materials in UE5 do have roughness, yet it doesn’t always affect the glass the way we want artistically. Adding a decal mesh of dust is a good way to make transparent glass look more interesting. I also placed a dim rectangular light right next to my display shelf to give the glass a subtle glow.
Remember to apply transparent materials only where necessary, as they are not very efficient. Also, remember to click the Disable Nanite button for all transparent meshes. At the time of writing, UE5.5 does not support Nanite on transparent materials.
Inside this layer, you can use an emissive material to create liquids. The emissive mesh needs to be flipped inside out to maintain transparency.
Finally, you can put anything you like inside the bottles! I was heavily inspired by oddities shops for this part and had fun creating little creatures in ZBrush on my iPad before bedtime.
When making the display shelf’s glass, the most important contributor to the final look was the decal mesh of dust. The preparation is similar to dust on opaque bottles: turn on the Opaque value in Substance 3D Painter and paint dust on the glass. Once in the engine, set the material to Transparent → Deferred Decal, and then place the decal on top of the glass.
The result combines a glass material with a Normal map modified in Substance 3D Painter using waterdrop and rust effects, along with a dust layer applied through a decal mesh.
Dried Herbs
It took me a long time to figure out how to make my own atlas, but to match the semi-realistic style of this project, I decided that the ones I made didn’t meet the quality I wanted.
Dried herbs have so many interesting colors and textures in their dead stems and leaves. Because of that, I chose to use an atlas from Textures.com instead. After downloading the atlas, I cut out the ones I needed in Photoshop. You need at least two different variations to create a convincing dried herb.
The left hand side of the screenshot shows you how to make the trunk invisible
When opening SpeedTree, the first thing I did was import the rope I made in Maya. The most important part of this creation process is to make sure the dried herbs fit naturally into the ropes. Next, I created a trunk on SpeedTree. After shaping it the way I wanted, I went to the Skin tab, selected the first type option, and set it to Spine Only. This makes the trunk geometry disappear while keeping its shape. Then, I created fronds, which naturally followed the trunk’s shape.
One important thing to keep in mind is that, because the herbs are tiny, they tend to disappear quickly at a short distance once placed in UE5. To avoid this issue, I exported them with only the highest LOD.
Workflow, Efficiency & Optimization
The image below shows the game asset workflow I used for this project. My mentor, Sergei Panin, helped us refine the planning process.
The most important thing in video games is that players can explore the environment smoothly at 60 FPS. Assets can have flaws, so the player’s satisfaction with the gameplay should always be the first priority. That’s why, in game production, 4K texture maps are rarely used. For this project, all of my furniture assets use 2K trim sheets. They may not have the highest resolution, but they still look good and demonstrate an understanding of how to create appealing environments with limited resources.
Low-Poly Small Props
For smaller props, a low-poly mesh textured in Substance 3D Painter is usually good enough. Depending on their size, you can pack around four of them onto a smaller UV map – or even 10 to 20 on the same map. The reason for this is that in a real game, sometimes you only need a single bottle in a room. You don’t want the engine to load textures for 10 other bottles in the background, as that would just be a waste of resources.
Mid Poly
For large furniture pieces, many game studios nowadays use mid-poly models to make them look interesting while saving the time and manpower required for high-poly sculpting in ZBrush and the retopology/baking process. By simply adding a few extra vertices to bend straight lines and corners, you can give a piece more character. None of my furniture models is perfectly straight because I added slight bends to each one. Using the mid-poly technique can make your environment look more sophisticated with just a few tweaks, without costing too much time or effort.
Retopology & 4K
With the workflow explained above, the only assets I decided were worth doing high poly and retopology for are the candles and candle holders, small metal pieces, the large chest near the camera, and the furnaces on the wall. These shapes are more organic, closer to the camera, or more important to the scene compared to the other assets. Also, I like to touch up the metal tags and handles in ZBrush to give the metal more subtle characteristics.
Only the large chest and furnaces used 4K maps because I planned to have close-up shots of them and establish them as hero props, but now, looking at the final piece, I think 2K maps would be sufficient.
Art Taste, Composition & Assembling in Maya and UE5
As an environment artist, my strength lies in making concepts believable and bringing them into 3D. I always keep in mind that professional concept artists or designers spend days carefully planning their layouts before finalizing a piece. Because of this, I have a lot of respect for their artistic vision.
For this project, I strictly followed Tarmo Juhola’s camera angle. I spent about a day or two matching it in Maya until it was perfectly accurate, then spent two weeks finishing the blockout with bottles and props placed to match the concept exactly. After that, I combined the meshes and brought the entire scene into UE5. From there, I separated the meshes piece by piece and re-imported them into UE5. During this process, I matched the camera again in UE5 by applying a transparent material onto a cine camera actor, projecting the concept art directly into the scene. This method ensured that both my base meshes and the final UE5 scene had the perfect angle.
The only aspect of the concept I wasn’t fully satisfied with was the furniture. Since Tarmo designed the piece as a bottle study, the furniture was quite plain. I had to put much more thought and personal interpretation into the design to make it feel like it belonged in an older-era potion shop. This is where environment artists rely heavily on historical references to make a scene more meaningful, story-driven, and lived-in.
The entire process of camera-matching, designing, and assembling took a lot of time, but it was worth every minute.
Lighting
80 Level had an Unreal Engine specialist to explain the science of lighting in this article. The most important thing I applied to my scene was the EV value in the post-process settings. You can read more about what EV is via the link above, specifically in the paragraph about EV100 and Stops.
One common mistake I see beginners make is setting their scenes too bright or too dark. If you set up your EV early in your workflow and adjust the lighting within that control, it will instantly look more sophisticated.
For my scene, the directional light is set as dim as 3 lux, with a 15,000K temperature. I prefer using physically correct lighting to add realistic tones. It’s also necessary to include volumetric fog since every indoor scene needs good fog to avoid looking flat.
I also added some blue rectangular lights near the window to bring in extra light. These blue-tinted lights give the scene a more fantasy-like atmosphere.
As I mentioned earlier, for all the display shelf glass, I added dim rectangular lights to enhance the glass reflections. The same applies to the floor – I added subtle blue reflections to create a “path” feeling.
For the candles, I started with the physical temperature of candlelight and then increased the temperature in increments of 500 until I reached the ambient color I wanted. Always keep in mind to not make candles too bright. Use the EV value in post-process to control your brightness levels.
Another trick with candlelight is to adjust the indirect lighting intensity. Increasing it slightly can help brighten nearby areas. For example, the herb close to the camera has a yellow rim light because the candle below it has a point light with an indirect intensity of 50.
To summarize: using EV and physically correct light temperatures, while only slightly tweaking the lighting toward a more fantasy style, was the approach I used for this project.
Conclusion
This project took me three months during my advanced term at Think Tank. When I started, I didn’t fully know how to create many of the things I’ve shown here, but I learned that as long as you stay curious and keep pushing yourself, you can grow just as much as anyone else in this field. Throughout this journey, I’ve gained valuable insight into game industry workflows, developed a stronger grasp of glass materials, and built confidence in working with trimsheets. I’m truly grateful for the chance to share what I’ve learned, and I hope my experience encourages others to keep going.
Thank you to everyone who supported me along the way – especially my partner, who believed in me and gave me the chance to pursue art full-time during this journey.