Setting Up Cameras
Document Summary: This document explains how to rig a camera in a 3D package, import it into the engine and get it working in-game.
Document Changelog: Created by Jeff Farris and Aaron Herzog.
Cameras - Setup and Rigging
The pipeline uses COLLADA, so making sure that your exporter version matches the version of COLLADA used in importing to the engine is important to make sure you get correct results. You must also adjust the axis of the camera to match that of the in-game camera, as well as treat the positive X axis in max as facing forward in the world. So most likely you will have to do some adjusting of your animation data before export.
Camera Import and Setup
Open up Kismet and make a new matinee sequence, open Matinee? and choose Import from the File menu. You should also be able to export a COLLADA camera anim from the Matinee window for bringing into 3D Studio Max as well.
Many times it is easier just to start with a camera that was from the engine and brought into 3D Studio Max as all the axis stuff should be taken care of.
Conceptually, a CameraAnim is simply a pre-authored "animation" that is applied additively to the camera. The AnimatedCamera can play multiple CameraAnims, blend in/out, etc. This is intended to allow content creators to make arbitrary fully-keyed camera motions that can be played on demand (e.g. shakes, camera swings like the Gears of War chainsaw camera, etc). You can use them to layer camera motion as well, such as playing a handheld camera bob over a simpler Matinee camera track.
In practice, a CameraAnim is basically a Matinee camera-control group. This allows for keyframing of any interpolatable CameraActor variable, including FOV and post-process data. CameraAnims can be created from scratch or exported from an existing camera group in Matinee. They are edited in a trimmed-down Matinee interface, and can be previewed real-time in the editor viewports.
You can play a CameraAnim either through the code interface in the Camera object, or through Kismet using the "Play CameraAnim" action.
One notable feature of CameraAnims is the ability to play the anim in an arbitrary "space". For example, imagine an explosion happens near the player. We can author a single CameraAnim where the camera is knocked backward, but then play it pointed toward the explosion. The in-game result will be the camera tilting away from explosion's location.