AudioEmitter

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

AudioEmitter emite flujos de audio en el mundo. Proporciona un único entrada</

AudioEmitters son escuchados por AudioListeners para implementar la implementación 3D de espacialización.

Muestras de código

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

Resumen

Propiedades

Métodos

Propiedades

AngleAttenuation

BinaryString
Leer paralelo
Seguridad de Roblox

Representa una curva de volumen sobre ángulo que afecta el volumen de AudioListener , que se escucha el AudioEmitter , que se escucha el LookVector , que se escucha el 2>Class.Audio2> y que se escucha el 5>Class.Audio5> .

Esta propiedad es interna y no se puede acceder a ella por los scripts; existe para apoyar la replicación. Vea SetAngleAttenuation() para obtener más información de uso.

AudioInteractionGroup

Leer paralelo

Si un AudioEmitter y un AudioListener comparten un grupo de interacción, el oyente es capaz de escuchar el emisor.

DistanceAttenuation

BinaryString
Leer paralelo
Seguridad de Roblox

Representa una curva de volumen que afecta el volumen de un AudioListener que escucha el AudioEmitter, según la distancia entre ellos.

Esta propiedad es interna y no se puede acceder a ella por los scripts; existe para apoyar la replicación. Vea SetDistanceAttenuation() para obtener detalles de uso.

Métodos

GetAngleAttenuation

Resta un ángulo de escalado de tabla a volumen. Las llaves son números entre 0 y 180 (incluido), mientras que los valores son números entre 0 y 1> 11> (incluido) que describen cómo el volumen se atenúa dependiendo de la dirección. Este método devuelve una tabla vacía si se está usando la curva de escal


Devuelve

Ángulo de escalado de la tabla para volumen, como se describe arriba.

GetConnectedWires

Instances

Devuelve un arreglo de Wires que están conectados a la anclarespecificada. AudioEmitter tiene una anclarde entrada.

Parámetros

pin: string

Devuelve

Instances

GetDistanceAttenuation

Restablece una distancia de tabla de mapa a volumen. Las llaves son números mayores que o iguales a 0, mientras que los valores son números entre 0 y 1 (incluido) describiendo cómo el volumen se atenúa a lo largo de la distancia. Este método devuelve una tabla vacía si se está usando la curva de atenuación de distancia predeterminada.


Devuelve

GetInteractingListeners

Instances

Devuelve

Instances

SetAngleAttenuation

void

Establece una curva de volumen sobre ángulo que afecta el volumen de AudioListener , que escucha el AudioEmitter , basado en el ángulo entre ellos y el LookVector asociado con el 2>Class.Audio2> .

La curva se representa por una tabla que mapa los valores de volumen a claves de ángulo. Las claves se esperan que sean números únicos entre 0 y 180 (incluido), mientras que los valores se esperan que sean números entre 0 y 1> 11> (incluido). Las tablas que contienen hasta 400 pares de claves

El volumen del AudioEmitter desde la perspectiva de un AudioListener en un ángulo a es determinado por la interpolación lineal entre los niveles de volumen para

Este volumen se multiplicará con los volúmenes de todas las otras curvas de atenuación (incluidas las que se muestran en el receptor AudioListener ) para obtener la audibilidad final.

Si la tabla está vacía o nil, el AudioEmitter predetermina usar una curva de atenuación de ángulo con el valor de volumen constante de 1.

Parámetros

curve: Dictionary

Devuelve

void

SetDistanceAttenuation

void

Establece una curva de volumen que afecta el volumen de un AudioListener que escucha el AudioEmitter, según la distancia entre ellos.

La curva se representa por una tabla que traduce la distancia de la tabla de mapa a los valores de volumen. Se espera que las llaves sean números únicos mayores que o iguales a 0, mientras que los valores se esperan que sean números entre 0 y 1 (incluido). Las tablas que contienen hasta 400 pares de clave-valor están admitidas.

El volumen de la AudioEmitter desde la perspectiva de un Class.AudioListen en una distancia de AudioListener es determinado por la interpolación lineal entre los niveles de volumen para

Este volumen se multiplicará con los volúmenes de todas las otras curvas de atenuación (incluidas las que se muestran en el receptor AudioListener ) para obtener la audibilidad final.

Si la tabla está vacía o nil, el AudioEmitter predetermina usar una curva de atenuación de distancia determinada por la ley inversa cuadrada.

Parámetros

curve: Dictionary

Devuelve

void

Muestras de código

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

Eventos