Apprendre
Classe de moteur
AudioEmitter

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Échantillons de code
Jouer un actif depuis plusieurs emplacements 3D en même temps
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()

Référence API
Propriétés
AcousticSimulationEnabled
Lecture parallèle
Capacités : Audio
AudioEmitter.AcousticSimulationEnabled:boolean

AngleAttenuation
Sécurité Roblox
Lecture parallèle
Capacités : Audio
AudioEmitter.AngleAttenuation:Flyweight

AudioInteractionGroup
Lecture parallèle
Capacités : Audio
AudioEmitter.AudioInteractionGroup:string

DiffractionEnabled
Lecture parallèle
Capacités : Audio
AudioEmitter.DiffractionEnabled:Enum.SimulationMode

DistanceAttenuation
Sécurité Roblox
Lecture parallèle
Capacités : Audio
AudioEmitter.DistanceAttenuation:Flyweight

DistanceAttenuationBounds
Lecture parallèle
Capacités : Audio
AudioEmitter.DistanceAttenuationBounds:NumberRange

DistanceAttenuationMode
Lecture parallèle
Capacités : Audio
AudioEmitter.DistanceAttenuationMode:Enum.DistanceAttenuationMode

OcclusionEnabled
Lecture parallèle
Capacités : Audio
AudioEmitter.OcclusionEnabled:Enum.SimulationMode

PositionInstance
Lecture parallèle
Capacités : Audio
AudioEmitter.PositionInstance:Instance

PositionType
Lecture parallèle
Capacités : Audio
AudioEmitter.PositionType:Enum.EmitterPositionType

ReverbEnabled
Lecture parallèle
Capacités : Audio
AudioEmitter.ReverbEnabled:Enum.SimulationMode

SimulationFidelity
Déprécié

Méthodes
GetAngleAttenuation
Capacités : Audio
AudioEmitter:GetAngleAttenuation():Dictionary
Retours

GetAudibilityFor
Capacités : Audio
AudioEmitter:GetAudibilityFor(listener:AudioListener):number
Paramètres
listener:AudioListener
Retours

GetConnectedWires
Capacités : Audio
AudioEmitter:GetConnectedWires(pin:string):{Wire}
Paramètres
pin:string
Retours

GetDistanceAttenuation
Capacités : Audio
AudioEmitter:GetDistanceAttenuation():Dictionary
Retours

GetInputPins
Capacités : Audio
AudioEmitter:GetInputPins():{any}
Retours

GetInteractingListeners
Capacités : Audio
AudioEmitter:GetInteractingListeners():{AudioListener}
Retours

GetOutputPins
Capacités : Audio
AudioEmitter:GetOutputPins():{any}
Retours

SetAngleAttenuation
Capacités : Audio
AudioEmitter:SetAngleAttenuation(curve:Dictionary):()
Paramètres
Retours
()

SetDistanceAttenuation
Capacités : Audio
AudioEmitter:SetDistanceAttenuation(curve:Dictionary):()
Paramètres
Retours
()
Échantillons de code
Atténuation de Distance Personnalisée
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 -- Dans un rayon de 10 studs, les auditeurs entendent cet émetteur à plein volume
curve[100] = 0.4 -- À une distance de 100 studs, les auditeurs entendent cet émetteur à 40% du volume
curve[300] = 0 -- À une distance supérieure à 300 studs, les auditeurs ne peuvent pas entendre cet émetteur
emitter:SetDistanceAttenuation(curve)
-- Répliquer la courbe de rolloff de l'ancienne implémentation vocale
-- La voix par défaut sans la nouvelle API audio utilise un rolloff quadratique allant de 7 à 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

Événements
WiringChanged
Capacités : Audio
AudioEmitter.WiringChanged(
connected:boolean, pin:string, wire:Wire, instance:Instance
Paramètres
connected:boolean
pin:string
wire:Wire
instance:Instance

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.