In diesem Abschnitt fügst du dem Spielercharakter Schrittgeräusche hinzu, um das Laufen durch das Level realistischer zu gestalten. Du wirst Sound-Einsätze verwenden, um verschiedene Sounds zu erstellen, die von der Art der Oberfläche abhängen, auf der sich der Spieler bewegt.
Du erstellst Physikalische Materialien, die die Oberflächenarten repräsentieren. Beispielsweise sollten sich Schritte auf Metall anders anhören als auf Stein. Du erstellst außerdem ein benutzerdefiniertes Daten-Asset, das Oberflächen- und Sound-Informationen enthält. Die Verwendung eines Daten-Assets macht es einfacher, in Zukunft mehr Oberflächenarten und Sounds hinzuzufügen, ohne den Blueprint-Code modifizieren zu müssen.
Zuletzt erstellst du eine Funktion in der Blueprint-Funktionsbibliothek, die du bereits im Spiel hast – BPL_FPGame. Diese Funktion ruft wiederum eine Funktion innerhalb des Daten-Assets auf, die den korrekten Sound basierend auf der erkannten Oberfläche zurückgibt.
Bevor du anfängst
Stelle sicher, dass du die Themen verstehst, die in den vorherigen Abschnitten von Künstlerischer Durchlauf für ein Rätselabenteuerspiel und Unreal Engine für neue Nutzer behandelt wurden:
Erstellen von Sound-Einsatz- und Klangdämpfungs-Assets.
Blueprints-Grundlagen, einschließlich der Erstellung von Variablen und Funktionen sowie dem Erstellen und Verbinden von Knoten.
Du wirst mit den folgenden Assets im Beispielprojekt und dem Inhaltspaket arbeiten:
S_Metal-1 Soundwelle
S_Metal-2 Soundwelle
S_Metal-3 Soundwelle
S_Stone-1 Soundwelle
S_Stone-2 Soundwelle
S_Stone-3 Soundwelle
S_DefaultStep-1 Soundwelle
S_DefaultStep-2 Soundwelle
S_DefaultStep-3 Soundwelle
BPL_FPGame Blueprint-Funktionsbibliothek
BP_AdventureCharacter Blueprint
ABP_Unarmed Animationsblueprint
Sound-Einsätze mit Schrittgeräuschen erstellen
Zuerst erstellst du zwei Sound-Einsätze, einen für Schritte auf Metall und einen für Schritte auf Stein.
Zum Erstellen eines Sound-Einsatzes folge diesen Schritten:
Gehe zum Inhaltsbrowser und navigiere zu AdventureGame > Artist > Audio.
Klicke mit der rechten Maustaste im Audio-Ordner, wähle Neuer Ordner und benenne ihn Footsteps.
Klicke mit der rechten Maustaste im Footsteps-Ordner und gehe zu Audio > Sound-Einsatz. Nenne diesen SC_Footsteps_Metal und öffne ihn. In diesem Asset gibt es bereits einen Output-Knoten, der den Sound basierend auf den mit ihm verbundenen Knoten abspielt.
Klicke mit der rechten Maustaste irgendwo im Diagramm und füge einen Wave Player-Knoten hinzu.
Wähle den Wave Player-Knoten aus und benutze das Panel auf der linken Seite, um die Soundwelle in S_Metal-1 zu ändern.
Füge zwei weitere Wave Player-Knoten hinzu und wiederhole die Schritte, um die Soundwelle-Dateien S_Metal-2 und S_Metal-3 auszuwählen, die du in Einrichten deines Projekts und Importieren der Inhalte importiert hast.
Klicke mit der rechten Maustaste in das Diagramm und füge einen Random-Knoten hinzu. Klicke auf Input hinzufügen im Random-Knoten, um einen dritten Input hinzuzufügen.
Verbinde jeden Wave Player-Knoten mit einem Pin am Random-Knoten.
Verbinde den Random-Knoten mit dem Output-Knoten.
Speichere den Sound-Einsatz.
Erstelle als Nächstes zwei Sound-Einsatz-Assets, eines, das die Schrittgeräusche auf Stein randomisiert, und eines für die Standard-Schrittgeräusche:
Erstelle ein Sound-Einsatz-Asset namens SC_Footsteps_Stone.
Für die Wave Player-Knoten verwende den S_Stone-1, S_Stone-2 und S_Stone-3-Audio-Assets, die du in Einrichten deines Projekts und Importieren der Inhalte importiert hast.
Erstelle ein Sound-Einsatz-Asset namens SC_Footsteps_Default.
Verwende für die Wave Player-Knoten die Audio-Assets S_Default-1, S_Default-2 und S_Default-3 .
Physikalische Materialien erstellen
Nachdem du nun deine Sound-Einsätze erstellt hast, erstellst du zwei Physikalische Materialien , um jede Oberflächenart zu repräsentieren. Du wirst die Schrittgeräusche später diesen physikalischen Materialien zuordnen.
Ein Physikalisches Material wird verwendet, um die Reaktion eines physikalischen Objekts zu definieren, wenn es dynamisch mit der Welt interagiert. Diese Materialien können auch verwendet werden, um verschiedene Arten von Oberflächen im Gameplay zu identifizieren.
In diesem Tutorial erstellst du Physikalische Materialien mit den Namen PM_Metal und PM_Stone , um Metall- und Steinoberflächen zu repräsentieren. Dann prüfst du, auf welcher Oberfläche der Spieler sich bewegt, und spielst einen Sound-Einsatz auf Grundlage dieser Informationen ab.
Um ein Physikalisches Material zu erstellen, gehe folgendermaßen vor:
Gehe zum Inhaltsbrowser und navigiere zum Ordner AdventureGame > Artist > Materialien.
Klicke mit der rechten Maustaste im Ordner Materialien, gehe zu Physik, und wähle Physikalisches Material aus.
Wähle im Fenster Klasse für Physikalisches Material auswählen PhysicalMaterial aus und klicke auf Auswählen.
Gib diesem Asset den Namen PM_Metal.
Erstelle ein weiteres Physikalisches Material mit dem Namen PM_Stone.
Ein Physikalisches Material ist ein Daten-Asset, mit dem du verschiedene Einstellungen für eine Oberfläche ändern kannst, z. B. die Reibung. Für diese Physikalischen Materialien musst du die Eigenschaften in den Assets selbst nicht bearbeiten. Stattdessen weist du diese Assets verschiedenen Materialien zu, um ihre individuellen Oberflächenarten zu verändern.
Schrittgeräusche mit einer Daten-Asset-Blueprint-Klasse zuweisen.
Als Nächstes erstellst du eine neue Blueprint-Daten-Asset-Klasse, um die Schrittgeräusche zu speichern, und eine Funktion, die das korrekte Schrittgeräusch basierend auf dem Physikalischen Material zurückgibt, das dem Material eines Objekts zugewiesen ist.
Befolge diese Schritte, um ein Blueprint-Daten-Asset zur Steuerung deiner Schrittgeräusche einzurichten:
Navigiere im Inhaltsbrowser zum Ordner AdventureGame > Artist > Audio > Schritte .
Klicke mit der rechten Maustaste und erstelle eine Blueprint-Klasse.
Erweitere im Fenster Parent-Klasse auswählen die Dropdown-Liste Alle Klassen, suche dann nach PrimaryDataAsset und wähle es aus.
Nenne dieses Asset BP_DA_FootSteps und öffne es.
Füge im Mein Blueprint-Panel eine neue Variable hinzu:
Nenne sie FootStepSounds.
Wähle sie aus, und im Details-Panel:
Ändere den Variablentyp auf Physikalisches Material (Objektreferenz).
Ändere den Container zu Map.
Ändere den Map-Werttyp zu Sound-Einsatz (Objektreferenz).
Der Standard-Variablentyp ist Boolean. Da Booleans nicht gemappt werden können, ist der Map-Container nicht verfügbar, wenn du nicht zuerst den Variablentyp änderst.
Füge eine weitere Variable hinzu:
Nenne sie DefaultFootSteps.
Ändere den Typ zu Sound-Einsatz.
Da es nur einen Sound-Einsatz für das Standard-Schrittgeräusch gibt und dieser nur abgespielt wird, wenn dem Material des Objekts kein Physikalisches Material zugewiesen ist, kannst du den Containertyp auf eine einzelne Variable ändern.
Eine Map-Variable ist eine Datenpaarliste, die einen Asset-Typ mit einem anderen verbindet. Die FootStepSounds-Variable weist jedes Physikalische Material dem entsprechenden Sound-Einsatz zu.
Befolge diese Schritte, um FootStepSounds für die Verknüpfung von Materialien und Sounds einzurichten:
Kompiliere den Blueprint, damit du die Standardwerte deiner Variablen bearbeiten kannst.
Wähle die Variable FootStepSounds aus. Füge im Details-Panel unter Standardwert ein neues Element hinzu.
Wähle im Feld Physikalisches Material das Asset PM_Stone aus.
Wähle im Sound-Einsatz-Feld das Asset SC_Footsteps_Default aus.
Wiederhole die obigen Schritte, um ein Element mit zugewiesenem PM_Metal und SC_Footsteps_Metal hinzuzufügen.
Wähle die Variable FootStepSounds aus. Füge im Details-Panel unter Standardwert SC_Footsteps_Default hinzu.
Um die Blueprint-Logik zu erstellen, führe die folgenden Schritte durch:
Füge im Mein Blueprint-Panel eine neue Funktion mit dem Namen fnGetFootStepSounds hinzu. Sie öffnet sich in einem neuen Tab mit einem eigenen Diagramm.
Wähle die Funktion aus und gehe im Details-Panel wie folgt vor:
Füge einen neuen Input namens PhysicalMaterial mit dem Typ Physikalisches Material hinzu.
Füge einen neuen Output namens SoundCue hinzu und stelle den Typ auf Sound-Einsatz ein.
Trenne im Diagramm den Draht zwischen dem Funktionseintragsknoten (fnGetFootStepSounds) und dem Rückgabeknoten.
Ziehe im Funktionsdiagramm die FootStepSounds-Variable in das Funktionsdiagramm und wähle Abrufen aus.
Ziehe den Foot Step Sounds-Pin des Knotens und füge einen Find-Knoten hinzu.
Verbinde vom Find-Knoten aus den zweiten Input-Pin mit dem Physikalisches Material-Pin des fnGetFootStepSounds-Knotens. Das ist der Parameter für den Input, den du zuvor hinzugefügt hast.
Ziehe am fnGetFootStepSounds-Knoten den Exec-Pin und füge einen Branch-Knoten hinzu. Verbinde den Condition-Pin mit dem unteren (roten) Output-Pin des Find-Knotens.
Verbinde den True-Pin des Branch-Knotens mit dem Return-Knoten.
Ziehe den Sound-Einsatz -Pin des Return-Knotens und verbinde ihn mit dem oberen (blauen) Output-Pin des Find-Knotens.
Ziehe vom Branch-Knoten den False-Pin und füge einen weiteren Return-Knoten hinzu.
Ziehe den Sound-Einsatz-Pin des neuen Return-Knotens und füge einen Get Standard Foot Steps-Knoten hinzu.
Kompiliere und Speichere den Blueprint.
Diese Funktion prüft, ob ein Physikalisches Material (Funktionsinput) in der FootStepSounds-Map gefunden wird. Wird das Physikalische Material gefunden, wird der mit diesem Physikalischen Material assoziierte Sound-Einsatz als Output-Variable der Funktion zurückgegeben.
Wurde kein Physikalisches Material gefunden, wird stattdessen der DefautlFootSteps-Sound-Einsatz zurückgegeben.
Standard-Schrittgeräusche festlegen
Als nächstes erstellst du ein Daten-Asset, um die von deinem Blueprint verwendeten Werte zu verwalten. Dieses Asset fungiert als Konfigurationsebene und ermöglicht es dir, die Physikalischen Materialien und Sound-Einsätze hinzuzufügen, zu entfernen oder zu aktualisieren, ohne den Blueprint zu verändern oder neu zu kompilieren. Befolge diese Schritte:
Navigiere im Inhaltsbrowser zum Ordner AdventureGame > Artist > Audio > Schritte.
Klicke mit der rechten Maustaste und gehe zu Verschiedenes > Daten-Asset. (Wähle den Daten-Asset-Typ mit einem runden Symbol aus.)
Wähle die BP_DA_FootSteps-Datenklasse als Daten-Asset-Instanz aus.
Nenne dieses Asset DA_FootSteps und öffne es.
Wähle für Default Foot Steps die Option SC_Footsteps_Default aus.
Erweitere Foot Step Sounds und stelle sicher, dass die Liste mit beiden FootStepSounds-Map-Elementen gefüllt ist.
Speichere das Daten-Asset.
Eine Funktion zum Abspielen von Schrittgeräuschen erstellen
Als Nächstes erstellst du eine Funktion in der Funktionsbibliothek, um den Schrittgeräusch-Sound abzuspielen. Jede Blueprint-Klasse in deinem Projekt kann Funktionen in einer Blueprint-Funktionsbibliothek verwenden.
Um eine neue Funktion zu erstellen und einzurichten, befolge diese Schritte:
Navigiere im Inhaltsbrowser zu AdventureGame > Designer > Blueprints > Core und öffne die BPL_FPGame-Blueprint-Funktionsbibliothek.
Füge im Mein Blueprint-Panel eine neue Funktion hinzu und nenne sie fnBPLPlayFootStepSound.
Wähle die neue Funktion aus und füge im Details-Panel einen neuen Input namens PlayerReference des Typs Pawn hinzu.
Um einen Linien-Trace zwischen dem Spieler und dem Boden einzurichten, führe die folgenden Schritte durch:
Ziehe den exec-Pin des fnBPLPlayFootStepSound-Knotens und füge einen Line Trace By Channel-Knoten hinzu.
Ziehe den Start-Pin vom Line Trace By Channel-Knoten und füge einen Get Actor Location-Knoten hinzu.
Denk daran, in der Knotenaktionen-Liste Kontextsensitivzu deaktivieren, wenn du Probleme hast, einen Knoten zu finden.
Ziehe am Target-Pin des Get Actor Location-Knotens und füge einen Get Player Reference-Knoten hinzu.
Ziehe den Output-Pin des Get Player Reference-Knotens und füge einen Make Array-Knoten hinzu.
Verbinde den Array-Output-Pin des Make Array-Knotens mit dem Actors to Ignore-Pin des Line Trace By Channel-Knotens.
Ziehe den Return Value-Pin vom Get Actor Location-Knoten und füge einen Subtract-Knoten hinzu.
Verbinde den Output-Pin des Subtrahieren-Knotens mit dem Ende-Pin des Line Trace By Channel-Knotens.
Lege im Subtract-Knoten den Z-Wert auf 500 fest.
Es wird eine Linie getract, die von der Position des Spielers ausgeht, 500 Einheiten nach unten verläuft und den Spielercharakter ignoriert. Im nächsten Teil weist du den korrekten Schrittgeräusch-Sound basierend auf dem vom Linien-Trace gemeldeten Oberflächentyp zu.
Befolge diese Schritte, um das zuvor erstellte Daten-Asset zu verwenden und den richtigen Schrittgeräusch-Sound zuzuweisen:
Ziehe den Out Hit-Pin des Line Trace By Channel-Knotens und wähle Break Hit Results.
Erstelle eine lokale Variable, benenne sie FootStepsAsset und lege den Typ auf BP_DA_FootSteps (Objektreferenz) fest. Setze den Standardwert auf DA_FootSteps.
Ziehe die Variable FootStepsAsset in den Event Graph und wähle FootStepAsset abrufen aus.
Ziehe vom FootStepsAsset-Knoten, suche nach und wähle dann fnGetFootStepSounds aus.
Verbinde den Exec-Pin des LineTraceByChannel-Knotens mit dem FnGetFootStepSounds-Knoten. Erweitere den Break Hit Results-Knoten und verbinde den Phys Mat-Pin mit dem Physical Material-Pin des FnGetFootStepSounds-Knotens.
Ziehe eine Verbindung vom FnGetFootStepSounds-Knoten und suche und wähle dann Play Sound At Location aus.
Verbinde den Sound-Pin des PlaySoundAtLocation-Knotens mit dem Sound-Einsatz-Pin des FnGetFootStepSounds-Knotens.
Ziehe den Location-Pin des PlaySoundAtLocation-Knotens, suche und wähle dann Get Actor Location. Zieh seinen Target -Pin und füge einen Get Player Reference-Knoten hinzu.
Speichere und kompiliere die Funktion.
Hier wird die Daten-Asset-Funktion fnGetFootStepSounds verwendet, um ein Physikalisches Material zu einzusetzen und einen Sound-Einsatz zum Abspielen abzurufen.
Aktualisiere den Animationsblueprint mit Schrittgeräuschen.
Der nächste Schritt ist es, den Animationsblueprint deines Charakters zu modifizieren, damit du die FnBPLPlayFootStepSound-Funktion aufrufst, wenn die beiden Füße des Charakters den Boden berühren.
Die meisten Manny-Charaktere, wie der in diesem Projekt verwendete, verwenden Animationen, die standardmäßig Benachrichtigungen umfassen. Animationsbenachrichtigungen (auch Animation-Notifies oder einfach Notifies) bieten eine Möglichkeit, wiederholbare Events zu erstellen, die mit Animationssequenzen synchronisiert werden. Diese Events können Sounds (zum Beispiel Schrittgeräusche beim Gehen oder Laufen), das Spawnen von Partikeln und mehr sein.
Benachrichtigungen können zwar zu einer Animationssequenz hinzugefügt werden, aber die meisten Fortbewegungsanimationen, die in den Unreal Engine-Vorlagen enthalten sind, verfügen über Standard-Benachrichtigungen, die mit dem Zeitpunkt übereinstimmen, an dem die Füße des Charakters den Boden berühren (FootPlant).
Befolge diese Schritte, um die Standard-Animation-Notifies anzuzeigen:
Öffne im Inhaltsbrowser den Animationsblueprint, den dein Spielercharakter verwendet. Für BP_AdventureCharacter gehst du im Beispielprojekt zu Inhalte > Charaktere > Heldenmodelle > Anims > Unbewaffnet und öffnest ABP_Unarmed.
Klicke in der oberen rechten Ecke auf die Schaltfläche Animation (grünes Symbol eines laufenden Menschen). Damit öffnest du eine der Animationen des Blueprints in einem neuen Tab im Unreal Editor.
Um die abgespielte Animation zu ändern, klicke auf die drei Punkte neben der Animationsschaltfläche und wähle eine beliebige Geh- oder Laufanimation aus. Zum Beispiel MF_Unarmed_Jog_Fwd.
Tipp: Du kannst die Jog-Animation auch direkt aus dem Inhaltsbrowser öffnen.
In der Zeitleiste siehst du die Footplant-Benachrichtigungen:
Du kannst neue Benachrichtigungen hinzufügen und bestehende ändern, um dein eigenes System zu erstellen, in dem du eine Kette von Events ausführen möchtest. Für dieses Tutorial verwendest du die Standard-Benachrichtigungen, die mit den Charakteranimationen geliefert werden. Sie heißen AN_FootPlant_Right und AN_FootPlant_Left.
Befolge diese Schritte, um die Benachrichtigungen der Animation zum Blueprint hinzuzufügen und die Schrittgeräusche abzuspielen:
Kehre zurück zu ABP_Unarmed.
Klicke mit der rechten Maustaste in den Event Graph und füge einen AnimNotify_AN_FootPlant_Left-Knoten hinzu.
Ziehe vom Pin des Notify -Knotens und suche nach und wähle dann FnBPLPlayFootStepSound aus.
Füge einen AnimNotify_AN_FootPlant_Right-Knoten hinzu und verbinde ihn mit dem exec-Input-Pin des FnBPLPlayFootStepSound-Knotens.
Ziehe den Player Reference-Pin vom FnBPLPlayFootStepSound-Knoten und füge einen Get Player Pawn-Knoten hinzu.
Kompiliere und speichere den Animationsblueprint.
Dadurch wird der Schrittgeräusch-Sound jedes Mal abgespielt, wenn die Footplant-Benachrichtigung aus dem Animationsblueprint ausgelöst wird.
Wenn dein Charakter zusätzliche Animationsblueprints verwendet, musst du den Code auch zu diesen Animations-BPs hinzufügen.
Aktualisiere den Spieler-Charakter-Blueprint, um Schrittgeräusch-Sounds abzuspielen.
Als Nächstes modifizierst du den Spieler-Blueprint und fügst Logik hinzu, um den Sound abzuspielen, wenn der Spieler auf dem Boden landet, etwa nach einem Sturz oder Sprung. Da du die FnBPLPlayFootStepSound-Funktion in der Blueprint-Funktionsbibliothek erstellt hast, kannst du diese Funktion im Blueprint des Charakters wiederverwenden.
Um den Spieler-Blueprint zu ändern, führe die folgenden Schritte aus:
Gehe in den Inhaltsbrowser und navigiere zum Ordner AdventureGame > Designer > Blueprints > Charaktere.
Öffne den BP_AdventureCharacter-Blueprint und gehe zum Tab EventGraph.
Klicke mit der rechten Maustaste in einen leeren Bereich des Diagramms und füge einen Event On Landed-Knoten hinzu.
Ziehe den Ziehe den exec-Pin des EventOnLanded-Knotens und suche und wähle FnBPLPlayFootStepSound.
Ziehe den Player Reference-Pin vom FnBPLPla FootStepSound-Knoten und füge einen Self-Knoten hinzu.
Kompiliere und Speichere den Blueprint.
Böden ein Physikalisches Material zuweisen
Als Nächstes weist du mehreren Oberflächen ein Physikalisches Material zu. Befolge diese Schritte:
Wähle eine Oberfläche im Level, etwa ein Boden-Objekt.
Ändere im Details-Panel im Abschnitt Kollision das Phys Material Override in eines der zuvor erstellten Physikalischen Materialien.
Wiederhole diese Schritte, um beide Arten von Physikalischem Material zu einigen der Böden deines Levels hinzuzufügen.
Alternativ kannst du ein Physikalisches Material wie folgt zu einer Material-Instanz hinzufügen:
Öffne die Material-Instanz und gehe zum Details-Panel.
Scrolle nach unten zur Sektion Allgemein, klicke auf die Dropdown-Liste Phys Material und wähle dein gewünschtes Physikalisches Material aus.
Speichere deine Material-Instanz.
Deine Schrittgeräusche testen
Spiele das Spiel, gehe über die Oberflächen mit Physikalischen Materialien und springe, um die korrekten Schrittgeräusch-Sounds zu hören.
Wenn der Oberfläche ein Physikalisches Material zugewiesen ist, dann hörst du den entsprechenden Schritt-Sound. Wenn kein Physikalisches Material gefunden wird, hörst du den standardmäßigen Schrittgeräusch-Sound.
Als Nächstes
Im nächsten Modul erfährst du, wie du einen visuellen Feuer-Effekt erstellst und diesen mithilfe des Niagara VFX System auf deine Feuerfallen anwendest.