Hi, my name is Igor Kekeljević. My surname seems too unusual and my name seems too usual, so people usually just call me Keki. I’m a person with a strong passion for 3D graphics, a 40-year-old kid still trying to figure out what I will become when I grow up (aside from being older). In the meantime, I have completed my studies in fine arts, I got a doctorate degree in digital arts and work as an assistant professor at the Faculty of Technical Sciences (Novi Sad, Serbia), where I teach subjects such as Traditional Drawing, Basics of 3D graphics, 3D Character Animation, Animation History, etc., to future computer graphic engineers.
I did various jobs, illustrations, graphic designs, logos, commercials, video games, website development, and usability design, and it took me almost 20 years to realize a simple fact: being good in many things means only that you cannot be excellent in anything. This year I quit everything except educational work and 3d character art. Ask me in a couple of years if this was a good decision. ;-)
In CGI I always prefer stylisation over realism. My favorite character artist is Matt Thorup, but I also love amazing Blender artists like Yuditya, Julien, Zach, Yan, Nazar… But I’m not looking for inspiration only among the works of other 3D character artists, but also among works of illustrators. A couple of weeks ago, I had a flashback to my childhood, when I started following the Instagram profile of Bob Živković. I have loved his illustrations since I was a child and learned from his illustrations how to draw caricatures 30 years ago. I thought it would be cool to see some of his works in 3D.
I decided not to create an exact copy of the original illustration, but my own interpretation of it. I tried to give my respect to the basic principles of Bob’s style, but to use characteristics of computer generated three-dimensional form. There are some similarities between 2D and 3D, but they are different media. It’s like making a translation of a song to a different language, trying to get a similar effect with different words. I even try to leave some room for my own style. This plan for the project sounds complicated, but I can be a complicated person. :-)
For this project I mainly used Blender 2.79 because I’m using my tools and scripts developed for 2.79.
Blocking is the most important step for me; it’s when I look for good proportions, contours, and line flows. It’s like a foundation of a house, which determines if all will stand firm or fall.
I started by blocking with simple shapes, which is a practice I do with every stylized character. These simple shapes are usually very low-poly meshes with a Multires Modifier, done in combination of hard surface modelling and digital sculpting. This kind of workflow gives me a clean and simple design of a character.
During sculpting I always turn the model around and redefine contours. The brushes I use most are Grab and Inflate/Deflate brushes. I have my script for switching those 2 brushes on a keystroke (feature from Krita) and this speeds me a lot when doing a digital sculpt.
For the head I kept the nose, eyelids, and ears as separate objects during blocking. In this way it’s easy to move, scale, rotate or use different resolutions for one element of the head, without affecting the overall shape of the head or other elements.
Hands are usually tricky to do, because of fingers. I used one shape for the palm and separate shapes for each finger. Index, middle, ring and pinky fingers are actually instanced objects linked to share the same mesh. In this way all these fingers are in the same style and it’s quite easy to make overall design changes. Nails are also instances and share the same mesh.
For teeth I used the hard surface modeling method. They are done as a single object, every tooth is just a couple of planes. Tooth thickness and final shape is done with modifiers, they are bent with the Simple Deform Modifier and tweaked with the Mesh Deform Modifier. If I need to change some tooth, it’s easy to do it in Edit Mode. Best of all, I can use the same teeth for my next project, with just a few small adjustments. Of course, this won’t work for realistic characters, but for stylized it works great.
Character Polishing And Details
Some elements of a character I leave as separated objects (lips, tongue, teeth, nails, and nipples), but for the character’s body all shapes needs to be joined into a single mesh. For this I used the boolean operator, to join fingers to palms, palms to arms, arms to torso, etc. This step can be done manually, but I’m using my script which applies modifiers for all selected objects, applies a scale and then combines them into a single mesh. After booleans I usually make joins nicer by smoothing things out manually, with digital sculpting and the Dyntopo option, but this time I used the new Remesh feature in Blender 2.8 Sculpt Mode Features branch by Pablo Dobbaro. This operator did the job perfectly, it saved me a lot of time.
Usually digital sculptors make a final pose of a character in the blocking stage, but I prefer the neutral pose since I’m using a rig for posing. This is additional work but then it’s possible to use the same figure for more than one pose or even for animation. I had to do retopo, because it’s hard to properly skin a high-poly mesh. After retopo, I used a Multires Modifier with applied ShrinkWrap Modifier to transfer fine details from the high-poly mesh. This trick I learn from great Zach’s tutorial. I would recommend applying ShrinkWrap only when adding subdivision levels to get the best results.
After posing a character I added all accessories, scene elements, hair particles and other details.
For details I’m using modifiers a lot and trying to work in a non-destructive way. This allows me to change things easily, because there is always something to tweak after adding all elements. For example, the shower hose is done with modifiers, simple low-poly mesh and curve. Path curve is just great for fast setup and I used the curve’s vertices radius to set thickness variations.
All shaders are quite simple, all are Principled BSDF with nothing special, just some basic setup. For example, the skin shader is the default Principled BSDF with the smallest amount of Subsurface. Color is done with vertex paint and Geometry node’s Pointiness.
I didn’t want to mess up this project with bad lighting, so I played it safe. I used an Area light above the character for the main light, added a Sun light behind the character for rim light, and 50% of HDRI Environment map to get nicer reflections and more natural lighting.
I used all kinds of 3D software and since Softimage is gone, Blender is my favourite tool. Not only does it get the job done, but I really love the positive context around Blender and the community of Blender users.
As a 3D artist I have done various projects and some of them were really exhausting and boring. But with this one I really had a great time and it’s great to get such positive feedback from people. This positive energy is a great motivation for me to keep learning and keep doing this kind of characters in the future.
About the Author