A reprodução de áudio ocorre através de objetos Sound que emitem áudio dentro de uma experiência.O Roblox atribui a cada recurso de áudio um ID único que você pode atribuir a Sound.Você pode configurar este áudio para tocar automaticamente em tempo de execução ou ativá-lo para tocar a partir de scripts.
Para modificar a reprodução de vários objetos , você pode atribuí-los a um grupo de som e controlar o volume de todo o grupo, bem como aplicar efeitos dinâmicos .
Criar objetos de som
Existem três locais em que você pode criar um ObjetoSound e cada local determina como o áudio é emitido e as mudanças de volume em relação à posição do usuário dentro da experiência.
Localização | Como o áudio é emitido | Como as mudanças de volume |
---|---|---|
Filho de um bloco, esfera ou cilindro BasePart . | O áudio é emitido para fora de toda a superfície da peça. | Mudanças de volume dependendo da distância entre o ouvinte de som do usuário e a posição da peça, bem como de seu tamanho. |
Filho de um Attachment , MeshPart , TrussPart , WedgePart ou CornerWedgePart . | O áudio é emitido para fora do ponto de fixação único ou do centro da peça. | Mudanças de volume dependendo da distância entre o ouvinte de som do usuário e a posição do anexo/parte. |
Dentro de SoundService ou Workspace. | Áudio é emitido durante toda a experiência. | A posição do volume e da panela permanece a mesma, independentemente da posição ou da rotação do ouvinte de som do usuário. |
áudioposicional
Áudio posicional é áudio que os usuários só podem ouvir perto de uma posição específica dentro da experiência.Há dois tipos de áudio posicional que você pode utilizar: volumétrico e originalponto.
Volumetrônico
O áudio volumétrico é a opção de áudio mais realista, pois muda dinamicamente dependendo da posição do usuário para a originalde áudio.Por exemplo, se o usuário estiver dentro de um BasePart com um Objetofilho Sound , o áudio tocará em torno do usuário, semelhante à música em fones de ouvido tocando no mesmo volume em cada altofalante.Quando o usuário sai da parte, o áudio diminui gradualmente de volume e se torna mais direcional por alto-falante, movendo-se ao redor da cabeça do usuário quando seu ouvinte gira.Para obter informações sobre as propriedades que controlam o quão alto o seu áudio é em diferentes distâncias da peça, veja RollOffMinDistance e RollOffMaxDistance.
O tamanho do BasePart também afeta o volume do áudio, pois os maiores BaseParts produzem uma área maior em que os usuários podem ouvir o áudio e quando um usuário navega longe de um grande BasePart, o volume diminui mais lentamente.O seguinte exemplo mostra um BasePart que é o tamanho de uma cidade com um objeto Sound tocando áudio ambiente.Os usuários A e B experimentam o áudio de forma diferente: o usuário B está mais próximo do grande BasePart, e eles ouvem principalmente o áudio com a mesma intensidade em ambos os alto-falantes.Por outro lado, o usuário A está mais longe da cidade, então o áudio que ele ouve é mais silencioso e mais direcional do que o usuário B, tocando em diferentes níveis de volume em cada um de seus alto-falantes.

Áudio volumétrico é útil para qualquer áudio que precise ser imersivo ao redor de um usuário e mudar dinamicamente dependendo da posição do usuário, como um palco de concerto ou zonas de ambiência como chuva.Quando você experimenta colocar um objeto Sound em BaseParts de diferentes tamanhos e posições de usuários, você pode ouvir como o áudio volumétrico imersivo pode ser.
Para criar um objeto Sound volumétrico de áudio:
Na janela Explorer , selecione Serviço de Som .
Na janela Propriedades , navegue até a propriedade Áudio Volume , então defina-a como Ativada .
Na janela Explorer , passe o mouse sobre um BasePart, então clique no botão ⊕. Um menu contextual é exibido.
Do menu, insira um Som .
Na janela Propriedades , navegue até a propriedade SoundId e insira um ID de áudio válido audio asset ID.
(Opcional) Se você quiser que o áudio comece a tocar quando a experiência começar, habilite a propriedade Jogando .
Fonte de ponto
Ao contrário do áudio volumétrico, o áudio de origem de ponto emite apenas de um único ponto original.Esse tipo de áudio é útil para explosões, ruídos de impacto, dispositivos eletrônicos e diálogo.
Para criar um objeto Sound para fonte de áudio de ponto:
- Na janela Explorer , passe o mouse sobre um anexo, Parte / fatia, fatia ou canto de Parte / fatia, então clique no botão ⊕. Um menu contextual é exibido.
- Do menu, insira um Som .
- Na janela Propriedades , navegue até a propriedade SoundId e insira um ID de áudio válido audio asset ID.
- (Opcional) Se você quiser que o áudio comece a tocar quando a experiência começar, habilite a propriedade Jogando .
Áudio de áudio
Áudio de fundo toca com o mesmo volume, não importa onde o usuário viaja dentro da sua experiência.Esse tipo de áudio é útil para música que você deseja tocar para os usuários, especialmente quando você quer criar uma trilha sonora de vários arquivos de áudio.
É melhor manter todos os objetos Sound para áudio de fundo em um único local do Workspace para fins de organização, enquanto você continua adicionando e editando áudio dentro de sua experiência.O seguinte exemplo armazena o novo objeto Sound sob o contêiner SoundService, pois este serviço determina como os objetos Sound jogam em experiências.
Para criar um objeto Sound para áudio de fundo:
- Na janela Explorer , passe o mouse sobre Serviço de Som , então clique no botão ⊕. Um menu contextual é exibido.
- Do menu, insira um Som .
- Na janela Propriedades , navegue até a propriedade SoundId e insira um ID de áudio válido audio asset ID.
- (Opcional) Se você quiser que o áudio comece a tocar quando a experiência começar, habilite a propriedade Jogando .
- (Opcional) Se este objeto Sound for a única faixa que você deseja tocar no local, habilite sua propriedade Loopada .
Personalizar objetos de som
Sound propriedades do objeto trabalham juntas para influenciar como os usuários experimentam seu áudio, como:
- Quão alto eles ouvem áudio específico individualmente e em relação uns aos outros ( Volume ).
- Como eles percebem volume quando se afastam da fonte de áudio ( RollOffMinDistance , RollOffMaxDistance e RollOffMode)
- Que parte do áudio eles podem ouvir ( Posição de Tempo ).
- Quão rápido e em que tom eles ouvem isso ( Velocidade de reprodução ).
- Se o áudio for reproduzido automaticamente após a conclusão ( Repetido ).
Volume
A propriedade Volume permite que você defina o volume do seu áudio em qualquer lugar de 0 (silêncio) a 10 (boom).Se você quiser alterar o volume de vários objetos ao mesmo tempo, encaminhe-os sob um grupo de som .
Distância Máxima de Rolo e Distância Mínima de Rolo
RollOffMinDistance e RollOffMaxDistance determinam o alcance de como um usuário percebe volume de áudio posicional.Para áudio volumétrico, RollOffMinDistance é a distância mínima em studs que o áudio começa a diminuir em volume quando o ouvinte do cliente se afasta do pai BasePart , e a propriedade RollOffMaxDistance é a distância máxima em studs que um ouvinte do cliente pode ouvir o áudio da superfice do Objeto.

Para áudio de fonte pontual, RollOffMinDistance e RollOffMaxDistance funcionam de forma semelhante ao áudio volumétrico, mas a distância de rolagem dessas propriedades não envolve o Objeto, ela apenas influencia a distância a partir do ponto de original.

Modo de Desrolagem
A propriedade RollOffMode permite que você decida como o áudio desaparece à medida que a distância entre o ouvinte do usuário e o ObjetoSound do pai aumenta.Você pode definir essa propriedade para um dos quatro valores do Enum.RollOffMode enum.

Modo de Desrolagem | Descrição |
---|---|
Inverse (padrão) | O volume inicialmente desaparece abruptamente de RollOffMinDistance , mas o desaparecimento do volume se torna mais gradual quanto mais próximo um usuário estiver de alcançar o RollOffMaxDistance.Uma vez que eles cheguem ao RollOffMaxDistance, o áudio fica em silêncio. |
Linear | O volume desaparece linearmente entre RollOffMinDistance e RollOffMaxDistance . Uma vez que um usuário chegue ao RollOffMaxDistance, o áudio fica em silêncio. |
InverseTapered | O volume segue o modelo inverso quando está perto de RollOffMinDistance e o modelo quadrático linear quando um usuário está perto de RollOffMaxDistance .Aproximações de áudio silenciam no ponto de distância máxima. |
LinearSquare | O volume desaparece entre RollOffMinDistance e RollOffMaxDistance com uma relação quadrática linear. As abordagens de áudio silenciam no ponto de distância máxima. |
Velocidade de Reprodução
A propriedade PlaybackSpeed permite que você determine a velocidade em que seu áudio é reproduzido.Por exemplo, se você definir o PlaybackSpeed para um valor de 2 , seu áudio tocará duas vezes mais rápido e uma oitava mais alta em tom.Da mesma forma, se você definir para um valor de 0,5 , o seu áudio tocará duas vezes mais lento e uma oitava mais baixa em tom.
PlaybackSpeed = 0.5 | PlaybackSpeed = 1.0 | PlaybackSpeed = 2.0 |
Posição de Tempo
A propriedade TimePosition exibe, em segundos, que posição dentro da amostra de áudio um usuário está ouvindo no momento.Essa propriedade é útil para tocar apenas uma seção da amostra de áudio ou disparar um evento quando o áudio chegar a uma posição específica.Por exemplo, o seguinte código de amostra causa um emissor de partículas a emitir um anel branco de partículas acima de uma peça dentro de um período de tempo limitado de uma faixa de áudio.
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- Criar uma nova peça
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
-- Crie um anexo na peça
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- Criar um emissor de partículas no anexo
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
-- Crie um som no anexo
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- Reproduza o som
sound:Play()
-- Comece a verificar se o emissor deve ser ativado
RunService.Heartbeat:Connect(function()
-- Ative o emissor dentro de um período de tempo do áudio; caso contrário, desative-o
emitter.Enabled = sound.TimePosition >= 5 and sound.TimePosition < 20
end)
Em loop
A propriedade Looped permite que você repita o áudio depois que ele terminar de tocar.Quando definido para true , o áudio do ObjetoSound toca novamente.Isso é útil para se aplicar a áudio de fundo para garantir que sua experiência nunca tenha silêncio abrupto.
Objetos de som de script
Reproduzir o áudio contextualmente
Além de tocar automaticamente áudio através da propriedade do Objeto, você pode tocar áudio contextualmente de um chamando no Objetocorrespondente.Por exemplo:
local Workspace = game:GetService("Workspace")local sound = Instance.new("Sound")sound.SoundId = "rbxassetid://9120386436"sound.Looped = truesound.Parent = Workspacesound:Play()
Alternativamente, se o local apresentar várias faixas, você pode tocar uma faixa específica de um LocalScript :
local SoundService = game:GetService("SoundService")local musicTrack = SoundService:FindFirstChild("LucidDream")if musicTrack not musicTrack.IsPlaying thenmusicTrack:Play()end
Reproduzir áudio da interface
Você pode tocar o áudio da interface por GuiObjects tal como botões ligando um objeto Sound a o ouvido de evento Activated.Isso permite que você forneça feedback auditivo aos usuários, como quando eles passam por cima ou pressionam ele.
Para tocar o áudio de um ObjetoSound quando um usuário ativa um TextButton ou ImageButton :
- Na janela Explorer, passe o mouse sobre o TextButton ou ImageButton, então clique no botão ⊕. Um menu contextual é exibido.
- Cole o seguinte código no script, então substitua SOUND_NAME pelo nome de um objeto Sound localizado dentro do contêiner 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)