Sons do Jogo

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

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

  1. Em qualquer parte desejada, crie um novo Sound objeto chamado WaterfallSound .

  2. Na propriedade, SoundId e alterá-lo para esta ambiência de cachoeira: rbxassetid://6564308795 .

  3. Para reprodução contínua quando o jogo começar, ative Jogar e Looped para estar em .

  4. 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.

  1. Altere o RollOffMaxDistance para 30 . Essa propriedade é medida em studs.

  2. Para um desvanecimento mais suave, altere o RollOffMode para InverseTapered . Isso faz com que se sinta menos imediatamente aproximar do som.

  3. 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.

  1. 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.
  1. Em SoundService , crie um novo Som chamado FeedbackSound .

  2. In FeedbackSound, set the SoundId to rbxassetid://4110925712 - the SoundId of the simple chime downloaded from the model page.

Configurar o Script

  1. In StarterPlayer > StarterPlayerScripts , create a new local script named CollectableSounds .

  2. 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.Objects
    local objectsArray = pickupObjects:GetChildren()
    local function partTouched(otherPart, objectPart)
    local whichCharacter = otherPart.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    if humanoid and objectPart.CanCollide == true then
    end
    end
    -- Vincula cada parte de objeto à função de toque para que funcione em todas as peças
    for objectIndex = 1, #objectsArray do
    local objectPart = objectsArray[objectIndex]
    objectPart.Touched:Connect(function(otherPart)
    partTouched(otherPart, objectPart)
    end)
    end

Reproduzir um Som

  1. Crie uma variável para SoundService e, em seguida, outra variável para armazenar o som de feedback .


    local pickupObjects = workspace.Collectables.Objects
    local objectsArray = pickupObjects:GetChildren()
    local SoundService = game:GetService("SoundService")
    local feedbackSound = SoundService:FindFirstChild("FeedbackSound")
    local function partTouched(otherPart, objectPart)
  2. 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.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    -- Toque o som, uma vez terminado, destrua o Objeto
    if humanoid and objectPart.CanCollide == true then
    feedbackSound:Play()
    end
    end
  3. Teste o jogo para confirmar que quando o jogador toca um coletável, ambos desaparecem e soam.