Making of "New Penguoen 2.38"

The main goal of "New Penguoen 2.38" was to try to reconstruct with Blender the wonderful 2005 Citroen C4 spot (the dancing transformer's one, made by Embassy Vfx).
I loved that spot as I saw it, so I had the idea: wouldn't have been funny to replace the giant robot-car with a giant silly penguin? In the meantime, the Suzanne Awards deadline came out, so I thought to submit it, if only it could be finished in time.
The gag of the roasted penguin at the end of the animation came out in progress; so, as the headline of the original spot was "New Citroen C4 - Alive with Technology", the headline for my parody became "New Penguoen 2.38 - Cooked with Blender 3d". 2.38 was the version number of Blender I used, with all those new marvelous animation features!

From a few researches I did, it came out that the C4 spot was located in Vancouver, Canada, on the roof of a post office. Actually, Embassy crew shot high resolution photos of the environment and then remapped the images on 3d geometry. That's exactly what I did inside Blender: the only difference was I hadn't the hires photos of Vancouver, so I had to paint in The Gimp detailled textures of the buildings and of the far landscape.
But first, I had to set the environment.

The environment

There are a few python scripts that can be used to have a camera-tracking in Blender; I preferred to do all the work by hand. I didn't want a too perfect matching. I loaded a low resolution avi of the original spot (found on the web) as background in a camera window, to use it as reference (a template, if you prefer).

Ok: first, add a plane to your scene (Add>>Mesh>>Plane), then assign a material (F5); go in the texture window (F6) and load the animation as Image, selecting the Movie option. Then put the mouse cursor on a 3d window and press NumPad0 to have the camera window; in the window header go to View>>Background Image>>Use Background Image>>Load texture and load the texture of the material.

New Penguoen 2.38

At this point you can delete the plane, its only purpose was just to have a texture to be selected.
In this case, the background avi worked as a storyboard too; I had all the shots and discovered that the total lenght of the spot was 751 frames.

I started to add a simple plane for the floor (actually the roof of the post office) and some cube primitive for the main elements.
Looking in the camera window, I moved the camera (select the camera, G) to match the perspective. With a few tests I found that the focal lenght was near to 31.0 (Lens value, F9; I>>Insert Key>>Lens with mouse on the camera panel to animate).
This way, by adding ipo's keys to the camera position and rotation (I>>Insert Key>>LocRot) and always looking for the best corrispondence between the original spot elements and my cg primitives, I made all the shots and at the same time I restored an almost similar environment.
By putting a sphere in the center of the scene and making little renders, I matched also the direction and the intensity of the sunlight. A lamp under the floor provided a fake radiosity effect.

Environment

751 frames may take a very long time to render; raytracing lamps casting shadows add a lot of time too and if you have a very big setting, the octree (bottom of render window, F10) must calculates very far objects. In the end the rendering times become huge, not the best for animations. So my priority was to lower rendering times in every possible way.
A way to do this is to let the octree calculate only the main or the moving elements in the shot, by setting the materials for the motionless and far elements to shadeless and deselecting the traceable option in the material window. The octree won't calculate the untraceable materials and, as they are shadeless, there are no shadows to be calculated.
But what about the penguin casting a shadow on the shadeless floor? A small OnlyShadow plane has been constrained (CopyLocation constrain, Constraints panel F7) to an Empty parented (Cntrl+P) to the armature, so to follow the penguin shiftings. I deselected the Z axe of the constrain, so the plane didn't rise as the penguin jumped.
Of course, every shadow and light effect for the shadeless objects had to be painted in the textures, or baked in some way.

Environment

The casted shadows of street-lamps and baskets have been baked by a rendering from above, and the alpha channelled image has been mapped on an untraceable plane to match their location.

Baked shadows

The main building on the right midground has shadeless materials as well, but has been modelled (only for the visible sides) just to increase the perspective effect while the camera is moving. Then, it has been unvrapped with the ArchiMap UV Unwrapper python script and the layout exported in Gimp by the Save UV Face Layout script.

Below, a Gimp screenshot of the main building textures with painted shadows and the background mattes: far buildings and sky have been saved as separated layers, the buildings with alpha channel.

The main building
Main building textures
Background matte painting
UP