【L4D2】使武器Mod支持TLS皮肤
注:请务必学习完Crowbar等工具的使用再来看本教程。
首先,了解一下TLS皮肤。
武器的TLS皮肤并非RNG皮肤,它可以由地图制作者选择,而非由游戏随机选择。也就是说,如果地图制作者想要,地图上的固定武器就可以使用TLS皮肤而非默认皮肤。这种技术主要体现在官图c14(临死一搏)。
所以说,这东西平时卵用没有。但为了游戏体验,我还是喜欢给Mod添加TLS皮肤。
下图是武器的TLS皮肤名称数据。

好了,开始工作吧。
解包Mod文件(vpk文件),找到v模和w模并用Crowbar进行反编译。
对于使用官方模型纹理的Mod,用GCFScape提取并用Crowbar反编译官方模型文件,并找到$texturegroup及其详细设置,将参数复制到Mod模型的$cdmaterials后即可(别忘了上下各空一行)。
对于使用自定义模型及纹理的Mod,在$cdmaterials后写下:
$texturegroup "skinfamilies"
{
{ "" }
{ "" }
}
记得要上下各空一行。这只适用于有两个皮肤的武器,如果武器有三个皮肤,那么就要再加一个{ "" }。如果模型读取多个vmt,那么一个大括号内的双引号数量就等于模型读取的vmt数量。
举个例子,如果一个木喷的Mod有三个皮肤,(此处材质按 [手电,主体,子弹] 的顺序排序)第一个皮肤读取sp_fl.vmt,sp_bd.vmt,sp_bl.vmt,第二个皮肤会读取sp_gfl.vmt,sp_gbd.vmt,sp_gbl.vmt,第三个皮肤会读取sp_ifl.vmt,sp_ibd.vmt,sp_ibl.vmt,那么就应该这么写参数:
$texturegroup "skinfamilies"
{
{ "sp_fl" "sp_bd" "sp_bl" }
{ "sp_gfl" "sp_gbd" "sp_gbl" }
{ "sp_ifl" "sp_ibd" "sp_ibl" }
}
上面提到了示例材质排序的顺序,注意上下材质要对应,此处第一列是手电材质,第二列是主体材质,第三列是子弹材质。
找到模型使用的纹理,复制并修改默认纹理(单个或多个vtf文件)得到TLS皮肤使用的纹理,别忘了新建vmt(每个皮肤的vmt数量应当是固定值)。
这样就基本完成了对TLS皮肤的添加,最后用Crowbar编译模型,再用工具封包得到vpk文件就行了。