En plus de la musique de fond, l'audio du jeu peut améliorer l'expérience d'un joueur. Ce tutoriel couvrira deux formes de sons dans le jeu : les sons «posicionaux» et «Feedback».
Pour l'exemple de création d'un son positional pour une cascade, vous utiliserez le premier script pour jouer un jingle lorsque les joueurs touchent un élément collectable.
Sons positionnels
Lorsqu'un objet son est associé à une partie ou à une point d'attache, il devient positionnel. L'audio émettra de son emplacement et grandira plus fort que les joueurs s'en approchent, comme dans le cas de cette cascade.
Créer un son
Dans n'importe quelle partie souhaitée, créez un nouveau son objet nommé WaterfallSound .
Dans les propriétés, trouvez SoundId et changez-le en cette ambiance de cascade : rbxassetid://6564308795 .
Pour la lecture continue lorsque le jeu démarre, activez Jouer et Bouclier pour être sur.
Testez le jeu pour confirmer que vous entendez l'ambiance de la cascade.
Ajuster la distance sonore
Remarquez lors du test, l'audio s'écoute immédiatement, même si le joueur est loin de l'objet. En utilisant les propriétés de défilement, vous pouvez modifier la distance à laquelle un joueur entend un son pour créer des effets de dégradé.
Changez le RollOffMaxDistance à 30 . Cette propriété est mesurée en studs.
Pour un effet plus doux, changez le Mode de défilement en InverseTapered . Cela rend l'approche du son moins soudaine.
Exécutez le projet. Remarquez comment le son n'est entendu que près de l'objet.
Fine Tuning le Roll Off
En fonction de vos besoins, vous voudrez peut-être ajuster différentes propriétés pour des effets spéciaux ou un réalisme accru. Voir les propriétés suivantes :
- RollOffMinDistance -Distance minimale (en studs) un son se réduit en volume.
- SoundGroup - Utilisé pour ajuster et équilibrer le volume entre les groupes de sons, comme la musique de fond et les effets dans le jeu.
Avis
Les sons peuvent être joués à partir des scripts. Vous pouvez lier les sons à des événements, tels que les joueurs qui touchent un objet collectable ou interagissent avec un menu. Ici, vous créerez un script qui joue une cloche chaque fois que les joueurs touchent un objet collectable.
Configurer les collectables
Le reste de ce tutoriel utilise un modèlisationprédéfini. Ce modèle inclut des parties et des scripts afin que les joueurs puissent collecter des gemmes.
- Dans un navigateur, ouvrez la page modèle de gemmes collectables, et cliquez sur le bouton obtenir .
- Dans Studio, allez dans l'Affichage onglet et cliquez sur la Boîte à outils.
- Dans la fenêtre de la boîte à outils, cliquez sur le bouton Inventaire. Ensuite, assurez-vous que le menu déroulant est sur Mes modèles.
- Sélectionnez le modèle Collectable Gems pour l'ajouter au jeu.
Dans SoundService , créez un nouveau son nommé FeedbackSound .
Dans FeedbackSound, définissez le SoundId à rbxassetid://4110925712 - le SoundId du simple chime téléchargé de la page de modèle.
Configurer le script
Dans StarterPlayer > StarterPlayerScripts , créez un nouveau script local nommé CollectableSounds .
Le code ci-dessous exécutera la fonction partTouched chaque fois que le joueur touchera un objet de collecte. Copiez le code dans votre 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-- Lie chaque partie d'objet à la fonction de touche pour qu'elle fonctionne sur toutes les partiesfor objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
Jouer un son
Créez une variable pour SoundService , puis une autre variable pour stocker le son de retour .
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)Pour jouer de la cloche, trouvez la fonction partTouched. Dans la déclaration if, appelez feedbackSound:Play() pour jouer le son.
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- Jouez le son, une fois terminé, détruisez l'objetif humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endendTestez le jeu pour confirmer que lorsque le joueur touche un objet de collection, il disparaît et émet un son.