SoundService
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Um serviço que determina vários aspectos de como Sounds jogar na experiência.SoundService também é frequentemente usado para armazenar SoundGroups, embora isso não seja obrigatório para que os grupos funcionem.
SoundService propriedades como AmbientReverb , DistanceFactor , DopplerScale e RolloffScale podem ser usadas para alterar como todos os Sounds tocam na experiência, e a função SetListener() permite que você defina a posição a partir da qual os sons são ouvidos.
Amostras de código
O código neste exemplo, quando executado a partir de um LocalScript , mudará a propriedade SoundService.AmbientReverb de SoundService quando o jogador estiver dentro de uma BasePart etiquetada usando CollectionService .
Para adicionar ou remover tags e tipos de reverb, altere as entradas na tabela 'reverbTags'.
local Players = game:GetService("Players")
local CollectionService = game:GetService("CollectionService")
local SoundService = game:GetService("SoundService")
local localPlayer = Players.LocalPlayer
local reverbTags = {
["reverb_Cave"] = Enum.ReverbType.Cave,
}
-- coletar peças e agrupá-las por tag
local parts = {}
for reverbTag, reverbType in pairs(reverbTags) do
for _, part in pairs(CollectionService:GetTagged(reverbTag)) do
parts[part] = reverbType
end
end
-- função para verificar se uma posição está dentro das extremidades de uma peça
local function positionInPart(part, position)
local extents = part.Size / 2
local offset = part.CFrame:PointToObjectSpace(position)
return offset.x < extents.x and offset.y < extents.y and offset.z < extents.z
end
local reverbType = SoundService.AmbientReverb
while true do
task.wait()
if not localPlayer then
return
end
local character = localPlayer.Character
-- padrão para sem reverbimento
local newReverbType = Enum.ReverbType.NoReverb
if character and character.PrimaryPart then
local position = character.PrimaryPart.Position
-- percorra todas as partes indexadas
for part, type in pairs(parts) do
-- veja se o personagem está dentro deles
if positionInPart(part, position) then
-- se assim for, escolha esse tipo de reverbimento
newReverbType = type
break
end
end
end
-- defina o tipo de reverb se ele mudou
if newReverbType ~= reverbType then
SoundService.AmbientReverb = newReverbType
reverbType = newReverbType
end
end
Resumo
Propriedades
O pré-ajuste do ambiente de som usado por SoundService .
Determina onde (se algum lugar) colocar um AudioListener por padrão.
O número de metros a ser considerado um metro por SoundService quando se calcula a atenuação de volume de Sounds parente para um BasePart ou Attachment .
Grau em que a inclinação de um Sound varia devido ao efeito Doppler.
Define se Sound a reprodução de um cliente se repetirá para o servidor.
Define quão rápido o volume Sound diminui.
Métodos
Retorna o tipo de ouvinho atual SoundService e o que é definido como ouvinho.
Reproduz um Sound localmente, o que significa que o som só será ouvido pelo cliente que chamar esse método, independentemente de onde esteja hospedado.
Define o ouvinte para o SoundService.
Propriedades
AmbientReverb
Cada opção Enum.ReverbType para esta propriedade corresponde a um pré-definido disponível no motor de som FMOD.Por exemplo, quando AmbientReverb é definido para Enum.ReverbType.Hangar , o som vai reverberar de forma diferente para simular estar em um grande espaço fechado.
Mudar AmbientReverb afeta as seguintes propriedades usadas pelo motor de som do Roblox.
- Tempo de decadência de reverberação.
- Tempo de atraso de reflexão inicial.
- Tempo de atraso de reverberação tardia em relação ao tempo de reflexão inicial.
- Frequência de referência alta.
- Rácio de tempo de decadência de alta para média frequência.
- Valor que controla a densidade de eco na decadência de reverbimento tardio.
- Valor que controla a densidade modal na decadência de reverberação tardia.
- Faixa de referência de baixa frequência.
- Nível de efeito de sala relativa em baixas frequências.
- Nível de efeito de sala relativa em altas frequências.
- Nível de reflexão precoce em relação ao efeito da sala.
- Nível de efeito de sala em frequências médias.
CharacterSoundsUseNewApi
DefaultListenerLocation
Determina onde colocar um AudioListener por padrão. Veja Enum.ListenerLocation para descrições detalhadas de cada opção.
DistanceFactor
O número de metros a ser considerado um metro por SoundService quando se calcula a atenuação de volume de Sounds parente para um BasePart ou Attachment .
Por padrão, esta propriedade é 3.33, o que significa que um medidor é considerado 3.33 metros para os fins de atenuação de volume.Quanto maior for o DistanceFactor , mais gradualmente o som diminuirá.
Recomenda-se que você só altere esta propriedade se sua experiência usar uma dimensionar/escalonardiferente.Por exemplo, ao usar personagens personalizados maiores, você pode querer reduzir DistanceFactor.
DopplerScale
Essa propriedade determina o grau em que a inclinação de um Sound varia devido ao efeito Doppler, um fenômeno no qual a inclinação de um som muda à medida que a fonte e o observador do som se afastam ou se aproximam mais juntos.Apenas afeta Sounds que são parentes de um BasePart ou Attachment .
Aumentar esse valor exagera o impacto do efeito Doppler, enquanto diminuí-lo o minimiza.Por padrão, o valor desta propriedade é 1 .
RespectFilteringEnabled
Essa propriedade determina se a reprodução de Sound é replicada do cliente para o servidor e, portanto, do servidor.Em outras palavras, quando um LocalScript chama Play() e esta propriedade é true , o som só será reproduzido no respectivo cliente.Se esta propriedade for false, outros clientes também ouvirão o som.
O padrão é true , significando que a filtragem está habilitada.
RolloffScale
Define quão rápido o volume Sound diminui.Quanto maior for o RolloffScale, mais rapidamente o volume de um som diminuirá à medida que a distância entre o ouvinte e o som aumenta.
Observe que essa propriedade só se aplica a Sounds cuja propriedade RollOffMode está definida como Inverse (padrão) ou InverseTapered .Linear e LinearSquare modos usam um modelo de atenuação diferente que não é influenciado por esta propriedade.Essa propriedade também não tem impacto em Sounds que não são parentes de um BasePart ou Attachment.
VolumetricAudio
Métodos
GetListener
Este método retorna o tipo de ouvinho atual SoundService e o que é definido como ouvinho, significando o ponto a partir do qual o áudio na experiência é "ouvido" pelo jogador.Por padrão, o ouvinho é configurado para Workspace.CurrentCamera .O ouvinho pode ser alterado usando SetListener().
O primeiro resultado retornado é o ouvido do Enum.ListenerType do ouvinte e o segundo resultado depende desse digitar:
<th>Descrição</th></tr></thead><tbody><tr><td><code>Enum.ListenerType.Camera</code></td><td>Não retorna um objeto de ouvinho como <code>Class.Workspace.CurrentCamera|CurrentCamera</code> é sempre usado.</td></tr><tr><td><code>Enum.ListenerType.CFrame</code></td><td>Retorna o <code>Datatype.CFrame</code> usado em <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.ObjectPosition</code></td><td>Retorna o <code>Class.BasePart</code> usado em <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.ObjectCFrame</code></td><td>Retorna o <code>Class.BasePart</code> usado em <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr></tbody>
Tipo de ouvinho |
---|
Devolução
O atual Enum.ListenerType e o que o ouvinte foi definido para. O ouvinte pode ser um BasePart, um CFrame ou nil.
OpenAttenuationCurveEditor
Parâmetros
Devolução
OpenDirectionalCurveEditor
Parâmetros
Devolução
PlayLocalSound
Reproduz um Sound localmente, o que significa que o som só será ouvido pelo cliente que chamar esse método, independentemente de onde esteja hospedado.Este método é mais útil para jogar um Sound localmente no cliente do Studio, por exemplo, em um Script para um Plugin .
Parâmetros
Devolução
SetListener
Define o ouvinte usado pelo cliente, o que significa o ponto a partir do qual o áudio na experiência é "ouvido" pelo jogador.Para Sounds parente de um BasePart ou Attachment , o ouvinte influencia o volume e o equilíbrio de esquerda/direita de um som tocando.
Por padrão, o ouvinte é definido como Workspace.CurrentCamera, mas um conjunto de diferentes tipos de ouvintes pode ser usado.
O ouvinho pode ser recuperado usando GetListener().
Parâmetros
O Enum.ListenerType do ouvinho.
Dependente do Enum.ListenerType.Use um BasePart para Enum.ListenerType.ObjectPosition ou Enum.ListenerType.ObjectCFrame , um CFrame para Enum.ListenerType.CFrame ou nil para Enum.ListenerType.Camera.