AudioEqualizer 는 오디오 스트림의 주파수 콘텐츠를 조정합니다. 입력 피드 입력 핀 하나 및 출력 피드 출력 핀 하나를 제공합니다. 연결할 수 있는/있는 Class.Wire|Wires 의 3개
코드 샘플
Listener Equalization
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
요약
속성
오디오 스트림이 이 효과로 인해 전달되는지 여부.
평등기의 최고 대역에 적용할 값을 얻습니다.
동기화기의 최하단 밴드에 적용할 주파수 콘텐츠에 값을 적용합니다.
중간 밴드의 텐트 내 주파수 콘텐츠에 적용할 값을 얻습니다.
Class.AudioEqualizer.MidGain|MidGain 에 의한 밴드의 주파수 범위.
메서드
지정된 핀하다연결된 Wires 배열을 반환합니다.
속성
Editor
MidRange
Class.AudioEqualizer.MidGain|MidGain 에 의해 영향을 받는 대역의 주파수 범위. 범위의 하단 값이 낮음에서 중간 범위로 교차하는 주파수 간의 크로스오버 주파수를 결정합니다. 범위의 상단 값이 높음에서 200에 20,
메서드
GetConnectedWires
Instances
지정된 핀하다연결된 Wires 배열을 반환합니다. AudioEqualizer 는 하나의 "입력" 핀과 하나의 "출력" 핀하다가지고 있습니다.
매개 변수
반환
Instances