AudioEmitter
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
AudioEmitter は、世界にオーディオストリームをエミットしま
AudioEmitters は、AudioListeners によって聞取され、3D 空間化を実装します。
コードサンプル
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 とLookVector の間の角度により変化します。
Class.Audio listeners|Audio listeners がこの AudioEmitter を聞くことができるコントロール。
エミットされたサウンドの音量が、AudioListener とAudioEmitter の距離が増加するにつれてどのように変化するかを表示します。
方法
Class.AudioEmitter が使用している角度減少曲線を取得するか、デフォルトの曲線を使用している場合は空の テーブルを取得します。
指定されたピンに接続された Wires のアレピン留めを返します。
Class.AudioEmitter が使用している距離の減衰曲線を取得するか、デフォルトの曲線を使用している場合は空の テーブルを取得します。
Class.AudioEmitter が使用する必要がある角度の減少曲線を設定します。また、1 が提供されていない場合は、コンセント曲線を使用します。
Class.AudioEmitter が使用する距離補正曲線の適切な距離を設定します。また、提供されていない場合は、逆向きのロールオフ曲線を使用します。
プロパティ
AngleAttenuation
Class.AudioEmitter1> が、AudioEmitter の音量を減少させる音量オーバーアングルの曲線を表します。LookVector は、角度の間の音量と1> Datatype.CFrame.LookVector|LookVector1> の関連に基づいて、4> Class.Audio4> の音量を減少させます。
このプロパティは内部であり、スクリプトによってアクセスできません; それは Replication をサポートするために存在します。 SetAngleAttenuation() について詳しくは、使用方法を参照してください。
DistanceAttenuation
Class.Audio がAudioEmitter を聞く頻度に影響するボリュームオーバーディスタンスカーブを表示します。
このプロパティは内部であり、スクリプトによってアクセスできません; それは Replication をサポートするために存在します。 SetDistanceAttenuation() について詳しくは、使用方法を参照してください。
方法
GetAngleAttenuation
ボリュームにテーブルマッピングアングルを返します。 キーは 0 から 180 (含まれ) の間の数字です(含まれ)、値は 0 から 1> 11> (含まれ) の間の数字です(含まれ)です(含まれ)。
戻り値
上記のように、ボリュームにテーブルマッピングの角度を設定します。
GetConnectedWires
指定されたピピン留めに接続された Wires のアレイを返します。AudioEmitter には、1つの「入力」ピン留めがあります。
パラメータ
戻り値
GetDistanceAttenuation
ボリュームにテーブルマッピング距離を返します。キーは 0 以上の数字で、値は 1 以下の数字です (含まれる) ボリュームの適度な距離を記述しています。このメソッドは、デフォルトの距離適度曲線が使用されている場合、空のテーブルを返します。
戻り値
GetInteractingListeners
戻り値
SetAngleAttenuation
Class.Audio が AudioEmitter をどのようにうるさく聞くかに影響する音量オーバーアングルカーブを設定します。これは、角度の間の LookVector と 1>Class.Audio1> の関連に基づいています。
曲線は、ボリューム値に対するテーブルマッピングの角度のキーで表現されます。キーは、0 から 180 (含まれる) までのユニークな数字でなければなりません。値は、0 から 2>12> (含まれる) までのユニークな
a クラスのオーディオエミッターは、角度AudioListener のオーディオポイントのオーディオ量を直接上下させる
このボリュームは、受信する AudioListener のボリュームと乗算され、最終的なオーディオの可視性を取得します。
テーブルが空であるか、nil 、AudioEmitter は、1 のコンスタントボリューム値である角度の減衰曲線を使用します。
パラメータ
戻り値
SetDistanceAttenuation
Class.Audio の音を遠くに聞く音量の変化を設定し、AudioEmitter の音量を基準に音量を設定します。
曲線は、ボリューム値に対応するテーブルマッピング距離のキーで表現されます。キーは 0 以上のユニークな数字を期待していますが、値は 0 から 1 (含まれる) の間の数字です。400以上のキー値ペアが含まれるテーブルはサポートされています。
Class.Audio のボリュームは、AudioListener のボリュームレベルと、曲線の距離が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