Zh/VMT: Difference between revisions
< Zh
Jump to navigation
Jump to search
(Created page with "{{subst:#if: Translation of 'VMT' to '中文' via Template:LanguageBar buttons * * * * * * * * * * * * * * * * * * * * * * * * * * * *...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
本简体中文页面由 [[User:458901357|Kutaka0303]] 汉化。 | |||
{{ | {{toc-right}} | ||
{{todo| | {{todo|将与引擎无关的内容移至 {{L|material|材质(Material)}}部分。}} | ||
'''VMT''' ("Valve Material") 文件定义了二维表面所使用的 {{L|Texture|纹理(Texture)}} 。 它包含了 {{src|4}} 引擎模拟表面的视觉、听觉和物理特性所需的所有信息。<br>如果材质缺失,将会出现著名的 Source 紫黑格子图案。白色线框不是材质缺失,而是 {{L|shader|着色器(shader)}}缺失。 | |||
__TOC__ | __TOC__ | ||
材质的内容可归入以下某些或全部类别之中: | |||
# {{L|Texture|纹理(Texture)}} 名称 | |||
# {{L|$surfaceprop|Physical surface}} {{L|Material surface properties|types}} | |||
# | # {{LCategory|Shaders|Shader}} {{LCategory|List of Shader Parameters|parameters}} | ||
# | # {{L|Material Map Compile Flags|材质编译标志}} | ||
# | # {{en}} [[Material optimization|回退设置]] | ||
# | # {{en}} [[Material Proxy|材质代理(Material Proxy)]] | ||
# [[Material optimization| | |||
# [[Material Proxy| | |||
== | == 一个简单的例子 == | ||
{{CodeBlock|<nowiki>LightmappedGeneric | {{CodeBlock|<nowiki>LightmappedGeneric | ||
{ | { | ||
Line 33: | Line 24: | ||
$surfaceprop gravel | $surfaceprop gravel | ||
}</nowiki>}} | }</nowiki>}} | ||
'' | ''这是一种非常基础的 [[Wikipedia:Shingle beach|shingle beach]] 材质。'' | ||
# | #使用了 <code>[[LightmappedGeneric]]</code> 着色器,这意味着该材质用于带有 {{L|lightmap}}的表面 (即 {{L|brush}}es)。 | ||
#'' | #''左花括号 ({{Code|<nowiki>{</nowiki>}}) 用于开启一组参数'' | ||
# | # <code>{{L|$basetexture}}</code> 参数被赋值为 <code>coast\shingle_01</code>,这便是纹理所在的位置。即为将要显示在屏幕上的内容。 | ||
#<code> | #<code>{{L|$surfaceprop}}</code> 为材质赋予砾石的物理特性。 | ||
#'' | #''右花括号 ({{Code|<nowiki>}</nowiki>}}) 用于闭合一组参数'' | ||
需要记住的是,这种材质只能用于 brush。例如,如果需要将其用于 {{L|model}}s, 则需要使用 {{code|{{L|VertexLitGeneric}}}} 着色器创建另一个版本。 | |||
大多数情况下,将材质从一种着色器切换到另一种着色器很简单,只需更改它们的第一行即可,因为它们之间共享大量参数。有些参数只适用于特定的着色器,比如 {{L|Phong}} 效果,它仅适用于 {{code|{{L|VertexLitGeneric}}}},但不幸的是,如果着色器不理解某个参数,不会出现任何严重错误,只是该参数不会产生任何效果。 | |||
{{tip| | {{tip|如果需要在参数值中使用空格、制表符或花括号字符,则必须用 "引号" 将整个值括起来。你经常会看到所有内容都这样被括起来 —— 但其实没必要,这样做只是白费功夫。}} | ||
{{bug|hidetested=1| | {{bug|hidetested=1|有时{{when}}, VMT 中定义的第一个参数会加载失败。如果发生这种情况,可以使用诸如 {{code|$bug}} 之类的虚拟参数。}} | ||
== | == 查找材质 == | ||
=== SteamPipe === | === SteamPipe === | ||
当 Valve 将所有 {{src|4}} 游戏更新到 {{L|SteamPipe}}时,所有材质都从 {{L|GCF}} 移至 {{L|VPK}} 文件中。之前使用 {{L|GCF}} 文件的第三方游戏(运行于 {{src04|1}} - {{src09|1}}) 的材质也被移至仓库 {{L|VPK}} 文件中。 VPK 文件可与 {{gcfscape|4}} 和 {{vpkedit|4}}配合使用。 | |||
有关 SteamPipe 的更多信息,请点击查看 [https://support.steampowered.com/kb_article.php?ref=7388-QPFN-2491 这里] | |||
=== | === 非 SteamPipe 游戏 === | ||
在非 {{L|SteamPipe}} 的 {{src|4}} 游戏中,材质存储在游戏或模组的 {{Path|materials\}} 文件夹中。浏览材质的最佳方式是从 {{hammer|4}}的纹理选择界面进行。 | |||
如果想要编辑或查看 Valve 的材质文件代码,首先需要使用 {{gcfscape|4}} 从它们的 {{L|GCF}} 包中提取出来。这些文件通常存储在名称中带有 "materials" 的 GCF 中。 | |||
== | == 另见 == | ||
* | * {{L|Creating a Material|创建一个材质(Material)}} | ||
* [[Notepad++ VDF languages|Notepad++ | * {{en}} [[Notepad++ VDF languages|Notepad++ 对materials的语法高亮显示功能]] | ||
* [[Valve Texture Format]] | * {{en}} [[Valve Texture Format|Valve纹理格式]] | ||
* | * {{L|Shader|着色器(Shader)}} | ||
* | * {{LCategory|List of Shader Parameters|着色器参数列表}} | ||
* [[Source VMT Editor]] | * {{en}} [[Source VMT Editor|起源引擎VMT编辑器]] | ||
* [https://github.com/Xyphos/VMTGen VMTGen] | * [https://github.com/Xyphos/VMTGen VMTGen] | ||
* [http://www.therazzerapp.de/tutorials/vmt_erstellen.html German Tutorial by TheRaZZeRApp] | * [http://www.therazzerapp.de/tutorials/vmt_erstellen.html German Tutorial by TheRaZZeRApp] | ||
{{ACategory|Material System}} | |||
{{ACategory|Source}} | |||
{{ACategory|File formats}} |
Latest revision as of 05:50, 17 September 2025
本简体中文页面由 Kutaka0303 汉化。
待完善: 将与引擎无关的内容移至 材质(Material) 部分。
VMT ("Valve Material") 文件定义了二维表面所使用的 纹理(Texture) 。 它包含了起源 引擎模拟表面的视觉、听觉和物理特性所需的所有信息。
如果材质缺失,将会出现著名的 Source 紫黑格子图案。白色线框不是材质缺失,而是 着色器(shader) 缺失。
材质的内容可归入以下某些或全部类别之中:
一个简单的例子
这是一种非常基础的 shingle beach 材质。
- 使用了
LightmappedGeneric
着色器,这意味着该材质用于带有 lightmap 的表面 (即 brush es)。 - 左花括号 ({) 用于开启一组参数
$basetexture
参数被赋值为coast\shingle_01
,这便是纹理所在的位置。即为将要显示在屏幕上的内容。$surfaceprop
为材质赋予砾石的物理特性。- 右花括号 (}) 用于闭合一组参数
需要记住的是,这种材质只能用于 brush。例如,如果需要将其用于 model s, 则需要使用 VertexLitGeneric 着色器创建另一个版本。
大多数情况下,将材质从一种着色器切换到另一种着色器很简单,只需更改它们的第一行即可,因为它们之间共享大量参数。有些参数只适用于特定的着色器,比如 Phong 效果,它仅适用于 VertexLitGeneric,但不幸的是,如果着色器不理解某个参数,不会出现任何严重错误,只是该参数不会产生任何效果。


查找材质
SteamPipe
当 Valve 将所有 起源 游戏更新到 SteamPipe 时,所有材质都从 GCF 移至 VPK 文件中。之前使用 GCF 文件的第三方游戏(运行于 起源2004 - 起源2009) 的材质也被移至仓库 VPK 文件中。 VPK 文件可与
GCFScape 和
VPKEdit配合使用。
有关 SteamPipe 的更多信息,请点击查看 这里
非 SteamPipe 游戏
在非 SteamPipe 的 起源 游戏中,材质存储在游戏或模组的
materials\
文件夹中。浏览材质的最佳方式是从 Hammer的纹理选择界面进行。
如果想要编辑或查看 Valve 的材质文件代码,首先需要使用 GCFScape 从它们的 GCF 包中提取出来。这些文件通常存储在名称中带有 "materials" 的 GCF 中。