AudioEqualizer
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
AudioEqualizer ses akışlarının frekans içeriğini ayarlar. Bir Giriş düğmesine ve bir Çıkış düğmesine bağlanabilen bir şerit vardır. 0> Class.Wire|Wires0> arasındaki 3 frekans b
Kod Örnekleri
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) -- ranges from [-1, 1]
look = rescale(look, NumberRange.new(-1, 1), NumberRange.new(-20, 0))
local distance = math.max(towardEmitter.Magnitude, 1)
local rolloff = 1 / distance -- ranges from [0, 1]
rolloff = rescale(rolloff, NumberRange.new(0, 1), NumberRange.new(-10, 10))
equalizer.HighGain = look + rolloff
equalizer.LowGain = rolloff
end
task.wait()
end
Özet
Özellikler
Oyun içi ses akışlarının bu etkiye maruz kalıp kalmadığı.
Eşdeğerciğin en yüksek bantı için uygulanacak frekans içeriğine değer kazanın.
Eşdeğerciğin en düşük bantına uygulanacak frekans içeriğine değer kazanın.
Eşdeğerciğin orta bandın frekans içeriğine uygulanacak değeri elde edin.
Bantın etkisi altındaki MidGain 'in frekans kapsamı.
Yöntemler
Belirli bir sabitle'e bağlanan Wires bir matrisi iade eder.
Özellikler
Editor
LowGain
Eşdeğerciğin en düşük bantındaki frekans içeriğine uygulanacak değeri, decibel olarak kazanın. -80 ile 10 arasında.
MidGain
Eşdeğerciğin orta bandın frekansı içinde uygulanacak değere, dekibel olarak kazanın. -80 ile 10 arasında.
MidRange
Bantın etkisiyle ortaya çıkan frekans aralığının MidGain ile etkisi. Düşük frekans aralığı, düşük ve orta bandlar arasındaki krosöver frekansını belirler. Yüksek frekans aralığı, orta ve yüksek bandlar arasındaki krosöver frekans
Yöntemler
GetConnectedWires
Belirli bir bağlantıya bağlanan Wires bir sabitleiade eder. AudioEqualizer ın bir "Giriş" düğmesi ve bir "Çıkış" sabitlevardır.