games

Unity • Blender • Substance Painter • C#

Individual project (2024)

Hearth is a short single player experience in which you collect logs to light a fire. It takes place in a diorama of a log cabin and the sparse forest that surrounds it.

Hearth is built around the core theme of nostalgia for childhood in New England during the transition from autumn to winter, and styled after miniatures, dioramas, and stop motion. This project was an opportunity to improve my texuring skills and was the first time I used Substance Painter. I also focused on the camera and lighting to capture a particular tilt-shift effect. It features an original song.


A More Efficient Workflow

full report

Hearth was developed with a particular feeling in mind, a nostalgia for the transition from autumn into winter during my childhood in New England. It takes inspiration from the miniatures and tilt-shift photography featured in the I Spy and Lookalikes series of books. I worked on this project at a particularly busy time in my life, and so made planning a priority to ensure the time I did have to work on it would be spent effectively.

Hearth also represents a continuation of my journey to improve my texturing abilities. Because of the diorama subject of the project, it was also a chance to work on lighting and composition. I began as I do with most projects, with a moodboard and my notebook. I collected images that resonated with the nostalgic feelings I intended to capture.

Images from Hearth's moodboard from Lookalikes (top) and I Spy (bottom)
Images from Hearth's moodboard from Lookalikes (top) and I Spy (bottom)

In my notebook, I began by sketching out the scene layout. As I wanted to create a diorama, I thought setting it on top of a playroom table would be fitting. One of the qualities of miniature photography I wanted to capture was the isolated nature of a seemingly vast scene, as well as the looming notion that everything you are looking at was constructed.

To emphasise this, the world outside of the diorama is a black void; only a desk lamp illuminates the scene. From the beginning, I considered how I would craft the scene were I to make a physical diorama, including materials and lighting. I spoke with a friend of mine who creates miniatures for theatrical set designs to gain some insight into the process.

Sketch of diorama layout for Hearth Sketch of cabin layout for Hearth Character sketches for Hearth Storyboard for Hearth
Layout, character sketches, and storyboard for Hearth

I also created some concept artwork to guide the design, though it ended up being closer to winter than the final piece:

Concept artwork for Hearth
Concept artwork for Hearth

Going into development, the aesthetic and emotional core of the project were a lot clearer to me than what the interactions would be. The storyboard allowed me to explore some possible interactions, but there wasn't anything I was set on. For the sake of time, I decided to move forward with building the environment and see where that took me.

Development started in Unity. I knew scale was going to be incredibly important for this project, and so decided to greybox the environment in Unity first to get the proper arrangement and proportions. Then, I exported the layout from Unity as an FBX and imported into Blender, where I began modelling.

Early diorama model for Hearth in Blender
Early diorama model in Blender

This decision proved useful down the line: as all objects were built in the same scene relative to each other, there were no scaling issues when exporting back to Unity. Creating new objects like the player model was straightforward as I could use the cabin, cardboard trifold, and table as scale reference.

One of my concerns about building a somewhat realistic outdoor environment was how to model organic shapes like stones and branches. I briefly experimented with photogrammetry using Polycam but wasn't able to get a satisfactory result. I ended up modelling the twigs manually by extruding and transforming cylinders.

After the majority of the scene had been modelled, I moved over to Substance Painter. This was my first time using Substance Painter, but it had been recommended to me as a great tool for texturing quickly. I spent some time familiarising myself with the interface, and after about an hour I began painting the player model. Because of my familiarity with the Adobe Suite, I found Substance Painter intuitive to use and generally preferred texturing this way. I also think Substance Painter was a good fit for Hearth as it simulates hand-painting.

Halfway through painting the doll for Hearth in Substance Painter
Halfway through painting the doll for Hearth in Substance Painter

I imported the modelled diorama as one FBX into Substance Painter. As I was modelling in Blender, I had assigned objects placeholder materials according to the materials I had listed in my notes. This allowed me to paint by material layer in Substance Painter. Seperate objects with the same material (such as the grey clay chimney and the green clay bushes and terrain) were painted on the same layer, lowering the number of materials I would need to use in Unity.

Painting the diorama for Hearth in Substance Painter
Painting the diorama for Hearth in Substance Painter

One way I might've optimised this further would be to use lower resolution textures for smaller objects in the scene, dedicating more detail towards larger objects like the cardboard trifold. I could have also combined layers for materials with lower resolution requirements, for example putting construction paper and metal on the same layer.

As it stands, all textures are 1024x1024 in resolution. While I think this works for Hearth due to depth of field blurring some of the texture detail, I think certain surfaces like the cardboard base could have used additional detail as it is a little muddy. On certain surfaces, I added fingerprints and thicker paint to give the impression that the scene was hand-made.

Diorama textures for Hearth in Substance Painter
Diorama textures for Hearth in Substance Painter

I then brought the textures into Unity and lit the scene. Though the only apparent light source in the scene is the desk lamp, additional lights were required to fully illuminate the diorama. I decided early on to use fixed camera angles as they would allow me to stage shots as if I were photographing a real miniature. Depth of field and bloom post-processing helped create a tilt-shift effect, and the player character was animated at a low frame rate to simulate stop-motion. I think the low frame rate could have been exaggerated further to really sell this effect.

The player character, a doll, was designed with string arms which use Unity's rope physics. I had envisioned the string being a bit less rigid and trailing behind the player as they moved, but loosening the string resulted in clipping issues, so I settled for the version seen in the final build.

All of these details came together to create what I think is a convincing digital miniature, and an environment I feel expresses the warm nostalgia I intended to capture. I returned to the storyboard to decide on the interaction. The original idea had always involved collecting items and using them to get warm, either making a hearty soup or heating a bed warmer. The crux of both tasks was lighting the fireplace, and so that is what I decided to focus on, and how 'Hearth' came to be.

The extensive planning involved in Hearth paid off: it took a little under a week to develop the Unity project, and I think the result communicates the ideas I wanted to express. Of all of the projects I've developed so far, Hearth is the closest to how I envisioned it.

If you're interested in learning more about the development of this project, you can find the full report here.


Screenshots