In case you missed it
You might find these articles interesting
Hi! My name is Athanasios, I’m 21 years old, and I’m a self-taught environment artist from Greece. I have close to 6 months of the contract and freelance work experience and I’m currently working part-time on a revenue shared project for Starboard Games, project Int, while also looking for a full-time position.
Growing up I always loved drawing and painting and I always loved video games. It was about 5 years ago that I saw a time-lapse level design video in Cryengine that I decided I wanted to be a 3D artist.
Stable: Starting the Project
I wanted to try and make a small game by myself, just as a learning experience, and I recently started taking some courses on blueprints. While watching these courses, I didn’t want to lose touch with my art skills so I started this Stable scene.
My goal was to focus on lighting, composition, and larger scale details. The idea came from a friend a long time ago, and I already had gathered various reference images for barns and stables, with a big inspiration being Red Dead Redemption.
Modeling, Texturing, and Materials
When starting a project, one of the first things I like to do is to import the default Unreal character for scale reference. In this specific instance, I also made a very basic horse model. If the project is going to be modular, I will also add a divided plane depending on what size I want my modules to be and where I want them to snap. Then I can use this plane as a guide for my modular meshes. I find this method a lot more reliable and efficient than using grid snapping in Blender.
In the blockout phase, I will usually start with primitives that only represent what my final models are going to look like, import them in the engine, make sure they are the right scale and snap correctly, and then go back to Blender and tweak or add details. In this project, my modular pieces were simple enough (scaled cubes and cylinders), so I decided to model them right away. Of course, I made some tweaks later and added more details but they were very minor.
A quick trick I use to get some shape variation for a more organic look is the randomize vertices option in Blender. I add some loop cuts, go in vertex mode, press the w key, and select randomize vertices. After that, I can tweak the number using the menu on the bottom left.
After I had all the building pieces modeled, I started searching for materials in Megascans library based on my reference. I was surprised that I couldn’t find an old wood material that wasn’t divided into planks. So what I did was to download one of the wooden planks materials, import it in a material layer in Substance Painter, add a paint layer on top with all the different texture slots set to passthrough, and then paint out the plank lines with the clone stamp tool.
Then I downloaded a couple of more materials and went back to Blender to start working on the UVs. When unwrapping models that are going to use a wood material, I try to have my seams parallel to the wood grain as much as possible. This makes the seams very hard to notice even when they are right in front of you. I started to mark seams in every object separately, and when I finished I joined every mesh in a single object. Now when I unwrap, my texel density will be the same across all my models, because it’s one object.
Before I separate each module to a different object again I want to make sure all the UV islands have the correct orientation. To do that I use the TexTools add-on. Go in the UV editing tab, go in the TexTools menu, expand UV Layout, and choose Sort H with all the UV islands selected. This will make all the UV islands have the same orientation. You can now rotate 90 degrees if needed (depending on the orientation of your textures), and finally repack UVs with the rotate option unchecked.
This saves a lot of time especially when you have many individual pieces to arrange in the UVs.
Texturing the rest of the props was pretty simple. As I already mentioned, my focus on this environment was lighting and composition, so I didn’t want to spend a lot of time on each prop (as you usually do for portfolio pieces). I modeled and textured these props specifically to serve the composition. For example this lamp, I made a very quick model and used the same one as a high poly to bake the textures from (use low poly mesh as high poly mesh in Substance Painter), then I applied a smart material that comes with Substance Painter by default (Steel Painted Worn) and just tweaked the masks a little bit.
Another good example is the metallic bucket. This bucket is also a very simple model for which I used a material from Epic’s starter content.
Sure, this might not hold up as a hero prop in a first-person game, but it gives me a nice contrast in color value and reflections, and that’s all I need for this scene.
When it comes to materials, I also followed a similar minimalistic approach. I have a very basic PBR master material that uses 64x64 textures (for optimization purposes), and it has parameters for color texture, “rom” texture (packed texture for roughness, occlusion, metallic), normal map texture and one more parameter for tiling. All of my models are using instances of this material, except the ones that have transparency (grass, hay, spider webs).
The most complex material in this scene (still quite simple, though) is my vegetation master material, which I used for the grass in the background. You can take a look at it in the image below.
Assembling and Rendering the Scene in Unreal Engine
Assembling an environment in the engine is one of the most fun and rewarding parts of the whole process. After importing all my modular pieces and placing them in the scene, I like to get a first look at what my colors and lighting will look like. Many times what I’ll do to get that first look, is auto unwrap my models in Blender, assign a temporary material to them (usually from Epic’s starter content), and then set all my lights to moveable. This allows me to be a lot faster with my iterations, and once I find a composition that works, I can go back and polish everything with that composition in mind. In the future, I also want to try this process in Eevee.
Tip: You can have models with their pivots at the same location, and then copy and paste transform values in Unreal for fast and precise placement.
Deciding on composition for this scene wasn’t difficult. All the horizontal lines that the wooden pieces are creating naturally draw your attention to the main door. I decided to emphasize that even more by placing a directional light behind the door. Doing this created a very nice contrast in value, a gradient that gets brighter as we move closer to the door.
As a secondary focal point, I decided to open one of the stable doors and add the blood decal in front of it, to add a little bit of a story. The fact that the light coming from the outside stops before this door and continues after it was a happy accident.
For lighting in this environment, I’m only using a directional light and a skylight. To get enough light in the stable, I increased indirect lighting intensity (on my directional light) all the way up to 100 and slightly adjusted the exposure. This might be useful when you have very dark areas in a scene, instead of trying to fill them with separate light sources.
My lightmass settings are pretty much the default ones, except for the static lighting level scale set to 0.5, and indirect lighting quality set to 2. I only adjusted these settings for my final lighting build, since they greatly increase lighting build times.
In the past, lighting was one of my weak points. What really helped me improve and understand how lighting works in Unreal Engine was Ryan Manning’s channel on Youtube. I think he has some of the best tutorials and I strongly recommend watching his Youtube channel if you want to improve your lighting skills.
Lastly, I didn’t do any color grading for this environment. Usually, I’ll create a LUT texture in Photoshop and then add it in my post-process volume in Unreal. However, when I tried to do that for this environment it felt artificial, and like I was doing it out of habit. I liked the natural look I already had so I left it that way.
Thank you very much for taking the time to read this!