Mirko Zambataro shared the workflow behind the Monster project and thoroughly explained how the VFX and lighting were set up.
Hi! My name is Mirko, and I am a 3D Lighting Artist but I consider myself a Generalist. Mentally, I started working with 3D when I was around 5 or 6 years old after my father bought me a box set of Star Wars episodes 1, 2, and 3 with special content. I spent hours watching these documentaries on all the 3D parts of the films, and it fascinated me. That's when I told myself that I wanted to work in movies later. I always drew a lot in my childhood, I loved creating things and making creativity speak. The first time I opened a 3D software I was 13 years old, it was Blender, and I discovered the basics of 3D little by little, it was like a game for me.
In the years to come, I studied a lot of graphic, web, and 2D motion design at school, but I always tried to integrate 3D as a bonus in my projects. At one point in my teenage years, I told myself that I really wanted to create the most photorealistic images possible, from scratch, and that's when I seriously started modeling, then texturing, and gradually moving towards shading and final rendering. But I was always clear that I wanted to present finished images, not just 3D models and WIPs. There was a lot to learn, I spent a lot of my free time on tutorials, on forums, trying little by little to understand this world and be able to be autonomous.
I almost learned everything on my own, I did a one-year FX training course, which allowed me to know the basics of FX and Houdini, but this year, I mainly went towards lookdev and lighting, and suddenly the creation of my portfolio and all my personal projects. It was a lot of work and I learned a lot by myself on my projects.
I want to quote a person who helped me a lot in this period, Chris Brejon, who saw potential in me with images that I posted on Discord and who has always been there to help me on my personal projects, I will always thank him.
I would say that all the projects I have done in the past contributed to the result of this last project. I am not an FX artist, but I love to play with Houdini tools when I have free time because even if I am a lighting artist, FX has always fascinated me, and since I am not an animator, I have always tried to show animated FX in my personal projects, with which I could also practice my lighting. My experiences at Skydance Animation and Mikros Animation certainly contributed to making me more specialized in everything that is more technical in lighting, such as the creation of layers and the workflow in compositing.
I started with Houdini because a teacher from my school, Michel Collinet, senior FX artist at Illumination Studio Paris, who is now my friend, recommended it to me for my motion design projects because, at the time, I was using Cinema 4D, which was very well known in 3D motion design. I suddenly started learning the basics with tutorials because I wanted to learn how to create geo procedurals and FX smoke and experiment more and more with the world of FX. Gradually I realized that Houdini can be used for a lot of tasks, I did projects entirely in this software, even lookdev, lighting, and rendering. What pushed me to continue was the enormous flexibility of the software, the fact that we don't really have any limits, and that we can create a lot of things, touch everything, and that's how the ideas come.
To master Houdini, as with any software, you have to practice, watch tutorials, and try to do personal projects. If I can give any advice, it's to always have beautiful ideas to realize because the technique can be learned: we want to make smoke – there are a lot of tutorials on that. It won't be perfect the first time, and you will probably need help, but when you have good ideas, you have everything you need, and when the project is finished, you will realize that you have learned a lot and want to start again!
The Monster Project
It's an idea that appeared when I was watching a tutorial with tentacles that were procedurally generated and animated. Everything was created with a lot of code, I never considered myself an expert in FX and code, but this tutorial made me imagine a much bigger, faster-moving monster, and I had a vision of this monster in a tight hallway, walking and losing liquids, drool, and blood. I had the idea right away, it's as if I was already visualizing what I wanted, and when it happens to me, I just tell myself that I have to create this and make others see the same thing I imagined.
I was inspired a lot by the monsters of Stranger Things, their shading and look, it was exactly what I wanted, and I was indirectly very inspired by the level of the idea because I am a fan of the saga. For the tight corridor, I had some images in my head of some horror movies and video games like Dead Space, I played them in my adolescence, but I have flashbacks that continue to influence me.
I began by creating the monster through procedural modeling, which I strongly personalized. To make it organic, especially the shading, I added noises. Initially, I just wanted to have fun shading the monster without thinking about the rest because I liked this part. After I started adapting what I had learned to make this monster "stick" to walls, I created a camera and animated the center of the monster to achieve its movement. Finally, I used Maya to model the hallway.
My workflow was a continuous switch between Houdini and Maya. Thanks to Arnold's .ass files, I can export everything easily: shaders and geometries. It allowed me to do tests, the FX came only after, and I did the final rendering in Maya.
I modeled the environment the traditional way in Maya, nothing procedural here. I also used some Quixel Bridge assets to be faster. I made my layout in Maya and, once the environment was ready, exported everything to Houdini to use as a static mesh in the FX simulation.
The tools I used for this project were Maya, Houdini, Arnold, and Nuke.
The creature was surely a technical challenge. After making a line generation system, following a tutorial by Sergio Casilimas, I had to customize everything I learned thanks to his explanations. I created the walls, made the monster move on them smoothly, and created a working mesh.
In the beginning, the monster had a different look, I really liked it. I worked it with noise volumes, but the big problem was that I needed UVs to make sure I didn't drag the textures, so I had to sacrifice mesh details and create a UV system that works on generated meshes. That was the biggest technical challenge – getting the UVs to work on a generated mesh so that the textures were placed correctly. The shader is entirely procedural, everything was created based on Arnold's noises.
If we summarize the steps, it would be:
1. Create splines via procedural modeling to ensure that they are generated from a point, spread, and "link" to scattered points in the walls, based on a "threshold" value, which chooses how long to "create" this link, the base point, and these points on the wall.
2. Create an interpolation between this distance attribute, and the Curveu, which is created with the resample and which is the distance between the start and the end of the spline. This will make the animation more dynamic, we will see the construction of these splines with the movement.
3. Create noise for these splines and attributes that will allow you to set the radius, based on the Curveu to give a thicker thickness at the beginning and thinner at the end of the splines.
4. Create the head from the basic point that generates all.
5. Create procedurals UVs with the compute UV from the Sweep node and other tweaks.
6. Animate the basic point and see how the entire mesh generates following this point.
In Houdini, once the monster was created, it needed the FX. I never really did fluids, so I went to see some tutorials on the new Vellum fluid system. Houdini changes very quickly with new versions, for someone who works in lighting, it's not easy to stay up to date with all the new tools for FX, so I had to watch a lot of videos on these tools. I asked my FX artist friends how I could create all that, I had leads, I documented myself on these leads, and then I proceeded.
I created two layers of FX: the first was the big part of the liquid, whose emitter was the whole monster (I made sure that the emitter was just the upper part of the monster with the selection by normals), and the second layer was the liquid that stuck to the wall from the legs of the monster. In this case, the emitter was the polygons of the lower part of the legs, with much stronger constraints, which made it stick to the wall.
Summarizing my steps:
1. Create an emitter from the animated monster, this emitter is made up of points scattered on the monster's mesh, with a selection group, whose "keep to normals" option allows you to select polygons at a given angle, a threshold. I separated the head and the tentacles with different parameters, then created a VDB from particles for each part, processed the VDB to make it uniform, and merged everything as geometry at the end; the cache of the transmitter was therefore created.
2. Create the glue constraints, it was done on the emitter thanks to noises on the attributes that we were going to have later in the DopNet for the simulation.
3. Create Vellum fluid and DopNet so the final simulation contains static objects, like the monster itself and the environment. The whole thing here is to test the right values to have the desired effect.
It was the same principle for both layers.
I started setting up the lighting in Houdini. I created something basic, a bit like previz, just to see how the monster shader reacted to the lights moving in the corridor. Once I finished all the FX and all the assets were ready, I exported the monster in .ass, and all the FX in Alembic to integrate them into Maya and create my final scene with the final lighting. There aren't many lights in this scene, the main key light is the neon lights on the wall, then there are the red alarms on the side, and a bounce light at the bottom that simulates light bouncing.
I have 3 layers: a SET layer, which is the environment, a CHAR layer, and an FX layer.
The final look was achieved through compositing in Nuke. For the animation of the lights, I used a combination of keyframe animation and expressions to animate the flickering and movement of the lights. I also made some adjustments to the colors and tones and added effects such as chromatic aberration and camera shake to create small camera imperfections and grain. I prefer to release renderings that already look good, without requiring a lot of compositing on top.
The advice I can give is to learn step by step all the sectors of 3D, from modeling to rendering, and then work on personal projects from zero to the end. You will see what you prefer the most, but I suggest you test everything before specializing in a field/department. I had to do a lot of texture modeling FX to realize that the part that I preferred the most was lookdev and lighting, lighting up everything I have done, choosing the right colors, and making the final rendering beautiful.
Create a scene that works and watch tutorials that will help you create what you want, it's the best way to progress and evolve without staying for years training and creating nothing in particular. First, you have to learn some technical notions, that's for sure, thankfully, we have plenty of resources on the internet.
Everyone can learn a technique, but you can't learn creativity and ideas, you have to look at a lot of images, take inspiration from what has already been done, and build your cinematographic culture, it will help you enormously. And above all, you never stop learning, it's a continuous process, listen to the people who are there to encourage you and believe in yourself.