There are a slew of new script commands that allow more robust control of the easy camera and the orbit camera. These commands can only be called on the server, so they are safe to call from mission scripts. I will briefly describe each new command, but I encourage you to get my help if there is a particular situation you are not sure how to handle. And if you don't understand my descriptions of the stuff, come by my office for a quick demonstration.
First a few notes. Most of these new commands require at least one object parameter, e.g. you can set the orbit cam to orbit the front of Harabec in a mission by providing the object name of his vehicle as a parameter. This brings up an interesting problem though because although Harabec's vehicle always exists on the server (nothing ever goes out of scope on the server) it may or may not exist (be scoped) on the client(s). To solve this these new camera commands force whatever object they reference, to be scoped on the client(s). This forcing of scope takes time, at least a tenth of a second in most cases, for this reason it may take the actual camera command that you issue up to about a third of a second to take effect on the client(s).
[snip]
Reminder: parameters enclosed in square brackets are OPTIONAL.
setPlayerCamera() - this command escapes from any of the other camera views and returns the player to her/his cockpit.
setFlybyCamera(object, [ cameraOffsetX, Y, Z, objectOffsetX, Y, Z]) - The flyby camera picks a spot relative to the object (specified by cameraOffsetX, Y & Z, or -6, 40 & 2 by default) to place the camera. The camera is then stationary but tracks a spot relative to the object (objectOffsetX, Y & Z respectively, or 0, 0 & 5 by default). The default values work very well, this camera is cool.
setTowerCamera(object, cameraPositionX, Y, Z, [ objectOffsetX, Y, Z]) - Similar to the flyby camera, except the camera position is an absolute world coordinate (not relative the object like in flyby cam). The camera sits stationary at the position at tracks the position relative the object (0, 0, 5 again by default).
setOrbitCamera(%object, [ %distance, %azimuthDegrees, %incidenceDegrees ]) - We all know what the orbit camera (aka view camera) is but now you have explicit control over it. Use this command to direct the orbit cam to a particular object. The azimuth parameter is relative to the Z rotation of the object. Azimuth of 0 shows the back of the object (so the camera has the same z rotatio as the object), and rotates counterclockwise. Incidence of 0 is at the side and 90 is at the top, but I think you can't go above some value. Default values for distance, az & inc are 20, 90 and 20, which give a good frontal view.
setDominantCamera(%object0, %object1, [ %x, %y, %z ]) - The dominant camera pretty much keeps both objects on the screen too, it looks over the shoulder of object0, and is directed at object1. The optional parameters x, y & z specify the offset from object0 where the camera is positioned. If ommited, x, y and z take the values 0, -25 and 12 respectively, which work very nicely.
setCombatCamera(%object0, %object1, L | R, %angle) - The combat camera finds a position equidistant from object1 and object2 that achieves the angle specified. Since two such positions exist for every pair of objects, you must choose whether you want to point to the Left or Right of the vector from object0 to object1 (hence the L | R argument). An intiutive way to think about the behavior of this camera is: it keeps both objects on the screen, and they are both the same distance from the camera.