材质代理列表

It is not recommended to use machine translation without any corrections.
If the article is not corrected in the long term, it will be removed.
Also, please make sure the article complies with the alternate languages guide.
This notice is put here by LanguageBar template and if you want to remove it after updating the translation you can do so on this page.
这里列出了所有在系列游戏中可用的材质代理,以及仅出现在特定游戏中的代理(主要是其他Valve游戏)。

计算类

Equals
和Clamp
除外。Add 将两个变量相加。
srcVar1
srcVar2
resultVar
- 返回
srcVar1 + srcVar2
。
Multiply 将两个变量相乘。
srcVar1
srcVar2
resultVar
- 返回
srcVar1 * srcVar2
。
Subtract 用第一个变量减去第二个变量。
srcVar1
srcVar2
resultVar
- 返回
srcVar1 - srcVar2
。
Divide 将第一个变量除以第二个变量。
srcVar1
srcVar2
resultVar
- 返回
srcVar1 / srcVar2
。
Equals 将一个变量的值复制到另一个变量。
srcVar1
resultVar
- 返回
srcVar1
。
Abs 计算变量的绝对值。
srcVar1
resultVar
- 返回
abs(srcVar1)
。
Frac
返回变量的小数部分。对整数值无变化。
srcVar1
resultVar
Int
返回变量的整数部分。
srcVar1
resultVar
Clamp
将变量限制在指定范围内。srcVar1
和resultVar
可为同一变量。
min
max
srcVar1
resultVar
- 返回与
srcVar1
最接近的[min, max]
区间值。
LessOrEqual 比较两个值的大小。
lessEqualVar
greaterVar
srcVar1
srcVar2
resultVar
- 若
srcVar1 ≤ srcVar2
,返回lessEqualVar
,否则返回greaterVar
。
SelectFirstIfNonZero 若第一个变量非零则优先选择该值。
srcVar1
srcVar2
resultVar
- 若
srcVar1 == 0
,返回srcVar1
,否则返回srcVar2
。
WrapMinMax 将数值约束到指定区间,超出时循环调整。
srcVar1
- 需要约束的值。
minVal
maxVal
- 约束范围。若min小于max,则始终返回min。
resultVar
- 存储结果的变量。
Exponential 生成指数变化的数值。
minVal
maxVal
- 数值上下限。
srcVar1
offset
scale
resultVar
- 返回
scale * exp( srcVar1 + offset )
提示:exp(n) = en
数值生成类
Sine 生成正弦波。
sineperiod
- 波峰周期(秒)。
sinemin
sinemax
- 波峰波谷值。
timeoffset
- 波形起始偏移量。
resultVar
- 返回
sinemin + (sinemax-sinemin)/2 * (1 + sin( 2*pi/sineperiod * (time + timeoffset) ))
。
LinearRamp 生成线性递增的浮点值。
rate
- 每秒增量。
initialValue
- 地图起始值。
resultVar
- 返回
rate * time + initialValue
。

CurrentTime 服务器当前地图运行时间(秒)。
resultVar
- 用于设置
$time
着色器变量,控制随时间变化的材质效果。
UniformNoise 生成均匀分布的随机噪声。
minVal
maxVal
resultVar
- 返回
[minVal, maxVal]
区间内的等概率随机值。
GaussianNoise 生成均值偏向的高斯噪声。
mean
- 噪声中心均值。
halfWidth
- 距离均值30%概率出现的边界。
minVal
maxVal
resultVar
MatrixRotate 根据轴和角度生成旋转矩阵。
axisVar
- 旋转轴,格式为
[x y z]
。 angle
- 绕轴旋转角度(度)。
resultVar
- 生成变换矩阵,可用于设置
$basetexturetransform
等变量。
实体数据访问类
这些代理从材质所属实体读取数值。

Alpha
将实体的renderamt值复制到材质参数$alpha
。
$alpha
- 材质变量将被设置为实体的renderamt值。
Cycle 输出实体当前动画进度。
start
- 动画起始输出值(不可为变量引用)。
end
- 动画结束输出值(不可为变量引用)。
easein
- 起始缓动效果(不可为变量引用)。
easeout
- 结束缓动效果(不可为变量引用)。
resultVar
- 存储结果的变量。
PlayerProximity 输出本地玩家与材质所属实体原点的距离。
scale
- 结果缩放系数。
resultVar
PlayerTeamMatch 当材质所属实体与本地玩家同队伍时返回1。用于军团要塞2 的func_respawnroomvisualizer 。
resultVar
- 同队伍为1,否则为0。
PlayerView 玩家视角方向与材质实体原点的点积。
scale
- 将结果缩放到0至该值之间。
resultVar
PlayerSpeed 本地玩家移动速度。
scale
- 结果缩放系数,默认
0.005
。 resultVar
PlayerPosition 本地玩家位置。
scale
- 结果缩放系数,默认
0.005
。 resultVar
- 存储向量位置。
EntitySpeed 材质所属实体移动速度。
resultVar
- 实体当前速度(单位/秒)。
EntityOrigin 材质所属实体原点(不可修改变量)。
$entityorigin
- 设置为实体原点。
Health 材质所属实体生命值(0-1)。
scale
- 结果缩放至0至该值之间。
resultVar

Health
键,或在客户端代码中定义小写的材质代理。{{MatProxyCell|title=IsNPC|desc=检测材质是否应用于NPC。用于半条命2 中猎人的眼部发光效果。
WorldDims 获取世界实体尺寸(不可修改变量)。
$world_mins
- 最小X/Y/Z坐标。
$world_maxs
- 最大X/Y/Z坐标。
CrosshairColor 本地玩家准星颜色(cl_crosshaircolor_(r, g, b))。
resultVar
- 返回[r g b]值(0-1范围)。
纹理操作类
AnimatedTexture 递增动态VTF的当前帧。
animatedtexturevar
- 目标纹理(如
$basetexture
,$bumpmap
)。 animatedtextureframenumvar
- 帧数变量(如
$frame
,$bumpframe
)。 animatedtextureframerate
- 帧率(FPS),设置后不可更改。
AnimatedEntityTexture 功能同AnimatedTexture,但由实体控制动画启停。 同AnimatedTexture参数。
AnimatedOffsetTexture 功能同AnimatedTexture,但实体生成时启动动画。 同AnimatedTexture参数。
AnimateSpecificTexture 功能同AnimatedTexture,但仅对指定纹理生效。
animatedtexturevar
animatedtextureframenumvar
animatedtextureframerate
onlyAnimateOnTexture
- 代理生效的纹理完整路径。
Pupil 用于角色眼睛,根据光照强度调整瞳孔纹理帧数。
TextureVar
- 目标纹理。
TextureFrameNumVar
- 帧数变量。
PupilCloseRate
- 瞳孔闭合速率(默认0.1)。
PupilOpenRate
- 瞳孔张开速率(默认0.03)。
$lighting
- 存储光照强度的材质变量(初始值设为0.5)。
TextureTransform
生成纹理变换矩阵,用于$basetexturetransform
等参数。
centerVar
scaleVar
rotateVar
translateVar
- 可选的矩阵输入参数(支持浮点或二维向量)。
resultVar
TextureScroll 根据角度和速率生成纹理平移矩阵/向量。
textureScrollVar
- 变换结果存储变量。
textureScrollRate
- 平移速率(单位/秒)。
textureScrollAngle
- 移动角度(90=上,180=左)。
textureScale
- 纹理缩放(仅支持单浮点值)。
LampBeam 根据光束方向与视角夹角调整材质透明度(需绑定实体)。
LampHalo 功能同LampBeam,用于光束底部光晕(需绑定实体)。
CustomSteamImageOnModel
用自定义纹理替换$baseTexture
(无参数)。

实体集成类
MaterialModify / MaterialModifyAnimated
与material_modify_control 实体配合设置任意参数(需应用于实体)。MaterialModifyAnimated参数同AnimatedTexture。
WaterLOD
协调water_lod_control 实体与材质内部的水体LOD值。
$CHEAPWATERSTARTDISTANCE
- 廉价水体起始距离。
注意:需在代理块外定义
$CHEAPWATERENDDISTANCE
- 廉价水体结束距离。
注意:需在代理块外定义
BreakableSurface 根据实体持有的材质名称设置基底纹理(需绑定func_breakable_surf )。
ConveyorScroll 生成传送带纹理滚动参数(需绑定func_conveyor )。
textureScrollVar
- 存储结果的矩阵/向量变量(如
$baseTextureOffset
)。
Camo
仅用于材质Dev\dev_camo.vmt
(代码大部分禁用)。
$camopatterntexture
- 迷彩源纹理(I8格式)。
$camoboundingboxmin
$camoboundingboxmax
- 采样随机点的包围盒。
FleshInterior 输出附近point_flesh_effect_target 的位置信息。
$FleshEffectCenterRadius1-4
- 设置四个血肉目标的世界坐标(第四轴为半径)。
$FleshGlobalOpacity
- 需存在但未被实际设置。
$FleshSubsurfaceTint
- 固定为
[0 0 0 0]
。
HeliBlade 控制npc_helicopter 旋翼淡入淡出效果。
$fadeout
- 1=淡出,0=淡入。
$alpha
- 代理设置的透明度变量。
ParticleSphereProxy
仅用于particle\SmokeStack.vmt
(Valve备注:"FIXME: 这个还有用吗?")。
PlayerLogo 内部代理,为"decals/playerlogo##"生成玩家索引纹理。
Shadow 仅用于阴影着色器 (无已知参数)。
ShadowModel 仅用于阴影模型着色器 (无已知参数)。
Thermal
利用$color
和$ThermalPeriod/Min/Max
生成色调缩放正弦波。
$color
- 作为输入和输出的颜色变量。
$ThermalPeriod
- 周期(默认1.0)。
$ThermalMin/Max
- 正弦波乘积的上下限。
ToggleTexture 根据游戏代码 设置的帧数切换纹理(需绑定实体)。
toggleTextureVar
- 目标纹理。
toggleTextureFrameNumVar
- 帧数变量。
toggleShouldWrap
- 是否循环(默认启用)。
工具类
Empty 用于注释代理代码块。
Dummy 在代理生命周期打印developer消息。
其他类
ConVar 将变量绑定到客户端控制台变量。
convar
- 控制台变量名(如
mat_specular
)。 resultVar
- 返回数值(向量类型将各分量设为相同值)。
游戏专属类
游戏特定内容
半衰期2
EntityOriginAlyx 与EntityOrigin相同,但X轴偏移15单位。在《橙盒》发布前夕作为临时解决方案创建。
Ep1IntroVortRefract
使用$refractamount
生成比例并传递给相同变量,不使用resultVar
。在《橙盒》发布前夕作为临时解决方案创建。
VortEmissive
设置$emissiveblendstrength
和$detailblendfactor
来应用第一章开场中弗地冈人的蓝紫色发光效果。
Shield 可能用于组合护盾类型之一。功能等效于TextureScroll和Alpha代理的组合。
$translucency
- 该变量设置为关联实体的渲染透明度值,类似于Alpha代理
textureScrollVar
textureScrollRate
textureScrollAngle
- 功能与TextureScroll代理完全相同
军团要塞2
invis 当$cloakPassEnabled为true时生效。支持世界模型和视图模型,但不支持队伍颜色。
spy_invis 当$cloakPassEnabled为true时生效。用于玩家世界模型材质。无参数。默认玩家隐身颜色为队伍色。与$weapon_invis和$vm_invis不兼容。
weapon_invis 当$cloakPassEnabled为true时生效。用于武器世界模型材质。无参数。与$spy_invis和$vm_invis不兼容。
vm_invis 当$cloakPassEnabled为true时生效。用于玩家和武器视图模型材质。无参数。与$spy_invis和$weapon_invis不兼容。
building_invis 未使用,计划用于建筑模型材质以实现隐身支持。
CommunityWeapon 当物品标记为社区品质时传递值1,否则传递0。
resultVar
InvulnLevel 传递浮点值设置玩家被超级冲锋时的无敌效果透明度。
resultVar
BurnLevel 传递浮点值设置玩家着火时的火焰覆盖效果透明度。
resultVar
YellowLevel 当玩家被罐装小便击中时传递RGB值。
resultVar
ModelGlowColor 激活时传递硬编码颜色值以创建暴击发光效果。颜色为红色或蓝色。未激活时为纯白(255 255 255)。
resultVar
ItemTintColor 当使用喷漆罐时传递RGB值。数值对应喷漆颜色。未使用时传递0。
resultVar
BuildingRescueLevel 传递变换矩阵设置救援步枪显示屏的振幅。
resultVar
TeamTexture 根据当前队伍改变纹理的动画帧。
resultVar
- 仅写入$frame
AnimatedWeaponSheen 执行击杀特效流光效果
animatedtexturevar
animatedtextureframenumvar
animatedtextureframerate
WeaponSkin 为装饰物品设置基础纹理。
ShieldFalloff 脉冲疫苗注射器的超级护盾。
StatTrakIllum 在视图模型上返回0.75。
resultVar
StatTrakDigit 返回物品奇异计数器的单个数字。如果trimZeros为正值,前导零将返回10。
resultVar
displayDigit
trimZeros
StatTrakIcon 无功能。返回常量矩阵。
resultVar
StickybombGlowColor 激活时传递硬编码颜色值以创建'苏格兰防御'选择效果。颜色为红色或蓝色。
resultVar
SniperRifleCharge 为狙击步枪蓄力返回变换矩阵。近战武器和医疗枪等其他武器会影响返回值。
resultVar
Heartbeat 返回0.48至0.6之间(多数为0.6)的时变值模拟心跳。
resultVar
WheatlyEyeGlow 使用高斯分布脉冲颜色。用于Ap-Sap物品。
resultVar
BenefactorLevel 根据玩家赠送的礼物数量缩放心跳。返回纹理比例因子,1为最大尺寸(大慈善家),赠送礼物越少因子越大。
resultVar
求生之路2
PlayerTeam 根据玩家当前所在队伍返回对应值。
team
- 未知
resultVar
- 0 = 生存者 / 1 = 感染者 / 2 = 观察者
BloodyHands 根据近战武器命中次数返回0到1之间的值。
resultVar
- 命中次数 / 5
- 5次命中后不超过1
- 世界模型和视图模型共享该值
IT 根据生存者是否被Boomer胆汁覆盖返回0到1之间的值。
resultVar
- 1 = 完全覆盖 / 0 = 未覆盖
BurnLevel 传递浮点值设置感染者燃烧时的火焰覆盖效果透明度。
resultVar
- 1 = 着火 / 0 = 未着火
BBQLevel
见于materials\models\infected\hulk\hulk_01.vmt
resultVar
异形丛生
NightVisionSelfIllum 当玩家启用夜视效果或狙击镜时,输出强度值调节物体自发光。
resultVar
- 要修改的变量,通常设置为
$selfillumtint
asw_night_vision_self_illum_multiplier
- 该ConVar指定夜视全开时的输出值
asw_sniper_scope_self_illum_multiplier
- 该ConVar指定狙击镜激活时的输出值
AlienSurfaceFX 设置$detail纹理及参数以显示火焰、冻结和电击效果。
texturescrollvar
- 设置为控制细节纹理位移的矩阵或变换变量名,通常为
$detailtexturetransform
LanguagePreference
(仅存在于 之中) 根据客户端语言设置设定值。
resultVar
- 要修改的变量(如
$basetexture
) default
- 无匹配语言时的默认值
english
,french
,schinese
等- 特定语言的对应值
传送门 与
传送门2
PortalOpenAmount 在传送门上,随传送门开启从0过渡到1。
resultVar
PortalStatic 在传送门上,指定不透明静态效果的渲染强度。1表示未配对的传送门,0表示已开启的传送门。
resultVar
传送门2 独有
FizzlerVortex 为SolidEnergy着色器设置力场效果的各种参数——附近物体位置、传送门射击闪光和能量过渡时间。无参数。
$powerup
- 力场关闭时过渡到0,开启时过渡到1
$FLOW_VORTEX1
- 有物体靠近力场时设为1,否则为0
$FLOW_VORTEX_POS1
- 设为第一个物体的位置
$FLOW_VORTEX2
- 有第二个物体靠近力场时设为1,否则为0
$FLOW_VORTEX_POS2
- 设为第二个物体的位置
WheatlyEyeGlow
推测用于控制Wheatley的发光效果。实际未使用。Lightedmouth 用于各种人格核心和PoTaTOS,使其眼部灯光与过场动画同步闪烁。空闲时仍保持部分亮度。在视图模型上也可通过VScript手动控制使GLaDOS显示关闭状态。
resultVar
- 传递给
$selfillumtint
的颜色值
LightedFloorButton 用于清洁版超级按钮材质,当材质用于prop_floor_button时设置$selfillumtint为1,否则设为0。此功能无实际益处且会导致其他实体显示异常,推测为测试版残留。
resultVar
- 使用的颜色值,非按钮时为
[0 0 0]
TractorBeam 用于牵引光束效果材质,输出滚动速率并执行其他未知操作。
resultVar
- 传递给多个TextureScroll代理的
textureScrollRate
参数
黑山
TauCharge
见于materials/models/weapons/v_gauss/v_taucannon_core.vmt
。
resultVar
WebBurnFactorProxy
见于materials/models/props_xen/gonarch/gon_web_tough_burnable.vmt
。
resultVar
ModelDetailFx
见于materials/models/weapons/v_gauss/v_taucannon_core.vmt
反恐精英:全球攻势
Select 根据输入值选择结果值,类似switch语句。
srcVar1
resultVar
default
- 当
srcVar1
不匹配任何case时的默认返回值 <case>
- 当
srcVar1
等于<case>
时的返回值。可设置多个case
示例来自materials/models/inventory_items/dogtags/dogtags_lightray.vmt
:
"srcVar1" "$localTeamNumber" "resultVar" "$color" "default" "[0.680 0.680 0.680]" "2" "[0.680 0.544 0.136]" "3" "[0.269 0.474 0.680]"
GetTeamNumber
获取实体队伍。见于materials/models/inventory_items/dogtags/dogtags_lightray.vmt
。
resultVar
-
- 0: 未分配
- 1: 观察者
- 2: 恐怖分子
- 3: 反恐精英
survivalteammate
用于在 Danger Zone中绘制队友。见于
materials/models/player/custom_player/econ/body/tm_jumpsuit/jumpsuit_body.vmt
。
resultVar
- 当本地玩家是材质应用对象的队友时返回1,否则返回0
注意:在危险区域外始终返回0——请改用GetTeamNumber!
RemapValClamp 在指定范围内重新映射变量。
range_in_min
range_in_max
range_out_min
range_out_max
srcVar1
resultVar
Modulo 将第一个变量除以第二个变量并将余数写入结果变量。
srcVar1
srcVar2
resultVar
MoneyProxy 读取玩家金钱值。仅在视图模型材质生效。
resultVar
WeaponLabelText 根据displaydigit值计算$basetexture的偏移位置。仅在视图模型生效。
displaydigit
C4CompassArrow [待完善]
IronSightAmount 玩家开镜时返回1,收镜时返回0。
invert
resultvar
ApproachValue 对srcVar1当前值到srcVar2目标值进行平滑过渡。
srcVar1
srcVar2
speed
- 指定过渡速度,值越大过渡越快
resultVar
- 过渡结果存储在此变量
Titanfall 与
Titanfall 2
ADSFraction 根据玩家瞄准程度返回0到1之间的值。
use_weapon_settings
- 若设置,使用武器的
zoom_scope_frac_start
和zoom_scope_frac_end
设置 startFrac
endFrac
invert
spline
scale
resultVar
ADSFOVTarget [待完善]
range
invert
resultVar
BackgroundAmmoColor 根据玩家武器当前弹匣传递RGB值。颜色从蓝->橙->红渐变。
resultVar
ClipAmmo 返回玩家当前武器的弹匣剩余弹药量。
resultVar
ClipAmmoColor
类似BackgroundAmmoColor
,但数值变化阈值不同。
resultVar
CockpitLights [待完善]
CockpitOpenAmount [待完善]
CockpitScreen [待完善]
EntityScript 调用VScript函数并返回值。
scriptFuncName
resultVar
Holosight
类似ADSFraction
,但似乎没有配置选项。
resultVar
HoloSightOffset 基于UV中心相对于二维矢量$attachment位置的基准偏移量。
attachmentName
horizontalScalar
verticalScalar
resultVar
示例来自materials/models/weapons/attachments/hcog_reticle_front.vmt
:
"attachmentName" "HCOG_REAR" "horizontalScalar" "0.55" "verticalScalar" "-0.72" "resultVar" "$holoOffset"
MaxCarryAmmo 返回玩家当前武器的最大后备弹药容量。
resultVar

MaxClipAmmo 返回玩家当前武器的最大弹匣容量。
resultVar
MiniMap [待完善]
resultVar
NumericCounterAtlasFrame [待完善]
value
digitIndex
resultAtlasFrameIndexVar
ProgressBar [待完善]
value
max
resultVar
- 结果为变换矩阵。
RemainingAmmo 返回玩家当前武器的后备剩余弹药量。
resultVar

RemainingAmmoColor
类似BackgroundAmmoColor
,但使用武器的后备弹药量。
resultVar

RemainingClipCount 返回玩家当前武器的最大后备弹药量除以最大弹匣容量。
resultVar
ScriptModify 调用VScript函数并返回值。
scriptFuncName
resultVar
示例来自materials/vgui/hud/compass_ticker.vmt
:
"scriptFuncName" "VMTCallback_CompassTickerOffset" "resultVar" "$offset"

EntityScript
功能相同?TextureAtlas [待完善]
frameSize
frameStart
resultVar
TickCounterAtlasFrames [待完善]
tickCount
rowLength
rowIndex
atlasFrameSize
resultAtlasFrameStartVar
resultAtlasFrameCountVar
WeaponChargeFraction 根据玩家当前武器的充能程度返回0到1之间的值。
resultVar