AudioEqualizer
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
AudioEqualizer dostosowuje częstotliwość zawartości audio strumieni.Zapewnia jeden Wejściowy przewód i jeden Wyjściowy przewód, które mogą być podłączone do/od Wires .AudioEqualizer ma 3 pasmy częstotliwości, których wartości zysku można kontrolować, a punkty przecięcia między pasmami można przesuwać.
Przykłady kodu
Wzmacniacz dźwięku można użyć do zmiany częstotliwości zawartości strumieni audio.Można to zrobić przed emisją, lub po wysłuchaniu, i można go użyć do wdrożenia własnej, niestandardowej logiki RollOff! W tym przykładzie używamy equalizera dźwięku, aby uczynić częstotliwości wysokie odtwarzacza audio bardziej przyćmione, gdy AudioListener odwraca się od emitera dźwięku.Zmniejszamy również zarówno niskie, jak i wysokie częstotliwości, gdy słuchacz oddala się dalej.
local function wireUp(source: Instance, target: Instance): Wire
local wire = Instance.new("Wire")
wire.Parent = target
wire.SourceInstance = source
wire.TargetInstance = target
return wire
end
local function getCFrameFrom(inst: Instance): CFrame?
local parent = inst.Parent
if not parent then
return nil
elseif parent:IsA("Model") then
return parent.WorldPivot
elseif parent:IsA("BasePart") then
return parent.CFrame
elseif parent:IsA("Attachment") then
return parent.WorldCFrame
elseif parent:IsA("Camera") then
return parent.CFrame
else
return nil
end
end
local function rescale(value: number, oldRange: NumberRange, newRange: NumberRange): number
local clamped = math.clamp(value, oldRange.Min, oldRange.Max)
local normalized = clamped - oldRange.Min / (oldRange.Max - oldRange.Min)
return normalized * (newRange.Max - newRange.Min) + newRange.Min
end
local assetPlayer = Instance.new("AudioPlayer")
assetPlayer.AssetId = "rbxassetid://142376088"
assetPlayer.Parent = workspace
local equalizer = Instance.new("AudioEqualizer")
equalizer.MidRange = NumberRange.new(400, 3000)
equalizer.Parent = workspace
local emitterPart = Instance.new("Part")
emitterPart.Anchored = true
emitterPart.Position = Vector3.new(0, 5, 0)
emitterPart.Parent = workspace
local emitter = Instance.new("AudioEmitter")
emitter.Parent = emitterPart
local listener = Instance.new("AudioListener")
listener.Parent = workspace.CurrentCamera
local output = Instance.new("AudioDeviceOutput")
output.Parent = workspace
wireUp(assetPlayer, equalizer)
wireUp(equalizer, emitter)
wireUp(listener, output)
assetPlayer.Looping = true
assetPlayer:Play()
while true do
local emitterFrame = getCFrameFrom(emitter)
local listenerFrame = getCFrameFrom(listener)
if emitterFrame and listenerFrame then
local towardEmitter = emitterFrame.Position - listenerFrame.Position
local look = towardEmitter.Unit:Dot(listenerFrame.LookVector) -- znajduje się w przedziale od [-1, 1]
look = rescale(look, NumberRange.new(-1, 1), NumberRange.new(-20, 0))
local distance = math.max(towardEmitter.Magnitude, 1)
local rolloff = 1 / distance -- osiąga zakres od [0, 1]
rolloff = rescale(rolloff, NumberRange.new(0, 1), NumberRange.new(-10, 10))
equalizer.HighGain = look + rolloff
equalizer.LowGain = rolloff
end
task.wait()
end
Podsumowanie
Właściwości
Czy strumienie audio są przekazywane bez wpływu na ten efekt.
Zdobądź wartość, która ma zostać zastosowana do częstotliwości zawartości najwyższej płyty w equalizerze.
Zdobądź wartość, która ma zostać zastosowana do częstotliwości zawartości najniższej płyty w equalizerze.
Zdobądź wartość, która ma zostać zastosowana do częstotliwości zawartości środkowej pasma w equalizerze.
Zakres częstotliwości pasma wpływającego na MidGain .
Metody
Zwraca tablicę Wires, która jest połączona z określonym przypinać.
Zdarzenia
Wystrzeliwuje, gdy inna instancja jest połączona z lub odłączona od AudioEqualizer za pomocą Wire .
Właściwości
Editor
HighGain
Zyskaj wartość, w decybelach, którą należy zastosować do częstotliwości zawartości najwyższej płyty w equalizerze. Zakres od -80 do 10.
LowGain
Zyskaj wartość, w decybelach, którą należy zastosować do częstotliwości zawartości najniższej płyty w equalizerze. Zakres od -80 do 10.
MidGain
Zdobądź wartość, w decybelach, którą należy zastosować do częstotliwości zawartości środkiego pasma w equalizerze. Zakres od -80 do 10.
MidRange
Zakres częstotliwości w hercach pasma wpływającego na MidGain .Mniejsza wartość zakresu określa częstotliwość przecięcia między niskimi i średnimi pasmami.Wyższa wartość zakresu określa częstotliwość przecięcia między średnimi i wysokimi pasmami.Obie częstotliwości przejścia wahają się od 200 do 20 000.
Metody
Zdarzenia
WiringChanged
Wydarzenie, które wystrzeliwuje po tym, jak Wire łączy się lub odłącza się, a które Wire jest teraz połączone lub było wcześniej połączone z przypinką na AudioEqualizer i z niektórymi innymi dostępnymi instancjami.
Parametry
Czy instancja została połączona czy odłączona.
Przypinka na AudioEqualizer , która jest przeznaczona dla celów Wire.
The Wire pomiędzy AudioEqualizer i inną instancja.