Sophie Almecija shared the working process behind the stylized fishing net material, explained the workflow in Substance 3D Designer and Painter, and shared some tips for aspiring artists.
Hello everyone, my name is Sophie Almecija, I’m a junior 3D artist in the video game industry.
I’ve always been drawn to the world of video games. If I had to name a game that motivated me to make it my profession, I would choose Unreal Tournament 3 without hesitation.
I am passionate about stylized 3D and especially 3D sculpting in ZBrush. One of my major influences remains the Blizzard style. However, when I started sculpting in ZBrush, I drew inspiration from many other games, like Borderlands, Crash Bandicoot, Overwatch, and Fortnite. But my main reference in terms of 3D is Michael Vicente’s work on Heroes Of The Storm.
After completing a six-month internship at Ubisoft last year, I returned to a French video game school to specialize in Environment Art. I have a lot of ambition, and my goal in the coming years is to acquire the maximum skills in production so that I can become a lead artist. I would like to carry out large projects and manage a production team. In fact, I am already looking for my first job in 2023.
The Stylized Fishing Net Material
When I started 3D, I realized that students were very rarely taught how to design tileable textures although this is one of the essential basics in video game creation. By the time I finished my first 3D school, I hadn't been trained in that at all.
You should know that there are many ways to design textures. Most professionals use Substance 3D Designer. However, as many people know, it is a rather complex software that can take several years of handling if you want to be fast and efficient in creating textures.
It’s been three years since I started experimenting with a rather special texture design workflow that combines ZBrush and Substance 3D Designer, which is the result of research and experimentation. I still continue to develop this technique throughout my projects
Initially, I wanted to do a material marathon. In this kind of exercise, we often see the same things. I’m personally attached to the idea of bringing novelty to this area, I thought that making a stylized fishing net material could be an interesting topic.
I had a hard time finding references that fit the idea I had in mind. But I still managed to find some in several games like Ruined King, Darksburg, and Fortnite. So I decided to design the visual of my fish in ZBrush. Each part is independent (no DynaMesh), this will allow me to define polygroups/ID.
There are many different ways to produce a texture in ZBrush. First, you need to model a mesh. Then, in this case, I use the Offset tool. This option allows you to move an object relative to the document offset. This is only applicable if you want to repeat different elements.
TIP: To sculpt a tileable texture directly (for example rock, sand, etc.), you will need to activate the “wrap mode” option on your brushes.
Thanks to this option, your elements will be repeated perfectly. In a tileable texture, the slightest shift can spoil everything. It's important to duplicate each element in this way in order to secure/block all borders of your document. The elements in the center can be placed as you wish since they do not affect the repetition of your texture.
With this document, I will be able to recover an alpha that will serve me as a height map, as well as an ID map that will correspond to the different polygroups that I previously applied on my mesh before duplicating it.
I’ll get my ID map using the polygroups of my meshes as polypaint. The material must be in a “flat” color. By clicking on texture, I can then click on “grab doc” to export the document to a PSD file. This map is very important for texturing. The same manipulation must be done to recover the height map by clicking on the “alpha” icon above.
It is very important to think about the different parts of your texture. Mine is composed of 3 parts (fish, ropes, knots), I decided to retrieve maps independently of each other in order to manage their blending directly in Substance 3D Designer.
TIP: Note that it’s also possible to recover the alpha of a single element in ZBrush (for example a brick) and then repeat it in Substance 3D Designer with a tile generator, for instance.
Once in Substance 3D Designer, I just import the alphas. Thanks to these, we will be able to generate the main maps we need for a texture: normal, curvature, and ambient occlusion maps. With ZBrush alpha, I generate a normal map with the Height to Normal node. Then I can convert this normal map to curvature with the Curvature Sobel node. The ambient occlusion is created directly from the height with the Ambient Occlusion (HBAO) node.
Personally, I like to place blurs regularly during the transformations of my maps.
TIP: It is also possible to modify each map by means of control nodes such as Levels, Blends, or Histograms.
I’ve been working on more complex textures lately, but this technique to design textures is very simple and allows me to achieve very good results very quickly.
For the texturing, two choices are possible. You can texture your material directly into Substance 3D Designer or import your maps into your favorite texturing software.
The ID map will allow you to choose which element of your texture you want to apply a color or a fill layer to. In Substance 3D Painter it’s the bitmap mask that allows selecting one or more elements according to an ID map color. I have developed my own stylized smart material, which allows me to achieve a concrete result very quickly.
TIP: Many possibilities are open to you if you have time to texturize directly in Designer. After this step, you can set some parts of your texture and export an SBSAR file. This will allow you to adjust some parameters of your texture directly from Substance Painter (for example, a random scale, the display of a particular element, etc.) and even directly in Unreal Engine.
There are many different ways to use or vary this technique. For me, it has been very useful for art tests when I needed to create quality materials in a very short time. Going through ZBrush allows you to design an element and extract an alpha/height map from it at any angle. This method also saves time in Substance 3D Designer by importing the alpha of one element at once.
I think it would be interesting to develop a plugin that would allow you to import/preview a mesh (mid or high poly) in order to be able to rotate around the object and produce an alpha regardless of the angle. In my opinion, this could save time in the context of video game production but also develop the software’s capabilities.
I find this technique very accessible at all levels – it can be initiated by Substance 3D Designer very easily. It’s a subject we don’t talk about much. I hope that this will motivate other artists to learn about Substance 3D Designer and juniors to get their first jobs.
You may find these articles interesting