Half-timbered House: UE5 project following a concept art piece
Hey everyone!
I decided to make an environment piece following a concept art piece by Panda Dao. For this project I had a few goals in mind: improve the making of modular kit, learn new techniques for making efficient landscapes, improve the knowledge of UE5 shader creation and create more than one lighting scenario.
 |
Concept art by Panda Dao | | | |
Planning: Moodboard and Concept Art Breakdown
To start with, I did a broad research on various materials and models that I will be making. I strated with making a moodboard and a mindmap using Mural to help me with project planning.
 |
My main inspiration for the project was Jasmin Habezai-Fekri. |
 |
I started planning my props and what materials I will need
|
I
chose to make a huge chunk of the project with tileables and trim
sheets. They are highly reusable, thus save texture space
and can be modified inside Unreal. This way you can have some extra
variety in textures creating visual interest. All trims and tileables were made using Substance Designer.
 |
A plan for figuring out, what my textures should be |
|
|
|
Modelling
One of my goals for the project was to practice my modular kit creation. With that in mind, I made all the walls modular. From the beginning I was plugging all my models and textures into UE5 to see how it looks at every step. This way it helped me make improvements based on the concept art. Furthermore, seeing my work at every step in the engine, helped me feel accomplished, thus not loosing motivation throughout the project. For modelling I was using Autodesk Maya.
Once I started modelling, I decided to do approximate measurements for the structure taking the human in the scene for scale. On average, a person is around 1,7 meters using a character from the concept art for scale, I measured the approximate height for my walls. I wanted them to be integer numbers that can easily be divided by 5. This way it was easier to choose the right texel density. Doing further research, I learned that most 3rd person games nowadays are made with 10,24 texel density. I decided to go with that as well. I found Anthony O Donnell article on Artstaion about Texel Density very valuable to understand all this: https://www.artstation.com/marketplace/p/nVn7/texel-density-and-other-bits-of-texture-theory
 |
The first blockout phase |
|
|
|
|
After the walls were done I went to make modular planks.I decided to make an atlas sheet for all my windows and doors instead of making them unique textures. I chose that to improve my skills inside Substance Designer.
Sculpting Details, Baking and Texturing Unique Props
In the scene there are a handful of objects that can not be textured with tileables or trim sheets. For them I Utilised high-poly to low-poly baking pipeline. I sculpted all the details using Zbrush. I found it tricky to decide which details should be sculpted and which details could be part of the mesh. What helped me decide on it is looking up artists who did similar style props and see their wireframes. It was very helpful that I already had my moodboard that had all the answers for me.
My brushes I used for sculpting:
- Orb Cracks Brush
- Clay Buildup Brush
- Move Tool
- Mask Tool
 |
Alpha mask for the Saloon sign |
Texturing Tileables and Trim Sheets
I decided that I want to make as many materials and tileables with Substance Designer as possible. I find the software fascinating as it is easy to adjust the textures according to the concept.
 |
All were made using Substance Designer |
Vertex Painting
I used vertex painting to add variety to the walls adding plaster, mud and moss. I also added a parameter for controlling the tint of the textures.
Landscape
After the main structure started to look a little more like in a concept, I went to make the landscape. I knew that I will be using Runtime Virtual Textures (RVTs) for my landscape. With them you can make a more efficient landscape shader. They reduce the amount of times the landscape shader is being calculated for each pixel for each frame. This will improve GPU performance.
To use RVTs there are a couple of steps to take:
1. In landscape details menu I created an empty slot for RVT element array and then created an RVT texture.
2. I created an RVT volume and under Source Actor I selected my landscape that is going to be rendered in the RVT.
3. I made sure that the RVT volume covers the whole landscape.
After that, the landscape material will also have an extra RVT output node.
Here's the material for the landscape:
Grass
Upon doing research, I learned about two different pipelines to create grass:
- Create grass atlas with opacity on to create add on simple flat mesh (like a decal).
- Create detailed grass mesh.
As I wanted to learn more about landscapes I decided to try both ways.
With the both pipelines, it is very important that all grass mesh vertex normals are facing up to create stylised and pleasant look. You can see in the images below how much the same mesh looks different after changing the normal direction (Second way of making grass):
I wanted to add a variety of colours to my grass. After experimenting with the colours, it didn't look that good anymore. so I took this opportunity to try out the other grass creation pipeline.
 |
The grass after adding extra colour |
After trying out the opacity mask grass pipeline, I was happy with the new results:
 |
Grass made with decals (grass colour is affected by landscape colours) |
 |
Same grass with gradient coming from top to bottom (I prefer this version the most) |
 |
Same grass with gradient comming from bottom to top |
Here you can see out the grass material:
Trees
I wanted to learn to create colour variation for my trees
and so I utilised Per Instance Random material node. It creates
random number based on my mesh instance (blueprint actor). The number then can be used to multiply it with gradient. Furhtermore, I created a gradient for each tree canopy and also for each singular leaf cluster. Here's the whole material graph:
Skybox
My
next task was to make a seamless sky texture. I made the HDRI using Photoshop.
Fog Cards
I started working on my fog by creating fog cards. They can be very effective when you need to create depth in your scene, creating an atmospheric and moody environment.
Assets made for the scene
Lighting
My goal for the lighting was to make a couple of variations depending on time of day. I chose to recreate day evening/morning and night time lighting.
Thank you for reading my blog! I will be updating my blog with other breakdowns soon. I’m actively looking for new opportunities, being part of creative collaborations. Feel free to get in touch with me!
My Portfolio: www.artstation.com/gabmik
My LinkedIn: www.linkedin.com/in/gabmik
Comments
Post a Comment