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 上的某個彈片或其他可連接的個體、實例。