Painted variants (tutorial)
This painted variants tutorial will document the current method of painting hats using Half Life Model Viewer (HLMV). There is an experimental automation toolset for experienced users, found here.
Contents
Setting up HLMV
We want the images to be the best quality possible, so you need to set up HLMV 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.
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 HLMV 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.
Taking the images
Rotations
Before you start taking images, check /Rotations and see if the item you're painting is noted on there. If it is, follow the "Setting rotations" section, otherwise when you've finished, follow the "Saving rotations" section.
Setting rotations
- Open regedit.exe (Start - Run)
- Navigate to:
HKEY_CURRENT_USER\Software\Valve\hlmv
- For your item, pick the associated directory - these will be listed on the rotations page.
- In the right-panel, double click "Rot" and copy-paste the value in the Rotations page for your item.
- Also do this for any "trans" and "lightrot" values, if provided.
- Close regedit, and re-open your item in HLMV.
- If there is a "FOV" value on the Rotations page for your item, you can enter this into HLMV - at the bottom left of the "Render" tab.
Saving rotations
If your item does not have an entry on the Rotations page...
- Open the item in HLMV
- Play around with the positioning - positioning it slightly forward, and then left or right - until you get a good view of the hat. The positioning should show as much of the item as possible.
- Follow the "Setting rotations" section, however instead of replacing the "Rot" value - copy it.
- Do the same for "trans" and "lightrot" - if they have been adjusted.
- Make an entry in the Rotations page, in the relevant position, documenting your item. Note the name of the item, it's registry-folder name and the rotation used.
- Commence generating the images, sticking to this rotation.
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" "{230 230 230}" // An Extraordinary Abundance of Tinge //"$color2" "{216 190 216}" // Color No. 216-190-216 //"$color2" "{197 175 145}" // Peculiarly Drab Tincture //"$color2" "{126 126 126}" // Aged Moustache Grey //"$color2" "{20 20 20}" // A Distinctive Lack of Hue //"$color2" "{105 77 58}" // Radigan Conagher Brown //"$color2" "{124 108 87}" // Ye Olde Rustic Color //"$color2" "{165 117 69}" // Muskelmannbraun //"$color2" "{231 181 59}" // Australium Gold //"$color2" "{240 230 140}" // The Color of a Gentlemann's Business Pants //"$color2" "{233 150 122}" // Dark Salmon Injustice //"$color2" "{207 115 54}" // Mann Co. Orange //"$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" "{47 79 79}" // A Color Similar to Slate //"$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" "{188 221 179}" // A Mann's Mint //"$color2" "{45 45 46}" // After Eight //"$color2" "{168 154 140}" // Waterlogged Lab Coat (RED) //"$color2" "{131 159 163}" // Waterlogged Lab Coat (BLU) //"$color2" "{59 31 35}" // Balaclavas Are Forever (RED) //"$color2" "{24 35 61}" // Balaclavas Are Forever (BLU) //"$color2" "{184 56 59}" // Team Spirit (RED) //"$color2" "{88 133 162}" // Team Spirit (BLU) //"$color2" "{72 56 56}" // Operator's Overalls (RED) //"$color2" "{56 66 72}" // Operator's Overalls (BLU) //"$color2" "{128 48 32}" // The Value of Teamwork (RED) //"$color2" "{37 109 141}" // The Value of Teamwork (BLU) //"$color2" "{101 71 64}" // An Air of Debonair (RED) //"$color2" "{40 57 77}" // An Air of Debonair (BLU) //"$color2" "{195 108 45}" // Cream Spirit (RED) //"$color2" "{184 128 53}" // Cream 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).
- Note the rotation and FOV values you have used on the rotations page, so that other users may pick up where you have left off and to make updating with new paints easier.
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.