In 3D computer animation, a virtual camera moves while preserving the upward direction of 3D space, which is given by the view up vector. For many applications, it is necessary to specify arbitrary view up vectors. However, traditional camera methods to do this cause severe singularity and redundancy in their parametrizations.
In this thesis, we present a new camera control method which is free from the problems. We first introduce the notion of the common view up vector, which is the view up vector shared by two camera orientations. From a camera motion, we isolate the rotation component determining the path of the common view up vector. We present a new orientation curve, called an optimal camera orientation curve, which minimizes the torque history of this component. The optimal camera orientation curve has the camera upright property, i.e., it preserves the direction of a common view up vector as much as possible. We obtain an analytical formula of an optimal camera orientation curve passing two camera orientations, called a Clerp. To find an optimal camera orientation curve satisfying general boundary conditions, we extend traditional unconstrained optimization techniques in Euclidean space to the unit quaternion space for numerically computing camera orientation curves. We finally give a number of practical camera path construction schemes to generate curves with the camera upright property.