AudioFilter

显示已弃用

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

AudioFilter 调整音频流的频率内容。它提供一个 输入 引脚和一个 输出 引脚,可以通过 Wires 连接。AudioFilter 使用其 FilterTypeGainQ 属性来决定在特定的截止 Frequency 周围该如何处理。

代码示例

AudioFilter 可以用于改变音频流的频率内容。 在这个例子中,AudioFilter 用于使 AudioEmitter 的输出在它和 AudioListener 之间有墙壁时更加模糊。

发射器过滤

-- 这假设工作区包含一个带有 AudioEmitter 和 AudioPlayer 的 Part,并且相机有一个 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
-- 创建一个新的 AudioFilter
local filter: AudioFilter = Instance.new("AudioFilter")
filter.FilterType = Enum.AudioFilterType.Lowpass12dB
filter.Frequency = 22000
filter.Q = math.sqrt(2) / 2 -- 这个 Q 值产生一个平坦的低通 12dB 陡度类型
filter.Parent = part
-- 将 AudioFilter 放在播放器和发射器之间
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)
-- 根据发射器和监听器的位置更新滤波器
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 的值 Lowpass12dBHighpass12dBQ 值为 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

AudioFilter 和其他实例之间的 Wire

instance: Instance

通过 Wire 连接的其他实例。