Thanks, but I got it. It's really simple, actually. You just make a .dds file named WH_FC_N_01 (For the whipper), and change it to the color of the skin. I'm having a problem with the arms; what would be the file name for them?
EDIT: Oh, I see your previous post...Do you think anything can be done about this?
Yeah the arms are gonna be the tricky part.
Feet and gloves (if there's any skin showing) have texture files but arms may be real-time rendered but there may be something somewhere.
- - - Updated - - -
Some poking around level research.
Each class has it's own gfpk (which oddly has a couple textures in it as well) which has some text files that may be defining color (among other things).
There are 20 of them.
And lots of unanswered questions:
- Which (if any) are relevant?
- Why are there variants? (base_0, 1_base_0, 2_base_0, etc)
- Can overrides be placed (like for the texture files)?
- Within the files, what values (if any) affect skin color?
The file extension is ".tmlib" and it's a text file.
There are some additional files (also 20) with the extension .txmsrc (with the same base filenames).
The content of these two file types are different.
What's interesting is the tmlib files give a X,Y position making me think that there
is a texture file it's referencing for 'standard materials'.
(If you are going to poke around yourself, you'll want to use QuickBMS or similar tool to extract from
..\ScarletBlade\Data\Objects\PC\<CLASS>\<CLASS>.gfpk - where "<CLASS> is DE, WH, PU, etc.)
base_0.tmlib (WH) (excerpt)
*version 1.20
*vm_mtl
{
*type "Standard Material"
*pos -574 -282
*mtl_alpha_mask_value 0.300
*mtl_light_type 0
*mtl_blend_type 0
*input_info 13 9 0 -1 -1 1 0 3 0 2 0 -1 -1 -1 -1 11 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
}
base_0.txmsrc (WH)
variables = ""
textures = "sampler UserTexture0 : register(s0) = sampler_state{ MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; AddressU = Wrap; AddressV = Wrap;};
sampler UserTexture1 : register(s1) = sampler_state{ MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; AddressU = Wrap; AddressV = Wrap;};
"
normal = "tex2D( UserTexture1, In.texCoord )"
diffuse = "( ( GetFresnelTerm(view, bumpSampleWS, 5.0000f ) * float4(0.0000f,0.1000f,0.0000f,0.0000f) ) + tex2D( UserTexture0, In.texCoord ) )"
diffuse_level = " 1 "
glossness = "(pow(2.0f,40.0000f*0.1f)*4.0f)"
spec_color = "float4(0.8980f,0.8980f,2.0000f,1.0000f)"
spec_level = "(( tex2D( UserTexture0, In.texCoord ) * 0.5000f ))"
self_ill = " 0 "
ambient_map = " 0.5f "
light_map = " 0.5f "
distortion = " 1 "
opacity = " 1 "
custom_shader = " 1 " end_of_file
base_0.tmlib (DE) (Excerpt)
*version 1.20
*vm_mtl
{
*type "Standard Material"
*pos -172 0
*mtl_alpha_mask_value 0.300
*mtl_light_type 0
*mtl_blend_type 0
*input_info 13 9 0 -1 -1 1 0 3 0 2 0 -1 -1 -1 -1 11 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
}
base_0.txmsrc (DE)
variables = ""
textures = "sampler UserTexture0 : register(s0) = sampler_state{ MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; AddressU = Wrap; AddressV = Wrap;};
sampler UserTexture1 : register(s1) = sampler_state{ MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; AddressU = Wrap; AddressV = Wrap;};
"
normal = "tex2D( UserTexture1, In.texCoord )"
diffuse = "( ( GetFresnelTerm(view, bumpSampleWS, 5.0000f ) * float4(0.0000f,0.1000f,0.0000f,0.0000f) ) + tex2D( UserTexture0, In.texCoord ) )"
diffuse_level = " 1 "
glossness = "(pow(2.0f,40.0000f*0.1f)*4.0f)"
spec_color = "float4(0.8980f,0.8980f,0.8980f,1.0000f)"
spec_level = "(( tex2D( UserTexture0, In.texCoord ) * 0.1500f ))"
self_ill = " 0 "
ambient_map = " 0.5f "
light_map = " 0.5f "
distortion = " 1 "
opacity = " 1 "
custom_shader = " 1 " end_of_file
- - - Updated - - -
You might ping
ShadowX2X, there was some exploration some of these files a while back.
http://www.gamevixenzone.net/naughty-vixens-13/scarlet-blade-make-all-amor-nude-829/#post13504