Além da música de fundo, o áudio do jogo pode melhorar a experiência de um jogador. Este tutorial cobrirá duas formas de sons do jogo: posicional e comentários .
Para o primeiro exemplo, você criará um som posicional para uma cachoeira. No segundo exemplo, um script será usado para tocar um jingle quando os jogadores tocarem um coletável.
Sons Posicionais
Quando um objeto Som é ligado a uma parte ou anexo, ele se torna posicional. O áudio será emitido de sua localização e crescerá mais alto à medida que os jogadores se aproximarem, como no caso desta cachoeira.
Criar um Som
Em qualquer parte desejada, crie um novo Sound objeto chamado WaterfallSound .
Na propriedade, SoundId e alterá-lo para esta ambiência de cachoeira: rbxassetid://6564308795 .
Para reprodução contínua quando o jogo começar, ative Jogar e Looped para estar em .
Teste o jogo para confirmar que você ouve a ambiência da cachoeira.
Ajustar distância de som
Notice quando testar, o áudio é imediatamente tocado, mesmo que o jogador esteja longe do Objeto. Usando as propriedades de rolagem, você pode modificar a distância em que um jogador ouve um som para criar efeitos de desvanecimento.
Altere o RollOffMaxDistance para 30 . Essa propriedade é medida em studs.
Para um desvanecimento mais suave, altere o RollOffMode para InverseTapered . Isso faz com que se sinta menos imediatamente aproximar do som.
Execute o projeto. Observe como o som só é ouvido perto do Objeto.
Configuração Fina do Roll Off
Dependendo de suas necessidades, você pode querer ajustar diferentes propriedades para efeitos especiais ou realismo aumentado. Veja as seguintes propriedades:
- RollOffMinDistance - Distância mínima (em studs) um som diminui em volume.
- SoundGroup - Usado para ajustar e balancear o volume entre grupos de sons, como música de fundo e efeitos de jogo.
Sons de Feedback
Sons podem ser tocados em comando usando scripts. Você pode vincular sons a eventos, como jogadores tocando uma parte ou interagindo com um menu. Aqui, você criará um script que toca uma sineta sempre que os jogadores tocarem objetos coletáveis.
Configurar Coletáveis
O resto deste tutorial usa um modelo pré-feito. Este modelo inclui peças e scripts para que os jogadores possam coletar gemas.
- In a navegador, open the Modelo de Gemas Colecionáveis page, and click the Get button.
- In Studio, go to the Ver tab and click on the Caixa de Ferramentas .
- Na janela da Caixa de Ferramentas, clique no botão Inventário . Em seguida, certifique-se de que a lista suspensa esteja em Meus Modelos .
- Selecione o modelo Gemas Colecionáveis para adicioná-lo ao jogo.
Em SoundService , crie um novo Som chamado FeedbackSound .
In FeedbackSound, set the SoundId to rbxassetid://4110925712 - the SoundId of the simple chime downloaded from the model page.
Configurar o Script
In StarterPlayer > StarterPlayerScripts , create a new local script named CollectableSounds .
O código abaixo irá executar a função partTouched sempre que o jogador tocar um coletável. Copie o código em seu script.
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")if humanoid and objectPart.CanCollide == true thenendend-- Vincula cada parte de objeto à função de toque para que funcione em todas as peçasfor objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
Reproduzir um Som
Crie uma variável para SoundService e, em seguida, outra variável para armazenar o som de feedback .
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)Para tocar o sino, encontre a função partTouched . Within the if statement, call feedbackSound:Play() to play the sound.
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- Toque o som, uma vez terminado, destrua o Objetoif humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endendTeste o jogo para confirmar que quando o jogador toca um coletável, ambos desaparecem e soam.