Objetos sonoros

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

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çãoComo o áudio é emitidoComo 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:

  1. Na janela Explorer , selecione Serviço de Som .

  2. Na janela Propriedades , navegue até a propriedade Áudio Volume , então defina-a como Ativada .

  3. Na janela Explorer , passe o mouse sobre um BasePart, então clique no botão ⊕. Um menu contextual é exibido.

  4. Do menu, insira um Som .

  5. Na janela Propriedades , navegue até a propriedade SoundId e insira um ID de áudio válido audio asset ID.

  6. (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:

  1. 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.
  2. Do menu, insira um Som .
  3. Na janela Propriedades , navegue até a propriedade SoundId e insira um ID de áudio válido audio asset ID.
  4. (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:

  1. Na janela Explorer , passe o mouse sobre Serviço de Som , então clique no botão ⊕. Um menu contextual é exibido.
  2. Do menu, insira um Som .
  3. Na janela Propriedades , navegue até a propriedade SoundId e insira um ID de áudio válido audio asset ID.
  4. (Opcional) Se você quiser que o áudio comece a tocar quando a experiência começar, habilite a propriedade Jogando .
  5. (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:

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 DesrolagemDescriçã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.
LinearO volume desaparece linearmente entre RollOffMinDistance e RollOffMaxDistance . Uma vez que um usuário chegue ao RollOffMaxDistance, o áudio fica em silêncio.
InverseTaperedO 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.
LinearSquareO 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.

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 = true
sound.Parent = Workspace
sound: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 then
musicTrack: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 :

  1. Na janela Explorer, passe o mouse sobre o TextButton ou ImageButton, então clique no botão ⊕. Um menu contextual é exibido.
  2. Do menu, insira um LocalScript ou um Script com RunContext definido para Enum.RunContext.Client .
  3. 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)