ReMaic Studio 1.2 documentation

The most recent version of the documentation that you are now reading is that on the ReMaic Studio web page. If you are reading a local copy, and having problems, do check the current version since some updates may have been made since the version that you are reading. You can also check the latest news on ReMaic and ReMaic Studio.

Contents

1. Introduction

1.1. What is ReMaic Studio?

ReMaic Studio is a useful tool for refilming demos of Quake game-play and full-blown "Quake movies". Recordings that are shot "live" by an observer on a multiplayer server tend to have somewhat jerky camera-work. ReMaic Studio allows you to add the optimal camerawork to footage you have already recorded.

The software combines the functionality of several existing refilming utilities (ReMaic, AutoCam, and some parts of DemTool), and also adds the ability to position cameras and trigger areas that activate them interactively within a Quake level. It is composed of two parts; a Quake -game modification for setting up cameras, and a Win32 executable for using this information on an existing *.DEM recording to generate a screenplay for further tweaking and/or using this screenplay to refilm the recording.

If you already use ReMaic, or ReMaic in combination with AutoCam, you will want to switch to using ReMaic Studio. It runs substantially faster, avoids the use of the intermediate *.LS format, and provides an easier interface for specifying screenplay data than having to work out numerical co-ordinates.

And if you have not used any refilming utilities for Quake before, it's now time to start!

1.2. Availability

ReMaic Studio can be downloaded as a ZIP file that contains:

1.3. Installation and running

Unzip ReMaic Studio into your main Quake directory. Run rs map to place cameras in the level map.bsp, or enter the remstud subdirectory and run ReMStud.exe to start refilming.

2. ReMaic Studio basics

When you use the Quake engine to record a demo, it notes down the important events in the world surrounding you. These include the positions of other entities, the sounds that are played, and other assorted effects. The demo also notes the direction you were looking in. On playback, Quake remodels the world from the list of events that it has and displays it from the recorded perspective, using the game engine to render the scene just as if you were there for the first time.

This means that we can change the perspective from which a demo is seen quite easily, since the events themselves that make up the demo are not very dependent on your perspective when you recorded it. (But note that there is some dependency - only events within the same "visibility leaf" as the original view are recorded.)

A good way of specifying new camerawork for an existing recording is via a script of camera instructions that we call a screenplay. The original ReMaic used this mechanism for refilming; ReMaic Studio reimplements all the screenplay functionality of ReMaic. For details of possible screenplay instructions, you should read the appropriate section of the ReMaic documentation. ReMaic Studio is fully compatible with ReMaic v4. However, there was a little addition to the format in Remaic Studio 1.15 : in the eyes command you can now specify the entity you want to switch to (use "eyes 1" to switch to player's eyes). If you don't specify the entity, the default is 1. Note that ReMaic v4.0 doesn't support this command, so if you want to be able to refilm using ReMaic, don't use this feature.

Rather than writing a screenplay by hand, you can also generate a screenplay for a recording automatically from information about fixed cameras. When you place cameras using ReMaic Studio, you define a trigger for each camera. The trigger is a rectangular area within the level, and the camera bound to a trigger is activated when the player (the center of player's model) passes through the trigger. It's recommended to create large triggers that cover the whole coridor to make sure the trigger doesn't "miss" the player - remember, unlike the triggers in Quake, the triggers in ReMaic Studio are activated only when the whole player model gets into it.

ReMaic Studio then refilms a demo by checking during each frame if a player passed through one of the camera's triggers. If he did, the associated camera is activated. If there is a direct line from previous camera to the new one, the camera view will glide from its previous position to the new one, otherwise it will cut instantaneously.

To get the best of both worlds, you can automatically generate a screenplay or series of screenplay fragments as a first step to take advantage of the convenience afforded by set cameras, and then alter these by hand, adding extra effects and fine-tuning the details to take advantage of the flexibility provided by screenplays.

3. How to use ReMaic Studio

3.1 Using the Quake -game mod

Run the batch file rs.bat with the name of the map on which you wish to place cameras in order to start. ReMaic Studio will automatically check if you have already placed cameras for that level, and if you did - it will load them.

While you're in the camera positioning mode, the level may look a bit strange; there are no doors or plats, and the light is turned on. This is done to make it easier to navigate through the level.

While you are using the mod, the following new console commands are available to you. Most are bound to keys.

putcamera (bound to ENTER key)
This places a camera at your exact location. The camera looks like a player's head. One of the heads will be bleeding; this it the active camera you are currently working on.
changecamera (bound to TAB key)
This selects the camera that is closest to you as the active camera.
delcamera (bound to BACKSPACE key)
This deletes the active camera.
gotocamera (bound to HOME key)
This moves you to the active camera's location and makes you look in the direction of the trigger, so that you can see what the view from the active camera looks like.
gotointermission
This moves you to the inermission spot. It's usefull when the level exit is in sight from the intermission spot and you want the camera to get to the intermission position while the player exitsamera (bound to SPACE key)
puttrigger (bound to DEL. key)
This defines one corner of a trigger. A trigger is defined by two corners of a box and appears as a rectangle full of white sparks. While defining the second corner of a trigger, you see the trigger as brown sparks.
print (bound to P key)
This prints all the camera info into the console. The console log is used to transmit this information to ReMaic Studio.
save name
Type this in the console to save the current state of cameras.
load name
Type this in the console to load a previously saved state of cameras.

3.2 Using the main RemStud.exe

RemStud.exe offers you a few dialogue boxes to enter some data:
Source file
This is the recording you want to refilm.
Script
This is the name of the screenplay script. Even if you want ReMaic Studio to generate one for you, you must still give it a name (so, e.g. temp.cam should be fine).
There are also some check boxes:
Generate script
If you want to make your life easy, check this box and then ReMaic Studio will use camera positions you've prepared using Quake -game mod. In case you didn't place cameras in the level you want to refilm, ReMStud will use chasecam.
Play when done
If you want to see the results of your filming right after the filming is done, check this box.
Print exact exit time
Check this box if you want ReMStud to print exact time of the intermission start a few seconds before the intermission
Fade out at exit
Check this box if you want ReMStud to add a nice fade-to-black during the intermission. [Similar to demtool -o.]
Player bleeding
If you want to add visualization of the pain the player suffers, check this box, and you'll see a "trail" of blood behind the player according to their health. [Similar to demtool -b.]
Remove centerprinted messages
If you want existing messages such as "1 more to go" to be removed from the final movie, check this box. [Same as demtool -c.]
Remove usual messages
If you want existing messages such as "You got 10 shells" to be removed from the final movie, check this box. [Same as demtool -m.]
Remove stufftext messages
If you want existing  stufftext messages such as palette shifts to be removed from the final movie, check this box.
Remove entities outside FOV
You can compress the demo by removing the entities that are outside player's Field Of View. [Same as demtool -v. Warning: this feature is untested, and probably has some errors. If you find any, please report them. In the mean time you could still use DemTool to do the FOV compression instead]
Change player colors
You can change player shirt and pants colors. The default is QdQ colors, white shirt and red pants. [Same as demtool -u.]
Set FPS to
You can compress the demo by removing extra frames and reducing frame rate. This feature does NOT increase FPS, it can be only decreased. [Same as demtool -f.]
Chain another demo
If you want to show another demo just after the current demo ends, use this option. [Same as demtool -p.]
Print credits at the beginning
You you want to show credits for a speedrun, use this option

3.2 Using the main RemStud.exe

RemStud.exe can be run as a console application, without loading to the GUI.
If it's the use you want, simply run "RemStud Source.dem [script.cam] Destination.dem".
In any case of error, RemStud will load the GUI and inform you.
Note that ReMaic Studio will run as a detached process in batch mode, so if you run this line from a batch file that uses the resulting demo later, the call should look like this :

del Dest.dem
RemStud Source.dem Dest.dem
:Loop if not exists Dest.dem goto Loop
rem Here you continue the process

4.Tutorial

Follow the instructions below to learn how to perform basic refilming tasks with ReMaic Studio.

Let us suppose that you have a recording made on the e1m1 level, placed in the ReMaic Studio subdirectory and named e1m1.dem, that you wish to refilm.

  1. Run rs e1m1, to start editing camera positions.
  2. Use your normal Quake controls to move around in the world.
  3. Press HOME key (or, enter gotocamera in the console) to find the current camera.
  4. Move away from this camera (after going to a camera, you'll be exactly inside it), and try to fly around it.
  5. Find the camera's trigger. Remember, the trigger looks like a force field with white particles blinking inside it.
  6. Relocate the trigger (using the DEL. key or puttrigger command) until you are happy with it's position. Remember, the trigger should be placed on player's route, in an area that the camera can see well, enclosing the entire area the player will be in. Don't be afraid to make the trigger a bit too big, it will be activated once the center of player's model will touch it.
  7. Fly around looking for other cameras. If you want to see a camera's trigger, make that camera active (using the SPACE key or changecamera command.)
  8. Keep updating cameras and triggers until you are happy with the cameras.
  9. Press F10 to exit the game. (Do NOT use the menu to exit. The game modification needs to write camera information to the console log before exiting.)
  10. Run ReMStud.exe, setting the checkboxes as you desire, and press the "GO" button.
  11. Enjoy the movie. If you are unhappy with it, return to step 1. Alternatively, you could edit the screenplay file that ReMaic Studio generated for you by hand.

5. Version history

0.60    Internal testing, never released
1.00    First public release
1.10    *Added support for quake v.1.07 format changes in clientinfo message
           *Improved error detecting system
           *Added command line options
           +Fixed "Exit time 0.0" on demos without intermission
           +Fixed a log-reading bug that caused ReMaic Studio stop responding if console log contained lines after "---END---"
 1.15   +Fixed some problems with pan command
           *Improved eyes command
           +Fixed script printing, now the script has valid ends of lines
 1.16   +Fixed a stupid bug made in 1.15 that caused every unknown command to be interpereted as "eyes".
 1.2     +Fixed bug that made ReMaic Studio centerprint time only first time
           *Text and sound command are now being inserted as additional blocks to the demo, they will not be dropped by quake during playback.

There will probably be newer versions of ReMaic Studio, so please check the ReMaic homepage from time to time. If there is a feature you think might be useful in ReMaic Studio, or if you find bugs, please send your ideas / opinions / bug reports to WarKosign. (Anything sent to the main ReMaic e-mail concerning ReMaic Studio will simply be forwarded on there, so you are better to write directly to him.)

6. Credits

ReMaic Studio was created by Roman Priborkin, but was based on many existing programs: The splash screen was created by Evan Wagner for original ReMaic.

This documentation was written by Roman Priborkin & Anthony Bailey.

And of course nothing would have happened without Quake, by id Software. (Quake is a registered trademark of id Software.)