Creating an Old Classroom in UE4

Creating an Old Classroom in UE4

Lucian Stroiny did a breakdown of his UE4 environment Old Classroom: modeling, procedural bookshelves, materials, lighting.


My name is Lucian Stroiny and I am a self-taught artist from Bucharest, Romania. I am 21 and currently a student at a Computer Science University.

My journey into 3D started when I was 12 and one of my friends told me about SketchUp. I was fascinated that I can create virtual objects/scenes. I thought that I would be an architect or something similar, but after a few years, I learned about the games workflow (UDK/Unity) and films workflow as well (3ds Max and V-Ray) and for a period of time, I used both alternatively. After that, I decided to focus on real-time game engines because it was faster and also I like to see the immediate feedback from the engine.

Old Classroom Scene

1 of 2
1 of 2

I began working in my spare time on this scene but at the same time, I was working on other projects as well. The main reason behind this project was my desire to work in the game industry as a 3D modeler after my graduation, and for that, I wanted to put all my knowledge gathered in the last few months into this scene. Also, I wanted to improve my artistic skills  (e.g. lighting, composition, color pallet, and storytelling) as well as technical skills (e.g. creating more complex materials/shaders, lighting, and post-processing, creating assets in Marvelous Designer, using vex in Houdini, etc.)


My goal was to create an abandoned/messy American classroom in Unreal Engine 4 in a realistic style. The first thing that I’ve done when I started this project was to gather all the references that I could find on the internet. I did this by finding inspiration everywhere: Google, Pinterest, Instagram, Arstation (for concept arts), movies/series (e.g. Young Sheldon), games (e.g. Outlast) or videos from Youtube. I used PureRef for my references organization because it’s very useful, easy and has a lot of features.

I suggest watching a video from Gleb Alexandrov about PureRef features:

Production & Modeling

After the pre-production, I started the blockout phase with the base models (modular pieces and bigger objects). Here, I set up basic lighting to get a general atmosphere of the scene.

For the walls, floor, windows, and ceiling I made modular pieces on a 1m grid so it would be easier to assemble the entire room.

The main focus in this phase was the composition, general lighting and color pallet. I didn’t want the scene to be overwhelming so I tried to maintain the balance between the crowded and the empty areas.

Also, I created some objects in Houdini so it would be easier to make more iterations. A big advantage was that I could always go back in the network and change a parameter of a node: e.g. desk:

You can see the entire time-lapse of the scene here:

My pipeline for most of the assets:

  • Searching for a lot of references and think of how the objects are created in real life.
  • Creating the low poly and high poly model in 3ds Max/Houdini.
  • Creating texture UV and lightmap UV.
  • Baking maps in Marmoset Toolbag 3.
  • Creating material in Substance Painter.
  • Export in Unreal Engine 4.

Since I had a lot of objects to export, I made a simple script in MAXScript. Now I only select the object that I want to export, I press on the “Export FBX” button and the object is centered at the origin and exported as .fbx in the folder where I have all the models for this project.

The scene has 94 static meshes, 3 master materials and 36 materials and material instances. The textures are between 512×512 to 4096×4096.

Here you can see all the objects made for the scene:


Firstly, for the material, I made a texture atlas in Photoshop and then I imported it in Substance Designer to add some roughness/normal details. For optimization reasons, not all the books have the entire cover, some of them have only the spine.

Also, here are some close-ups with the books because these details are hardly visible in the cinematic:

My idea was to have a lot of books in the scene and to work faster and more efficiently, I made two simple HDA  (Houdini Digital Asset) for the books from bookshelves, “bookRow” and “booksPile” and you can see here an example using them:

For people using Houdini, I will give a brief explanation. For the “bookRow” I used VEX and a raycast on each book that has a direction to the previous book and then moved them in order to create an entire row. For the “bookPile” it’s a simple copyStamp node with some variations of parameters.

This kind of workflow saved me a lot of time because I had more than 20 types of books which needed to be multiplied and positioned in a random way in the bookshelves.

After I generated the models in Houdini, I made some manual changes in 3ds Max and this is the result:


Most of the props from the scene are textured in Substance Painter. This was one of the challenges for this project because it was hard to harmonize all the objects with each other. Since the scene has a lot of props, I had to work efficiently and creatively on the texturing part.

For example, when I was working on the blackboard model, I remembered that I had a photo with a lesson on the blackboard from my University so I took advantage of it. I created in Photoshop a layer with the mask for the text and to give the impression that the table was wiped before, I added some other layers with multiple masks combined. Substance has a lot of standard textures for this: Grunge Wipe grainy/dusty/leaky etc.

Besides the materials made in Substance Painter and Photoshop that I already talked about, for tileable materials I used Substance Designer. For example, this is the graph for the wood parquet:

Using an RGBA Merge Node, I packed the Ambient Occlusion, Metallic, and Roughness in one texture (one texture for each channel) because it was easier and obviously more optimized this way. This was the first time when I made materials that are more complex in Unreal Material Editor so I feel that I learned a lot during this project about it. For this scene, I used few Master Materials with simple parameters like textures, brightness, contrast, hue, tint, UV tilling, normal intensity, tessellation, dirt, dirt intensity/color/texture mask, etc.

View post on

To add more details in the scene, I used different kinds of decals to help the storytelling, e.g. text by crayons on wood, duct tape, stains, footprints, etc.


The lighting was a big challenge for this scene, I had many technical issues through the entire production of the project but this talk helped me a lot.

I used one main directional light with an orange tint to achieve a warm feeling, a nostalgic/dramatic atmosphere. Also, this light creates a nice contrast and gives a sense of depth in the scene.

Lighting setup:

  • the main direction light (static) with an orange tint
  • a point light to simulate the lighting from the hallway
  • a static skylight
  • outdoor: a sphere with an HDRI map from HDRI Heaven (you can find there a lot of 360 HDRI skies, all free)
  • an Exponential Height Fog for volumetric fog.
  • a moveable directional light (same rotation like the main directional light) because static lights don’t work correctly with the volumetric fog

For a nice effect in the area where the volumetric fog is, I used the particle dust ambient from Epic.

These are the settings for Exponential Height Fog and World Settings that worked well for this scene:

For the image projected on the white screen, I used three spotlights, each of them with a light function (for each image channel: Red, Green, and Blue) with a different delay, to create the flickering effect. Here is the tutorial that helped me with this effect:

For reflection, I used few Sphere Reflection Captures and I tried the new ray-tracing reflections, which helped me a lot, especially for some incorrect reflections on the desks.

Also, I used post-processing for color grading, ambient occlusion, bloom, and vignette. For shadows, I made them with a blue tint, to create a classic orange-blue contrast.


This project was a big step for me and I consider that I have learned a lot during this period.

The biggest challenge of this scene was to get good lighting because I had some technical problems and I had to improve it as I went along.

Thank you for reading! Also, I’d like to thank 80.lvl for giving me the opportunity to share some insights into my process of creation of this scene.

I hope you enjoyed it! If you have any question/feedback or you liked this scene and you want to see more of my projects, you can find me here:

Lucian Stroiny, Technical Artist at Ubisoft

Interview conducted by Kirill Tokarev


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