AudioEqualizer

非推奨を表示

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

AudioEqualizer オーディオストリームの頻度コンテンツを調整します。それは 1 つの 入力 ピンと 1 つの 出力 ピンを提供し、Wires に接続できます/接続できます。AudioEqualizer には、獲得値を制御できる 3つの周波数帯があり、バンド間のクロスオーバーポイントを移動できます。

コードサンプル

オーディオイコライザーを使用して、オーディオストリームの周波数コンテンツを変更できます。これは、放射前、または放射後に行うことができ、独自のカスタムロールオフロジックを実装するのに使用できます!この例では、オーディオイコライザーを使用して、オーディオリスナーがオーディオエミッタから離れると、オーディオプレイヤーの高周波がより抑えられるようにします。また、リスナーがさらに遠くに行くにつれて、低周波と高周波の両方を減少させます。

リスナーの均衡化

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 には「入力」ピンと「出力」ピピン留めが 1 つずつあります。

パラメータ

pin: string
既定値: ""

戻り値

Instances

GetInputPins


戻り値

GetOutputPins


戻り値

イベント

WiringChanged

Wire が接続または切断された後に発生するイベント、および Wire が現在または以前に AudioEqualizer および他のワイヤー可能なインスタンスのピンに接続されているか、接続されていました。

パラメータ

connected: boolean

インスタンスが接続されたか、切断されたか。

pin: string

ターゲットの AudioEqualizer にピンを打った Wire

wire: Wire

Wire と他のインスタンスの間の AudioEqualizer

instance: Instance

Wire を介して接続された他のインスタンス。