ambient_generic
![]() |
这个实体同样适用于Ambient generic:zh-cn (金源引擎)金源引擎。 |
ambient_generic是一个点实体,可用于所有Source游戏。
实体描述
此实体用于播放声音,可以设置单次或循环。同样可以设置从某坐标点或者全局可听见。 其可以播放和控制声音脚本的声音,一段.wav实例或者scripted sentence(实体)。不像贴图或者模型那样,你必须重启Hammer才能看到变化,声音不需要,只需要点browser即可。

Bug: ambient_generics在Counter-Strike Source中播放循环声音,必须配合logic_auto,否则将在第一回合后停止播放。
Bug: 声音无法停止问题(如下详情),可以由 用C++修复您Mod声音无法停止问题文章修复。
Bug: 当此实体正在播放声音的时候,删除(kill)此实体,会导致在地图持续时间内永远播放!
Bug: ambient_generic在播放声音时不会随着父级更新位置。
Bug: 过多ambient_generics在同一时间播放会导致其它ambient_generics表现奇怪或者失败,无视其播放距离。
键值
- Sound Name (message)
<字符串>
- 声音脚本的名字,或者需要播放的声音的路径。对于 scripted sentence,需要在此实体名字前加上一个"!"。 (例如: !COMBINE_THROW_GRENADE4)
Note: 如果您需要将声音识别为音乐,以获取其对音乐的影响,你需要在music路径前面加入"#"。 (例如: music/song01 becomes #music/song01)
- Max Audible Distance
<浮点型>
- 最大播放距离unit(hammer单位)对于客户端来说。
Bug: 声音仍会在距离之外播放?
Bug: 由于DSP,声音可能在很远的距离依旧清晰可听。
注意:玩家接近最大距离时,音量逐渐消失。这似乎使得声音过早停止播放了!
- SourceEntityName
<实体名>
- 如果指定,声音将从此实体上播放而不是ambient_generic实体。如果目标是能够口型同步的npc, 并且能找到因素信息。那么目标能与声音口型同步。
Bug: 如果ambient_generic被删除,声音将在地图原点(坐标 0,0,0)处播放!
Bug: 多个ambient_generics无法堆叠到同一实体上。
- Volume
<整数型 0-10>
- 声音的音量大小。0是静音,10是正常,默认为10。
提示:键值并不允许小数,但是对其输入可以。
Bug: 当设置为0,声音不会被播放。
- Start Volume/初始音量
<整数 0-10>
- Fade in time in seconds/淡入时间/秒
<整数 0-100>
- Fade out time in seconds/淡出时间/秒
<整数 0-100>
- 淡入淡出时间以及开始时的音量大小,默认不淡入淡出。
- Pitch <整数 1-255>
- 音高,1为低,100为正常,255为高。
Bug: 太高值或者太低都会导致其他声音失真。
- Start pitch/初始音高 <整数 1-255>
- Spin up time/升速时间
<整数 0-100>
- Spin down time/降速时间
<整数 0-100>
- 播放开始/结束消耗多少时间升速或降低音高,以及从多少音高开始。默认不执行。
- Dynamic Presets
<choices>
- 可以应用各种DSP效果。
- LFO type
<整数型>
- 低频振荡种类的采用。
- Off (default)/关(默认)
- Square Wave (alternate between low and high)/矩形波(高低交替)
- Triangle Wave (crossfade between high and low)/三角波(高低之间淡入淡出)
- Random/随机
- LFO rate
<整数 0-1000>
- LFO效果重复频率。
- LFO modulation - pitch
<整数 0-100>
- 影响音高或者颤音。更高的数字会改变更多音高 - 颤声歌手很少使用,警笛常用。
- LFO modulation - volume
<整数 0-100>
- 影响声音的音量大小,让其"跳动"。类似于震声*和颤声很类似。非常高的频率,类似于对着旋转的风扇叶说话。
- Incremental Spinup Count
<int>
- 似乎为了增加音高在指定时间内与
ToggleSound
的输入。 but:Bug: 没用,无效!
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>
(in all games since) !FGD
- 如果设置为"Yes",在XBOX360游戏机上不显示此实体。
- Entity Scripts (vscripts)
<scriptlist>
(in all games since)
- 实体生成后可通过输出调用的VScript脚本文件,所有脚本都处于同一脚本域,会覆盖相同名称的变量和功能函数等。
- Script think function (thinkfunction)
<string>
(in all games since)
- 脚本功能函数名,每秒自动会调用此函数10次,比较于logic_timer更方便。 请避免 expensive(昂贵)的效果操作,会损失性能。
- Lag Compensation (LagCompensate)
<boolean>
(in all games since) !FGD
- 设置"Yes"会延迟补偿该实体,请谨慎使用。在hammer中不显示。
- Is Automatic-Aim Target (is_autoaim_target)
<boolean>
(in all games since) !FGD
- 设置为"1"会减慢该实体在十字准心下方时,控制杆的瞄准运动。
Flags/标签
- 1: Play everywhere
- 无论接受者与音源多远,都以恒定的音量播放。To do: 如何 与实体
env_microphone
的声音检测交互?
- 无论接受者与音源多远,都以恒定的音量播放。To do: 如何 与实体
Bug: 标签 is broken at engine level for Soundscripts.只会在声音.raw以文件名播放时生效。
- 16: Start Silent
- 此声音将不会播放。默认启用
Bug: 循环声音无法设置成这样并且无法控制!
- 32: Is NOT Looped
- 改变
ambient_generic
如何处理停止和开始播放。它不会使一个在循环的声音停止循环,但是设置正确的值依然十分重要' 。如果不是,难以控制停止或者启用声音?{{bug|循环的声音请勿勾选,否则会丢失控制!}
输入
- Pitch
<整数型>
- 设置声音音高,范围从1~255,100是原始音高。
Bug: 似乎会导致声音立刻播放,并且循环的声音将无法控制。
PlaySound
- 开始播放声音。
StopSound
- 停止播放循环声音。不会停止非循环声音! 这是故意的, 并且能够改变,修复文章:C++修复大法于您的mod。然而非循环声音可以通过Volume输入,设置值为0来实现。
ToggleSound
- 开关循环声音的按钮功能。表现类似于
PlaySound
输入。 Volume <float>
- 以0~10的音量设置一个声音大小。10为最大声。
Bug: 会自动播放声音。并导致声音循环播放且无法停止!本应该在输入时更改其音量。
Bug: 设置0会导致声音停止而不是静音播放。
FadeIn <int>
- 指定秒数内将声音调整为最大声。范围0~100/秒。
Bug: 无功能,portal2除外。
FadeOut <int>
- 指定秒数内将声音调整为最小声。范围0~100/秒。
Bug: 在淡出前会将声音调整最大(即 10)。
基础:
Kill
- 从这个世界中删除此实体。
KillHierarchy
- 功能类似于
Kill
,尽管此实体与其父实体都被删除了,但比Kill
快一点。 SetParent
<字符串>
- 跟随此实体移动,详见Entity Hierarchy (parenting).
SetParentAttachment
<字符串>
- 修改此实体到父实体的特定附属点。实体会传送,以至于其骨骼方位与附属匹配。在使用此输入前必须设置好实体的父实体。
SetParentAttachmentMaintainOffset
<字符串>
- 同上,但不传送。实体接受到此输出后保留与父级的相对位置。
ClearParent
- 取消绑定父实体,以至于此实体可以自由行动。
AddOutput
<字符串>
- 评估此实体的输出/键值(类似于增加输出给某实体)。
格式:<key/键> <value/值>
格式:<output name/输出名> <targetname/目标名>:<inputname/输入名>:<parameter/参数>:<delay/延迟>:<最大触发数,-1代表无限。>
FireUser1
toFireUser4
- 触发
OnUser
输出; 详见 User Inputs and Outputs。 Use
!FGD- 类似于玩家按 +use(使用,默认E按钮); 也许不会做什么事! 也可以通过创建未指定的输入来调用输出。
这个输入不存在于Valve的 FGD中。 DispatchEffect
<字符串>
!FGD- 在实体的原点坐标设置一个特定效果。自从
后由粒子系统取代。
DispatchResponse
<字符串>
!FGD- 向实体发送一个上下文。 详见 Response 和 Concept.
AddContext
<字符串>
- 添加到实体的response contexts/响应上下文列表。格式
<key/键>:<value/值>
. RemoveContext
<字符串>
- 从实体列表删除一个上下文。名字应与现有上下文进行匹配。
ClearContext
<字符串>
- 删除实体的所有上下文。
RunScriptFile
<script>
(in all games since)
- 从硬盘执行一个VScript脚本文件,不带文件后缀名。会合并接收实体的脚本域。
RunScriptCode
<字符串>
(in all games since)
- (执行脚本代码。)执行一段接收实体域的脚本源代码。通过控制台触发,可能需要英文双引号。
警告:切勿在此输入的元素内使用字符串!它将破坏VMF ,由嵌套引号引起!你必须用文本编辑器手动删除来修复!
CallScriptFunction
<字符串>
(in all games since) !FGD
- 在接受实体脚本域上执行一段vscript函数。
SetLocalOrigin
<坐标>
(in all games since) !FGD
- 将此实体设置到地图上某点。如果此实体是某实体父级,那么它的子级也会随着偏移。
SetLocalAngles
<角度>
(in all games since) !FGD
- 设置实体的角度(朝向)。
输出
基础:
OnUser1
toOnUser4
- 这些输出将分别响应于
FireUser1
toFireUser4
输入。 详见 User Inputs and Outputs. OnKilled
(only in)
- 当实体被Kill输入时响应此输出。
参见
- 超越实体极限,将声音调整至10以上。 (通用地图教程)
- env_soundscape - 用单个实体播放多个声音通过脚本
- Looping a Sound - which requires modifying the actual .wav file
- 用logic_auto在css设置此实体。 - 创建env_soundscape的替代方案。