The making of "TWK unmasks"

I've been getting lots of requests for my et config, and a few tutorials, so i wrote down a few hints that might help moviemakers to improve their skills.

TWK unmasks movie
Link 1
Contains: the config used when recording footage for TWK unmasks, custom files and a word version of this tutorial (outdated)


Let's start off by putting the configs in place. Simply copy the content of CFG folder into your Enemy Territory installation folder, and overwrite every file.

Config files:

q3config.cfg - The q3config.cfg files in etmain and etpro are identical, and are both 'read-only'. If you want to change a certain thing, do it in windows (uncheck 'read-only', change, save, check 'read-only'). Also you should change seta r_lastValidRenderer "GeForce 7600 GT/PCI/SSE2" to match your system.

fragmovie.cfg – This is mainly used as an autoexec.cfg. It includes timescaling script by OJ, and some binds and execs (read binds below).

Cam/ - Originally made by gg67 from #smireboule. I added the option of taking screenshots while making the points (only first 10, you can extend it, but i never used more), and screenshots include framecount (which will come in handy in the advanced camming part).

kam.cfg – Used for executing the camera.

autoexec_[map name].cfg – Used for minor adjustments, depending on the map.
This config is suitable for most of the maps, except the very bright ones (oasis, fueldump, ice). To get a nice contrast at those maps play around with r_intensity and r_gamma.


Left Arrow – decreases the demo playback speed by 50%
Right Arrow – increases the demo playback speed by 200%
Down Arrow – freezes the demo (at timescale 0.1)
Up Arrow – resets timescale to 1

J – start recording with 250 frames per second
K – stop recording
O - executes zoom script
N – disables hitsounds, and records the sound (output: etpro/wav0000.wav)
M – stops sound record

0 – toggle sound on/off
9 – toggle roundtimer on/off
8 – toggle 2d drawing on/off
7 – creates a new ct3d point (and writes a screenshot)
6 – resets the ct3d positions

The rest of binds are default or not present (the non-significant ones).

Advanced Camming:[/b]]
In the entire ET moviemaking history there had been only a few movies that show really nice camming skills. Apart from R3 trailer, there were a few nice cams in Belgian day and in movies by Quaky pictures. Other movies more or less have inacurate cameras with lack esthetics. In ''TWK unmasks'' i tried to show how cameras should be used – to present a better view of whats going on. First off you need to decide wether a scene looks better from 1st person view or from a scripted camera. Usually SMG/pistol kills look better from the players point of view. Heavy weapons and grenades, trickjumping, document runs, etc, usually look better from a camera. Especially rifle movies look terrible when you can't even see half of the frags.

I'm going to describe a method I came up with to make nice cameras faster:

1. Start the demo, and fastforward to the scene of the event you're trying to follow.
2. Set timescale to 0.1.
3. Use the modified version of camera positions to take shots of the event like you want the camera to follow.
4. Import the points to ct3d.
5. Now comes the part of syncing the points with the demo –> write down the last few digits of the framecounter from every shot taken -> i usually set the points so one point represents one second -> by the difference of the framecount values you can pretty accurately determine the timescale of every point in the curve – a difference of 300 would mean 300 miliseconds, and thus a timescale of 0.3. (outdated with the release of CT3D 0.9 beta: using point at time - will add it out when/if i test it)
6. Finalising the curve: The created curve serves mostly as a crude model of what the final camera is going to look like. You need to fine tune pitch, yaw and roll of an individual point. I'd like to emphasise that increasing roll wont always make the camera look better. Firstly you need to make sure the roll is tilted on the right angle (clockwise for right turns, counterclockwise for left turns), and increasing roll too much will make it look as the camera has no momentum, and is floating instead of flying.

I hope these steps make it easier and faster to create a camera. I'd also like to explain how a few other, never seen in an ET movie, effects are done:

Player/camera switch:

1. Preview the demo from 1st pov.
2. Use the modified camera positions while still following the player, and pick a moment at witch you would like it to switch to the camera.
3. Check the screenshot and type the framecount value into the kam.cfg.
4. Import the position point into ct3d.
5. From this point on the camera creation is the same as described above.

The camera/player switch works the same, but you add the player position point at the end of the curve. It might also take some calculation and trying to get the camera 'hit' the player directly. The difference of around 250 or less should look pretty good, but it mostly depends on the event.

First person view zoom:

1. Make a random curve in ct3d (doesn't matter what shape, since it wont be used for flying). Make it more than 3 points, but it depends on the situation.
2. Keep the timescale constantly at 1.
3. Set the fov of the first and last point to 105 (or whichever you use for 1st person recording), then set the every point in between to a lesser value – around 60 usually looks nice, depends on the distance.
4. The total number points defines the how fast it zooms in and out (the more points the faster zooming).
5. Export the curve to etpro folder under the name zoom.cfg.
6. Start to record the fragscene and press ''o'' at the time you'd like to start to zoom in, and watch it roll.

Camera/player switch addon: (NEW)[/b]]
I added this so you'll know exactly what to aim at to get as accurate and therefore "nice" switch. It's basicly a more detail description of things you need to look after.

The whole idea of making a camera/player switch is that you reach a fluent transition between the two views. There are three things that you need to look after:

1. Both, the player and the camera, must be in the same position (x,y,z) facing in the same direction (yaw and pitch). You might have some problems using the /getpos, since the player position and the point where you see from dont match (player pos is somewhere inside the chest, while you see from inside the head of the model). Therefore you might to increase the Z position of the player for a few points. Also /getpos doesnt include any pitch information, meaning that switching to a player aiming high or low will demand some pitch guessing and finetuning.

2. At the moment when the camera switches to the player both times (i recommend a test record using show_framecount to compare values) need to be alligned. This will ensure that there are no gaps between surrounding events (enemies running, explosions etc).

3. Probably the most difficult to synchronise would be the speed. It's not really that neccessary, but it increases the "nice" factor a little, in most of the situations. I havent found any other solution to this but to examine the players movement and adjust the camera. Only bother doing this when you have a camera moving parallel and in the same direction as the player (eg when a camera chases the running player from behind, smoothly cashes up with him, and then switches when right on target).

Here is an example from TWK unmasks:

image: suppaexcgoldtoge image: suppaexcgoldtoge
The left image is the last frame of the camera, the right is the first frame of the player pov. You can see that there are some differences in position and time (the enemies position changes a bit). Also there is a bit of difference in the gibs render.

image: suppaexcgoldtoge
This is the overlay of the two frames. Simply overlay one on top of the other, and change the opacity the opacity of the upper one to 50%. Also use this technique when looking for the two images that fit toghether the best (go to the last frame of the camera recording - you need to use /quit at the end of the camera .cfg script - then overlay the 1st person recording, change its opacity to 50% and drag it left or right until you lock on to the frames with the least difference). Ofcourse you cant get it to fit 100% perfectly, but not to worry - the camera switches in my movie arent 100% accurate either, and they look nice. Getting a result similar to the upper screen should be accurate enough (frameblending covers up the difference a bit as well). Also know that switching to a player that hits the ground from jumping or suddenly changes direction (like jumping, crouching, suddenly turning etc) will be harder to match, and harder to make a nice switch. But all in all it's a nice effect, worth the little extra work.

When the config is set up, its time to set the quality to the max. Go to your graphic drivers settings and max out AntiAliasing (AA) and AnisotropicFiltering (AF).

Another way to increase the quality is by resizing the captured footage. I captured at r_mode 9 which is 1600x1200, then imported the .tga screenshots into VirtualDubMod. Apply sharpen filter (value 16), AFTER that apply the resize filter (800x600; Precise bicubic A=-0.60). Dont apply any other filters.

To furtherly improve the quality you could play around with color retouching and contrast/brightness. I only increased contrast by 20, and brightness by 10 in after effects on most maps, and a bit lower on ice.

Custom files:[/b]]
Copy superboyy_custom.pk3 into your etpro folder. Open it with winrar and delete unwanted changes (i would advise to at least delete the files that remove branches, and the grenade change, unless you need them for a specific scene).

Files description:

fonts/ - changes the console print font

gfx/2d/ - changes the ''you killed'' font

gfx/hud/ - removes the skull icon next to the console print kills

gfx/limbo/ - removes the dynamite icon next to the console print objective destruction

model/mapobjects/tree_temperate_sd/ - removes tree branches and bushes on supply depot (and posibly other maps that use the same texture)

model/weapons2/grenade/ - changes the position of text on the axis grenade

sprites/ - removes the objective and voicechat icons from console print and players

textures/ - changes skies on some of the maps

As you can see there is a ton of syncing almost all the time. Try to be as creative as possible when making a movie. 1000 fps blend with a nice config and HD resolution just wont make that happen by itself, unlike some ego "moviemakers" think these days. It's a shame that over 4 years since the game is out, only a few movies are really memorable. Hopefully this tutorial will speed up the evolution a bit.

Editor commentary:[/b]]
I started to work in august 2005. I was determined that i would have a lot of cameras in my movie, since that was the trend of most of the movies. At that time Camtrace3D wasnt "public" yet, so the only choice i had was GTK radiant. To finish drawing that intro curve, and all the look options took me about 5 hours, getting it synced took me twice that much. Everyone who uses ct3d on the newest patch of ET knows that exec_at_time and .cfg camera make the execution pretty much automatic. .camera file doesn't know anything like camera_at_time. And in addition to that the scene with us on top of that builing was recorded in warmup. Meaning no roundtimer, which left me with a stopwatch in my hand. After i finished the intro i lost my motivation for the project, since i spent about 50 hours total working on it. As soon as i learned about ct3d i grabed it and harassed gg67, the creator of ct3d, ever since. The next greater problem occured when i was working on the camera on goldrush where illy-ya killes the allies coming from command post. Here showed one of the weaknesses of ct3d scripted cameras: fps does matter. The difference betweed previewed and recorded take was too big. Mostly because ET cant stay locked too 50 fps at 1600x1200, even with a high end PC. The best case scenario is fps jumping from 48 to 50 or even worse, which makes a difference of 4% or more compared to te recorded clip. With a .camera there were no such problems, and you could record with any fps while using the same .camera, in ct3d you need a new .cfg every time you want to try a different fps. I usually previewed the ct3d camera a few times without recording, and then started to record, and adjust every little detail , which required another record after the change - very time consuming, but effective (i was hoping chaplja could include a "cant write to disk: full" option in his upcoming moviemaking hack, which would speed camera making for about 100% - faster "recording" preview, no need to delete files). I spent countless hours making cameras, then i made ET:Q3 for the crossfire competition, and when i saw q3mme, i was amazed by the camera making tool, not to mention tons of other extra stuff. Going back on ct3d was hard, but with the experience i had the things didnt move that slow. By summer 2006 i only finished about 2-3 minutes of the movie, and with the upcoming year at uni, i had doubts about ever releasing this movie. Untill june 2007 the projects wasnt moving very fast, that was until about 6 weeks ago when i really got into the zone again, and rushed with editing and capturing, which resulted in about 8-9 minutes of the movie and the completion of another big project.


Camtrace3D homepage

List of Enemy Territory console commands

Xvid and x264 tutorials

Have fun making movies, and dont forget to credit me. :)

UPDATE: new download links
UPDATE 15.9.07: added Camera/player switch addon.
UPDATE 13.4.08: the inaccurate timescaling technique can be done better using point at time feature
Very nice if some1 is new to moviemaking read this and hannes tutorial too ;)
Nice flame, every tut should have one. :)
thank you
seta r_texturemode "GL_LINEAR_MIPMAP_NEAREST" ?

seta r_texturemode "GL_LINEAR_MIPMAP_LINEAR" is far superior of course

Also r_lodbias should be -2, and you should allow negative lodbias in your graphics settings.

seta r_detailtextures "500" ???

Good addition to the tutorials section though. :-)
r_detailtextures "500" ??? -> 0 or 1... 0 produces a strange color (problems) at textures... i use 1
The point I'm making is that superboyy has seta r_detailtextures "500" in his config.

Just caught my eye...kind of confusing.
yaya i know.. and i just replyed u, not for correct u, but for correct superboy :)
Tnx, changed it.

I never used negative lodbias from drivers, detailtextures dont really matter if on 1 or 10000, and the texturemode is barely noticable (maybe on gamma jump, or another huge map with a repeated texture) when using AF x16, and that mostly disapears after resizing and editing.
Yeah, I just thought 500 was a bit random. Disagree about texturemode being barely noticeable though. It's noticeable on lots of maps, just look at the ground in front of you, and notice the difference in the ground ahead of you.
I did that. It looks ugly without any anisotropic filtering. Set AF to x16, and you'll barelly see a difference, besides i dont think you can see any of that anywhere in the movie, or you'd comment on it already :)
supa koncno bo rezon vesel k si cfg uploadu ;))))))))
cola cola?
nah only chokolejt
but you drink cola cola with spoon, non? =D <3
haha jz mam boljsiga : >
without masks? I hate it :(
That player/camera switch is nice and usefull, thanks =)
Very nice!
Very nice and helpfull, thanks for the effort Superboyy :)
i'm a one man productions :p
oh sorry then :D i'll edit it!
nared adobe after effect tutorial (ksn efekt pa to )
n1 finaly a moviemaker who doesn't keep his config uber secret
sure, after finishing his movie...
"Try to be as creative as possible when making a movie. 1000 fps blend with a nice config and HD resolution just wont make that happen by itself" AGREE!
But HD and motionblur dont make it worse.
OFC not, but i see that too many movies are based on that instead of creativity :)
sorry to admins for croatian comment

superboyy, jako dobar tutorial

dok sam citao news o filmu, ako sam dobro zapamtio, rekao si da si imao problema sa promjenama brzine kretanja kamere
sada dok sam citao sam vidio da spominjes mijenjanje timescalea
nisam jos vidio movie pa ne znam kakve su bile kamere u njemu, ali ako si mijenjao timescale tu bi mogao biti problem
et moze snimati samo na 1000,500,333,250,200 itd, naravno 0.1 timescale i 100avdemo=1000fpsa
sad, ako snimas na 250fpsa i timescale 0.5 to je ustvari isto kao i avidemo 500, ali ako je timescale 0.3 to je 833fpsa, sto et naravno ne moze postici, odnosno tada et ne snima na 833fpsa nego na 1000. to je razlog nepredvidjenih promjena u brzini/duljini snimanja
promjene timescalea preko camtracea su problematicna stvar i treba bit pazljiv s njima, imo najbolje je snimati sa timescale 1 i mijenjati brzinu u vegasu/premier/ae

sve ostalo je za 5, jako dobar tutorial
ako nesto ne razumijes mogu probat na slovenskom ili engleskom pojasnit
true. trying to record with 250 fps and timescale 0.9 will record with 333 instead of 277, and so on. but you can solve that in two ways:
record with a lower fps, or increase the point timing, like 5 seconds instead of one, and multiply the timescales by 5.

this method doesn't give you the precise positioning and timing, like you'd when making cameras in q3mme, but it helps to get started on the camera. as i said:

Quote by SuperboyyThe created curve serves mostly as a crude model of what the final camera is going to look like
hmm the Link to the .rar File dosn't work
Whats the command to put the leafs back on the trees?
you need to edit the custom pack
I created trace and imported in ct3d. but how the hell do I make the trace work in the demo ?
got link to your frag config? u had one before i remember
Back to top