A reprodução de áudio ocorre através de Sound objetos que emitem áudio dentro de uma experiência. O Roblox atribui a cada ativo de áudio um ID exclusivo que você pode atribuir a Sound objetos para reproduzir um efeito de som específico ou uma faixa de música. Você pode definir este áudio para reproduzir automaticamente no tempo de execuçãoou ativá-lo para jogar a partir de scripts.
Para modificar a reprodução de vários Sound objetos, você pode atribuí-los a um grupo de som e controlar o volume de todo o grupo, bem como aplicar efeitos dinâmicos.
Criando Objetos de Som
Existem três locais em que você pode criar um Sound Objeto, e cada local determina como o áudio emite e o volume muda em relação à posição do usuário dentro da experiência.
Ubicación | Cómo emite el audio | Cómo cambia el volumen |
---|---|---|
Hijo de un bloques, 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 el exterior desde el único punto de conexión o el centro de la parte. | El volumen cambia dependiendo de la distancia entre el oyente de sonido del usuario y la posición del accesorio / parte. |
Dentro de SoundService o Workspace . | Emite audio a lo largo de la experiencia. | El volumen y la posición del panel siguen siendo los mismos independientemente de la posición o rotación del oyente del usuario. |
Áudio Posicional
Áudio posicional é áudio que os usuários só podem ouvir perto de uma posição específica dentro da experiência. Existem dois tipos de áudio posicional que você pode usar: volumétrico e originalponto.
Volumétrico
O áudio volumétrico é a opção de áudio mais realista, pois muda dinamicamente dependendo da posição do usuário na originalde áudio. Por exemplo, se o usuário estiver dentro de BasePart com um Objetoinfantil Sound, o áudio será reproduzido ao redor do usuário, semelhante à música em fones de ouvido tocando no mesmo volume em cada altofalante. Quando o usuário sai da peça, o áudio diminui gradualmente de volume e se torna mais direcional por altofalante, movendo-se ao redor da cabeça do usuário quando o ouvinte gira. Para informações sobre as propriedades que controlem o quão alto o seu áudio está em diferentes distâncias da peça, consulte RollOffMinDistance e RollOffMaxDistance.
O tamanho do BasePart também afeta o volume do áudio, pois o maior BaseParts produz uma área mais ampla na qual os usuários podem ouvir o áudio e quando um usuário se afasta de um grande BasePart , o volume diminui mais lentamente. O exemplo a seguir mostra um BasePart que é o tamanho de uma cidade com um Sound objeto tocando áudio ambiente. Os usuários A e B experimentam o áudio de forma diferente: o usuário B está mais perto do grande BasePart , e eles geralmente ouvem o áudio em torno do mesmo volume em ambos os alto-falantes. Por outro lado, o usuário A está mais longe da cidade, então o áudio que eles ouvem é mais silencioso e mais direcional que o usuário B, tocando em volume diferente em cada um de seus alto-falantes.
O á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 show ou zonas de ambiente como chuva. Quando você experimenta colocando um objeto Sound em BaseParts de diferentes tamanhos e posições dos usuários, você pode ouvir o quão imersivo o áudio volumétrico pode ser.
Para criar um objeto Sound para áudio volumétrico:
Na janela Explorer , selecione SoundService .
Na janela Properties , navegue até a propriedade VolumetricAudio e defina-a como Enabled .
Na janela Explorer , passe o mouse sobre um BasePart , e clique no botão A. Um menu contextual é exibido.
Do menu, insira um som .
Na janela Propriedades , navegue até a propriedade SoundId e insira um ID de ativo de áudio válido.
(Opcional) Se você quiser que o áudio comece a tocar quando a experiência começar, ative a propriedade Playing .
Fonte de Ponto
Ao contrário do áudio volumétrico, o áudio de fonte pontual só é emitido a partir de uma única originalpontual. Este tipo de áudio é útil para explosões, ruídos de impacto, dispositivos eletrônicos e diálogos.
Para criar um objeto Sound para áudio de fonte de ponto:
Na janela Explorer , passe o mouse sobre um anexo, treliça, Parte / fatiaou Parte / fatiade canto e 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 ativo de áudio válido.
(Opcional) Se você quiser que o áudio comece a tocar quando a experiência começar, ative a propriedade Playing .
Áudio de fundo
O áudio de fundo toca no mesmo volume, não importa onde o usuário viaje dentro de sua experiência. Este tipo de áudio é útil para músicas que você deseja reproduzir para os usuários, especialmente quando você deseja criar uma trilha sonora de vários arquivos de áudio.
É melhor manter todos os Sound objetos para áudio de fundo em um único local da Workspace para fins organizacionais, conforme você continua adicionando e editando áudio dentro de sua experiência. O exemplo a seguir armazena o novo Sound objeto no contêiner SoundService, pois este serviço determina como Sound objetos funcionam em experiências.
Para criar um objeto Sound para áudio de fundo:
Na janela Explorer , passe o mouse sobre SoundService e 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 ativo de áudio válido.
(Opcional) Se você quiser que o áudio comece a tocar quando a experiência começar, ative a propriedade Playing .
(Opcional) Se este Sound objeto for a única música que você deseja reproduzir no local, ative sua propriedade Looped .
Personalizando Objetos de Som
Sound propriedades do objeto funcionam juntas para influenciar como os usuários experimentam seu áudio, como:
- Quão alto eles ouvem áudio específico individualmente e em relação um ao outro (Volume ).
- Como eles percebem o volume quando se afastam da fonte de áudio (RollOffMinDistance, RollOffMaxDistance e RollOffMode )
- Qual parte do áudio eles podem ouvir (TimePosition ).
- Quão rápido e em que pitch eles o ouvem (PlaybackSpeed ).
- Se o áudio for reproduzido automaticamente após a conclusão (Looped ).
Volume
A propriedade Volume permite que você defina o volume do seu áudio em qualquer lugar de 0 (silêncio) para 10 (booming). Se você quiser alterar o volume de vários Sound objetos de uma só vez, coloque-os em um grupo de som .
Distância de RolagemMínima e Distância de RolagemMáxima
RollOffMinDistance e RollOffMaxDistance determinam a faixa de como um usuário percebe o volume do áudio posicional. Para áudio volumétrico, RollOffMinDistance é a distância mínima em studs que o áudio começa a diminuir de volume quando o ouvinte do cliente se afasta do pai BasePart e RollOffMaxDistance propriedade é a distância máxima em studs que o ouvinte de um cliente pode ouvir o áudio da superfície do Objeto.
Para áudio de fonte de ponto, RollOffMinDistance e RollOffMaxDistance funcionam de forma semelhante ao áudio volumétrico, mas a distância de deslocamento controlada por essas propriedades não envolve o Objeto, apenas influencia a distância para fora da originalde ponto.
Modo Desligado
A propriedade RollOffMode permite que você decida como o áudio desaparece à medida que a distância entre o ouvinte do usuário e o Sound do Objetopai aumenta. Você pode definir esta propriedade para um dos quatro valores do enum Enum.RollOffMode.
Modo Desactivado | Descripción |
---|---|
Inverse (por defecto) | El volumen inicialmente se desvanece abruptamente de RollOffMinDistance , pero el desvanecimiento del volumen se vuelve más gradual cuanto más cerca está un usuario de alcanzar el RollOffMaxDistance . Una vez que alcanzan el RollOffMaxDistance , el audio cae en silencio. |
Linear | El volumen se desvanece linealmente entre RollOffMinDistance y RollOffMaxDistance . Una vez que un usuario alcanza el RollOffMaxDistance , el audio queda en silencio. |
InverseTapered | El volumen sigue el modelo inverso cuando está cerca de RollOffMinDistance y el modelo cuadrado lineal cuando un usuario está cerca de RollOffMaxDistance . El audio se acerca al silencio en el punto de distancia máxima. |
LinearSquare | El volumen se desvanece entre RollOffMinDistance y RollOffMaxDistance con una relación cuadrada lineal. El audio se acerca al silencio en el punto de distancia máxima. |
Velocidade de reprodução
A propriedade PlaybackSpeed permite que você determine a velocidade das suas reproduções de áudio. Por exemplo, se você definir PlaybackSpeed como um valor de 2 , seu áudio tocará duas vezes mais rápido e uma oitava mais alto. Da mesma forma, se você definir como um valor de 0.5 , seu áudio tocará duas vezes mais devagar e uma oitava mais baixo.
PlaybackSpeed = 0,5 | PlaybackSpeed = 1,0 | PlaybackSpeed = 2,0 |
Posição de Tempo
A propriedade TimePosition exibe, em segundos, qual a posição dentro da amostra de áudio que um usuário está ouvindo atualmente. Essa propriedade é útil para reproduzir apenas uma seção da amostra de áudio ou ativar um evento que ocorrerá quando o áudio atingir uma posição específica. Por exemplo, a seguinte amostra de código faz com que um emissor de partículas emita um anel branco sobre uma parte dentro de um intervalo de tempo limitado de uma faixa de áudio.
local RunService = game:GetService("RunService")
-- 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
-- Crie 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
-- Reproduzir o som
sound:Play()
-- Comece a verificar se o emissor deve ser ativado
RunService.Heartbeat:Connect(function()
-- Ative o emissor dentro de um intervalo de tempo do áudio; caso contrário, desative-o
if sound.TimePosition >= 5 and sound.TimePosition < 20 then
emitter.Enabled = true
else
emitter.Enabled = false
end
end)
Loopado
A propriedade Looped permite que você repita o áudio depois que ele terminar de tocar. Quando definido como true, o áudio do ObjetoSound toca novamente. Isso é útil para aplicar ao áudio de fundo para garantir que sua experiência nunca tenha um silêncio abrupto.
Programando Objetos de Som
Reproduzindo Áudio Contextualmente
Além de reproduzir áudio automaticamente através da propriedade Sound do ObjetoPlaying, você pode reproduzir áudio contextualmente de um LocalScript chamando Play() no ObjetoSound. Por exemplo:
local sound = Instance.new("Sound")sound.SoundId = "rbxassetid://9120386436"sound.Looped = truesound.Parent = workspacesound:Play()
Alternativamente, se o lugar tiver 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 thenmusicTrack:Play()end
Reproduzindo áudio da interface
Você pode reproduzir áudio de interface para GuiObjects, como botões e rótulos, conectando um objeto Sound ao ouvidor de eventos Activated do GuiObject. Isso permite que você forneça feedback auditivo aos usuários, como quando eles passam o mouse sobre um GuiObject ou selecioná-lo.
Para reproduzir o áudio de um Sound Objetoquando um usuário ativa um GuiObject :
- Na janela Explorer , passe o mouse sobre um GuiObject e clique no botão ⊕. Um menu contextual é exibido.
- Do menu, insira um LocalScript .
- Cole o seguinte código no script e substitua SOUND_NAME pelo nome do seu Objetode som.
local SoundService = game:GetService("SoundService")
local button = script.Parent
local sound = SoundService:FindFirstChild("SOUND_NAME")
local function onButtonActivated()
if sound then
sound:Play()
end
end
button.Activated:Connect(onButtonActivated)