List of material proxies

This page either contains information that is only partially or incorrectly translated, or there isn't a translation yet.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article tries to comply with the alternate languages guide.
所有可在系列游戏中材质中使用的材质代理均列于此,包含仅出现在特定游戏中的代理(多为其他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
- 约束范围。若最小值小于最大值,则始终返回最小值
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
将实体的渲染透明度值复制到$alpha
材质参数。
$alpha
- 设置材质透明度变量为实体渲染透明度值
Cycle 输出实体当前动画进度。
start
- 动画起始输出值(不可使用变量引用)
end
- 动画结束输出值(不可使用变量引用)
easein
- 起始缓动效果(不可使用变量引用)
easeout
- 结束缓动效果(不可使用变量引用)
resultVar
- 结果存储变量
PlayerProximity 输出本地玩家与材质所属实体原点的距离(单位)。
scale
- 结果乘数因子
resultVar
PlayerTeamMatch
当材质所属实体与本地玩家队伍匹配时返回1。中用于func_respawnroomvisualizer。
resultVar
- 同队伍时返回1,否则返回0
PlayerView 计算玩家视角方向与材质所属实体原点的点积。
scale
- 将结果缩放至0到该值之间
resultVar
PlayerSpeed 本地玩家移动速度。
scale
- 速度乘数因子(默认
0.005
) resultVar
PlayerPosition 本地玩家位置坐标。
scale
- 坐标乘数因子(默认
0.005
) resultVar
- 向量位置输出
EntitySpeed 材质所属实体的移动速度。
resultVar
- 当前速度(单位/秒)
EntityOrigin 材质所属实体原点坐标(目标变量不可修改)。
$entityorigin
- 设置为实体原点坐标
EntityRandom 与材质所属实体关联的静态随机数,用于多物体效果错开。
scale
- 将结果缩放至0到该值之间
resultVar


Health 材质所属实体的生命值(0-1)。
scale
- 将结果缩放至0到该值之间
resultVar

Health
键或在客户端代码中使用小写材质代理解决 [todo tested in ?]IsNPC
判断材质是否应用于NPC。中用于npc_hunter眼部发光(在尸体上保持关闭)。
scale
- 应用于NPC时的返回值(虽名为scale但实际不进行乘法操作)
resultVar
- 应用于NPC时返回
scale
值,否则保持0
WorldDims 获取世界实体维度(目标变量不可修改)。
$world_mins
- 设置为最小X/Y/Z坐标
$world_maxs
- 设置为最大X/Y/Z坐标
CrosshairColor 获取本地玩家准星颜色(cl_crosshaircolor_(r, g, b))。
resultVar
- 返回0-1范围的[r g b]值
纹理操作
AnimatedTexture 递增动态VTF的当前帧。
animatedtexturevar
- 目标纹理变量(如
$basetexture
,$bumpmap
等) animatedtextureframenumvar
- 帧数变量(如
$frame
,$bumpframe
等) animatedtextureframerate
- 固定帧率(设置后不可更改)
AnimatedEntityTexture 功能同AnimatedTexture,但由实体控制动画启停。
animatedtexturevar
animatedtextureframenumvar
animatedtextureframerate
AnimatedOffsetTexture 功能同AnimatedTexture,但动画在实体生成时启动。
animatedtexturevar
animatedtextureframenumvar
animatedtextureframerate
AnimateSpecificTexture 功能同AnimatedTexture,但仅限指定纹理。
animatedtexturevar
animatedtextureframenumvar
animatedtextureframerate
onlyAnimateOnTexture
- 代理生效的完整纹理路径
Pupil 用于角色眼睛,根据光照强度调整纹理帧数。
TextureVar
- 目标纹理变量
TextureFrameNumVar
- 帧数变量
PupilCloseRate
- 瞳孔闭合速率(默认0.1)
PupilOpenRate
- 瞳孔张开速率(默认0.03)
$lighting
- 存储光照平均值(0-1)的材质变量,初始化应设为0.5
TextureTransform 生成用于$basetexturetransform等的纹理变换矩阵。
centerVar
scaleVar
rotateVar
translateVar
- 可选输入变量(支持浮点或二维向量)
resultVar
TextureScroll 生成指定角度和速率的纹理位移矩阵/向量。
textureScrollVar
- 变换结果变量
textureScrollRate
- 位移速率(单位/秒)
textureScrollAngle
- 位移角度(90=上,180=左等)
textureScale
- 纹理缩放(仅支持单浮点,默认1.0)
LampBeam 根据光束方向与视角角度调整材质透明度,用于体积光淡出效果。必须附加到实体。
LampHalo 类似LampBeam,用于光束根部光晕效果。必须附加到实体。
实体集成
MaterialModify / MaterialModifyAnimated 配合material_modify_control实体通过地图I/O配置参数。仅当材质应用于实体时有效。MaterialModify无参数,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位置供$flesh效果使用。
$FleshEffectCenterRadius1
$FleshEffectCenterRadius2
$FleshEffectCenterRadius3
$FleshEffectCenterRadius4
- 设置为四个血肉目标的世界坐标(第四轴为半径)
$FleshGlobalOpacity
- 需存在但不被实际设置
$FleshSubsurfaceTint
- 固定为
[0 0 0 0]
HeliBlade 控制npc_helicopter旋翼过渡效果。
$fadeout
- 1=淡出,0=淡入
$alpha
- 代理设置的透明度变量
ParticleSphereProxy
仅被particle\SmokeStack.vmt
使用。Valve备注:"FIXME: 这还有存在的必要吗?"
PlayerLogo "decals/playerlogo##"贴图的内部代理,为特定玩家生成纹理
Shadow 仅被Shadow材质使用。无已知参数,用于投影纹理阴影渲染
ShadowModel 仅被ShadowModel材质使用。无已知参数,用于模型投影纹理阴影渲染
Thermal
利用$color向量与$ThermalPeriod
、$ThermalMin
、$ThermalMax
生成色调缩放正弦波。
$color
- 作为内部引用和输出变量
$ThermalPeriod
- 时间周期(默认1.0)
$ThermalMin
$ThermalMax
- 正弦波乘积的最小/最大值约束
ToggleTexture 根据游戏代码设置的帧数切换纹理(多数游戏仅通过env_texturetoggle实现)。必须附加到实体。
toggleTextureVar
- 目标纹理变量
toggleTextureFrameNumVar
- 帧数变量
toggleShouldWrap
- 是否循环(默认启用)
工具类
Empty 用于注释禁用代理。用空代理包裹其他代理可使其失效
Dummy 在代理创建/初始化/绑定实体/移除时向developer控制台输出消息
其他
<div id="ConVar (存在于自 以来)" style="display:inline-block; vertical-align: top; width:24em; padding:.5em; margin:.5em; background: rgba(255,255,255,0.03);">
ConVar (存在于自
以来)
将变量链接到客户端控制台变量。
convar
- 控制台变量名(如
mat_specular
)注意:仅支持数值型变量
resultVar
- 返回控制台变量值(向量类型时各分量单独设置)
游戏特定
半衰期2
EntityOriginAlyx 与EntityOrigin相同但X轴偏移15单位。橙盒版最后时刻的临时方案
Ep1IntroVortRefract
使用$refractamount
生成比例值。橙盒版最后时刻的临时方案
VortEmissive
设置$emissiveblendstrength
和$detailblendfactor
实现EP1开场弗地冈人蓝紫光效
Shield 疑似用于联合军护盾。等效TextureScroll与Alpha代理组合。
$translucency
- 设置实体渲染透明度
textureScrollVar
textureScrollRate
textureScrollAngle
- 功能同TextureScroll代理
军团要塞2
invis 当$cloakPassEnabled启用时生效。支持世界/视角模型,无队伍色支持
spy_invis 当$cloakPassEnabled启用时生效。用于玩家世界模型材质。无参数。默认队伍色,与$weapon_invis、$vm_invis不兼容
weapon_invis 当$cloakPassEnabled启用时生效。用于武器世界模型材质。无参数。与$spy_invis、$vm_invis不兼容
vm_invis 当$cloakPassEnabled启用时生效。用于玩家/武器视角模型材质。无参数。与$spy_invis、$weapon_invis不兼容
building_invis 未使用,原计划用于建筑模型隐身效果
CommunityWeapon 当物品标记为社区品质时返回1。
resultVar
InvulnLevel 设置玩家处于无敌状态时的效果透明度。
resultVar
BurnLevel 设置玩家着火时的火焰覆盖层透明度。
resultVar
YellowLevel 当玩家被罐装尿击中时返回RGB值。
resultVar
ModelGlowColor 激活时返回硬编码颜色实现暴击光效。未激活时返回纯白。
resultVar
ItemTintColor 当使用喷漆时返回对应RGB值,未使用时返回0。
resultVar
BuildingRescueLevel 返回救援者步枪显示屏振幅变换矩阵。
resultVar
TeamTexture 根据队伍切换纹理动画帧。
resultVar
- 仅写入$frame
AnimatedWeaponSheen 执行连杀特效光晕。
animatedtexturevar
animatedtextureframenumvar
animatedtextureframerate
WeaponSkin 为装饰物品设置基底纹理
ShieldFalloff 控制疫苗枪护盾脉冲效果
StatTrakIllum 在视角模型上返回0.75。
resultVar
StatTrakDigit 返回物品奇异属性计数器的某一位数字。
resultVar
displayDigit
trimZeros
StatTrakIcon 无效。返回常量矩阵。
resultVar
StickybombGlowColor 激活时返回硬编码颜色实现苏格兰防御选择效果。
resultVar
SniperRifleCharge 返回狙击步枪充能变换矩阵。近战武器等会影响返回值。
resultVar
Heartbeat 返回0.48-0.6间的波动值模拟心跳。
resultVar
WheatlyEyeGlow 生成高斯分布脉冲颜色。用于Ap-Sap物品。
resultVar
BenefactorLevel 根据礼物赠送数量缩放心跳效果。
resultVar
求生之路2
PlayerTeam 根据玩家当前队伍返回不同值。
team
- 未知
resultVar
- 0=幸存者 / 1=感染者 / 2=观察者
BloodyHands 根据近战攻击命中次数返回0-1值。
resultVar
- 命中次数/5(最大值1)
- 世界/视角模型共享该值
IT 返回幸存者被Boomer胆汁覆盖程度。
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
- 夜视全效时输出值
asw_sniper_scope_self_illum_multiplier
- 狙击镜激活时输出值
AlienSurfaceFX 设置$detail纹理及参数显示火焰/冰冻/电击效果。
texturescrollvar
- 通常设为
$detailtexturetransform
LanguagePreference
(仅存在于 之中) 根据客户端语言设置变量。
resultVar
- 目标变量(如
$basetexture
) default
- 默认值
english
,french
,schinese
等- 各语言特定值
传送门和
传送门2
PortalOpenAmount 在传送门上返回0-1开启进度。
resultVar
PortalStatic 在传送门上指定静态不透明效果强度。
resultVar
- 1=未配对传送门 / 0=开启状态
传送门2 专属
FizzlerVortex 为SolidEnergy着色器设置力场效果参数。
$powerup
- 0=关闭 / 1=开启
$FLOW_VORTEX1
- 1=附近存在物体
$FLOW_VORTEX_POS1
- 首个物体位置
$FLOW_VORTEX2
- 1=存在第二物体
$FLOW_VORTEX_POS2
- 第二物体位置
WheatlyEyeGlow
疑似控制Wheatley发光效果。未实际使用。Lightedmouth 用于人格核心同步场景眼灯闪烁。视角模型可通过VScript手动控制。
resultVar
- 传递给
$selfillumtint
的色调
LightedFloorButton 用于干净版超级按钮材质,设置prop_floor_button实体的自发光。
resultVar
- 非按钮实体时设为
[0 0 0]
TractorBeam 用于远距牵引束效果材质。
resultVar
- 传递给TextureScroll代理的速率参数
黑山
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
- 默认返回值
<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 获取实体队伍编号。
resultVar
-
- 0: 未分配
- 1: 观察者
- 2: 恐怖分子
- 3: 反恐精英
survivalteammate
在 Danger Zone中标记队友。
resultVar
- 是队友返回1,否则0
注意:非危险区域模式始终返回0
RemapValClamp 数值范围重映射。
range_in_min
range_in_max
range_out_min
range_out_max
srcVar1
resultVar
Modulo 取模运算。
srcVar1
srcVar2
resultVar
MoneyProxy 读取玩家金钱值。仅限视角模型材质。
resultVar
WeaponLabelText 根据显示数字计算基底纹理偏移。仅限视角模型。
displaydigit
C4CompassArrow [待完善]
IronSightAmount 返回瞄准状态。
invert
resultvar
ApproachValue 平滑过渡数值。
srcVar1
srcVar2
speed
- 过渡速度
resultVar
- 过渡结果