Unreal Engine 5 Tutorial Teil 10

Unreal Engine 5 Tutorial deutsch – Unreal Input System (10/13)

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Seiteninhalt

Das Unreal Input System bildet das Rückgrat der Interaktion in der Unreal Engine 5. Daher ist die korrekte Implementierung für ein reibungsloses Spielerlebnis sehr wichtig. In diesem Artikel lernst du das Unreal Input System, sowohl das alte als auch das neue Enhanced Input System.

Wir werden uns Schritt-für-Schritt durch die Konfiguration und Nutzung beider Systeme arbeiten, wobei wir auf die Einrichtung, Inputverarbeitung in Blueprints, Vorteile und Herausforderungen eingehen. Ganz gleich, ob du Einsteiger bist oder deine Kenntnisse vertiefen möchtest, dieser Artikel bietet dir eine umfassende Anleitung zum Unreal Input System.

Bereit, tiefer in die Welt des Input Managements einzutauchen? Dann lass uns gleich loslegen…

Was ist das Unreal Input System?

Das Unreal Input System ermöglicht die Verarbeitung von Benutzereingaben, wie Tastatureingaben, Mausbewegungen und Controllerbefehle. Es dient als Schnittstelle zwischen den Benutzerinteraktionen und der Spiellogik, indem es die Erfassung, Verarbeitung und Weiterleitung von Eingabedaten erleichtert.

Außerdem bietet es eine flexible und erweiterbare Struktur, mit dem du Benutzereingaben auf effiziente Weise handhaben und an die Anforderungen deines Projekts anpassen kannst. Mit den verschiedenen Komponenten des Unreal Input Systems lassen sich komplexe Steuerungen erstellen, um die Interaktivität und Benutzerfreundlichkeit von Spielen zu optimieren.

Im weiteren Verlauf gehen wir sowohl auf das traditionelle Input System als auch das Enhanced Input System in UE5 ein. Durch die Erläuterung der Konzepte, die Einrichtung und die Anwendung erhältst du einen fundierten Einblick in die Handhabung von Benutzereingaben.

Input Mapping Enhanced Input System

Das alte Unreal Input System

Die Handhabung von Benutzereingaben wurde bisher über das traditionelle Unreal Input System umgesetzt. In diesem Abschnitt werfen wir einen Blick auf die Funktionsweise des alten Input Systems und sehen uns spezifische Aspekte wie Einrichtung, Konfiguration, Inputverarbeitung in Blueprints sowie die damit verbundenen Limitationen an. Danach werden wir uns das neue Enhanced Input System ansehen.

Hinweis: Mit dem ultimativen Unreal Engine 5 Cheat Sheet erhältst du einen detaillierten Überblick über wertvolle Tipps & Tricks. Sichere dir jetzt das Cheat Sheet, um deine Spiele & Anwendungen noch einfacher zu erstellen!

Einrichtung und Konfiguration

Um das alte Unreal Input System zu nutzen, ist es zunächst wichtig, das Binding einzurichten. Damit erfolgt die Zuordnung von analogen Eingabewerten (wie Joystick- oder Maus-Bewegungen) zu einer bestimmten Aktion oder Funktion im Spiel. Es ermöglicht die Definition von Achsen, die analoge Werte repräsentieren. Und die Verwendung dieser Achsen in Blueprints oder im Code, um auf kontinuierliche Eingaben zu reagieren.

Navigiere zu Edit → Project Settings → Input. Dort findest du oben den Abschnitt Bindings. In der Unreal Engine 5 findest du auch einen Hinweis, dass das Axis und und Action Mapping veraltet ist. Du kannst es bisher aber noch weiterhin nutzen.

Binding altes Input System

Action Mapping vs. Axis Mapping

In der Unreal Engine gibt es zwei Haupttypen von Input-Mapping – das Action und das Axis Mapping.

Axis Mapping
Das Axis Mapping wird für kontinuierliche, analoge Eingaben verwendet. Hierzu zählt unter anderem die Bewegung eines Joysticks oder das Drücken eines analogen Triggers.

Beispiel: Die Neigung eines Joysticks nach links oder rechts, um einen Charakter zu bewegen. Auch das kontinuierliche Drücken der W-Taste für die Vorwärtsbewegung gehört zum Axis Mapping.

Um das Input-Event zu konfigurieren, klicke zunächst auf das „+“ neben Axis Mapping und vergebe einen aussagekräftigen Namen wie MoveForwardBackward. In diesem Event kannst du nun das entsprechende Binding festlegen. Im unteren Beispiel sind das die Tasten W (Forward) und S (Backward). Die Bedeutung der Werte bei Scale werden wir uns gleich anhand eines Blueprint-Beispiels ansehen.

Tipp: Klicke auf das Tastatursymbol und drücke die Taste, die du für das Binding verwenden möchtest. Dadurch ersparst du dir die Suche nach der entsprechenden Taste.

Axis Mapping

Action Mapping
Actions werden für diskrete, schrittweise Eingaben verwendet, wie das Drücken einer Taste oder das Klicken einer Maustaste.

Beispiel: Das Drücken der Leertaste, um einen Charakter springen zu lassen. Oder das Drücken der F-Taste, um das Flashlight (Taschenlampe) zu aktivieren/deaktivieren.

Ebenso wie beim Axis Mapping kannst du auch hier ein Event, wie zum Beispiel Flashlight, definieren. In diesem Event legst du ein Binding fest, das angibt, wie die Aktivierung/Deaktivierung erfolgen soll. Die Felder mit Shift, Ctrl, Alt und Cmd geben an, ob zusätzlich zu dieser Taste auch eine dieser Modifier-Tasten gedrückt werden muss. Zum Beispiel Shift + F oder Ctrl + F.

Nachdem du nun das Binding für die verschiedenen Events festgelegt hast, können wir uns ansehen, wie du sie in der Logik eines Blueprints verwendest.

Action Mapping

Inputverarbeitung in Blueprints

Nachdem wir uns im vorherigen Abschnitt um das Binding (Zuordnung) der verschiedenen Tasten gekümmert haben, wollen wir nun die Logik für die Bewegung eines Characters integrieren. Für diesen Zweck habe ich bereits einen Blueprint erstellt. Wie du einen Blueprint Actor erstellst, erfährst du in diesem Teil des Unreal Engine 5 Tutorials.

Logik für Vorwärts-/Rückwärtsbewegung

Im ersten Schritt platzierst du das Event MoveForwardBackward aus dem Axis Mapping. Klicke dazu mit der rechten Maustaste und suche nach diesem Event. Anschließend fügst du den Node AddMovementInput hinzu und verbindest den Execution-Pin sowie den Axis Value-Pin mit dem Scale Value-Pin. Für Testzwecke kannst du in der Node AddMovementInput den X-Vektor mit 1 für WorldDirection belegen. In der Unreal Engine ist der X-Vektor als Forward/Backward definiert, der Y-Vektor als Right/Left und der Z-Vektor als Up/Down.

Je nachdem, welche Taste gedrückt wird (W- oder S-Taste), gibt der Axis Value-Pin den Wert „+1“ oder „-1“ aus. Dieser wird mit dem X-Vektor verknüpft, wodurch eine Vorwärtsbewegung bei „+1“ und eine Rückwärtsbewegung bei „-1“ erfolgt. Für eine saubere Umsetzung sollte der X-Vektor jedoch aus dem Pawn verwendet werden. Hierzu kannst du folgende Implementierung integrieren.

Forward Vektor aus Pawn

Nun kannst du noch weitere Logiken für die Seitwärtsbewegung und den Look Up und Turn Input erstellen. In den unteren Abbildungen findest du die entsprechende Logik dazu.

Movement Input altes Input System

Look Up und Turn Input altes Input System

Limitationen und Herausforderungen

Trotz der Funktionalitäten des alten Unreal Input Systems gibt es bestimmte Limitationen und Herausforderungen, die du berücksichtigen solltest.

Komplexität bei der Skalierung
Das alte Input System kann bei komplexen Projekten mit vielen verschiedenen Eingabegeräten und Funktionen an Komplexität zunehmen. Die Skalierung des Systems für größere Projekte erfordert oft eine durchdachte Strukturierung und Organisation.

Mangelnde Flexibilität
In bestimmten Szenarien, insbesondere bei der Integration neuerer Technologien, könnte das alte System an Flexibilität vermissen. Das kann zu Schwierigkeiten führen, wenn spezifische Anforderungen nicht direkt von den vorhandenen Funktionen des alten Systems unterstützt werden.

Limitierte Unterstützung für moderne Eingabegeräte
Durch die Weiterentwicklung der Technologie der Eingabegeräte könnte das alte Input System möglicherweise nicht optimal auf moderne Geräte wie VR-Controller oder spezialisierte Eingabegeräte zugeschnitten sein. Das kann zu Einschränkungen bei der Implementierung von Funktionen führen, die diese Geräte optimal nutzen.

Um es zu verbessern, wurde das Enhanced Input System in die Unreal Engine 5 integriert. In den folgenden Abschnitten werden wir die Grundlagen des Enhanced Input Systems betrachten.

Das neue Enhanced Input System

Mit der Einführung des Unreal Enhanced Input Systems bieten sich fortschrittlichere und flexiblere Möglichkeiten zur Verwaltung von Eingabegeräten. In den folgenden Abschnitten erkläre ich dir die Grundlagen des Enhanced Input Systems.

Hinweis: Mit dem ultimativen Unreal Engine 5 Cheat Sheet erhältst du einen detaillierten Überblick über wertvolle Tipps & Tricks. Sichere dir jetzt das Cheat Sheet, um deine Spiele & Anwendungen noch einfacher zu erstellen!

Input Action

Dies sind wichtige Bausteine im Enhanced Input System der Unreal Engine 5. Sie repräsentieren benutzerdefinierte Eingabeereignisse, die während des Spielverlaufs ausgelöst werden können. Input Actions sind vergleichbar mit dem Action und Axis Mapping im alten Unreal Input System. Im Wesentlichen wird dadurch die Verknüpfung von Tasten, Mausbewegungen oder Controller-Eingaben mit spezifischen Spielfunktionen ermöglicht.

Input Action Enhanced Input System

Um eine Input Action zu erstellen, öffne zunächst das Kontextmenü im Content Drawer durch einen Rechtsklick. Wähle dann Input und anschließend Input Action. Für eine organisierte Struktur im Projekt empfiehlt es sich, einen neuen Ordner mit dem Namen Input anzulegen und dort alle relevanten Elemente abzulegen.

Nachdem du die Input Action erstellt hast, kannst du einen aussagekräftigen Namen, zum Beispiel IA_Move, vergeben. Jede Input Action sollte eine vom Benutzer ausführbare Aktion repräsentieren, beispielsweise eine Bewegung oder das Aktivieren der Taschenlampe. Diese Aktionen können verschiedene Value Types haben, die ihr Verhalten bestimmen.

Input Action Value Type

Du kannst eine einfache boolesche Aktion erstellen, zum Beispiel das Aktivieren oder Deaktivieren der Taschenlampe, oder eine komplexere 3D-Achse. Der Value Type der Aktion bestimmt den Wert. Boolesche Aktionen haben einen einfachen bool-Wert, eine Axis1D ist ein Float-Wert, eine Axis2D ist ein FVector2D und eine Axis3D ist ein vollständiger FVector. Wir werden uns gleich anhand eines Blueprint-Beispiels genauer ansehen, wie das funktioniert. Für den Movement Input verwenden wir Axis2D, also jeweils einen float-Wert für die X- und Y-Achse.

Input Mapping Context

Dieser dient dazu, Input Actions zu gruppieren und Bedingungen für deren Aktivierung festzulegen. In einem Input Mapping Context kannst du mehrere Input Actions gruppieren und Bedingungen festlegen, unter denen diese aktiviert werden sollen.

Um einen Input Mapping Context zu erstellen, öffne den Content Drawer durch einen Rechtsklick und wähle InputInput Mapping Context. Nachdem du das durchgeführt hast, kannst du wieder einen aussagekräftigen Namen, zum Beispiel IMC_Move, vergeben.

Input Mapping Context Enhanced Input System

In der unteren Abbildung siehst du das Mapping der Input Action IA_Move. Hierfür verwenden wir erneut die Tasten W-A-S-D. Der Vorteil dabei ist, dass du weitere Tasten, wie die Pfeiltasten (Up-Down-Left-Right), zusätzlich hinzufügen kannst.

Jede Taste gibt einen positiven, eindimensionalen Wert (0 oder +1) aus und wird standardmäßig auf die X-Achse gemappt. Um das auch auf andere Achsen zu übertragen, kommen sogenannte Input Modifiers ins Spiel. Beispielsweise soll für die S-Taste nicht +1, sondern -1 ausgegeben werden. Hierfür wählst du den Modifier Negate.

Für die D-Taste soll der Wert weiterhin +1 sein, jedoch auf die Y-Achse gemappt werden. Hierfür verwendest du den Modifier Swizzle Input Axis Values und wählst anschließend YXZ. Das bedeutet, dass dieser Wert auf den Y-Vektor angewendet wird. Für die A-Taste gilt dasselbe wie für die D-Taste, mit dem Unterschied, dass der Wert -1 sein soll. Daher kannst du hier zusätzlich den Modifier Negate wählen. In der unteren Abbildung findest du die genannten Einstellungen.

Input Mapping Context Movement

Trigger States

Sobald du im Blueprint eine Input Action platzierst, erhältst du den Node wie in der folgenden Abbildung. Dort kannst du nun verschiedene Trigger States nutzen.

Trigger States

Triggered (Ausgelöst): Dieser Zustand tritt ein, wenn die zugeordnete Taste oder Aktion erstmals betätigt wird. Er repräsentiert den Beginn der Eingabeaktion.

Started (Gestartet): Der State tritt ein, sobald die zugeordnete Taste oder Aktion gedrückt wird. Er markiert den Startzeitpunkt der Eingabeaktion und bleibt während des gesamten Zeitraums gedrückt.

Ongoing (Laufend): Dieser Zustand bleibt aktiv, solange die zugeordnete Taste oder Aktion gedrückt bleibt. Er ermöglicht die kontinuierliche Verarbeitung der Eingabeaktion während ihrer Dauer.

Canceled (Abgebrochen): Der State tritt auf, wenn die Eingabeaktion abgebrochen oder unterbrochen wird, bevor sie abgeschlossen wurde. Zum Beispiel, wenn der Benutzer die Taste loslässt, bevor die Aktion vollständig ausgeführt wurde.

Completed (Abgeschlossen): Dieser Zustand tritt auf, wenn die Eingabeaktion erfolgreich abgeschlossen wurde. Zum Beispiel, wenn der Benutzer die Taste für das Springen betätigt und die Sprungaktion erfolgreich durchgeführt wurde.

Diese Trigger States bieten fein abgestufte Kontrolle über den Lebenszyklus einer Eingabeaktion und ermöglichen es, präzise auf verschiedene Phasen der Benutzereingabe zu reagieren.

Hinweis: Mit dem ultimativen Unreal Engine 5 Cheat Sheet erhältst du einen detaillierten Überblick über wertvolle Tipps & Tricks. Sichere dir jetzt das Cheat Sheet, um deine Spiele & Anwendungen noch einfacher zu erstellen!

Inputverarbeitung in Blueprints

Um die Inputs verwenden zu können, muss zunächst der jeweilige Input Mapping Context wie in der nachfolgenden Abbildung hinzugefügt werden.

Du kannst einen oder mehrere dieser Contexts einem lokalen Spieler über sein Enhanced Input Local Player Subsystem zuordnen. Es ist außerdem möglich sie zu priorisieren, um Konflikte zwischen mehreren Aktionen mit derselben Eingabe zu behandeln.

Als Beispiel könnte einem Character, der schwimmen, gehen und Fahrzeuge steuern kann, mehrere Input Mapping Contexts zugewiesen werden. Einer für gemeinsame Aktionen, die immer auf dieselben Benutzereingaben abgebildet sind, und ein anderer für jeden einzelnen Fortbewegungsmodus.

Input Mapping Context verwenden

Um die verschiedenen Input Actions zu definieren, öffne im Blueprint des Characters mit der rechten Maustaste das Kontextmenü und suche nach der zuvor definierten Input Action. In unserem Fall heißt diese IA_Move. Anschließend kannst du, ähnlich wie im alten Unreal Input System, die Bewegungseingaben mit den Vorwärts- und Rechtsvektoren erstellen.

Tipp: Zur Auftrennung des Action Value Pins in die X- und Y-Werte kannst du mit der rechten Maustaste auf den Pin klicken und Split Struct Pin wählen. Auf diese Weise kannst du die Werte separat verwenden.

Movement Input Enhanced Input System

Im abschließenden Schritt zeige ich dir, wie du die Funktionen LookUp und Turn integrieren kannst. Erstelle dazu eine neue Input Action mit dem Namen IA_Look und wähle erneut den Typ Axis2D. Innerhalb des Input Mapping Contexts IMC_Move erstellst du eine weitere Aktion und wählst IA_Look aus. Hier kannst du nun die Eingabe Mouse XY 2D-Axis eintragen.

Im Blueprint lässt sich jetzt die Input Action IA_Look verwenden und dadurch der Controller Yaw Input und Controller Pitch Input beeinflussen.

Look Up und Turn Input Enhanced Input System

Vorteile gegenüber dem alten System

Der Übergang zum neuen Enhanced Input System in der Unreal Engine 5 bietet eine Reihe von Vorteilen im Vergleich zum alten System.

Modularität und Erweiterbarkeit: Das Enhanced Input System ermöglicht eine modulare und erweiterbare Struktur. Durch die Definition von Input Actions und Mapping Contexts wird die Organisation und Verwaltung von Eingabebindings vereinfacht.

Klarere Struktur und Lesbarkeit: Die Trennung von Input Actions und Mapping Contexts erleichtert die Lesbarkeit des Blueprints oder Codes. Dadurch können spezifische Aktionen klar definiert und leichter nachvollzogen werden.

Priorisierung und Kollisionen: Das System ermöglicht die Priorisierung von Mapping Contexts, wenn mehrere davon auf dieselbe Input Action gemappt sind. Dadurch werden Kollisionen zwischen verschiedenen Aktionen, die dieselbe Eingabe verwenden, gelöst.

Dynamische Contextverwaltung: Du kannst Mapping Contexts dynamisch hinzufügen oder entfernen, je nach den Anforderungen der Spielsituation. Es eignet sich besonders für Charaktere oder Objekte, die unterschiedliche Modi oder Zustände haben.

Optimierung und Fehlervermeidung: Die klare Struktur und die Möglichkeit, Contexts dynamisch zu verwalten, tragen zur Optimierung bei und verhindern potenzielle Fehler.

Insgesamt bietet das Enhanced Input System eine flexiblere, klar strukturierte und fehlerresistentere Methode zur Implementierung von Spielerinteraktionen. Im nächsten Teil des Unreal Engine 5 Tutorials gehen wir auf Audio und Sound ein.

Hinweis: Du willst in der 3D-Entwicklung durchstarten? Dann teste jetzt nobreakpoints Pro. Dort lernst du in zahlreichen Online-Kursen und Workshops alle nötigen Skills.

Free

Trial

Keine Extra-Kosten.
Unverbindlich testen.

Bereit, deinen Weg in die 3D-Entwicklung zu starten?

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Weitere Blogartikel

Bereit, deinen Weg in die 3D-Entwicklung zu starten?

Lerne in Rekordzeit alle nötigen Skills für Game Development, VR und AR – praxisnah und flexibel in deinem Tempo!

Suche

Bereit, deinen Weg in die 3D-Entwicklung zu starten?

Lerne in Rekordzeit alle nötigen Skills für Game Development, VR und AR – praxisnah und flexibel in deinem Tempo!