ON Animation toys with Golaem for Playmobil: The Movie

Jeremy Ringard, from ON Animation tell us about how ON Animation used Golaem to create a Playmobil battle and fill a coliseum with 40 000 characters in Playmobil: The Movie.

Can you present yourself and the studio?
My name is Jeremy Ringard, Head of CG at ON Animation studios. We are a French animation studio located in Montreal (animation feature film) and Paris (RnD, series and live action movies). We are the creators of movies such as The Little Prince, Mune - Guardian Of The Moon, and more recently, Playmobil: The Movie. I was character supervisor on this production.

What was the size of your crowd team and how long have you worked on crowds for this project?
It's a tough question since rather than having a dedicated crowd department, we decided to involve several teams on each step of the crowd process: modeling, rigging, lookdev and CFX. Overall, I would say that about 5-7 people were involved in this part of the project. Once all the preliminary work for asset preparation was done, simulating the shots was just a matter of a couple of weeks for a single artist.

Can you describe the shots you used Golaem for on Playmobil: The Movie?
We used Golaem for the Viking sequence at the beginning of the movie, and the whole coliseum sequence features a large Golaem crowd.

What is the minimum / maximum number of characters you had in a Golaem shot?
Along the project, we changed several times the amount of characters on screen to adjust the image composition. We ended up using quite a wide variety of density. I think the least crowded shot we made uses around 30 characters, and we pushed this number quite far since the coliseum sequence shows a crowd of about 40.000 characters.

Could you give a bit of detail about how you populated the coliseum?
This sequence was a technical challenge for rendering: the volumetric atmosphere and complex lighting already made the shots computationally intensive, and we had to import 40.000 animated characters in Guerilla Render while keeping the render time short enough to iterate comfortably.
Luckily enough, these characters didn't have to navigate in the environment so to reduce the charge, we decided to split the crowd into 9 sections matching the coliseum seats. Since each section would be generated by its own rib node, this approach allowed us to optimize the build time by activating/deactivating the sections on the fly according to the camera frustrum.
However, this trick was not usable for some shots because of the camera path or the wide framing. It was not a big deal though: Golaem still nailed it!

Where did you used Golaem in the battle shots? What was done in simulation or in layout?
We used Golaem for all the vikings in the aerial shots, and to populate the backgrounds when the camera was inside the melee. Because we wanted to be able to compute the feet contacts with the grass, we had to keep the foreground warriors inside the animation scene.
After several iterations to make everything visually coherent, we ended up with a battle of about 500 soldiers. Our main concern for this sequence was to make sure the fighting choreography was coherent between the two fighters facing each other. To avoid any issue, we timed the animations so that any randomly picked fight cycle could be coupled with another one while staying believable.

How did the Layout helped you making the shots faster?
The coliseum had to be fully crowded so it didn't need any change. On the viking sequence, considering the agent count, Golaem was quick enough to relaunch the simulations on the fly and tweak the parameters to get the desired effect. Overall, we didn't have much use for the Layout Tool :)

Is there something in the crowd setup you are most proud of or which prevented you from sleeping?
The actual big deal was related to the visual style of the Playmobils. For this production, we developed a specific technology to animate and render the facial features of the characters. To sum it up briefly, the eyes and mouth were transported under the form of dynamically generated shapes inside the rig, and converted to shading data at render time in Guerilla Render (to know more, check out our SIGGRAPH paper!). This was unfortunately not possible to push this approach inside the Golaem rig. We had to deploy another strategy for the crowd characters: We precomputed some 20 facial animation cycle and stored them as animated textures. Each agent was then assigned a set of randomly generated numeric values (character type, gender, cycle index, frame offset, speed). A custom shader was eventually written in Guerilla to put these textures on overlay according to these variables, the agent's geometry, and the texture coordinates.

Another challenge we had to face design-wise is that in the Playmobil world, everyone is the same height. As a consequence, the coliseum crowd looked dramatically flat. To avoid this while sticking to the original design, we had to make a new animation pass and rethink the verticality of the motion. The characters' animation cycles were then modified to add more vertical variation: they started jumping up and down, bending, doing the wave and shaking giant flags. With these simple modifications, the resulting simulation was much more convincing.

Anything else you would like to add?
If you look closely to the crowd during the Viking song, you might see some of my own dance moves. One more reason to see the movie !

Learn more