Eugenio Galdeano shared the workflow behind the Wizard's Library project, showed the process of creating the assets, and discussed the techniques used to give more life to objects.
Hello everyone! My name is Eugenio Galdeano and I'm currently looking for a job in the game industry. I have more than 10 years of experience as a 3D artist and I have worked in sectors such as Animation and Broadcast. I have just finished a long project called the Wizard's Library.
I have been able to grow as a 3D artist over the years thanks to having been in different jobs in different industries. In Animation, I learned the principles that help to create points of interest in a plane, in the Layout department, they worry about creating the 3D scene from a storyboard; in this process, you not only animate the camera but also have to worry that the environment looks great throughout the animation.
I was also able to work as a lighting artist, learning color theory, light balance in the scene, and how to work with sequences. You get to learn how to give atmosphere to an environment with light, create an intention and help the story develop better.
What I love about 3D is the unlimited creativity it offers you, you can find your niche modeling, doing VFX, or animating a character. In my case, what I like the most is to create environments, give them life through a story, and enjoy the process of creation.
The Wizard's Library Project
For this environment, I used all my knowledge in layout and lighting obtained in the Animation sector, I was inspired by a saga of games that I like a lot – Divinity: Original Sin 1 and 2 – and with the idea of learning and improving techniques, I started to work on it.
During the production, I took a couple of months in The Mentor Coalition with Mak Malovic, with him, I could learn a lot of things and thanks to his guidance, I could grow as an artist and improve a lot the environment. Thanks, Mak, without you it would not have been the same.
I came to this environment with the idea of mixing different techniques used in games, improving my workflow, and above all, having a better portfolio to help me find a good job.
As I have told you, it was a long project, 7 months in total, but it was in the last 4 months that I was able to reach a good speed.
As the environment was designed to learn and improve techniques and workflow, it has a bit of everything: at the beginning of the project, I repeated textures such as the stone wall several times. The blockout was changing as the project progressed, something I did to improve it, but it is not the best for the project.
When I thought about what the environment could be, I liked the idea of a diorama, because you can create a small environment that tells a story with a lot of detail and full of quality.
Being a great lover of western RPGs, and as my dream is to end up in a studio like Larian, I focused on creating an environment that could be in a game created by them. I found inspiration in concept art by Natcha Ngamtweerat, I liked it at first sight, it was everything I was looking for to create a great diorama.
The idea of working with someone else's concept art is very interesting, it's closer to how you work in a studio, with a team. You start with a great concept and try to put your part in the process so that together you can create something better and bigger.
Blockout and Storytelling
In the beginning, I started working on the blockout without taking into account everything that could change, it was thanks to Mak that I could see all that a good environment artist can do to put his part in concept art.
The space was not adequate to be playable, and the height needed to be changed so that you could play with the classic 55-degree western RPG camera, but without forgetting that current games allow bringing the camera closer to the character. I enlarged the playable space, eliminated props that only added noise to the scene, and changed straight lines for curves to make the environment more attractive. The result was much better and gave me the correct direction to follow.
With this idea in my mind, I changed the room to a tower, and along with this, a story for the environment started to come to me. With a story everything is much easier, you can imagine how the wizard arrived at the tower and why it looks abandoned: the wizard is working on something he doesn't want anyone to know, far away from everyone. He is working on something important but dangerous and needs concentration, he doesn't care that the roof may have holes in it as long as he has a place to put his table and work quietly. But this loneliness will turn against him when his investigations attract the attention of a powerful demon from another plane, this demon will not be happy with the wizard's research and, taking advantage of a portal that the wizard has in his tower, it will appear and take the wizard back to his demonic plane by force.
With images like this in your head, you can think much better and more easily in the environment, in the state of the tower, in that a wizard concentrating on his studies will not go up to the roof to fix some leaks, he will need something like a portal to be able to go to and return from his library, and this portal can be the gateway for others.
For the blockout, I usually work in Maya and export it to Unreal Engine. It is important to have a character in the scene that gives scale to the environment you are creating; in my case, I exported the UE mannequin and used it in Maya. Do not forget that the dimensions of the structure must be real, for example, the staircase started with a height of 20 cm per step, and in the end, I had to enlarge that height to reach the second floor, but it is still a step that an adult person could use. These kinds of measurements are very important to give credibility to an environment, without them it would be unrealistic.
When you have it in UE, you can "play" it and see the feeling you have, in my case, I found it perfect to be an abandoned tower in which a wizard has put his library.
While building the blockout, I thought of all the elements that could be modular and could be reused in different ways. The staircase, wall, wood, floor, ceiling, and even bookshelves are created with tileable textures and a wood trim sheet, I also decided to create unique textured wooden beams to reuse under the second floor and on the walls.
At this point, it is necessary to organize the scene in order to make a list of tasks, one of the most important artistic principles is to start with the general to move towards the details, from large to small. In my case, I started planning the objects that would use tileable textures, a wood trim sheet, and everything that could be modular.
I start with the stone walls, for which I use ZBrush and Substance 3D Painter. I start sculpting 3 or 4 rocks on all sides, without worrying too much about the details as this is a phase in which you look for shape and silhouette. I create a plane inside ZBrush, which later will help me to bake all the sculpting information, and distribute the 4 rocks all over the plane.
I then finish sculpting and shaping all the rocks; it is good to use brushes with alphas, they can help you to give realism to the rock but do not forget to give rest to all those details, a good tip for this is the 70-30 rule, which helps you to distribute the details of anything (prop, environment, etc.) in a very natural way and without overloading details.
It is necessary to remember that the ends of the plane must tile for it is necessary to place the same stone on both sides, up and down, left and right. The best for this is to duplicate the rock, and in the Deformation submenu you can find Offset, which will help you to distribute in X and Y in the exact same position but at 100 units in ZBrush.
For the mortar that joins the rocks, I duplicate the original plane and scale it a little, then I go to the Brush menu and look for Curve. Here, inside I use WrapMode in 1, this way whatever I do on one end of the plane will be repeated in the opposite and will avoid problems with the repetition in the bake phase.
For the creation of the wooden trim sheet, the first thing is to think about what you are going to use it for; in my case, the original idea was to use it for the stairs, bookshelves, alchemic furniture, table, chair, etc.
I have to admit that I made the first organization of the wooden trim sheet not quite right, in the end, after using the texture in the different props, I realized that there were parts that did not work as I had imagined and I had to discard them. I thought about repeating the trim sheet to eliminate the parts that I did not use, but in this case, I thought that I had some dates to meet and if I repeated the whole trim sheet, I would be very late. So I decided to go ahead to continue with the project.
For the rest of the scene, I divide the props into 3 categories: modular, basic, and heroes.
The modular ones are all those that although they are props with unique textures that I can use on several occasions, in the case of the library the wooden columns that support the floor of the second floor and the wooden columns that help in the structure of the tower are modular. There are also wooden boxes, books, and bottles for alchemy, but I will talk about these later.
Whether it is a modular or basic prop, I start modeling it in Maya, creating a basic mesh in Sub-D, then I smooth the mesh before exporting it to ZBrush, not forgetting to save an unsmoothed version to use it later to create the low poly version.
In ZBrush, I work the mesh to create imperfections and wear as they are modular or basic props I try not to spend much time on them to go fast, there are always exceptions where you see that a little more effort can give a great result. In these cases, the previously saved low poly version will need some extra work, but it won't be too much effort either.
The next step will be to unwrap the low poly version, which I usually do in Maya, and then I duplicate this object to create a bake version so I can increase the divisions where necessary to avoid future problems. To make the bake, I use Marmoset Toolbag, it has a great tool that allows you to fix the cage in concrete places live, it is formidable.
As a tip when doing the process, start at low resolutions as usual but also do it with only the Normal and Ambient Occlusion maps, many of the errors that may appear during the baking process will be shown in these two maps and will be easy to fix. When everything is correct, you can upload to double the resolution of the final texture and export all the maps.
Finally, I pass everything to Substance 3D Painter, where I work on the final texture of the prop. A good tip is to pass a previous version of the prop texture to Unreal Engine, which is where you will see it at the end of it all. If you want to be able to see it in Substance 3D Painter like in Unreal Engine, there is a tutorial by the great William Faucher to be able to do this thanks to the ACES images of Brian Leleux.
Going back to the hero prop, the difference in my process is mostly artistic: I create a previous version in Maya and export it to ZBrush, but this time I am not careful with the mesh, what I am looking for is creativity and let fly my sculpting a great piece. I will solve all the problems that may happen when the time comes, I think it is important to put the artistic part above time and problems on some occasions, a hero prop is one of those occasions.
Since I can't reuse the original Maya mesh, there will be some retopology work, which I also do in Maya if it's something simple or, depending on the type of object, I can start by decimating it in ZBrush and then fix and improve this mesh in Maya. The rest of the process is the same as for other props.
There are several techniques that I used in this environment, I am going to talk about some of them.
First of all, I usually work in Unreal Engine creating master materials thinking that later I will create instances of them many times.
I will begin with Vertex Paint to give more life to an object with tileable textures or trim sheets, you can paint the vertices in red, green, and blue. Vertex Paint works in such a way that the colors are layers that overlap, the base is red, on top is green and finally, you can find the blue. If the red was our base texture, the green could be a lighter or worn texture, with damages even, and the blue could be darker and dirty parts of the texture.
You can prepare these colors in Maya and use them later in Unreal Engine by importing them into the engine, it is easier to select vertex loops in Maya than in UE, so for the stairs, roof timbers, tiles, etc., I decided to do it in Maya.
Later in Unreal Engine, you create a shader that takes advantage of all this information to be able to give different textures in the same object. You can create the shader with only the textures for the red, the green part you could lighten and the blue part – darken, this would be a lighter and simpler shader. In my case, I created a different set of textures for each color: red for the base, green for a more damaged and lighter texture, and blue for the darker and dirtier part. The result in UE is wonderful, generating objects with a lot of contrast and life with a single material. Of course, once in UE, you can use the brush to adjust and change color vertices.
Using Vertex Paint is how I could create the texture of the stone walls and the floor, but in this case, I created two new master materials, one for the floor with parallax occlusion to give the feeling of displacement and shadows, and for the walls, I used Bump and took advantage of the height map and a texture to make the Vertex Paint more natural and varied, first filling the gap between the rocks and finally the rocks themselves.
Another technique used in this project is blending two textures with a second UV map, this is how I was able to give more life to the bookshelves and the alchemy furniture. It consists in Maya creating two UVs maps, one to use with a tileable texture or a trim sheet, and the second one prepared to bake it and take advantage of this in Substance 3D Painter and create masks to be used later in Unreal Engine. I was able to learn this from the great Dylan Abernethy in this tutorial, where he explains it in much more detail than I did.
At this point, I can already talk about the books, boxes, scrolls, and alchemy bottles. With them, I used two types of techniques to give variety with only a few props.
Let's talk about Object Position, it's a node in Unreal Engine that gives you information about the position of the object, thanks to this information we can give a variety of colors depending on where the object is using its UVs and an image. The image can be as small as 10x10 pixels or even smaller, in it we create a range of colors for our object.
On the other hand, there is also the Object Radius node, which gives you the radius of the object in EU units for each object that has this material, if you scale the object and make it smaller or larger, the radius changes. With this information and a tileable texture, you can use it in your UVs so that if an object is scaled, its texture adapts to the new size and does not lose quality.
With this in mind and focusing on books, I could create some books that change color depending on where they are and their leather texture and pages adapt to the size of it, the possibilities are unlimited. By creating 5 unique books, with 3 slots for materials in UE, I was able to fill all the bookshelves and environment with books without any effort. The third slot is for a unique texture per book that gives you details on your base color and normal map. I learned all this from master Clinton Crumpler in this tutorial.
Lighting & Details
When you have several elements in the UE, you can prepare a pre-lighting that will evolve as everything arrives at the scene. As I was using Unreal Engine 5, I decided to try Lumen for lighting and reflections, the shadows are ray-traced.
As it is a diorama, the lighting could be very free, but I wanted to focus on a type of lighting that could work in a western RPG, so I focused on 3 light sources. The main one is the light that enters through the window and roof, it is daylight and therefore it allows us to have enough light to see the entire library, without very dark areas to see the details of the environment. On the other side, we have the light coming from the fireplace and the portal, the classic color contrast between warm and cold, orange and blue are complementary colors and work very well, but in this case, I did not want them to be too strong and approach something more natural to not steal the limelight to the center of interest of the scene – the table with the magic book.
I was able to complete the scene's lighting with rim lights on the sides of the tower and parts of the floor and stairs, this way, they help separate the tower from the background and improve the silhouette. To help with the lines of interest in the scene, I used some god rays that enter through the window and go straight to the table with the book; although in the scene I use volumetric fog to give depth, in this case, I used a fog card to have more control over the result without affecting the rest of the environment.
To better tell the story of what happened in the library, I made use of decals to put blood on the table, carpet, and portal. Nothing too complicated, I was able to use some decals that you can find on Megascans that have great quality and fit perfectly with what I needed.
Lastly, I have a Post Process Volume in the UE scene with very few adjustments in it, the most remarkable is something my mentor Mak taught me – desaturate the shadows in the scene, it gives an incredible touch to the environment.
I'm happy with the final result, I could have spent more time and given it more quality, no doubt, but it is more important to finish a good project and move on to the next. For me, this is my presentation to the studios I want to work for, and I hope to find a place in the game industry with my portfolio.
Creating this project helped me to learn and improve a lot – two things that are important and constant for a 3D artist. I was able to have fun and put a lot of effort into creating this environment from the beginning to the end. I have to thank my wife for her support and my mentor, Mak Malovic. Thank you, 80 Level, for this great opportunity to make my work have more presence on the internet.
I hope you enjoyed reading the article and learned something new!
You may find these articles interesting