Además de la música de fondo, el audio en el juego puede mejorar la experiencia de un jugador. Este tutorial cubrirá dos formas de sonidos en el juego: posicional y sueno de retroalimentación .
Para el primer ejemplo, crearás un sonido posicional para una cascada. En el segundo ejemplo, se usará un script para reproducir un jingle cuando los jugadores tocan un coleccionable.
Sonidos de posición
Cuando un objeto de sonido es padre de una parte o conexión, se vuelve posicional. El audio se emitirá desde su ubicación y crecerá más volumen cuando los jugadores se acerquen, como en el caso de esta cascada.
Crear un Sonido
En cualquier parte deseada, crea un nuevo objeto de sonido nombrado WaterfallSound .
En las propiedades, encuentra SoundId y cambia a este ambiente de cascada: rbxassetid://6564308795 .
Para reproducir continuamente cuando el juego comienza, alterna Jugando y Reproduciendo para estar en .
Prueba el juego para confirmar que escuchas la ambiente de la cascada.
Ajustar la distancia de sonido
Nota al probar, el audio se reproducirá inmediatamente, incluso si el jugador está lejos del objeto. Usando las propiedades de desplazamiento, puedes modificar la distancia en la que un jugador escucha un sonido para crear efectos de desaparición.
Cambia el RollOffMaxDistance a 30 . Esta propiedad se mide en studs.
Para un desvanecimiento más suave, cambia el Modo de desplazamiento a InverseTapered . Esto hace que el sonido se sienta menos brusco.
Ejecuta el proyecto. Nota cómo el sonido solo se escucha cerca del objeto.
Ajuste fino del desplazamiento
Dependiendo de sus necesidades, puede que desee ajustar diferentes propiedades para efectos especiales o realismo aumentado. Consulte las siguientes propiedades:
- RollOffMinDistance - Distancia mínima (en studs) un sonido disminuye en volumen.
- SoundGroup - Se utiliza para ajustar y equilibrar el volumen entre grupos de sonidos, como música de fondo y efectos de juego.
Sonidos de retroalimentación
Los sonidos se pueden reproducir con scripts. Puedes enlazar sonidos con eventos, como los jugadores que tocan una parte o interactúan con un menú. Aquí, crearás un script que reproducirá un tacón cuando los jugadores tocan objetos recolectables.
Configurar coleccionables
El resto de este tutorial usa un aplicación de modeladopre-hecho. Este modelo incluye partes y scripts para que los jugadores recolecten gemas.
- En un navegador, abra la página Modelo de Gemas Recolectables y haga clic en el botón Obtener .
- En Studio, ve a la pestaña Ver y haz clic en la Caja de herramientas.
- En la ventana de la caja de herramientas, haz clic en el botón Inventario . Luego, asegúrate de que el menú desplegable esté en Mis modelos .
- Seleccione el modelo Gemas recolectables para agregarlo al juego.
En Servicio de sonido , crea un nuevo sonido llamado FeedbackSound .
En FeedbackSound, establece el SoundId a rbxassetid://4110925712 - el SonidoId de la simple descarga de campana descargada de la página de modelos.
Configurar el script
En StarterPlayer > StarterPlayerScripts , crea un nuevo script local llamado CollectableSounds .
El código a continuación ejecutará la función partTouched cuando el jugador toque un coleccionable. Copia el código en tu 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 un objeto a la función de toque para que funcione en todas las partesfor objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
Reproducir un Sonido
Cree una variable para Servicio de sonido , luego otra variable para almacenar el sonido de la retroalimentación .
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)Para reproducir el timbre, encuentra la función partTouched . En la declaración if, llama feedbackSound:Play() para reproducir el sonido.
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- Reproduce el sonido, una vez terminado, destruye el objetoif humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endendPrueba el juego para confirmar que cuando el jugador toca un coleccionable, ambos desaparecen y suena un sonido.