AudioEmitter

非推奨を表示

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

AudioEmitter は、世界にオーディオストリームをエミットしま

AudioEmitters は、AudioListeners によって聞取され、3D 空間化を実装します。

コードサンプル

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()

概要

プロパティ

方法

  • Class.AudioEmitter が使用している角度減少曲線を取得するか、デフォルトの曲線を使用している場合は空の テーブルを取得します。

  • GetConnectedWires(pin : string):Instances

    指定されたピンに接続された Wires のアレピン留めを返します。

  • Class.AudioEmitter が使用している距離の減衰曲線を取得するか、デフォルトの曲線を使用している場合は空の テーブルを取得します。

  • Class.AudioEmitter が使用する必要がある角度の減少曲線を設定します。また、1 が提供されていない場合は、コンセント曲線を使用します。

  • Class.AudioEmitter が使用する距離補正曲線の適切な距離を設定します。また、提供されていない場合は、逆向きのロールオフ曲線を使用します。

プロパティ

AngleAttenuation

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

Class.AudioEmitter1> が、AudioEmitter の音量を減少させる音量オーバーアングルの曲線を表します。LookVector は、角度の間の音量と1> Datatype.CFrame.LookVector|LookVector1> の関連に基づいて、4> Class.Audio4> の音量を減少させます。

このプロパティは内部であり、スクリプトによってアクセスできません; それは Replication をサポートするために存在します。 SetAngleAttenuation() について詳しくは、使用方法を参照してください。

AudioInteractionGroup

並列読み取り

Class.AudioEmitter と AudioListener がインタラクショングループを共有する場合、リスナーはエミッターを聞くことができます。

DistanceAttenuation

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

Class.Audio がAudioEmitter を聞く頻度に影響するボリュームオーバーディスタンスカーブを表示します。

このプロパティは内部であり、スクリプトによってアクセスできません; それは Replication をサポートするために存在します。 SetDistanceAttenuation() について詳しくは、使用方法を参照してください。

方法

GetAngleAttenuation

ボリュームにテーブルマッピングアングルを返します。 キーは 0 から 180 (含まれ) の間の数字です(含まれ)、値は 0 から 1> 11> (含まれ) の間の数字です(含まれ)です(含まれ)。


戻り値

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

GetConnectedWires

Instances

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

パラメータ

pin: string

戻り値

Instances

GetDistanceAttenuation

ボリュームにテーブルマッピング距離を返します。キーは 0 以上の数字で、値は 1 以下の数字です (含まれる) ボリュームの適度な距離を記述しています。このメソッドは、デフォルトの距離適度曲線が使用されている場合、空のテーブルを返します。


戻り値

GetInteractingListeners

Instances

戻り値

Instances

SetAngleAttenuation

void

Class.Audio が AudioEmitter をどのようにうるさく聞くかに影響する音量オーバーアングルカーブを設定します。これは、角度の間の LookVector と 1>Class.Audio1> の関連に基づいています。

曲線は、ボリューム値に対するテーブルマッピングの角度のキーで表現されます。キーは、0 から 180 (含まれる) までのユニークな数字でなければなりません。値は、0 から 2>12> (含まれる) までのユニークな

a クラスのオーディオエミッターは、角度AudioListener のオーディオポイントのオーディオ量を直接上下させる

このボリュームは、受信する AudioListener のボリュームと乗算され、最終的なオーディオの可視性を取得します。

テーブルが空であるか、nilAudioEmitter は、1 のコンスタントボリューム値である角度の減衰曲線を使用します。

パラメータ

curve: Dictionary

戻り値

void

SetDistanceAttenuation

void

Class.Audio の音を遠くに聞く音量の変化を設定し、AudioEmitter の音量を基準に音量を設定します。

曲線は、ボリューム値に対応するテーブルマッピング距離のキーで表現されます。キーは 0 以上のユニークな数字を期待していますが、値は 0 から 1 (含まれる) の間の数字です。400以上のキー値ペアが含まれるテーブルはサポートされています。

Class.Audio のボリュームは、AudioListener のボリュームレベルと、曲線の距離がd のボリュ

このボリュームは、受信する AudioListener のボリュームと乗算され、最終的なオーディオの可視性を取得します。

テーブルが空の場合、または nilAudioEmitter は、逆三角形法によって決定された距離の減衰曲線を使用します。

パラメータ

curve: Dictionary

戻り値

void

コードサンプル

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

イベント