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

shadow_control

From Valve Developer Community
< Zh
Jump to: navigation, search
English (en)Русский (ru)中文 (zh)Translate (Translate)
Shadow control.png

shadow_control是一个点实体(en),可在所有的 起源 起源 游戏中使用。

定义整个地图的动态阴影(en)的方向、颜色和衰减距离。

Note.png注意:此翻译仅供参考。本译文是翻译2013年7月30日修改的文章。如果原文有大改动,请以最新修改日期的原文为准。
Note.png注意:这个实体的属性适用于整个地图。地图中存在这个实体的多个实例可能会导致错误。
English (en)Русский (ru)中文 (zh)Translate (Translate)
Toolsskybox.png

天空盒照明(en)通过每一个toolsskybox(en)纹理的固体进入地图。其基本属性由三个实体组合使用来控制(有些游戏是四个实体):

  • light_environment指定直射日光的方向、颜色和强度,以及漫反射光的颜色和强度。
  • shadow_control实体指定light_environment所创建的动态阴影(en)的方向、颜色和距离。如果没有该实体,动态阴影将会有bug且不可配置。
  • env_sun在天空盒中放置一个发光的图标来表示太阳在天空中的明显位置。
  • env_cascade_light给地图投射一个精细的实时阴影,其设置通常来自light_environment。只能用于反恐精英:全球攻势Insurgency黑山

要使它们有意义,确保以上每个实体在地图中只有一个,并且实体的Pitch and Yaw <角度>设置为相同的值。(Pitch相当于太阳的仰角,而Yaw则类似于指南针轴承。)

这些照明设置——方向、颜色、强度等,是以具体2D天空盒的图像而定的。天空列表(en)文章提供了一些Valve的天空盒的设置。worldspawn实体定义了使用的天空盒。另外请注意,如果env_fog_controller的设置与使用的特定天空盒不对应,雾气看起来会不正确。

Note.png注意:Pitch会对light_environmentenv_sun强制,但不能对shadow_controlPitch的强制也不能被关闭,且它的旋转是从水平方向逆时针开始的(因此竖直向下是-90°),而<角度> Pitch的旋转是顺时针的(因此竖直向下是+90°)。一个应对方法是确保你的Pitch强制只重复<角度>的值;例如,如果你的shadow_controllight_environmentenv_sun<角度>是「45 -60 0」,把Pitch设置为「-45」。

==See also==

请与light_environmentenv_sun一起使用。

键值

角度:
Pitch Yaw Roll (Y Z X) <angle(en)>
这个实体在世界的方向。Pitch是围绕Y轴旋转,Yaw是围绕Z轴的旋转,Roll是围绕X轴的旋转。
Tip.png提示:Pitch相当于太阳的仰角,而Yaw则类似于指南针轴承。
Shadow Color ([todo internal name (i)]) <color255(en)>
这是阴影的颜色。
Maximum Distance ([todo internal name (i)]) <float(en)>
这是允许投射阴影的最大距离,以英寸为单位。
Tip.png提示:缩短这个距离可以用来产生近似漫射光照(en)的效果。
All Shadows Disabled ([todo internal name (i)]) <boolean(en)>
此功能仅在半条命2中可用。[证实]

Template:KV BaseEntity:zh-cn

输入

color <color255(en)>
设置阴影颜色。
direction <vector(en)>
设置阴影方向。
SetDistance <float(en)>
设置最大阴影投射距离。
SetAngles <string(en)>
设置阴影角度。(译:原文为direction,意思为方向,但译者觉得翻译成角度更合理。)
SetShadowsDisabled <integer(en)>
设置阴影禁用状态。
Base:
AddContext<string(en)>
添加到实体的 Response Contexts/响应上下文列表。格式是<key>:<value>
AddOutput<string(en)>
在此实体上分配新的键值/输出。对于键值,有些依赖于额外的必要代码来运行,如果它只是通过这个输入改变就行不通。必须遵循严格的格式:
语法:

ClearContext
从此实体的列表中删除所有上下文。
ClearParent
从移动层次结构中删除该实体,使其可以自由移动。
FireUser1FireUser4
触发相应的OnUser输出;详见 User Inputs and OutputsEnglish
Kill
从这个世界中删除此实体。
KillHierarchy
功能类似Kill,尽管此实体与其父实体都被删除了,但比Kill快一点。
RemoveContext
从实体列表删除一个上下文。名字应与现有上下文进行匹配。
SetParent<string(en)>
跟随此实体移动,详见 实体层级(依赖关系)
SetParentAttachment<string(en)>
更改此实体到其父级上的特定附属English点。实体将传送,以至于其骨骼方位English与附属匹配。在使用此输入前必须设置好实体的父实体。
SetParentAttachmentMaintainOffset<string(en)>
同上,但没有传送。在接收到输入时,实体保持其相对于附件的位置。
Use 不存在于FGD!
与调用 +use 的玩家相同[玩家按 +use(使用,默认E按钮)];大多数情况下没有影响。
DispatchResponse<string(en)> 不存在于FGD!
向实体发送一个上下文。 详见 ResponseEnglishConceptEnglish.
DispatchEffect<string(en)> (自从 求生之路移除) 不存在于FGD!
在实体的原点坐标设置一个特定效果;参见 List of Client EffectsEnglish。自从求生之路 求生之路后由粒子系统取代。
RunScriptFile<script(en)> (存在于自 求生之路2 以来)
从硬盘执行一个 VScript 脚本文件,不带文件后缀名。会合并接收实体的脚本域。
RunScriptCode<string(en)> (存在于自 求生之路2 以来)
在接收输入的实体范围内执行一串 VScript 源代码。通过控制台触发时可能需要字符串引用。
Icon-Bug.png错误:在 Hammer 中,使用带有字符串的参数会破坏 VMFEnglish 文件的结构,使下一个 Hammer 会话无法查看该文件。  [todo tested in?]
Note.png修复:使用文本编辑器手动删除带有字符串的参数。
CallScriptFunction<string(en)> (存在于自 求生之路2 以来) 不存在于FGD!
在接受实体脚本域上执行一段 VScript 函数。
SetLocalOrigin<coordinates(en)> (存在于自 异形丛生 以来) 不存在于FGD!
将此实体设置到地图中的某个位置。如果此实体是某实体父级,那么它的子级也会随着移动。
SetLocalAngles<angles(en)> (存在于自 异形丛生 以来) 不存在于FGD!
设置该实体的角度。

输出

Base/基础:

OnUser1OnUser4
这些输出将分别响应于 FireUser1FireUser4 输入。 详见 User Inputs and Outputs