这篇条目有关 Source引擎。如需详情,点击这里。

env_fire

From Valve Developer Community
< Zh
Revision as of 09:16, 3 October 2025 by 世凪Yonagi (talk | contribs)
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
Env fire.png

env_fire是一个点实体(en),可在所有的 起源 起源 游戏中使用。 它处理一个单一的火焰(_firesmoke),位于其 origin 位置。火焰会对周围的其他 env_fire 实体造成“热伤害”,并最终点燃它们,使火势蔓延。env_firesource 会为附近的 env_fire 实体增加热伤害,并点燃它们或维持点燃状态。

现代粒子效果的 env_fire 火焰效果。
经典的基于精灵的 env_fire 火焰效果。

在橙盒发布之前,火焰效果是由代码动态生成的精灵,而非粒子系统。现代火焰效果定义在一个 PCF 文件中,这意味着它们可以在不修改代码的情况下进行自定义,但它们的动态性远不如经典火焰效果,只提供了四种预设的大小,并且无法通过 Hammer 设置攻击/增长时间。Valve 所有的游戏都已更新或在后期发布时仅包含基于粒子的火焰效果,但经典火焰效果最终在 半衰期2 半衰期2 20周年更新中重新实现。许多该实体上的设置是以经典火焰为基础设计的,因此在此文档中做了说明。

Note.png注意:如果将其放置在地面正好处,火焰可能会掉落至世界之外。请将其稍微放置在地面以上,或启用“不掉落”生成标志。
Icon-Bug.png错误*:尽管仍然可用,但在 传送门 传送门军团要塞2 军团要塞2 中没有粒子效果。详情请参考 Portal:Env Fire fixTF2/Creating fire 获取修复方法或解决方案。
C++ 类层级
CFire
CBaseEntity
C++ fire.cpp

键值(Keyvalues)

Name (目标名称) <target_source>[ Edit ]
这个名称是其他实体通过 输入/输出(en) 或其他 关键值(en)(如 parentnametarget) 来引用该实体时使用的标识符。
该名称也会显示在 Hammer 编辑器的 2D 视图和 实体报告(en) 中。
参见:  所有实体均可使用的 通用键值、输入与输出(en)

Duration (health) <整数(en)>
火焰燃烧的持续时间。
Size (firesize) <整数(en)>
火焰的高度(以世界单位为单位)。
Note.png注意:虽然现代粒子效果的火焰依然影响碰撞体积,但仅支持四种预设大小,并对应特定范围:
  • 35 或以下:微小
  • 36-71:小
  • 72-107:中等
  • 108 或更大:大
Attack (fireattack) <整数(en)>
火焰达到全强度所需的时间。
Note.png注意:对于现代粒子火焰没有视觉效果(碰撞体积依然会受影响)。
Type (firetype) <choices>
火焰类型:自然或等离子。自然是一般的火焰,例如木柴火。
  • 0: 自然
  • 1: 等离子
    Icon-Bug.png错误*:无效。虽然在SDK中存在等离子效果的代码,但无法使用。
Ignition Point (ignitionpoint) <浮点型(en)>
此火焰应被点燃所需的热‘伤害’量。
Damage Scale (damagescale) <浮点型(en)>
火焰所造成的烧伤伤害的倍率。
Light Color (LightColor) <color255(en)> (存在于自 异形丛生 以来)
此火焰的动态光源颜色。
Light Radius Scale (LightRadiusScale) <浮点型(en)> (存在于自 异形丛生 以来)
火光半径的倍率。
Light Brightness (LightBrightness) <整数(en)> (存在于自 异形丛生 以来)
火光亮度的指数。
Loop sound (LoopSound) <sound(en)> (存在于自 异形丛生 以来)
火焰燃烧时播放的循环音效。
Ignite sound (IgniteSound) <sound(en)> (存在于自 异形丛生 以来)
火焰开始时播放的单次音效。
Start Disabled (StartDisabled) <布尔值(en)> Obsolete
已弃用。
保持待机状态,直到被激活。已废弃,使用“启动时开启”标志代替。

标志(Flags)

无限持续时间 : [1]
Note.png注意:在 Alien Swarm 中,除非设置了“无限持续时间”标志,否则无法用灭火器扑灭 env_fire
无烟雾 : [2]
启动时开启 : [4]
启动时全尺寸 : [8]
证实:是否使经典火焰效果一开始就显示为最大尺寸,而不是逐渐增大?
不掉落 : [16]
无光辉 : [32]
用完后删除 : [128]
从上方可见 : [256]
Note.png注意:对于现代粒子火焰,这个标志没有效果,粒子火焰始终是从上方可见的。
无音效 : [256] (存在于自 异形丛生 以来)
无点燃音效 : [512] (存在于自 异形丛生 以来)
点燃后不再加热 : [1024] (存在于自 异形丛生 以来)
快速燃烧思考 : [2048] (存在于自 异形丛生 以来)

输入(Inputs)

StartFire
启动火焰。
Extinguish <浮点型(en)>
在指定的秒数内将火焰永久熄灭。
ExtinguishTemporary <浮点型(en)>
在指定的秒数内暂时熄灭火焰。
EnableDisable
启用/禁用此实体执行其任务。它也可能从窗口中消失。

输出(Outputs)

OnIgnited
火焰首次点燃时触发。
OnExtinguished
火焰完全熄灭时触发。

ConVars/命令(Commands)

控制台变量/命令 参数或默认值 描述符 效果
fire_maxabsorb 50 任意数值 (浮点数(en)) 火焰可以吸收的最大热伤害,超出此值时火焰会开始增长。热量通常由其他 env_fire 实体传递过来。
fire_absorbrate 3 倍率 (浮点数(en)) 火焰吸收热量的速度。
fire_extscale 12 倍率 (浮点数(en)) 实际上只是env_extinguisherjet的“一个标准计量”。
fire_extabsorb 5 倍率 (浮点数(en))
fire_heatscale 1.0 倍率 (浮点数(en)) 控制火焰造成的伤害量(包括对火焰和其他物体如玩家的伤害)。
fire_incomingheatscale 0.1 倍率 (浮点数(en)) 控制火焰在已经点燃时能从其他火焰那里吸收的热量。
fire_dmgscale 0.1 倍率 (浮点数(en))
fire_dmgbase 1 生命值量 火焰对物体(例如玩家)造成的基础伤害。此值会根据玩家的难度设置进行调整:
  • Easy: x1
  • Normal: x2
  • Hard: x3
fire_growthrate 1.0 倍率 (浮点数(en)) 控制火焰每次增长的热量。思考间隔为0.1秒。
fire_dmginterval 1.0 火焰造成伤害后,需要等待此时间间隔才能再次造成伤害。
r_classic_fire 0 integer 使用经典火焰效果(禁用/经典/发布)。
Note.png注意:经典和发布效果似乎相似,均启用经典火焰效果。