AudioEmitter

非推奨を表示

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

AudioEmitter 世界にオーディオストリームを送信します。1つまたは複数の **** に接続できる単一の Wires ピンを提供します。どのストリームも、エミッタの親の位置から世界に放送されます。 AudioEmitter親が AttachmentCamera 、または PVInstance の場合、親の世界位置が使用されます。親がこれらのクラスの 1 つでない場合、AudioEmitter は効果的に静止します。

AudioEmitters は、3D 空間化を実装するために AudioListeners によって聞かれます。

コードサンプル

Playing one asset from multiple 3d locations at once

local part1: BasePart = workspace.Speakers.Left
local part2: BasePart = workspace.Speakers.Right
local player: AudioPlayer = workspace.AudioPlayer
local leftEmitter = Instance.new("AudioEmitter")
local rightEmitter = Instance.new("AudioEmitter")
local toLeft = Instance.new("Wire")
local toRight = Instance.new("Wire")
leftEmitter.Parent = part1
rightEmitter.Parent = part2
toLeft.Parent = leftEmitter
toLeft.SourceInstance = player
toLeft.TargetInstance = leftEmitter
toRight.Parent = rightEmitter
toRight.SourceInstance = player
toRight.TargetInstance = rightEmitter
player:Play()

概要

プロパティ

方法

イベント

プロパティ

AngleAttenuation

BinaryString
Robloxのセキュリティ
並列読み取り

Represents a volume-over-angle curve that affects how loudly a AudioListener will hear the AudioEmitter , based on the angle between them and the LookVector 関連する AudioEmitter .

このプロパティは内部であり、スクリプトでアクセスできません;レプリケーションをサポートするために存在します。使用詳細は、SetAngleAttenuation() を参照してください。

AudioInteractionGroup

並列読み取り

と が相互作用グループを共有する場合、リスナーは送信者を聞くことができます。

DistanceAttenuation

BinaryString
Robloxのセキュリティ
並列読み取り

彼らの間の距離に基づいて、 がどれほど大声で聞こえるかに影響を与えるボリューム-オーバー-ディスタンス曲線を表示します。

このプロパティは内部であり、スクリプトでアクセスできません;レプリケーションをサポートするために存在します。使用詳細は、SetDistanceAttenuation() を参照してください。

並列読み取り

方法

GetAngleAttenuation

テーブルマッピング角をボリュームに返します。キーは 0180 (含む)の間の数字であり、値は 01 (含む)の間の数字で、ボリュームが方向に応じて衰減する方法を説明します。このメソッドは、デフォルトの角消去曲線が使用されている場合、空のテーブルを返します。


戻り値

上記のように、テーブルマッピング角をボリュームにマッピングします。

GetAudibilityFor

パラメータ

listener: AudioListener
既定値: ""

戻り値

GetConnectedWires

Instances

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

パラメータ

pin: string
既定値: ""

戻り値

Instances

GetDistanceAttenuation

テーブルマッピング距離をボリュームに返す。キーは 0 より大きいまたは等しい数字であり、値は 0 から 1(含む)の間の数字で、ボリュームが距離を通じて衰減する方法を説明します。このメソッドは、デフォルトの距離衰減曲線が使用されている場合、空のテーブルを返します。


戻り値

GetInputPins


戻り値

GetInteractingListeners

Instances

戻り値

Instances

GetOutputPins


戻り値

SetAngleAttenuation

()

[角度] と [角度] の間の角度に基づいて、AudioListenerAudioEmitter をどれほど大声で聞くかに影響を与える音量-角度曲線を設定します。これは、LookVector と関連付けられた AudioEmitter に基づいています。

カーブは、テーブルマッピング角キーをボリューム値にマッピングして表現されます。キーは 0180 (含む)の間のユニークな数字であることが期待され、値は 01 (含む)の間の数字であることが期待されます。最大 400のキーバリューペアを含むテーブルがサポートされます。

からの角度の曲線のポイントのボリュームレベルの線形インターポレーションにより、角度値が直接上下にある曲線のポイントのボリュームレベルの間で線形インターポレーションにより決定されます。下の a または上の a にポイントがない場合、他のポイントのボリュームレベルが選択されます。本質的に、カーブは直線で結ばれたポイントの連続体であり、左右の端点を超えて、それぞれのボリュームレベルでカーブが外側に広がります。

このボリュームは、すべての他の衰減曲線 (受信 AudioListener を含む) のボリュームと乗算されて、最終的な聴覚を得ることになります。

テーブルが空または である場合、 は、定期的なボリューム値の角減衰曲線を使用するようにデフォルト設定されます。

パラメータ

curve: Dictionary
既定値: ""

戻り値

()

SetDistanceAttenuation

()

彼らの間の距離に基づいて、どれほど大声で AudioListenerAudioEmitter を聞くかに影響を与えるボリューム-オーバー-距離曲線を設定します。

カーブは、テーブルマッピング距離キーをボリューム値にマップすることで表現されます。キーは 0 より大きいか等しいユニークな数字であることが期待され、値は 0 から 1(含む)の間の数字であることが期待されます。最大 400のキーバリューペアを含むテーブルがサポートされます。

距離 からの曲線のポイントのボリュームレベルの線形インターポレーションにより、ボリュームの量が決定します。距離値が直接上下にある曲線のポイントのボリュームレベルの間で線形インターポレーションを行います。下の d または上の d にポイントがない場合、他のポイントのボリュームレベルが選択されます。本質的に、カーブは直線で結ばれたポイントの連続であり、左右の端点を超えて、それぞれのボリュームレベルで無限に外側に広がります。

このボリュームは、すべての他の衰減曲線 (受信 AudioListener を含む) のボリュームと乗算されて、最終的な聴覚を得ることになります。

テーブルが空であるか、nil である場合、AudioEmitter は逆方向の法則によって決定された距離衰減曲線を使用するデフォルトになります。

パラメータ

curve: Dictionary
既定値: ""

戻り値

()

コードサンプル

Custom Distance Attenuation

local Players = game:GetService("Players")
local emitterPart = Instance.new("Part")
emitterPart.Anchored = true
emitterPart.Position = Vector3.new(0, 0, 0)
emitterPart.Parent = workspace
local emitter: AudioEmitter = Instance.new("AudioEmitter")
emitter.Parent = emitterPart
local curve = {}
curve[10] = 1 -- Within a distance of 10 studs, listeners hear this emitter at full volume
curve[100] = 0.4 -- At a distance of 100 studs, listeners hear this emitter at 40% volume
curve[300] = 0 -- At any distance farther than 300 studs, listeners cannot hear this emitter
emitter:SetDistanceAttenuation(curve)
-- Replicate the rolloff curve from the old voice implementation
-- Default voice without the new audio API uses quadratic rolloff ranging from 7 to 80 studs
local MIN_DISTANCE = 7
local MAX_DISTANCE = 80
local CURVE_STEP_SIZE = 2
local voiceCurve = {}
for i = MIN_DISTANCE, MAX_DISTANCE, CURVE_STEP_SIZE do
voiceCurve[i] = ((i - MIN_DISTANCE) - (MAX_DISTANCE - MIN_DISTANCE)) ^ 2 / (MAX_DISTANCE - MIN_DISTANCE) ^ 2
end
voiceCurve[MAX_DISTANCE] = 0
local function setVoiceCurve(character)
local voiceEmitter: AudioEmitter = character:WaitForChild("AudioEmitter")
voiceEmitter:SetDistanceAttenuation(voiceCurve)
end
for _, player in Players:GetPlayers() do
if player.Character then
setVoiceCurve(player.Character)
end
player.CharacterAdded:Connect(setVoiceCurve)
end

イベント

WiringChanged

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

パラメータ

connected: boolean

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

pin: string

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

wire: Wire

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

instance: Instance

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