env_fog_controller

From Valve Developer Community
Jump to: navigation, search
English
Fog controller.png

env_fog_controller是一个点实体,可用于所有Source游戏。 它定义了整个地图的雾气效果。

提示:在多人游戏中,此实体可以向player(玩家)实体发送输入SetFogController来修改每个客户端的雾气效果,最好是通过!activator

<Left 4 Dead><Left 4 Dead 2>中, 多个 env_fog_controller可以结合fog_volume实体来创建不同区域实现不同雾气效果。 除此之外,如果不设置fog_volume指定到任意一个env_fog_controller上,或者未启用单个fog_volume则可以设置标签/flags Master作为主要的全局雾气控制。

警告:在一些或者所有多人游戏中,此实体在游戏新回合开始的时候其属性(包括位置)被有意设为不重置到默认状态。你需要通过一个输入来重置它。

向地图增加雾气可以导致/要求光照更加真实。光照穿过雾气的时候会散射和被吸收。雾气越浓,效果会越好:

  • Falloff - (或衰减),是光线随着距离而衰减的率。 雾气越浓厚则衰减距离越小。
  • Tyndall effects - 可以透过雾气粒子反射光效给玩家。 雾气越浓厚,光圈效果和光束则越明显。
  • Diffused Lighting - 随着雾气的浓淡,光与影的边界将不明显。 详见 Lightmap Scaleshadow_control的distance属性。

Older Source games render fog as a plane a certain distance away from the camera. This method is bad, as rotating the camera will strengthen or weaken the apparent amount of fog in a particular spot, even though the viewer hasn't moved at all. In Left 4 Dead[confirm] onward, this is fixed by implementing a new radial method which is independent from the viewing angle. (关于早期起源引擎的处理雾气的老方法,在求生之路后被修改。此方法很糟糕。会导致镜头移动雾气忽淡忽浓,即使不移动也会。↑)

注意:3D Skybox的远景效果,其sky_camera相关雾气属性应该与env_fog_controller一致。

在源代码中,它由classCFogController代表,定义在fogcontroller.cpp

标签/Flags

  • 1: Master - 如果有多个env_fog_controller被弃用,此实体永远是优先的。

键值

Fog Enabled (fogenable) <布尔型 >
使雾实体启用。


Fog Start (fogstart) <浮点型 >
雾效果应该距离玩家视角多远开始出现。即雾开始的距离。


Fog End (fogend) <浮点型 >
距离玩家视角多远达到Fog Max Density(雾效果最大浓度)。即雾结束的距离,挂钩与最大浓度。


Fog Max Density (fogmaxdensity) <浮点型 >
雾效果能达到的最大浓度。以小数点表示百分比,如0.45代表45%。


Far Z Clip Plane (farz) <整数型 >
以世界距离为单位,超过多远的物体不渲染。这项应该比Fog End更高。如果启用了此项, Fog Max Density则应该设置为1,否则有可能看到空洞(地图外面的黑色效果) 。


Primary Fog Color (fogcolor) <颜色255>
雾气的主要颜色。


Secondary Fog Color (fogcolor2) <颜色255>
雾气的次要颜色。如果 Fog Blend 被禁用,则不会启用此颜色。


Fog Blend (fogblend) <布尔型 >
启用在Primary Fog ColorSecondary Fog Color之间的色彩混合。 当玩家注视着 Primary Fog Direction,则启用Primary颜色。 当远离这个特定位置,雾气启用 Secondary 颜色。如果即不是远离也不是注视, 则混合两种颜色。利用Primary Fog Direction 为 "-1 -1 1", Primary Fog Color 为 "120 110 100" 和Secondary Fog Color 为 "80 70 60"可以用来提升角度为Yaw 45度,Pitch -45度的太阳光。


Primary Fog Direction (fogdir) <vector/向量 >
向量(以空格分割XYZ), which the viewer camera is checked against to figure out the blend between the primary and secondary fog colors.


Use Angles for Fog Dir (use_angles) <布尔型 >
Pitch Yaw Roll 设置 Fog Blend 方向而不是 Primary Fog Direction. 除非你想要方位旋转,否则没什么用。


Interpolate time (foglerptime) <浮点型 >
输入 StartFogTransition 的淡入时间。


HDR Color Scale (HDRColorScale) <浮点型 >  (New with Left 4 Dead)
HDR 模式下雾颜色的倍数.


Zoom Fog Scale (ZoomFogScale) <浮点型 >  (New with Counter-Strike: Global Offensive)
利用瞄准镜的时候,玩家起始雾和结束雾距离的标量。(e.g. AWP).

DXLevelChoice:

Minimum DX Level (mindxlevel) <choices>
The entity will not exist if the engine is running outside the given range of DirectX Versions. Replaced by SystemLevelChoice from <Left 4 Dead> Left 4 Dead onwards.
Warning: If these are used, the object may break when the user switches their DirectX settings.
Maximum DX Level (maxdxlevel) <choices>

SystemLevelChoice:

Minimum CPU Level (mincpulevel) <choices> (New with Left 4 Dead)
CPU级别低于此级别的将不在游戏内呈现此对象,级别由视频设置内的效果细节决定。
Maximum CPU Level (maxcpulevel) <choices> (New with Left 4 Dead)
  • 0: Default/默认
  • 1: Low/低
  • 2: Medium/中
  • 3: High/高
Minimum GPU Level (mingpulevel) <choices> (New with Left 4 Dead)
GPU级别低于此级别的将不在游戏内呈现此对象,级别由视频设置内的Shader细节决定。
Maximum GPU Level (maxgpulevel) <choices> (New with Left 4 Dead)
  • 0: Default/默认
  • 1: Very low/非常低
  • 2: Low/低
  • 3: Medium/中
  • 4: High/高

Base:

Classname (classname) <string>
实体名称。实体名称可以用AddOutput来修改,有可能导致错误,影响引擎的处理方式。
Name (targetname) <string>
自己可定义的实体名字,注意,classname是实体名(如prop_static)而不是其名字!
Global Entity Name (globalname) <string>
实体链接到下一张图采用的名称,当玩家过度到下一张图的时候,会保持上一张图实体的状态。
Parent (parentname) <targetname>
实体的父级实体,该实体可以与父实体保持移动偏移。名称后面可以添加一个附属点,以逗号隔开。 任何实体都可以是父实体,甚至是点实体。 转换至下一张地图的实体关系会依然存在。例如 trigger_transition, 一些不适合做父实体的实体可能难以运行,利用 phys_constraint 可以解决。*注:翻译略有出入,请只在意第一句或查看原文(英文)。
Origin (X Y Z) (origin) <coordinates>
实体处于世界中的位置,旋转实体会以实体坐标原点旋转。
Pitch Yaw Roll (X Y Z) (angles) <angle>
实体在世界中的方位,Pitch围绕X轴旋转,可以称为俯仰角。Yaw围绕Z轴旋转,可以称为偏航角,roll围绕Y轴旋转,可以称为翻滚角。
注意:尽管Hammer不显示新角度,但其仍然适用于固实体。
Flags (spawnflags) <integer>
实体所具有的标志/标签,依实体所具有而定。
Response Contexts (ResponseContext) <string>
实体预定义的响应上下文(链接上下文)。格式:key:value,key:value,...。可以由filtered过滤。
Effects (effects) <integer> !FGD
效果标志,在hammer中不显示,但它确确存在。
Local Time (ltime) <float> !FGD
实体的本地时间,区别于全局时间,主要用于物理效果计算,在hammer中不显示。
Next Think (nextthink) <float> !FGD
实体再次 thinks 时间。在hammer中不显示。
Hammer ID (hammerid) <integer> !FGD
实体的Hammer ID。主要用于插件和debug指令,如ent_keyvalue. 可以用"hammerid" 或者 "id" 键值来手动分配. 在run-time时候生成的实体不会分配ID。在hammer中不显示。
Disable for Xbox 360 (disableX360) <boolean> (New with Left 4 Dead 2) !FGD
如果设置为"Yes",在XBOX360游戏机上不显示此实体。
Entity Scripts (vscripts) <scriptlist> (New with Left 4 Dead 2)
实体生成后可通过输出调用的VScript脚本文件,所有脚本都处于同一脚本域,会覆盖相同名称的变量和功能函数等。
Script think function (thinkfunction) <string> (New with Left 4 Dead 2)
脚本功能函数名,每秒自动会调用此函数10次,比较于logic_timer更方便。 请避免 expensive(昂贵)的效果操作,会损失性能。
Lag Compensation (LagCompensate) <boolean> (New with Left 4 Dead 2) !FGD
设置"Yes"会延迟补偿该实体,请谨慎使用。在hammer中不显示。
Is Automatic-Aim Target (is_autoaim_target) <boolean> (New with Counter-Strike: Global Offensive) !FGD
设置为"1"会减慢该实体在十字准心下方时,控制杆的瞄准运动。

输入

TurnOn
开启.
TurnOff
关闭.
SetStartDist  <浮点型>
设置 Fog Start距离
SetEndDist  <浮点型>
设置 Fog End 距离
SetColor  <color255>
设置 Primary Fog Color的颜色
SetColorSecondary  <color255>
设置 Secondary Fog Color的颜色
SetFarZ  <整数型>
设置 Far Z Clip Plane距离.
SetAngles  <angles>
设置 Primary Fog Direction角度.
Set2DSkyboxFogFactor  <浮点型> (New with Left 4 Dead 2)
把当前雾气的量混合到2D skybox,表示为小数百分比,45%请使用0.45<Left 4 Dead 2> only.
SetZoomFogScale  <浮点型> (New with Counter-Strike: Global Offensive)
设置 Zoom Fog Scale.
SetColorLerpTo  <color255> (New with Half-Life 2: Episode One / Source 2006)
储存一个Primary Fog Color的颜色值,在 StartFogTransition 输入时触发。
SetColorSecondaryLerpTo  <color255> (New with Half-Life 2: Episode One / Source 2006)
储存一个 Secondary Fog Color 的颜色值,在 StartFogTransition输入时触发。
SetStartDistLerpTo  <浮点型> (New with Half-Life 2: Episode One / Source 2006)
储存一个 Fog Start 的距离值,在 StartFogTransition输入时触发。
SetEndDistLerpTo  <浮点型> (New with Half-Life 2: Episode One / Source 2006)
储存一个 Fog End 的距离值,在 StartFogTransition 输入时触发。
SetMaxDensityLerpTo  <浮点型> (New with Left 4 Dead)
储存一个 Fog Max Density的浓度,在 StartFogTransition输入时触发 This one does not have any non-"LerpTo" counterpart.
Set2DSkyboxFogFactorLerpTo  <浮点型> (New with Left 4 Dead 2)
把当前雾气的量混合到2D skybox,表示为小数百分比,45%请使用0.45。只有 StartFogTransition输入时触发。 <Left 4 Dead 2> only.
StartFogTransition  (New with Half-Life 2: Episode One / Source 2006)
当输入触发,雾气变化通过 "LerpTo" 输入。变化时间通过 Interpolate time 键值定义。
Bug: 并没有正确地工作。过度时间为0会突然改变为新值。Seen in <Left 4 Dead 2><Counter-Strike: Global Offensive>.

基础:

Kill
从这个世界中删除此实体。
KillHierarchy
功能类似于Kill,尽管此实体与其父实体都被删除了,但比Kill快一点。
SetParent  <字符串>
跟随此实体移动,详见Entity Hierarchy (parenting).
SetParentAttachment  <字符串>
修改此实体到父实体的特定附属点。实体会传送,以至于其骨骼方位与附属匹配。在使用此输入前必须设置好实体的父实体。
SetParentAttachmentMaintainOffset  <字符串>
同上,但不传送。实体接受到此输出后保留与父级的相对位置。
ClearParent
取消绑定父实体,以至于此实体可以自由行动。
AddOutput  <字符串>
评估此实体的输出/键值(类似于增加输出给某实体)。
格式: <key/键> <value/值>
格式: <output name/输出名> <targetname/目标名>:<inputname/输入名>:<parameter/参数>:<delay/延迟>:<最大触发数,-1代表无限。>
FireUser1 to FireUser4
触发OnUser输出; 详见 User Inputs and Outputs
Use  !FGD
类似于玩家按 +use(使用,默认E按钮); 也许不会做什么事! 也可以通过创建未指定的输入来调用输出。
这个输入不存在于Valve的 FGD中。
DispatchEffect  <字符串> !FGD
在实体的原点坐标设置一个特定效果。自从<Left 4 Dead>后由粒子系统取代。
DispatchResponse  <字符串> !FGD
向实体发送一个上下文。 详见 ResponseConcept.
AddContext  <字符串>
添加到实体的response contexts/响应上下文列表。格式<key/键>:<value/值>.
RemoveContext  <字符串>
从实体列表删除一个上下文。名字应与现有上下文进行匹配。
ClearContext  <字符串>
删除实体的所有上下文。
RunScriptFile  <script> (New with Left 4 Dead 2)
从硬盘执行一个VScript脚本文件,不带文件后缀名。会合并接收实体的脚本域。
RunScriptCode  <字符串> (New with Left 4 Dead 2)
(执行脚本代码。)执行一段接收实体域的脚本源代码。通过控制台触发,可能需要英文双引号。
Bug: <Left 4 Dead 2>中,该代码是触发输出的实体的脚本域中执行, 接受输入的实体。
警告:切勿在此输入的元素内使用字符串!它将破坏VMF ,由嵌套引号引起!你必须用文本编辑器手动删除来修复!
CallScriptFunction  <字符串> (New with Left 4 Dead 2) !FGD
在接受实体脚本域上执行一段vscript函数。
SetLocalOrigin  <坐标> (New with Alien Swarm) !FGD
将此实体设置到地图上某点。如果此实体是某实体父级,那么它的子级也会随着偏移。
SetLocalAngles  <角度> (New with Alien Swarm) !FGD
设置实体的角度(朝向)。

输出

基础:

OnUser1 to OnUser4
这些输出将分别响应于FireUser1 to FireUser4 输入。 详见 User Inputs and Outputs.
OnKilled  (Only in the Left 4 Dead series)
当实体被Kill输入时响应此输出。

参见