Add QC syntax highlighting section
[xonotic/xonotic.wiki.git] / Democapture.md
1 Capturing video clips
2 =====================
3
4 Capturing video clips in Xonotic is easy, and does not need any external tools such as screen capturing software. You can choose to capture with either the (lossy) Ogg Theora codec or alternatively to an uncompressed avi file. Beware that capturing while playing is a bad idea, as this will result in very choppy video. Always record a demo of what you are going to capture before rendering it to a video file. Enabling auto recording of demos is a good idea, which can be done via the menu (Media -> Demos -> [X] Auto record demos). Playing them back can be done from the same menu.
5
6 cl\_capturevideo
7 ----------------
8
9 To capture a demo to a video clip you first start playing the demo and toggle the `cl_capturevideo` cvar. When it’s on (1), the engine will start capturing screen frames and save them as either ogg or avi. The engine will slow down the demo enough to be able to capture all frames, which it can’t do if you are recording while playing. Toggling the cvar to 0 will stop recording.
10
11 To work around the problem of a visible console in the beginning and end of a recording, you will have to bind `cl_capturevideo` to a key as follows:
12
13     bind x "toggle cl_capturevideo"
14
15 where x can be any key (any letter or number (0-9), pgup, pgdn, alt etc.)
16 Note that the ‘toggle’ command simply toggles the value of `cl_capturevideo`. This means that recording starts the first time you hit the key and stops when you hit it again.
17
18 To switch between Ogg Theora and avi, use one of the following commands:
19
20     // enable encoding to ogg theora
21     cl_capturevideo_ogg 1
22
23     // use uncompressed avi instead (beware of huge files!)
24     cl_capturevideo_ogg 0
25
26 Other useful cvars:
27 -------------------
28
29     // increase the framerate of the captured clip (eg. to 60)
30     cl_capturevideo_fps 60
31
32     // quality setting for ogg theora (video if recording to ogg, eg. 32 (default))
33     cl_capturevideo_ogg_theora_quality 32
34
35     // quality setting for ogg vorbis (audio if recording to ogg, eg. 3 (default))
36     cl_capturevideo_ogg_vorbis_quality 3
37
38 Fast forwarding
39 ---------------
40
41 To fast forward, play a demo and type eg. “slowmo 50” into the console to fast forward 50 times faster. Set slowmo back to 1 when you want to start recording to return to normal speed. As of yet there’s unfortunately no way to rewind other than restarting the demo, which kind of sucks (!). Hope that’ll be fixed in the future…
42
43 Using the demo camera
44 =====================
45
46 The demo camera can be enabled with
47
48     camera_enable 1
49
50 It will by default follow the player and let you move the camera around. When the camera is disabled (default), the player's 1st person view is shown.
51
52 Camera modes
53 ------------
54
55 ### Chase mode (default)
56
57 * Can be enabled with: `camera_free 0`
58 * Allows you to chase the player, and by default rotate and move the camera freely
59 * You can smooth out the camera path with: `camera_chase_smoothly`
60 * You can have the camera aim at the player with: `camera_look_player`
61
62 ### Free fly mode
63
64 * Can be enabled with: `camera_free 1`
65 * Allows you to move and rotate the camera freely, and does not follow the player
66 * You can have the camera aim at the player with: `camera_look_player`
67
68 Changing speeds
69 ---------------
70
71 * Change the treshold for ignoring small mouse movements: `camera_mouse_treshold`
72 * Change the camera rotation AND camera movement attenuation (why are these both in one cvar?): `camera_speed_attenuation`
73 * Change the camera movement speed in chase mode: `camera_speed_chase`, and free mode: `camera_speed_free`
74 * Change camera roll speed: `camera_speed_roll`
75
76 The camera can be moved with the same keys as you move with in the game, as well as `+moveup`, `+movedown`, `+roll_left` and `+roll_right`. These keys can be bound to a key as follows (eg):
77
78     bind x +moveup
79
80 To reset the camera, use:
81
82     toggle camera_reset
83
84 (to mand1nga: why is this a cvar, not a command?)
85
86 You can get a list of all camera cvars and their descriptions by typing `camera_` into the console and then hitting tab. You’ll also see the current value as well as the default value inside brackets, so don’t be shy to fiddle around with them :)
87
88 Advanced capturing
89 ==================
90
91 There are a couple of tricks which you can do to eg. change shooting angle of the camera and hide HUD elements.
92
93 Changing shooting angles
94 ------------------------
95
96 To change the angles of the camera you’ll have to create many video clips which you later have to merge in a video editor, but luckily you don’t need to restart the demo for each angle. Instead you could use some simple scripting to “pause” the demo exactly at the moment you stop recording a clip. (and vice-versa)
97 The console commands to accomplish this look something like this:
98
99     bind x "slowmo 0;cl_capturevideo 0"
100     bind y "cl_capturevideo 1;slowmo 1"
101
102 This’ll make the x key stop recording as well as pause the demo, giving you time to set up the next shooting angle and settings for the camera. The y key will start recording and immediately unpause.
103 Don’t forget you can put all commands and cvars into an autoexec.cfg file (which you might have to create!) in your data/ directory. Then they will be set at each startup of Xonotic, you can simply copy & paste them from here and don’t need to type them in manually each time.
104
105 Hiding HUD elements
106 -------------------
107
108 * `r_letterbox –1` hides most HUD elements, including the kill messages.
109 * If you instead only want to hide the HUD, use `viewsize 120` (100 is default)
110 * To hide the weapon, use `r_drawviewmodel 0`
111 * To hide the crosshair, use `crosshair 0`
112 * To hide waypointsprites, use `cl_hidewaypoints 1`
113