INTRODUCTION
Hi everyone! My name is Pavlov Timur and I am from Moscow. I have a higher financial education and for some time, 3D modeling was just a hobby for me. I love video games, movies with rich visual effects, and animation. At some point, I decided to try to change my professional activity and join those who create games. So now, I've been working as a 3D character artist for several years.
INSPIRATION
This piece is an idea that just popped into my head. It's hard to say what specifically inspired it. The image just came to me, and I started thinking about it. I found it interesting how metaphorical it could be. A large, strong character who is definitely not capable of flying, feels a strong desire for something impossible (or possible?), and what price will have to be paid for its realization. He is confused by the feeling of the closeness of the realization of his dream and the consequences of making it come true.
It remains only to decide in what form to visualize it. Since there is a certain comical/absurd situation in this plot, it seemed right to me to do it in a cartoon style.
PROCESS
References (PureRef)
The concept is only in my head. I understand for sure that the character will be an anthropomorphic bull. When creating characters, it is extremely important to rely on examples of real anatomy (even if it's stylized). Therefore, first of all, I need to find references for the body and muscles, then examples of stylized bulls. And, don’t forget that we are our own reference; you can take a photo of yourself or a friend in the desired pose from different angles and use it as a reference. By the way, that’s what I did but I don't look like John Cena, so I won’t show you my pictures. Then, I select references for the remaining elements of the composition and for facial expressions. Here are some of them:
Based on this, I decided that the main features in the silhouette of a bull would be the contrast between the thick shoulder girdle and small legs.
3D Blockout (Blender)
Actually, I divide this stage into two sub-stages: the first is the “base blockout” and the second is the “refinement of general forms.” At the base blockout sub-stage, you need to build all the basic elements of the composition from REALLY simple shapes. I used cubes and rectangles with the subdiv modifier and as for the horns, I used just a curve. Don’t be shy if you end up with something completely terrible because this is what base blockout is for—to see exactly which elements are out of place or have the wrong size. Here starts the next sub-stage, in which I correct such places one by one. I haven’t combined the character’s body into one mesh yet. This makes it easier for me to move the shapes and control their scale individually. Gradually tightening the forms, I begin to add more small elements and specify the anatomy. Of course, this is accompanied by an increase in mesh density. Here, I use not only modeling techniques but also sculpting (I use only three brushes: Grab, Crease, Smooth).
Also, at the blockout stage, you need to add a camera and periodically check what the silhouette looks like and what place it occupies in the frame. I use these settings:
To make the next stage of sculpting easier, the character is currently in a completely symmetrical pose. It's also important that the mouth is slightly open. This makes it more convenient to work with facial expressions. When I'm satisfied with the blockout I've created, I combine those objects that should be one piece into a single object (without having to worry about intersecting topology, etc.).
Sculpting (ZBrush)
After importing the model into ZBrush, I do two simple things: first, I use DynaMesh with fairly dense settings - 2048 (to maintain the shape and get rid of internal intersections); then I use ZRemesher to return the topology to squares. After that, you can smooth out and add more details to the character by controlling SDiv levels in the Geometry tab.
I don't even know what to tell you specifically about the sculpting stage. Because in fact, everything is quite simple here. The main work with the figure is done at the previous stage. Here, it remains only to smooth out too sharp corners and indentations, give a more organic shape to the surfaces, add folds of skin, and clarify protruding fat layers and muscles. In general, we look at the anatomical references and tighten the details. Brushes I use: Standard, Move, TrimDynamic, ClayBuildup, DamStandard, hPolish.
Basically, I use this approach for all elements that I'm going to detail in ZBrush. After that, you need to move the shapes a little to give the character the final pose and work on the face to create the necessary emotion. I do this by masking the desired parts, rotating and using Move and Transpose brushes to give it the right position. By the way, I don't model small things like stitches because I know I'll be adding them later during the texturing stage, and I don't need the model itself for that.
The last thing I do in Zbrush is a low poly model that I will use for texture baking and final rendering. For this, I use ZRemesher again, after which I export the high poly and low poly models in fbx format. It is possible to make a full retopology but it is too long. Besides, this is not a model for some mobile project, where you need to save every polygon. So, I didn't waste time on this. For the wings. I use a blockout model which is pretty simple and fits easily, adding some bevels to it.
Baking and Texturing (Marmoset, Substance Painter, Blender)
First, for low poly models, you need to make UVs which I did in Blender. I fit everything into 9 UDIM tiles.
As for baking textures, everything is pretty standard. Name high poly and low poly models the same, add postfix _high and _low respectively, and throw them into the software that is more convenient for you. I use Marmoset because in my opinion, the curvature map is cleaner and there are such things as «paint offset» and «paint skew» - for really low poly models this is extremely useful.
For texturing, I use Substance Painter. I throw baked maps into the corresponding slots, create groups of layers by materials, throw materials there, and play with roughness. To highlight the convex parts, I use a curvature map through color dodge. For dark areas, I use ambient occlusion maps through multiply. For stitches, I use dynamic stroke "stitches straight" which I apply by using curves.
Here, I will note that after painting stitches in the settings of their layer, it is important to change the blending mode of roughness and height. You need to switch the corresponding channels of their layer and change the blending type to replace. Otherwise, due to the mixing of these channels with the underlying denim channels, the stitches will turn into incomprehensible noise and will not be read at all. Although I will be adding fur on top of the character's body, the color of the body does matter because I will be using it for the color of the fur. In the Substance viewport, textures looks like this:
When exporting textures, Substance automatically names them correctly for subsequent work with UDIM tiles. It is important that they are all in one folder so that when using them in Blender, it is enough to pull up one texture from each channel and the rest will be pulled up automatically. You only need to specify in the texture node that it's UDIM.
Fur (Blender)
The fur was mostly made following these two tutorials:
Big thanks to SouthernShotty!
But of course, there are some differences from these tutorials, which I will try to explain.
First, make sure that the object for which the fur will be added and the fur itself are in the same Collection! Otherwise, when closing the project, you will lose a lot of necessary data and will hardly be able to restore it. In order to avoid this, first click on the Collection with the object, then on the object itself, and only then add the "Quick fur" effect.
To make the fur lie clearly on the surface of the body, I do the next:
After adding the fur, go to the edit mode of the fur object that appears, select all the curves and delete them. Disable display of generated fur modifiers. Then, switch to Sculpt mode, turn on symmetry, choose "Add" brush and one by one, we begin to add fur hairs (as you can see below, you don’t need many). Adjust the added hairs according to length and comb them in the direction we need by using "Grow/Shrink" and "Comb" brushes. We also add hair where it will later be hidden; this is necessary for the correct distribution of fur in visible areas.
Now we need to achieve an organic look of the fur. It is not distributed evenly over the surface, and it is not perfectly straight itself. I divided the fur into the following distinct types: base body coat, face coat, long coat on the beard and elbows, coat on the knees, and noisy coat sticking out in all directions. In order to separate these fur types, I assigned a separate group of vertices for each of them. To do this, add a new Vertex group, go to the Weight Paint mode, and drown in red the places where the corresponding fur type should be. Then, add a new group and do the same for each fur type. Here's what it looks like one by one:
I leave the areas that are under clothing without fur.
Now we need to set up each type of fur. To do this, I simply copy the fur mesh for each of them and in the "Interpolate Heir Curves" modifier tab in the “Density Mask” graph, I choose the needed Vertex group.
This approach allows you to maintain complete, independent control over the settings of different types of fur.
Here, I will show detailed settings of the fur modifiers using the example of base and noisy fur coats. Base body fur:
Noisy fur:
For everything else (including setting up the material), follow the above tutorials.
Scene Setup and Rendering (Blender)
The scene is quite simple—a couple of light sources on the sides, an area light on top, rim light behind, and of course, HDRi on the world background. Here, I would like to note that the rim light sometimes gives unwanted illumination on the stage floor. To avoid this, you need to select this light source and in the Object Properties tab, select the object that the light should ignore.
In this case, I made the Compositing settings minimal and after rendering, I slightly adjusted the color balance in Krita.
RENDER: Wanna Fly
Thank you for checking out my article. Don’t hesitate to ask any questions on my social media. Have a great day!
About the Artist
Pavlov Timur is a 3D artist and sculptor from Russia, experienced in sculpting characters, buildings, environmental elements, and texturing. He is currently working as a 3D character artist at Bastard Games Studio.