AudioEmitter
*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
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
Representa cómo el volumen percibido del sonido cambia según el ángulo entre un AudioListener y un LookVector asociado con el AudioEmitter .
Controles que AudioListeners son capaces de escuchar esto AudioEmitter .
Representa cómo el volumen percibido del sonido cambia a medida que la distancia entre un AudioListener y un AudioEmitter aumenta.
Métodos
Obtiene la curva de atenuación de ángulo que está usando el AudioEmitter o una tabla vacía si está usando la curva por defecto.
Devuelve un arreglo de Wires que están conectados a la anclarespecificada.
Obtiene la curva de atenuación de distancia que está usando el AudioEmitter o una tabla vacía si está usando la curva por defecto.
Establece la curva de atenuación de ángulo que debería usar el AudioEmitter, o usa una curva de volumen constante 1 si no se proporciona ninguna.
Establece la curva de atenuación de distancia que debe usar el AudioEmitter, o usa una curva de desplazamiento inverso si no se proporciona ninguna.
Propiedades
AngleAttenuation
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
Si un AudioEmitter y un AudioListener comparten un grupo de interacción, el oyente es capaz de escuchar el emisor.
DistanceAttenuation
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
Devuelve un arreglo de Wires que están conectados a la anclarespecificada. AudioEmitter tiene una anclarde entrada.
Parámetros
Devuelve
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
Devuelve
SetAngleAttenuation
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
Devuelve
SetDistanceAttenuation
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
Devuelve
Muestras de código
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