Level Overviews

From Valve Developer Community
Revision as of 16:08, 29 August 2007 by Andreasen (talk | contribs) (Formatting. Directed link.)
Jump to navigation Jump to search

Some mods (Counter-Strike:Source, Day of Defeat:Source) have a minimap mode, that shows a level overview and projects players and objects on that map. An overview map is an image made from in-game screenshots and must be created once a new map is finished.


Make the raw overview image

1. Start the game. Click Options and switch to the Video tab. Change Resolution to "1280x1024" pixels and the Aspect Ratio to "Normal".

2. Load the new level with the map <mapname> console command and enable "sv_cheats 1".

3. Join the Spectator team.

4. Bind the screenshot command to a key, eg. "bind p screenshot" using the console.

5. Remove any HUD elements with console commands "cl_drawhud 0" and "hidepanel all".

6. Remove disturbing world effects like skyboxes ("r_skybox 0), fog ("fog_override 1" and "fog_enable 0"), props (optional: "r_drawstaticprops 0), etc.

7. Move in spectator mode to a position where you can see the whole level from above.

8. Switch to orthographic mode with the console command "cl_leveloverview x", where x is the scale factor.

9. Set "cl_leveloverviewmarker 1024" to show a red helper line on the right. You will need to briefly toggle cl_drawhud 1, line it up, and then toggle the hud off again.

Note.pngNote:Several people have commented that the red line does not appear when doing this at 1280x1024 resolution. If you don't see the red line, read the No red line section below.
Sample raw level overview for de_dust2

10. You can move around while cl_leveloverview mode is on. You are still in spectator mode and moving, so move the arrow keys to change the position. Now change scale so the map fits into the square defined by the red line. The right edge of your map should be on the left of the red line, anything to the right of the red line will be chopped off in a later step. Here is a screenshot how it would look for the map de_dust2 in Counter-strike:Source.

11. The current projection data (position and scale) will be updated in the console, eg "Overview: scale 6.00, pos_x -2651, pos_y 4027"

12. Once everything is perfect, take a screenshot (using the key you bound to "screenshot") and write down the projection data values. You will need them in a later step.


No red line?

If you don't see the red line appear at step 9, make sure you have set cl_drawhud 1 (turn this off again before taking the screenshot though). After this, if you still can't see the line, you may want to try starting over but use 1024x768 resolution instead of 1280x1024. Set "cl_leveloverviewmarker 768".


Edit the overview image

1. Close the game and open the screenshot in an image editor. Screenshots are found in the "<game dir>\screenshots" directory. Using the image editor, remove the unused border right of the red line so the image size is reduced to 1024x1024 pixels. Look for any option to reduce the "canvas size", you do not want to resize the image, but rather chop off the right side so you're left with a perfect square 1024x1024 or 768x768. It must be square and its dimensions must be a power of two, or Vtex will give an error.

2. If you had an issue viewing the red line and used the "1024x768" mode, make sure the image size is a power of two. Resize your image to 512x512 or 1024x1024 or Vtex will fail.

3. Modify the image as you like or add an alpha channel to blend out unused areas.

4. Save it as a targa (.tga) image with the same name as your .bsp file, in your material source folder (eg. "sourcesdk_content\cstrike\materialsrc\overviews\mapname.tga").

5. If you are using Photoshop, you can instead download the "VTF-Plugin for Photoshop". You then select "Save as" from the menu, change the file type to .vtf and give it the exact same name as your map. Click OK and a box will pop-up. Select "Clamp S", "Clamp T", "No Compression" and "Eight Bit Alpha", and then select OK.


Create the material files

1. Convert your image into a Valve Texture File (.vtf) using Vtex. (See Vtex for step-by-step instructions on how.) The texture file should end up as counter-strike source\cstrike\materials\overviews\mapname.vtf.

2. In the same folder as this texture file, using a text editor, add a new Valve Material (.vmt) file called mapname.vmt, which should look like this:

"UnlitGeneric"
{
	"$translucent" "1"
	"$basetexture" "overviews/mapname"
	"$vertexalpha" "1"
	"$no_fullbright" "1"
	"$ignorez" "1"
}

3. Finally, in a text editor, create a text file called mapname.txt in \resource\overviews\ (eg. counter-strike source\cstrike\resource\overviews\) that contains the necessary projection data:

"mapname"
{
	"material"	"overviews/mapname"	// texture file
	"pos_x"		"-2651"	// X coordinate,
	"pos_y"		"4027"	// Y coordinate,
	"scale"		"6.0" 	// and used scale used when taking the screenshot
	"rotate"	"0"	// map was rotated by 90 degress in image editor
	"zoom"		"1.3"	// optimal zoom factor if map is shown in full size
}


See also