User:Gabrielwoj/HLMV Setup Help and Tricks

From Team Fortress Wiki
< User:Gabrielwoj
Revision as of 00:15, 23 April 2024 by Gabrielwoj (talk | contribs) (Attention!: Bracket fix.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
User Gabrielwoj userpage bar 1.png User Gabrielwoj usercontri bar 4.png User Gabrielwoj sanbox bar 5.png
My Userpage My Contributions Sandbox

Attention!

As of the April 18, 2024 Patch, HLMV no longer opens. At the moment, the guide hasn't been updated to reflect these changes, and it's unsure when HLMV will be working again.

However, I have discovered a way to still use HLMV, and the older version of HLMV++ (test3_fix). Currently, TFMV is unusable, unless you do some steps every time when you wish to use it.

Download this .zip that includes old bin files before the April 18, 2024 Patch (courtesy of GrampaSwood), alongside a method that allows you to still use 32bits HLMV without having to copy the entire game files. This pack also includes the empty folders fix, all the necessary fixes for HLMV (with the exception of the grey cornea one, as it's driver dependent). The "Dummied Out hlp_bones" also comes on this pack, HLMV++ fixes this automatically without needing anything, but it's needed for regular HLMV. There's no difference on HLMV++ by having this pack installed or not.

Technically, you can extract this .zip anywhere, but I recommend extracting to your Steam/steamapps/common. Make sure that the "Team Fortress 2 (32bits)" folder is in "common".

If you use the default path for Steam, you're mostly good to go. If you don't, however, you'll have to open "gameinfo.txt" from Steam\steamapps\common\Team Fortress 2 (32bits)\tf.

After opening it, simply replace all instances of C:\Program Files (x86)\Steam with the path that Steam is located, so, for example, on my case, it would be:

Table automatically collapsed to not occupy space. Click "[Expand]" to uncollapse it.
gameinfo.txt
From:
"GameInfo"
{
	game	"Team Fortress 2"
	type multiplayer_only
	nomodels 1
	nohimodel 1
	nocrosshair 0
	hidden_maps
	{
		"test_speakers"		1
		"test_hardware"		1
	}
	nodegraph 0
	GameData	"tf.fgd"
	InstancePath "maps/instances/"
	advcrosshair 1
	supportsvr 1


	FileSystem
	{
		SteamAppId				440
		
		//
		// Setup engine search paths.
		//
		// If a search path contains "_english", and the current language is not english, then
		// another search path will be inserted above the english one by replacing "_english" with
		// the appropriate language.
		//
		// To debug how the engine has parsed this file, type "path" at the console.
		//
		// Search paths are relative to the base directory, which is where hl2.exe is found.
		//
		// |gameinfo_path| points at the directory where gameinfo.txt is.
		// |all_source_engine_paths| points at the directory cintaining HL2 shared content.
		//
		SearchPaths
		{

			// First, mount all user customizations.  This will search for VPKs and subfolders
			// and mount them in alphabetical order.  The easiest way to distribute a mod is to
			// pack up the custom content into a VPK.  To "install" a mod, just drop it in this
			// folder.
			//
			// Note that this folder is scanned only when the game is booted.
			game+mod+custom_mod	tf/custom/*

			// We search VPK files before ordinary folders, because most files will be found in
			// VPK and we can avoid making thousands of file system calls to attempt to open files
			// in folders where they don't exist.  (Searching a VPK is much faster than making an operating
			// system call.)
			game_lv				"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/tf/tf2_lv.vpk"
			game+mod			"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/tf/tf2_textures.vpk"
			game+mod			"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/tf/tf2_sound_vo_english.vpk"
			game+mod			"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/tf/tf2_sound_misc.vpk"
			game+mod+vgui		"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/tf/tf2_misc.vpk"
			game				"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/hl2/hl2_textures.vpk"
			game				"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/hl2/hl2_sound_vo_english.vpk"
			game				"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/hl2/hl2_sound_misc.vpk"
			game+vgui			"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/hl2/hl2_misc.vpk"
			platform+vgui			"C:\Program Files (x86)/Steam/steamapps/common/Team Fortress 2/platform/platform_misc.vpk"

			// Now search loose files.  We'll set the directory containing the gameinfo.txt file
			// as the first "mod" search path (after any user customizations).  This is also the one
			// that's used when writing to the "mod" path.
			mod+mod_write+default_write_path		|gameinfo_path|.

			// Add the TF directory as a game search path.  This is also where where writes
			// to the "game" path go.
			game+game_write		"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/tf"

			// Where the game's binaries are
			gamebin				"C:/Program Files (x86)/Steam/steamapps\common/Team Fortress 2/tf/bin"

			// Last, mount in shared HL2 loose files
			game				"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/hl2"
			platform			"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/platform"

			// Random files downloaded from gameservers go into a seperate directory, so
			// that it's easy to keep those files segregated from the official game files
			// or customizations intentially installed by the user.
			//
			// This directory is searched LAST.  If you visit a server and download
			// a custom model, etc, we don't want that file to override the default
			// game file indefinitely (after you have left the server).  Servers CAN have
			// custom content that overrides the default game files, it just needs to be
			// packed up in the .bsp file so that it will be mounted as a map search pack.
			// The map search pack is mounted at the top of the search path list,
			// but only while you are connected that server and on that map.
			game+download	"C:/Program Files (x86)/Steam/steamapps/common/Team Fortress 2/tf/download"
		}
	}

	ToolsEnvironment
	{
		"Engine"			"Source"
		"UseVPLATFORM"		"1"
		"PythonVersion"		"2.7"
		"PythonHomeDisable"	"1"
	}
}

To:
"GameInfo"
{
	game	"Team Fortress 2"
	type multiplayer_only
	nomodels 1
	nohimodel 1
	nocrosshair 0
	hidden_maps
	{
		"test_speakers"		1
		"test_hardware"		1
	}
	nodegraph 0
	GameData	"tf.fgd"
	InstancePath "maps/instances/"
	advcrosshair 1
	supportsvr 1


	FileSystem
	{
		SteamAppId				440
		
		//
		// Setup engine search paths.
		//
		// If a search path contains "_english", and the current language is not english, then
		// another search path will be inserted above the english one by replacing "_english" with
		// the appropriate language.
		//
		// To debug how the engine has parsed this file, type "path" at the console.
		//
		// Search paths are relative to the base directory, which is where hl2.exe is found.
		//
		// |gameinfo_path| points at the directory where gameinfo.txt is.
		// |all_source_engine_paths| points at the directory cintaining HL2 shared content.
		//
		SearchPaths
		{

			// First, mount all user customizations.  This will search for VPKs and subfolders
			// and mount them in alphabetical order.  The easiest way to distribute a mod is to
			// pack up the custom content into a VPK.  To "install" a mod, just drop it in this
			// folder.
			//
			// Note that this folder is scanned only when the game is booted.
			game+mod+custom_mod	tf/custom/*

			// We search VPK files before ordinary folders, because most files will be found in
			// VPK and we can avoid making thousands of file system calls to attempt to open files
			// in folders where they don't exist.  (Searching a VPK is much faster than making an operating
			// system call.)
			game_lv				"D:/Games/Steam/steamapps/common/Team Fortress 2/tf/tf2_lv.vpk"
			game+mod			"D:/Games/Steam/steamapps/common/Team Fortress 2/tf/tf2_textures.vpk"
			game+mod			"D:/Games/Steam/steamapps/common/Team Fortress 2/tf/tf2_sound_vo_english.vpk"
			game+mod			"D:/Games/Steam/steamapps/common/Team Fortress 2/tf/tf2_sound_misc.vpk"
			game+mod+vgui		"D:/Games/Steam/steamapps/common/Team Fortress 2/tf/tf2_misc.vpk"
			game				"D:/Games/Steam/steamapps/common/Team Fortress 2/hl2/hl2_textures.vpk"
			game				"D:/Games/Steam/steamapps/common/Team Fortress 2/hl2/hl2_sound_vo_english.vpk"
			game				"D:/Games/Steam/steamapps/common/Team Fortress 2/hl2/hl2_sound_misc.vpk"
			game+vgui			"D:/Games/Steam/steamapps/common/Team Fortress 2/hl2/hl2_misc.vpk"
			platform+vgui			"D:/Games/Steam/steamapps/common/Team Fortress 2/platform/platform_misc.vpk"

			// Now search loose files.  We'll set the directory containing the gameinfo.txt file
			// as the first "mod" search path (after any user customizations).  This is also the one
			// that's used when writing to the "mod" path.
			mod+mod_write+default_write_path		|gameinfo_path|.

			// Add the TF directory as a game search path.  This is also where where writes
			// to the "game" path go.
			game+game_write		"D:/Games/Steam/steamapps/common/Team Fortress 2/tf"

			// Where the game's binaries are
			gamebin				"D:/Games/Steam/steamapps/common/Team Fortress 2/tf/bin"

			// Last, mount in shared HL2 loose files
			game				"D:/Games/Steam/steamapps/common/Team Fortress 2/hl2"
			platform			"D:/Games/Steam/steamapps/common/Team Fortress 2/platform"

			// Random files downloaded from gameservers go into a seperate directory, so
			// that it's easy to keep those files segregated from the official game files
			// or customizations intentially installed by the user.
			//
			// This directory is searched LAST.  If you visit a server and download
			// a custom model, etc, we don't want that file to override the default
			// game file indefinitely (after you have left the server).  Servers CAN have
			// custom content that overrides the default game files, it just needs to be
			// packed up in the .bsp file so that it will be mounted as a map search pack.
			// The map search pack is mounted at the top of the search path list,
			// but only while you are connected that server and on that map.
			game+download	"D:/Games/Steam/steamapps/common/Team Fortress 2/tf/download"
		}
	}

	ToolsEnvironment
	{
		"Engine"			"Source"
		"UseVPLATFORM"		"1"
		"PythonVersion"		"2.7"
		"PythonHomeDisable"	"1"
	}
}


After that, make shortcuts from both hlmv.exe and hlmvplusplus.exe. Go to Team Fortress 2 (32bits)\bin, hold Alt, and drag-an-drop hlmv.exe, release the left mouse-click. Now do the same for hlmvplusplus.exe.

You can move these shortcuts to Steam\steamapps\common\Team Fortress 2 (32bits). After doing so, right-click on "hlmv.exe", and go to Properties.

Pictogram info.png Note: These use the default paths. If you have Steam / TF2 installed somewhere else, you'll have to replace the "C:\Program Files (x86)" part to where your Steam is installed!

On the "Target:" section, make sure this is written:

"C:\Program Files (x86)\Steam\steamapps\common\Team Fortress 2 (32bits)\bin\hlmv.exe" -game "C:\Program Files (x86)\Steam\SteamApps\common\Team Fortress 2 (32bits)\tf"

On the "Start in:" section, make sure this is written:

"C:\Program Files (x86)\SteamApps\common\Team Fortress 2 (32bits)\bin"

Then hit apply.

For hlmvplusplus.exe, it's the same method. Make sure that the "Target:" section is like this:

"C:\Program Files (x86)\Steam\steamapps\common\Team Fortress 2 (32bits)\bin\hlmvplusplus.exe" -game "C:\Program Files (x86)\Steam\steamapps\common\Team Fortress 2 (32bits)\tf"

And the "Start in:" section is like this:

"C:\Program Files (x86)\Steam\steamapps\common\Team Fortress 2 (32bits)\bin"

Now to use either HLMV or HLMV++, use the shortcut you just created. This method allows you to use older versions of HLMV++ and the 32bits version of HLMV without having to copy the TF2 game files. This will load everything from "steamapps/common/Team Fortress 2", even if you open from a separate folder.

This comes with some advantages. Namely, if you use mods on TF2, these won't be affected by this folder as it only includes the necessary fixes for HLMV, the empty folders fix, and that's it.


Collapsed tables contain important information, but a lot of them were collapsed to reduce clutter on the page. Make sure to read these if you are having trouble figuring out what to do on HLMV.

Recommended Monitor Resolution

The minimum monitor resolution should be 1920x1080, anything higher is accepted as well, but anything lower will make the image too small for the Wiki.

The blur issue also happens for unknown reasons. HLMV++ fixes the blur problem, and if you are having this problem, it's recommended using it over the regular HLMV.

Pictogram comment.png Note: If you are using more than one monitor on your computer, make sure the monitor with the highest resolution, and the one you'll use HLMV with, is set as the primary/main one. If you use HLMV on a secondary monitor (with higher resolution than the primary monitor), blurry issues will happen:

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.

Pre-requisites

HLMV requires a few files in order to fix a few things before working into image creation.

All .vpk files go to "Steam\steamapps\common\Team Fortress 2\tf\custom"

Does not affect in-game

You can keep these files on their folders and they won't affect in TF2.

Pre-Configured dxsupport.cfg

https://github.com/gabrielwoj/hlmv-resources/raw/main/VPKs%20-%20ZIPs%20-Releases/HLMV%20-%20Pre-Configured%20dxsupport.cfg.zip

Make a backup of your current dxsupport.cfg (just in case), and replace it. It's located on "Steam\steamapps\common\Team Fortress 2\bin".

This file should technically max up all your settings to the highest. Note that your settings in TF2 does not affect HLMV in any way (I run at incredibly low graphics on TF2, for instance).

Pictogram comment.png Note: Be aware that if you "Verify the Integrity of Game Files" on TF2 via Steam, the dxsupport.cfg will reset to default. You'll have to replace it again.

A good way to check if it's using high texture settings is by loading Engineer, Heavy or Medic's model and checking their class emblem.

If you were unable to reach max quality settings, try doing the HLMV++ method.

Skybox Texture

https://github.com/gabrielwoj/hlmv-resources/raw/main/VPKs%20-%20ZIPs%20-Releases/HLMV%20-%20Skybox%20Background%20-%20Black.vpk (black colored skybox)
or
https://github.com/gabrielwoj/hlmv-resources/raw/main/VPKs%20-%20ZIPs%20-Releases/HLMV%20-%20Skybox%20Background%20-%20White.vpk (white colored skybox)

This will replace the sky-looking skybox on HLMV, you have the choice for either a black BG or white BG, you have to choose one of them, but do not download both. This will make image screenshotting easier as you'll only need to press Ctrl+B to change colors (more on that later).

"Can't Find Directory" Fix

https://github.com/gabrielwoj/hlmv-resources/raw/main/VPKs%20-%20ZIPs%20-Releases/HLMV%20-%20Missing%20Folders%20Fix.zip

This pack will make all folders for all models used in the game, but doesn't actually include anything. HLMV has a problem when loading via "(Steam) Load Model" where it can't find where the models are. This .zip will fix it. Unlike the other ones, this is not a .vpk, but you can extract on the same folder, "custom".

Will affect in-game

These files may alter some graphical things in TF2, they are mostly unnoticeable changes, though.

You can have a custom folder called "custom_hlmv", where you can drop these files, and your standard custom folder. Whenever you go work on HLMV, you can rename "custom" to "custom_" and the HLMV one to "custom". When you are done using HLMV, change the "custom" folder to "custom_hlmv" and rename "custom_" to "custom".

Fire Overlay Fix

https://github.com/gabrielwoj/hlmv-resources/raw/main/VPKs%20-%20ZIPs%20-Releases/HLMV%20-%20Fire%20Overlay%20Fix.vpk

By default, a fire overlay will appear in all models. This file makes the texture invisible. In case you keep this file even when playing TF2, it does not affect in-game very much, you only won't have the fire overlay when someone's burning from a Pyro. The flames and afterburn still appear as normal.

A preview of the fire textures being shown (top), and no fire textures when using the texture replacement (bottom).

Cubemaps

https://github.com/gabrielwoj/hlmv-resources/raw/main/VPKs%20-%20ZIPs%20-Releases/HLMV%20-%20Cubemap%20Fix.vpk

This replaces the sunrise looking cubemap to one that is easier on the eyes, used throughout most images on the Wiki, especially paint variants. It will replace the cubemaps in-game too. Cubemaps are images that appear on reflective objects (like Macho Mann's reflective lenses).

The default HLMV cubemaps (left), and the modified and much more cleaner cubemaps (right).

Strecthy Models

https://github.com/gabrielwoj/hlmv-resources/raw/main/VPKs%20-%20ZIPs%20-Releases/HLMV%20-%20Dummied%20Out%20hlp_bones.vpk

With some cosmetics on Scout, Demoman and Heavy, some models may appear stretched. This pack fixes it by renaming the problematic bones that causes the stretch (hlp_forearm bones). This may affect in-game as the bones that don't work on HLMV do work in TF2.

A screenshot with an affected model by the issue (left), a screenshot with the hlp_forearm fix applied (right).

Grey Cornea

https://github.com/gabrielwoj/hlmv-resources/raw/main/VPKs%20-%20ZIPs%20-Releases/HLMV%20-%20Gray%20Cornea%20Texture%20Fix.vpk

ONLY download this if you are having weird grey eyes on the classes. If the eyes/cornea are white, then this fix is not needed. If you install this fix with the cornea being white, the eyes will become incredibly bright (this is due the fix being a simple brightness change on the eye's lightwrap texture).

This issue usually happens on NVIDIA Graphics Cards, but there has been cases in happening with other graphics cards too.

Pictogram comment.png Note: On AMD/ATI Graphics Cards, updating Windows may cause the grey cornea issue to re-appear. You can try restarting your computer first (after the updates have been installed), but if that doesn't work, a way to fix it is by enabling Radeon Chill on AMD Radeon Software. You can also try this method in case you are still getting this issue regardless of an update on Windows.

To enable Radeon Chill on HLMV, right-click on your desktop and select AMD Radeon Software. Go to the Gaming tab, click on the three dots, and click Add a Game.... Add hlmv.exe from Steam\steamapps\common\Team Fortress 2\bin's folder. Now click on the hlmv icon that will appear on the list, and enable Radeon Chill, without changing any of its values.

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).

Other Programs

GIMP

https://www.gimp.org/downloads/

GIMP is a free image editing software similar to Photoshop. It's used to remove the background from screenshots taken in HLMV and making them transparent.

Optional

Other Programs

Paint.NET

https://www.getpaint.net/download.html (download the free version from dotPDN's Mirror Host)

Paint.NET can be useful in certain situations (such as specific cases in paint variants where it can make the process faster), but it's not required for the removal of the background in HLMV.

TFMV

https://www.mediafire.com/file/9zfv7b6u7cr44at/TFMV_1.9.2_-_No_Auto_Bodygroup.zip/file

Pictogram comment.png Note: This is a slightly modified version of TFMV that removes the custom texture files that the program uses for automatic bodygroup (default headgears) hide. This is due the automation of bodygroup change causes the class texture to be slightly more desaturated than the official textures in the game. The only downside to this is that you'll have to manually hide them via HLMV, and have to press "Okay" on a message that will appear everytime when you launch TFMV.
If the program is still automatically hiding bodygroups by default, make sure to close it and delete the files inside "TFMV\config\cached". The rgba_grey_ and player_masks.zip are automatically generated upon lauching TFMV, but these will not affect your class textures.

TFMV is a program that lets you equip weapons and cosmetics easier with a friendly User Interface, as well letting you choose styles and paint with all available paint cans very easily. It's incredibly useful for making paint variant table previews.

  • TFMV has an annoying functionality that adds a background "model", making you unable to quickly switch to the black or white skybox with the Ctrl+B shortcut.
  • TFMV may show an error when you open that a file is in use, simply click "Continue" to fix it.
  • TFMV does not list any item with the medal equip_region. You'll have to load it manually and paste to the "custom model path..." typing box and press "Add".
    • Checking the items_game.txt file on "steamapps\common\Team Fortress 2\tf\scripts\items" can be useful to find the internal file name of models.

Advantages of TFMV:

  • Lets you easily load any cosmetics/weapons;
  • Makes painting extremely easy, very useful for making paint variant images;
  • Automatically fixes the "white colored" bug that older cosmetics has.
    • HLMV / TFMV reads the $color2 value for the color, where TF2 reads $colortint_base, some old cosmetics does not have the color2 string, so it shows completely white. TFMV will automatically copy the values of $colortint_base and make a $color2 line.
    • Another advantage of loading in TFMV is that some items incorrectly has a $color2 line, in which makes the cosmetic have a visual problem (examples include: BedBug Protection, Kapitan's Kaftan and Man in Slacks). Because TFMV will automatically apply the value from $colortint_base to $color2, this issue is resolved upon loading anything via TFMV.
    • Some cosmetics may also have different values for these 2 strings for inconsistent reasons, where TFMV will again be useful when loading these.

Disadvantages of TFMV:

  • Items with a medal equip_region are not easy to load as they are not on the cosmetics list.
  • Some styles are missing from the cosmetic list (such as Triad Trinket's Bear style).

My TFMV settings:

Collapsed for less clutter on the page.

Click on the >> in case the Advanced Settings menu is not seeing upon first launch.

Items tab:

  • ADVANCED SETTINGS
    • [X] ref pose by default
  • HLMV SETTINGS
    • Camera
      • [X] disable TFMV pos/rot setting
    • Window
      • Doesn't really matter, as it's recommended maximizing the window upon lauching HLMV.
    • Light
      • Do not change the "Light" values.
        • In case you do accidentally, the values needs to bbe: 0.000000 180.000000 0.000000
      • Ambient color: R 76 G 76 B 76
      • Do not change the "Light Color" value.
        • Value needs to be: R 255 G 255 B 255
    • Background
      • Background Color
        • Either R 255 G 255 B 255 or R 0 G 0 B 0 depending on what skybox you downloaded above.
          • If you download the white skybox, use R 0 G 0 B 0.
          • If you downloaded the black skybox, use R 255 G 255 B 255.
      • [X] Background texture

Settings tab:

  • STEAM
    • Steam Directory: *user dependant*
    • TF Directory: *user dependant*
  • TFMV
    • [ ] Disable 'custom' mods folder while using TFMV
    • [X] Allow multiple TFMV / HLMV to run simultaneously
    • [X] Advanced settings tab open on start
      • Can be useful having it enabled to use a standard player model instead (by removing hwm\ on the player model path).
      • More information regarding HWM and regular models on this section: #Important Stuff
  • ITEMS
    • [ ] Strict equip region
    • [X] Strict item paintability
      • Having it on may let you discover unpaintable items with paintable properties, in which you can add such information as "Unused content" if not yet on the article. But I recommend keeping it off.
  • SCREENSHOTS
    • Directory: *user dependant*
    • [x] transparent background
    • capture refresh delay: 10 seconds
      • Regardless of these options, I haven't really used TFMV's screenshot function very often. Also, this functionality will not work if you use the invisible tfmv_bg.mdl files provided above.
  • HLMV
    • [ ] Force HLMV antialiasing
      • DO NOT ENABLE THIS OPTION, IN ANY CIRCUMSTANCES. Doing so will edit your dxsupport.cfg, and disabling it will make the anti-alias look worse than before enabling and disabling.
    • [X] use HWM player models

HLMV++

https://www.mediafire.com/file/c7elfehaoymujwl/hlmvplusplus_test3_fix_mirror.zip/file (Mirror) (version: test3_fix)

HLMV++ is a recently released program that is a more powerful version of HLMV (although it's still in development). HLMV++ can be useful to set your graphical settings to max in case the pre-configured dxsupport.cfg doesn't work, or if you are having other issues with regular HLMV.

After some testing, it seems the program wields identical results to HLMV, as well fixing the blur issue that regular HLMV has. It also fixes many other problems featured in regular HLMV, such as the Grey Cornea issue, older cosmetics being painted white, cosmetics being colored incorrectly (such as Breakneck Baggies, Man in Slacks and Kapitan's Kaftan), stretchy models for some items on Scout, Demoman and Heavy, and a couple more.

Previously, the 1st Test Build for HLMV++ saved different camera values on the Registry, as well having a different FOV whenever a model was loaded/refreshed. Back then, I mentioned that paint variants should not be made with HLMV++, however, the discrepancy with the camera values and FOV has been fixed on the 2nd Test Build. Now both HLMV and HLMV++ store the exact same values and their camera angles look the same on both sides. Meaning that it's now safe to use for paint variant pics considering the values has been fixed.

I have done comparisons in the past comparing an identical shot on regular HLMV (without any problems from above) and HLMV++, and they were 1:1 matches.

This version of HLMV++ is a test build, meaning there will be bugs and problems, including crashes.

Some menus are a bit different than from HLMV, however, if you learned how to use HLMV's settings with this guide, you'll probably have already a good grasp on how HLMV++ works.

"Installing" HLMV++

Simply open the zip, and extract both files to "Team Fortress 2\bin".

If it gives an error regarding that it couldn't find gameinfo.txt, do the following:

  • Click and hold hlmvplusplus.exe.
  • Before letting the left mouse button go, hold Alt, and let it go with the Alt button being held.
    • This will create a shortcut.
  • Right click the shortcut and go to "Properties".
  • On the "Target:" section, add the following (after the last quotation mark):
    • Add an empty space.
    • After the empty space, add: -game "*path_to_tf_folder*".
      • Example: "E:\Jogos\Steam\steamapps\common\Team Fortress 2\bin\hlmvplusplus.exe" -game "E:\Jogos\Steam\SteamApps\common\Team Fortress 2\tf".
  • Now try opening HLMV++ via the shortcut.

Maximizing quality settings with HLMV++

  • Close your regular HLMV if you have it open.
  • Open hlmvplusplus.exe from "Team Fortress 2\bin".
  • On the "Render" tab below, change these values:
    • Change "Picmip:" to "Best".
    • Change "Antialias:" to "x8".
    • Change "Anistropic:" to "x16".
  • Close HLMV++.
  • Now use HLMV as normal with max quality settings.

Using HLMV

This section will explain each area and option on HLMV, and which ones are used in image creation.

Sections marked in dark green means important tabs for image creation.
Sections marked in dark yellow means important options that are used in specific scenarios.
Sections marked in dark red means things you should not change in HLMV for image creation.
Sections marked in grey represent the following:
  • Options in HLMV that are greyed out and cannot be used;
  • Information on the screen that are not editable;
  • Tabs that are not used in image creation.

Top Tabs

Menu Option More Information
File Load Model... Opens the Windows Explorer file explorer to open a local model file, you can't load models from the game files via this way.
(Steam) Load Model... Opens a window that lets you choose models from the game files, as well custom models downloaded on community servers.
Refresh (F5) Refreshes the window. This will cause the following things to reset:
  • Facial flexing.
  • Bodygroups.
  • The first animation on the Sequence tab.
  • The bone values (body_pitch, move_x, etc.) set on the Sequence tab.

Load Weapon... Opens the Windows Explorer file explorer to open a local model file to be attached to the current loaded model, you can't load models from the game files via this way.
  • Despite being called "Load Weapon...", any models can be attached to a model, including cosmetics.
(Steam) Load Weapon... Opens a window that lets you choose models from the game files to be attached to the current loaded model, as well custom models downloaded on community servers.
Unload Weapon > Shows a list of models attached on your model, letting you unattach the ones you want or unattach all models.

Load Background Texture... Unavailable. Not possible to click it and/or use it.
Load Ground Texture... Unavailable. Not possible to click it and/or use it.

Recent Models > Shows a list of the most recent loaded models (does not include models loaded via "Load Weapon").

Exit Closes HLMV.
Options Background Color... Opens the Color Picker menu and lets you choose the color of the background.
  • If you are using the black colored skybox, always pick white (Red 255, Green 255, Blue 255).
  • If you are using the white colored skybox, always pick black (Red 0, Green 0, Blue 0).
    • The value of the Background Color is saved upon closing HLMV, not requiring set it again when loading the same model again.
Ground Color... Opens the Color Picker menu and lets you choose the color of the ground.
  • Do not alter these values.
Light Color... Opens the Color Picker menu and lets you choose the color of the light source.
  • Do not alter these values.
Ambient Color... Opens the Color Picker menu and lets you choose the color of the ambient.
  • Do not alter these values.

Center View Resets the camera angle and model position (this will reset to the same position when you first load a model via HLMV).
Viewmodel Mode Switches the camera to use the "Viewmodel Mode". Only used when making "first-person perspective" images. This will reset the camera angle and model position settings.

Make Screenshot... Doesn't work, provides a corrupted screenshot.
  • Do not use this to take screenshots on HLMV.
View File Associations... Unavailable. Not possible to click it and/or use it.

Show Activities Shows a list of animations using a different nomenclature. Not recommended enabling it.
Show hidden Shows hidden animations that are hidden by default, which makes the list of animations a lot bigger.
It's recommended enabling it when making complex poses in HLMV.
Help Not required or used in image creation.

Bottom Tabs / Control Panel

Tab Option / Item More Information
Render Textured Shows a drop-down menu of various rendering options to choose from:
  • Wireframe -> Smoothshades -> Textured -> BoneWeights -> BadVertexData -> UV Chart.
    • "Textured" is the default setting, and should ALWAYS be used.
    • The "UV Chart" render option will show the model's texture and its UV maps, but the texture will appear stretched.
  • Bug: Pressing certain letters/numbers on HLMV will change the renderer option. You'll have to set it back to "Textured" even if it's already enabled.
    To do so, simply choose another render option and select "Textured" again.
[X] Normal Mapping Enables normal mapping. Disabling it will make it look like -dxlevel 80 graphics.
  • Enabled by default, keep this always enabled.
[ ] Attachments (Ctrl-A) Shows where attachments are on the model.
  • Disabled by default. Keep this disabled.
[ ] Bones (Ctrl-O) Shows the bone structure of the model.
  • Disabled by default. Keep this disabled.
[ ] Normals (Ctrl-N) Shows normal points located on the model.
  • Disabled by default. Keep this disabled.
[ ] Tangents (Ctrl-T) Shows tangent points on the model.
  • Disabled by default. Keep this disabled.
[ ] Wireframe (Ctrl-W) Shows a wireframe representation of the model while still showing the proper render of the model behind it.
  • Disabled by default. Keep this disabled.
[X] Specular
  • Enabled by default, keep this always enabled.
FOV: Changes the Field of View value.
  • Default Value: 65. Recommended not altering this value.
    • Some users may use this option, but I never have used it outside Item icon creation or paint variants that had their FOV values saved on the Rotations page.
      I don't understand very well how FOVs work, so I always keep it default.
[ ] Ground (Ctrl-G) Shows a ground on the screen.
  • Disabled by default. Keep this disabled.
[ ] Movement (Ctrl-M) Shows a box related to movement. Unknown.
  • Disabled by default. Keep this disabled.
[ ] Background (Ctrl-B) Enables the background (either white or black depending on what skybox color you downloaded it).
  • Disabled by default. Used for screenshots, highly-recommended using the Ctrl+B hotkey.
[ ] Hit Boxes (Ctrl-H) Shows hitboxes.
  • Disabled by default. Keep this disabled.
[ ] Seq. Boxes Show sequence boxes.
  • Disabled by default. Keep this disabled.
[ ] Shadow (Ctrl-S) Draws a shadow. Only visible if the Ground option is also enabled.
  • Disabled by default. Keep this disabled.
[ ] Software Skin Unknown.
  • Disabled by default. Keep this disabled.
[ ] Enable Overbrightening Unknown.
  • Disabled by default. Keep this disabled.
[ ] Physics Model Shows the physics model attached to the main model.
  • Disabled by default. Keep this disabled.
None Requires the Physics Model option enabled to use it.
Shows a drop-down menu, letting you choose specific physics model areas from the current loaded model to show on the rendered.
  • Always keep this set to "None", as it should not be used in image creation.
[ ] Enable IK Makes the class' hands hold a weapon correctly to a weapon with some animations when manipulation certain bones, or "merging" with other animations.

Can be useful in some situations, as well not recommended in other situations.

  • Disabled by default.
[ ] Head Turn Unknown.
  • Disabled by default. Keep this disabled.
[ ] Ilum. Position Unknown.
  • Disabled by default. Keep this disabled.
[X] Play Sounds Play sounds associated with certain animations (like the Burstchester noises). Recommended muting HLMV's audio from Windows' Volume Mixer instead.
  • Enabled by default.
    • Sounds will only play if the animation is not paused (not at "x 0.00 = 0.0 fps", more about that below).

To mute HLMV on Windows, make sure to make some audio come out of it. Then, right-click your speakers/volume indicator icon on the corner of your screen, and click "Open Volume Mixer".
Click the speakers icon below the application you want to mute to mute it.

[ ] Show Origin Axis Shows the origin of the model.
  • Disabled by default. Keep this disabled.
    • This is only useful when doing model recompilation to use on the 3D Weapons project, which is very complex. This tutorial won't go in details regarding 3D images.
Axis Len: Increases the size of the Origin Axis.
Sequence ref Speed 0.00 (.)
ref |-------------- ( )
ref |-------------- ( )
ref |-------------- ( )
ref |-------------- ( )
Clicking on any "ref" lets you change the animation currently playing.
  • Recommended always keeping the first "ref" intact, and use the other tabs to use other animations.
    Slide one of the bars from "|--------------" to "--------------|" in order for the animation to take "full" place over the "reference" pose from the first tab.
    • This is recommended due to when you refresh HLMV by pressing F5, the frame of the animation on the first tab will reset, but not the other tabs.
    • Using the other tabs while keeping the first one as "ref" also means that animations that "resume" to the default pose will look correctly
      (if you were to use the first tab for a taunt animation, for instance, the final frames would make the class model lie to the ground).
---------------------| x 1.00 = 30.0 fps Adjusts how fast all animations move (including animations set on other tabs).
Since you will be taking static screenshots, it's recommended setting this to "|--------------------- x 0.00 = 0.0 fps".
[ ] Blend Sequence Changes Unknown.
  • Disabled by default. Keep this disabled.
[Blend Now] 0.000 ------|----------- Unknown.
  • Do not use these.
Activity modifiers Unavailable. Not possible to click it and/or use it.
[ ] Animate weapons Unknown
  • Disabled by default. Keep this disabled.
Frame |---------------------------------- *Number of frames* Adjusts the frame of the currently animation being played.
  • Upon clicking anywhere on the slider, it will automatically set the animation speed to "x 0.0 = 0.0 fps".
  • Specific frames can be set to each animation tab by clicking the radio buttons (setting "( )" to "(.)"), then adjusting the Frame slider.
------|-------------- 0.0 body_pitch
---------|----------- 0.0 body_yaw
|-------------------- 0.0 r_hand_grip
|-------------------- 0.0 r_arm
---------|----------- 0.0 move_x
---------|----------- 0.0 move_y
Adjusts specific bones used in certain animations.
  • Refreshing HLMV by pressing F5 will reset any values changed on these sliders.

More information about these here.

Model *classname* A drop-down menu to select a specific bodygroup to be changed (varies per class).
Submodel 0
|---------------
Lets you select a specific bodygroup, such as hiding default headgear.
  • The slider below is non-functional.
Non-functional drop-down menu.
Skin 0 Lets you change the current skin of the model. It usually follows as:
  • 1st skin being the RED Team variation, 2nd skin being the BLU Team variation.
    • Classes has more skins for Ubercharged textures, Zombiefied textures, and Zombiefied Ubercharged textures.
    • Spy has a bunch of different skins, used for his disguise masks (in conjunction with his "spyMask" bodygroup).
[ ] Auto LOD Enables automatic "Level of Detail" change depending on how far away the model is from the camera.
  • Disabled by default. Keep this disabled.
0 The specific LOD being rendered on HLMV. 0 is the highest quality one, while the higher number is the lowest quality one.
  • "0" is always default. Always use "0".
LOD Switch: These sections are non-editable, they are just for showing information. Not required for image editing.
Materials used:
VMTs Loaded:
Shader:
Flex Each tab/drop-down menu Shows the specific facial area to modify. Each class comes with a default set of tabs/drop-down menus.
  • Clicking on a tab will let you choose other facial flex areas that may not be shown by default (varies per class).
    • Changing certain facial flex areas from the drop-down menu will reset all your sliders.
      Make sure to set these first before making your facial flex.
Sliders Adjusts the facial flex selected from the drop-down menu.
[Reset] Resets all your facial flex changes to the default one.
[Random] Randomizes all facial flex areas.
  • Usually this will result in bad looking facial flex and should not be used, unless you are lucky enough to get a good looking one.
[Zero] Same functionality as "[Reset]"
[One] Sets all facial flexes to the very end of the slider.
  • This makes a very silly looking face, therefore, it should not be used.
Physics Not required or used in image creation.
Bones
Attachments
IKRule
Events

Mouse Controls

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.
Pictogram comment.png Note: 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.

Good info about many things

Bodygroups per class

Class Bodygroup Submodel Class Bodygroup Submodel Class Bodygroup Submodel
Scout hat Submodel 0: Keeps the default hat.

Submodel 1: Hides the hat.

Soldier rocket Submodel 0: Hides the rocket.

Submodel 1: Shows the rocket (used for reloading animations).

Pyro head Submodel 0: Shows Pyro's default gasmask.

Submodel 1: Hides Pyro's default gasmask.

headphones Submodel 0: Keeps the default headset.

Submodel 1: Hides the default headet.

hat Submodel 0: Keeps the default hat.

Submodel 1: Hides the defalt hat.

grenades Submodel 0: Keeps the default grenades.

Submodel 1: Hides the default grenades.

shoes_socks Submodel 0: Keeps the default shoes and socks.

Submodel 1: Hides the default shoes and socks.

medal Submodel 0: Adds the Gentle Manne's Service Medal on Soldier.

Submodel 1: Removes the Service Medal on Soldier.

backpack Submodel 0: Keeps the default oxygen tank.

Submodel 1: Hides the default oxygen tank.

dogtags Submodel 0: Keeps the default dogtags chain and tags.

Submodel 1: Hides the default dogtags chain and tags.

grenades Submodel 0: Keeps the default grenades.

Submodel 1: Hides the default grenades.

righthand Submodel 0: Keeps Pyro's default right hand.

Submodel 1: Hides Pyro's default right hand (used on Hot Hand).

Demoman smile Submodel 0: Hides "smile" sticker.

Submodel 1: Shows the "smile" sticker (used when taunting with Demoman grenade launchers).

Heavy hands Submodel 0: Keeps Heavy's default fists.
Submodel 1: Hides Heavy's default fists (used on glove primaries and the Yeti arms).

Submodel 2: Adds the Purity Fist hand to Heavy's left hand (Purity Fist must be added manually).

Engineer hat Submodel 0: Keeps the default hat.

Submodel 1: Hides the defalt hat.

shoes Submodel 0: Keeps his default shoes.

Submodel 1: Hides his default shoes.

rightarm Submodel 0: Keeps Engineer's default orange/yellow glove.
Submodel 1: Changes his glove to the Gunslinger.

Submodel 2: Hides Engineer's default orange/yellow glove (used for Short Circuit).

grenades Submodel 0: Keeps the default grenades.

Submodel 1: Hides the default grenades (the weird shadows are part of Demoman's texture and should be kept as is).

Medic medic_backpack Submodel 0: Keeps Medic's default Medi Gun backpack.

Submodel 1: Hide Medic's default backpack (used for other Medi Guns and a few cosmetics).

Sniper arrows Submodel 0: Hides Huntsman arrows on his quiver.

Submodel 1: Adds Huntsman arrows on his quiver.

Spy spyMask Submodel 0: Hides Spy's disguise mask.

Submodel 1: Shows Spy's disguise mask (the disguises change depending on the Skin set, "Skin 0", "Skin 1", "Skin 22" and "Skin 23" shows Spy disguising as a Spy).

hat Submodel 0: Keeps the default hat.

Submodel 1: Hides the defalt hat.

bullets Submodel 0: Keeps the default bullets on his vest.

Submodel 1: Adds the Sydney Sleeper darts to his vest.

Skins per class

Class Skin Name Explanation
Scout
Soldier
Pyro
Demoman
Heavy
Engineer
Medic
Sniper
Skin 0 RED Team.
Skin 1 BLU Team.
Skin 2 Ubercharged RED Team.
Skin 3 Ubercharged BLU Team.
Skin 4 RED Team Zombie-fied (requires loading player/*classname*/*classname*_zombie.mdl as a "Weapon" for the full thing).
Skin 5 BLU Team Zombie-fied (requires loading player/*classname*/*classname*_zombie.mdl as a "Weapon" for the full thing).
Skin 6 Ubercharged RED Team Zombie-fied (requires loading player/*classname*/*classname*_zombie.mdl as a "Weapon" for the full thing).
Skin 7 Ubercharged BLU Team Zombie-fied (requires loading player/*classname*/*classname*_zombie.mdl as a "Weapon" for the full thing).
Spy Skin 0 RED Team.
Skin 1 BLU Team.
Skin 2 Ubercharged RED Team.
Skin 3 Ubercharged BLU Team.
Skin 4* RED Team when disguised as Scout.
Skin 5* BLU Team when disguised as Scout.
Skin 6* RED Team when disguised as Sniper.
Skin 7* BLU Team when disguised as Sniper.
Skin 8* RED Team when disguised as Soldier.
Skin 9* BLU Team when disguised as Soldier.
Skin 10* RED Team when disguised as Demoman.
Skin 11* BLU Team when disguised as Demoman.
Skin 12* RED Team when disguised as Medic.
Skin 13* BLU Team when disguised as Medic.
Skin 14* RED Team when disguised as Heavy.
Skin 15* BLU Team when disguised as Heavy.
Skin 16* RED Team when disguised as Pyro.
Skin 17* BLU Team when disguised as Pyro.
Skin 18* RED Team when disguised as Spy.
Skin 19* BLU Team when disguised as Spy.
Skin 20* RED Team when disguised as Engineer.
Skin 21* BLU Team when disguised as Engineer.
Skin 22 RED Team Zombie-fied (requires loading player/*classname*/*classname*_zombie.mdl as a "Weapon" for the full thing).
Skin 23 BLU Team Zombie-fied (requires loading player/*classname*/*classname*_zombie.mdl as a "Weapon" for the full thing).
Skin 24 Ubercharged RED Team Zombie-fied (requires loading player/*classname*/*classname*_zombie.mdl as a "Weapon" for the full thing).
Skin 25 Ubercharged BLU Team Zombie-fied (requires loading player/*classname*/*classname*_zombie.mdl as a "Weapon" for the full thing).
* Requires "spyMask" bodygroup set at "Submodel 1" to show the differences per skins.

Most used and important facial flex tabs

Internal name What it does
left_BrowOutV / right_BrowOutV** Controls classes eyebrows.
left_Frown / right_Frown**
left_BrowinV / right_BrowinV**
left_Smile / right_Smile Pulls each side of the mouth to make a smile.
multi_Smile Changes the position of the mouth, resulting in a different smile look. Only has effect when left/right_Smiles sliders are changed.
left_LipsV / right_LipsV These will open the lips of the classes, revealing their teeth. It's a bit complicated and it's usually class-dependant how hard it is.
left_LipUpV / right_LipUpV
left_LipLoV / right_LipLoV
JawV Opens the class mouth. You can make "screaming" expressions with this, for example. Other Jaw options are available but JawV is the most important one.
eyes_updown Moves the eyes. It may not have effect depending where your camera is located. The class' eyes will usually always focus to the camera.
But you can use these if you want them to focus somewhere else (like the cosmetic, a hat, a shirt, etc.).
eyes_rightleft
left_CloseLid / right_CloseLid* Opens and closes classes eyes. multi_CloseLid lets you "move" both eyes to make different eye expressions.
multi_CloseLid*
* Hidden by default, requires changing facial flex from one of the drop-down menus. I tend to replace the ones above "eyes_updown".
** Most of these are hidden by default on Medic's model. Highly recommended setting these before doing facial flexes because they will guarantee reset your facial flex upon changing these.

Internal names of noteworthy taunts/animations

These will show animations that are usually used around the Wiki, as well some that are class specific. This won't go into details of advanced posing, but I'll be including on how to use the sliders for body_pitch and others, which can be used in certain animations.

Class Internal name What it does
All classes taunt01-taunt_zoomin_broom_exit Internal names for taunts. Also includes taunts for Item sets (Frankenheavy, for instance), and consumables (Sandvich eating, Bonk! drinking, etc.).
competitive_loserstate_idle Animations used in Competitive Mode. Please check Competitive Animation Errors for precautions when using these.
competitive_winnerstate_idle
secondrate_sorcery_*classname* Internal name for the Second Rate Sorcery taunt.
selectionMenu_all Animations related to the class selection screen. Recommended using Anim01 and setting a specific frame.
selectionMenu_Anim01
selectionMenu_Idle
stand_ Animations used when a class is holding a weapon.
  • You can use body_pitch and body_yaw to change how the class holds the weapon.
    • In certain classes, the weapon may appear unattached from their hands depending on how much you change these two sliders. Make sure to enable "Enable IK" from the "Render" tab.
      • However, keeping "Enable IK" enabled with another animation may cause their arms to go "all over the place", so make sure to disable it in case the animation wasn't what you were looking for.
  • On Medic, the stand_ animations will make him move, regardless of your values on the your "x 0.00 = 0.0 fps" slider.
    • Use the run_ animations instead.
run_ Animations used when a class is running with a weapon.
  • Like above, you can use both body_pitch and body_yaw sliders, as well move_x and move_y with the run_ animations.
    • Make sure to also change the "Frame" of the animation to see the class "running" frames.
    • You can temporarily increase the "x 0.00 = 0.0 fps" slider to make it easier adjust the move_x and move_y settings.
      • However, keep in mind that changing the "x 0.00 = 0.0 fps" slider will make all animations from all tabs move along with it, so use it with caution.
crouch_ Equivalent of stand_ but with the class crouching instead. Same sliders applies here.
  • crouch_ animations aren't commonly used for cosmetic previews.
crouch_walk_ Equivalent of run_, but with walking while crouching instead. Same sliders applies here.
  • crouch_walk_ animations aren't commonly used for cosmetic previews.
*classname*_taunt_replay Director's Vision animation.
primary_death_backstab Death animations, including the unused burning animation.
primary_death_burning
primary_death_headshot
dieviolent Death animation when killed by the Cow Mangler and other energy based weapons.
Soldier primary_fall_stomp_A Animations used when rocket jumping with the Mantreads (I think?)
primary_fall_stomp_B
primary_floatA-primary_floatD Animations used when Soldier is rocket jumping.
Demoman true_scotsmans_call Bad Pipes animation.
Heavy SPELL_arm_pose_raw Unused pose.
diesimple Death animation, only available on Heavy.
freeze Death animation related to the Spy-cicle (?).
Engineer bucking_bronco_end Bucking Bronco animations.
bucking_bronco_intro
Sniper a_grapple_wall_idle Unused (?) animation of Sniper clinging on a wall, related to the Grappling Hook. This was used on the Master's Yellow Belt's cosmetic preview.
killer_solo Killer Solo animation.
Spy disco_fever Disco Fever animation.

Competitive Animation Errors

Class Sequence Reason and explanation
Scout competitive_loserstate_idle Using this pose causes the Dogtags on the Scout model to disappear completely. Avoid using this pose when making images, however, feel free to use this pose if the Cosmetic Item in question hides Scout's Dogtags.
Pyro competitive_loserstate_idle
competitive_winnerstate_idle
Using this pose causes the default Napalm Grenades on Pyro to be flipped on a strange orientation. Avoid using this pose, and only use it in case the Cosmetic Item being shown hides the Grenades entirely.
Pyro competitive_loserstate_idle Along with the issues described above, equipping a Cosmetic Item that uses the bone associated to Medals (mostly being Tournament Medals and other types of Medals), will cause the medal to float on the incorrect side, and in front of the Napalm Grenades.
Demoman competitive_loserstate_idle Similar to above, this pose causes the Grenades on the Demoman's chest to show all too close together. Only use this pose in case the Cosmetic Item you are showing hides the Grenades.
Sniper competitive_winnerstate_idle This pose does not have any visible problem at first glance, however, the bone related to Medals is incorrectly placed. Avoid using this pose when creating image previews for Medals Cosmetic Items, or for other Cosmetics that use the same bone.


Important Stuff

Player Models

  • Always use HWM models for cosmetic previews on the Wiki, do not use regular models (player\*classname*.mdl). HWM models are located in player\hwm\*classname*.mdl.
    • There are exceptions to this, when a cosmetic item replaces the entire class head (like Chicken Kiev), or cosmetics that merge with parts of the model (such as the Aloha Apparel on Scout and Burly Beast), use regular models. In-game, regular models are used instead, which is why items that merges with the textures of the class' head or neck may look different in HWM.
      • The reason as to why using regular model for cosmetics that covers the class head, like bird heads, is because you can use facial flexing that will affect the cosmetic (like opening Chicken Kiev's mouth).

Weapons

  • Most old weapons are located in weapons\c_models, including stock.
    • Weapons can also be found at workshop\weapons\c_models or workshop_partner\weapons\c_models.
      • However, always use stock weapons when making cosmetic images and such. Certain poses may not actually require holding a weapon.
      • Also, do not add attachments like Festivezers, Botkillers, or Australium versions of stock weapons, always use the default Stock weapon (Normal quality).
      • The only exception of non-stock weapons is when making a preview for an Item set that has a weapon on the set. Where in this case, including the specific weapon from the set is highly recommended.

Cosmetics

  • Most old cosmetics are located in (as well Valve-made ones and the Yeti set for heavy): player\items\*class name*.
    • mvm_loot have a few other models like the Mann Up medals and canteens. Taunts is self-explanatory, though not all taunts are there.
  • Other cosmetics are found in: workshop\player\items\*class name* and on workshop_partner\player\items\*class name*.
    • Most newer taunts are located in their class folders on the Workshop folder, usually with the prefix "taunt_", but not always.

Making a cosmetic preview

Posing on HLMV

Follow the instructions above on how to make a good cosmetic preview. Everything you should know is explained above. The most important ones being how to load weapons and cosmetics, how to hide class default headgear/bodygroups, and how to use the facial flex functionality.


If you would like for good references on well made images, you can check images made by these users:

These are two tables I made when nominating both users for the Cap, it shows the majority of their work, and it can be very useful for you to check for references on well made pictures (how they angle their poses, what animations they use, etc.).

You can also visit my "Images" page for all images I have made to the Wiki, for even more references:

Images from the first section "Imagery That Contains Classes (Mostly)" is what you may be looking for, cosmetic previews.


Once you are happy with the results (both facial-flex wise, camera angle, and pose), make sure to set the background color to either "Red 255, Green 255, Blue 255" or "Red 0, Green 0, Blue 0", depending on your skybox choice (if the skybox you download is black, use 255 255 255 in the RGB, do the reverse if you download the white skybox, setting the RGB to 0 0 0).

Make sure to keep the background white, and take your first screenshot (use Win + PrintScreen to take fast screenshots that will be saved on your "Pictures" folder). Now, press Ctrl + B and take another screenshot. You must keep everything the same on both screenshots other than the background color, absolutely do not change anything like posing, camera angle, lighting, etc.

Removing background with GIMP

Note: Video available below.
  • Open GIMP.
  • Drag-n-drop the screenshot you took with the background being colored white.
  • After it opens, drag-n-drop to the GIMP's window the screenshot with the background being colored black.
    • You may need to "zoom out" the image before adding the black background screenshot, as it may be positioned incorrectly.
    • You can zoom in/out by holding Ctrl and using the scroll wheel of your mouse.

INCREDIBLY IMPORTANT NOTE: The white background version NEEDS to be at the bottom of the layers, while the black one has to be on top. Doing the reverse will add faint white outlines around your image.


  • After adding the black background as a layer, click on the layer, and set the mode to difference.
    • If your top layer had a different position than the bottom layer, some outlines will appear, this is due the image not being loaded at the correct place. Make sure to zoom out GIMP's image area before drag-n-dropping the black background screenshot in case this happens.
      • This will most likely not happen if you just have 1 monitor connected to your computer, I use dual-monitors, so.
  • Go to second tab of the layers tab, where it will show "Red, Green, Blue, Alpha" channels.
    • Right click on "Red" (always use Red even if you are doing an image for the BLU team, in case you do paint variants), and select "Channel to selection".
  • Press Ctrl+X.
    • Now delete the other layer (the white background one), by selecting it and then clicking the squared X icon.

  • Select the Rectangle Select tool and select the area of your cosmetic preview (where the class is).
    • Be sure to not select anything outside (such as HLMV's window and such), only select the transparent areas.
  • Go to the tab "Image" and click "Crop to Selection".
  • Go to the "Image" tab once again and click "Crop to Content".

  • Go to "File" and "Export As" your new image. Save it as .png. The file name does not matter if you are uploading directly from a red link or replacing an existing image.
    • If you are making an image to be featured on the "Gallery" section (which I call "class gallery"), then you'll have to name it accordingly with the filename being used on the article, which includes the file extension.
  • Do not upload images in JPEG or other formats. JPEG will remove the transparency.

Video

Note: The video already has both the black and white background layers open (first 3 steps already done).
Note: My GIMP's window is slighty customized and it's different than the default one that comes after installing it, however, it should still be pretty straight forward on where you should click things.

Making the process of background removal faster (with GIMP)

Instead of clicking things manually, you can set some Keyboard Shortcuts to make your work easier.

  • Open GIMP.
    • Click on "Edit" at the top, and select "Keyboard Shortcuts".
  • Open the "Tools" section.
    • Set "Rectangle Select" to "1".
  • Open the "Image" section.
    • Set "Crop to Content" to "3".
    • Set "Crop to Selection" to "2".

Now you can do this part by simply pressing these buttons. The "Rectangle Select" may not be needed as GIMP saves your last used tool upon program close/launch.

The previous steps are not possible to set keyboard shortcuts (or at least not that I am aware of).

If both of your white background and black background images are 100% identical other than the background being different in HLMV (including Windows elements like the taskbar, clock, etc.), you can instantly press 2 and 3 after deleting the white background layer.
This is due to the "Crop to Selection" going to crop only where GIMP found a difference, in this case, the HLMV renderer area, where your cosmetic preview is located.

If both pictures have some difference, pressing 3 will give an error. Simply use the "Rectangle Select" tool and do this part manually.

Advanced Posing

First, it's highly recommended enabling hidden animations (go to the top bar, select "View" -> "Show hidden"). Note that enabling it will cause your body_pitch, move_x, etc., sliders to reset. It seems facial flex are not reset upon clicking on it.

Advanced posing uses the other tabs on the "Sequence" tab on the bottom control panel. It has been mentioned above that it's recommended keeping the first tab as ref while using the others (unless you are using 5 animation at once).

So, for instance, if you use the animation run_PRIMARY on Scout, you can also add his reload animation to the current pose. Also, load his Scattergun as a "Weapon": weapons\c_models\c_scattergun.mdl (note that this is inside the "c_models" folder, not inside the "c_models/c_scattergun" folder).

Enable the third radio button "(.)", and increase the slider until the very end. Now choose either PRIMARY_reload_loop, PRIMARY_reload_start or PRIMARY_reload_end. While keeping the third radio button selected, move the Frame slider at the bottom to switch the frame of the reloading animation. For instance, frame 8.0 on PRIMARY_reload_loop will have the Scout elevating the Scattergun's handle.

Because you are using an animation that you can use the different bones on the right (the body_pitch and etc.), you can also modify these bones along with it, creating unique poses.

You may notice that the class' hand might appear unattached from the weapon. To fix this, enable "Enable IK" on the "Render" tab at the bottom panel.

Interestingly, some reload animations for some classes let you use completely different animations and the class will still hold the weapon appropriately. So for instance, try changing the animations you used on Scout to taunt_chicken at frame 37.0, while keeping PRIMARY_reload_loop at frame 8.0 on the third tab.

You'll see that the Scout will hold the Scattergun in a "boss-like way". Experiment these radio buttons to make unique poses for your images.

Note that usually, non-primary weapon reload animations start with ReloadStand_*, you can use other Reload animations as well.

Another helpful hidden animations are r_armposes and r_handposes. With these, you can adjust the r_hand_grip and r_arm values on the right. One of the best uses of this is for holding melee weapons with different animations. Select r_handposes on the third, fourth or fifth tab, and move the slider at the very end.

Try loading weapons\c_models\c_bat.mdl as a "Weapon" for this example (note that this is inside the "c_models" folder, not inside the "c_models/c_bat" folder).. Now that you have it loaded, type "14" on the r_hand_grip value. You can see that Scout is now holding the bat. You may slightly adjust r_hand_grip to make Scout hold the bat more "naturally".

It's recommended keeping the r_armposes and r_handposes at the last animation tabs, and use the 2nd and 3rd one for other animations. Keep the r_armposes animation above the r_handposes animations so classes hold things properly when the r_arm value is higher than 2.0.

If you use any animation that ends with _ALLCLASS, you won't need to add these two animations in order to use the two sliders at the right (the r_arm and r_hand_grip).

Engineer has an additional animation called r_handposes_engineer, you can make the Engineer hold his pistol on basically any animation, it looks really cool.

Lastly, you can use layer_gesture_ animations when using multiple animations for a pose. The diference between the layer versions with the standard gesture ones, is that the layer versions won't move the class body, only the arms.

One more thing. Some classes have layer_*_WepGrip animations. For the example of Scout, he has layer_ITEM1_WepGrip (Mad Milk), layer_ITEM2_WepGrip (Shortstop), layer_MELEE_WepGrip / layer_STUN_WepGrip (Melee and Sandman, STUN = Sandman, but the Sandman one is identical to the MELEE one). Using these will make the class hold the weapon very naturally with basically any other animation enabled.

You can decrease the sliders for some animations to make the animation more "subtle". For instance, reducing layer_gesture animations will make the raised arm more close to the animation above it, in other words, more close to the class, depending on the animation you may use.

Decreasing sliders can be extremely useful to reduce clipping in image creation. For instance, when doing Scout shirt cosmetics, and you plan in using either competitive_winnerstate_idle or any of the selectionMenu_ animations, you can slightly increase (from the initial point) the animation from a layer_gesture_. This way, it will make Scout's hand that is holding his hip clip less on the shirt cosmetic.

broom_look_anim is an animation that may be useful for slight head rotation, when used with conjuction of other animations.

_animatrix_idle animations are incredibly useful enabling it with other animations to fix small clipping problems (or create very unique posing). On Scout, you have ITEM1_animatrix_idle, ITEM2_animatrix_idle, MELEE_animatrix_idle, MELEE_ALLCLASS_animatrix_idle, PASSTIME_animatrix_idle, PRIMARY_animatrix_idle, SECONDARY_animatrix_idle and STUN_animatrix_idle. You can use any of these regardless of the weapon you are holding. I usually use the MELEE_animatrix_idle. Each one may have different "strength" on how much it will change your current pose.

With these enabled with conjuction of other animations on top, you can adjust the body_pitch and body_yaw with any animation, as long as the _animatrix_idle has its slider up (either fully or the amount you want).

Using a_broom_steer_matrix lets you adjust the move_x and move_y sliders with any animation. Other _matrix may do the same with slight different results, similar to the _animatrix_idle animations explained above.

You also have MELEE_swing and MELEE_allclass_swing, I think these are self-explanatory.

Feel free to mess around with different animation on other Sequence tabs for unique poses! I mentioned the majority of useful ones, but there's a few others not mentioned here.

Making Paint Variants

Coming soon.