Learn How This Beautiful Diorama Inspired by Zelda & Diablo Was Made in Blender

Jake Woodruff has shared how Side Quests, a beautiful 3D diorama, was created in Blender, detailing the texturing and sculpting pipelines and explaining how SpeedTree helped with setting up the environment's centerpiece.

In case you missed it

You may find this article interesting

Introduction

I'm Jake Woodruff, a Senior Environment Artist working in games for nearly 10 years now. I work on all things foliage at Playground Games.

The Story Behind the Side Quests Project

For Side Quests, I wanted to combine my desire to practice sculpting with a more interesting diorama presentation influenced by games like Nintendo's The Legend of Zelda and Blizzard's Diablo. I don't normally work directly from concepts but have them influence the mood and tone. Quentin Mabille's work was an absolute driving force for my desire to create a sense of adventure and optimism. I loved the idea of combining the detail and quality of Diablo if viewed through a more colorful lens.

My reference for creating and sculpting the assets came from cathedrals and abbeys that exist today in various forms of decay. Even if working within quite a stylized aesthetic, it's best to use real-world reference as a foundation.

Planning the Initial Composition

I started by blocking out a robust kit library. I picked out shapes I liked from my real-world reference and concept images and started modeling them. For me, things tend to get quite messy and experimental at this stage, which is okay, I didn't have a final vision or design just yet. The most important element was setting everything on a 2m grid and keeping Grid Snap enabled so everything would generally slot together. This lays the foundation for everything. I can add more pieces later, change pieces, and combine pieces in different ways to make a big variety of compositions.

Then, I took these kit pieces and used them like Lego blocks to piece together and try out all kinds of layouts and ideas. I also did this while developing some of the assets and materials so I could better understand the scale and how much detail everything needed. Once I had the first main image of the bridge, I knew the rest would follow, so I could start working on some of the assets up to the final.

The Workflow Behind the Asset Creation

For my main assets, I started by sculpting a library of bricks and stone in ZBrush, which I would use to build up any asset I needed. This is the best way to not only save time but also keep consistency across each piece and have them all work together down the road. For each piece, I would start with a trim dynamic pass for the edges and larger damage, then layer in some surface noise using alphas. Later, I would do another trim pass to knock some of the detail back and make it read better. I repeated the same steps for each piece so it was consistent and quick. My main goal was for consistency and speed to create a lot of content, so the detail at this stage was a balance between time and what would be noticed in the final shot.

With my library of stone, I could then build up each of my assets. I started with the tileable brick as this would be the base for everything. I used just a default plane mesh in ZBrush as my scale reference and used the offset function to make my bricks tile horizontally. Once I had my wall arranged, I could take that sculpt and break off pieces, which would become the detail meshes to build up the destruction later. This allowed all of the detail assets to blend with the tileable seamlessly.

For something seemingly more complex like the pillars, I would just use the same processes but combine them in different ways. The foundation for the pillar involved applying the brick tileable onto a cylinder, while the stone columns underwent a similar process to create the bricks. Since the pillars would not be viewed from all angles, I sculpted one of the smaller columns and duplicated it to achieve the desired effect. The approach was similar when it came to crafting the damage caps, although I dedicated additional time to sculpting the specific components.

I deliberately made the texturing phase very simple, both technically and visually, as this would serve the clean aesthetic going forward and save a lot of time. Once I created the first brick meshes, I made a smart material that simply layered different colors using various masks. I wanted a stone-like material but nothing too specific as I wanted to be able to just drag and drop this on everything I made so all the pieces would fit together color-wise.

Then, the larger module assets were constructed with a combination of base tiling material and detail assets. I took the blockout mesh as a base, added larger damage geometry if needed, and displaced the tiling brick material on the exposed surfaces. I drove all this with modifiers in Blender so I could go back and edit things or boolean out extra damage if I needed to.

Later, I proceeded to overlay intricate meshes onto the prominent modules in order to introduce variation to the surfaces and incorporate intricate elements of damage and detail. These components could then be grouped together, allowing for easy substitution of pieces and continuous layering of detail until reaching a point of contentment. I followed this approach for all the architectural pieces featured in each shot.

Speaking about the Diorama's Centerpiece

The tree was primarily created using SpeedTree, focusing on shape and form rather than textures and materials, keeping it completely procedural. The hand-editing tool was utilized to precisely define the desired shapes, followed by adding layered details to establish a solid foundation for sculpting. At this stage, the tree may appear fairly basic, but it can be easily exported and placed in the scene to assess its overall visual impact. While having a sculpted trunk is desirable, it is not an immediate requirement.

When I was relatively satisfied with the form, I built up layers of detail on the trunk to provide the base to sculpt on. I started with vine-like shapes using the trunk as a force mesh to attract. Then, I added smaller details like lumps, branches, and roots to layer detail. I chose to add these details in SpeedTree to not only make sculpting quicker but also so I could change the entire shape later if I wanted. You can add these details through various displacement textures as well. However, I wanted to really control and exaggerate the forms so I chose to do it with extra geometry.

I then decided on how much of the trunk I wanted to make custom and exported the trunk to ZBrush. Later, I dynameshed it at a low resolution to merge everything into one big mesh. Then, I sculpted up the forms, making sure the lines flow from the roots all the way through to the upper branches, slowly adding more resolution and detail. I mostly used clay brushes with round alpha and ended up doing a detail pass at the end to add some noise and texture to catch the material better.

For the final texturing, I baked all this down to a decimated low poly. The only key thing I had to make sure of was that all the UVs were flowing in the same direction so they would match the flow of the tree and not look weird with the tileable. I layered two tiling bark textures and some dirt and detailing to produce the final unique texture in Substance 3D Painter, it was very simple but effective for the final scene.

The Canopy

For this particular tree, I used some bonsai references for the structure of the branches and canopy. To get clumpy, cloud-like shapes I used SpeedTree's Shape Control tool. This method does not allow a lot of fine control but is a really good way to populate the canopy quickly and achieve a less chaotic look. I can still manually move the parent branches to refine the distribution afterward and increase the size and position of the shapes.

Once the shape of the canopy is defined, one of the most crucial adjustments is the manipulation of vertex normals. This determines how the tree will respond to light and is a vital aspect in achieving a visually pleasing foliage appearance. I used the new SpeedTree 9 tools for this task, adjusting the global settings to ensure that each foliage clump possesses localized spherical normals. This technique gives a softer, cloud-like appearance, as opposed to having all normals pointing uniformly or in completely random directions, which would result in excessive visibility of the individual cards. It is important to mention that this process can also be accomplished in Blender or other software capable of transferring vertex normal data from one mesh to another.

In general, for foliage, you want to first study the reference of how trees and plants grow so you can replicate the structure. Then, you want to layer the details up, using large/medium/small rules. Large foliage cards should have smaller cards attached to break up the surface. Large branches should have smaller branches spawning off and so on. Finally, the foliage materials and mesh normals should be adjusted to manipulate how light interacts with the mesh, manipulating vertex normals to soften the lighting and hide the structure of the foliage cards and imitating how light scatters through leaves are very important to creating a satisfying foliage asset.

Setting Up the Final Scene

For the composition, I locked everything to an isometric camera, keeping it to one shot to simplify the process (and give it that game-like feel). I used a central path going from left to right to guide the eye but also focused on the placement of objects for each vignette. I like to create a live asset zoo off to the side so I can quickly grab stuff, save groups, or see how different assets react in the scene.

Everything was placed by hand, this was the easiest way for a scene of this size as I wanted a really detailed, hand-crafted feel. For surrounding detail and destruction, I would create a group composition and duplicate it around. However, I also made sure to add or adjust each copied group to avoid repetition. Just a friendly reminder, all assets were created to be modular and seamlessly compatible, significantly expediting the placement process.

I would take a screenshot after each day or session of work and send it to PureRef. This way I could see the progress but more importantly see what was working, what wasn't working, and what areas needed more attention to achieve a detailed and satisfying image/composition. As you can see, I originally didn't even plan for a tree but knew I needed a large focal element, this iteration process allowed that idea to develop.

Lighting and Rendering

Everything was rendered in Blender, which was mainly done to speed things up. By utilizing Blender, I could seamlessly model, manipulate, and compose without the need to switch between multiple programs. It's important to note that these methods could have easily been transferred to Unreal Engine if the project scope had expanded. Ultimately, these software tools serve as means for creative expression and enable efficient creation processes.

Purposefully, the lighting setup is kept extremely simple. It consists of a single sun-directional light with significantly high intensity, aiming to achieve the desired high-contrast appearance. I intentionally opted out of using an HDRI and instead relied on a single ambient color to create a refined color palette that offers easier control. Rather than relying on excessive use of color or bounce lights, I utilized shadows to enhance the intricate details of the open floors and draw attention to the intricacies of the bricks and damages.

I found working with water to be a seamless process in Blender, especially for a static shot like this. To build up the underwater terrain, I utilized scan meshes as a solid foundation and incorporated the water as a volumetric mesh. The material itself consists of a combination of internal volume scatter, similar to creating a fog volume, along with a glass shader to achieve the specular response and object diffraction beneath the surface. The placement of underwater assets played a more significant role than I originally anticipated, effectively enhancing the overall realism of the water and introducing pockets of intricate detail within the final images.

Final Words and Pieces of Advice

For projects like these, it's always good to start with a strong blockout and asset kit, trust the process, keep iterating and building up ideas, and finally know when to stop.

Having a good foundation means you can build up ideas quickly and experiment with different compositions. Trusting the process means acknowledging that things are not always going to look great or work out but taking ideas through to completion and building up layers of detail will eventually produce the results you want, or even guide you to something better. Knowing when to stop is also a key skill to practice, the temptation to add more detail and more content can not only end up negatively impacting an image but usually is the result of not finishing personal projects.

As always, this was a fun project to practice fundamental skills, develop an interesting story, and present it in an exciting way. Feel free to reach out to me on ArtStation if you have any questions!

Jake Woodruff, Senior Environment Artist

Interview conducted by Theodore McKenzie

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