SoundService

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Serviço

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'.

Sistema de Reverência Dinâmica

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

Métodos

Propriedades

AmbientReverb

Ler Parallel

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

Segurança do plugin
Ler Parallel

DefaultListenerLocation

Segurança do plugin
Ler Parallel

Determina onde colocar um AudioListener por padrão. Veja Enum.ListenerLocation para descrições detalhadas de cada opção.

DistanceFactor

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Ler Parallel

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

Não scriptável
Ler Parallel

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

()
Segurança do plugin

Parâmetros

selectedCurveObjects: Instances
Valor Padrão: ""

Devolução

()

OpenDirectionalCurveEditor

()
Segurança do plugin

Parâmetros

selectedCurveObjects: Instances
Valor Padrão: ""

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

sound: Instance

O Sound a ser reproduzido.

Valor Padrão: ""

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

listenerType: Enum.ListenerType

O Enum.ListenerType do ouvinho.

Valor Padrão: ""

Devolução

()

Eventos