Neben der Hintergrundmusik kann in-Game-Audio die Erlebniseines Spieler:inverbessern. Dieses Tutorial wird zwei Arten von In-Game-Sounds abdecken: positional und Feedback -Sounds.
Für das erste Beispiel erstellen Sie einen positorischen Sound für einen Wasserfall. Im zweiten Beispiel wird ein Skript verwendet, um ein Jingle abzuspielen, wenn Spieler einen Sammelbaum berühren.
Positionierte Sounds
Wenn ein Klang -Objekt mit einem Teil oder einer Anhangverknüpft wird, wird es positional. Audio wird von seinem Standort ausgestrahlt und wird lauter, wenn Spieler näher kommen, wie im Fall dieses Wasserfalls.
Einen Sound erstellen
In einem beliebigen Teil erstellen Sie ein neues Klang-Objekt mit dem Namen WasserfallSound .
In den Eigenschaften finden Sie SoundId und ändern Sie es in diese Wasserfall-Umgebung: rbxassetid://6564308795 .
Für die kontinuierliche Wiedergabe, wenn das Spiel beginnt, schalten Sie Spielen und Looped um, um auf on zu sein.
Testen Sie das Spiel, um sicherzustellen, dass Sie die Wasserfall-Atmosphäre hören.
Sound-Distanz anpassen
Beachten Sie beim Test, dass das Audio sofort abgespielt wird, auch wenn der Spieler weit vom Objekt entfernt ist. Mit den Roll-Off-Eigenschaften können Sie die Entfernung modifizieren, mit der ein Spieler ein Sound hört, um Verblassungseffekte zu erstellen.
Ändere die RollOffMaxDistance zu 30 . Diese Eigenschaft wird in Studs gemessen.
Für eine sanftere Verblasst, ändern Sie die RollOffMode zu InverseTapered . Dies macht das Heranfahren des Sounds weniger plötzlich.
Führen Sie das Projekt. Beachten Sie, wie der Sound nur in der Nähe des Objekts gehört wird.
Feine Anpassung des Roll Off
Abhängig von Ihren Bedürfnissen möchten Sie möglicherweise verschiedene Eigenschaften für spezielle Effekte oder erhöhten Realismus anpassen. Siehe die folgenden Eigenschaften:
- RollOffMinDistance - Die minimale Entfernung (in Studs) eines Sounds verringert sich in der Lautstärke.
- SoundGroup - Wird verwendet, um die Lautstärke zwischen Gruppen von Sounds anzupassen und auszubalancieren, wie Hintergrundmusik und In-Game-Effekte.
Feedback-Sounds
Sounds können mit Skripten abgespielt werden. Du kannst Sounds mit Ereignissen verknüpfen, wie wenn Spieler ein Teil berühren oder mit einem Menü interagieren. Hier erstellen du ein Skript, das eine Glocke spielt, wenn Spieler ein sammelbares Objekt berühren.
Sammlerables einrichten
Der Rest dieses Tutorials verwendet ein vordefiniertes Modell. Dieses Modell enthält Teile und Skripte, damit Spieler Edelsteine sammeln können.
- In einem Browser, öffnen Sie die Sammelbare Edelsteine-Modell Seite und klicken Sie auf die Sammelbare Edelsteine-Schaltfläche.
- In Studio, gehen Sie auf die Ansicht-Registerkarte und klicken Sie auf die Toolbox.
- In dem Toolbox-Fenster, klicken Sie auf die Schaltfläche Inventar . Dann stellen Sie sicher, dass das Dropdown auf My Models ist.
- Wähle das Sammelbare Edelsteine -Modell, um es in das Spiel einzufügen.
In SoundService erstellen Sie ein neues Sound mit dem Namen FeedbackSound .
In FeedbackSound, setzen Sie die SoundId auf rbxassetid://4110925712 - die SoundId der einfachen Chime, die vom Modell-Seite heruntergeladen wurde.
Konfigurieren Sie das Skript
In StarterPlayer > StarterPlayerScripts erstellt ein neues lokales Skript mit dem Namen CollectableSounds .
Der Code unten wird die partTouched Funktion ausführen, wenn der Spieler einen Sammelbaren berührt. Kopiere den Code in deinem Skript, das. PL: die Skripts.
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-- Bindet jedes Objekt an die Touch-Funktion, damit es auf allen Objekten funktioniertfor objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
Ein Sound abspielen
Erstellen Sie eine Variable für SoundService und dann eine Variable, um den Feedback-Sound zu speichern .
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)Um den Chime zu spielen, finden Sie die Funktion partTouched . Within the if-Anweisung, rufen Sie feedbackSound:Play() auf, um den Sound zu spielen.
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- Spiele den Ton, einmal fertig, zerstöre das Objektif humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endendTesten Sie das Spiel, um zu bestätigen, dass, wenn der Spieler ein Sammlerstück berührt, beide verschwinden und ein Sound spielen.