env_microphone

From Valve Developer Community
Jump to: navigation, search
English Русский 
Env microphone.png

env_microphone是一个点实体,可用于所有Source游戏。 就是麦克风。在"扬声器模式"下,它会检测声音并将其广播到Speaker target。 它无视Hears X标签并且不会触发SoundLevel的输入。 在"度量模式",它会在Measure target处度量声音级别并且产生声音级别0~1的输出。它只会听到与Hears X相匹配的声音。 度量模式用于检测声音强弱会来决定一些输出。

在源代码中,它由classCEnvMicrophone代表,定义在envmicrophone.cpp

Flags

  • 1: Hears combat sounds - 听到战斗声音
  • 2: Hears world sounds - 听到世界中的声音
  • 4: Hears player sounds - 听到玩家的声音
  • 8: Hears bullet impacts - 听到子弹的声音
  • 16: Swallows sounds routed through speakers - 意味着不会接收其他env_microphone实体传递的声音,包括自己本身。
  • 32: Hears explosions - 听到爆炸的声音。
  • 64: Ignores non-attenuated sounds - 忽略非衰减的声音

键值

Speaker target (SpeakerName) <targetname>
实体info_target的名字,播放在此麦克风实体接收的声音。如果指定了,那么麦克风实体会认为自己处于扬声器模式。它应该与env_speaker区分。
Measure target (target) <targetname>
如果处于度量模式,需要被度量的实体名称。
Listen Filter (ListenFilter) <filter>
过滤实体名称,只有符合过滤的实体才能被接收。 而其他实体发出的声音不会被捕捉。
Speaker DSP Preset (speaker_dsp_preset) <choices>
仅限扬声器模式。如果指定了,则通过扬声器播放的声音会受到选择的DSP影响:
Bug: 即使有多个麦克风实体设置了不同的DSP模式,但只有其中之一的DSP会工作,即使麦克风实体的距离离得很近。因为这个实体呗一个叫做 dsp_speakerConVar设置。
  • 0: Use environment default 默认
  • 50: (No effect) 无效果,下面同样
  • 51: (No effect)
  • 52: (No effect)
  • 53: (No effect)
  • 54: (No effect)无效果,上面同样
  • 55: Loud speaker 大声的
  • 56: Very small speaker 非常小
  • 57: Echoing speaker 回声
  • 58: Small speaker 小
  • 59: Tiny speaker 小
注意:详见 DSP
Sensitivity (0-10) (Sensitivity) <浮点型>
度量模式的敏感度,1正常,10非常敏感。
Smoothing (0-1) (SmoothFactor) <浮点型>
度量模式下的输出平滑值。
Maximum hearing range (0=infinite) (MaxRange) <浮点型>
大于此范围的声音不会被听到。
警告:设置为0或者比1024大,在扬声器模式下可能会影响性能。
Sound Mask (SoundMask) <integer> !FGD
To do: Hear X标签的某种替代形式?

EnableDisable/启动禁用:

Start Disabled (StartDisabled) <boolean>
保持休眠状态,直到被唤醒。(利用Enable输入)。

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"会减慢该实体在十字准心下方时,控制杆的瞄准运动。

输入

SetSpeakerName <targetname>
设置 info_target 实体名,当麦克风接受声音的时候会播放在此处。

EnableDisable/启动禁用:

Enable/启动
Disable/禁用
启用/禁用此实体所具备的效果。同样会使实体消失。

基础:

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
设置实体的角度(朝向)。

输出

SoundLevel <浮点型>
在度量模式,每当soundlevel改变都会触发。
OnRoutedSound
每当声音通过一个指定的扬声器时都会触发。(如果有).
OnHeardSound
每当扬声器听到一个自己关心的声音时都会触发。

基础:

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