AudioFilter

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

AudioFilter 調整音頻流的頻率內容。它提供一個 輸入 彈簧和一個 輸出 彈簧,可以由 WiresAudioFilter 使用其 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 值的 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

之間的 WireAudioFilter 和其他實個體、實例之間。

instance: Instance

通過 Wire 連接的另一個實例,或是已連接的實例。