Isa Raaijmakers showed us how to recreate a scene from the comic Kochab in 3D using Substance software, ZBrush, Maya, and Unreal Engine.
In case you missed it
You may find these articles interesting
Hi, my name is Isa, currently, I am studying Game Architecture and Design, visual art at Breda University of Applied Sciences. I previously worked at Enversed, a VR experience center, as an intern and continued working there for a few months before starting my education at BUAS. In my free time, I like to walk, cook, work in my bullet journal and play the piano.
Entering my final year in school I have the opportunity to work on a project of my own choosing. Although a supervisor is assigned, you have to work in a self-reliant way. Wanting to use this opportunity to create an environment that would reflect me as an artist. This is the beauty of 3D art, creating a place you could imagine yourself being in. When getting immersed in a game, you become the character and the environment becomes your environment.
Some time ago I stumbled upon the work of Sarah Webb, she is an illustrator, visual development artist, and cartoonist. I looked at her illustrations and drawings, the colors inspired me. When I started to read her comic ‘Kochab’ I fell in love with the architecture, mood, and colors immediately. The comic has a compelling story with strong female characters named Kyra and Sonya. The room I recreated is Kyra’s bedroom, the place where the characters first meet. For this project, I worked with a combination of real-life references and inspiration taken from the comic.
Setting Up the Project
In the beginning, I was unsure how to approach a project of this scale on my own. I didn’t know what kind of style I was going for, where to start and which workflow to use. So after finishing my blockout I made screenshots and painted them over. I took color references from the comic and tried to think about how the room would look in a neutral light. Although my drawing looks very flat, because it doesn’t have shadows, it helped me to figure out which assets, patterns, materials, and colors to use.
For the vegetation, I used this 80.lv article by Marie Lazar. The article is very useful and well made. The plant that I present here is a fairly easy example. I made the blockout and leaf shapes in Maya. The branches have been sculpted in ZBrush, in which I also placed the leaves until I got a nice silhouette. I exported it back to Maya and made a mesh for the model. I only needed a plane since it would be against the wall. In the comic, a large diversity of plants can be found stemming from all over the world. But when working in 3D the best option would be to look for plants found in only one region. In that way, the plants will most likely complement each other, since they naturally grow together. On the other hand, it is also important to adhere to the original appearance of the comic.
Vegetation in Substance Designer
With my mesh and UV’s ready I exported both the low and high poly meshes to Substance Designer and baked the opacity, normal, curvature, and ambient occlusion maps. You could add more detail to the material in Substance Designer. However, as you can see only a small number of nodes is really needed to add some gradient and color variation. In the image below you can see from left to right, the generated opacity map, normal map, and the final result of the diffuse map, using merely 20 nodes to get the desired result.
Since I was totally new to Substance Designer before starting this project, I felt like I needed some guidance. I stumbled upon the work of Jimmy Malachier and instantly became a fan. I purchased his Substance Designer tutorial and I can recommend it to everyone interested in learning the program. The biggest thing that I have learned from his tutorial is the layering of colors and details. After this tutorial, you won’t be able not to use Slope Blur in every Substance Designer file you will ever make. It is very useful to achieve a stylized effect.
Working With Parameters
I wanted to make several vases and to speed up the process of creating vases, I wanted to experiment with parameters in Substance Designer. It is really fun and useful to combine SD and SP in the texturing process. As you can see I made 6 parameters to adjust the colors in Substance Painter.
Here you can see I added the normal map detail to have some “wobbly” lines to simulate the hand-made texture vases often have. With the seed button in Substance Painter, you can randomize the seed value. This means that every vase I would make had a uniqueness.
This is the final result of the texturing process of the vegetation, substances, and tileable materials.
One of the first things I created in my project was the blueprint for my ceiling lamps. It is a straightforward blueprint with a mesh and a light source. Using this blueprint made me able to adjust the lighting settings and update them automatically.
All of the lamps have 2 materials, namely glass, and metal material. I started with the general shape of the lamp, then I placed a slightly smaller and adjusted mesh inside the lamp for the glass. Using the symmetry and circular symmetry tools in ZBrush I sculpted the patterns and details of the metal. Afterward, I masked parts of the outer shape of the lamp to create an opacity map. This will show the mesh underneath that has the glass material assigned to it.
Lamps: Glass Material
I found a really great tutorial by Steve’s Tutorials to help me with a pulsating glow effect for the glass material. The tutorial taught me about the Fresnel node. With the Fresnel node, you can control the color and opacity of the inner and outer parts of a material in order to create a kind of gradient from the center to the edge. Later I applied this effect to other materials such as the icicles around the doorway.
The next step was to add a flame effect that would flicker in the glass to make it a bit more magical. To achieve this effect I used a Panner node. As the name suggests, the Panner node makes the texture pan in a certain direction. This node really has an added value and is used for multiple materials in the scene, such as the sparkling of the stars on the ceiling. In the video below you can see some subtle movements in the glass as a result.
With the flipbook node in Unreal Engine, you can make hand-animated VFX like this little flame. Adding this animation to my project really made me happy. For me, it is a reminder to push for the things you really want in your project. I could have finished this project without this feature but it was just so much fun to create it!
The final results of the lamps:
The material I made for the ceiling was probably more complicated than it needed to be. The main thing I did was to set the material to transparent and use the BoundingBoxBased blue channel to get a gradient from top to bottom. This made the ceiling slowly disappear and blend in with the night sky and the stars.
In the left image, you can see how my pillars looked like when I started with the scene. I wanted them to blend in with the ceiling but couldn’t get the right effect. When made transparent it became completely see-through, but this didn’t blend well with the bottom part of the pillar. It also didn’t have roughness nor normal map information. Eventually after some input from a classmate I tried to use 2 meshes, one slightly smaller than the other. One is transparent in the same way as the ceiling and one has a BoundingBoxBased dither effect on it. This way you can get a smooth gradient from opaque to transparent.
The sky is pretty straightforward. Create a sphere, chop off the bottom and draw some clouds and stars on it and you are pretty much finished. As mentioned before I used the Panner node to make the stars twinkle by applying it to the emissive map. The clouds are placed on simple curved planes and are layered.
Lighting and Post-Processing
The lighting in my scene is mostly static lights with contrasting colours depending on where they are placed. Warm colours on the bedside and cool colours on the side of the door. The rectangular light source is placed fairly far away from the door, to create an angled light beam. To obtain a softer feel I used the Volumetric Fog. In the post-processing, I adjusted the temperature and bloom values to accentuate the mood of the scene. Which was meant to be a contrast between the cosy, safe feeling radiating from the bed and the cold and dark seeping in from outside.
One of the things I planned from the start and which I stuck to was to bring everything into UE4 as fast as possible. Starting with a blockout, hand painting some of the tiling textures I had in mind, and trying out colors and lighting. It is so rewarding to look back at your work from a week ago and see the changes. When creating a scene like this the bigger picture counts not the tiny details, although I could have improved on that! For my next project, I want to focus on polishing my props better and think about the presentation before everything is finished and not as an afterthought. I always get really inspired by Jasmin Habezai-Fekri's works. Her final scenes look polished, the individual assets look great and the presentation looks perfect! I can really recommend her articles and Artstation posts, they are insightful and inspiring.
Good planning also really helped me. Planning deadlines and noticing when you are falling behind schedule is crucial. Thanks to that I didn’t bump into any large issues and was mostly able to stay on track.
At the start of my project, I had envisioned that one side of the room would be the cold side and the other warm. I wanted to show this contrast by having a wall painting of the moon and the sun, on opposite sides. I became increasingly frustrated when I wasn’t able to make the sun work on the warm side, eventually after hours of work put into that piece I decided to delete it completely. You have to “kill your darlings” sometimes.
Big thanks to Lotte de Brabander, who is insanely funny and made me love Substance Designer. Chris van Dalfsen for all the feedback and the jokes and Bjorn Prins for helping me so much with technical issues in Unreal Engine, I can never thank him enough.