Everyone knows that Budweiser drinkers are some of the most disciplined
people on the planet, and it was exciting to work on a commercial that celebrates this
rich tradition. My primary role in this spot was building the pipeline
that allowed us to position, texture and animate 90,000 individual
cards. The biggest challenge was designing a workflow that would allow
us to work in broad strokes in general, but still manipulate individual
cards when the need arose.
The heart of the technique was to represent each card using a Maya
particle. I wrote a set of particle expressions to manipulate
attributes on the particles, and then a custom Maya node which interpreted these attributes to generate
the actual card geometry. The image above
shows the master Maya scene used to position the cards. Adjacent is a
QuickTime showing the raw output of the custom Maya node which generated the
geometry.
To create the invidividual people in the stadium, we used the crowd simulation
software Massive from
Massive Software.
A challenge this presented was the need to very precisely place tens of
thousands of agents into the actual seats of the stadium
backplate. I worked with James LeBloch, who served as the lead Massive
artist, to build a system which allowed him to place locators on top of
the stadium photography demarcating the positions of seating sections
and rows. I then wrote a MEL script which analyzed the positions of these
locators and exported curved agent generators into Massive. We then
wrote out the positions of the Massive agents as a particle system, and built our cards
particle system from that, allowing us to achieve a one-to-one
correspondence between agents and cards. Some additional code derived
orientation and UV coordinates from the NURBS stadium geometry and
baked the data into the particle system.
 |
The image above depicts the maps that we used to animate the cards. The
upper portion is the actual texture that was mapped onto the cards
using UVs derived from the stadium geometry. The lower portion is what
we labeled the "time map", which used grayscale values to express the exact time that
a particular card would appear initially. An
additional map dictated the moment when the card was flipped over. This proved
to be a very effective way for the artists, specifically Laurent Ledru
and myself, to control the timing of the animation using intuitive 2D
techniques. However because an additional bit of custom code baked
these values from the image into custom particle attributes, when the
client requested a change in the time that individual cards flipped over
(which did happen)
,
we could address it quickly using the component editor in Maya.
One additional technique we used to control the cards' animation came
in the form of a Maya node I developed with a long-time friend
and collaborator,
Hai Nguyen, who has since become a Method employee.
We created an interface which abuses the graph control built into Maya
to create an intuitive representation of one dimensional probability
distribution functions. Using this interface I could easily control
several attributes of the cards' animation, graphically adjusting
things like the probability of ambient shift in the cards' position,
representing people shuffling their card or getting tired. The image
above shows a bit of this node, which we dubbed
Loaded Dice, in
action.
And here's a shot breakdown created by Sarah Eim depicting the various
elements of one of the shots.