Env_sun

来自Valve Developer Community
跳转至: 导航搜索
English (en)Русский (ru)中文 (zh)
... Icon-Important.png

译者:joyo_a(百度ID)

Note.png注意:此翻译仅供参考。本译文是翻译2017年9月1日修改的文章。如果原文有大改动,请以最新修改日期的原文为准。

env_sun是所有起源游戏中可用的点实体。

实体描述

它将太阳或月亮效果(发光的sprite)放置在没有视差的天空盒中,给人的印象是几乎无限远。env_sun实体不提供任何实际的照明;它仅仅是太阳的视觉表现。使用light_environment为你的地图提供实际的阳光。除与阴影控制无关的CSGO外,使用shadow_control作为动态阴影可能会影响级联照明。

设置env_sun:设置Pitch Yaw Roll。Pitch表示太阳在天空中偏高或偏低。Yaw表示偏左或偏右。Roll是无关的,不需要设置。info_player_start可以用来定位太阳的位置;你可以设定它的角度,想象一条线从背后出来指向天空,其指向的位置就是太阳在游戏中的位置。然后复制并粘贴它的Pitch、Yaw和Roll到env_sun中(记得之后删除info_player_start)。将使用角度(Use Angles)设置为是(这意味着它将使用“Pitch Yaw Roll”的设置)。将“Pitch”设置为实际Pitch的负数(此数字会覆盖“Pitch Yaw Roll”键值中的Pitch)。太阳颜色是太阳的基本颜色。叠加颜色是过渡材质的颜色。覆盖层提供了一个很好的过渡到太阳的全面眩光,并平滑当太阳进入视野时所出现的渐变效果。大小是太阳的大小。将其设置为小于叠加大小的数值;16是微小的太阳,而256是巨大的太阳。设置叠加大小为比太阳大的数值。

这个实体的属性适用于整个地图。地图中存在这个实体的多个实例可能会导致错误。

  • 你也可以将输入发送到env_sun实体,方法是将其指向“env_sun”而不是使用目标名称。
  • 与天空相互作用的效果:纯净的黄色太阳和明亮的蓝色天空相互作用将使得太阳在游戏中表现为白色的太阳;改变颜色来解决这个问题。

键值

Viewer entity (???) <target_destination>
用于确定太阳位于天空盒中的实体的名称。太阳应该排队从这个实体到env_sun实体。
UseAngles (???) <boolean> | 布尔值
定位env_sun的旧方法是将其指向目标。新的方法是指定角度。如果使用新方法,请将此属性设置为YES。
Pitch (???) <integer> | 整数
该值设定太阳的Pitch位置。它覆盖角度(angles)键值中的Pitch值,即使保留为0,所以需要指定其数值。与角度(angles)键值相反,这个Pitch的旋转是从水平方向逆时针测量的,所以90是直线向上的,而-90是直线向下的。(这只是正常Pitch值的负值。)
Sun Color (R G B) (???) <color255简体中文>
太阳的颜色。
Overlay Color (R G B) (???) <color255简体中文>
设置值为0 0 0的使用旧方法。
Blank image.png待完善: 解释一下旧的方法。
Size (???) <integer> | 整数
太阳的大小。
Overlay Size (???) <integer> | 整数
设置值为-1意味着覆盖层使用旧方法。
Material Name (???) <sprite>
内部发光的材质。
Overlay Material Name (???) <sprite>
覆盖层发光的材质。
HDR color scale. (???) <float> | 浮点型
在HDR模式下运行时,浮点(float)值用于多种sprite颜色。

Targetname:
Name (targetname) <string简体中文> | 字符串
The targetname that other entities refer to this entity by.

输入

TurnOn
启用太阳渲染。
TurnOff
禁用太阳渲染。
SetColor <color255简体中文>
改变太阳的颜色。格式:<红 0-255> <绿 0-255> <蓝 0-255>


Kill
从这个世界中删除此实体。
KillHierarchy
功能类似于Kill,尽管此实体与其父实体都被删除了,但比Kill快一点。
AddOutput<string简体中文> | 字符串
在此实体上分配新的键值/输出。对于键值,有些依赖于额外的必要代码来运行,如果它只是通过这个输入改变就行不通。必须遵循严格的格式:
语法: 
// 更改键值的格式 "AddOutput [键] [值]"
//// 原始文本
"OnUser1" "!self,AddOutput,targetname new_name"

// 添加输出的格式 "AddOutput {目标名称}:{输入名称}:{参数}:{延迟}:{最大触发次数,-1 代表无限}"
//// 原始文本
"OnUser1" "!self:SetParent:!activator:0.0:-1"
// 参数可以留空但仍应包含空的空白
//// 原始文本
"OnUser1" "!self:ClearParent::0.0:-1"
FireUser1FireUser4
触发OnUser输出; 详见 User Inputs and Outputs
Use 不存在于FGD!
类似于玩家按 +use(使用,默认E按钮); 也许不会做什么事! 也可以通过创建未指定的输入来调用输出。
这个输入不存在于Valve的 FGD中。
RunScriptFile<script> | 脚本 (存在于自 求生之路2 以来)
从硬盘执行一个VScript脚本文件,不带文件后缀名。 会合并接收实体的脚本域。
RunScriptCode<string简体中文> | 字符串 (存在于自 求生之路2 以来)
(执行脚本代码。)执行一段接收实体域的脚本源代码。通过控制台触发,可能需要英文双引号。
Icon-Bug.png错误:求生之路2中,该代码是触发输出的实体的脚本域中执行, 接受输入的实体。
Warning.png警告:切勿在此输入的元素内使用字符串!它将破坏VMF ,由嵌套引号引起!你必须用文本编辑器手动删除来修复!
CallScriptFunction<string简体中文> | 字符串 (存在于自 求生之路2 以来) 不存在于FGD!
在接受实体脚本域上执行一段vscript函数。
SetLocalOrigin<coordinates> (存在于自 异形丛生 以来) 不存在于FGD!
将此实体设置到地图上某点。如果此实体是某实体父级,那么它的子级也会随着偏移。
SetLocalAngles<angles> (存在于自 异形丛生 以来) 不存在于FGD!
设置实体的角度(朝向)。

输出


Targetname:
OnUser1 to OnUser4
These outputs each fire in response to the firing of the like-numbered FireUser1 to FireUser4 Input; see User Inputs and Outputs.
OnKilled  (存在于 求生之路 之中)
This output fires when the entity is killed and removed from the game.

关于Env_Sun的教程(俄语)

教程作者:Project-S

description of env_sun (Видимое солнце)

youtu.be/2H-ZtuoyK04

Env_Sun + Light_Environment (ещё одно видео о солнце)

youtu.be/WcGIrc0nWnw