AudioEmitter
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
AudioEmitter emite fluxos de áudio para o mundo.Ele fornece um único pino de entrada que pode ser conectado a um ou mais .Quaisquer streams conectados a um AudioEmitter são transmitidos para o mundo a partir da posição do emissor pai.Se o pai for um Attachment , Camera ou PVInstance , a posição mundial do pai será usada.Se o pai não for uma dessas Classes, o AudioEmitter é efetivamente silencioso.
AudioEmitters são ouvidos por AudioListeners a fim de implementar a spatialização 3D.
Amostras 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()
Resumo
Propriedades
Representa como o volume percebido do som emitido muda com base no ângulo entre um AudioListener e o LookVector associado ao AudioEmitter.
Controles que AudioListeners são capazes de ouvir este AudioEmitter .
Representa como o volume percebido do som emitido muda à medida que a distância entre um AudioListener e o AudioEmitter aumenta.
Métodos
Obtém a curva de atenuação de ângulo que o AudioEmitter está usando ou uma tabela vazia se estiver usando a curva padrão.
Retorna um array de Wires que estão conectados ao marcarespecificado.
Obtém a curva de atenuação de distância que o AudioEmitter está usando, ou uma tabela vazia se estiver usando a curva padrão.
Define a curva de atenuação de ângulo que o AudioEmitter deve usar ou usa uma curva constante de volume 1 se nenhuma for fornecida.
Define a curva de atenuação de distância que o AudioEmitter deve usar ou usa uma curva de rolamento inverso se nenhuma for fornecida.
Eventos
Incêndios quando outra instância está conectada ou desconectada do AudioEmitter através de um Wire .
Propriedades
AngleAttenuation
Representa uma curva de volume sobre ângulo que afeta o quão alto um AudioListener ouvirá o AudioEmitter , com base no ângulo entre eles e o LookVector associado ao AudioEmitter .
Esta propriedade é interna e não pode ser acessada por scripts; ela existe para suportar a replicação. Veja SetAngleAttenuation() para detalhes de uso.
AudioInteractionGroup
Se um AudioEmitter e um AudioListener compartilharem um grupo de interação, então o ouvinte é capaz de ouvir o emissor.
DistanceAttenuation
Representa uma curva de volume-em-distância que afeta como alto um AudioListener ouvirá o AudioEmitter, com base na distância entre eles.
Esta propriedade é interna e não pode ser acessada por scripts; ela existe para suportar a replicação. Veja SetDistanceAttenuation() para detalhes de uso.
SimulationFidelity
Métodos
GetAngleAttenuation
Retorna um ângulo de mapeamento de tabela para volume.Chaves são números entre 0 e 180 (inclusivo), enquanto os valores são números entre 0 e 1 (inclusivo) descrevendo como o volume atenua dependendo da direção.Este método retorna uma tabela vazia se a curva de atenuação de ângulo padrão estiver sendo usada.
Devolução
Ângulo de mapeamento de tabela para volume, como descrito acima.
GetConnectedWires
Retorna um array de Wires que estão conectados ao marcarespecificado. AudioEmitter tem um marcar"Entrada".
Parâmetros
Devolução
GetDistanceAttenuation
Retorna uma distância de mapeamento de tabela para volume.Chaves são números maiores ou iguais a 0, enquanto os valores são números entre 0 e 1 (inclusivo) descrevendo como o volume se atenua à distância.Este método retorna uma tabela vazia se a curva de atenuação padrão de distância estiver sendo usada.
Devolução
GetInteractingListeners
Devolução
SetAngleAttenuation
Define uma curva de volume sobre ângulo que afeta como alto um AudioListener ouvirá o AudioEmitter , com base no ângulo entre eles e o LookVector associado ao AudioEmitter .
A curva é representada por chaves de mapeamento de tabela para valores de volume.As chaves são esperadas ser números únicos entre 0 e 180 (inclusivo), enquanto os valores são esperados ser números entre 0 e 1 (inclusivo).Tabelas que contêm até 400 pares de chave-valor são suportadas.
O volume do AudioEmitter da perspectiva de um AudioListener em um ângulo a é determinado pela interpolação linear entre os níveis de volume para os pontos na curva cujos valores de ângulo estão diretamente acima e abaixo de a .Se não há nenhum ponto abaixo de a ou nenhum ponto acima de a, o nível de volume do outro ponto é escolhido.Basicamente, a curva é uma sequência de pontos conectados por linhas retas, e além de seus pontos de extremidade esquerdo e direito, a curva se estende para fora em seus respectivos níveis de volume.
Este volume será multiplicado com os volumes de todas as outras curvas de atenuação (incluindo as no receptor AudioListener ) para obter a audibilidade final.
Se a tabela estiver vazia ou nil , o AudioEmitter padrão é usar uma curva de atenuação de ângulo com o valor constante de volume de 1 .
Parâmetros
Devolução
SetDistanceAttenuation
Define uma curva de volume a distância que afeta como alto um AudioListener ouvirá o AudioEmitter, com base na distância entre eles.
A curva é representada por chaves de mapeamento de tabela para valores de volume.As chaves são esperadas ser números únicos maiores que ou igual a 0, enquanto os valores são esperados ser números entre 0 e 1 (inclusivo).Tabelas que contêm até 400 pares de chave-valor são suportadas.
O volume do AudioEmitter da perspectiva de um AudioListener a uma distância d é determinado pela interpolação linear entre os níveis de volume para os pontos na curva cujos valores de distância estão diretamente acima e abaixo de d .Se não há nenhum ponto abaixo de d ou nenhum ponto acima de d, o nível de volume do outro ponto é escolhido.Basicamente, a curva é uma sequência de pontos conectados por linhas retas, e além de seus pontos de extremidade esquerda e direita, a curva se estende infinitamente para fora em seus respectivos níveis de volume.
Este volume será multiplicado com os volumes de todas as outras curvas de atenuação (incluindo as no receptor AudioListener ) para obter a audibilidade final.
Se a tabela estiver vazia ou nil , o AudioEmitter padrão é usar uma curva de atenuação de distância determinada pela lei inversa-quadrada.
Parâmetros
Devolução
Amostras 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
Eventos
WiringChanged
Evento que dispara depois que um Wire se conecta ou se desconecta, e que Wire está agora conectado ou foi previamente conectado a um pino no AudioEmitter e a alguma outra instância viável.
Parâmetros
Se a instância se conectou ou desconectou.
O pino no AudioEmitter que os alvos Wire alvo.
O Wire entre a AudioEmitter e a outra instância.