In diesem Teil des Tutorials modifizierst du den Spieler-Blueprint, um die Fähigkeit zum Sprinten während der Bewegung hinzuzufügen. Du erfährst mehr über das erweiterte Eingabesystem von Unreal Engine, das empfohlene System für den Empfang von Eingaben vom Spieler. Du verwendest dieses System für Folgendes:
Erstelle eine Input-Aktion, die definiert, welcher Input die Sprintbewegung auslöst.
Verbinde die Input-Aktion mit dem Spieler-Blueprint, indem du sie in ein Event umwandelst.
Erhöhe die Bewegungsgeschwindigkeit des Spielers beim Sprinten.
Im vorherigen Abschnitt hast du die Logik für den Charakter des Gegners erstellt, sodass die Gegner den Spieler verfolgen, wenn er sich in ihrem Blickfeld befindet. Mit einer Sprint-Mechanik bietest du eine Spielmechanik, mit der der Spieler diesen feindlichen Charakteren ausweichen kann.
Beim Design von Spielen ist es wichtig, Herausforderungen für den Spieler zu schaffen, beispielsweise in Form von Gegnern, und gleichzeitig ein Werkzeug oder eine Strategie bereitzustellen, mit denen der Spieler diese Herausforderungen überwinden kann.
Sprinten ist eine beliebte Funktion, die in den meisten Spielen verschiedener Genres verfügbar ist und es dem Spieler ermöglicht, sich schneller zu bewegen. Diese Mechanik verändert, wie Spieler die Bereiche durchqueren, die du in deinem Level entworfen hast.
Bevor du anfängst
Stelle sicher, dass du diese Themen verstehst, die im vorherigen Abschnitt von Entwerfen eines Rätsel-Abenteuers behandelt wurden:
Blueprints-Grundlagen wie das Hinzufügen von Knoten, Funktionen und Events.
Du benötigst die folgenden Assets aus den vorherigen Dokumenten in dieser Tutorial-Reihe:
BP_AdventureCharacter
Erstelle ein Input-Action-Asset
Zuerst erstellst du ein Input-Aktion-Asset, das Folgendes definiert:
Den Namen der Aktion.
Den Wert-Typ der Aktion.
Die Art des Auslösers (Drücken, Halten oder Loslassen einer Taste).
Die Input-Aktion ist das, worauf der Blueprint des Spielercharakters achtet, bevor er ein neues Verhalten ausführt.
Später wirst du die Input-Aktion an eine bestimmte Taste binden, was auch als Mapping bezeichnet wird, indem du ein Input-Mapping-Kontext-Asset verwendest, das bereits im Projekt existiert.
Hier siehst du ein einfaches Diagramm, das die Beziehung zwischen den verschiedenen Assets zeigt, die im erweiterten Eingabesystem verwendet werden. Weitere Informationen findest du in der Dokumentation zur erweiterten Eingabe.
| Input-Aktion | Input-Mapping-Kontext | Blueprint |
|---|---|---|
Definiert Absichts- und Erkennungsregeln. | Weist den Input-Aktionen Tasten und Schaltflächen zu. | Verwendet Input-Aktionen, um ein Verhalten zu implementieren. |
Befolge diese Schritte, um ein Input-Aktion-Asset für eine neue Sprint-Bewegung zu erstellen:
Gehe zum Inhaltsbrowser und navigiere zum Ordner Input > Aktionen. In diesem Ordner siehst du die Input-Aktion-Assets für Sprung, Schauen, MouseLook und Bewegen.
Klicke mit der rechten Maustaste in den Inhaltsbrowser, navigiere zu Input und erstelle ein Input-Aktion-Asset.
Nenne dieses Asset
IA_Sprint.Die Namenskonvention ist unsere Art, zu definieren, dass es sich um eine Input-Action-Datei handelt, aber es ist nicht erforderlich, sie so zu benennen.
Doppelklicke auf
IA_Sprint, um es zu öffnen. Eine Input-Aktion ist ein Daten-Asset und wird in einem neuen Fenster mit einem Detail-Panel geöffnet.
Input-Aktionstypen
Schauen wir uns das Details-Panel im IA_Sprint-Datenfenster an. Verwende das Details-Panel, um die Eigenschaften dieses Assets zu ändern, z. B. um die Aktion des Spielercharakters zu definieren, auf die reagiert werden soll.
Geh zuerst zur Eigenschaft Werttyp. Dies bestimmt, welche Art von Daten in der Input-Action enthalten sind. Beim Erstellen von Input-Actions wählst du einen Werttyp, abhängig von der Art der Bewegung, die du mit der Action erfassen möchtest.
Standardmäßig ist der Typ der Input-Action Digital (Boolesche Variable), d. h. sie hat einen Ein- und Aus- Zustand (Sprinten oder nicht Sprinten). Du behältst den Standardwert für IA_Sprint bei.
Der Werttyp kann auch sein:
Axis1D: Die Action hat einen Wert für eindimensionale Bewegungen (Ein- und Ausscrollen) oder eine skalierbare Anpassung (Ändern der Bewegungsgeschwindigkeit).
Axis2D: Die Action hat X- und Y-Werte für zweidimensionale Bewegungen, wie z. B. WSAD-Steuerelemente.
Axis3D: Die Action hat X-, Y- und Z-Werte für dreidimensionale Bewegungen, wie z. B. Flug- oder Schwimmsteuerung.
Einrichten der Input-Aktion mit einem Auslöser
Befolge diese Schritte, um zu definieren, welche Art von Tastendruck die Sprinten-Aktion auslöst:
Klicke im Abschnitt Aktion neben „Auslöser“ auf die Plus (+)-Schaltfläche, um ein neues Element zum Auslöser-Array hinzuzufügen.
Klicke auf das Dropdown-Feld, in dem noch Keine für das neu hinzugefügte Element steht. Du siehst eine Liste mit Optionen wie Combo, Halten, Runter und sogar Touch-Input wie Tippen. Sprinten erfolgt in der Regel durch Gedrückthalten einer Taste, wähle also Runter aus der Liste aus.
Klicke auf die Schaltfläche Speichern in der oberen linken Ecke des Fensters, um deine Änderungen zu speichern. Schließe
IA_Sprint.
Die Aktion verwendet Runter statt Halten, weil Runter sofort beim Drücken einer Taste ausgelöst wird, während Halten erst nach einer bestimmten Zeit ausgelöst wird, während die Taste gedrückt gehalten wird.
Das Halten kann für Aktionen wie schwere Angriffsfähigkeiten nützlich sein, bei denen du deinen Angriff aufladen musst, bevor du die Taste loslässt. Weitere Informationen zu den einzelnen Auswahlen erhältst du, wenn du mit der Maus darüber fährst und die Tooltips liest.
Erweitere einen Auslöser, um seinen Schwellenwert für die Betätigung anzuzeigen oder wie weit ein Input gedrückt oder bewegt werden muss, bevor eine Aktion ausgelöst wird. Eine Tastaturtaste hat einen Auslösewert von 0, wenn sie nicht gedrückt ist, und einen Auslösewert von 1, wenn sie gedrückt ist. Gamepad-Steuerungen können auch Bruchteilswerte zwischen 0-1 aufweisen, wenn ihre Inputs teilweise gedrückt werden.
Damit ist dein Input-Aktions-Asset eingerichtet. Du hast einen Namen für die Aktion, IA_Sprint, und du hast definiert, was die Aktion auslöst (das Drücken einer Taste oder eines Knopfs). Im nächsten Schritt nutzt du einen Input-Mapping-Kontext, um zu definieren, welche Taste die Aktion auslöst.
Weise einen Tastenbelegung zu
Ein Input-Mapping-Kontext-Asset sammelt die ihm zugewiesenen Input-Aktion-Assets, wie der gerade erstellte IA_Sprint, um Input-Tasten festzulegen und Werte an einen Charakter-Blueprint wie unseren Spieler-Charakter BP_AdventureCharacter zu übergeben.
Befolge diese Schritte, um der Aktion IA_Sprint eine Taste zuzuordnen:
Kehre zum Inhaltsbrowser zurück. Navigiere vom Ordner Input > Aktionen eine Ebene höher zum Input-Ordner. Hier siehst du zwei Input-Mapping-Kontext-Assets:
IMC_DefaultundIMC_MouseLook.IMC steht für „Input Mapping Context“.
Doppelklicke auf
IMC_Default, um es in einem neuen Editor-Fenster mit einem Details-Panel zu öffnen.IMC_Defaultist das Input-Mapping-Kontext-Asset, das wir in diesem Projekt für die Standardfähigkeiten des Spielers verwenden, wie Bewegung und Springen.Erweitere im Abschnitt Mappings die Liste Mappings, woraufhin drei Einträge angezeigt werden: IA_Jump, IA_Move und IA_Look. Dies sind die Input-Aktionen, die du zuvor im Ordner Input > Aktionen gesehen hast.
Klicke neben Mappings auf Hinzufügen (+), um einen weiteren Eintrag zur Liste hinzuzufügen.
Verwende für den neuen Eintrag die Dropdown-Liste, um das Asset IA_Sprint auszuwählen, das du zuvor erstellt hast.
Erweitere den Eintrag IA_Sprint, um die Tastenauswahl für diese Aktion anzuzeigen. Klicke auf die Tastatur Schaltfläche und drücke die Feststelltaste auf der Tastatur. Alternativ kannst du die Dropdown-Liste verwenden, um dieser Aktion eine Taste zuzuweisen.
Speichere und schließe den Input-Mapping-Kontext.
Nachdem du die Input-Aktion-Taste für IA_Sprint definiert hast, hast du jetzt eine Input-Aktion, die ausgelöst wird, wenn der Spieler diese Taste gedrückt hält. Diese Aktion ist der Feststelltaste zugeordnet.
Einige Tastenbelegungen (Umschalt, Strg, Alt usw.) werden vom Unreal Editor verwendet und funktionieren daher möglicherweise nicht, wenn du dein Spiel im PIE-Modus testest. Wenn du eine dieser Mappings verwendest, musst du den Test im eigenständigen Modus durchführen oder während der Entwicklung einen anderen Schlüssel verwenden und dann zum gewünschten Schlüssel wechseln, bevor du dein Spiel paketierst. Zu den Tastaturbelegungen, die im PIE-Modus in der Regel sicher sind, gehören Buchstaben- und Zifferntasten, Pfeiltasten, Feststelltaste, Eingabetaste, Zurücktaste, Bild auf/ab und Start/Ende.
Modifiziere den Spieler-Blueprint zum Sprinten
Nachdem du deine Input-Aktion eingerichtet hast, ändere jetzt den Spieler-Blueprint, damit der Spieler mit der von dir zugewiesenen Taste sprinten kann.
Du erstellst die Sprint-Funktionalität, indem du die Bewegungsgeschwindigkeit des Spielers erhöhst, wenn er den Auslöser von IA_Sprint drückt. Wenn der Spieler die Sprint-Taste loslässt, kehrt der Charakter zu seiner Standard-Bewegungsgeschwindigkeit zurück.
Um zu beginnen, weise dem Charakter zuerst eine Standard-Bewegungsgeschwindigkeit zu und erstelle dann die Sprint-Mechanik.
Erstellen von Bewegungsgeschwindigkeit-Variablen
Zuerst erstellst du Variablen, um die Standardbewegungsgeschwindigkeit und die Sprintgeschwindigkeit des Spielers zu speichern. Die Bewegungskomponente des Spielers legt die Standardbewegungsgeschwindigkeit fest, aber das Speichern in einer Variable speichert diese Geschwindigkeit und stellt sicher, dass der Spieler nach der Sprintaktion zu dieser Geschwindigkeit zurückkehren kann.
Befolge diese Schritte, um Variablen einzurichten, die die unterschiedlichen Bewegungsgeschwindigkeiten des Spielers speichern:
Öffne im Inhaltsbrowser den Ordner Inhalt > AdventureGame > Designer > Blueprints > Charaktere und öffne dort den
BP_AdventureCharacter-Blueprint.Füge über das Panel Meine Blueprints eine neue Variable mitdem Namen DefaultMovementSpeed vom Typ Float hinzu.
Füge eine weitere Variable mit dem Namen SprintMovementSpeed hinzu, ebenfalls vom Typ Float.
Klicke in der linken oberen Ecke des Blueprint-Editors auf die Kompilieren Schaltfläche.
Klicke dann auf die SprintMovementSpeed-Variable. Ändere im Details-Panel den Standardwert > Sprint Bewegungsgeschwindigkeit auf 1000.
Festlegen der Standardbewegung des Spielers
Wenn das Spiel startet, wird die Standard-Startbewegungsgeschwindigkeit des Spielers erfasst.
Befolge diese Schritte, um die standardmäßige Bewegungsgeschwindigkeit beim Spielstart zu speichern.
Klicke im Event-Diagramm mit der rechten Maustaste auf eine leere Stelle und erstelle einen „Event BeginPlay“-Knoten. Dieser Knoten wird einmalig ausgeführt, wenn das Spiel startet.
Du verwendest „Event BeginPlay“, um die Standard-Bewegungsgeschwindigkeit des Spielers abzurufen, wenn das Spiel startet. Ziehe den Exec-Pin dieses Knotens und erstelle einen „Set Default Movement Speed“-Knoten.
Wie du beim Erstellen von
BP_Enemygesehen hast, enthält die Bewegungskomponente des Charakters die Eigenschaften, die seine Geschwindigkeit steuern. Ziehe im Komponenten-Panel die Charakterbewegung (CharMoveComp) in das Event-Diagramm.Ziehe den Pin vom Knoten „Charakter Movement“ und erstelle einen „Get Max Walk Speed“-Knoten.
Verbinde den Pin „Max Walk Speed“ mit dem Knoten „Set Default Movement Speed“.
Diese Funktionalität legt den Wert der Variable DefaultMovementSpeed, die du erstellt hast, auf die Standard-Gehgeschwindigkeit des Spielers fest, indem sie Max Walk Speed der Komponente Character Movement des Spielers verwendet.
Wenn du die Komponente Charakter Bewegung auswählst und im Details-Panel im Abschnitt Charakter-Bewegung: Gehen nachsiehst, kannst du sehen, dass die Standard-Max. Gehgeschwindigkeit 600 cm/s beträgt.
Die Character Movement-Komponente enthält viele Eigenschaften, die steuern, wie sich der Charakter bewegt. Du kannst diese Eigenschaften mithilfe von Blueprint-Logik zur Laufzeit verwenden und ändern.
Definieren des Sprint-Aktion-Verhaltens
Da der Spieler jetzt eine Startgeschwindigkeit hat, kannst du diese Geschwindigkeit erhöhen, wenn der Spieler die Sprint-Taste drückt.
Wenn du eine Input-Aktion zu einem Event-Diagramm hinzufügst, erstellt Unreal Engine einen Event-Knoten, der ausgeführt wird, wenn der Spieler die der Aktion zugeordnete Taste drückt, wie im Input-Mapping-Kontext definiert. In diesem Fall wird das IA_Sprint-Event ausgeführt, wenn die Feststelltaste gedrückt wird.
Befolge diese Schritte, um deine IA_Sprint-Input-Aktion zu verwenden und die Sprint-Mechanik zu erstellen:
Klicke mit der rechten Maustaste auf eine leere Stelle im Event-Diagramm, suche nach IA_Sprint, und wähle den Knoten IA_Sprint in der Kategorie Input > Erweiterte Action Events aus.
Klicke auf den Pfeil am unteren Rand des Knotens, um weitere Pins anzuzeigen. Du wirst die Pins Ausgelöst und Abgeschlossen verwenden:
Ausgelöst bedeutet, der Spieler drückt die Action-Taste, der Charakter sollte sich also mit SprintMovementSpeed bewegen.
Abgeschlossen bedeutet, der Spieler hat die Taste losgelassen hat, sodass der Spieler zu seiner DefaultMovementSpeed zurückkehren sollte.
Aus dem Komponenten-Panel ziehe die Komponente Character-Bewegung (CharMoveComp) erneut in das Event-Diagramm.
Ziehe den Pin Character Bewegung und erstelle einen Knoten Max. Gehgeschwindigkeit festlegen.
Aus dem Pin Max. Gehgeschwindigkeit des Knoten Max. Gehgeschwindigkeit festlegen ziehe und erstelle einen Sprint Bewegungsgeschwindigkeit erhalten-Knoten.
Verbinde den Triggered-Pin des IA_Sprint-Knotens mit dem Knoten Set Max Walk Speed.
Dadurch wird die Bewegungsgeschwindigkeit des Spieler-Charakters auf den Wert von Sprint Movement Speed festgelegt, den du zuvor auf 1000 gesetzt hast.
Schließlich musst du die Bewegungsgeschwindigkeit wieder auf den Standardwert zurücksetzen, wenn der Spieler die Taste loslässt und diese Action als Abgeschlossen markiert ist.
Befolge diese Schritte, um die Standardbewegung des Charakters nach Abschluss des Sprints wiederherzustellen:
Aus dem Knoten IA_Sprint des Pin Abgeschlossen ziehe und erstelle einen weiteren Knoten Max.Gehgeschwindigkeit festlegen.
Richte den Knoten Set Max. Gehgeschwindigkeit ein:
Verbinde für Max. Gehgeschwindigkeit eine Referenz mit DefaultMovementSpeed.
Verbinde für Ziel den Referenzknoten Charakterbewegung -Komponente.
Kompiliere und speichere deinen Blueprint.
Testen deines Charakters
Klicke im Unreal Editor auf die Schaltfläche Spielen , um das Spiel zu spielen. Du kannst nun sprinten, indem du die gemappte Sprint-Taste (Feststelltaste) gedrückt hältst.
Probiere verschiedene Werte für Max Walk Speed und Sprint Movement Speed deines Spieler-Charakters aus, um herauszufinden, was für dein Spiel am besten funktioniert. Da der Spieler jetzt sprinten kann, rufe erneut deine BP_Enemy-Charaktere auf und erhöhe ihren Max Speed-Wert, um den Schwierigkeitsgrad der Begegnungen in Flur 3 und Raum 3 anzupassen.
Du kannst auch weiterhin neue Inputs und Verhaltensweisen hinzufügen, wenn du das, was du in diesem Tutorial implementiert hast, erweitern oder andere Funktionen zu deinem Spiel hinzufügen möchtest.
Als Nächstes
Nachdem du nun erfolgreich alle Mechaniken und Funktionalitäten deiner Spieler-Charaktere hinzugefügt hast, bist du bereit, den Level zu beenden. Im letzten Modul dieser Reihe wirst du deinem Level mit allen bisher erstellten Elementen den letzten Schliff geben.