AudioEmitter
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
AudioEmitter 世界にオーディオストリームを送信します。1つまたは複数の **** に接続できる単一の Wires ピンを提供します。どのストリームも、エミッタの親の位置から世界に放送されます。 AudioEmitter親が Attachment 、Camera 、または PVInstance の場合、親の世界位置が使用されます。親がこれらのクラスの 1 つでない場合、AudioEmitter は効果的に静止します。
AudioEmitters は、3D 空間化を実装するために AudioListeners によって聞かれます。
コードサンプル
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()
概要
プロパティ
放射された音の感じられる音量が、AudioListener と関連する角度に基づいて変化する方法を表示します。Represents how the perceived volume of the emitted sound changes based on the angle between a and the LookVector associated with the AudioEmitter .
これを聞くことができるコントロール 。
放射された音の感知されるボリュームが、AudioListener と AudioEmitter の距離が増加するにつれて変化する方法を表します。
方法
AudioEmitter が使用している角減衰曲線を取得するか、デフォルトの曲線を使用している場合は空のテーブル。
指定されたピンに接続された Wires のアレイを返します。
AudioEmitter が使用している距離衰減曲線またはデフォルトの曲線を使用している場合は空のテーブルを取得します。
が使用するべき角減衰曲線を設定するか、提供されない場合はボリュームの定数曲線を使用します。
AudioEmitter が使用する距離衰減曲線を設定するか、提供されない場合は逆のロールオフ曲線を使用します。
イベント
別のインスタンスが を介して接続されたり、切断されたりしたときに発火します。
プロパティ
AngleAttenuation
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() を参照してください。
DistanceAttenuation
彼らの間の距離に基づいて、 がどれほど大声で聞こえるかに影響を与えるボリューム-オーバー-ディスタンス曲線を表示します。
このプロパティは内部であり、スクリプトでアクセスできません;レプリケーションをサポートするために存在します。使用詳細は、SetDistanceAttenuation() を参照してください。
SimulationFidelity
方法
GetAngleAttenuation
テーブルマッピング角をボリュームに返します。キーは 0 と 180 (含む)の間の数字であり、値は 0 と 1 (含む)の間の数字で、ボリュームが方向に応じて衰減する方法を説明します。このメソッドは、デフォルトの角消去曲線が使用されている場合、空のテーブルを返します。
戻り値
上記のように、テーブルマッピング角をボリュームにマッピングします。
GetConnectedWires
指定されたピピン留めに接続された Wires のアレイを返します。AudioEmitter には「入力」ピン留めが 1 つあります。
パラメータ
戻り値
GetDistanceAttenuation
テーブルマッピング距離をボリュームに返す。キーは 0 より大きいまたは等しい数字であり、値は 0 から 1(含む)の間の数字で、ボリュームが距離を通じて衰減する方法を説明します。このメソッドは、デフォルトの距離衰減曲線が使用されている場合、空のテーブルを返します。
戻り値
GetInteractingListeners
戻り値
SetAngleAttenuation
[角度] と [角度] の間の角度に基づいて、AudioListener が AudioEmitter をどれほど大声で聞くかに影響を与える音量-角度曲線を設定します。これは、LookVector と関連付けられた AudioEmitter に基づいています。
カーブは、テーブルマッピング角キーをボリューム値にマッピングして表現されます。キーは 0 と 180 (含む)の間のユニークな数字であることが期待され、値は 0 と 1 (含む)の間の数字であることが期待されます。最大 400のキーバリューペアを含むテーブルがサポートされます。
からの角度の曲線のポイントのボリュームレベルの線形インターポレーションにより、角度値が直接上下にある曲線のポイントのボリュームレベルの間で線形インターポレーションにより決定されます。下の a または上の a にポイントがない場合、他のポイントのボリュームレベルが選択されます。本質的に、カーブは直線で結ばれたポイントの連続体であり、左右の端点を超えて、それぞれのボリュームレベルでカーブが外側に広がります。
このボリュームは、すべての他の衰減曲線 (受信 AudioListener を含む) のボリュームと乗算されて、最終的な聴覚を得ることになります。
テーブルが空または である場合、 は、定期的なボリューム値の角減衰曲線を使用するようにデフォルト設定されます。
パラメータ
戻り値
SetDistanceAttenuation
彼らの間の距離に基づいて、どれほど大声で AudioListener が AudioEmitter を聞くかに影響を与えるボリューム-オーバー-距離曲線を設定します。
カーブは、テーブルマッピング距離キーをボリューム値にマップすることで表現されます。キーは 0 より大きいか等しいユニークな数字であることが期待され、値は 0 から 1(含む)の間の数字であることが期待されます。最大 400のキーバリューペアを含むテーブルがサポートされます。
距離 からの曲線のポイントのボリュームレベルの線形インターポレーションにより、ボリュームの量が決定します。距離値が直接上下にある曲線のポイントのボリュームレベルの間で線形インターポレーションを行います。下の d または上の d にポイントがない場合、他のポイントのボリュームレベルが選択されます。本質的に、カーブは直線で結ばれたポイントの連続であり、左右の端点を超えて、それぞれのボリュームレベルで無限に外側に広がります。
このボリュームは、すべての他の衰減曲線 (受信 AudioListener を含む) のボリュームと乗算されて、最終的な聴覚を得ることになります。
テーブルが空であるか、nil である場合、AudioEmitter は逆方向の法則によって決定された距離衰減曲線を使用するデフォルトになります。
パラメータ
戻り値
コードサンプル
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 および他のワイヤー可能なインスタンスのピンに接続されているか、接続されていました。