there is no need to create a vdb, but it works yes
Super taf! ;)
Ted Bundy's car? :D
Laurence J. Hester did a breakdown of the environment made within Environment Artist Bootcamp at Game Art Institute: modular design, materials, lighting, rubble rig, Micro normal, and more.
Hi, I’m Laurence, an Environment artist. I briefly worked on Playconomics with LionsHeart Studios and I’m currently looking for my next opportunity! I began my journey studying art in school and as I neared my graduation I was encouraged to choose something in the 3D field.
I wasn’t quite sold on this idea until, by chance, I picked up a copy of Bioshock. After that, I knew I wanted to work in games. I gained a bachelor of 3D Animation at SAE Institute and halfway through the course, I found that my real passion was in creating environments. It’s been my focus ever since!
Studying at Game Art Institute
I originally started my course at GAI in October last year, and I’m now finishing up the second course. My goal was to update my knowledge of software used in the industry and gain a better understanding of current workflows. The boot camp begins with everyone concentrating their efforts on one prop, this is a good chance for your mentor to see what level you’re at and try to give some good feedback on your workflow and pipeline before you sit down to create a diorama or a scene.
Apart from learning the main software used currently, it also helped me develop an eye for 3D objects, texturing and the ability to evaluate the object as I’m working on it. I found it important to concentrate on breaking up edge wear to avoid it looking too uniform and using some roughness variation to really push the look of your current project.
Even if the lighting isn’t my focus, I also found it increasingly important to ensure my objects are well lit when preparing them for my portfolio. I often like to layer up the lights and have a light that serves as a skylight for ambient lighting, another light to brighten up the main focal point, dramatic lighting, and a rim light. I feel it’s the context of the object you’re lighting that helps decide what color of lights to use. For example, with my prop below I used bright saturated lights which look like car rear lights and colors you might see in a city. For my desert ruins, I kept to more natural tones.
Broken Ritual is my fourth environment made while at GAI, I’ve always been a fan of the Dragon Age series so I decided to create a scene inspired by one of my favorite locations: The Western Approach. I had a lot of ideas, but to keep it within scope I settled on doing one old tower with some funky magic going on to give me a chance to dive into some effects. I also wanted to chuck a bunch of sand around and break objects so this covered everything I was looking to get into at the time! With each project, I included Substance Designer into my workflow a little more, so I was able to use it for almost all the tiling materials (Tile/Rough Brick/Smooth Brick/ All Sand Variations).
For these modular pieces, I grabbed some reference, isolated which materials I’d need to make and then spent some time in Substance Designer. There were two main graphs made for this, one for the floor tiles (which were later replaced with sculpted assets) and one for all the bricks.
After this, I only had one more main material I wanted to make. The geometric trim was decided to be modeled in Maya, as I found it to be a lot quicker than making it in Designer.
This design was actually a lot easier to model then I thought, as after I had modeled a portion of it I was able to find where it tiled and simply repeat that section until I had the length I needed. After this, it was baked in Marmoset and textured in Substance Painter.
With my main materials made I now concentrated on making my modular pieces. I made sure my grid was set to 50cm x 50cm in Unreal units (0.5 x 0.5m in Maya). From here it was a matter of creating pieces that fit the grid, whilst keeping my reference close. After making, and mapping textures to one full wall the easiest way to make the half wall was to turn on ‘UV preserve’, grab one side of the wall and pull it to the halfway mark, this is the basic process for all the parts. Once the full parts are done I separated some into smaller chunks, while still preserving the UVs, and used those to assemble and create the broken walls.
For the rubble rig, I was able to dust off my animation and rigging skills! While this doesn’t quite compare to creating a human rig, or animating a bipedal (or quadrupedal!) character, I was able to use my past skills to make some fantasy-style floating rubble. This was all done in Maya.
After sculpting and texturing each piece I arranged my bricks into an appealing shape, this will serve as the bind pose and should have an appealing silhouette. Once this is done, the object is combined as one mesh and all the history is deleted, it can be given a rig and some movements!
From here it’s time to move into the ‘Rigging’ tab. Select Skeleton > Create Joint, then place that joint at the origin point (0,0,0 on the grid). This is your root joint and it won’t move as the other joints do. To make this a bit easier I change my shading mode to ‘X-Ray Joints’ which will allow me to see all joints in front of and behind meshes. If your joint is too large or too small you can also change their size in the ‘Channel box/ Layer editor, by using the slider at the bottom.
Then I selected ‘Insert Joint’ and changed the camera into Orthographic in whichever angle showed each piece of my rubble best. I stayed in this camera angle until I had made a joint for each separate piece. Insert the joints needed with the ‘Insert Joint Tool’ by clicking on the root and dragging the joint out to one of your pieces of rubble. I continued this until each separate piece had its own joint.
After that, it was time to switch back into the perspective mode, select each joint (not including the Root) and move them into the mesh. Here I would check the Root Joint from time to time as sometimes during the joint creation part I might accidentally create a joint and not drag it out, or just miss-click. The easiest way to see if this has happened is to check that the whole skeleton highlights once you click on the root if this doesn’t happen there’s an extra joint there. As this rig doesn’t have a huge hierarchy I decided not to name each joint.
At this point, I made sure I had a coffee as it can be a bit tedious. I selected the Root, THEN selected the mesh, went to Skin and Bind Skin. You can look into the settings if you like but for this, as I was going to re-paint all the weights, I kept the Bind Skin settings at their default.
Currently, if the joints are moved, the rubble will stretch in a weird fashion, and it could even have influence over surrounding pieces, depending on how close the rubble is. When painting the rubble my goal is to give one joint complete influence over its corresponding piece of rubble.
To get into the Painting Skin Weights menu its Skin, Paint Skin Weights, and after clicking this open the Tool Menu. I now right clicked on one joint and selected ‘Paint Skin Weights Tool’. Now it’s just a matter of making sure each joint has 100% influence over its piece of rubble, and that it also doesn’t have any influence over any other pieces of mesh. As we don’t need any softer values I keep the Value and Opacity to 1.
After this, the best way to make sure my pieces have the amount of influence I want is to select each joint and move them somewhat. This will help see if it stretches at all or takes pieces of other geometry with it. If this doesn’t happen then the skinning is done! At this stage, I keep reminding myself not to delete the object’s history, as this will erase the bindings and weights.
Once that was done all that was left is animating these pieces. First I went to the beginning and the end of my designated timeline, pressing S to keyframe my rubble with all joints selected. After this, I chose a spot near the center, selected some joints and moved them down, then continued to select groups of joints, move them and keyframe them until each joint moves. I’m careful here not to select a joint twice; doing this in this stage might make it move faster or in a jerky fashion.
I’ve exaggerated the movement in the gif above just to make it easier to see what’s happening. It’s already looking good at this stage, if you had time and wanted to do another pass or two on it the next things would be adding slightly more variation to their movement, fixing any pieces that ’pop’ and adjusting the speed if needed. If you’re feeling fancy you can also dive into the animation curves etc. and just go wild!
When I was done I exported it, imported it into Unreal, and populating my scene with it. I didn’t step into using the physics much so I placed these where they wouldn’t clip into any walls or other objects.
The sand effects were something I wanted to do early on, but when starting out I had no idea how I would achieve this. I’d worked a small bit in the cascade system and was trying to wrap my head around how I’d make these effects in that system, however, after some suggestions I was able to find a much easier way to make both the sand falling/rising effect and the sand vortex above the temple.
The majority of the work for this was creating an alpha mask in Photoshop. When painting this mask I opened a file at 2048×2048 (or any of the usual resolutions), made three guidelines, and began to layer up the grunge while keeping the directionality in mind. So keep the forms flowing downwards or upwards and not side to side. As this is sand I try to use a lot of noisy brushes to get that small particle look.
After I was happy with the grunge shape, I used Filter > Other > Offset, and moved only the vertical slider to make adjustments to the streaks until it tiled. For the rising sand, I made three falling ‘clumps’ and for the sand vortex, I made one larger one. As these are all just black and white masks you can place each into a different channel to optimize it if you’d like.
Then in Maya, I quickly made 3 planes, made sure their UVs were in line with the clumps from the alpha, and placed their pivots right at the top of then. If you know the size of your area you can scale the sand plane to the length needed.
After I was happy with that, it was time to set up this material in engine. I originally experimented with inputting a subsurface scattering color, but eventually settled on a very simple set up for my material.
The material mode is Surface, Translucent and Two-sided. Then I plugged my sand diffuse into the Base Colour, my alpha map into the Opacity channel, and a Panner into the UVs of the Alpha map. For the slowly rising effect, I set the ‘Speed Y’ to 0.1.
With the material done it was just a matter of picking the key points around my scene to place these, I scaled the width of them, rotated them, and overlapped them slightly to give some variation to them.
The Vortex was almost the same, as I made the alpha horizontal it just required a different input in the Panner node.
Overall these elements added a bit of interest to the scene, especially the sand which I felt helped frame the interior aspect of the temple.
Micro Normal in Unreal
I’d heard people talk about Micro/Macro normal a lot but hadn’t looked into it until I realized how low-rez my rocks were looking, due to how much I was scaling them. Thankfully Micro normal (and a Micro diffuse) can be handled by one node within Unreal Engine!
The node I used was ‘Detail Texturing’. Here I needed a Diffuse, Normal, a Detail Normal and a Detail Diffuse (optional). I also found it helpful to make one Parameter each for Scale, Normal Intensity and Diffuse Intensity. For the Detail Normal and Diffuse, I used more detailed textures that tile well, as I discovered this late in the project I just selected some from Textures.com. I edited the color of the detail diffuse in Photoshop, just to allow it to match my existing rock.
Once I had all my parameters organized and named accordingly, I right clicked on the material and created a material instance. From there I applied it to my rock and tweaked all three parameters until I achieved the result I was after.
Originally I had a gloomy night lighting scheme, however, that wasn’t working for me. Thinking back to the reference level I designed my next lighting scheme to reflect the dramatic heat of mid-day in the desert. I also learned, as I was taking notes on feedback given to me, that I’d have to create a few different lighting setups for this level. They worked like this:
- Lighting for the main dramatic interior. Here the lighting direction is from the rear of the building and shining down into the interior. This gives the subtle directional God rays that also point towards the focal point. There are also some point lights to reduce the severity of the shadows inside.
- Lighting for the floor above the interior. In this shot, not a lot changes are happening, however, the point lights mentioned above caused the interior to be too light at this angle. So for this shot, those were removed, some similar point lights were added to bring some color into this upper floor area.
- Lighting for the façade of the Temple. Here the main change was that the sun direction moved, this allowed the front of the building to be in the sun and have some interesting shadows.
My main goal was to gain a better understanding of programs widely used in the industry, which I didn’t know the full potential of before. This allowed me to create environments of better quality and bigger scope as my technique and knowledge of workflows improved.
The feedback provided throughout the course allowed me to focus on areas that had more potential. While I still have a lot I want to learn I’m very thankful for all the time and patience my mentors Ryan Kingslien, Simon Fuchs, and Alexis Boyer dedicated to helping me increase my understanding of the industry and its methods.
Laurence J. Hester, Environment Artist
Interview conducted by Kirill Tokarev
If you found this article interesting, below we are listing a couple of related Unity Store Assets that may be useful for you: