AudioEqualizer

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

AudioEqualizer 오디오 스트림의 주파수 콘텐츠를 조정합니다.그것은 하나의 입력 핀과 하나의 출력 핀을 제공하며, Wires 연결할 수 있습니다.AudioEqualizer 는 이득 값을 제어할 수 있는 3개의 주파수 밴드와 밴드 간의 교차 지점을 이동할 수 있습니다.

코드 샘플

오디오 이퀄라이저를 사용하여 오디오 스트림의 주파수 콘텐츠를 변경할 수 있습니다.이는 방송 전에 수행할 수 있거나 방송 후에 수행할 수 있으며, 자체 사용자 지정 RollOff 논리를 구현하는 데 사용할 수 있습니다! 이 예제에서는 오디오 이퀄라이저를 사용하여 오디오 플레이어의 높은 주파수가 오디오 리스너가 오디오 이미터에서 멀어지는 동안 더 희미해지도록 만듭니다.또한 수신기가 멀어질수록 낮은 주파수와 높은 주파수 모두를 줄입니다.

수신기 평준화

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) -- [-1, 1] 범위
look = rescale(look, NumberRange.new(-1, 1), NumberRange.new(-20, 0))
local distance = math.max(towardEmitter.Magnitude, 1)
local rolloff = 1 / distance -- 범위는 [0, 1]
rolloff = rescale(rolloff, NumberRange.new(0, 1), NumberRange.new(-10, 10))
equalizer.HighGain = look + rolloff
equalizer.LowGain = rolloff
end
task.wait()
end

요약

속성

  • 병렬 읽기

    오디오 스트림이 이 효과에 영향을 받지 않고 전달되는지 여부.

  • 복제되지 않음
    Roblox 스크립트 보안
    병렬 읽기
  • 병렬 읽기

    이퀄라이저의 최고 밴드에서 주파수 콘텐츠에 적용할 값을 얻습니다.

  • 병렬 읽기

    이퀄라이저의 가장 낮은 밴드에서 주파수 콘텐츠에 적용할 값을 얻습니다.

  • 병렬 읽기

    이퀄라이저의 중간 밴드에서 주파수 콘텐츠에 적용할 값을 얻습니다.

  • 병렬 읽기

    밴드에 영향을 미치는 주파수 범위 MidGain .

이벤트

속성

Bypass

병렬 읽기

만약 true , 오디오 스트림은 이 효과에 영향을 받지 않고 통과됩니다.

Editor

복제되지 않음
Roblox 스크립트 보안
병렬 읽기

HighGain

병렬 읽기

이퀄라이저의 최고 밴드에서 주파수 콘텐츠에 적용할 값, 데시벨로, 얻습니다. -80에서 10까지의 범위.

LowGain

병렬 읽기

평균화기의 가장 낮은 밴드에서 주파수 콘텐츠에 적용할 값, 데시벨로, 얻습니다. 범위는 -80에서 10입니다.

MidGain

병렬 읽기

중간 밴드의 주파수 콘텐츠에 적용할 값, 데시벨로, 얻으십시오. -80에서 10까지의 범위.

MidRange

병렬 읽기

대역폭에 영향을 미치는 밴드의 주파수 범위는 MidGain입니다.범위의 낮은 값은 낮은 대역과 중간 대역 간의 교차 주파수를 결정합니다.범위의 더 높은 값은 중간 및 높은 밴드 간의 교차 주파수를 결정합니다.두 교차 주파수 범위는 200에서 20,000입니다.

메서드

GetConnectedWires

Instances

지정된 핀하다연결된 배열 Wires 을 반환합니다. AudioEqualizer 는 "입력" 핀과 "출력" 핀하다하나씩 있습니다.

매개 변수

pin: string
기본값: ""

반환

Instances

GetInputPins


반환

GetOutputPins


반환

이벤트

WiringChanged

연결되거나 연결 해제된 Wire 후 발생하는 이벤트로, Wire 는 현재 또는 이전에 AudioEqualizer 및 다른 연결 가능한 인스턴스에 고정되었거나 고정되었습니다.

매개 변수

connected: boolean

인스턴스가 연결되었거나 연결 해제되었는지 여부.

pin: string

타겟 AudioEqualizer 에 있는 핀은 다음과 같습니다.The pin on the that the Wire targets.

wire: Wire

Wire 와 다른 인스턴스 사이의 AudioEqualizer.

instance: Instance

Wire를 통해 연결된 다른 인스턴스.