View Single Post
Old 02-05-2012, 01:25 PM   #1632
HellJumper
 
Join Date: Oct 2010
Reputation: 4306
Posts: 6,034
Quote:
Originally Posted by Mr.Infidelz^ View Post
Wow that's a great texture, very TF2-ish, any advice or tutorials that helped you?

Also HellJumper I know we've had our differences but I just watched your tutorial which is very helpful I have a few questions though:

I noticed you had a 3DS Max shortcut on your desktop, do you use both or each for a different role?

Did you ever go over the paintable hats method in VMTs or Skin families/Transparent textures? I'm unsure since the Capotain is paintable.
The best guide on TF2 style texturing was written by swizzle, and you should definitely check it out: http://www.polycount.com/forum/showthread.php?t=73559

I used 3DsMax for a while until the student license expired. Unfortunately I downloaded the student version months before they decided to give out the 3-year version, so mine expired in a couple months (and they refused to give me the 3 year license even as a full time student). To answer your question, though, I used to use it for compiling purposes before the Blender 2.5 series. This was because originally Blender had faulty exporting tools, and the only way to really get models to export properly was to do funky rotations and stuff. Luckily this isn't an issue anymore, and everything can be done completely in Blender.

I wrote a guide on how to get paint working here: http://forums.tf2mods.net/showthread...d=1278#pid1278

A quick summary of what you do (assuming your item is team colored):
You need 2 vtfs and 2 vmts. One of the vtfs should be your main texture, but instead of it being textured normally, it should be greyscale like this:



In order to tell the texture what areas need to be painted, you simply need to mark these areas with white in the alpha channel of this texture like so:



Parts that are more white (in the base texture) will have paint more saturated, whereas darker areas won't be affected by paint as much. You can see this in the picture above: the main part of the hat is more white than the band around the hat which is slightly darker (Btw, this is actually a newer texture of the capotain that Valve never used)

The other vtf is for the normal map. Since your base texture's alpha channel is already being used as a paint mask, that doesn't leave any room for the phong mask. Thus the normal map should be a flat colored normal map which the phong mask (what parts you want to be shiny) in the alpha channel:



Again, white parts = more shiny.

Your two vmts will be your red and blue skins, and they should be identical with the exception of this line:
Code:
	"$colortint_base" "{78 102 134}"
Those numbers are RGB, and you can adjust them so that red/blue skins work to your liking. And example vmt would look like this:

Code:
"VertexlitGeneric"
{
	"$baseTexture" "models\player\items\demo/witchhunter"
	"$bumpmap" "models\player\items\demo/witchhunter_n" 
	"$detail" "effects/tiledfire/fireLayeredSlowTiled512.vtf"	
	"$detailscale" "5"
	"$detailblendfactor" .007
	"$detailblendmode" 6
	"$yellow" "0"

	"$nocull" "1" 
 	"$blendtintbybasealpha" "1" 
 	"$blendtintcoloroverbase" "0"  

	"$colortint_base" "{153 52 47}"  
	"$colortint_tmp" "[0 0 0]" 

	"$phong" "1"
	"$phongboost" "5"	
	"$lightwarptexture" "models/player/pyro/pyro_lightwarp"
	"$phongfresnelranges"	"[.15 .5 1]"
	"$normalmapalphaenvmapmask" "1"
	"$normalmapalphaphongmask" "1"


	"$rimlight" "1"												// To enable rim lighting (requires phong)
	"$rimlightexponent" "2"										// Exponent for phong component of rim lighting	
	"$rimlightboost" ".8"										// Boost for ambient cube component of rim lighting

	// Cloaking
	"$cloakPassEnabled" "1"

	"Proxies"
	{
		"weapon_invis"
		{
		}
		"BurnLevel"
		{
			"resultVar" "$detailblendfactor"
		}
		"YellowLevel"
		{
			"resultVar" "$yellow"
		}
		"Equals"
		{
			"srcVar1"  "$yellow"
			"resultVar" "$color2"
		}
  		"ItemTintColor"
  		{
   			"resultVar" "$colortint_tmp"
  		}
  			"SelectFirstIfNonZero"
  		{
   			"srcVar1" "$colortint_tmp"
   			"srcVar2" "$colortint_base"
   			"resultVar" "$color2"
  		}
	}
}
Then in your QC file you just add skinfamilies like you would normally do, and then you're good to go.
HellJumper is offline   Reply With Quote