List of material proxies

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)Español (es)中文 (zh)Translate (Translate)
Info content.png
This page needs to be translated.
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.

所有可在起源2013系列游戏中材质中使用的材质代理均列于此,包含仅出现在特定游戏中的代理(多为其他Valve作品)

待完善: 仍有大量未记录或文档不足的代理!
Icon-Important.png重要:与材质变量不同,材质代理名称区分大小写。

数值运算

Note.png注意:以下所有涉及整数的运算代理(除EqualsClamp外)都会将结果转换为浮点数。

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 返回变量的小数部分。对于整数值无变化。Tip.png提示:

srcVar1
resultVar

Int 返回变量的整数部分。Tip.png提示:

srcVar1
resultVar

Clamp 将变量限制在指定范围内。srcVar1resultVar可为同一变量。

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 )
Tip.png提示: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
Note.png注意:该值并非预期中的连续性值,即若动态改变速率时不会叠加到之前的值上

CurrentTime 获取当前地图在服务器上的运行时长(秒)。

resultVar
该值通常用于设置$time着色器变量,供多个着色器随时间调整效果

UniformNoise 生成均匀分布随机噪声信号。

minVal
maxVal
resultVar
[minVal, maxVal]范围内等概率返回随机值

GaussianNoise 生成均值偏向的高斯噪声信号。

mean
噪声中心均值
halfWidth
距均值30%概率出现的边界距离
minVal
maxVal
resultVar

MatrixRotate 根据指定轴和角度生成旋转矩阵

axisVar
旋转轴,格式为[x y z]
angle
绕轴旋转角度(度)
resultVar
生成适用于$basetexturetransform等变量的变换矩阵

实体数据获取

这些代理用于读取材质所属实体的数据。

Warning.png警告:在prop_static或世界实体上使用会导致崩溃。命名覆盖物(named overlays)可安全使用

Alpha 将实体的渲染透明度值复制到$alpha材质参数。

$alpha
设置材质透明度变量为实体渲染透明度值

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
设置为实体原点坐标

EntityRandom 与材质所属实体关联的静态随机数,用于多物体效果错开。

scale
将结果缩放至0到该值之间
resultVar
Icon-Bug.png错误:传送门中使用该代理的实体穿过传送门时会崩溃  [todo tested in ?]

Health 材质所属实体的生命值(0-1)。

scale
将结果缩放至0到该值之间
resultVar
Icon-Bug.png错误:多数游戏中失效。因KeyValues采用不区分大小写的键值缓存,而材质代理内部是大小写敏感查询。可通过在gameinfo.txt添加大写Health键或在客户端代码中使用小写材质代理解决  [todo tested in ?]

IsNPC 判断材质是否应用于NPC。半衰期2中用于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
代理生效的完整纹理路径
待完善: 用途未知,Valve官方约4万份.vmt文件中未见使用

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,用于光束根部光晕效果。必须附加到实体。

CustomSteamImageOnModel 用自定义纹理替换$baseTexture。无参数。

Note.png注意:例如军团要塞2中用于在帽子上使用贴纸工具

实体集成

MaterialModify / MaterialModifyAnimated 配合material_modify_control实体通过地图I/O配置参数。仅当材质应用于实体时有效。MaterialModify无参数,MaterialModifyAnimated参数同AnimatedTexture

WaterLOD

协调地图water_lod_control实体与材质内部的水体LOD值。
Warning.png警告:两个参数必须同时在VMT中定义
$CHEAPWATERSTARTDISTANCE
廉价水效果起始距离
Note.png注意:须在代理块外设置
$CHEAPWATERENDDISTANCE
廉价水效果结束距离
Note.png注意:须在代理块外设置

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: 这还有存在的必要吗?"

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
Note.png注意:仅支持数值型变量
resultVar
返回控制台变量值(向量类型时各分量单独设置)

游戏特定

半衰期2 半衰期2


EntityOriginAlyx 与EntityOrigin相同但X轴偏移15单位。橙盒版最后时刻的临时方案

Ep1IntroVortRefract 使用$refractamount生成比例值。橙盒版最后时刻的临时方案

VortEmissive 设置$emissiveblendstrength$detailblendfactor实现EP1开场弗地冈人蓝紫光效

Shield 疑似用于联合军护盾。等效TextureScroll与Alpha代理组合。

$translucency
设置实体渲染透明度
textureScrollVar
textureScrollRate
textureScrollAngle
功能同TextureScroll代理

军团要塞2 军团要塞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 求生之路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 (存在于 Alien Swarm: Reactive Drop 之中) 根据客户端语言设置变量。

resultVar
目标变量(如$basetexture
default
默认值
english, french, schinese
各语言特定值

传送门 传送门传送门2 传送门2


PortalOpenAmount 在传送门上返回0-1开启进度。

resultVar

PortalStatic 在传送门上指定静态不透明效果强度。

resultVar
1=未配对传送门 / 0=开启状态

传送门2 传送门2 专属


FizzlerVortex SolidEnergy着色器设置力场效果参数。

$powerup
0=关闭 / 1=开启
$FLOW_VORTEX1
1=附近存在物体
$FLOW_VORTEX_POS1
首个物体位置
$FLOW_VORTEX2
1=存在第二物体
$FLOW_VORTEX_POS2
第二物体位置
待完善: 传送射击闪光设置哪个参数?

WheatlyEyeGlow

疑似控制Wheatley发光效果。未实际使用。
待完善: 是否有效?似乎已被Lightedmouth取代

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 CS:GO Danger Zone Danger Zone中标记队友。

resultVar
是队友返回1,否则0
Note.png注意:非危险区域模式始终返回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
过渡结果

另见