Level Artist Nina Popovych has shared the working process behind The Lost Temple of Kullu Valley, thoroughly explained the modeling and texturing processes, and explained how the scene was rendered and lit in Unreal Engine.
In case you missed it
You may find these articles interesting
Hello everyone! My name is Nina Popovych, I am 31 years old, and I work as a Level Artist at Room 8 Studio. I am from Kyiv, Ukraine. After the release of my last 80 Level Article, I have been working in the studio. I also created some new materials for my portfolio and finished The Lost Temple of Kullu Valley project, which I started about ten months ago.
Now I work as a Level Artist because I love this work. It allows me to realize my potential. The main advantage of this work is the ability to create levels taken from your imagination or inspired by concepts of some artists and implement them into a game world. This allows Level Artists to share some of their works with a rather large number of people and immerse themselves into the game world.
Level Artist is the kind of job that can be done by a person who is very fond of games, attentive to details, and inspired by some places in life, nature, games, or works of other artists. Thanks to tools like Unreal Engine and Unity, Level Artists can repeat and create a game world of almost any complexity, unlimited in terms of flight fantasy. Any ideas, incredible images, fabulous architectural structures – anything you desire, you can assemble in the game levels, using software like Maya, Blender, and others to create objects.
I began my career as a Level Artist, after which I worked as a Level Designer for a while, but realizing that this was not something that I was close to, I returned to the profession of Level Artist again. In order to improve my skills as a specialist and continue to develop in my field, I decided to try myself as an Environment Artist by choosing courses from Smirnov School "Game Location in Unreal Engine" with mentor Sergei Panin. After I had chosen the concept as a reference, and thanks to the course materials, my skills, and the knowledge provided by the mentor, I began working on a scene at UE. The result was The Lost Temple of Kullu Valley.
In addition, I also like working with Substance 3D Designer, and from time to time, as a hobby, I create various materials that I liked or was inspired by. While working in Designer, I am very diverted and completely immersed in the process, and because of this, I like and relax with this hobby.
Speaking about things that inspire me, they can be completely different things. For example, this can be any game that I play and after seeing some interesting composition or place, I mark them for myself (usually, in such cases, I make a few screenshots and, if necessary, then return to them). In addition, it happens that you find beautiful concepts from Concept Artists, and they are so inspiring that you want to repeat them later in the UE scene. Some places or things in life, nature, and architecture, which already exist, there are elements that can inspire. And, of course, do not forget about movies. Quite often, there are very impressive scenes in the movies that look very good and interesting, and there is a desire to mark them for yourself and then maybe something similar to repeat at the game level.
The Lost Temple of Kullu Valley Project
As I said before, I started The Lost Temple of Kullu Valley about ten months ago. When I started the course "Game Location in the Unreal Engine" at Smirnov School, I had to choose a reference for the scene that I would create as part of this course.
Before I started working, I looked through a lot of works of different artists on ArtStation, looked at pictures on Pinterest, viewed photos of various significant places in the world and nature, and, as a result of a long process of selection, I decided to stay on a wonderful work Indian Heritage by Concept Artist Pengzhen Zhang, because I really liked it and it inspired me to try to make something similar in Unreal.
Below is the original image by Pengzhen Zhang, which I took as the basis and basis for my project:
After the main idea was chosen, I needed to collect additional references on which I could orient myself to what would be the architectural elements presented in the concept in real life. So I continued my search on Pinterest and Google to get more images and real pictures of architecture with similar concept details and from different angles. These extra images gave me an idea of how architecture works.
All the references that I find I collect in PureRef for convenience. In my opinion, this is a very great tool to structure references, and have all the necessary images always at hand. In addition, this program is very simple and intuitive to use.
After I collected all the necessary references, I decided to structure them so that when any questions arise when modeling different elements, I could address them and understand how to implement certain points during the creation of assets in Maya, texturing in Substance 3D Painter, and any other moments.
The image below is an example of my PureRef page with references that I found and used when creating this project:
When I was looking for the right pictures with the elements of Indian architecture, I studied a lot of stuff, and I got to know more about Indian history. I came across legends about Indian gods and traditions. I liked one of them very much and, in my opinion, it was very interesting to describe traditions and some of the principles. It also gave some description of values and life moments in Indian history. This legend impressed me very much, and I decided that I could add an Indian legend to The Lost Temple of Kullu Valley project and it will also be able to transfer and immerse viewers in this world.
And to connect a little bit more legend and concept on which I did this project, I added a few details to this legend to make it more organic. Thus the temple has a goddess protector, and the actual existing legend has several additional details.
I used a ready-made concept art to create the project, so it was easier for me to start building the scene because I initially understood how much of the architecture I was going to have in the scene, and how individual elements would have to be placed, in order to roughly repeat the concept.
For convenience and ease of understanding, I started to assemble a scene from basic primitives such as cubes, spheres, cones, etc. This approach creates a common understanding of the basic forms that make up the different elements of architecture and makes it clear what size they must be to match the original image of the concept.
The image below is an example of how my original block-out scene looked after I created it in the Unreal Engine:
After this, there were several minor changes to the shape and location of some towers to make the main picture look like a reference. Also, at the same time that I was building the blockout, I had a camera view like that on the concept so that I could edit and move the elements of the design to fit the size and location of the concept.
During the assembly stage, I immediately made a background with primitives, also added a flat plate as water, and as a result of these manipulations got a ready blockout, which I later began to use as a basis for further steps and work with 3D programs, etc.
When I was creating the blockout, I would periodically come up to the level in order to control and evaluate the size of architectural elements, to approximate the shape and size of whatever they might be if this temple existed in real life.
Note: When you create levels, especially if these are game levels rather than shoot levels that repeat the concept, I recommend regularly turning on the Game mode and looking at your scene from a player’s perspective, since it is not always what looks beautiful from afar, also looks the same in player mode.
When you assemble a scene, it is also important to put the camera angle from time to time so that it is about the height of the player’s camera, it simplifies the process of building a scene, and there will be much more chances that scene will look great for the player. If you build a scene under a shot, the most similar angle to picture reference, in this case, it is important to put the camera angle correctly and use the player’s character for assessing the reality and the plausibility of the dimensions and distances to make the final scene look organic and realistic.
Then I moved to work with the landscape. I created a terrain inside the Unreal Engine with the basic tools. After this, I used the Sculpt function and tried to repeat terrain shapes that I had previously received with basic primitives, and then I finished with terrain molding, I removed extra elements of the basic shapes that mimicked the shape of the terrain.
Then I picked out a few suitable materials at Quixel Bridge that I could use as Landscape materials in my scene and started setting it up. The method I used to create Landscape material was introduced in the CGMA Organic World Building course, but other than that, information on the correct settings configuration of Landscape material is also available in Unreal Engine Documentation.
In setting up Landscape for my scene, I used seven different materials that I chose on Quixel Bridge. The image below is an example of how I configured Landscape material for my scene:
For each of the materials, I used textures Albedo, Displacement, and Normal Maps. I added the ability to change the tiling for each of them separately and configured the right blend to make them look organic when drawing on terrain.
When I finished setting up Landscape material, I assigned it to a terrain that I had previously prepared and sculpted in UE. Partly comparing with the concept art and following the logic of how grass grows in nature, I had previously sketched out the overall painting of the terrain. Because of this, I divided and marked for myself where the grass, the line of the shore, the paths, and the water surface will be.
A little advice from personal experience, when you start to paint terrain, determine for yourself different types of textures that will support certain surfaces. If you plan to plant grass in some area and through it will lead a trodden path – logically, the texture and structure of the surface of such terrain will be different.
This rule is constantly working in nature, and if you pay attention to it – you can notice such a pattern everywhere. The basic logic is that the texture of the surface of the terrain corresponds logically to what will be on it. The principle of consistency is something that should always be adhered to when working on game levels, whether terrain or any other elements.
This advice also works because, apart from making it easier for you as an artist, if you are working on a game project (rather than a personal one), such a separation helps players to better navigate the places because these things that are obvious and familiar to each of us, working on a subconscious level. In addition, the player will not have the feeling of a lack of logic (such as growing thick grass made of stones and so on. Certainly, this also happens in nature, but it is much less common, so it can cause some dissonance).
After the main blockout is created and Landscape is prepared, we can move on to create 3D assets.
The Asset Creation Process
So we came to the point where it was time to create 3D assets for the prepared scene. I combined some stages, and I started doing 3D before I did and configured Landscape, and I continued to do it almost until the last week before I finished the location. The fact is that the production of assets is the longest and most time-consuming process in all work.
"Where to start?" "How to understand what kind of assets should be done?" These or similar questions arise immediately when it is necessary to start modeling assets. First of all, it is necessary to export your scene blockout from Unreal Engine to Maya, or other similar tools that can be used to create 3D models. This should be done to understand the size of future models, compare them with the size of the character (to make the models look believable), and prepare the necessary models based on the "list" of assets that will be needed.
Perhaps those who have long worked with UE know how it works, but I will share my steps for exporting models to Maya. It might be good for someone.
- To begin, I highlight in the scene my figures from which the block-out is assembled. (you need to follow to highlight without Sky-sphere because in a 3D program it will occupy a lot of space).
- After that, I select the button "Convert Actors To Static Mesh" and save this object under a convenient name in the project folder in which I can easily find it.
- Then, I find the necessary object where I saved it, and I will export it in FBX format, which will be convenient to work in Maya.
After the assembled blockout file is exported, you can start working with it in Maya. When I created the scene in Maya and uploaded the FBX file with the blockout, I also downloaded a 3D character model in order to be able to match the size of assets to the size of a character to make the assets believable.
After the scene is prepared, it is necessary to analyze all of the components and elements of architecture that will be in the final scene and evaluate which elements will be repeated and which will be unique. As a result of this assessment, prepare an indicative list of elements from which your scene will then be assembled in Unreal Engine. How do I do this? I open both the concept reference and the blockout scene and first try to find the elements that repeat themselves, such as columns, fence parts, steps, wall elements, roofs, handrails, and so on. After I find unique elements, I need to mark them. As a rule, I immediately copy these pieces from the main blockout and move them to the side to understand the estimated number of these elements.
When a rough plan of elements that will be repeated and unique elements are ready, and the size of future assets are matched with the 3D model, we can begin to break down into modules large parts of buildings.
When you choose a texture set (2k, 4k, etc.) and how you will connect elements of structures, you should divide architecture into modules so that one part of the module lay on exactly one UV set. This is necessary to ensure that there are no texture seams when the individual elements are connected unless additional beams and etc. are added between them. Therefore, when dividing one large object into separate, you need to divide it so that it is such a size, which will lie perfectly in one UV set, and then connect perfectly.
The image below is an example of how visual evaluation of a scene can draw parallels and draw attention to repetitive elements.
Here's a picture that describes a specific case and how I implemented these modules to create the wall:
Step 1: By checking the concept we understand that in the top part of the fence we have two elements that will be repeated, the decorative part of the top of the fence, which will be repeated on the main part of the fence a certain number of times and the main part of the fence, which will have its decorative elements, and it will collect the whole fence in the scene.
We understand that to prepare this particular module of the fence we need to prepare two details. Detail number two is the main part of the fence, we make it unique, and also separately make detail number one because it acts as a decorative element, and will be repeated on each main part seven times. I made one variation of part number one because it’s a small enough element, and I decided that the extra uniqueness of the fence would be extra decals after I put it on the scene. Of course, you can make more options for the part of a fence, one of them makes it, for example, damaged and so on. But in this case, it will be necessary to assemble several variants of the fence module, as if you leave only one option, and in it, one of the decorative elements will be very different visually – this will be visible to the player. When we create assets, we need to pay attention to this and try not to make some very expressive elements on the parts of the structures that will rhythmically and often repeat in the scene.
Step 2: Before importing this fence module I repeated detail one as many times as needed to close the entire top and to make the fence module look like a concept.
Step 3: I showed the example in Maya but did the same in Unreal, then from the ready-made modules assembled an all-fence.
Following the same principle, I continued to analyze the whole scene and maximally smashed into modules all repetitive elements such as walls in towers, railings, windows, columns, roofs, decorative elements, etc.
For example, I looked at each of the towers separately and analyzed which components it consists of, for example:
- This element consists of several repeating parts, for example, columns, and arches under the roof.
Columns (4 pieces) and other repetitive elements are identical with the same details in this architectural element, it makes no sense to model 4 separate columns, so I made 1, adding the minimum distinguishing elements at modeling and texturing. And then when I put these pieces of architecture together, I rotate columns, so that they wouldn’t look identical. In addition, during the stage assembling phase in Unreal Engine, I added additional detail and uniqueness of such elements at the expense of decals.
- Repeating columns and pillars, railings, etc. Like the first example, I made one version of the column, railing, and pillar, which then turned a little into the assembly of this part of the architectural design.
- Repeating columns, intercommunication partitions, walls, etc.
- Repeating decorative elements, windows, walls, etc.
I went on to analyze the scene according to this rule, broke the whole scene down, and then got a rough idea of the assets that I ended up doing. In the image below are the elements made in Maya. Then, I made the assets and continued working with them using these elements.
To simplify and speed up my work, I tried to create a low poly element that repeats itself, then did a UV set for it, then the high poly model, and then, when I was ready to bake texture maps, I assembled a large complex in Maya from individual modules. Then I exported it already merged (united) elements to Unreal Engine and assigned them the necessary materials.
I did it because it was more convenient for me. Similarly, you can export small parts separately, and assemble the architectural elements from them in UE, it’s a matter of convenience and who likes them. Besides, I already knew what my scene would look like in the finale because I used the concept and I could assemble the parts that I needed in Maya.
If you want to do something more versatile, or you do not have a final concept on which you focus, then it makes sense to export many separate elements to the Unreal Engine, as it will add more capabilities and variability during the assembly of buildings.
When preparing the assets, I used this pipeline:
- Create a low poly model, then make it a current and correct UV for it;
- Create a high poly model based on low poly (addition of extra geometry, the addition of bevels to corners), on some details adding extra detail in ZBrush;
- Bake Normal Map in Marmoset and export this map for further use in texturing;
- Import low poly model and baked Normal Map to Substance 3D Painter for texturing;
- Texturing in Substance 3D Painter, baking other maps, and exporting them in the format for use in UE;
- Export of finished models with finished texture maps to Unreal, creation materials in the engine and they're assigned to 3D models.
During the production of assets, I also got to know new terms such as tiles and trims. If we talk about trims, in my case I did not use them, as there were no such elements in the location where this technology would be useful. Tiles are convenient to use on parts of large size, which can not be divided into parts or are impossible because of their size. If they are textured uniquely in Substance 3D Painter it texel will be quite small and it will be noticeable to the naked eye.
The image below is an example of the implementation of a tile on a large part of the wall, which has a width of 9m and a height of 23m.
I unfolded this detail on 4k texture (4096x4096). How can you see the boundaries of detail go far beyond the square for the UV layout, but that’s no reason to worry. That is the meaning of the Tile method. Because of such a UV, we get about 1k texture per 1 meter of detail (since 9 meters of width lie in width on 2 square 4096, we get 8192 pixels on 9 meters. And when we divide, we get 910 pixels per meter, which is almost 1k of texture per meter. This suits us, and thanks to its size, the texture will not look low, and the asset will look organic near other assets.
The main point when using tiles is that such assets are not textured in programs for texturing. You need to export the finished asset with UV into Unreal Engine and there to create a basic tile material (which will be similar to what you will use to texture other details) and this material is assigned to an asset. In my project, I used this method on almost all the details of the walls.
Back to the creation of the high poly model. For almost every model I created a high poly version, except for the walls on which I used Tile. The reason I did this was to make the models look more interesting and realistic in the UE scene. As for simple models, I increased the number of polygons on them. In addition, to add more detail, I detailed most of the models in ZBrush, adding their extra scuff, chipping, a surface that will imitate stone, etc.
Once the high poly model is ready, I bake a Normal Map in Marmoset Toolbag. It can be done in Maya or other software, but I prefer Marmoset because there is a very simple and clear interface, and baking maps happens faster than in Maya.
In Marmoset, to prepare a model for the baking Normal Map, you need to take several steps:
- Bring your Low-poly and High-poly models into the open scene of the Marmoset Toolbag (they must have match Pivot, otherwise, the baking will not work correctly). Find a button with an image like bread and the name "Baker". Press it. Then a folder named Baker 1 will appear in the scene hierarchy on the left side, and inside it will be 2 subfolders (Low and High). We need to put the low poly model in a folder "Low".
- And the high poly model into a folder "High".
After that, you can start baking:
- Select the Baker 1 folder and open the settings at the bottom.
- Choose which texture map to bake (I have chosen only Normal Map since I bake other cards in Substance 3D Painter). At this point, select the texture resolution, and in the settings mark the check box – Flip Y (for UE).
- Select the place and name under which the baked map will be saved.
- Press the button "Bake". After some time we get baked maps. Something like the one on the right in the picture above. (This map is added as an example, in the scene, in addition to the window detail on this Normal Map baked several other assets for a more optimal layout and use of free space on UV).
If you have to bake several assets for one UV (as in the case of this window in my scene), then you also add to the Marmoset scene and other assets, which you have previously layout in Maya on the same UV. For each new asset, you will need to create a new folder "Baker", as for the correct baking Normal Map assets that are baked mustn't overlap. Individual folders "Baker" work as separate systems, that is, if the files intersect in a scene, but are in different folders "Baker", then there should be no problems with the baking.
In addition, for the correct baking of several assets on one UV, you must first assign them the same material in Maya.
When the asset preparation is complete, all Normal Maps are baked, now you can start texturing the assets.
Texturing the Assets
When I started working on the project, I immediately wanted to make materials for the location because I love Substance 3D Designer very much. So I decided to make the Old Plaster material.
This is a fairly simple material and it took only a couple of hours to create. This material should be versatile and not attract undue attention, as well as not have any very bright and noticeable details that will stand out and give out tailing of material on finished objects.
As a reference, I took the old whitewash (plaster) material, with minimal cracks, and tried to repeat something similar in Designer. The picture at the bottom is my graph and material.
To use the Substance 3D Designer in Substance 3D Painter and to be able to modify its appearance, it is necessary to expose the necessary values before loading it into the Painter. In this material I have exposed only two indicators – these are both colors that are used when mixing, to create a color base. After that, I save my graph in the .sbsar format. And now it is ready for further use in Substance 3D Painter.
For the location, I prepared only one material. Why? Because more materials were not used. Since I was making architecture and its elements, but not making vegetation, I got the variability of color material for architecture by simply changing colors in Painter. So I got different shades of the main color, light colors for the domes, and so on.
After the material was finished, prepared, and uploaded to Substance 3D Painter I started texturing assets. As I wrote earlier, I pre-baked the Normal Maps in Marmoset Toolbag, and so before I textured objects, I separately downloaded the Normal Map for it and continued texturing. For my convenience, and to speed up the texturing process of assets, which did not require additional fine detail through texturing, I saved my customized material as Smart Material. Because of this, I just assign finished material on the downloadable assets and just tweaked some nuances. This is very convenient and speeds up the process.
How did I do it? Here's a short tutorial for those who might benefit:
- When you have finished texturing some assets (or several, as I have them on the same UV), you should save all your settings and manipulations to a folder. I do it right away because it’s more comfortable for me. Regarding saving Smart Material, it is better to keep such settings where one solid color prevails, as when you texture assets, you focus on their UV, and if you save such material, and then apply it to another object, the material will not work properly (as different 3D models – different UV). So if there are several colors in Smart Material and they look good on one model, then on the other – they will necessarily shift and look bad.
- You need to collapse the folder, press RCL, and select Create Smart Material in the drop-down menu.
- After you click it, you will create a Smart Material with the same name as your folder in which you saved all the settings. Smart Material is now ready and can be assigned to other models.
After I have finished texturing the assets and I am satisfied with the final result, it is necessary to bake all the missing cards. At this stage, there is only Normal Map, and I turn it off when baking other maps.
- Switch to texture maps baking mode.
- In the drop-down window mark which textures to bake (I left everything except Normal Maps) and also chose the resolution for texture (4096 or 2048). Then we bake the textures, and after a while, they will be ready.
- After that, you must export textures for use in Unreal Engine.
- In the resulting window choose the path where the textures will be saved, choose the format for UE (this is very important if we export the textures for Unreal), and export them.
You should follow the same rule I talk about above when you texture assets. Namely, do not add bright accents on the assets, which will be used repeatedly and several pieces at once. Because the presence of these accents will attract a lot of attention, the player will immediately notice that these assets are the same and repeated on a game level. The main diversity in this case is achieved by adding decals directly on the stage.
As far as I’m concerned, Substance 3D tools are very user-friendly and offer a lot of possibilities for creating materials and texturing them. The big advantage is that Adobe Substance Source has a large library in which you can download materials after purchasing a subscription. This is very convenient because if you do not know or do not want to spend time on creating materials, with this resource you can find almost any material and then use them in your work.
Assembling the Scene
As I said, I assembled the scene and filled it with assets when the assets were ready. Almost all the processes were in parallel. Except for lighting and adding FX, this I did in the last stage when all the models and vegetation were in the scene.
In the GIF below you can see how I added the assets as they grew, adding vegetation, water, etc. in the process:
Vegetation is an important element in the overall composition and transmission of the atmosphere of the location. Therefore, it is necessary to treat its selection responsibly. When choosing vegetation for the scene, I was guided primarily by the original concept image, as I wanted to convey a similar mood.
Later, I decided to add a little more vegetation on the fences, and the towers themselves, as in my interpretation of the Pengzhen Zhang concept it looked more organic. All the vegetation I chose on Quixel Bridge I exported directly to Unreal Engine and then used.
If we talk generally about the creation of layouts of vegetation and what rules to follow when choosing them, I usually follow several points. Of course, it may seem to someone that this information is not new and obvious, but it may be useful to someone and they may learn something new.
These moments are:
- area analysis (biome and biome climate);
- analysis of the time and weather interval that corresponds to the scene;
- how is this area inhabited? How old is it?
An example of a few pictures from Google that visually describe what I mean:
When analyzing the biome and its climate, attention should be paid to the following points – what is the territory? Is it a forest, a desert, a steppe, mountains, etc? Depending on the answer, there are some limitations on which vegetation can be used. Since it is logical that in the desert and jungle vegetation will be different. What is the climate in this area? Dry, humid, windy, etc. This also adds an extra point to the vegetation selection logic. It is important if you design a scene that repeats some real place – it will be useful to study the references for vegetation that is in this place.
The weather and the season are also important. Because in winter, the grass will be under the snow, thin, and almost invisible, and in spring – succulent, thick, and green.
And the last thing that matters is the extent to which the area is inhabited. If you understand that you design a scene where people have not lived for a long time, it is logical that there will be more vegetation and it will be possible to increase the number of ivy plants in places where people do not walk.
So, by doing this basic analysis, you immediately get a rough list of vegetation that is logical to meet in some place in nature, and accordingly, they will look organically on your location. These rules work well if you create a location in realism and not from the fantasy world, as in the opposite case – vegetation in the fantasy world – can be almost anything.
In addition, it is better not to use a lot of different species of vegetation (10-15 and more). As a rule, a specific area differs from the other in that it grows other plants, and thanks to these layouts, players can also use them as landmarks. As for me, most organically will look at several types of grass and bushes, flowers, very good if these grass and plants will be of different heights, some of them will be voluminous – it will all create vividness and plausibility in the vegetation in your location. After that, you choose the main grass and plant on its layout, and the rest of the plants, bushes, etc. – you already set the accents that will make the layout more organic.
In the Unreal Engine scene, I added water as a Blueprint because in this form the water looks more plausible and organic. It also gives you a lot of opportunities to customize it the way you would be suited to the scene. I took the already finished Blueprint water in one of the scenes from the Unreal Engine Marketplace and just tuned it. I changed the color of the water and the number of waves and made it more like the water in the lake.
In addition, I added Wetness Decal to make the terrane under water a little wet and it looked more plausible. To create a decal I used a way that is well revealed in this video tutorial by Ben Cloward:
Lighting and Rendering
When I started setting up the lighting I first chose a suitable Sky sphere, which I also took in one of the scenes from the UE Marketplace. After I added it to the stage and changed it a little bit in size and color settings to make it look seems like an image on the concept, I started further configuring the light.
To begin with, I added a Directional Light, chose the necessary angle of rotation to make the shadows fall, as I need to, then experimented with Intensity and Light Color, and found the optimal value that conveyed the desired atmosphere and looked like I had expected.
In addition, to achieve the desired result on shadows and lighting, I decided to use 2 Directional Lights which combined gave the result I had originally received but added a little more variability in color and shades. The angle of inclination is almost identical, but the color in one of them is warmer, which added a more pleasant mix.
Also, I added additional light sources, such as Point Light and Rect Light, in the places on the scene where I wanted to highlight were needed to get the desired result. The GIF below is an example of how the overall image and mood in the scene changed after I added all the additional light sources. Thanks to these additional light sources, I put light accents in the right places, added glare on the water, and highlighted some places in the architecture.
In addition to extra light sources to match the scene concept, it was necessary to add objects that would give shadow in the right places to make it look believable and realistic. This effect was achieved by adding basic shapes (I just added a few spheres before the scene and cameras (in the invisible zone) and placed them so that they cast the shadow in the desired places (move them and check with the configured angle)).
Fog has a special influence on the atmosphere in the scene. I added three kinds of fog in the scene: AtmosphericFog, ExponentialHeightFog, and fog point FX, which were placed in some places to create additional depth in the final picture.
In the example below you can see how the addition of each type of fog affects the extra volume and depth, as well as the overall atmosphere of the scene.
- AtmosphericFog – adds volume and smoke far away from the scene in the background. The distant mountains are submerged in a small haze with a bluish hue, and it feels like they are more distant than they really are.
- ExponentialHeightFog – works with the near part of the scene, and adds fog to it, making it more volume and deeper.
- Spot FX with fog and clouds – add to the necessary places light haze or thicker mist fog (clouds) that also works on the general atmosphere and adds volume.
There is also another useful and interesting feature that can be found in the final configuration of Post Process Volume. I use it if I want to more accurately control the overall mood and colors in the scene. This feature is the addition of LUT_texture to PostProcessVolume settings. It is very convenient that you pre-configure in Photoshop LUT_texture, and after you save it and unload it get the color settings you need right in the engine. Here's a useful piece of UE documentation regarding the matter.
In the screenshots above is a short instruction on how I used LUT_texture:
1 and 2. In Photoshop, I uploaded a screenshot of my scene for which I want to apply more detailed lighting settings and separately LUT_texture, which can be downloaded in the aforementioned documentation. Then, I copied screens of the scenes and the LUT_texture separately as a new layer and combined them. And the ones that were separated below, I just hid them. After that, I did all the necessary manipulations with the image color setting, and imported separately LUT_texture, save it with a new name, then import it into Unreal Engine.
3. When I added LUT_texture to UE, it must be properly configured to work. In the Mip Gen field, select Settings NoMipmaps.
4. In the Texture Group field select ColorLookupTable. Save the texture.
5. In the content browser, after the correct setting, it should look like this.
6. In the PostProcessVolume settings, find the Color Grading field, tick the check box Color Grading LUT, and connect our LUT_texture there.
Once the renderer and lighting settings are completed, choose a good camera angle to make some screenshots for the portfolio. In the case of such large-scale scenes, it is important to choose the right Current Focal Length in the camera settings, so that the final image looks believable, and feel its size and greatness.
In my case, it was easier to choose a view, because I was guided by the original concept art, and initially before the start of all work, even at the stage of blockout, I put the necessary camera angle and it did not change.
When I started this work, I didn’t finally understand how long it would take because it was the first work of such magnitude and with so many 3D models. I started doing it when I started my course at Smirnov School and I worked on it for about three months. During this time, I managed to prepare all the assets, assemble the scene, plant the vegetation and arrange a background. After that, due to circumstances, I took a pause that lasted more than six months, and then I spent about a week finishing the lighting and getting the final result.
For me, the main difficulty and the most laborious part was precisely the production of 3D assets, since at first, I made them rather slowly, but with each next assembly speed increased, and by the end, I could make 3-5 small assets per day.
It was also easier to work because I found a finished original concept that I chose for my location, and I didn’t have to come up with it from scratch. By the way, Level Artists and Environment Artists in many companies can work with finished concepts of Concept Artists who work in their company. In the same way, they can themselves be the authors of the idea of the whole scene, inventing both history and general composition.
Everyone who wants to join the work of the Level Artist or Environment Artist I want to say – that it is very important that you like this work, because sometimes there may be difficulties, not everything can be achieved on the first try, but it is important not to give up and go ahead. Only your efforts, the constant development of yourself as a specialist, your understanding of the basic logic of the world order, and quality feedback will help you to achieve success. In addition, it is useful to play games, watch the works of other artists, be inspired by them, to learn to use new tools, as it will all open up more opportunities for you.
And in the end, I would like to thank Sergei Panin – mentor of the Smirnov School's "Game Location in the Unreal Engine" course, Anton Ageev – mentor of the "Texture Trip" course at XYZ School, Victoria Zavhorodnia – my close friend who is always here to support me, and my husband Oleg for honest feedback.
I want to wish everyone good luck, inspiration in their work, and the peaceful sky above our heads!
This content is brought to you by 80 Level in collaboration with Unreal Engine. We strive to highlight the best stories in the game dev and art industries. You can read more Unreal Engine interviews with developers here.