7.3 - Camera Movement

3D computer graphics animations almost always involve the movement of a virtual camera. This lesson discusses camera motion. First, let’s distinguish between a “camera shot” and a “camera movement”.

A camera shot is how a scene appears in a single frame of an animation. Common “camera shots” (1) are:

Composing shots that hold a viewer’s interest is the art of film making.

But what we want to discuss is camera movement. If you abruptly move a camera from one view to a totally different view it is called a “cut”. A “cut” is straightforward. You simply define a new camera position and orientation. What is harder is smooth, continuous motion from a camera’s current location and orientation to a new location and/or orientation. This type of camera movement is critical to all animations.

Common Camera Movements

The following diagram from the Television Production Handbook, page 141, shows the common names assigned to various camera movements. In the real world a camera can’t jump to a new location; it has to move from its current location. Therefore camera motion is described relative to the camera’s current location and coordinate system. Study the diagram and then the descriptions of various camera motions.

Camera movements
  • Tilt rotates a camera’s view up or down. You can tilt up or tilt down. This rotates about a camera’s u axis.
  • Pan rotates the camera’s view horizontally about the camera’s eye location. You can pan left or pan right. This rotates about a camera’s v axis.
  • Cant tilts a camera sideways while maintaining its location and viewing direction. You can cant left and cant right. This is a rotation about a camera’s n axis.
  • Truck moves a camera’s location laterally (left or right) while the camera’s direction of view is unchanged. You can truck left or truck right. This is a translation along a camera’s u axis.
  • Pedestal elevates or lowers a camera on its stand. You can pedestal up and pedestal down. This is a translation along a camera’s v axis.
  • Dolly moves a camera closer to, or further from, the location it is looking at. You can dolly in and dolly out. This is a translation along a camera’s n axis.
  • Arc moves a camera in a circular path while maintaining the object it is looking at in the center of its view. You can arc left and arc right. This is a rotation about a vector in the direction of a camera’s v axis with the center of rotation at a camera’s center point.

If you have a more sophisticated base for your camera, you can:

  • Tongue rotates a camera right or left on the end of a fixed boom. This is a rotation about a camera’s v axis, where the v axis is centered at the base of the boom.
  • Crane rotates a camera up or down on the end of a fixed boom. This is a rotation about a camera’s u axis, where the axis is centered at the base of the boom.

Let’s summarize these camera movements based on the part of the camera definition they manipulate.

Movement eye center u v n
Tilt pivot   rotate    
Pan pivot     rotate  
Cant pivot       rotate
Truck     translate    
Pedestal       translate  
Dolly         translate
Arc   pivot   rotate  

The above movements can be combined to create complex camera motions. For example, you could pan and tilt at the same time. (There are 232 possible motions if you consider all possible combinations of the seven basic movements.)

The camera motion names allow people in the industry to communicate clearly about how a camera might be moved. Note that all of these camera movements are relative to the camera itself; it is not required that a camera be mounted on a camera stand. Even if your camera is mounted on a drone, these camera motions are valid and relevant.

Camera Motions using lookat

If we used the lookat function described in the previous lesson to build a camera transform, what values must change for each camera movement? The lookat function required 3 elements: an eye location, a center location, and an “up” vector.

Movement eye changes? center point changes? “up” vector changes?
Tilt no yes no (but maybe)
Pan no yes no
Cant no no yes
Truck yes yes no
Pedestal yes yes no
Dolly yes no (but maybe) no
Arc yes no (but maybe) no

Therefore, you can move a camera by re-calculating the appropriate parameters to lookat and then call the function again. While this is true, you have to remember that you are working in 3-dimensional space and that each camera motion is relative to the camera’s current orientation. For example, if a camera’s u axis is currently <0,-1,0>, which is pointing down along the -Y axis, if you truck right for this camera you will be moving along the -Y axis. Camera motion is relative to the current camera!

Before we write code to move a camera we need a way to calculate locations along a path of motion. That’s our next lesson.

Glossary

camera shot
Describes what is visible in a single frame of an animation.
camera movement
Describes how a camera moves from its current location and orientation to a new location and/or orientation during a sequence of frames.
Next Section - 7.4 - Moving a Camera