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.
-- 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)
概要
属性
无论是否有音频流被此效果影响。
由过滤器代表的带有曲线类型的带。
过滤器周围的中心频率。
对于峰值和货架过滤器,控制音量增加或减少。
对于峰值、低通、高通、带通和不等边过滤器,控制选择性或谐振。
方法
返回与指定的引置顶连接的 Wires 阵列。
返回给定频率下的过滤器的响应强度。
活动
当另一个实例通过 AudioFilter 连接到或与 Wire 断开时发生火焰。
属性
Editor
用于确定过滤器代表的曲线斜率或谐振的质量值。仅适用于当 FilterType 是 Peak 、 Lowpass[x]dB 、 Highpass[x]dB 、 Bandpass 或 Notch 时。范围从 0.1 到 10。
对于 FilterType 值的 Lowpass12dB 和 Highpass12dB ,一个 Q 值的 sqrt(2) / 2 或 0.707 对应于 12dB/每音阶坡度的平面过滤器。
方法
活动
WiringChanged
在 Wire 连接或断开后发生的事件,该 Wire 现在或之前已连接到 AudioFilter 上的某个引脚或其他可连接的实例。