AudioEqualizer

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

AudioEqualizer は、オーディオストリームの周波数コンテンツを調整します。 入力 ピンを 1 個 および 出力 ピンを 1 個提供します。これらは Class.Wire|Wires に接続/から接続できる/から接続できる 3つの周波

コードサンプル

An AudioEqualizer can be used to change the frequency content of audio streams. This can be done before emission, or after listening, and can be used to implement your own, custom RollOff logic! In this example, we use an AudioEqualizer to make an AudioPlayer's high frequencies more muffled as the AudioListener looks away from the AudioEmitter. We also reduce both the low and high frequencies as the listener gets further away.

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

概要

プロパティ

  • 並列読み取り

    オーディオストリームがこのエフェクトによってパススルーされるかどうか。

  • 複製されていません
    Robloxのスクリプトセキュリティ
    並列読み取り
  • 並列読み取り

    同等化器の最高バンドのフェイバーコンテンツに適用する値を取得します。

  • 並列読み取り

    同等化器の最下のバンドのフェイビューコンテンツに適用する値を獲得します。

  • 並列読み取り

    同等化器の中央バンドのフェイバーコンテンツに適用する値を取得します。

  • 並列読み取り

    バンドの影響を受けた MidGain の周波数範囲。

方法

プロパティ

Bypass

並列読み取り

True の場合、オーディオストリームはこの効果によって影響を受けません。

Editor

複製されていません
Robloxのスクリプトセキュリティ
並列読み取り

HighGain

並列読み取り

デシベル単位の値を獲得して、同等化器の最高バンドのフェイスコンテンツに適用します。-80 から 10 までの範囲です。

LowGain

並列読み取り

デシベル単位の値を獲得して、同等化器の最下のバンドの周波数コンテンツに適用します。-80 から 10 までの範囲です。

MidGain

並列読み取り

中央バンドのフェイバーコンテンツに適用する値をデシベル単位で獲得します。-80 から 10 までの範囲です。

MidRange

並列読み取り

帯に影響を与える MidGain の周波数の範囲。低い値の範囲は、低帯とミッド帯の間のクロスオーバー周波数を決定します。高い値の範囲は、ミッド帯とハイ帯の間のクロスオーバー周波数を決定します。両方のク

方法

GetConnectedWires

Instances

指定されたピピン留めに接続された Wires のアレイを返します。AudioEqualizer には、1つの「入力」ピンと1つの「出力」ピン留めがあります。

パラメータ

pin: string

戻り値

Instances

イベント