logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Breakdown: LEGO-Style Construction Site With A Collapsing Crane Made With Blender

Tino Klein took us behind the scenes of Trouble in LEGO Town, his Blender-made Chasm's Call entry that took 5th place, sharing his process and how he tackled various challenges.

My name is Tino Klein, 37 years old, and I'm from Germany. I've had a passion for making movies since I was 14 years old. 3D wasn't a topic for me back then, but my beginnings weren't that far away.

My first film project was a LEGO Star Wars stop-motion film that I worked on for a long time after school and during school holidays:

After I finished school, I specialized further. At first, I did everything myself: directing, camera work, editing, and so on. Over time, it all came down to post-production. I trained as a media designer in Germany and have now been working as an independent professional video editor for over 15 years.

For a few years, I had a semi-successful YouTube channel with sketch comedy videos with two friends, in which I took on all the tasks behind the camera and otherwise got around quite a bit in the social media scene. During all this time, I haven't had any contact with 3D apart from some 2.5D compositing with After Effects here and there, but it has always interested me. But there simply wasn't enough time.

In October 2022, I had just finished working on a larger project and already knew that I would have another larger project at the beginning of 2023. So instead of looking for something new to transition into, I thought it was now or never and dedicated myself to getting started with 3D and Blender for 3 months.

At least, that was the plan. However, the big project for the beginning of 2023 got pushed back further and further, so the three months actually turned into six months in the end. I spent six months immersing myself in the 3D world, basically from 9 to 5. Of course, like many others, I started with Blender Guru's donut tutorial. In the beginning, I was most interested in modeling, and I was very proud when I created my first lightsaber and an N64 controller without any tutorials.

But even then, my actual goal was to make 3D animations at some point. On Black Friday 2022, I bought Pierrick Picaut's fantastic Alive! course and started learning animation in Blender. Around the same time, I also came across the possibility of making Lego animations through videos, like the Spider-Verse trailer by the teenager who would later do the Lego animations in the film or this one by Calvin Brown.

I also thought it was a nice full-circle moment. Having started with LEGO stop-motion at the age of 14 and continued with 3D LEGO animations over 20 years later.

At the beginning of 2023, I became aware of Clint's community challenges. As a long-time Corridor Digital fan and now a 3D newbie myself who has nothing better to do because he's waiting for his next job, I decided to take part in the Endless Engines Challenge. Of course, with a Lego animation. This was my result:

I was super proud of the result and learned a ton while working on it. But as soon as the live stream discussing the top 100 started, I quickly became convinced that I wouldn't have a chance to participate yet. The other entries just looked way too good. Understandably, I was blown away when my post suddenly appeared in the top 100.

This experience had an extremely strong impact on me and also motivated me to keep at it, even when I started working as a video editor again.

Whenever I had time, I continued learning and animating. And because I liked it so much, I continued to immerse myself in the LEGO animation stuff. I've done tutorials on the topic myself and released my own add-on for LEGO Spider-Man animations.

I also participated in all of Clint's upcoming community challenges. Each time I was more convinced than the last time that I wouldn't make it into the top 100, and yet it worked every time. Here's the Render Challenge playlist.

My last submission to Kinetic Rush went through the roof for the first time, giving me a lot of reach on Instagram and allowing me to grow from under 1,000 followers to over 20,000. To date, I have not accepted a single paid 3D job, even though I have received a few inquiries. Why? I still see myself as a beginner and often don't believe that I can meet the professional requirements. I feel more comfortable as a video editor, at least so far. 

Trouble in LEGO Town

The first question for me was: Lego again or no Lego for the first time? Since I knew that I would have to work normally during the month of the challenge and would only have time in the evenings and weekends, it quickly became clear to me that there would not be enough time to do something that I had hardly had any experience with before. So LEGO again makes the most effective use of the time.

The first two days, I mainly brainstormed, alone but also with my partner and friends. An idea stuck in my head pretty quickly. I wanted the main character in a situation where, at first, it seems as if he is falling into the abyss, but then he is able to save himself.

It was also important to me not to use another franchise in my animation this time, like Star Wars or superheroes. I had done that for the past four challenges and finally wanted to create something completely my own (apart from the fact that it would be LEGO, of course).

For example, I thought of a plane crashing or a suspension bridge collapsing. I often start by opening the template file in Blender and first creating simple geometry and moving it around to see what works and what doesn't. As a result, I quickly realized that the bridge and the plane would not work well, as the camera perspective did not reflect this well. I put some more thoughts into the basic setting. I know that a lot of the submissions to these challenges have a dark, very atmospheric look. Dark and gritty is always well received and undoubtedly looks good when done right.

But that's exactly why I like to go in a completely different direction and do something that looks more bright and cheerful. This is my tactic to stand out from the crowd. And I think it goes very well with the LEGO style.

One of my first thoughts is always how I can make the scene special by using Lego bricks. What is the justification for the scene being made of Lego and not portrayed realistically That was the case with my very first animation for Endless Engines, too. In my first version, I simply had a chase scene between a Tie Fighter and an X-Wing in the Death Star's trench.

Nothing that couldn't have been depicted with non-LEGO models. After about half the time, I completely revised my idea and added an animation that fit the LEGO style much better.

References

For this challenge, I had the idea that a huge hole could open up in the ground and swallow the entire surrounding area, brick by brick. The challenge for me was to implement this using simulations, something I had never done before.

I then decided on a city setting because I thought it would be more visually interesting to see how houses, streets, and cars would be swallowed up than, for example, just a forest, desert, ice, or something similar, although I knew that creating an entire city would be quite appealing.

This is how I came to the collapsing crane on a construction site and was able to start actually creating the scene. The only reference I watched before was the beginning of The LEGO Movie with the Everything is Awesome musical number:

This one also takes place in a LEGO city in broad daylight. I watched the scene 2-3 times at the beginning. But that was it. In general, I usually work very little with direct references and prefer to see where the path takes me while I'm working on a scene.

Getting Started

I'm not good at drawing, so it's easier for me to start composing directly in Blender. After I had opened the challenge template project, I started filling the scene with simple geometric shapes such as cubes, cylinders, etc., and moving them around until I saw a coherent result.

However, nothing is set in stone, and I reserve the right to react spontaneously to new ideas. For example, the hole in the ground moved from the right to the left half of the picture over the course of the project,t and I also changed the arrangement of the buildings and streets several times.

I work pretty intuitively when it comes to this. Most of the LEGO models come from Mecabricks, a platform used by most people who do non-commercial Lego animations. There, you can create your own 3D models with their workshop or use a large selection of models that have already been built.

These can then be exported and imported into Blender using a specially created add-on. Of course, this saves a lot of time because you don't have to model every LEGO brick yourself but can concentrate entirely on building the required models from existing bricks. Just like building something with real LEGO.

For my project I was able to use a good mix of existing sets and sets I built myself. I still had to adapt many of the existing sets to make them work in my scene. For example, the crane in the original is not wide enough for a figure to walk on the boom. Also, all of the sets were not high enough to achieve the depth that would have been necessary. However, I was able to export smaller models, such as cars 1:1, from Mecabricks and use them in my scene, which saved me a lot of time.

After I have imported the models into Blender, I like to manually place individual bricks on top of each other in a slightly looser and more crooked manner, as you can clearly see at the bottom of the elevator in my animation. This makes it look more organic and less perfect than if it was built by a computer.

Since the imported LEGO models are already UV unwrapped and textured, I was actually completely spared this part.

Texturing

As already mentioned, the LEGO bricks are already textured when you import them into Blender. If you use the paid version of the Mecabricks add-on, you even have the option to use sliders to adjust imperfections such as scratches, fingerprints, and color deviations.

However, that doesn't mean that I haven't made my own adjustments. I learned a lot of this in the Blender Bricks Discord server. This is a community of enthusiastic LEGO animation filmmakers. There is a lot of exchange and learning from each other here. In particular, creating the perfect LEGO material is a hotly debated topic and a science in itself.

How do you make the perfect scratches? The perfect subsurface scattering? Seam lines that are as close to the original as possible? I learned a lot there and, over time, created my own ideal LEGO brick material, for which I also have my own add-on interface in addition to that of the Mecabricks add-on.

I can make stones glow with a click, make printed pieces look older, or add wear stripes to arm and leg joints.

Of course, most of the details only need to be added to a few bricks that are in focus and close to the camera. Then I also used another add-on, Dustify, to place some dust and individual hairs on the bricks in the foreground.

Animation

This is actually the first animation I've done 100% using just Blender. In previous projects, I often used After Effects or Premiere Pro for additional effects or color grading. This time I set myself the goal of doing everything in camera. All effects that you can see were made with LEGO bricks in the scene and were not edited afterward. Even smear frames were achieved with LEGO bricks.

Most of the time, while I was working on the animation of the characters, I still used the simple placeholder objects from my blockout in the background.

After that, I first decided on the street layout and then filled the city with LEGO houses. At first, I only used 1-2 different building designs to get a feel for the layout, but above all, to protect performance. More on this later.

Most of the details on the floor, such as mailboxes, signs, bus stops, etc., were placed by hand. I only had to arrange traffic lights and street lights once for each road object (intersection, T-intersection, 2-lane road, and 3-lane road) and then combine them into one asset each.

I also placed and animated the cars by hand, as many of them reacted to the chasm in the ground during the animation. They slow down or are even pulled in.

I was able to use a crowd simulation for the walking citizens. To do this, I first created a walk cycle (or 3 with very small variations) and then drew the paths on the floor that the people walk along.

Shortly before the end of the challenge, I even had some time to hide some Easter eggs in the city like an evil wizard, who is causing the chasm and many more, which I always have a lot of fun with.

Lighting & Rendering

It's almost embarrassing to say this, but I've never had a lighting setup as simple as in this animation. Since the scene is outdoors, I started with an HDRI from Poly Haven. As I said, I wanted my animation to be bright and colorful to stand out from all the dark submissions.

Once I found a suitable HDRI, I controlled the light and shadows a little more precisely by placing a few objects outside the camera's field of view. For the atmosphere, I placed a cube with a volumetric scattering material over the entire scene and then distributed individual point lights throughout the scene. For brake lights, the traffic lights, a few buildings, and even the light in the chasm, it is just a blue point light that slowly gets bigger and moves downwards.

I also tried to keep rendering and compositing simple. In the first pass I exported the scene in 4K with 450 samples per frame as EXRs. This took about 5 minutes per frame on my PC and could easily be done overnight for the 120 frames.

I then imported the EXRs into a new Blender project and did some pretty simple color correction and grading with Colorist Pro add-on. I exported all the render layers with my EXR, just in case, but in the end, I didn't need any of them. I only used a cryptomatte to make the yellow on the main character's face a little brighter. Then I added glow, lens dirt, grain, camera distortion (all with the Colorist Pro add-on), and a vignette, as well as some blur on the outer edges of the image, and that was it. I exported the result as an mp4 from Blender and submitted it like this.

Challenges

Without rendering times, I've worked on the animation for 90-100 hours, mainly after work and on weekends. In the last week of the challenge, I even took time off to have more time to work on the final touches.

The biggest challenge was to create a large LEGO city out of tens of thousands of bricks without my computer exploding and to find a way to best achieve the disassembling effect. The problem with working with LEGO sets in Blender is the sheer number of objects that come together when you want to make large scenes.

At some point, Blender simply collapses. And I don't mean when rendering, but rather when working in the viewport. Vertices can be kept relatively low by using many instances. Each LEGO brick that appears multiple times is just one instance, saving processing and render times. The problem, however, is that each instance is still an individual object. If I hadn't found a way to optimize my scene, it would consist of hundreds of thousands of objects.

This is where Geometry Nodes come into play. I built a setup where I can merge multiple objects using a switch. Why via a switch and not permanently? Well, where there is light, there is also shadow. If I combine several objects into one, I lose the advantage of the instances. Although the number of objects decreases, the number of vertices increases extremely. And more vertices means more render time.

That's why I needed the switch in combination with an Is Viewport node. This allows me to reduce the number of objects while working in the viewport. The increased number of vertices hardly seems to impact performance. Then, when I export my scene, the Is Viewport node says that we are no longer in the viewport, disables the switch, and the number of objects increases again, but the number of vertices decreases.

This building consists of approximately 27,000 objects and 320,000 vertices. The viewport performance is 10-12 FPS. Now when I flip the switch, the number of objects is reduced to just 6, the number of vertices increases to 25 million, and the performance increases to 60 FPS. Only through this workflow was it possible for me to create such a detailed city out of LEGO and still work reasonably smoothly.

The second challenge was the disassembly effect. I didn't want the city to just be destroyed, I wanted it to be sucked into the chasm, brick by brick. I almost immediately rejected the idea of doing the whole thing with physics-based simulations. Simulating thousands of LEGO bricks interacting and colliding correctly with each other… no chance. It wasn't worth the effort to me.

I tried with manual keyframes, with constraints, and with add-ons like Commotion. It was not convincing, flexible, or fast enough. The solution again was Geometry Nodes and a tutorial from Cartesian Caramel:

With Geometry Nodes I was able to create an effector, a sphere, that I can slowly grow. And any object touched by this sphere will be moved to a new location that I can set myself. This allowed me to remain as flexible as possible and make adjustments easily without having to restart simulations or adjust numerous keyframes. Plus, the whole thing happens so far in the background and in the blur that it's not noticeable when some of the stones clip into each other and don't move quite physically correctly.

Conclusion

Geometry Nodes are really a lot of fun. Once you understand the principles, completely new possibilities arise. Shortly before the challenge, I published a tutorial series on YouTube on how to create a building generator for LEGO buildings.

Of course, that helped me a lot with this project. I was also able to incorporate my Spider-Web add-on to simulate the rope on the pulley.

I like working with templates. It limits creative freedom in a very positive way, and you are not overwhelmed by the mass of seemingly infinite possibilities that you have if you want to create something without any guidelines.

I want to continue making LEGO animations. I would like to further optimize my Building Generator with the newly learned techniques and, ideally, make it publicly accessible. Hopefully, when Clint starts another challenge in six months, I'll have time to take part again. Then maybe for the first time with an animation without LEGO.

Tino Klein, 3D Artist

Interview conducted by Gloria Levine

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more