AudioFilter

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

AudioFilter 调整音频流的频率内容。它提供一个 输入 接口和一个 输出 接口,可以通过 Wires 连接到/从。AudioFilter 使用其 FilterType , Gain , 和 Q 属性来确定在特定阈值附近要做什么 Frequency .

代码示例

An AudioFilter can be used to change the frequency content of audio streams. In this example, an AudioFilter is used to make the AudioEmitter output more muffled when there's a wall between it and the AudioListener.

Emitter Filtering

-- This assumes the workspace contains a Part with an AudioEmitter and an AudioPlayer, and the camera has an AudioListener
local RunService = game:GetService("RunService")
local part: BasePart = workspace.Part
local camera: Camera = workspace.CurrentCamera
local audioPlayer: AudioPlayer = part.AudioPlayer
local audioEmitter: AudioEmitter = part.AudioEmitter
local audioListener: AudioListener = camera.AudioListener
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = { audioEmitter.Parent }
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
-- Create a new AudioFilter
local filter: AudioFilter = Instance.new("AudioFilter")
filter.FilterType = Enum.AudioFilterType.Lowpass12dB
filter.Frequency = 22000
filter.Q = math.sqrt(2) / 2 -- This Q value produces a flat lowpass for the 12dB slope type
filter.Parent = part
-- Put the AudioFilter between the player and the emitter
local function wireTo(source: Instance, target: Instance): Wire
local wire = Instance.new("Wire")
wire.SourceInstance = source
wire.TargetInstance = target
wire.Parent = target
end
wireTo(audioPlayer, filter)
wireTo(filter, audioEmitter)
-- Update the filter based on the positions of the emitter and listener
RunService.Heartbeat:Connect(function()
local emitterPos: Vector3 = part.Position
local listenerPos: Vector3 = camera.CFrame.Position
local raycastResult = workspace:Raycast(emitterPos, (listenerPos - emitterPos), raycastParams)
filter.Frequency = if raycastResult then 500 else 22000
end)

概要

属性

  • 读取并联

    无论是否有音频流被此效果影响。

  • 未复制
    Roblox 脚本安全性
    读取并联
  • 由过滤器代表的带有曲线类型的带。

  • 读取并联

    过滤器周围的中心频率。

  • 读取并联

    对于峰值和货架过滤器,控制音量增加或减少。

  • 读取并联

    对于峰值、低通、高通、带通和不等边过滤器,控制选择性或谐振。

方法

活动

属性

Bypass

读取并联

如果 true,音频流将无受此效果影响地通过。

Editor

未复制
Roblox 脚本安全性
读取并联
读取并联

将用于过滤音频信号的频率响应曲线的类型。每种曲线以不同的方式影响音频的频率内容。

Frequency

读取并联

由过滤器代表的曲线的中心频率以赫兹计。一般来说,调整此值向上或向下对应于整体频率曲线的水平移动。范围为 20 到 22000。

Gain

读取并联

用于确定过滤器代表的曲线音量等级的十分贝增益值。仅适用于当 FilterTypePeakLowShelfHighShelf 时。范围为 -30 到 30。

读取并联

用于确定过滤器代表的曲线斜率或谐振的质量值。仅适用于当 FilterTypePeakLowpass[x]dBHighpass[x]dBBandpassNotch 时。范围从 0.1 到 10。

对于 FilterType 值的 Lowpass12dBHighpass12dB ,一个 Q 值的 sqrt(2) / 20.707 对应于 12dB/每音阶坡度的平面过滤器。

方法

GetConnectedWires

Instances

返回连接到指定端置顶的 Wires 阵列。 AudioFilter 有一个 "输入" 端口和一个 "输出" 置顶。

参数

pin: string
默认值:""

返回

Instances

GetGainAt

返回由过滤器在给定频率上代表的频率响应曲线的增益值,以十分贝计,在赫兹。这可以用于在关键位置样本过滤器的准确形状或整体。

参数

frequency: number

在赫兹的频率,用于采样。

默认值:""

返回

在给定频率下的增益值,以十分贝计。

GetInputPins


返回

GetOutputPins


返回

活动

WiringChanged

Wire 连接或断开后发生的事件,该 Wire 现在或之前已连接到 AudioFilter 上的某个引脚或其他可连接的实例。

参数

connected: boolean

实例是否连接或断开。

pin: string

AudioFilter 上的按钮,用于 Wire 目标。

wire: Wire

之间的 Wire 和其他实例之间的 AudioFilter

instance: Instance

连接到 Wire 通过的另一个实例。