SoundService
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Un servicio que determina varios aspectos de cómo Sounds juegan en la experiencia. SoundService también se usa a menudo para almacenar SoundGroups, aunque esto no es obligatorio para que los grupos funcionen.
SoundService propiedades como AmbientReverb , DistanceFactor , DopplerScale y RolloffScale se pueden usar para cambiar cómo todos los Sounds juegan en la experiencia, y la función SetListener() te permite establecer la posición desde la que se escuchan los sonidos.
Muestras de código
The code in this sample, when ran from a LocalScript, will change the SoundService.AmbientReverb property of SoundService when the player is inside a BasePart tagged using CollectionService.
To add or remove tags and reverb types, change the entries in the 'reverbTags' table.
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,
}
-- collect parts and group them by tag
local parts = {}
for reverbTag, reverbType in pairs(reverbTags) do
for _, part in pairs(CollectionService:GetTagged(reverbTag)) do
parts[part] = reverbType
end
end
-- function to check if a position is within a part's extents
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
-- default to no reverb
local newReverbType = Enum.ReverbType.NoReverb
if character and character.PrimaryPart then
local position = character.PrimaryPart.Position
-- go through all the indexed parts
for part, type in pairs(parts) do
-- see if the character is within them
if positionInPart(part, position) then
-- if so, pick that reverb type
newReverbType = type
break
end
end
end
-- set the reverb type if it has changed
if newReverbType ~= reverbType then
SoundService.AmbientReverb = newReverbType
reverbType = newReverbType
end
end
Resumen
Propiedades
El preajuste de ambiente de sonido utilizado por SoundService .
Determina dónde (si hay algún lugar) colocar un AudioListener por defecto.
El número de tachuelas que se consideran un metro por SoundService cuando se calcula la atenuación de volumen de Sounds padroneado a un BasePart o Attachment .
Grado al que se varía la inclinación de un Sound debido al efecto Doppler.
Establece si Sound la reproducción desde un cliente se replicará al servidor.
Establece qué tan rápido se atenúa el volumen Sound .
Métodos
Devuelve el tipo de escuchador actual SoundService y lo que se establece como escuchador.
Reproduce un Sound localmente, lo que significa que el sonido solo será escuchado por el cliente que llame a este método, independientemente de dónde se le haya asignado.
Establece el escuchador para el SoundService.
Propiedades
AmbientReverb
Cada opción Enum.ReverbType para esta propiedad se corresponde con un preajuste disponible en el motor de sonido FMOD.Por ejemplo, cuando AmbientReverb se establece en Enum.ReverbType.Hangar, el sonido se repercutirá de manera diferente para simular estar en un espacio grande cerrado.
Cambiar AmbientReverb afecta las siguientes propiedades utilizadas por el motor de sonido de Roblox.
- Tiempo de decadencia de reverberación.
- Tiempo de retraso de reflexión inicial.
- Tiempo de retraso de reverberación tardía relativo a la reflexión inicial.
- Referencia de alta frecuencia.
- Relación de tiempo de decadencia de alta a media frecuencia.
- Valor que controla la densidad de eco en la decadencia de la reverberación tardía.
- Valor que controla la densidad modal en la decadencia de reverberación tardía.
- Referencia de baja frecuencia.
- Nivel de efecto de habitación relativa a bajas frecuencias.
- Nivel de efecto de habitación relativa a altas frecuencias.
- Nivel de reflexión temprana relativo al efecto de la habitación.
- Nivel de efecto de habitación en frecuencias medias.
CharacterSoundsUseNewApi
DefaultListenerLocation
Determina dónde colocar un AudioListener por defecto. Vea Enum.ListenerLocation para descripciones detalladas de cada opción.
DistanceFactor
El número de tachuelas que se consideran un metro por SoundService cuando se calcula la atenuación de volumen de Sounds padroneado a un BasePart o Attachment .
Por defecto, esta propiedad es 3.33 , lo que significa que un medidor se considera 3.33 espárragos con fines de atenuación de volumen.Cuanto mayor sea el DistanceFactor, más gradualmente disminuirá el sonido.
Se recomienda que solo cambies esta propiedad si tu experiencia usa una redimensionardiferente.Por ejemplo, al usar personajes personalizados más grandes, es posible que desees reducir DistanceFactor .
DopplerScale
Esta propiedad determina el grado en que la inclinación de un Sound varía debido al efecto Doppler, un fenómeno por el cual la inclinación de un sonido cambia cuando la fuente y el observador del sonido se mueven más lejos o más cerca juntos.Solo afecta a Sounds que son padres de un BasePart o Attachment .
Aumentar este valor exagera el impacto del efecto Doppler, mientras que disminuirlo lo minimiza.Por defecto, el valor de esta propiedad es 1 .
RespectFilteringEnabled
Esta propiedad determina si el reproductor Sound se replica desde el cliente al servidor, y por lo tanto desde el servidor.En otras palabras, cuando una llamada LocalScript llama a Play() y esta propiedad es true , el sonido solo se reproducirá en el cliente respectivo.Si esta propiedad es false, otros clientes también escucharán el sonido.
El predeterminado es true , lo que significa que se habilita el filtrado.
RolloffScale
Establece qué tan rápido se atenúa el volumen Sound .Cuanto más alto sea el RolloffScale , más rápidamente disminuirá el volumen de un sonido a medida que aumenta la distancia entre el receptor y el sonido.
Tenga en cuenta que esta propiedad solo se aplica a Sounds cuya propiedad RollOffMode está configurada como Inverse (predeterminada) o InverseTapered . Linear y LinearSquare modos utilizan un modelo de atenuación diferente que no se ve influenciado por esta propiedad.Esta propiedad también no tiene impacto en Sounds que no están patrocinados por un BasePart o Attachment .
VolumetricAudio
Métodos
GetListener
Este método devuelve el tipo de escucha actual SoundService y lo que se establece como el escuchador, lo que significa el punto desde el que se "escucha" el audio en la experiencia por el jugador.Por defecto, el escuchador se configura en Workspace.CurrentCamera .El escuchador se puede cambiar usando SetListener().
El primer resultado devuelto es el del receptor Enum.ListenerType y el segundo resultado depende de ese introducir:
<th>Descripción</th></tr></thead><tbody><tr><td><code>Enum.ListenerType.Camera</code></td><td>No devuelve un objeto de escucha como <code>Clase.Workspace.CurrentCamera|CurrentCamera</code> se usa siempre.</td></tr><tr><td><code>Enum.ListenerType.CFrame</code></td><td>Devuelve el <code>Datatype.CFrame</code> utilizado en <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.ObjectPosition</code></td><td>Devuelve el <code>Class.BasePart</code> utilizado en <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.ObjectCFrame</code></td><td>Devuelve el <code>Class.BasePart</code> utilizado en <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr></tbody>
Tipo de escuchador |
---|
Devuelve
El actual Enum.ListenerType y lo que el escuchador se ha establecido en. El escuchador puede ser un BasePart , un CFrame o nil .
OpenAttenuationCurveEditor
Parámetros
Devuelve
OpenDirectionalCurveEditor
Parámetros
Devuelve
PlayLocalSound
Reproduce un Sound localmente, lo que significa que el sonido solo será escuchado por el cliente que llame a este método, independientemente de dónde se le haya asignado.Este método es más útil para jugar un Sound localmente en el cliente de Studio, por ejemplo, en un Script para un Plugin .
Parámetros
Devuelve
SetListener
Establece el escuchador utilizado por el cliente, lo que significa que el punto desde el que se "escucha" el audio en la experiencia por el jugador.Para Sounds padres a un BasePart o Attachment , el receptor influye en el volumen y el equilibrio izquierda/derecha de un sonido en reproducción.
Por defecto, el escuchador se configura en Workspace.CurrentCamera, pero se puede utilizar un rango de diferentes tipos de escuchadores.
El escuchador se puede recuperar usando GetListener().
Parámetros
El Enum.ListenerType del escuchador.
Dependiente de la Enum.ListenerType.Usa un BasePart para Enum.ListenerType.ObjectPosition o Enum.ListenerType.ObjectCFrame , un CFrame para Enum.ListenerType.CFrame , o nil para Enum.ListenerType.Camera .