Videomaking
From Q4MAX
Contents |
Introduction
Starting with Q4Max 0.77, you have the possibility of directly taking screenshot sequences with netdemos. This allows you to have a full fps sequence with a constant speed regardless of your graphics settings and pc performance, instead of requiring a fast machine for some 30 fps captures with i.e Fraps, or just giving you a fluctuating speed and other side effects of converting netdemos into renderdemos and using the avidemo command.
The screenshots can be either in tga or jpg format (demo_aviscreenshotJPEG 0|1) and will be saved in q4max/screenshots/avidemos.
Framerate
The screenshot output will be at the framerate corresponding to the tickrate the demo was recorded in.
The engine spaces frames in integer intervals, so you don't get 60 fps with si_fps 60 (as 1000/60 = 16.6666667). It'll work with a 16ms interval, giving you 62.5 fps.
| si_fps | frametime | framerate |
|---|---|---|
| 60-62 | 16ms | 62.5 fps |
| 63-66 | 15ms | 66.666667 fps |
| 67-71 | 14ms | 71.428571 fps |
| 72-76 | 13ms | 76.923077 fps |
| 77-83 | 12ms | 83.333333 fps |
| 84-90 | 11ms | 90.909090 fps |
| 91-100 | 10ms | 100 fps |
| 101-111 | 9ms | 111.111111 fps |
| 112-125 | 8ms | 125 fps |
Capturing an entire netdemo
Use the avinetdemo <filename> console command. You can use tab completion to cycle through possible netdemo filenames - just be sure to quote the filename when you're done, like you would when manually playing a netdemo from the console.
i.eavinetdemo "my-netdemo.netdemo"
Q4Max will take a screenshot for every frame until the demo ends. The files will reside in /q4max/screenshots/avidemos/<filename>
i.e/q4max/screenshots/avidemos/my-netdemo/
If you decide to interrupt the capture, press esc and click on disconnect, or faster, use a disconnect bind.
Capturing specific parts of a netdemo
The procedure is quite similar to what you may be used to from Quake 3.
- You will want to have a disconnect bind to stop demo playback when you are done. You will also need to bind "toggle demo_aviscreenshots" to your the key of your choice, so that you can manually start/stop screenshotting whenever you want.
- i.e
bind space "toggle demo_aviscreenshots"
- Eventually, set demo_avidemoname <filename>as the screenshots will be saved in q4max/screenshots/avidemos/<filename>. If not, it'll save in /q4max/screenshots/avidemos/unknown .
- Start playback as a timedemo, either from the demo menu, or from the console with
playnettimedemo "my-netdemo.netdemo"
- This is crucial. Playing the netdemo as a timedemo ensures you're not missing any of the possible frames per second. Doing otherwise will result in duplicate / missing frames, making the capture worthless.
- Press your aviscreenshots bind to start taking screenshots, press it again to stop.
- If you feel the timedemo is going too slow inbetween the parts you want to capture, toggle r_vertexlight to speed it up, using a bind.
- If you feel the timedemo is going too fast inbetween the parts you want to capture, toggle r_swapinterval to slow it down, using a bind.
