Vtex
Vtex是一个用于转换TGA/PSD格式到 VTF格式的命令行工具
Last updated
Vtex是一个用于转换TGA/PSD格式到 VTF格式的命令行工具
Last updated
Valve Texture Tool,简称为 Vtex 是一个用于转换 targa (.tga) 或 Photoshop (.psd) (半条命橙盒版 SDK)格式到可以用于起源引擎的 Valve Texture Files (.vtf)格式的命令行工具。 它利用 targa (.tga) 图像和一个可选编译参数列表来创建 Valve Texture File (.vtf) 格式的文件。
注解:我们推荐使用 VTFEdit 以代替VTEX。 VTFEdit拥有更友好的用户界面,更广泛的格式支持,能够再不重编译的情况下改变大多数的vtf的属性, 独立的预览查看器并能够直接地对GCF( Grid Cache File 网格缓存文件)进行访问
VTFEdit 会让你的工作难度大大降低,但在某些特定情况下,你必须使用VTEX来完成某些任务。经典案例有:用 sprite sheet 修改或者创建VTF文件
确保 Steam 正在运行。
将targa图像放置在SteamApps/common/gamefolder/materialsrc/
文件夹中,其中gamefolder
是当前游戏的根目录(如:cstrike/dod/hl2/ hll2mp /tf
)。你也可以把图像放在这个文件夹的子文件夹中,让Vtex将自动从对应的materials/
的子文件夹中编译纹理。(例如,将图像放置在materialsrc/metal/
子文件夹中,Vtex将会从materials/metal/
的子文件夹中编译纹理。)
Vtex可执行文件 (Vtex.exe) i位于 /Steam/SteamApps/common/gamefolder/bin/
文件夹, gamefolder
是你游戏的根目录。 它可以通过以下两种方式之一来执行:通过简单的“拖放”方法(如下所述),或者是用这里描述的更高级的命令提示方法。当然Steam必须在执行时保持运行。
生成的Valve Texture File(.vtf)将会被编译到当前游戏的materials/
文件夹中。例如,如果当前的游戏是半条命2,纹理文件将被编译到SteamApps/common/Half-Life 2/hl2/materials/
文件夹中。如果targa图像位于子文件夹中,Vtex将会把纹理文件编译到相应的materials/
的子文件夹中。如果该子文件夹不存在,Vtex将自动创建它。
拖放方法是最简单的使用Vtex的方法。只要拖拽要转换的targa图像的图标,或者它的编译参数列表(从materialsrc/
文件夹)到Vtex可执行文件(Vtex.exe)的图标上,然后松开,Vtex就会自动编译纹理文件。
除了拖放方法外,Vtex还可以通过命令行界面(MS-DOS)中的命令提示符执行。这将允许您使用其更高级的功能。您可以在编译纹理时提供额外的参数来创建基本的.vmt文件,当然还有其他的一些选项。
vtex.exe
的语法如下:
任何文件的扩展名都会被忽略。(你可以参考不存在的 texture1.asd,只要图像实际存在,就不会有问题)。
命令行 可以进行更好的说明:
可以利用Windows环境变量“%sourcesdk%
”在命令行语句中轻松定位vtex.exe
。这个变量需要包含Source SDK安装目录的位置。
比如说,为了编译半条命2一个叫在"sourcesdk_content/hl2/materialsrc/metal
"文件夹内,叫"sample_material.tga
"的纹理你需要打开一个命令提示符,切换目录(cd)到
"sourcesdk_content/hl2/materialsrc/metal
" ,然后再命令行输入以下内容:
编译后的 .vtf 文件将会被放到这个文件夹内 (假设 Half-Life 2 是你当前需要修改的游戏):
注解:在打开命令提示符编译纹理之前,在SDK启动器或VConfig中正确设置当前游戏目录位置是非常重要的。当前游戏的改变不会影响任何已经打开的命令提示符窗口。这是由Windows使用环境变量的方法造成的。
您可以在vtex中输入 -mkdir 命令,如果目标路径不存在,它将创建目标路径。例如,如果有一个tag文件路径是/sourcesdk_content/hl2/materialsrc/sample/sample_material.Tga,
你可以在命令行输入这个:
这将会在 你的 Half-Life 2/hl2/materials
文件夹中创建一个名为“sample
”的新文件夹。(如果还不存在的话),然后编译完成的文件将会被放在这里。如果此目录已存在, -mkdir
参数将会被忽略。
你可以使用 -shader <shadername>
命令让Vtex为某一指定着色器(shader)的新材质创建一个.VMT文件。举例来说,为了创建一个基本的 LightmappedGeneric
材质,请像这样使用 -shader
命令:
这将会在half-life 2/hl2/materials/metal
中编译材质 sample_material.vtf 并在同一路径创建一个新的材质文件 sample_material.vmt
,请像这样使用LightmappedGeneric
着色器:
您可以使用-vmtparam <parameter> <value>
命令来为创建的.vmt文件添加额外的材料参数。如果在同一位置已经存在.vmt,则不会添加任何新参数。例如,要使一个材料半透明,你需要输入以下内容:
此命令会生成下面这个 sample_material.vmt
:
你也可以在同一个VTEX命令中添加多个 -vmtparam
语句,如下所示:
这将会创建下面这个指定凹凸镜面材质参数的 sample_material.vmt
:
此命令会使VTEX在执行命令时不向控制台产生任何输出,且在完成时不会暂停。
移除在VTEX结束工作时出现的 "Hit a key to continue
" 信息。
你可以使用 -outdir <parameter> <value>
命令覆盖VTF文件的输出目录。
用于快速地将旧的 VTF 格式转换为较新的 VTF 格式。
将输入输出文件放在同一个文件夹中,最好配合-quickconvert
命令使用。
在VTEX中你也可以使用命令行通配符,下面的的案例中,这个命令将会编译当前目录下所有的.tga文件:
这个命令将会编译当前目录下所有以“sample"开头的.tga文件:
在这个情况下,文件 "sample_metal
" 和 "sample3
" 将会被编译,但是 "samp_metal
" 或者 "sampl_2
"不会。
Vtex可以从同一命令行编译多个材料,你只需要将每个.tga文件的名称一个接一个排在第一个后面即可,如下所示:
如果你在命令行中使用-shader
命令生成一个.vmt文件,那么链中的每个.tga都会创建一个专属的.vmt文件,其中所有的参数都由-shader
和-vmtparam
命令决定。如果你需要对每个.tga的着色器参数单独进行更多的调试,可以使用批处理(.bat)文件来多次运行vtex。