The camera can be interfaced through either the in game camera system
(activated by typing "pushmenu camera" in the console) as well
as from the scripting language.

Spawning a Camera

To spawn a camera from script use the following command:

spawn Camera targetname MyCamera

Switching Between Cameras

Switching between cameras is accomplished with these commands:

cuecamera cameraName [switchTime]
Switch to the specified camera. If switch time is specified and you
are not already in camera view, the camera will smoothly transition
from the third person camera to this camera.

cueplayer [switchTime]
Switch back to third person mode. If switchtime is specified, than camera
will switch over that period of time.

Other Useful Scripting Commands

freezeplayer
Freezes the player wherever he is standing.

releaseplayer
Release the player after he has been frozen.

fakeplayer
Create a fake version of the player, hide the real one. The fake player
has a targetname of “fakeplayer”.

removefakeplayer
Remove the fake player and unhide the real one.

In-game Camera System Commands:

cam new
Start a new camera path.

cam load [filename]
Loads the camera path from cams/[filename].cam. If no filename is set,
filename is taken from the cam_filename CVAR.

cam save [filename]
Saves the current path to cams/[filename].cam. If the targetname of
the path has not been set, then it is set the same as [filename]. If
no filename is set, filename is taken from the cam_filename CVAR.

cam savemap [filename]
Saves the current path to cams/[filename].map. This is a special format
for integration into existing map files.

cam setpath targetname
Changes the current path to the path with the specified targetname.

cam settargetname targetname
Sets the targetname of the current path point [targetname].

cam settarget target
Sets the target of the current path point to [target]. Doing this will
cause the entity with the targetname of [target] to be triggered when
the camera reaches this path point.

cam setthread threadname
Sets the thread of the current path point to [threadname]. Doing this
will cause the thread [threadname] to be executed when the camera reaches
this point.

cam setspeed [speed]
Sets the speed of the camera at this path node. Speed is displayed above
the currently selected path point when the path is being drawn. Speed
is the number of path points the camera will go through per second,
so a speed of 2 makes the camera take ½ a second per path point.
Speed defaults to 1. SetSpeed sets the speed on the current node and
any nodes added in the future.

cam add
Creates a new path point at the current player location and angle using
the current speed.

cam delete
Deletes the currently selected path point. The current node then becomes
the path point that was immediately after the path point.

cam replace
Changes the position, angle, and speed of the currently selected path
point to that of the player and current speed.

cam moveplayer
Places the player at the position of the current path point. The player’s
view remains the same, however.

cam next
Selects the next point in the path.

cam prev
Selects the previous point in the path.

cam show
Displays the current path. The Current path point is draw in yellow
with the speed drawn above it. At each node, a coordinate system is
drawn to show the orientation. Red is forward, green is right, blue
is up. The lines draw between path points to indicate the direction
the camera will take.

cam hide
Stops drawing the current path.

cam play
Makes the camera play the path once.

cam play [targetname]
Causes the camera to play the path specified by targetname once.

cam loop
Makes the camera play the path and continuously loop.

cam loop [targetname]
Makes the camera play the path specified by targetname and continuously
loop.

cam stop
Stops the camera and switches the view back to the player.

cam watch [targetname]
Mark the node to tell the camera to watch the specified target when
the camera gets to that control point. [targetname] can be one of the
reserved keywords path, node or none or it can just be a targetname
for a specific entity:

path
Watch the path as we move, in other words look in the direction
that we are moving

node
Orient ourselves based off of the orientation in each node, in other
words use the stored orientations at each node to determine our
view.

none
Do not make any orientations whatsoever, This means that the camera
will not change it’s orientation at all.

cam nowatch
Mark the node to tell the camera to stop watching any entities when
the camera gets to that control point. Equivalent to “cam watch
none”.

cam setfov
Set the fov of the current path node.

cam setfadetime
Set the fadetime of the current path node.

Script commands:

All commands must have the targetname of the camera pre-pended.

start
Start the camera moving or watching.

pause
Pause the camera along its path.

continue
Resume the camera’s movement.

stop
Stop the camera from moving and watching.

speed newSpeed
Set the speed of the camera.

fov newFov [fadeTime]
Set the fov of the camera and optionally the time over which the fov
should transition, default is whatever the camera’s fadetime is
set to.

follow targetEntity [targetWatchEntity]
Start following an entity, if that entity is a splinepath then the path
will be followed. If targetWatchEntity is specified than that entity
will be watched while following targetEntity. By default targetEntity
will be watched as well.

follow_distance followDistance
Distance at which the camera should follow an entity, also used for
orbit radius.

follow_yaw yawOffset
Yaw offset of the camera following an entity.

follow_yaw_absolute
Make the follow yaw absolute rather than relative to the follow entity’s
angles

follow_yaw_relative
Make the follow yaw relative to the follow entitiy’s angles

orbit targetEntity [targetWatchEntity]
Start orbiting an entity, if that entity is a splinepath then the path
will be followed and looped. If targetWatchEntity is specified than
that entity will be watched while following targetEntity. By default
targetEntity will be watched as well.

orbit_height newHeight
Height offset for orbiting an entity.

watch watchEntity [fadeTime]
Start watching an entity, and optionally the time over which the transition
should occur. The default transition time is the camera’s fadetime.

watchpath [fadeTime]
Start looking along the direction of movement and optionally the time
over which the transition should occur. The default transition time
is the camera’s fadetime.

watchnode [fadeTime]
Start basing the camera’s orientation off of what is stored in
the camera path nodes and optionally the time over which the transition
should occur. The default transition time is the camera’s fadetime.

nowatch [fadeTime]
Stop watching an entity, looking along a path or anything else. The
camera’s orientation is now static. Optionally transition overt
the time specified. The default transition time is the camera’s
fadetime.

lookat targetEntity
Immediately make the camera look at the given entity

turnto newAngles
Immediately turn the camera to the desired angles. NewAngles is a vector

moveto targetEntity
Immediately move the camera to the targetEntity’s origin

movetopos newPosition
Immediately move to the specified world space position

fadetime newFadetime
Specifiy a new fadetime for this camera, this fadetime will be used
for any of the watch or follow commands if no explicit fadetime is specified.

cut
Switch cameras immediately, don’t transition over time.

nextcamera cameraName
Next camera to use in a security camera system arrangement.

setthread threadName
Sets the thread of the camera which is accessed from a trigger_camerause.