Sons dans le jeu

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

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

  1. Dans n'importe quelle partie souhaitée, créez un nouveau son objet nommé WaterfallSound .

  2. Dans les propriétés, trouvez SoundId et changez-le en cette ambiance de cascade : rbxassetid://6564308795 .

  3. Pour la lecture continue lorsque le jeu démarre, activez Jouer et Bouclier pour être sur.

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

  1. Changez le RollOffMaxDistance à 30 . Cette propriété est mesurée en studs.

  2. Pour un effet plus doux, changez le Mode de défilement en InverseTapered . Cela rend l'approche du son moins soudaine.

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

  1. 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.
  1. Dans SoundService , créez un nouveau son nommé FeedbackSound .

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

  1. Dans StarterPlayer > StarterPlayerScripts , créez un nouveau script local nommé CollectableSounds .

  2. 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.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
    -- Lie chaque partie d'objet à la fonction de touche pour qu'elle fonctionne sur toutes les parties
    for objectIndex = 1, #objectsArray do
    local objectPart = objectsArray[objectIndex]
    objectPart.Touched:Connect(function(otherPart)
    partTouched(otherPart, objectPart)
    end)
    end

Jouer un son

  1. Créez une variable pour SoundService , puis une autre variable pour stocker le son de retour .


    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. 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.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    -- Jouez le son, une fois terminé, détruisez l'objet
    if humanoid and objectPart.CanCollide == true then
    feedbackSound:Play()
    end
    end
  3. Testez le jeu pour confirmer que lorsque le joueur touche un objet de collection, il disparaît et émet un son.