Help:Model Viewer

From Team Fortress Wiki
Jump to: navigation, search

The Half-Life Model Viewer (HLMV) is a program used to view and manipulate Source engine models.


As of the update integrating SteamPipe into Team Fortress 2, HLMV is included with the TF2 installation. However, the VPROJECT environment variable must be set to Steam\steamapps\common\Team Fortress 2\tf in order for HLMV to function properly for TF2. There are three ways to do this, only one of which is necessary:

  • Set the "VPROJECT" environment variable using your operating system's standard procedures
  • Replace Steam\steamapps\common\Team Fortress 2\bin\check_sdk_env.bat with the following (this option will set VPROJECT properly for all of the other TF2 SDK tools, e.g. FacePoser, as well):
@echo off
CD "%~d0%~p0..\tf"
	if exist "%~d0%~p0set_sdk_env.bat" (
		call "%~d0%~p0set_sdk_env.bat"
	) else (
		echo WARNING: VPROJECT not set, and set_sdk_env.bat file not present.
) else (
  • Replace Steam\steamapps\common\Team Fortress 2\bin\HLMV.bat with the following:
@echo off
:: Batch file to launch Half-Life model viewer with proper environment

:: Launch HLMV
echo Starting HLMV...
echo Executing "%~d0%~p0hlmv.exe" %*
start "" "%~d0%~p0hlmv.exe" -vproject ../tf %*

After performing one of these three options, navigate to Steam\steamapps\common\Team Fortress 2\bin, and run HLMV.bat. This should automatically open hlmv.exe.

A number of options and settings need to be tweaked in order to achieve best performance from the Model Viewer. The program has no GUI-based video settings like the game, so several other steps need to be taken.

Graphics card settings

For ATi/AMD cards, under '3D' in Catalyst Control Center's drop down menu, uncheck "Use Application Settings" in the "AA" section and move the slider to 8x.

For NVIDIA cards, open the "NVIDIA Control Panel" and navigate to "Manage 3D settings" or similar. Add a program-specific setting for hlmv.exe. The location of this file is: Steam\steamapps\common\Team Fortress 2\bin\hlmv.exe

Ensure that the following settings are enabled:

  • Anti-aliasing set to "override" and on highest setting possible
  • Texture filtering quality on highest setting possible


The Model Viewer also pulls settings from the config file 'dxsupport.cfg'. If the graphics card settings above do not work, then this method should still force the Viewer to output with high settings.

  1. Navigate to this directory: \Steam\steamapps\common\Team Fortress 2\bin\
  2. Open up dxsupport.cfg in a text editor of your choice. If you do not have this file, create it with the content from here.
  3. Find your graphics card within that file.
  4. Add or modify the following lines in dxsupport.cfg within the section for your graphics card and save it, the Viewer should now be using high settings.
"setting.dxlevel" "99"
"ConVar.mat_antialias" "8"
"ConVar.mat_forceaniso" "8"
"ConVar.mat_picmip" "-10"
  1. If your card isn't listed, go to Control Panel, open Device Manager, find your graphics card under Display adapters section, open Details tab of its Properties and select Hardware Ids. The IDs are 4-character hexadecimal numbers. The Vendor ID is located after VEN_, and the Device ID is located after DEV_.
  2. Navigate to the bottom of the file, and find the Unknown sections. Choose the one that refers to your graphics card, which will be ATI Unknown if you're using an ATI/AMD graphics card, NVidia Unknown if using an Nvidia graphics card, or Intel Unknown if using an Intel graphics card.
  3. Once you have located this, change the lines of the one that match, so that looks like the following:
"VendorID" "0x[Vendor ID from step 5]"
"MinDeviceID" "0x[Device ID from step 5]"
"MaxDeviceID" "0x[Device ID from step 5]"
"setting.dxlevel" "99"
"ConVar.mat_antialias" "8"
"ConVar.mat_forceaniso" "8"
"ConVar.mat_picmip" "-10"
"ConVar.mat_motion_blur_enabled" "1"
  1. Only if your card is an AMD Radeon HD5000 series or above, you may enable "Super-Sample AA" under "3D" in the drop down menu in Catalyst Control Center to further increase image quality when used with the above settings. It is advised to revert "Super-Sample AA" back to "Multi-Sample AA" when you are done using the Viewer, as performance in games will be reduced significantly.

If none of the methods above works, you may try downloading a pre-configured dxsupport.cfg. Make a backup of your current dxsupport.cfg somewhere, and drop the new one on the same directory as your old one was located.


Pictogram comment.png Note: Directly viewing some models will ignore the $colortint_base attribute (which provides the texture's normal color tint to the model), forcing the model to appear grey or washed out. This can be worked around by extracting the model's VMT and adding a new attribute $color2 with the same value as $colortint_base.

Pictogram comment.png Note: To load models, use the (Steam) Load Model... option. This allows HLMV to access the game's VPK files. Using the other Load Model... option allows you to load models that are located outside of the game's directory, however.

Model locations

Most models have standard names but others have vague or confusing names. All item model file paths can be found by searching "items_game.txt" (\Steam\steamapps\common\Team Fortress 2\tf\scripts\items\items_game.txt) for the item's entry and checking the value of "model_player".

Pictogram comment.png Note: You may get issues with HLMV saying it can't find a directory. To fix this, navigate to \Steam\steamapps\common\Team Fortress 2\tf\ and create the folders that are needed to get to the model you are attempting to get to. Alternatively, you can download and extract this pack, and copy the contents to \Steam\steamapps\common\Team Fortress 2\tf\custom\. This will add all the folders to load weapons, cosmetic items and player models correctly, without having any errors.

The locations for weapon models are as follows:
  • w_models – holds world models for some of the Stock weapons.
  • v_models – holds view models for some of the Stock weapons.
  • c_models – holds models for most newer weapons.

Pictogram comment.png Note: There are some discrepancies regarding c_, v_ and w_ models. Previously, all weapons had a world model and a view model that were kept separately. Most newer unlockable weapons, and a number of stock weapons use a single model file (c_model), which is used for both the player's viewpoint and for what other players see you holding. The Kukri and Flame Thrower had their view model and world model files removed when the change to c_models occurred.
Pictogram comment.png Note: Some weapons, such as the 2011 Festive weapons and the Botkiller weapons have parts of the models located in inconsistent places. For example, the older Festive weapons have the attached lights in \models\player\items, and the Botkiller weapons have the attached heads in the \models\player\items\mvm_loot.

Cosmetic items
Most of models of any cosmetic items that were added before the Robotic Boogaloo update are located in \models\player\items. Any cosmetic items that were added in or after that update are located in \models\workshop\player\items.
The Crate, Paint Can, and Name Tag models are not present in the game files. Efforts to reproduce them in a model form are ongoing.
Player models
Player models are stored in the directory of \models\player. There are HWM models (or hardware morphs) stored in \models\player\hwm. These models are higher-poly versions of the standard models and were used in the creation of the Meet the Team series. For more information about them, see the Steam Users' Forums.

Model + Lighting Controls

Holding the following keys and moving the mouse will allow you to move the model or lighting in the screen.

Action Key/Button More Information
Rotate model LMB in centre of the screen. Rotate the current model in all directions.
Turn Model LMB at edges of the screen. Turns the current model around from the viewing angle.
Pan Model Left Shift+LMB anywhere. Pans the model around the screen.
Zoom Model RMB Zooms the current model in and out.
Rotate Lighting Left Ctrl+LMB anywhere. Rotates the light source around the model.

The rotate lighting control should be used with caution. It's okay to slightly adjust the lighting to add more "depth" to an image, but do not rotate it too drastically or the image will look way too dark in comparison to other images uploaded to the Wiki. It's also recommended to use it to adjust Pyro's lenses, as it tends to appear completely white in certain angles.


HLMV stores model positionings and settings inside the registry in separate keys. You can open the registry editor by going to Start > Run and typing in "regedit.exe". HLMV's directory is "HKEY_CURRENT_USER\Software\Valve\hlmv".

Pictogram comment.png Note: Changes made to values in the registry editor will be overwritten if the model is open while the changes are made. You will need to either close HLMV or load a different model while editing values. The values can also be updated while viewing by refreshing the registry editor ('View' > 'Refresh' or 'F5').

Key values

Inside each key are several values, and their uses are listed below:

Value Description Type Default
aColor Ambient color (0.3 0.3 0.3 0) #4C4C4C
bgColor Background color (0.25 0.25 0.25 0) #3F3F3F
cclanguageid Integer 0
enablenormalmapping Normal map Integer 0
gColor Ground color (0.85 0.85 0.69 0) #D8D8AF
lColor Light color (1 1 1 0) (white)
lightrot Positioning of the light source (X Y Z) (0 180 0)
merge0 – merge3 Attached models ("weapons" in HLMV)
overlaySequence0 – overlaySequence3 ?
overlayWeight0 – overlayWeight3 ?
playsounds Toggle sounds being played Integer 1
Rot Model's rotation in the world view (X Y Z) Model dependent
sequence Animation sequence Model dependent (most commonly idle or ref)
showbackground Integer 1
showground Integer 1
showillumpos Integer 1
showshadow Integer 1
speechapiindex Integer 1
speedscale 1
thumbnailsize Integer 128
thumbnailsizeanim Integer 128
Trans Translation of the model (X Y Z) Model dependent
viewermode Integer 0

Program limitations

A preview of the fire textures being shown (top), and no fire textures when using the texture replacement (bottom).
The default HLMV cubemaps (left), and the modified and much more cleaner cubemaps (right).
A screenshot with an affected model by the issue (left), a screenshot with the hlp_forearm fix applied (right).
Screenshots taken on HLMV while using an ATI Graphics Card (top), a NVIDIA Graphics Card (middle), and with the gray cornea texture fix applied while on a NVIDIA Graphics Card (bottom).
Fire texture
HLMV applies a fire overlay material to most models. Although not noticeable under most circumstances, it can become particularly apparent when working with models that have dark or black textures.
There are two methods to remove this effect:
  1. The more preferred option is to download this texture replacement, and copy the contents to \Steam\steamapps\common\Team Fortress 2\tf\custom\. This will replace the default file texture with a 512x512 black material, effectively nullifying the effect for all models.
  2. Alternatively, setting $detailblendfactor to .00 in the VMT file(s) for the model will achieve to the same end; however, this setting must be enabled manually per model.
Skybox texture
HLMV's default skybox texture looks nice, however, replacing this texture to black texture will make creating images much easier by using the Ctrl+B hotkey.
To rectify this, download this texture replacement, and copy the contents to \Steam\steamapps\common\Team Fortress 2\tf\custom\. This will replace the skybox texture with a black color.
Alternatively, if you prefer to replace the skybox texture with a white background instead, download this texture replacement.
HLMV handles reflective surfaces by using a texture to fake reflections. The default texture is that of a sunrise -- nice, but not quite clean enough for good, readable photos.
To rectify this, download this texture replacement, and copy the contents to \Steam\steamapps\common\Team Fortress 2\tf\custom\. This will replace the reflection with a morose grey, making for more readable photos.
hlp_forearm_L and hlp_forearm_R
Some cosmetic items contains bones that attaches to non-functional bones in HLMV, cosmetics that contains the bones hlp_forearm_L and hlp_forearm_R often causes problems in rendering when attaching to a class model, usually causing the cosmetic to pass through the class, or stretching on the ground.
To fix that, a simple modification was made on the models for Scout, Demoman and Heavy, to remove these problematic bones. These were fixed for both normal and hwm models. The fix can be downloaded here. To install it, simply copy the .vpk to \Steam\steamapps\common\Team Fortress 2\tf\custom\.
Gray cornea (issue with NVIDIA graphics cards mostly)
For some users, mostly those with NVIDIA graphics cards, HLMV may have problems rendering the texture for the cornea of each of the classes eyes, causing it to appear with a gray tone instead. Currently it's unknown what causes this issue, but it's possible to fix it by downloading a modification for the eye_lightwarp texture.
To fix that, download this texture replacement, and copy the contents to \Steam\steamapps\common\Team Fortress 2\tf\custom\. This will make the lightwrap texture brighter, fixing the issue with the gray cornea for those using a NVIDIA graphics card.
Note: This will not fix issues with other items with the same issue, such as the Lord Cockswain's Novelty Mutton Chops and Pipe appearing completely black, and the Quick-Fix missing its transparent visor. The fix only applies to the classes' gray cornea issue.
For users with two or more monitors, it's advised to have the higher resolution monitor as the primary one. Due to an issue with HLMV, if the lower resolution monitor is set as the primary one, and if the user works on HLMV on the secondary monitor (that has the higher resolution), HLMV will have problems rendering the model, causing blurriness. The blurriness might be worse depending how low the resolution is set to the main display compared to the higher resolution set as the secondary display.
To change which monitor is the primary one, go to your Desktop, and right-click on your wallpaper, and click "Display settings". From there, click on the monitor that has the bigger rectangle (higher resolution), and check "Make this my main display".
An example showing the difference between a blurry image and a properly looking image by using the highest resolution monitor as the main one. The animation has been zoomed in for clarity.

See also

External links