Jaume Rovira shared a breakdown of the Watchmaker House the artist recreated from a 2D concept, talked about how to make more than 40 unique props by reusing the same materials.
In case you missed it
You may find these articles interesting
Hello everybody! My name is Jaume Rovira, an Environment Artist in Barcelona. I’ve been asked for a breakdown on one of my latest projects, Watchmaker House, so thanks to 80 Level for doing so.
Recently I’ve begun working as a freelancer on a couple of great projects, so time is scarce now, but I try to continue making small personal projects so I can learn new techniques and improve my workflows.
Inspiration and Goals
My previous project was a big outdoor scene, Indian Sunset, so I decided to have a go for a small interior and experiment with different lighting setups. Besides that, I wanted to force myself on working on props and plants.
So I found a great concept art by Arseniy Chebynkin called Watchmaker House that fit all my objectives: small contained space, lots of props, nice lighting, and furthermore, he also made the night version of the same space. Perfect! It was my second exercise based on a concept of his so you can see I’m a big fan of his work, his cozy spaces, and his use of color and lighting.
Planning the Project
My main concept was really detailed, so I didn’t do much extra reference-searching besides little details, such as clock parts or plant types. I wanted to be as close as possible to the main view of the concept, so my first step was to understand the space and shapes, so I painted a “line-guide” searching for basic shapes to use as reference.
To create the blockout I used basic shapes in Unreal Engine, using this image as a reference. Knowing basic measures of some elements (table height, stair step height, chair size…) I could create some basic boxes with real-size units that I could use as reference anchors to model the rest, so proportions of the space and main volumes would fit the original.
To use the image as a reference, I created a small post-process material to use as an Image Overlay, setting its opacity with a parameter, and used it on a fixed camera with the right image proportion. That way, I could turn my reference up/down on demand on a secondary viewport and model the basic shapes with a clear reference.
One last thing to do before exporting all the meshes to 3ds Max was to add a Basic Directional Light, so I had the first idea of lights/shadows.
Building the Room
The room walls, roof, and floor would use tileable textures, so they were made with just boxes, not planes, so I wouldn’t have to bother about two-sided materials or light leaks.
For the rest of the architecture (wood beams, windows, railings…), I divided each element into its basic modules and modeled them, chamfering and using Weighted Normal almost everywhere to get nice highlights in the sharp corners.
Once I made UVs and got two texture atlases, it was just a matter of duplicating steps, symmetries (be careful with LightMap UVs! Flip the inverted clusters!), and small deformations where the texture wouldn’t get too distorted. I always remind my students a very simple tip when making atlases that saves a lot of time; if you’re going to have many wood elements always orientate their UVs, so they have all the same grain direction, it will save a lot of time texturing later.
Textures were made with Substance Painter and, as I made them, I saved them as a library for future elements (the same wood from the columns is used with slight variations on clocks, furniture, etc.).
At this point, I was already taking my elements into Unreal Engine, so it was important to have a good lighting setup, as close as possible to the final one, so I knew exactly how my textures would show.
Lighting It Up
All the lighting on the scene is done with a warm Directional Stationary Light and a bluish Static Sky Light. As the room was too big and the windows too small, I had to boost both lights' indirect lighting intensity to 3 and multiply lighting bounces, even just for testing.
I also added a Lightmass Importance Volume around the room and Lightmass Portals on each window to get more accurate results.
In the concept, you can see light shafts from the windows which add a lot to the environment, so I added a Volumetric Exponential Height Fog and boosted the Directional Light Volumetric Scattering. The drawback was that the exterior got flooded with light; I tried to compensate it with darker textures for the street buildings and playing with the sky sphere colors.
Furniture and Clocks… and Clocks… and Lamps… and Lamps
So, I got my bare room nice and ready and it was time for props. And there is a lot of them! Almost every element in the original concept was unique so it was a matter of work and patience as I wanted to do them all myself, no store-ready assets.
There are around 40 unique furniture assets, 18 lamps, 24 clocks, plus small props, plants, and flowerpots.
As always, I tried to just model the essential parts and use Copy and Symmetry wherever possible, or reuse with slight variations different parts (some clocks share small elements with different textures). The good part was that texturing was really fast, as almost every element uses the same type of materials, so I could reuse my Substance Painter material library adding slight variations.
I only used tweaked stock photos for the clocks' spheres and the carpets, except for the cat’s carpet, which was handpainted following the concept.
With such a number of props, work can be overwhelming. One way to avoid that is to create small goals for yourself, so you don’t get bored just making the same work all the time. For example, I divided all my furniture into 5 different atlases (first-floor furniture, plants side furniture, etc.) so I modeled/textured/placed in Unreal each group from start to end, and my work didn’t become so monotonous. You can always group elements by material type, if they use a masked material or not, proximity, etc. Just try to add variety to your workflow or it can become a boring/tedious/abandoned project.
The pendulums' movement was made by a shader with a Rotate About Axis plugged on the World Position Offset Node. I wanted to avoid all the clocks moving at the same time so I added a little randomizer by position, so each pendulum would have a different starting time depending on its placing.
Finally, I had to think up a way to close the room on the other side, so I added a little closed space and an access door. No, there’s no kitchen. He/she always eats at restaurants.
Post-Process and Presentation
For post-processing I applied a Color lookup table, bumping a little the contrast and mid-levels, but ended up being a really subtle effect, I turned it off completely for the night version. I also added a very slight sharpening effect.
I turned on ray-tracing for this project, so I’d get nice shadows and defined light shafts, and most important, nice reflections on all the glass elements from the clocks and lamps. I tried first with Sphere Reflection Captures, but you could see the trick, not in the main view, but you could see it when the camera moved in animations, so it was time to go for ray-tracing. Anyway, all elements over 0.5 Roughness still use Reflection Captures so it doesn’t get too costly.
All GI was baked so Ray Tracing wasn’t that expensive, my project runs at 80/90 fps on a 2080 Super.
A reminder! If you’re using elements with World Position Offset (the pendulums in my case) you have to turn Evaluate World Position Offset by object so they render correctly.
This project took longer than the other ones, around 3-4 weeks, mostly because of the props work and having less time due to work, but it was a good project as I learned a lot about lighting an interior space and working with ray-tracing.
There are several things in the project that I could have spent more time on and get better results, but you must learn to draw a finish line somewhere.
To conclude, once more a big thanks to 80 Level for featuring my work, and to Arseniy Chebynkin and his amazing works. Hope this breakdown helps you a little with your projects and feel free to contact me for any question.
You may find these articles interesting