Many 3D environments, e.g. 3D computer games, employ very simple camera control systems. Often the virtual camera, which is the view through which the user sees, is fixed to the virtual character’s view or an over the shoulder view is used. Sometimes the user is required to control the positioning of the virtual camera in addition to manipulating their 3D character. A camera with more intelligent positioning and motion could yield a more exciting experience for the player and remove the burden of controlling the virtual camera. Using cinematography techniques, a 3D environment could take advantage of clever camera control that has been developed in the film industry over many years and so create a more dramatic experience in which the camera is a storytelling element in the game.
Implementing this level of camera control is an imposing task, however. While in film all action is scripted and so the director/camera operator knows where all participants of the scene will be at every instance, in a dynamic 3D environment such as a 3D game, there is no way of knowing the exact future state of the scene on a continual basis. The camera control system must therefore use techniques to try and predict the scene’s state, react to action in the scene or a combination of both. In this way virtual cinematography through camera control would be achieved in two stages: firstly making the camera intelligent and secondly applying cinematography idioms to it.
The camera needs to be intelligent so that it will find the best possible position to shoot from, will move smoothly when changing positions and will not allow its subject to become occluded. Cinematography will be applied in terms of different techniques employed traditionally in film such as cutting, panning and zooming. In addition to 3D computer games in real-time, these techniques could be applied to machinima (making 3D animated features using computer game engines) and demos for computer games, i.e., the non-interactive opening sequence of a game.