Painted variants (tutorial)
This tutorial will document the current method of painting hats using HLMV.
Contents
Setting up HLMV
We want the images to be the best quality possible, so you need to set up Half Life Model Viewer so that it generates high quality images. You can force high quality settings in your graphics cards control panel, but this does not work for some people - so I will document the alternate method.
DLL Support
Instead of modifying VTF files, we can set up HLMV to correctly interpret newer VMT files and modify them directly, allowing us to have fully accurate representation of colors. To support this in-model viewer representation of paint, some SDK DLLs need updating:
- Run TF2 to ensure the correct binaries are updated prior to copying.
- Each time you run the SDK, but before you open the Model Viewer, we'll need to copy the dlls from TF2 into the SDK. A script has been created for your convenience.
- Simply copy the script below into a conventional text editor and save it as a .bat, making sure to append (x86) to Program Files if you run a 64-bit OS, and alter STEAM USERNAME to your account's username. Now each time you open the SDK, simply run the saved .bat
@echo off xcopy "C:\Program Files\Steam\steamapps\STEAM USERNAME\team fortress 2\bin" "C:\Program Files\Steam\steamapps\STEAM USERNAME\sourcesdk\bin\orangebox\bin" /E /Y echo Done.
Dxsupport.cfg
- Navigate to this directory
T:\Steam\steamapps\username\sourcesdk\bin\orangebox\bin
(whereT:\
the folder your Steam folder resides in). - Open up
Dxsupport.cfg
in a text editor of your choice. If you do not have this file, create it with this content. - Find your graphics card within that file, if it is not listed go to the bottom and use
ATI Unknown
orNVidia Unknown
depending on your graphics card manufacturer. - Add or modify the following lines in
Dxsupport.cfg
- within the section for your graphics card, and save it.
"DxLevel" "99" "ConVar.mat_antialias" "8" "ConVar.mat_forceaniso" "8" "ConVar.mat_picmip" "-10"
- 5. Open up a model and ensure there is no anti-aliasing or other quality defects. If there is it's likely your graphics card is not able to render images of high enough quality.
HLMV Options
- Open up Model Viewer via the Source SDK.
- Check (if it's not already checked) the
Normal Mapping
checkbox. - Set the background colour to white for each item:
Options... > Background Color...
- Full-screen HLMV (so you get a nice big image).
- When generating hat images, you should use the red team texture and angle the hat slightly forward and facing left or right (get as much of the hat in view as possible). For example: File:Painted_Tough_Guy's_Toque_7D4071.png. All the painted images of a certain hat should be in the same position.
Modify VMT Files
Name | Color | {R G B} |
---|---|---|
A Deep Commitment to Purple | #7D4071 | {125 64 113} |
Aged Moustache Grey | #7E7E7E | {126 126 126} |
Australium Gold | #E7B53B | {231 181 59} |
Color No. 216-190-216 | #D8BED8 | {216 190 216} |
Indubitably Green | #729E42 | {114 158 66} |
Mann Co. Orange | #CF7336 | {207 115 54} |
Muskelmannbraun | #A57545 | {165 117 69} |
Noble Hatter's Violet | #51384A | {81 56 74} |
Peculiarly Drab Tincture | #C5AF91 | {197 175 145} |
Radigan Conagher Brown | #694D3A | {105 77 58} |
Ye Olde Rustic Color | #7C6C57 | {124 108 87} |
Zephaniah's Greed | #424F3B | {66 79 59} |
An Extraordinary Abundance of Tinge | #E6E6E6 | {230 230 230} |
A Distinctive Lack of Hue | #141414 | {20 20 20} |
Pink as Hell | #FF69B4 | {255 105 180} |
A Color Similar to Slate | #2F4F4F | {47 79 79} |
Drably Olive | #808000 | {128 128 0} |
The Bitter Taste of Defeat and Lime | #32CD32 | {50 205 50} |
The Color of a Gentlemann's Business Pants | #F0E68C | {240 230 140} |
Dark Salmon Injustice | #E9967A | {233 150 122} |
Team Spirit (RED) | #B8383B | {184 56 59} |
Team Spirit (BLU) | #5885A2 | {88 133 162} |
VMT Editing
- Open
team fortress 2 materials.gcf
in GCFScape. - Extract the relevant VMT to the right place. For example, Tough Guy's Toque would use
\tf\materials\models\player\items\heavy\heavy_stocking_cap.vmt
, and should be extracted to:T:\Steam\steamapps\username\team fortress 2\tf\materials\models\player\items\heavy
. - Open the VMT file in VTFEdit or any text editor, and position the camera in HLMV to take screenshots.
- Near the top of the VMT, change
"$detailblendfactor" .01
to"$detailblendfactor" .00
. This removes the faint fire overlay (most noticeable on black painted items). - Create a new line in the VMT file underneath
"$colortint_base" "{VALUE}"
and fill it with this content"$color2" "{R G B}"
. You can find a complete list of colours to copy/paste below. - Paste the relevant RGB value found in the table to the right.
- Hit F5 in HLMV and take a screenshot of this color, and paste it in a Photoshop document.
- Repeat steps 5-6 for each color.
// Uncomment and re-comment as necessary. //"$color2" "{}" // Stock - Copy the value of "$colortint_base" into here. //"$color2" "{233 150 122}" // Dark Salmon Injustice //"$color2" "{207 115 54}" // Mann Co. Orange //"$color2" "{240 230 140}" // The Color of a Gentlemann's Business Pants //"$color2" "{231 181 59}" // Australium Gold //"$color2" "{50 205 50}" // The Bitter Taste of Defeat and Lime //"$color2" "{114 158 66}" // Indubitably Green //"$color2" "{128 128 0}" // Drably Olive //"$color2" "{66 79 59}" // Zephaniah's Greed //"$color2" "{47 79 79}" // A Color Similar to Slate //"$color2" "{216 190 216}" // Color No. 216-190-216 //"$color2" "{255 105 180}" // Pink as Hell //"$color2" "{125 64 113}" // A Deep Commitment to Purple //"$color2" "{81 56 74}" // Noble Hatter's Violet //"$color2" "{230 230 230}" // An Extraordinary Abundance of Tinge //"$color2" "{197 175 145}" // Peculiarly Drab Tincture //"$color2" "{165 117 69}" // Muskelmannbraun //"$color2" "{126 126 126}" // Aged Moustache Grey //"$color2" "{124 108 87}" // Ye Olde Rustic Color //"$color2" "{105 77 58}" // Radigan Conagher Brown //"$color2" "{20 20 20}" // A Distinctive Lack of Hue //"$color2" "{184 56 59}" // Team Spirit (RED) //"$color2" "{88 133 162}" // Team Spirit (BLU)
Export and upload the images
- Go to
File... > Scripts... > Export layers to file
and set the destination to wherever you see fit, and the file-type to PNG-8. - Ensure
Transparency
andTrim layers
are both ticked, and hitRun
. - Upload a new version of the existing files on the Wiki. Use one of the following codes in the upload summary box to automatically add licensing and proper categories (this saves you from typing out categories or manually selecting a license in the drop down box).
Amend the appropriate pages
Once all the files are uploaded, go to Template:Painted_items and add |updated=y
to the row template for that item. You're officially done!
Note
The new DLLs will mean most items will appear washed out in the model viewer. In order to fix this (for Vanilla screenshots) change the "$color2"
value to the same value as "$colortint_base"
and F5.