Mill+ has created a Legoland ad that sees Lego camels, pirates, pharaohs and a dragon cause havoc across a city.

In the ad, Lego characters and creatures come to life in a child's bedroom, before charging off outside and through the city until they reach the theme park.

The spot uses millions of CG Lego bricks, for which Mill+ created a Houdini plug-in called Bricker. The bricks were built into models, animated and composited with live action footage captured in Cape town, South Africa.

For the shoot, real Lego models were created to use as references – and these were donated to the Agape Educare Centre afterwards.

Millll+'s joint head of 3D Dave Fleet takes us through the project's production process.

“Firstly, our characters were modeled as polygonal meshes. These were then rigged and animated, then passed from Maya to Houdini using Mill+’s custom caching format. At this point the animators would also export what we refer to as a 'callsheet'. This is basically a live list of ingredients that go into each scene. Russell and the animators were regularly changing characters, so it was vital to make this as easy as possible so the FX and lighting teams were always up to date.

We then started the process of turning the animated characters into bricks, by creating our own plugin aptly named 'Bricker'. Bricker was seamlessly integrated into our existing pipeline and automatically picked up animation updates and knew when new characters got added or removed from a shot. As LEGO bricks come in all different shapes and sizes we built sliders within the tool so the artist could decide which bricks were used and ultimately how the character was built.

Some of the larger assets had a lot of bricks! The Pirate ship had the most, at around 3 million individual Lego bricks, not including the huge wave it was riding. Bricker included many other optimisation features like camera culling and hollowing out the characters to save on bricks and to speed up the whole workflow.

The bricked characters were then passed onto our Lighting team as a huge point cloud, each point representing the location and colour of a brick. This allowed our lighting scenes to be very lightweight as the Lego bricks themselves are only created at render time using Arnold's powerful instancing system.”