I. – Camera Path

Modify example path:

  • Spawn a server (spawnserver mp/q4dm1) and type exec camedit.cfg & camLoadPath campath1.dat

That’s what you should see now:

Camera Objects:

  • camera path (green line) : its like track on which the camera moves along
  • frames (white arrows) : defines the frames/speed of the camera movement
  • waypoint : point on a track that defines the position and viewpoint of the camera
  • controlpoint : point to define the path (straight, curvy, etc)
  • target : the target is a static point where the camera looks at (if a waypoint is set on a target)

To get an idea how the system works, press UPARROW (camEmulatePath). That gives you a preview of the current path (emulating path).

Okay, lets start: as a spectator you can move through the hole map. To edit a waypoint move as spectator to a waypoint and press PGUP (camEditWaypoint). Now you’re on the waypoint’s focus and change the position with your controlkeys (forward, backward, right, left, up, down) and change the viewangle with your mouse. With RIGHTARROW and LEFTARROW you can roll the waypoint.

360° spin (don’t set smoothing! Explained later):

  • waypoint: A B C
  • roll: 0° 180° 359.9°

Apply the changes with END (camFinishEdit) or if you want to discard the changes, press HOME (camCancelEdit). The camera at the waypoint will now look at the same direction as you did. Move near a controlpoint and press PGDN (camEditControlpoint). I think the easiest way to understand how controlpoints work is either testing or imagine the following:

A cord is fixed to two points (A and B). Grab the cord on the center and move it to all directions, watch how the cord changes its direction. You can also grab it near Point A, move it around and look how it affects.

It’s the same way how the controlpoints work. The fixed points are waypoints, your grabbing finger is the controlpoint and the cord is the track/path.

Editing a controlpoint is the same as editing a waypoint, except the viewangle doesn’t matter.

  • NOTE: when editing a camera object, the object closest to your current gets edited. Don’t forget to press END when you want to apply the changes!

Test to modify the example path to get a feeling for the whole thing. Preview it by pressing UPARROW.

If you want to save a path, toggle console and type camSavePath filename.dat .

You can also add a waypoint on an existing path. Just edit a controlpoint and press INS to add a waypoint. To delete a waypoint, edit the waypoint and press DEL (camRemoveWaypoint).

Creating own path:

After getting to know how to edit camera objects and got an idea of the camera mod’s possibilities, this is the fun part. By creating paths you can be creative and make your own crazy camera movements.

Spawn a server and execute the camedit config. Move to a point on the map where you want to have your startpoint and press INS (camAddWaypoint). Look for a second point where you want your camera to go by and add another waypoint – a path is drawn. Add waypoints wherever you want to change the position or view of the camera. Edit the controlpoints how you want to affect the track and define the camera’s movement.

You will notice, that between waypoints with bigger distance, the camera moves faster than between waypoints who are close together. When going into editing modus of a waypoint (camEditWaypoint) and type camGetSpeed in console and compare it to another waypoint’s speed, you’ll see that the speed isn’t the same which makes it look not constant. You can achieve constant or custom speed by setting either for every waypoint or get the same speed for all waypoints of your path.

  • Customspeed: Edit a Waypoint and type camGetSpeed . you see the current speed of the waypoint. To change it, type camSetSpeed <value> .
  • Commonspeed: To set the same speed for all waypoints type camSetCommonSpeed <value> .

The speed isn’t a real value because it calculates the frames between waypoints. To set frames manually, edit waypoint and type camSetFrames <value>. To get the current frames, type camGetFrames.

Preview your result. In 99% you will notice that when the camera arrives at a waypoint it looks like a little stop and not very smooth, that’s because the different viewangles between the waypoints. Solution:

Edit the Waypoint and type camSetVaSmoothing <percent> . By setting 100 percent you’ll get a total smooth transition between the waypoints and the viewer wont even notice that there is a waypoint in between. To smooth the viewangle of all waypoints type camSetCommonVaSmoothing <percent> .

Additional info for ViewangleSmoothing:

It includes acceleration and deceleration which means if Waypoint A has 100% VaSmoothing and B has 0%, the viewangle change accelerates all the way. When A and B are set to 100%, the va change accelerates the first half the way to B and decelerates the second way.

Although 100% make it looks very smooth, the speed can get very unconstant, so I recommend to use smaller values (around 10).

To create a target, edit a waypoint and type camSetTarget <targetname> into console. Press END to finish the waypoint editing and type camEditTarget now you can edit the target as the other camera objects. To link a waypoint with target, edit the waypoint and type camSetTarget <targetname> .

When a target doesn’t exist, it will be create with camSetTarget, if it already exists, camSetTarget will link the target with waypoint.

If you want the camera to stops at a certain point for some time, edit the waypoint you want to stop and type camSetWaitTime <value>.

WaitTime also includes a pause function which freezes (players stop moving etc) but the camera movement goes on. To do that, set camSetWaitTime -1.