In this post I will discuss a bit of the creation process behind a short intro film I did for a company called Axami. I will try to make it as understandable as possible, so it will be easy to keep up. I may or may not update this post with the full video at a later time.
Recently, I sat down with a few guys from the company and we discussed that they wanted to try something new for their business. They knew I was in to 3D graphics and we took a moment to throw some ideas back and forth. Some ideas was forming in my head and I wanted to try it out. At the moment I told them to give me one week and see if I could finish something up.
During the production process I cut some corners to make it faster. I reused some of my old 3D assets to boost production speed, but I had to do some 3D modeling from scratch too (a few pipes and stuff). They wanted to have some comical / silly moment added. Since I really don’t do much of that I had to improvise a lot. It’s just not my thing. Even how much I tried the ambiance of the final result ended up with my “dark-ish” style.
Digging into it
So now we had the idea shaping up. For some reason I could not stop thinking about the machine-rooms in the “A Nightmare on Elm Street” movies (the business have connections to industrial clients, for example).
I started to build the character, making sure he was rigged properly. After that I created Normal maps and Specular maps based on the Diffuse map I was using for his clothes. I used Specular map to later assign how light should hit. For example, light hits differently on different materials (concrete, leather, whatever). So after checking all the UV-coordinates I could safely grab all the Diffuse maps from Blender and start to create my normals. I used CPetry’s online tool to generate Normal and Specular maps for me (Remember? Cutting time!).
I kind of did the same thing with all the other static objects (pipes, walls, etc). Many of these was modeled and textured already, so I was kind of just creating Normal and Specular maps of these static objects.
I repeated this process for the static objects too which did not have said maps. When I completed that part I could get to fun stuff, so I fired up Unreal Engine 4. Doing animation in UE4 has both pros and cons. The really annoying consequence was that I had to kind of predict my animation really carefully. But it traded off very quickly since everything inside UE4 is rendered in realtime, and rendering shots in realtime is such a timesaver. And also, the rendering engine makes everything look nice and awesome!
I used my previous assets to build my 3D scene up. I thought about this small hall with smoke coming out of the vents and pipes all over. So I kind of designed the map based on the idea in my head. The assets seen above is basically nothing advanced. Just cylinders and cubes. It is the texture work that does the trick, and the awesome rendering and light UE4 have (yes, I had to mention that again). Here is the same shot without the textures (light only).
After this was done, I animated my character in Blender3D. When he had the current animation for a specific shot done, I imported him into Unreal Engine 4. Since the materials that was properly set up in Blender did not automatically import perfectly fine in Unreal Engine 4, I had to do a lot of fine tuning before putting the character into the scene.
For example his eye did not have an Opacity mask. The eyes were kind of static before with and put into place with the UV-offsets in Blender to match up perfectly. This way you do not need opacity masks, and it can cause a bit of texture error when the texture / image is stretched to fit the size of the eyeball. If the texture is stretched outside the UV-coordinates, it will not know what to do really and it will cause this texturing errors. And it is not pretty.
So my decision was to create the Opacity mask for the eyes and put that into UE4. So I fired up Photoshop and opened up the Diffuse map, made another layer. Then I cut out the eyes from the Diffuse map, overlayed the color with plain white, and made the background pitch black. This way Unreal Engine understands what parts to cut off from the texture that does not belong to the UV-map. So I set up a simple material with both the Diffuse map as the “Base color” and the “Opacity mask”.
Since eyes tend to be a bit watery, I wanted to add that watery / shiny look to the eyes. I did so by setting a very low value of the “Roughness”. Final result below.
I had to repeat this process for the eyebrows and eyelashes. Another important step was to check the “Two Sided” box for hair-related materials. It is basically a boolean of the backface-culling. Back in the day, culling was used to only render what we see, to save performance and not render everything at once. “Two Sided” forces the rendering of the culling to render everything at once.
If it is not checked for the hair, only the front can be seen from the hair. And not the hair underneath or behind the head. It just looks messed up, that is all you have to remember.
When this process was done I would get in to animating each shot. So all I really had to do now was to animate the camera and my “directing” skills would come to play. I rendered a few with only the environment. And then I jumped to the character animation shot. Placed the character into the scene and the camera. I was manually animating a kind of camera shake to certain shots to improve the realism (it is just a thing I do).
I watched a lot of movies, so I wanted to practice some shots. For example, the image above shows the famous “behind” shot. Where you kind of see someone from behind and something is happening in the distance. Keeping the character a bit in the periphery, since he currently is not the main focus.
For animation in Unreal Engine 4 I used it’s own (and awesome) Sequencer tool. It can be used to animate static objects very well. Since the camera is a static object, it was done fastly paced and here you can see the set keys in the animation timeline window. It was basically just small transform adjustments to make the camera move slightly for that “shaky” feel.
After repeating that process until I had a few shots ready, rendered in full HD, 30 frames per second, I fired up my preferred editing software, Premiere. Since we were taught Adobe Premiere in high-school, I just have come to use it. You can do editing and stuff in Unreal Engine 4 too, but I usually don’t bother about that. I simply just use it to animate and render each shot.
The relief lets up.
Now the heavy work was finally done and I could switch my focus to editing, which was a very fast process. This was, after all, just about 22 seconds long. At this stage I remember I was very tired, and could not quite think straight. Anyway, I imported the video to Premiere and made some sound effects in FL Studio using their built in VST-plugins. As for the human sounds, I had to record them and be very careful to filter out the noises properly. This was done with Audacity.
When I had all the material for the editing process to take off I imported everything and edited it together. Faded in the shots properly, keying the volume of certain clips. Small stuff like that.
All in all, this was a fun but kind of stressful creation process. I usually feel a bit stressful when I get in to different mind-sets. Like “What if I stumble upon a problem in the process which will kind of end it all, or stop production”.
When I focus more on films and that kind of stuff, I really just don’t want to script everything down to the core. I want to improvise, since in animation you could easily come to a point where you don’t know how to continue. The best thing to do in such a situation is to improvise, maybe changing the original idea or “script” that you might be following. You have to find alternate ways. That was my biggest fear in the creation process. I feared that I would work a long time on some shot or whatever and then come to a conclusion that it might not look right, or I can’t use it.
I am kind of a perfectionist. If something does not get to the high expectations I have, I might scrap the idea and try a different approach. And that mindset is sometimes contra-productive in this area.
Anyway, I hope you enjoyed this “Making-Of”. Now you get a better idea of how I work and how I do my stuff, improving every day. I want to personally thank you if you read it all through and hope I can bring more stuff soon!
Thank you for reading!