Hi Elliott, This is a great breakdown and very generous in sharing your process and insights, you came a long way from the vending machine days!
Are you planning on releasing the UE4 project to the public? Or only builds? I'd love to play around with it in the editor if possible!
3d artist Antonio Figueiredo shared some of his production tips, which he uses during the production of high quality urban game environments.
Greetings everyone! My name is Antonio Vaz Figueiredo. I’m from Lisbon, Portugal. Currently I’m working as an environment/props artist at the outsourcing company called elite3d in Valencia, Spain, where I had the pleasure of working on projects such as Star Citizen, Call of Duty Black Ops 3 and Call of Duty Infinity Warfare.
In my country I didn’t have too many options with 3D related studies so I decided to study architecture for four years and after getting my degree, my next step was to take a 3D course at the company Arqui300 where I ended up working for a while in the architecture visualization department (modeling, lightning, texturing, animation and images).
Still, my main objective was to be able to work in the video game industry someday, so I decided to enrich my knowledge by taking online courses at Zbrushworkshop (later they changed their name to Uartsy) where I was fortunate enough to learn from Steve Lord, Joseph Drust and David Lesperance.
The last two courses gave me a really good insight on how to approach the creation of an asset that might be used in a game. Furthermore, it was thanks to my final project that I was able to fulfill my dream since soon after I was contacted by elite3d for a job interview.
If you want to check some of my artwork, here is my Artstation.
Final scene for the online course with David Lesperance and Joseph Drust
For me (and I think this is a common thing for every artist) reference is always the key, you might have good ideas for an environment but you need something to perfect it or you will not achieve the level of fidelity that you want.
Normally I divide my reference gathering into 3 steps, first I gather general references for the type of environment I want to create, second, specific references for the assets that I’ll use to populate the environment. My third and final step is to find references for the mood I want to achieve (ex. photos that have the lighting, fog and field of view that I envision).
I mainly start with blocking, let’s say that the project is an exterior environment, my starting point will be the big shapes such as buildings, roads, sidewalks, areas with vegetation, etc. I always try to do it as modular as i can so that i can have room for experimentation and if I decide to change things later on it will be much easier.
Camera angle is also tied to this, which is the second part that i try to establish, this will limit the amount of work I need to do and where to place the objects to create a good composition as well as to determine the light direction.
Depending on which software is being used, if it’s the V-ray then the V-ray Sun is more than sufficient to start off but in Unreal 4, the directional light is the one I use in the beginning. Also, I start with the light in the environment with no texture applied, just a grey scale shader.
Blockout example of how I normally start a scene (taken from Unreal 4)
For modeling I use 3Ds Max, starting with high-poly but always keeping in mind that I’ll have to create a low version of it so i need to be as non destructive as possible (and this is where 3Ds Max modifiers really show their potential). Initially I create the base shape followed by adding an editable poly modifier which I’ll use to add support loops (this can easily be deleted for the low- poly).
Obviously there are exceptions if the asset is more complex, but as a rule of thumb I’ll try to use that approach for every asset.
Using floating geometry is an essential part of my workflow, for example, it’s more efficient when modeling a high-poly to create a hole, for example, as floater instead of doing it in the geometry, kowning that in the end it’s going to be beaked on the low-poly
Another advantage of using floaters is combining this method with the Instance clone in 3Ds Max this will give you the ability of changing the design of the screw that you’re using multiple times in an asset and those changes will carry over to the other copies.
I can’t stress enough the usage of the Instance clone, sometimes I see people not using it when they have multiple copies of the same object, it’s very inefficient not doing this not to say that this helps with scene performance in 3Ds Max.
Here’s an example of how floating geometry can help a lot when builing a highpoly. All of floaters are instance copies so I can change then easily
When it comes to baking I still use the good old xNormal, always doing two bakes, one with the cage to get the correct corner shading and one without so I can get the projected details, such as a screw, with no distortion.
For assets such as walls, buildings, road and terrain the best option is to use tilable textures using either an atlas with textures strips (so it’s more economic for the engine) or a simple tilable texture, so that with the use of vertex paint and decals I can give more complexity to the texture.
When building an environment such as this, modularity is very important, so I tried to make 4 variations of the buildings. Since this was done using 3ds Max and V-ray, poly and texture budget wasn’t an issue.
However for a game engine, when it comes to geometry I would use support loops or custom normals for corner smoothing, this will allow me to not bake the walls, and use tilable textures. Another thing that I keep in mind is also to combine baked objects such as windows or doors to give more details, decals to give wear and tear and vertex paint to blend different tile textures.
I also break up more of the building façades by adding elements such as vines, the scaffold and lamps, this helps to give more variety and the repetition would not look so evident at a first glance.
Four variation of facades I created for the scene, the poly count of them stands between 4,000/7,000 triangles
I always try to build the materials from the ground up, defining the base material first and then adding the details like wear, dirt and dust after. For defining the material correctly, you should always be careful with the gloss/roughness map, it’s there that you will define the correct surface feel that you want for the material.
As a general rule you should always test your materials in the engine because it’s there that you will see how they look under the light and how they interact with the other objects, so, if needed, you can make adjustments if the material is too reflective or the colour isn’t right to the overall feel of the scene.
The colour palette of your scene is very important, using complementary colours is a good way to start off and using the colour wheel to get some base colours is really helpful.
You also want the keep in mind the mood you want to achieve because colours also affect it, you can use a warmer colour for a warm/day scene, or cold colours for a more gloomy/rain scene.
An example of my layer organization in Substance Painter, focusing on the material Painted_Metal. I started with a base metal (Steel Scratched), with some variation already, then I add a group where I create the base paint, including also in that group some dirt and color/gloss/roughness variation. Since I have multiple objects at the end I add a general dirt/wear pass, I start with a generator to my liking, after that I break it up with some fill masks and brushes.
Details such as wear, tear, dirt always depend on what you want to convey in the scene. For example, if the objective is to create an abandoned town, it’s those small details that helps to convey the idea that an apocalyptic event has occurred there, for example, having grown grass in places that normally people would cut it, trash in the streets, varnished wood that lost the coating layer and so on.
In another example, now the scene is a normal city that is inhabited, the scene still needs an amount of wear and dirt but very subtle, it could be in corners or where object intersect with the floor or wall, those are the place where, even in normal use or when cleaning, there is still dirt present but again, very subtle.
As I mentioned before, gather a lot of real life reference for the type of wear, dust you want in the scene.
Here’s an example of a scene where the amount of wear/dust is very subtle, showing as well that there is some usage to this place
As I previously mentioned, it will depend on which software I use, if it’s V-ray then I’ll use V-ray Sun but if it’s Unreal 4 then it’s the directional light, the approach to it may differ but the fundamentals remains the same.
When I started working as a 3D artist, V-ray was one of my main tools so even now I still use the knowledge acquired during that period in most of my work, even in other programs like Unreal 4 where some of the terms and options are similar to the ones available on V-ray.
In the following link about V-ray, you can find a lot of examples about how light works that you can also use as reference for Unreal.
As for the light sources, I usually try to put the main source of light behind the camera but slightly to the side in order to create an interesting contrast between light and shadows but always keeping in mind that a balance between those is required so that it doesn’t become too dark or too bright.
Fog and other atmospheric effects also have an influence in how the light feels, because they cut off the amount of light that comes through.
When lighting a scene I always start with the smaller lights such as lamps or car lights, so that I can make them work with each other, before moving to the main light. I do this because we often focus more on the main source of light and forget about the others, specially in night or very dark scenes, where the smaller lights will give the mood to the scene while the main source is there only to provide ambient light and to make the shadow areas not as dark.
Here are two example where different lighting positions can drastically change the mood of a scene
Finally one of the most important things about creating the mood that you want, is the post- production. It can completely change how the scene looks, for the worse or for the best (hopefully always for the best).
I mostly use Photoshop in that regard, rendering the final scene and passes (such as lighting only, shadows, reflections, Z-depth and atmosphere), with this I can have full control over the elements of the scene. Normally, in the beginning I contrast the scene, followed with small increments until I find the contrast to my liking. Colour Lookup is also used and I interchange between them until I find the one that fits the mood, also changing the blending mode and opacity to control it better.
The final touch would be adding vignetting, sharpening and chromatic aberration. This last one is very important, people tend to use it a lot but exaggerate the effect too much, which doesn’t help the image, therefore, it’s required to be used with subtlely.
Post-Production example done in Photoshop
In Unreal 4, when using the Post Process Volume, you can change the mood of the scene in real- time, but if you want even more control you can achieve that by using the colour grading function. This process allows you to import a texture with the colour correction and contrast changes you did in Photoshop.
Here is the link for it.