Steampunk Spaceship Props and Forest Cabins in SpeedTree and ZBrush

An Environment Artist and creator of the course for Vertex School Jansen Thorogood told us about tools and techniques he used in his recent projects: Steampunk Spaceship Props and Forest Cabins.

Introduction

Since a pretty young age, I’ve always had an interest in digital art and using technology for creative endeavours. In school, my favorite projects were those where I could film short videos and edit them together, or any opportunity where I could use Photoshop. Alongside this, I always had a passion for games and movies which eventually translated into experimenting with 3D later on in high school. 

This is the first project I ever posted to Artstation back in 2017: 

After some time, things started to click and I knew what I wanted to get into, so I took a 3-year college program near Toronto, Canada for 3D Animation. This gave me a pretty broad introduction to concepts like VFX, character animation, concept art, and modeling, which was great because it is so important to understand all components of the pipeline as an artist.

However, I knew that I definitely wanted to specialize in environment art so I looked for a school to receive a more specialized education. I settled on an online organization called Vertex School and over the next 9 months I worked closely with my mentors John Waynick and Jacob Claussen to complete a series of projects that escalated in scope and ultimately led to my forest cabins scene.

Steampunk Spaceship Props and Forest Cabins

The steampunk spaceship props were created while I was working on an entry for the Ubisoft NXT contest which is held by Ubisoft Toronto each year for recent graduates in Ontario. Admittedly, at the time I was a bit in over my head with taking on a full scale environment. However, I am very pleased with the experience because it taught me so much and really pushed me out of my comfort zone in a lot of ways. 

Prior to this project I had worked mainly off of other people’s concepts, trying to convert props to 3D in the best way that I could. For the Ubi NXT challenge we were tasked with creating a scene from scratch based on a loose prompt. In the scene, I believe my strongest work was the props. They were also some of the most enjoyable parts of the scene to work on because thinking up little bits of storytelling for their functions was a lot of fun. The scene prompt sets the year of 2608, so I envisioned the gramophone working as a time travel machine in which a character could crank the disk gear to a desired year, as seen on the front.

The antique phone was converted into a charging station where a tool rested below the earpiece. 

The old radio is now pumping “space goo” into drinkable water that is accessed through a spout on the side.

Once a story is planned it’s all about gathering as many references as possible to start getting an idea of how these objects could come together. This is important since there’s no need to “reinvent the wheel”; why waste time working up from scratch when it isn’t necessary? For example, I would look for my favorite parts of various different gramophones and gather them all in PureRef, which is a great software for organizing reference images. I could combine an engraved metal detail from one with the wooden base from another, all the while analyzing real-life objects to further hone the accuracy of the prop. Once I started putting things together and giving them my own twist, I had made something new!

Pacing myself and setting manageable goals is a crucial technique that I use to guarantee I do not lose steam. It feels great to check something off my“to-do list”; for me, it takes the form of Trello. I've also been successful in using HacknPlan in the past. For larger-scale environments especially, I make sure that everything I have ahead of me is laid out and organized. An effective approach that I’ve learned to implement is the idea of bringing up all aspects of a scene together bit by bit. Creating a specific task order with deadlines can ensure the scene works at every stage of the process. If the scale is off, and the lighting and composition need work, jumping ahead all the way to completing three beautiful hero props will likely not be enough to tie everything together. I take on everything in bite-sized waves to ensure I do not get tunnel vision.

As for the forest cabins, it was definitely my biggest project to date. However, I felt more comfortable right from the beginning, since I had learned so many lessons from the many projects before. 

My mentors really did a good job of changing my mindset to focus more on learning, which was what enabled me to bring everything forward to this scene with more confidence. Originally, I was stuck in the mindset that I had to post everything I made on ArtStation. Because of this, I would sometimes rush my work or spread myself too thin across tasks just so I could hit “post”. With the change in mindset, I would instead start to consciously think, “What will be the one thing I want to learn, perfect, and get nerdy about with this project?” If the focus for me was to do a deep dive on lighting, then it would be ok if the models weren’t all done to triple-A quality. If my focus was to improve modeling, then I didn’t need a huge scene around it. For this project particularly, I benefited from the tight deadlines set by Vertex School, which were broken into two mini art tests lasting 2 weeks each. This forced me to be meticulous with my planning because there was not much time for do-overs.

Modeling

Before starting these props I knew I wanted to make an effort at some sort of a cohesive feel for the objects in the room to give it a look as though they have all been modified and created in the same workshop. With this in mind, I made a kit of gears, wheels, switches, and other little construction pieces that I could use to decorate the props. If you look closely in the scene you can see these are also scattered around the workbenches to give the impression that these machines are always being tinkered with. 

I also made a smart material for my metals and wood textures so I could use the same base for each asset, ensuring that they appear to come from the same place.

The creation itself started with me creating a mid poly version of the prop inside of 3ds Max. 

Then I would take it into ZBrush, working on giving each piece some nice soft bevels on the edges and custom damage throughout. I also did a lot of the ornate detailing in ZBrush. 

For long stretches, it is really helpful to use the Roll modifier for your brush which can be enabled under the Stroke menu. 

You can see these markings on the gramophone head, the sides of its front metal panel, and across the base of the antique phone. There are lots of great free alphas online from places like Textures.com and also lots of cheap packs on Gumroad and the ArtStation marketplace. You can also spend the time to make them yourself in Photoshop. With the high poly complete in ZBrush, I would then jump back into 3ds Max to bring down the mid poly to a clean low poly version in preparation for the bake. From that point on it’s all in Substance Painter for the texturing and then Marmoset for the renders. The easiest thing to model for me was the goggles because all of the shapes were pretty simple and I didn’t go crazy with modifications. The most difficult was the gramophone because it was the most custom and it was an iterative process to find a balance for the shape and scale of the horn section.

The Forest Cabin Scene

This project actually started as a way for me to really focus on creating good modular kits. Once I had that completed, I spent a lot of time trying to find ways to lead the viewer’s eye to the focal point of the most detailed cabin which I will refer to as “Cabin A”. The first technique I implemented to achieve this was by using lots of natural lines that converge on the back cabin. For example, the dirt path which is noticeably brighter than the surrounding foliage works its way from the foreground to the front porch. In addition, the power lines zigzag their way to the cabin. 

Next, I wanted to make sure the detailing itself also lent a hand in narrowing the focus. Any interesting aspects of the cabin structure that was shared with the other homes had to be most prominent on Cabin A. While some of the other cabins have fences or porch areas, none are as dense as Cabin A and the slanted broken planks also stand out from the others. Further, there were more windows, generators, metal sheets on the roof and a more prominent chimney to hold one’s attention. Overall, Cabin A had more content to chew on and look at before one would want to keep scrolling.

The final important aspect I made use of was the lighting and tone. The goal for me was to create somewhat of a soft natural vignette and leave the highest contrast point for Cabin A. Dense fog in the background also helps the home pop a bit more. Currently, the trees on the other side of the water are quite dull and sort of fade together; without this effect, they would be quite noisy and attract attention. A big part of lighting is to also balance the angle of your sunlight which does a lot of the heavy lifting, but it’s also important to fake highlights and maintain some level of detail in the shadows. I placed an extra spotlight along the edge of the roof just to really push the contrast. As for the shadows, I did not want to leave enough for the viewer to then start to have their eyes dance around the scene. For this, I use a small boost to the shadow gamma in my post-process volume as well as a secondary directional light pointing straight up. For this one, I disable cast shadows and gave it an earthy tone to simulate the bounce light from the ground in the scene.

Creating Houses

The initial designs were inspired by work from Alex Jessup who is a really great Concept Artist. 

His concept lays out several cabins and I started to draw over them in Photoshop to identify repeating designs and places where I could reuse pieces. I also spent a ton of time looking at cabins and farm houses in real life and in games. Again I put together a PureRef file to gather all my inspiration in one place. Some of the games I used in particular were Far Cry 5, Red Dead Redemption, Cyberpunk, and The Last of Us 2. I also looked at other personal projects from artists like Maarten Hof who have created similar projects, while having the luxury for some more breakdowns than a triple-A studio. 

With a list of pieces in mind, I got to work blocking out low poly versions to make sure they would all snap together and fit as I imagined in my head. Naturally, the transition to 3D comes with some changes you may not realize are necessary, such as adding more niche pieces to fill in the gaps. 

With the geo working well, I started to look for textures using Quixel Bridge. This project was heavily leveraged by Megascans textures. In my current project I am actually focusing a lot on photogrammetry to create my own materials from scratch, but for this scene I was happy to use premade textures so I could focus on other aspects of the environment. Since I wanted the textures to have a seamless look across pieces and be able to swap out for other textures, I had to make sure my UV’s were snapped cleanly to edges and my texel density was consistent across each piece.

This workflow is definitely very front-loaded but it’s all worth it when you get to Unreal and it feels like you’re playing with lego. 

I made use of blueprints to create each cabin, and not for any particularly technical reason. Since the cabins are made up of lots of unique meshes, if I decided I wanted to move one around for compositional reasons, I would have to grab every piece individually. If I also had another version duplicated somewhere else and I noticed an error, I would have to change each manually. Building them in a blueprint allowed me to drag each cabin into the scene as one complete actor, free to rotate and move as desired, all while maintaining a clean building area inside the blueprint that I could adjust whenever I wanted to. As I worked through them, I realized I was a bit conservative with how many pieces I had constructed and had to add a few more with each new structure, but the bulk of the geo is shared which saved me a lot of time. 

As for the detailing, I think of this in two ways. One is the innate detail of the kit itself that has to work in order for the foundation to be usable. My most valuable learnings for this scene were to break up “laser lines” and to think like an architect as well as an artist. This is definitely a developing skill, but if you fail to put thought into the actual construction and usability of the structure you are creating, things will seem off to the viewer. Breaking up the laser lines is a process of trying to remove any long, completely straight edges, as this will also jump out to the viewer as incorrect since in real life we rarely see this happen. What I’ve found is the most authentic form of learning and observation is to truly study something right in front of you. I will focus on cabin A in particular to give a few examples of employing this concept.

The shingles on the roof are uneven and some are slightly jutting out around the edges. In addition to this, some on the flat middle are even popped out a bit to catch shadows. 

The wooden beams along the bottom work well to support the structure and again break the lines. Even slanting the metal sheets that patch up the roof aid with adding more interest to the shapes. There are definitely still places with straight lines in real life and in my scene, but the takeaway is that when unchecked we tend to leave way more in our art because we are omitting the small details that add up to make a noticeable difference.

The other aspect of the detailing is in the set dressing and storytelling which to me is really fun and also easier now than ever if you are using Megascans assets. Again building off of the prompt by Alex Jessup, I imagined this area is outside of the city where a group of hunters who are well adjusted to living off the land has just been in a tough fight. First I added any big-ticket items that really defined the function of the area. To me it made sense to have hitching posts because this area would not be accessible by vehicle; they would have to travel here by horseback. The barn in the back left with double doors would naturally be where the horses are kept, so it was fitted with a bale of hay. With no electricity this far out, they need something to warm their homes at night, so each cabin is equipped with a slightly different take on a scrappy furnace. The furnace would have to run on wood, which means they would be 1: chopping down trees in the area, and 2: storing chopped wood nearby. This is why you see stumps around the scene and split wood in various areas, most distinctly under the porch of cabin A. I could go on a lot longer about each detail but hopefully, that’s enough to drive the point home.

The last thing I want to touch on is the material work I did for the wooden planks. The workflow for vertex painting can be a quick way to add a great deal of realistic variation to textures. By comparison, the traditional vertex painting looks really “splotchy” and screams “junior” to potential employers. For this I have to give a massive shout-out to Tharle VFX who has tons of unreal engine tutorials and I learned a lot from him to be able to properly use these techniques. 

It would look quite repetitive and uninteresting if the wooden planks texture was repeating without interruption so I added a worn plank variation with no paint, and a mossy covering for areas near the vine growth. 

The material is quite simple and the most important takeaway for any junior artists reading this is, if you’re going to use vertex blending, you’ll probably want some kind of additional masking to imitate how the texture would properly appear. In my material editor below you will see the painted wood textures being blended with the chipped wood textures using a Blend Material Attributes node. The same thing is happening further down the chain with a moss texture.

Taking a closer look at the blending logic, it would even be enough to plug the vertex colour directly into the transition phase of the HeightLerp node, but the “MF_AddNoiseToGradient” function (again shout-out to Tharle VFX) helps to break the pattern even further. A very important element here is the height texture plugged into the HeightLerp which is the main driver for how the texture will appear. I used the AO of the painted wood to control that, making the damage appear in the cracks of the wood.

A quick look at the AddNoiseToGradient function shows a linear gradient being broken up by a noise texture to make sure again we aren’t just smoothly moving from a clean 0-1 with the breakup.

Animation

I think it’s a lot of fun to tie everything together at the end with a short video to breathe some life into the scene. For the foliage it was all about using the speed tree wind tools to unify the intensity across each foliage type. Other small details like the windmill generators slowly turning and a little flutter from the sheets on the back cabins give just enough motion to make it believable.

My foliage master material was driven by a master function called “MF_FoliageSet”. There is a very small section dedicated to the wind that takes in logic from the MF_SpeedTreeWind and outputs to WPO or World Position Offset.

The MF_SpeedTreewind function is very simple. There are static switches to set the foliage type as each SpeedTree node on the left is configured to Billboard, Branch, Frond, or Leaf. In SpeedTree when you set your wind settings, it is stored in the vertex data of the mesh you created. This unreal node knows how to handle it as long as you specify the foliage type, and with these switches, I can use one Master and change the foliage type with each instance.

The output from the FoliageSet function is seen here going into the World Position Offset for the material which can deform the geometry of the mesh in real-time, giving in the gentle waves to simulate the windy effect.

The windmills were created modularly and assembled in blueprints. I needed to do this so I could set rotation for certain parts of the object, and leave other parts stationary. 

To get this to work, I added a location rotation to the meshes that needed it in the event graph. I also set the two blades to move at different speeds so they wouldn’t look unnatural and in sync. And voila:

Future Plans

Currently I’m working at Applied Intuition as an environment artist to help create simulations for autonomous vehicles. We have to create large, photorealistic environments in short time frames which makes the work really fun and challenging. If that sounds interesting, you can read more here.

On the side, I’m also really excited to be creating a course for Vertex School that I’m aiming to complete by the end of the summer. It’s combining a lot of the skills I developed during my time there and new things I’ve been working on like photogrammetry. I also have about a dozen other personal projects I want to create and new aspects of digital art creation I want to learn as well. I think continuing to learn is incredibly important and as I mentioned before, something that is vital to growth and success as an environment artist; be committed to learning, be patient, and enjoy the process.

I’ve already mentioned what I think are some of the most important practices for junior 3D artists, but I’ll go ahead and list some other work habits that I found to be really helpful. A behavior that is extremely important for continued progress is to self-regulate to stay inspired and motivated. You don’t want to enter a “boom and bust” cycle where you go too hard on yourself and then burn out. At the same time, if you don’t have a drive and find yourself going long periods of time without any desire to create 3D art, then it might not be for you in the first place. For me, three major sources of inspiration that also feel like mental breaks are reading, going on walks through nature, and playing games. 

In terms of reading, I have recently started to read some more art-focused books and a few I really liked were Framed Ink by Marcos Mateu, Color and Light by James Gurney, and Beyond Art Fundamentals which is from a collection of authors. This will definitely vary person-to-person, but I love to read and it felt great to get away from the computer and have a relaxing break while still feeling as though I am learning and making progress towards my goal of becoming a better artist.

The next activity that is integral to my success is my nature walks. Everytime I start to tackle something in 3D, I pay more attention to it in the real world and the process can be really symbiotic. You start making it, so you notice it more, so you can make it better. Specifically on this project as I started to use Speedtree for the first time I would find myself looking at plants differently than I ever had before. 

Finally, playing games is also a great way to recharge my creative batteries and then get back to work feeling energized. I was playing Far Cry 5 during the creation of this scene and I would finish each session with dozens of screenshots, eager to start making some similar art of my own.

Getting feedback often and from as many people as possible is another practice that can immediately boost your work quality. If you are waiting until it looks good to ask for advice then you’re missing the point. Don’t just be satisfied with asking pros, sometimes you can get a great piece of advice from someone completely detached from the industry. Using discord servers is also really effective and during my work, I posted to the ExperiencePoints server which is full of helpful and talented people.

The very last thing I want to do is leave you with some of the helpful resources I found along the way that can hopefully lead you down a rabbit hole of more great information.

Jansen Thorogood, 3D Environment Artist

Interview conducted by Kseniya Serebrennikova

Join discussion

Comments 1

  • Anonymous user

    good work!

    0

    Anonymous user

    ·2 years ago·

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