LEGO is awesome. LEGO games are awesome. And – at least for me – this trick is awesome. It’s  about the crawler “chains”. You know, the things around the wheel rims.

Source: LEGO Batman

Let me explain, why i think this looks really good: If you wanna do such a “conveyor” animation in  3D, you need to animate some geometry. And depending on your engine you can do this in  different ways:

Way #1 “Texture Animation”
You could use a texture animation where you let a texture slide over a geometry. This is very easy to setup but the silhouette of the whole thing isn’t that stunning:

Way #2 “Geometry Animation”
If your engine doesn’t support texture animation and/or you want a nice silhouette you can make a conveyor out of separate geometries. This costs a lot more animation effort and of course more drawcalls since you get more separate objects. The plus side: the silhouette looks more interesting.
For this, every “plate” just moves one “step” forward and then the animation starts again. You can see this better in the following animation where the  plates “jumps” back when they reached their final position. Every color marks a single object.

The LEGO Way
Let’s look again at the LEGO thingie. Am i the only one who thinks, that this looks like they bent a rubber geometry around the wheel rims? I really like it!

Source: LEGO Batman

At first i thought about crazy bend-modify-programmer-stuff but then i checked out the drawcalls/wireframes. I bet you already guessed how they did it. If not, here’s a clue:

Source: LEGO Batman

It’s kind of a mixture of both ways.

There’s a big geometry as a base (without crazy silhouette) and in addition several moving smaller parts (which create a great silhouette). Of course you don’t need a texture animation on the base  geometry because there’s no visible texture/structure but it gives the whole thing a good shape.
With that, they achieved this really cool bended rubber look which i really like. To be honest, i think most people figured out the trick immediately, but personally i wasn’t sure until i saw the wireframe and the separate drawcalls.

Good work, Traveller’s Tales. :)


Update 1
Thanks to Aurelio (from the comments) who mentioned an interesting thing called “Sub Pivot Point Baker”. Something like this is available in UDK and also packed into these very good looking tools. With that it seems to be possible, to have only one geometry but with different sub-geometries/elements/parts and everyone of those has it’s own pivot point which would save some draw calls if you would use it on stuff like the crawler.

6 thoughts on “Lego Batman – Crawler

    1. Simon

      Isn’t a draw call a “call” do draw/render something? And every model/texture produces at least one of it if you don’t instance anything?

      Don’t hesitate to correct me :)

      Reply
  1. Anonymous

    A model can have gaps, e.g.: cluster of trees can be one draw call. In the above, both left and right tracks can be drawn in one call.

    – Different Anonym

    Reply
    1. Simon

      That’s right. But the Intel GPA Programm (which makes me able to show the wireframe) splits up the scene into drawcalls. You’re able to activate drawcall by drawcall which i did for the image with the wireframe of the chain parts. So every step you can see in the GIF is a single drawcall.

      Reply
    1. Simon Post author

      Thanks for the link! I didn’t know about that tech – really fascinating. Have to pack this link into the article. :)

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *