Great work and breakdown! Thanks for sharing :)
Thiago has escaped from a question about how is the policy in Blizzard :) Or it's just too short quote?
Please put head title as podcast!
Casper Wermuth talked about an environment, which he produced during Anthony Vaccaro’s environment art class at CGMA.
My name is Casper Wermuth, and I currently work as a Lead Environment Artist at Ubisoft Blue Byte in Germany.
I was born in Denmark, and took a Bachelor of Arts at The Animation Workshop, which is directed towards the film industry, animation, and VFX.
After working with VFX in commercials for a year, I got a small job in Copenhagen doing real-time dinosaurs for a museum which wanted an interactive experience for their visitors. That lead me to games, and I moved to Japan working for Shapefarm and Valhalla games on a title called Devil’s Third. I was sitting at a group of desks where everyone was a much better artist than me, so it was a great learning experience. It also opened my eyes for how interesting environment art actually is. After we shipped, I got hired at Ubisoft Blue Byte, where I helped wrap up Champions of Anteria and have now been here for 3½ years, currently working on an unannounced title.
The first time I did real-time environments was working as a freelancer for Shapefarm.
I was paid a flat rate per package, and I would get the money when the asset was approved.
My skill level was far below anyone else on the team, so I was working really hard, just to figure out that my approach had been incorrect and not optimized enough from a technical standpoint, and then having to redo everything. My hourly rate was therefore not exactly impressive on the first few deliveries, but I quickly caught up, and the overall experience just taught me a lot.
Making environments is interesting for several reasons. One of them is the variety of tasks involved in creating one. I rarely feel it’s a grind. Cliffs, boulders, grass, trees, terrain height and terrain textures. It can of course also be indoor environments and sci-fi hallways, but I haven’t done those in a while.
It’s fun to work on so many things, although at times a bit frustrating, as I have a feeling I will never get good at any of it.
Another fun thing is bringing a certain mood or feeling to a scene, and trying to reflect that in each asset. Their shape language, colors etc. Something as simple as a grass asset will look different, depending on the general setting of the environment. Is it a happy place? A scary place? Does the player feel safe here, or is it a place where every living thing could potentially kill you? A wooden plank also looks very different depending on who made it. How new is it, how was it used? Even when the entire scene is made, some quick changes in lighting and post-processing can also dramatically change the feel of the entire scene.
All of this combined is why is find environments so interesting. There are so many small things that all come together to create a place, a mood, a setting, which may or may not exist in the real world.
This specific environment is very generic, and probably conveys minimal emotion, but it’s something I think could have pushed it to the next level, and something I am trying to become better at in my work in general.
I’m full-time employed as a Lead, which means I spent the majority of my time writing emails, instant messages, outsource managing, in meetings or talking to people. There can be several days in a row where I create zero content for the game, or where I only get to open up the engine those 45 mins in the morning before the others come in, and the day starts.
The goal of this course was to brush up on some skills and make sure I stay sharp, at least in terms of knowledge. I knew the 10-week course wouldn’t be enough time for me to deliver a stunning art piece, but I reached the main goal of updating my knowledge, and refreshing some things I used to know, but had forgotten.
The approach to this course was, therefore, to follow Anthony’s course completely, being a newb for 10 weeks, and asking as many stupid questions as possible, and failing whenever possible. The great thing about these courses and personal work, in general, is the lack of consequences. I can be stupid, trying out things I have no clue about, and generally fail all I want, without endangering a deadline or a project.
There was initially a setup of 6 cameras, also looking in the other directions, but it turned out I didn’t have time to do enough level art to make them work. Towards the end of the course I therefore only worked on these 3 very identical shots, focusing on the same focal.
In hindsight, I think this was a mistake. I tunneled myself into something more of a single shot, instead of an actual environment that would be interesting to talk around in.
During blocking out of the scene, I tried making a lot of leading lines towards the focal.
I overdid it, and the scene became extremely cluttered and impossible to read. I, therefore, had to tone back, deleting a lot of assets, to free up some space both for the eye to rest, but also for the scene to even read in the first place.
First cliffs in the engine. As this was the first completed asset, I ended up spamming it everywhere, completely overcrowding the scene:
A great example of how NOT to spam rocks:
Trying to expand a bit on the scene, to give some more breathing room. However, I didn’t go far enough in this direction, and the scene was still too tight:
The final composition where there is more room to breathe, but the lines are still directing the viewer to the focal point:
When lighting the scene, I used Light Functions to create the illusion of light passing through clouds, thus lighting the environment unevenly. It’s an easy and fast way to tone down all the irrelevant areas of the environment and highlight the areas I want people to be looking at. As an afterthought, I tossed this screenshot into Photoshop, and by using a Threshold adjustment layer, I can check how the values hold up. As you can see, the path is standing out between the darker grass and cliffs, and there is a hint of readability on the focal. It’s not exactly a perfectly readable composition, so I could definitely have improved in this area. Ideally, the focal point and the path leading to it would be readable like this, and the background mountain would be less of a mess. The focal could also have had more of a dark ring (trees?) around it, to better contrast to the light background.
The last thing I did for composition was the colors. During some early iterations, I had much more trees in the scene, but they were too dominant with their bright red colors. I then removed them all, except the ones just around the focal, but that felt too artificial.
Eventually, I put in a few trees throughout the scene here and there but gave them another material instance with a Desaturation parameter. This enabled me to tone down all the background trees to a more muted color, keeping the saturation for the trees around the focal.
The terrain is simply Unreal’s basic terrain, with no bells or whistles. Using the basic sculpt tools with high strength and big brush radius, you can quickly lay in the base topology, and then just smooth it out to get something less “hand-sculpted”. All interesting shapes come from the 1 main rock I have, that are simply poking out from the terrain.
If the look was more realistic, I would probably have looked into a procedural tool like World Creator or the like.
The scene has the main rock, a boulder set, and a rubble set.
The main rock is sculpted in Zbrush. I wanted to keep it relatively flat on top, so I could use it for directional leading lines in the scene. It’s made using standard sculpting techniques and alphas, and then decimated down to a bit below 10k triangles and brought into Unreal with just the normal map.
I then set up a shader that would lerp between 2 tileable textures using an RGB mask. Obviously, it could have used more than 2 with such a setup, but I didn’t have time for creating them. I created one with structure, and one which is smooth, to try and bring some more interest to the surface.
I then exported a random mask from substance, which was actually just to serve as a quick test to see if the shader worked, but it held up fine enough, so I never got back and made a better one.
Now the rock would have a unique normal map, and the 2 tileable texture overlaid on top of it.
The last thing was then to add a WorldAlignedBlend to have some dirt or grass on top of the asset, independent of the rotation. This controls the alpha of the last lerp, where I simply input the same grass texture as I used for the terrain. The vertex color is for masking out this blend, in case I don’t want grass everywhere.
Problems with the scale
This is completely my own fault, and perhaps one of those funny fails I am learning something from.
Anthony kept reminding us from day 1 that the scene should be kept small and manageable, as 10 weeks of spare-time work is very little to create a big environment.
The scene in blockout stage was therefore relatively contained. However, I wanted to have more depth in the scene and started expanding it, but because all the original measurements were quite small, it never felt big. It did and still does, feel more like a smaller whimsical world than a big valley somewhere. Anthony was talking about some scenarios where he would scale down background trees to fake a sense of scale, so I thought I would use that, and cut down the trees to 60% of their original size, except for the 1 tree in the foreground.
My logic was that this would establish trees as being big near the camera, and therefore seeing the smaller trees in the scene would create a sense of scale. It didn’t quite work out, and the scene, therefore, has a slightly awkward feel to it. I always intended to make the scene stylized, so I decided it wasn’t such a big deal, and I didn’t have time to rework anything anyway.
I, therefore, kept it in and hoped it would all be fine and go unnoticed.
..It didn’t, lesson learned 🙂
First block in Max:
The vegetation is actually very simple, so I’m glad to hear it worked for you. It’s some basic leafs, stems and flowers setup in 3ds Max and Zbrush, and then baked down on a single sheet. I then cut them from the sheet and arranged the assets from that.
The texture setup is also very basic, as these details are so small on screen, that it’s more about how it works in a mass, rather than how each asset looks up close. Each of these groups is therefore just a few different flat colors with a random mask, to create some color variation. To get a bit more large-scale color variation, the shader has an Absolute World Position driving the UVs of a mask, which I used to tint everything to a slightly different hue, just to get some soft large-scale variation.
The grass and tree canopy is done in exactly the same way, except they each have their own sheet.
Because of the time constraint, all of the graphs are very simple and unsexy. I did get time to come back and iterate a bit on some of them, but most of them are just bashed together in the most simple way possible and left like that.
As an example, the pebble texture I use around the rocks, to visually blend them into the terrain a bit:
I duplicated this part 5 times, and just changed the random seed on the perlin, to have them warp differently, and then plugged them all into 3 Tile Sampler nodes.
1 for large shapes.
1 for medium.
1 for small.
The large Tile Sampler node got a few Slope Blurs to break up the shape a bit, and then I blended those 3 together using height blend.
This is literally the entire diffuse. A random grunge into a gradient map to get some overall color variation, and then a few Uniform colors to get some more deliberate colors in specific areas. Using a histogram select to get the lower crevices, and some of the default dirt masks for further variation. That’s it!
The other textures, for example the base dirt\gravel texture is done in exactly the same way. The base shape just has less of a bevel, and therefore becomes more flat and trampled looking.
Again, the same for the grass, put just putting in a splatter circular to get more of a grass clump look.
Once I had the pebble, the grass and the dirt, the other textures are just height blend between those. So when I needed to transition from grass to dirt, I wanted a texture with dirt and just a little grass.
I then simply blended between these 2 graphs, using a mask to cut away from grass, and an HSL node to tint the grass in a slightly different color.
I’m aware these are not exactly mindblowing graphs, but perhaps it can help someone out there to understand that even basic simple graphs can still go relatively far when the focus is a scene in its entirety, and not the quality of each texture. I’m also a big fan of iteration and generally work like this anyway. Getting something quick and dirty into the engine, and then iterating on it until it looks good.
I’m very new to substance, but I still chose this tool over Zbrush, as that would enable me to go back and iterate on the textures later if time allowed. I didn’t get more time closer to the end of the project and ended up just closing the project as it was.
Advice from Anthony Vaccaro
Anthony was very thorough and covered everything anyone would need to know to make an environment like this. During the feedback sessions each week, he offered advice on many things and gave special attention to the topics each of us preferred to dive more into.
Something we talked a lot about is how the primary, secondary and tertiary reads are, and transitioning nicely between assets and between different areas of the level, using that principle. If I have to be very specific, then the importance of PST and transitions is what I would say is the biggest takeaway I have from the course.
However, if we are talking about something less specific, I think the most important lesson I’ve (re-)learned from the course was, that there is no secret technique, no hidden magic button, to get a good end result. It’s all about composition, color, design, leading the player. It’s all about art.
I was yet another student back in school, who was neglecting this, and I focused more on the button-pressing than the actual art. During my career, I’ve learned several times that the technique you use is not the deciding factor for creating an emotional response in the audience. It was good to see that even the workflows behind Uncharted 4, which is one of my favorite games in terms of visuals, is not doing anything special or anything that I am not aware of. They are simply great artists, and spend time iterating until they get it right.
It, of course, depends a lot on the game it would have to be used for, and how much resources would go to characters, weapons, effects, sound, UI etc etc.
If this scene had to be production ready from a technical standpoint in a more generic way, I would need to create some more custom LODs for the vegetation, and have them cull much quicker. I also used some fairly large lightmap resolutions on trees, and would probably have to reduce the lightmap size to half, and actually do some proper lightmap UVs, as they are now all automatically generated.
But again, it would very much depend on what game it would be for, what the focus would be on.
Thank you for asking me to do this interview, and I hope it might be helpful for someone out there!