Very impressive work dude!
Connor Reynolds did a detailed breakdown of his amazing snowy environment, where he tried to mimic some of Koola’s outstanding work.
Hi everyone, I am Connor Reynolds, an environment artist with a degree in Interactive and Game Development from Savannah College Art and Design (SCAD). After graduating in 2017, I am continuously building my portfolio with materials and environments. While at SCAD I worked on two VR games, Dialect Effect and Will of the Sea. I grew up and currently reside in New Jersey but have lived all over the country in places like Mississippi, Colorado, New York City, and Savannah, Georgia. My passion for game development started with a question I asked myself during my college search: “What do you enjoy doing?” Essentially coining the phrase “If you love what you do, you’ll never work a day in your life.” well, if you couldn’t guess, I loved video games. Not just playing them but getting lost in the worlds created inside. This lead me down the path that I am on today. I chose to be an environment artist so I could create worlds of my own that people would fall in love with and spend hours exploring just like I do.
Fresh Tracks is my latest environment that brings the feeling of a cold winter day to your computer. The ideation for this project came from a few different places. I grew up a ski racer, spent my middle and high school mornings on a mountain everyday training with the best skiers, always striving to do better. Ski racing was a major part of my childhood and I have great memories on the slopes. Also, we had a lot of snow in New Jersey this winter and it brought back some of those memories. A winter environment was something I had yet to undertake. I wanted to learn new techniques on how to create a season I had never done before and a snow-covered mountain was the best place to start. I want to give the viewers the same feeling I had being the first skier or snowboarder on the mountain, creating those fresh tracks through the snow, feeling the warm sun rays shine down in such a cold, remote place. While collecting references I knew there were a few main parts that I wanted the environment to have. The first being a chairlift. Not a new, shiny, high tech chairlift, I wanted it to show the years of operation and all the times each chair had gone around in its infinite loop. The second part being the cliffs, but not just on the trails, the entry road to the mountain would be lined with cliff walls. I remember my first time driving to Vail, CO from Denver and all the giant cliffs that followed the roads curves. I will never forget the pure scale of them. The last thing I wanted was groomed trails, this shows the start of every ski day.
I made this environment not just to make something, but to learn new processes or techniques. The first step I took was touching up on my World Machine skills. I had not opened the program in over a year and was definitely a little rusty. After following a few brush-up tutorials and testing nodes I was able to create a landscape to my liking. Because I do not have the professional version of World Machine I was unable to make a tileable landscape which would have been more optimized. However, since this was not for a game, optimization of the landscape was not the main priority. The height map was created in World Machine and exported in RAW16 format at a resolution of 1025×1025.
I imported the height map in Unreal. I then changed the landscape scale X and Y to 400 leaving Z at 100. I made three masks base off of the slope. I used these masks to show where snow, rocks, and an in-between of snowy rock that would blend the two together. I created the overall landscape material out of eight material functions, each holding a different type of material. I used material functions for a more organized approach making single material switches very easy. Each one of my materials has a base color, normal, and the height, roughness, and AO are combined into one map.
In the overall material, I hooked up all of the material functions into a Landscape Layer Blend, split the different maps up using a Break Materials Attributes, and plugged them into the output. The reason for breaking the material attributes instead of keeping them consolidated is so that I could add Tessellation and a Vertex Normal WS to the overall material instead of each individual Material Function.
Once the overall material was set up I added my masks. The reason for using the mask was not to get a final landscape material, however, it was to texture the distance areas of the map without having to do this by hand.
While creating the snow materials for this environment I used Substance Designer. My thought process for creating the snow in Unreal was “the simpler the better”. I created a material that was smooth white and had lumps to show that the snow was layered on top of the ground. To add tracks to this material I used a paraboloid shape, made the X size small, split it and warped it. I then used the swirl node to it looks more like someone was shredding through the snow.
I also created the groomed trail material in Substance Designer. The groomed trail was used in the landscape material and on the trail models themselves.
I made sure to have the nice corduroy left behind by the snowcat. The initial shape is a rectangle with beveled edges and tiled it. I added imperfections and small snowballs that overlapped the columns with a final snow overlay in case I wanted to have less of a ridge. I also made a ski track decal to overlay the groomed trails. For the sides of the trail, I sculpted a snowbank and modularly placed it lining the trails. While making the snowbank I wanted it to have multiple purposes, so on the bottom side is a ski jump.
Trees were a big part of the scene and I could not find any tutorials online on how to make a snow-covered tree in Speedtree for Unreal. However, I was able to find some beautifully made trees in the Speedtree Store called “KOOLA’S SNOW EXAMPLE PROJECT (UE4)” which looked great, but just using them would not teach me how to make the tree itself. Since the whole basis of this environment was to learn new techniques I built my own based off of them. I was able to find the textures and trees on the Speedtree store under Blue Spruce package. After purchasing and downloading all the assets, I was able to open up the trees that Koola had made and taken them apart see how the trees were put together with the snow laid on top. I had also recently downloaded Speedtree 8 Beta which I used for the first step. Speedtree 8 Beta has a few template options when starting a new tree. To create the branch textures, for my pine trees I used the “Cluster” template. This aligns the camera to a branch.
I remade the branch to look more like my reference and created a pine needle texture in Substance Designer.
Leaves were added to the branch and I applied the needle texture. After, I added the bark texture that came with the Blue Spruce package to the branch. I set up the branch so it was inside of the safe frame and exported all of the textures. (File>Export Material) I then took the same branch and changed all the materials, except for the pine needle opacity map, to the snow material I made for the landscape. I also changed the branch material to the snow material. I then exported those textures as well.
In Photoshop I combined both the snow and green version into one map. I based this off of the branch textures found in Koola’s trees.
For the next part I looked at how the branch meshes of my reference were made. This is easy to do inside of Speedtree under the mesh tab. After seeing that there were two meshes laid on top of each other (the top for the snow and the bottom for the green) I opened up Modo and made my own branch planes. I also laid out the UVs based on the texture maps I created.
I created a tall trunk with branches back in Speedtree v7. I added my leaves to the branches and started to mess with the parameters until I had a tree similar to what I saw from Koolas. I used the spruce material for the bark material.
The chairlift poles were textured using Substance Painter. I modeled three different poles at different heights. For the textures themselves, I was going for a worn, old chairlift. I went on a reference hunt and found some great images and a video that really matched the feel I wanted. I started with a lot of trial and error to get the look I was going for. These are the steps I took to get my final texture: I first baked all of the maps. My high poly model included the supports and wheels that are at the top of the poles which are laid out on separate UVs. Then, I started with a fill color – this would be the color of the paint on the poles. I added a grainy finish to it and the MatFx Rust Weathering filter. This filter adds great rust detail and rust drips giving a realistic rust. I had to mess around with the parameters a lot to get the right look that I was going for. I added a cement material to the base and started to work on the snow overlay. For the snow, I was trying to keep the same colors and feel in the whole environment, so I used the same snow substance I created earlier. I created a folder, added the snow material to it, and added another fill layer that was only Height and boosted it all the up to 1. I used a mask on this folder to paint in where I thought the snow would sit and accumulate. The height being so high gave the feeling of raised snow. Another folder was created, this time, with only the snow material in it. This folder is used for a frosting effect. I painted on a mask with a low Flow setting so that the snow material would be barely visible. I painted more strokes around the built up areas. For the wheels and supports at the top of the poles, I only used one UV with all three of the layouts stacked. I did this to first use less textures and optimise parts that did not need to be different. The textures for these were made in the same way, except for the wheels where I used the bolt tool. The final step I took was sculpting snow mounds in Zbrush that I textured with the snow material and brought into Unreal and placed at the top of the poles.
The lighting of the environment was something that I had to rework multiple times. The scene would not be right if the lighting did not give someone the feeling of wanting to go outside. I wanted it to be cloudy but have a warm light shine down. Those warm colors would be the only light present, giving everything a balanced contrast. However, this entailed not just the lighting, but the atmospheric and exponential fog since both can help or hurt the lighting. So I used a Directional Light with a warm yellowish orange tint. Intensity is set at 5, which is quite high but all the trees make the areas with sunlight really pop. The Temperature is set in the 3000’s and Light Shafts were enabled. I also used a Sky Light that had a small tint of yellow with mostly white. I turned cast shadows off and had a very low intensity of 0.5 and a cube map made with a Scene Capture Cube. Next, I worked on the Post Processing settings. I had worked with post processing settings before but never dove to deep into its ability. If there was ever a time to learn it was with this project. So, I did a top to bottom test on what each slider, checkbox, and value did. The main things I changed were White Balance-I turned the temperature of the scene to 5800 which kept most of the nice orangey-yellows but added some blues back into the shadows. I turned the Contrast up just to 1.1 to give the trees a little more depth and darkening. Gain was a game changer-I turned it up to 1.74 which gave the sky that bright glow. I added Bloom but tried to keep it low. To much bloom can blow the whole environment out. Next, I went to the camera setting and adjusted the Exposure Compensation to -0.5. I turned Auto Exposure on and made the min and max 1.0. As I said, the fog can make a difference so I tried to push it back so close details would not be lost but there would still be a haze in the distance.
As with every project, there are complications and Fresh Tracks was no exception. My biggest challenge while making Fresh Tracks was the scale of the environment. The more I worked on it, the more I could add, but keeping a project to a reasonable scope is extremely important. I had to step back from working on it a few times and ask myself, “what in this environment can I make better instead of adding more”. This lead me to change my cliffs and rocks. Originally I was using a darker cliff rock and after stepping back and looking more into references with my overall feel, I felt as though more warm colors were needed. I searched for cliffs and mountains with snow with no real inspiration until a family member returned from a trip to Deer Valley in Utah. They had taken some great reference photos of a beautiful beige cliff. I went back to work on revising the cliffs to be more flakey and weathered. Re-textured them to have a lighter, warmer feel. It added a lot more color into the environment. The photo below shows before and after adding the new cliffs and warmer lighting. This was just because I stepped back to think about how I could improve what I have and not continue to add what I don’t particularly need.