![]() |
MAKING MINI MOVIES. |
We started off by shooting some video's of Yoda-the-MINI with a standard digital camera. (An Olympus D-560)
We needed to know where the camera was relative to the road and the car.
So we laid out some small traffic cones every meter across the ground and
measured the position of the camera and the car relative to that grid:
Next, we split the movie from the camera into 226 single frame images using 'mplayer' (a Linux video replay tool) and I wrote a computer program to identify the 16 most 'contrasty' regions of each image (I call them 'tags') - and another program to take one frame of the video, and find out where each of those 16 tags moved to in the next frame. Running this set of operations on every frame of the video gave us a file containing the direction and speed with which those tags moved. By selecting the tags that agree best with one another, and discarding any that went obviously 'wild', we know the amount by which the images moved throughout the movie. Since we know the field of view of the camera lens (it's in the manual), we could figure out how the camera was moved during the filming.
In order to debug that program, I wrote a program to plot the tags onto the original image so I could see that they were staying stuck down. Using 'mplayer', I made a movie showing those 'tags' being tracked in the image
Meanwhile, Oliver built a 3D spaceship model:
Next, we recreated the road surface and used a 3D model of the MINI Cooper -
positioning them according to the measurements we made of the real scene and
performing small adjustments to align them precisely with the first frame of
the movie.
These 3D models were painted bright blue for the final rendering - so they
could be 'blue-screened' out later - yet still serve to mask out the visible
3D objects as in this image:
Next, Oliver wrote scripts to move the mother ship and the little daughter craft using my own C-like scripting language 'PSL'. This turned out to be suprisingly difficult. The original movie's camera moves didn't really fit his timing and framing needs - but he managed quite well for a first effort.
Once we had the timing right and could see the aliens swooping around against a blue screen - being hidden behind blue scenery where needed - we had the PSL script dump a screenshot every frame.
The final step was to write a program to composite the blue-screen images against the original video footage. We shot the 3D graphics at much higher resolution than the video - so that when they were composited together, the blue screen images could be antialiased. If we'd rendered the graphics with antialiasing in the first place, there would be one pixel regions around the edges of the object that would be an average of the blue colour and that of the object - resulting in blue haloes around everything in the composited scene. Doing antialiasing in the compositor worked out much better.
![]() Unsuspecting MINI |
![]() The Mothership drops something |
![]() Something with wiggly legs |
![]() Watch out! |
![]() Nice trip. |
![]() Ouch! |