La reproducción de audio ocurre a través de objetos Sound que emiten audio dentro de una experiencia. Roblox asigna a cada activo de audio un ID único que puedes asignar a objetos Sound para reproducir un efecto de sonido o pista musical específica. Puedes configurar que este audio se reproduzca automáticamente en tiempo de ejecución, o activarlo para reproducir desde scripts.
Para modificar la reproducción de múltiples objetos Sound, puedes asignarlos a un grupo de sonido y controlar el volumen de todo el grupo, así como aplicar efectos dinámicos.
Crear objetos de sonido
Hay tres ubicaciones donde puedes crear un objeto Sound, y cada ubicación determina cómo se emite el audio y cómo cambian los volúmenes en relación con la posición del usuario dentro de la experiencia.
| Ubicación | Cómo se emite el audio | Cómo cambian los volúmenes |
|---|---|---|
| Hijo de un bloque, esfera o cilindro BasePart. | El audio se emite hacia afuera desde toda la superficie de la parte. | El volumen cambia dependiendo de la distancia entre el oyente de sonido del usuario y la posición de la parte, así como su tamaño. |
| Hijo de un Attachment, MeshPart, TrussPart, WedgePart o CornerWedgePart. | El audio se emite hacia afuera desde el único punto de attachment o el centro de la parte. | El volumen cambia dependiendo de la distancia entre el oyente de sonido del usuario y la posición de la attachment/parte. |
| Dentro de SoundService o Workspace. | El audio se emite a lo largo de la experiencia. | El volumen y la posición estéreo permanecen igual independientemente de la posición o rotación del oyente de sonido del usuario. |
Audio posicional
El audio posicional es un audio que los usuarios solo pueden escuchar cerca de una posición específica dentro de la experiencia. Hay dos tipos de audio posicional que puedes utilizar: volumétrico y de punto fuente.
Volumétrico
El audio volumétrico es la opción de audio más realista, ya que cambia dinámicamente dependiendo de la posición del usuario en relación con la fuente de audio. Por ejemplo, si el usuario está dentro de una BasePart con un objeto hijo Sound, el audio se reproduce a su alrededor, similar a la música en unos auriculares que suena al mismo volumen en cada altavoz. Cuando el usuario sale de la parte, el audio disminuye gradualmente en volumen y se vuelve más direccional por altavoz, moviéndose alrededor de la cabeza del usuario cuando su oyente rota. Para información sobre las propiedades que controlan cuán fuerte es tu audio a diferentes distancias de la parte, consulta RollOffMinDistance y RollOffMaxDistance.
El tamaño de la BasePart también afecta el volumen del audio, ya que partes más grandes de BaseParts producen un área más amplia desde la cual los usuarios pueden escuchar el audio y, cuando un usuario se aleja de una gran BasePart, el volumen disminuye más lentamente. El siguiente ejemplo muestra una BasePart que tiene el tamaño de una ciudad con un objeto Sound reproduciendo audio ambiental. Los usuarios A y B experimentan el audio de manera diferente: el usuario B está más cerca de la gran BasePart, y ellos escuchan el audio alrededor del mismo volumen en ambos altavoces. Por el contrario, el usuario A está más lejos de la ciudad, así que el audio que escucha es más bajo y más direccional que el usuario B, reproduciéndose a diferentes volúmenes en cada uno de sus altavoces.

El audio volumétrico es útil para cualquier audio que necesite ser inmersivo alrededor de un usuario y que cambie dinámicamente dependiendo de la posición del usuario, como una tarima de concierto o zonas de ambiente como la lluvia. Cuando experimentas colocando un objeto Sound en BaseParts de diferentes tamaños y posiciones con respecto a los usuarios, puedes escuchar cuán inmersivo puede ser el audio volumétrico.
Para crear un objeto Sound para audio volumétrico:
En la ventana Explorer, selecciona SoundService.
En la ventana Properties, navega a la propiedad VolumetricAudio y configúralo en Enabled.
En la ventana Explorer, coloca el cursor sobre un BasePart, luego haz clic en el botón ⊕. Se muestra un menú contextual.
En el menú, inserta un Sound.
En la ventana Properties, navega a la propiedad SoundId e introduce un ID de activo de audio válido.

(Opcional) Si deseas que el audio comience a reproducirse cuando la experiencia comience, habilita la propiedad Playing.
Punto fuente
Contrariamente al audio volumétrico, el audio de punto fuente solo emite desde un solo punto de origen. Este tipo de audio es útil para explosiones, ruidos de impacto, dispositivos electrónicos y diálogos.
Para crear un objeto Sound para audio de punto fuente:
- En la ventana Explorer, coloca el cursor sobre una attachment, truss, wedge o corner wedge, luego haz clic en el botón ⊕. Se muestra un menú contextual.
- En el menú, inserta un Sound.
- En la ventana Properties, navega a la propiedad SoundId e introduce un ID de activo de audio válido.
- (Opcional) Si deseas que el audio comience a reproducirse cuando la experiencia comience, habilita la propiedad Playing.
Audio de fondo
El audio de fondo se reproduce al mismo volumen sin importar dónde se desplace el usuario dentro de tu experiencia. Este tipo de audio es útil para música que deseas que se reproduzca para los usuarios, especialmente cuando quieres crear una banda sonora de múltiples archivos de audio.
Es mejor mantener todos los objetos Sound para audio de fondo en una sola ubicación del Workspace por fines de organización a medida que continúas agregando y editando audio dentro de tu experiencia. El siguiente ejemplo almacena el nuevo objeto Sound dentro del contenedor SoundService, ya que este servicio determina cómo los objetos Sound se reproducen en las experiencias.
Para crear un objeto Sound para audio de fondo:
- En la ventana Explorer, coloca el cursor sobre SoundService, luego haz clic en el botón ⊕. Se muestra un menú contextual.
- En el menú, inserta un Sound.
- En la ventana Properties, navega a la propiedad SoundId e introduce un ID de activo de audio válido.
- (Opcional) Si deseas que el audio comience a reproducirse cuando la experiencia comience, habilita la propiedad Playing.
- (Opcional) Si este objeto Sound es la única pista que deseas reproducir en el lugar, habilita su propiedad Looped.
Personalizar objetos de sonido
Las propiedades de los objetos Sound trabajan juntas para influir en cómo los usuarios experimentan tu audio, tales como:
- Cuán alto escuchan audio específico de manera individual y en relación entre sí (Volume).
- Cómo perciben el volumen cuando se alejan de la fuente de audio (RollOffMinDistance, RollOffMaxDistance y RollOffMode).
- Qué parte del audio pueden escuchar (TimePosition).
- Qué tan rápido y a qué tono lo escuchan (PlaybackSpeed).
- Si el audio se reproduce automáticamente al finalizar (Looped).
Volumen
La propiedad Volume te permite establecer el volumen de tu audio desde 0 (silencio) hasta 10 (estruendoso). Si deseas cambiar el volumen de múltiples objetos Sound a la vez, colócalos bajo un grupo de sonido.
RollOffMinDistance y RollOffMaxDistance
RollOffMinDistance y RollOffMaxDistance determinan el rango de cómo un usuario percibe el volumen del audio posicional. Para el audio volumétrico, RollOffMinDistance es la distancia mínima en studs en la que el audio comienza a disminuir en volumen cuando el oyente del cliente se aleja de la parte padre BasePart, y la propiedad RollOffMaxDistance es la distancia máxima en studs que un oyente del cliente puede escuchar audio desde la superficie del objeto.

Para el audio de punto fuente, RollOffMinDistance y RollOffMaxDistance funcionan de manera similar al audio volumétrico, pero la distancia de disminución que estos propiedades controlan no rodean el objeto, solo influencian la distancia hacia afuera desde el punto fuente.

RollOffMode
La propiedad RollOffMode te permite decidir cómo se desvanece el audio a medida que aumenta la distancia entre el oyente del usuario y el padre del objeto Sound. Puedes configurar esta propiedad en uno de los cuatro valores del enumerado Enum.RollOffMode.

| RollOffMode | Descripción |
|---|---|
| Inverse (predeterminado) | El volumen inicialmente se desvanece abruptamente desde RollOffMinDistance, pero el desvanecimiento del volumen se vuelve más gradual cuanto más cerca está un usuario de alcanzar RollOffMaxDistance. Una vez que alcanzan RollOffMaxDistance, el audio se silencia. |
| Linear | El volumen se desvanece linealmente entre RollOffMinDistance y RollOffMaxDistance. Una vez que un usuario alcanza RollOffMaxDistance, el audio se silencia. |
| InverseTapered | El volumen sigue el modelo inverso cuando está cerca de RollOffMinDistance y el modelo cuadrático lineal cuando un usuario está cerca de RollOffMaxDistance. El audio se aproxima al silencio en el punto de distancia máxima. |
| LinearSquare | El volumen se desvanece entre RollOffMinDistance y RollOffMaxDistance con una relación cuadrática lineal. El audio se aproxima al silencio en el punto de distancia máxima. |
PlaybackSpeed
La propiedad PlaybackSpeed te permite determinar la velocidad a la que se reproduce tu audio. Por ejemplo, si estableces el PlaybackSpeed en un valor de 2, tu audio se reproducirá el doble de rápido y una octava más alto en tono. De manera similar, si lo estableces en un valor de 0.5, tu audio se reproducirá el doble de lento y una octava más bajo en tono.
| PlaybackSpeed = 0.5 | PlaybackSpeed = 1.0 | PlaybackSpeed = 2.0 |
TimePosition
La propiedad TimePosition muestra, en segundos, qué posición dentro de la muestra de audio está escuchando actualmente un usuario. Esta propiedad es útil para reproducir solo una sección de la muestra de audio, o para activar un evento que ocurra una vez que el audio alcance una posición específica. Por ejemplo, el siguiente código hace que un emisor de partículas emita una partícula de anillo blanco sobre una parte dentro de un rango de tiempo limitado de una pista de audio.
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- Crear una nueva parte
local part = Instance.new("Part")
part.Anchored = true
part.Color = Color3.new(0.75, 0.2, 0.5)
part.Size = Vector3.new(2, 1, 2)
part.Material = Enum.Material.Neon
part.Position = Vector3.new(0, 4, 0)
part.Parent = Workspace
-- Crear una attachment en la parte
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- Crear un emisor de partículas en la attachment
local emitter = Instance.new("ParticleEmitter")
emitter.Rate = 5
emitter.Lifetime = NumberRange.new(1.5, 1.5)
emitter.Texture = "rbxassetid://1266170131"
emitter.Speed = NumberRange.new(1, 1)
emitter.Size = NumberSequence.new{NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(1, 6)}
emitter.Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.25, 0), NumberSequenceKeypoint.new(1, 1)}
emitter.Orientation = Enum.ParticleOrientation.VelocityPerpendicular
emitter.Parent = attachment
-- Crear un sonido en la attachment
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- Reproducir el sonido
sound:Play()
-- Comenzar a verificar si el emisor debe estar habilitado
RunService.Heartbeat:Connect(function()
-- Habilitar el emisor dentro de un rango de tiempo del audio; de lo contrario, deshabilitarlo
emitter.Enabled = sound.TimePosition >= 5 and sound.TimePosition < 20
end)
Looped
La propiedad Looped te permite repetir audio después de que ha terminado de reproducirse. Cuando se establece en true, el audio del objeto Sound se reproduce nuevamente. Esto es útil para aplicar al audio de fondo para asegurarte de que tu experiencia nunca tenga silencios abruptos.
Objetos de sonido de guion
Reproducir audio contextualmente
Aparte de la reproducción automática de audio a través de la propiedad Playing del objeto Sound, puedes reproducir audio contextualmente desde un LocalScript llamando a Play() en el objeto Sound correspondiente. Por ejemplo:
local Workspace = game:GetService("Workspace")local sound = Instance.new("Sound")sound.SoundId = "rbxassetid://9120386436"sound.Looped = truesound.Parent = Workspacesound:Play()
Alternativamente, si el lugar contará con múltiples pistas, puedes reproducir una pista específica desde un LocalScript:
local SoundService = game:GetService("SoundService")local musicTrack = SoundService:FindFirstChild("LucidDream")if not musicTrack.IsPlaying thenmusicTrack:Play()end
Reproducir audio de interfaz
Puedes reproducir audio de interfaz para objetos GuiObjects como botones conectando un objeto Sound al evento listener Activated. Esto te permite proporcionar retroalimentación auditiva a los usuarios, como cuando lo pasan por encima o lo presionan.
Para reproducir el audio de un objeto Sound cuando un usuario activa un TextButton o ImageButton:
- En la ventana Explorer, coloca el cursor sobre el TextButton o ImageButton, luego haz clic en el botón ⊕. Se muestra un menú contextual.
- En el menú, inserta un LocalScript o un Script con el RunContext establecido en Enum.RunContext.Client.
- Pega el siguiente código en el script, luego reemplaza SOUND_NAME con el nombre de un objeto Sound ubicado dentro del contenedor SoundService.
local SoundService = game:GetService("SoundService")
local button = script.Parent
local sound = SoundService:FindFirstChild("SOUND_NAME")
if not sound.isLoaded then
sound.Loaded:Wait()
end
local function onButtonActivated()
if sound and not sound.IsPlaying then
sound:Play()
end
end
button.Activated:Connect(onButtonActivated)