Transkripte
1. Übersichtsvideo: Ich liebe 0,5-D-Spiele. Es hat etwas damit,
den 2-D-Kunststil zu haben und gleichzeitig in einem Drei-D-Testament interagieren zu können. Das ist also ein kurzer Überblick über Kosten
für die
Spielentwicklung in Höhe von 2,5€. Wir behandeln eine Menge von dem,
was Sie
lernen werden , damit Sie von, Sie wissen schon,
Dinge vom
kleinen Maßstab zum größeren Maßstab
der
Spieleentwicklung als Ganzes
übergehen können Dinge vom
kleinen Maßstab zum größeren Maßstab . Das Erste, was
du grundlegend
lernen wirst, ist mein einfacher vierstufiger Prozess zum Entwerfen und Erstellen von
Dingen für dein Spiel. Im Grunde geht es darum, das Design , die Grafik zu
erstellen und
dann das Audio hinzuzufügen. Das wird der
Kern von allem anderen sein , was zusammenkommt und wie man einen Zwei-D-Charakter
mit Bewegung und
dann etwas Kampf erstellt und implementiert . Mit diesem Charakter ist
er also in der Lage, eine Kombination aus drei Treffern auszuführen, einschließlich Luftkombos. Und wenn du
den Charakter
ausbaust, wirst du lernen, wie du die Steuerung für den PC
so
einrichtest , dass du
den Charakter mit
Maus und Tastatur steuern kannst den Charakter mit
Maus und Tastatur Und obendrein wirst du lernen, wie du diese Charaktersteuerung
auch mit einem Controller
erstellst . Sie werden also
diese beiden Optionen haben. Und all diese
Funktionen
werden auf der Unreal Engine aufbauen und das Blueprints-System
verwenden
, sodass Sie lediglich ein grundlegendes
Verständnis der Logik benötigen, den Charakter
erstellen zu können Nun, das Coole
an Blueprints
ist, dass Sie in der Lage sein
werden,
schnell Änderungen
an Ihrem Code vorzunehmen Und falls etwas passieren sollte, können
Sie den
Code ganz einfach live in Echtzeit sehen Jetzt kann ich jedes Mal, wenn ich
eine Angriffsanimation
durchführe, sehen, welche
Art von Nahrung aufgerufen wird. Dies ist ein einfaches Beispiel für
einen Angriff mit drei Treffern. Ich kann also erkennen, wann der schnelle
Angriff alleine aufgerufen wird oder wenn der Spieler alle drei Angriffe
gedrückt hat und er kämpft, sondern wenn er die gesamte Kombination
abfeuert, und das wirst du auch
im Tutorial lernen. Bevor ich nun
über einige der anderen Funktionen
des Tutorials spreche , ist
eine Sache, die ich am
Lernen liebe, die Klarheit. Ich war nicht glücklich über viele
der anderen Tutorials, die ich selbst gekauft habe, als ich Spieleentwicklung
gelernt habe. Aber mach dir dieses Mal keine Sorgen, dieses Mal wird
es
viel Klarheit geben. Eine Sache, die Sie also häufig sehen werden ist
viel Heranzoomen Das bedeutet also, dass
ich oft genau
hineinzoome, wo sich meine Maus befindet, und ich werde Ihnen Einzelheiten
darüber
zeigen , was
ich gerade mache, damit
Sie ein ziemlich cooles und klares Verständnis
von allem bekommen , was ich ändere Jede Variable, jedes
Mal, wenn ich an einem Einstellrad drehe, wird
etwas
vergrößert, um Ihnen genau
die Klarheit zu geben , die Sie benötigen, um genau zu wissen,
was ich tue Ich mag es auch,
meine Erklärungen sehr
klar und verständlich zu halten . Aber jetzt werde ich weitermachen und
auch etwas über
Feinde und feindliche KI lernen. Oh, sieh mal, da ist
ein Feind aus der Ferne. Eines der Dinge, die du lernen
wirst, ist, wie man sich
Feinde schnappt und sie erschafft , die dem Spieler Schaden
zufügen,
einschließlich eines
Fernkampfgegners, der aus der Ferne angreift, und eines Feindes aus größerer Nähe
, der dem Spieler
Schaden zufügt, indem er
auf ihn zugeht und Aber es geht nicht nur darum, von Feinden
angegriffen zu werden. Du wirst auch lernen,
wie du Feinden einen
Vorsprung verschaffst , sodass sie
sterben können, wenn sie Schaden erleiden. Unser Spieler hat also die Fähigkeit, sich zu
wehren, was cool ist. Feinde sind also Kohle
und so, oder? Aber eine andere Sache
, die du tun
musst, ist Leveldesign. Also werde ich dir Schritt für
Schritt
beibringen , wie du das
richtige Leveldesign
machst und Levels erstellst richtige Leveldesign
machst und , die für die Spieler
sinnvoll sind, sowie die Grundlagen, wie Ressourcen in Unreal Engine
einfügst und wie du sie nutzt und
verschiedene Änderungen an
Beleuchtung und Umgebung Okay. Und wenn du
damit fertig bist, all das zu lernen, wirst
du in
einem Abschlussprojekt landen , in dem
du einen Boss-Charakter
kreieren wirst
, den du für deine eigenen Spiele
verwenden wirst. Und sobald Sie
diesen Charakter erstellt haben, hätten
Sie
alles, was Sie über die Entwicklung von
2,5-D-Spielen
wissen müssen, vollständig gelernt . Das deckt also so ziemlich alles ab, was du im Tutorial lernen
wirst. Ich wünsche dir viel Glück und
nimm dir Zeit, lerne alles Schritt für Schritt, und hey, dein Traumspiel wird sich
nicht von selbst entwickeln. Ich wünsche dir viel Glück
und du wirst mich
im nächsten Video finden .
Lass uns weitermachen.
2. 001 Hol dir Unreal Engine und beginne das Projekt: Ordnung, also um anzufangen, müssen
wir sicherstellen, dass
die grundlegenden Dinge aus dem Weg die grundlegenden Dinge aus dem Sie werden
NRL Engine 5.4 benötigen. Hol dir einfach den Epic
Games Launcher. Stellen Sie sicher, dass Sie UnrelEngine
herunterladen. Sie können in die Bibliothek gehen. Und von der Bibliothek aus, wissen
Sie, haben
Sie im Grunde die Möglichkeit, verschiedene Engine-Versionen auszuwählen, Sie wissen schon, die späten. Okay? Sonst
brauchst du nichts. Hol einfach die Lats. Der letzte
Stand der Aufnahme ist 5.4. Ich habe die Blueprints so organisiert ,
dass sie mindestens mit
jeder Version von Unreal bis
2025 funktionieren .
Sie
ändern den Blueprint-Code sehr selten, da er nur C plus
plus gesammelt ist Sobald du das erledigt hast,
starte die Engine, und wenn du sie startest, wirst
du kommen und hier
auf Spiele klicken Es wird dich also bitten,
du weißt schon,
dein Spielprojekt einzurichten. Richten Sie es jetzt als leeres Projekt
ein. Wir möchten nicht
mit irgendwelchen Vorlagendateien beginnen. Fangen wir mit einer leeren Tafel an. Sie dann auf der rechten Seite
sicher, dass es sich bei der
Zielplattform Desktop
handelt, und richten Sie
sie dann für Blueprint Wenn Sie auf
CiplusPlus klicken,
müssen wir viel C
plus Schreiben erledigen,
aber es ist viel schneller, von hier aus mit
Blueprint-Code müssen wir viel C
plus Schreiben erledigen,
aber es ist viel schneller, zu
beginnen zu
beginnen Es ist viel einfacher, damit
anzufangen. Qualitätsvoreinstellungen angeht, sind
diese nicht sehr relevant Sie können sie so lassen, wie sie sind. Sie können
Starterinhalte weglassen, und Sie können das
Nachverfolgen vorerst auslassen Wir werden für dieses Projekt nicht wirklich
Tracing benötigen, und es ist sehr Mit all diesen Einstellungen kommst du
einfach hierher und
wählst deinen Projektnamen Ich nenne es einfach aktualisierte Videos für die
2,5-D-Plattform weil hier all
diese Videos gegenüber den
Originalvideos des Kurses aktualisiert
werden , und dann können Sie sich für
den Projektnamen entscheiden. Ich werde es 2,5 d nennen. Oh, ich kann keine Leertaste setzen. Nein, ich nenne
es eine Heldenreise. Ja, so nenne ich das Projekt. Mit diesem Setup können wir jetzt in die Unreal Engine
einsteigen.
3. 002 Entwicklerstufe einrichten: Und sobald Unreal
Engine gestartet
ist, werden
Sie damit begrüßt werden also als Erstes das Lassen Sie uns also als Erstes das Fenster des
Inhaltsbrowsers schließen und uns
ansehen, wie Unreal
Engine Sie werden also in
der oberen rechten Ecke feststellen , dass es sich um unser Projekt handelt Dann haben wir einen großen Bildschirm
in der Mitte, unser Editorfenster
ist. Das ist unser Viewport, unser Blick in die Welt, die
wir erschaffen werden Wenn wir hineinklicken. Also im Moment habe ich
hineingeklickt. Sie können sich mit der
Maus umschauen , nachdem Sie
die rechte Maustaste gedrückt gehalten So kannst du meine Maus dort sehen. Ich halte die
rechte Maustaste gedrückt
und kann mich umschauen. Und dann werde
ich mit WAS D in der Lage sein, mich innerhalb der
Welt zu bewegen . Jetzt, wo wir die Maustaste haben
, können
wir W A verwenden, um uns nach links zu
bewegen, um nach hinten zu gehen, und
D, um uns nach rechts zu bewegen. Mit diesen beiden können wir also
im Grunde um die Welt fliegen. Okay. Aber das ist eine große Welt, und wir brauchen keine
große offene Welt. Und je nach Ihrem PC Ihr PC
möglicherweise sogar gestresst. Lassen Sie uns also diese offene Welt entfernen ,
damit wir
etwas Einfacheres haben , das wir verwenden können, wenn wir mit
diesem Projekt beginnen. Um das zu tun,
müssen wir nur noch ein neues Level erstellen. Nun, um das neue Level zu erstellen,
was du tun wirst,
ist, dass du hier in
die obere linke Ecke
kommst , wir werden auf Datei klicken
und nachdem wir auf Datei geklickt
haben, werden wir einfach ein neues Level
erstellen. Das wird uns nun
ein paar Optionen eröffnen. Wir können ein
offenes Wild-Level erstellen. Wir können eine Basisebene erstellen. Klicken Sie auf Basic. Wir
müssen nur ein Basislevel einrichten. Ah, perfekt. Jetzt, wo wir
diese Grundstufe haben, werde
ich zurückgehen. Beachten Sie, dass es sich hier nur um
dieses einzelne rechteckige
Objekt handelt. Es ist eine Skybox. Wir
können uns umschauen Es gibt eine schöne Sonne
und es gibt Wolken, und es gibt Wolken wir nutzen und von denen aus wir
unser Spiel beginnen können. Das ist der gute
Ausgangspunkt, den wir brauchen. Aber jetzt, wo wir unser Level
erstellt haben, müssen
wir es in unseren Inhalten
speichern. Was meine ich also mit Inhalt? Wenn Sie reinkommen und
gleichzeitig die Strg- und Leertaste drücken , wird
ein Inhaltsbrowser geöffnet. Okay? Nun, in dem Inhaltsbrowser
unten links,
sehen Sie, dass er uns
Inhalte anzeigt. Klicken Sie also darauf. Das sind alle Dateien
, die du
in deinem Spiel verwenden wirst. Und dann wollen wir einen neuen Ordner
erstellen. Und nennen wir das
Ordnerebenen. Okay? Also, jetzt haben wir
unseren Levels-Ordner hier. Jetzt wollen wir nur unsere aktuelle Ebene,
genau, diese Ebenenebene,
in diesem Ordner
speichern . Beachten Sie, dass Sie jedes Mal, wenn
Sie wegklicken ,
erneut
die Strg- und Leertaste drücken müssen , um es zu öffnen. Um dieses Level zu speichern, gehen
wir zurück zu der Stelle, an der
wir Datei auswählen können,
und stellen fest, dass es die Option gibt, das aktuelle Level
zu speichern unter. Speichern wir also das aktuelle Level unter. Okay, es öffnet das Fenster. Wir gehen zu Ebenen und nennen das einfach. Ich verwende
gerne Zahlen,
wenn ich Ebenen benenne. Jetzt
wird die Ebene, die wir erstellen , die
Entwickler-Ebene sein. Also nenne ich es Null, Null, Null, ein Leerzeichen. Oh ja, ein Dash- und ein
Entwicklerlevel denn das ist das Level wir verwenden werden, um im Grunde all
die Dinge zu entwickeln , die in das Spiel
einfließen werden. Jetzt haben wir unser
Entwicklerlevel fertig, aber es gibt noch eine letzte
Sache, die wir tun müssen. Wir müssen es so einrichten, dass wir,
wenn wir Unreal Engine starten, genau dieses Level erreichen, und wir müssen auch
Paper Z D einrichten , das wir
verwenden werden , weil es
uns helfen wird , mit zwei
D-Sprites einfacher umzugehen Lassen Sie uns das in
der nächsten Lektion machen.
4. 003 Paper Zd installieren und Startups auf Entwicklerniveau belasten: Nachdem wir unser erstes Level
eingerichtet haben, fügen
wir jetzt ein Plug-In hinzu Schließen Sie
also die echte Engine und kehren Sie zum Epic Games Launcher
zurück Gehe zum Marktplatz und sobald du auf
dem Marktplatz bist, werden
wir einfach suchen. Die Suchbegriffe, die ich
verwende, sind Z und D. Richtig? Und Sie sollten
eigentlich
sofort Papier Z bekommen , was Papier Z D,
Papier Z und D sein
sollte .
Das sind also die Suchbegriffe, die ich verwende. Sie können sehen, dass Papier
Z D aufgetaucht ist, und das wird auftauchen. Und es heißt: Hey, Papier Z D, und alles, was Sie tun müssen, ist auf In Engine installieren zu
klicken, und es wird
gefragt, welche Engine Sie auch installieren möchten. Installation natürlich auf Ihrem neuesten Motor
, den Sie ausgewählt haben. Es ist ein ziemlich
kleiner Download, nur 71 Megabyte
und dann ist es fertig Und jetzt, nach einiger Zeit, sollte
der Download abgeschlossen sein Es ist vollständig in Engine installiert. Das wird hier vielleicht nicht angezeigt, aber wir können in die Bibliothek gehen und dort nach installierten Plugins suchen . Es zeigt dir
Quicksabidge und Paper Z D. Das Schließ das einfach
und dann können wir Unreal Engine
starten Sobald Sie wieder
in Unrel Engine sind, Sie tatsächlich
darüber informiert, dass,
Hallo, ein neues
Plug-In verfügbar ist Also gehe ich einfach zur
Verwaltung der Plugins. Ich gebe hier Z D ein. Also wird Unrel suchen
und da sind wir. Wir haben das Paper Z D Plugin. Und es wird sagen: Hey, starte
einfach neu, damit der Editor die Änderungen
vornimmt, und
starte UnrelEngine einfach erneut Perfekt. Jetzt wurde die Engine neu gestartet und dieses
Plugin funktioniert jetzt Beachten Sie jedoch,
dass Unreal Engine uns jetzt
dieses offene Level zeigt, was wir nicht Wir möchten, dass unser
aktuelles Entwicklerlevel
das Erste ist, was wir sehen, wenn
wir die Unreal Engine starten Um das zu lösen, gehen Sie zur Datei, gehen Sie zu Bearbeiten und dann
zu den Projekteinstellungen Was Sie dann suchen möchten, lassen Sie uns schnell einfrieren. Ich gebe ihm 1 Sekunde. Okay, es ist aufgefroren. Also, wonach du
suchen willst, ist, dass ich den Starttermin eintippe Okay. Also das ist der
Begriff, nach dem ich gesucht habe. Aber im Grunde
zeigt es dir die Optionen von, hey, Editor-Startmap, und
momentan ist es auf OpenWorld eingestellt Du kannst also einfach darauf klicken und da haben wir
unser Entwicklerlevel, also setze ich das auf
Entwicklerebene Okay. Und jetzt, wo
ich damit fertig bin,
werde ich
das tatsächlich schließen und
Unreal Engine erneut starten Ordnung. Also, jetzt habe ich
wieder in Unreal Engine geladen, und hier sind wir, wir sind jetzt
auf der Entwicklerebene Jetzt ist es richtig eingerichtet. Sie haben die Plugins. Du hast dein nettes Ich drücke. Ich drücke die Strg
- und Leertaste
und stelle fest, dass du
unseren schönen Inhalt
mit einer leeren Ebene hast , nicht ganz leer, aber es ist
ein guter Ausgangspunkt, und wir sind jetzt bereit einige
Gameplay-Elemente hinzuzufügen. Wir beginnen damit,
ein Gameplay-Element hinzuzufügen
, nämlich
den Spielercharakter. Dann werden wir uns ein wenig mit der Planungs- und
Spielentwicklungsphilosophie befassen. Das wird zwar ein sehr kurzes Video
sein, es wird nicht zu lang
sein. Dann kehren wir wieder in diese
Entwickler-Ebene
zurück und beginnen mit der Entwicklung der Komponenten
unseres 2,5D-Plattformspiels Lass uns das im
nächsten Video machen. Lass uns gehen.
5. 004 Der Welt einen Spielcharakter hinzufügen: Ordnung. Jetzt, wo wir
in Unreal Engine sind, haben
wir unser
Baseline-Level-Setup Wir werden das
allererste Objekt hinzufügen. Und nur um
sicherzugehen ,
dass es wirklich wichtig ist, werden
wir damit beginnen, einen Spielercharakter hinzuzufügen
. Um also einen Spielercharakter hinzuzufügen, werden
wir es
wirklich einfach halten, okay? Alles was Sie tun müssen, ist
Strg und Leertaste
zu drücken , um das Menü
aufzurufen, okay? Sobald das
Menü geöffnet ist, wollen
wir es unter Inhalt tun. Wir wollen hierher kommen und wir
werden einen neuen Ordner erstellen. Nur um die Dinge zu organisieren, haben
wir einen neuen Ordner erstellt. Um die Dinge zu organisieren, drücke
ich zwei Mal nach der
Auswahl F und nenne das Zeichen. Okay. Also haben wir einen
Ordner für Levels, einen anderen Ordner für Charaktere. Ich doppelklicke in den Charakterordner und erstelle
einen weiteren Ordner. Nun, dieser Ordner, wir
werden ihn Player nennen. Das ist es im Grunde, weil es die Reise des Helden ist und wir einen Spielercharakter haben werden
, den wir in der Welt einsetzen werden. Ich doppelklicke
innerhalb des Players und dann klicke ich mit
der rechten Maustaste und möchte nach der Blueprint-Klasse
suchen Es wird
uns einige Optionen geben. Nun, unter den Optionen werden
Sie feststellen, dass es Charakter
gibt, es gibt Pan, es gibt Schauspieler. Geh einfach und wähle
einen Charakter aus. Okay. Damit
hat es für
uns eine kleine Datei
erstellt , eine Blaupause Ich wähle wieder F zwei
und dann nenne ich
es Held Stimmt das? Jetzt wissen wir, dass dieser Held
unser Spielercharakter sein wird. Als Nächstes werden wir
diesen Helden zur Welt bringen. Ich werde es einfach anklicken und in die Welt
ziehen. Und bumm, da ist es. Dieses einfache Objekt, das eigentlich völlig unsichtbar
ist, ist unser aktueller Held. Da wir nun einen Blueprint
verwenden, ändert
jede Änderung an einem Blueprint alles Jetzt lass mich wieder
auf den Helden klicken. Im Moment ist es nur eine einfache
Kapsel, die unsichtbar ist. Fügen wir ihr ein Objekt hinzu. Ich doppelklicke auf Hero. Beachten Sie, dass ein
völlig anderes Fenster geladen wird. Ich persönlich bevorzuge es, wenn es sich nicht in einem
anderen Fenster befindet. Ich klicke darauf, ziehe es heraus und
ich ziehe es hierher. Jetzt kann ich von
der Entwickler-Ebene hier
drüben zurück zum
Helden-Blueprint gehen , okay? Im Helden-Blueprint
gibt es nun einige Dinge, die
wir uns ansehen können Auf der rechten Seite befinden sich einige Details. Wir haben die Details hier, und es gibt auch ein paar verschiedene Elemente, die
wir verwenden werden. Das verändert im Grunde die
Dinge am Charakter. Und dann haben wir auf der linken
Seite Komponenten. Bei Komponenten dreht sich alles um die verschiedenen Teile
des Charakters. Jetzt wird die grundlegende
Charakterkomponente mit einer Kapsel
geliefert. Eine Kapsel ist das
Objekt hier drüben, okay? Es ist ein Collider. Darauf werden wir später näher eingehen. Und dann hat es eine
Pfeilkomponente , die im Grunde
die Richtung anzeigt. Okay. Und nach der
Pfeilkomponente gibt es ein grundlegendes Charakternetz und dann gibt es noch eine Komponente zur
Charakterbewegung. Die Komponente
„Charakterbewegung “ verwenden wir, um die Bewegung
des Charakters von links
nach rechts und das Springen einzustellen. Aber im Moment
werden wir noch
eine weitere Komponente hinzufügen ,
da
der Spieler derzeit völlig
unsichtbar ist und wir
nicht wollen, dass er
vollständig unsichtbar ist. Wenn ich irgendwo
anders klicke und hierher komme, stelle
fest, dass der Spieler nur ein Mesh
ist, und wenn ich im
Spiel auf Play drücke, ist dort nichts. Ich bewege mich mit WAS D um die
Welt und halte die rechte Maustaste gedrückt und da ist
nichts. Lassen Sie mich eine Escape-Taste drücken, um aus dem Fenster zu
kommen. Das ist völlig unsichtbar. Beginnen wir damit,
eine einfache Komponente hinzuzufügen , damit wir
sehen können, wo sich der Spieler befindet. Ich werde einen einfachen Würfel hinzufügen. Jetzt, wo ich einen einfachen Würfel
hinzugefügt habe, werde
ich nichts weiter
anfassen als nur den Würfel. Ich werde den Würfel auswählen. Okay. Und dann sehen Sie auf der
rechten Seite unter den Details eine Skala, die aus der X-Achse, der
Y-Achse und der Z-Achse besteht . Y-Achse ist eher die
Breite, die Y-Achse die Tiefe
und dann, wie Sie vielleicht
vermutet haben, die Z-Achse die Höhe Ich werde es auf der X-Achse verkleinern bis es sich fast
innerhalb des Colliders Ich werde seine
Größe auf der Y-Achse reduzieren. Jetzt verwende ich
Worst D, wann immer ich schreibe, klicke
dort auf Worst D, damit ich das sehen kann. Das ist im Allgemeinen ungefähr. Ich glaube nicht, dass ich hier etwas anderes
tun muss. Ich werde jetzt auf Kompilieren klicken. Und dann zurück zur
Entwicklerebene. Zumindest kann ich jetzt, wenn ich
mich umsehe, den Spielercharakter sehen. Also das ist
momentan unser Spielercharakter. Wir können es sehen. Als Nächstes wollen wir
sichergehen, dass wir, sobald wir auf Play drücken, nicht auf der
schwebenden Entwicklungskamera sind,
sondern an
den Spielercharakter gebunden sind Und das zu tun ist sehr einfach. Alles was du tun musst, ist hier
auf den Spielercharakter zu klicken. Und dann gehe zu deinem
Detailbereich. Und dann wollen
wir
im Detailbereich unter Suchen suchen. Lassen Sie mich Ihnen genau
zeigen,
warum das so ist, ohne zu suchen. Sie möchten nach unten scrollen und suchen nach der Option „Besitzen“
oder „Automatisch besitzen“. Schauen wir nun nach unten und schauen wir uns an, warum es sich
um Automatisches Besitzen handelt. Du wirst scrollen.
Lass uns jetzt einfach danach suchen. Autoposesse. Hier werden Sie feststellen, dass dies die
Suchbegriffe Autopossess sind, und es gibt uns ein paar verschiedene Optionen Es heißt,
Autopossess-AI wurde in WIL platziert. Sagen wir einfach deaktiviert. Ich sollte niemals von der KI
besessen sein. Es ist eine Schachfigur. Stattdessen sagen wir einfach
Autoposess Spieler Null, das ist gut genug. Okay? Also, wenn wir
jetzt reinkommen und Play drücken. Beachten Sie, ich klicke,
ich bewege mich. Lassen Sie mich noch einmal versuchen zu
zeigen, was ich
auf der Tastatur drücke. Ich drücke auf den schlechtesten
Tag und es
passiert nichts , weil wir die Kontrolle über den
Spielercharakter
übernommen haben , aber wir haben
die Steuerung für den
Spielercharakter noch nicht implementiert . Aber das ist ein recht
einfacher Anfang. Zumindest haben wir jetzt ein
Spielercharakter-Objekt. Im nächsten Video werden
wir eine Kamera hinzufügen und
dann werden wir etwas Grafik
hinzufügen.
6. 005 Importieren von Kunst in Unreal Engine für die Spielfigur: Ordnung. Jetzt haben wir unseren grundlegenden Spielercharakter
, der direkt vor uns liegt. Er wird
sofort besessen, wenn das Spiel beginnt. Wenn wir also auf Play klicken, sind
wir damit verbunden Wir sind bereit, die Kontrolle darüber zu
übernehmen. Jetzt fügen wir dem
Spielercharakter einfach eine Kamera hinzu. Wir haben eine schöne 2-D-ähnliche
Ansicht des Charakters. Also gehen wir zurück
zum Bauplan und
fügen eine weitere Komponente Nun, diese Komponente wird einfach einen Federarm
bekommen, oder? Zeig mir den Federarm. Nun, die Federarmkomponente, Sie können feststellen, dass sie
gleich da drüben ist, oder? nun auf die
Federarm-Komponente klicken, ist
sie im Grunde wie ein Leberarm, quasi wie ein Kameraarm in
Kinoqualität Wir werden jetzt
eine weitere Komponente hinzufügen und einfach
nach der Kamera suchen Da sind wir. Da sind wir also. Wir haben die Kamera, wir haben den Federarm. Also lasst uns das kompilieren. Und wenn wir dann
zurück ins Spiel gehen, stellen Sie
fest, dass, sobald Sie
die Spielerkomponente ausgewählt haben, jetzt unten rechts eine kleine
Kamera zu sehen ist, die Sie zeigt. Was die Kamera
sieht, richtig? Die Kamera, die Sie an den Player
angeschlossen haben. Lass mich ein bisschen rückwärts gehen. Sie können sehen, dass sich
dort die Kamera befindet. Und so wie es
momentan eingerichtet ist, ist
es so eingerichtet, dass die Bewegung, die Kamera den Charakter von
der linken Seite betrachtet ,
was bedeutet, dass sich der Spieler, um sich
nach links und rechts zu
bewegen, auf der Y-Achse nach links und
rechts bewegt. Das ist diese grüne Achse, und die Tiefe würde von
der X-Achse bestimmt. Okay. Jetzt, von hier aus, drücken
wir einfach Play. Vala, wir sind jetzt direkt
mit
dem Spielercharakter verbunden, und das ist eher die Kamera als
der Spielercharakter, das ist die Kamera, die an den
Spielercharakter
angeschlossen ist an den
Spielercharakter
angeschlossen Das ist cool. Bevor wir nun zu einem
eingehenderen Planungsprozess übergehen, wollen wir dem
Spielercharakter auch
etwas Kunst hinzufügen . In Ordnung. Nun,
um dem Spielercharakter Kunst hinzuzufügen,
gibt es einen Ordner, der dir zur
Verfügung gestellt wurde .
Zippe ihn, komm rein, hol alle Sprites
und kopiere sie und gehe dann in
den Ordner von Hey, a Hero's Journey, das sollte der Ordner sein, der darauf
basiert, wie du ihn benannt hast Gehe zum Inhalt, gehe zu
den Charakteren. Wir haben es so organisiert. Gehen Sie zu Spieler
und Grafik, und dann
fügen Sie die gesamte Grafik hier ein. Und wenn das erledigt ist, wechseln Sie
zu Unreal Engine. Jetzt, in Unreal Engine, werden
Sie feststellen, dass, nachdem wir diese
Grafik eingefügt haben,
ein kleines Pop-up zeigt, dass ein kleines Pop-up zeigt 124 Änderungen an
Quellinhaltsdateien erkannt wurden Möchtest du sie importieren? Und es ist ganz einfach, sag
einfach Import. Unreal Engine
wird also all die Dateien einbinden
, die wir importiert haben Jetzt, wo wir
diese Dateien hier haben, werden
wir uns einfach mit der Kunst
befassen. Ich stelle fest dass
wir all diese
verschiedenen Sprites haben, die wir für
unseren Spielercharakter verwenden werden Das sind ein paar
sehr nette Sprites, einige einfache Sprites,
die wir verwenden werden Um hier
voranzukommen, wollen Sie als Erstes A kontrollieren, Sie haben
alle Sprites ausgewählt
und dann
klicken
Sie mit der rechten Maustaste und nach dem Rechtsklick gehen
Sie zu Sprite-Aktionen,
und Sie möchten im Grunde Paper-2-D-Textureinstellungen anwenden Nett. Jetzt werden Sie
feststellen, dass Ihre Sprites richtigen Einstellungen für
den Hintergrund
und die Transparenz
haben den Hintergrund
und die Transparenz Das bedeutet, dass die
Sprites jetzt nutzbar sind. Nachdem Sie die Sprites importiert
und
einige
Sprite-Einstellungen vorgenommen haben, werden
wir als Nächstes ein einfaches Sprite
auf unser Player-Objekt
anwenden .
7. 006 Eine einfache Idle-Animation einrichten und Sprites und Flipbooks verwalten: In Ordnung. Jetzt, wo wir unsere Sprites in
der Unreal Engine haben, ist
es an der Zeit, sie tatsächlich
zu nutzen Um das zu tun, gehen
wir also zurück zum
Helden-Blueprint Und von hier aus werden
wir
eine weitere Komponente hinzufügen und
einfach nach einer Sprite-Komponente
suchen, und wir haben papiergrundiertes Sprite und
Papier-Sprite-Komponente Papier-Sprite-Komponente Jetzt klicken wir einfach auf die
Papier-Sprite-Komponente
und das ist alles, und das ist alles Nachdem wir das Sprite
ausgewählt haben, haben
wir einige Optionen auf der Detailseite
des Sprites, Beachten Sie auf der Detailseite
des Sprites, dass wir aus einer Reihe von
Sprites
auswählen können, die wir erstellt haben aus einer Reihe von
Sprites
auswählen können, die wir Beginnen wir mit der
Erstellung eines Sprites. Wenn ich die Strg-Taste
und die Leertaste drücke, ist
das grundsätzlich universell
, wenn Sie etwas herausziehen möchten Strg und Leertaste, es öffnet
unsere Dateiauswahl. Und dann komme ich hier runter. Nehmen wir an, ich bin einfach zum Air Tak gekommen und ich bin rausgekommen und habe zu
Sprite Actions gegangen und auf Create Sprite
geklickt Jetzt
wird aus diesem einzelnen PNG ein Sprite. Wenn ich wegklicke und hier zu den Quell-Sprites
zurückkehre. Ich kann nach unten scrollen und es wird der
Abenteuer-Luftangriff angezeigt Anfangs
hatten wir einen Würfel aufgestellt, aber jetzt verdeckt
er unsere Sprites. Also werde ich einfach
auf Löschen drücken, weil wir den Würfel nicht mehr
benötigen Also klicke ich noch einmal auf das
Paper Sprite. Ah, es gibt ein Problem
mit der Positionierung. Wählen Sie im Moment Ich habe gerade die Quelle
ausgewählt, als
ich das Sprite ausgewählt habe Lassen Sie mich das herausziehen und wieder auf den Capsule
Collider legen Lassen Sie mich
das wirklich schnell löschen. Ich repariere das nicht in der Post. Ich lasse den
Fehler da drin. Ich gehe zurück und
füge einfach ein Paper Sprite hinzu. Okay, also werde ich ein Paper Sprite
hinzufügen. Da ist es. Jetzt ist es
in der richtigen Position. Und dann, weil seine Position in der Mitte sein
sollte, und dann ändere ich
den Quell-Sprite auf den Luftangriff, und da ist er Unser Luftangriff ist jetzt da. Und wenn ich in die
Entwicklerebene gehe, stelle ich
fest, dass unser Luftangriff da ist, aber wir müssen
die Kamerarichtung ändern , denn
wenn
wir jetzt auf Play drücken, sehen wir nichts, weil das Sprite aus einem Winkel
betrachtet wird Also werden wir wieder hierher kommen. Wir werden den Federarm auswählen. der Federarm ausgewählt ist, kommen
wir hierher und ändern
die Drehung. Jetzt wollen wir, dass er
um 90 Grad gedreht wird. Nein, das ist auf der X-Achse. Wir wollen es um 90 Grad drehen, sehen
wir uns die Y-Achse an. Nein, das ist dein. Wir wollen es 90 Grad haben. Perfekt. Wir wollen einen negativen Wert von 90
Grad auf der Z-Achse haben. Das ist minus 90. Sie können dort sehen, was
ich ausgewählt habe. Also dieses Mal, wenn wir wieder
hierher kommen und auf Play klicken,
stellen Sie fest, dass Sie
den Sprite genau
dort sehen . Das ist gut Nun, es gibt ein paar
Dinge, die wir tun werden. Erstens werden
wir
die Skalierung so anpassen , dass sich das
Sprite unten befindet und die passende Größe hat Also wähle ich
das Papier-Sprite aus. Ich passe seine Position
so an, dass
sie niedriger ist als die ursprüngliche Position. Und dann werde ich seine Skala
erhöhen. Ich werde auf
dieses Protokoll klicken , sodass es
eine feste einheitliche Skala hat, und dann werde ich seinen Maßstab
erhöhen. Dann werde ich
es ein bisschen erhöhen. Perfekt, und klicken Sie darauf. Und jetzt, wenn wir auf Play klicken, sehen
wir diesen
Schwertangriff als unseren Sprite Das ist nicht das, was wir
tatsächlich verwenden werden, aber es ist einfach gut zu wissen, wie
die Systeme zusammenarbeiten Jetzt, mit all dem, kommen
wir zurück zum Helden und wir werden
all unsere Sprites wieder aufrufen Jetzt
geben wir ein, wonach wir suchen
wollen , ist der untätige Sprite Also werden wir von
Idle 0 auf Idle 3 klicken. Okay, von IDO
Null bis IDO Drei, und dann werden wir erneut
klicken und dieses Mal Sprite-Aktionen, wir werden Sprite erstellen Jetzt haben wir also diese Sprites. Das sind die eigentlichen Sprites. Beachten Sie, dass neben den Namen Sprite
stehen wird. Das sind keine Bilder, das
sind Sprites. Dann klicke ich einfach
von Null auf Drei
und dann klicke ich wieder mit der
rechten Maustaste Aber dieses Mal werden
wir,
anstatt ein Sprite zu
erstellen, ein Flipbook erstellen Ein Flipbook besteht aus einer Reihe von Sprites
, die miteinander verbunden sind. Beachten Sie jetzt, wenn Sie sich
das Flipbook ansehen , lassen Sie mich Lass mich das nochmal öffnen. Du solltest
es deutlich von deiner Seite sehen können. Wenn ich mit der Maus darüber fahre, wird die
Sprite-Animation angezeigt Das ist fantastisch.
Anstatt ein Sprite zu haben, wollen
wir jetzt ein unbenutztes
Animations-Flipbook Um das nun
in eine echte Engine zu implementieren, wir einfach zum Quell-Sprite
zurück Okay. Und du wirst sofort
feststellen, dass es uns keine Sprites zeigt Vielmehr zeigt es
uns nicht das Flipbook. Es zeigt
uns nur die Sprites, und das
werden wir ändern Also kommen wir jetzt zurück. Wir werden die Papier-Sprites entfernen , weil wir verstanden haben, wie man Sprites
ins Spiel einfügt Okay, das löschen wir einfach. Und dieses Mal wollen wir
ein Flipbook aus Papier und fügen das
dann hinzu Das ist also unser Flipbook. Und jetzt wähle ich das Flipbook und dann
sucht es nach dem Quell-Flipbook Ich öffne es und
klicke auf Adventurer Idol Flip klicke auf Adventurer Schauen wir uns jetzt an, wie
es im Spiel aussieht. Wenn du jetzt auf Play
drückst, kannst du sehen, wie sich
unser kleiner Abenteurer und ab bewegt,
basierend auf dem Flipbook Wir werden den gleichen grundlegenden Prozess durchlaufen
. Wir kommen rein und wollen
das Flipbook weglegen und es aufschreiben. Mal sehen, ungefähr
minus 70 Einheiten scheinen die richtige Menge zu sein Und dann
fixieren wir die Skala und skalieren sie auf etwa das
Vierfache, glaube ich,
und skalieren sie dann wieder zurück. Sie wollen, dass es nur
den unteren Rand unserer berührt den unteren Rand unserer , weil das
wirklich wichtig ist. Diese Kollision hier
, diese Kapsel
ist das Wichtigste. Lass mich das
auf fünf erhöhen. Perfekt. Bei fünf und bei etwa
20 Einheiten auf der X-Achse scheint
es also perfekt zu
funktionieren Wenn wir jetzt also auf Play
Notice drücken, ist unser Charakter da. Aber die ID-Animation ist
ziemlich schnell, oder? Also suche ich einfach nach der
Abenteurer-ID, dem Flipbook. Und was ich dann tun werde, ist nachdem Sie von hier aus auf
das Flipbook doppelgeklickt haben, jetzt ist die Abenteurer-ID hier und auf der rechten Seite
und die Details,
wir können die Bildrate senken wir Ich klicke einfach
darauf und senke
die Bildrate, sodass ich sie auf
neun reduzieren kann Okay, das ist eine viel
bessere Idee, Animation. Ich denke, das ist viel
realistischer. Damit drücke ich Strg S
, um zu speichern. Nun, ich denke, das ist eine
gute Flipbook-Animation. Jetzt haben wir unsere Welt und wir
haben unseren Grundcharakter. Als Nächstes werden wir uns damit befassen,
wie wir jetzt tatsächlich anfangen Code
hinzuzufügen, weil jetzt einen einfachen
Charakter haben. Es ist bereit. Wir haben gelernt, wie
man Sprites benutzt, Sprites
ins Spiel sie
an einen
Spielercharakter anhängt Aber wenn ich zeige, was
gerade
auf meiner Tastatur ist, können wir uns immer noch nicht
bewegen und interagieren Wir werden also nach
einer kurzen Sitzung über die
Planung und Ausführung des Spieldesigns lernen, wie man all das macht . Lassen Sie uns als Nächstes darauf eingehen.
8. 007 So planst du dein Spiel: Ordnung. Also
müssen wir jetzt ein grundlegendes Konzept durchgehen, das für
Sie in Zukunft sehr nützlich
sein wird . Das funktioniert in allen Lebensbereichen, aber in der Spieleentwicklung ist
es einzigartig nützlich, okay? Lassen Sie mich damit beginnen, einfach zu sagen , dass Planung zu viel ist. Okay. Planung ist okay.
So einfach ist das. Und mit Planung
meine ich nur, dass du lernen wirst ,
Dinge aufzuschreiben und ihnen zu folgen. Das heißt, wenn
du entscheidest, wie das Spiel, die
Charaktere oder irgendein System funktioniert, schreib es
einfach auf und versuche, es
zum Leben zu erwecken. Lassen Sie mich Ihnen jetzt etwas
näher erläutern , wie ich Ihnen zeigen
werde,
wie Sie das tun können, um
sicherzustellen, dass Sie Erfolg haben denn der Großteil der Gründe, warum
Indie-Game-Projekte scheitern, Spieleprojekte scheitern, allgemeines Scheitern im
Allgemeinen, ist ein Mangel an richtiger und klarer Planung
und Umsetzung. Okay? Lassen Sie mich
das jetzt etwas genauer erklären. Ordnung. Bei der Spieleentwicklung denkt
man über ein einfaches
System nach, das ich gerne D a A
nenne. Okay? So nenne ich es. Ich nenne es D, a A. Das ist im Grunde das
System, das wir für diese
Spielentwicklung verwenden werden, und es sollte für Sie am Ende
ziemlich Sinn ergeben. Jetzt Design. Design bedeutet, sagen wir, wir entscheiden, dass
unser Spielercharakter Lage sein
soll, mit
einem Schwert anzugreifen und herumzuspringen. Das ist im Grunde
alles, und später werden
wir ihm Pfeil und Bogen
für den Kampf auf große Entfernung geben. Das ist Grunddesign,
Leveldesign. Du zeichnest einfach Sachen raus. Sobald du mit
dieser grundlegenden Sache fertig bist, werden
wir programmieren. Code bedeutet in diesem Beispiel
Blaupausen, das Erlernen,
wie man Baupläne benutzt Damit wir wissen, wo er
springen soll. Welche Baupläne müssen wir organisieren,
damit er springen kann, okay? Also wissen wir, hey, ich muss diesen Blueprint-Knoten
organisieren, diesen Blueprint-Knoten, diesen, und dann wird der Sprung verfügbar sein
, okay Sobald wir mit
der Codierung fertig sind, gehen
wir zur Bei der Kunst dreht sich alles um die Sprites,
die Sprite-Animation. Wenn Sie später einmal
ein Drei-D-Designprojekt machen, wird
es
Modeling und Animation beinhalten,
aber es wird zu Kunst zusammengefasst Und zu guter
Letzt ist da noch Audio. Bei Audio geht es darum,
den richtigen Sound für das Spiel zu finden. nun mit diesem einfachen Beispiel das Sie im Hinterkopf behalten möchten, Lassen Sie uns nun mit diesem einfachen Beispiel,
das Sie im Hinterkopf behalten möchten, damit beginnen,
am Spielercharakter zu arbeiten, ihn ein wenig
so zu
gestalten, dass wir verstehen,
was er soll,
und dann fahren wir mit ihn ein wenig
so zu
gestalten , dass wir verstehen,
was er soll, dem Code fort. Und nach dem Programmieren
werden wir zur Kunst und dann
zum Audio übergehen . Okay. Lass uns das sofort tun. Lassen Sie es uns jetzt
wirklich, wirklich einfach halten. Okay? Also lass mich das kopieren. Also entwerfen wir einen
Spielercharakter, richtig? Also, was wollen wir
damit machen, oder? Also zunächst wollen wir, dass
es sich nach links und rechts bewegt. Okay. Als Nächstes wollen wir, dass es mit einem Schwert angegriffen wird. Danach brauchten wir auch eine Basisgesundheitsleiste, oder? Sie muss in der Lage sein, Schaden
einzustecken. Nennen wir es
Gesundheitsleiste und Schaden. Und dann, direkt nach dem Angriff mit dem
Schwert und der Gesundheitsleiste, wollten
wir auch Pfeil und Bogen
haben. Um auf Range zu schießen. Nun, das ist das Ende
der Planungsphase. Es ist ein sehr einfacher Plan. Es ist ein Basisplan, und wir werden alle 11
durchgehen. Oh, warte, bewege dich nach links
und rechts und spring. Okay, perfekt. Es kann auch springen. , Lassen Sie uns in diesem Sinne sofort zum
nächsten Video übergehen in
dem wir etwas über Bewegung und das
Einrichten von Steuerungen lernen werden , , und lassen Sie uns von dort aus
mit den Dingen beginnen.
9. 008 Eine ausführliche Erklärung zum Hinzufügen von Controller-Eingaben: Ordnung. Fangen wir
schnell an Zuerst bewegen nach links und rechts und springen dann. Lass uns anfangen. Lass uns zurück zu
Unreal Engine gehen. Okay. Jetzt, wo wir mit
unserem Spielercharakter wieder bei
Unreal Engine sind, wollen
wir die Möglichkeit haben, uns
nach links und rechts zu bewegen, und wir werden
mit der Steuerung beginnen Nur um euch visuell zu zeigen, ich meine Tastatur habe, sodass ihr wisst
, wann ich
AWS und D drücke . Wir
konzentrieren uns zunächst hauptsächlich auf A und D. Und dann,
wenn Sie möchten, dass das auf dem Controller funktioniert, zeige
ich Ihnen auch, wie
Sie es so einrichten können, dass die Bewegung Ihrer
Controller-Positionierung
und Ihren Tasten
basiert . Zunächst wollen
wir noch einmal Strg und
Leertaste drücken
und außerhalb von Charakteren gehen wir noch einmal Strg und
Leertaste drücken
und außerhalb von Charakteren zurück zum
allgemeinen Inhaltsordner, und genau hier werden
wir einen neuen
Ordner erstellen und ihn Controls nennen. Der Grund, warum wir es
Steuerung nennen , ist, dass
es
alles enthalten wird , was wir verwenden, um zu bestimmen, welche
Tasten der Spieler drücken kann. Okay? Also lass uns darauf eingehen. also innerhalb der Steuerung Lassen Sie uns also innerhalb der Steuerung mit
einem einfachen Steuerelement beginnen, das sich nach links und rechts bewegt. Sie werden also mit der linken Maustaste klicken. Und nach dem Linksklick möchten
Sie zu den Eingaben gehen. Welches ist hier, und was Sie wollen, ist, dass Sie
eine Eingabeaktion wollen. Wir werden mit nur einem beginnen. Und wir werden es „Nach rechts bewegen“
nennen. Diese Eingabeaktion oder
dieser Button wird den Spieler also
veranlassen, sich
in die richtige Richtung zu bewegen. Und dann werden wir wieder zu den Eingaben
gehen. Aber dieses Mal suchen
wir nach einem Eingabe-Mapping-Kontext.
Wir werden darauf klicken. Und wir werden es einfach Player-Map nennen. Wir haben also Move Wight
, eine Aktion mit nur einer Eingabe, und wir haben eine Spielerkarte Die Spielerkarte besteht im Grunde, wie Sie an den Symbolen
sehen können
, aus einer Sammlung von Eingabeaktionen
, die Sie drücken können Um
sicherzugehen, dass Move Wright
korrekt funktioniert, doppelklicken
wir zuerst auf Move Right und es
öffnet sich dieses Fenster. Sie können also mit einer
einfachen Beschreibung der Aktion beginnen und wir können
sie einfach als Züge des Spielers beschreiben. Richtig. So kannst du es behalten. Und sollte es dann
ausgelöst werden, wenn es angehalten wird? Nein, es sollte nicht
ausgelöst werden, wenn es angehalten wird. Und dann alle Zuordnungen reservieren. Sie können es im Grunde
so einrichten, dass dies nicht außer Kraft gesetzt werden kann,
oder wir lassen es jetzt Und dann der Werttyp,
das ist wichtig. Jetzt können wir
den Wertetyp ändern. Im Moment setzen wir auf
einen digitalen Booleschen Wert. Das kannst du genau dort sehen. Boolesche Werte
sind im Wesentlichen Einsen und Nullen. Wenn wir es also auf einen booleschen Wert setzen, ist
es Wir können es auch als
Achse eins D oder Aces zwei
D setzen . Aber im Grunde stellt die
Einstellung Aces eins D sicher, dass
es sich um einen Wert von 0-1 handelt Der Einfachheit halber
und zur Veranschaulichung werden
wir damit beginnen, dass es sich
nur um eine digitale Buchebene handelt Jetzt, wo das erledigt ist, schließen
wir es einfach. Und dann wieder die
Leertaste drücken, wir öffnen die Spielerkarte. Beachten Sie nun auf der linken Seite, dass es einige Zuordnungen gibt Wir fügen einfach eine hinzu,
indem wir auf das Plus klicken Wenn wir nach unten scrollen,
stellen Sie fest, dass
uns die Bewegung nach rechts angezeigt Klicken Sie auf die Bewegung nach rechts,
und von hier aus können
wir einfach auf diesen
kleinen Pfeil klicken, um nach unten zu scrollen. Jetzt zeigt es uns , dass damit keine
Aktionen verbunden sind. Wir
können jedoch einfach darauf klicken und
dann sollten wir D sein. Also habe ich auf der Tastatur auf
D geklickt Okay? Das können
Sie tun, denn was die
Unreal Engine
im Wesentlichen
kann, ist , auf Ihre Tastatur zu
hören Wenn ich also erneut darauf klicke
und die Leertaste drücke, wird die
Eingabe zur Leertaste geändert Wenn ich
erneut darauf klicke und W W drücke, ist das im Grunde das Konzept Wir können es vorerst bei D belassen. Und dann
klicken wir einfach auf die Klasse, wodurch eine weitere Bindung hinzugefügt wird. Diesmal möchte ich
auf die Tastatur klicken. Ich
öffne einfach meinen Controller und drücke
auf Diesen Wert auswählen,
und ich drücke und ich die rechte Gamepad-Taste
auf meinem Ich habe das gedrückt und es hat es hier
gespeichert, was gut sein wird Das ist alles, was wir von hier aus
tun müssen, okay? Also haben wir es jetzt so eingerichtet, dass es eine Eingabeaktion „Nach
rechts bewegen“ gibt. Und
wenn Sie in den Details der Spielerkarte D drücken, wird Zug nach rechts
ausgeführt. Wenn du die rechte
Taste auf deiner Tastatur drückst, besser gesagt, auf
deinem Controller, wird der
Spielercharakter nach
rechts bewegt , oder besser gesagt, es wird die Aktion „Nach rechts bewegen“
ausgeführt. all das erledigt ist, können
wir jetzt zum Spieler-Blueprint gehen und diese Steuerelemente
hinzufügen Gehen Sie also zum Helden Blueprint. Und jetzt haben wir
damit begonnen , Anpassungen am
eigentlichen Spielerplan Jetzt
wollen
wir als Erstes sicherstellen, dass es eine
Kontroll-Leertaste gibt Wir wollen sicherstellen
, dass die Spielermap
der Eingabekontext ist , der in Unreal Engine verwendet
wird Jetzt werden wir das auf
einem Knoten tun, der als
Begin-Play-Knoten bekannt ist Das ist dieser Knoten.
Spiel beginnen bedeutet, dass dies der Code ist, der ausgelöst wird, wenn
Unreal Engine gerade gestartet wird
oder wenn dieses Objekt in
der Welt erscheint Also lass uns das machen. Das Erste, was
wir tun werden, ist mit einem einfachen Rechtsklick den Controller zu bekommen. Das ist es, was wir wollen. Beachten Sie die Pfote, holen Sie sich den
Controller, das ist gut. Aus dem Rückgabewert
wollen wir dann einen Controller für zwei
Spieler casten Im Grunde sagen wir der
Unreal Engine, dass sie
auf alle Steuerungen
dieses Players zugreifen soll , und dann verbindet das Casting die
Verbindung,
sodass jede Funktion das gecastete
Objekt durchläuft Das ist eine generalisierte Sichtweise
der Dinge. Dann werden wir das Startspiel mit
dem
Cast-to-Player-Controller verbinden dem
Cast-to-Player-Controller Sobald das erledigt ist, haben wir jetzt
unseren Controller geladen. Wir
werden auf
ihn gecastet, Wir
werden auf
ihn gecastet sodass wir von ihm aus auf
Funktionen zugreifen können Jetzt, als Player-Controller, wollt ihr
das herausziehen und Enhanced eingeben
und da sind wir, gehen wir zur zweiten Option über, nämlich das erweiterte
lokale Spieler-Subsystem abrufen Auf diese
Weise können wir
die verschiedenen Eingaben auswählen , die
wir verwenden werden Und sobald das erledigt ist, ziehen
wir es ein letztes Mal heraus und wollen den
Mapping-Kontext hinzufügen. Sie können einfach nach dem Klicken mit der
rechten Maustaste „Karte
hinzufügen“ eingeben und der Mapping-Kontext wird hinzugefügt. Also verbinden wir
den Knoten hier drüben. Und dann geh runter und
da sind wir auf der Spielerkarte. Denken Sie an den Eingabekontext für
die
Spielerkarte , den wir auswählen. Nachdem wir das ausgewählt haben, wollen wir uns schnell ansehen,
wie dieser Code ausgeführt wird. Das Spiel starten bedeutet, dass das Spiel
auf diese Weise gestartet wird. Im Grunde läuft es nach
dem Bauplan des
Spielercharakters ab dem Bauplan des
Spielercharakters Aber da sich der
Spielercharakter zu Beginn
des Spiels
in der Welt befindet , wird
es damit beginnen Das ist selbsterklärend,
sobald das Spiel beginnt. Dann geht es darum,
den Controller zu bekommen, okay, und ihn dann
als Player-Controller Wir haben also Zugriff
auf diese Funktionen. Wir haben das lokale
Player-Subsystem für Eingaben, okay. Und dann sagen wir: Hey, benutze die Spieler-Map als
Mapping-Kontext Nachdem das alles
erledigt und eingerichtet ist, können
wir jetzt
die Eingabe verwenden, die wir eingerichtet haben. Lassen Sie mich nun all
diese anderen Knoten
hierher ziehen , damit wir einen
klaren Überblick haben. Als Nächstes
werden wir nur der Einfachheit
halber und um
sicherzugehen, dass das funktioniert, klicken
wir mit der rechten Maustaste und
suchen nach dieser Eingabe. Nun, diese Eingabe, die wir
genannt haben, bewegt sich nach rechts. Also tippe, bewege dich und
merke
, dass das Aktionsereignis hier schon
eingerichtet ist . Da es sich um einen booleschen Wert
handelt, ist es wie: Hey, wenn es bei einer erweiterten
Eingabeaktion ausgelöst wird, bewege dich nach rechts Lassen Sie uns das einfach
herausziehen und wir wollen mit dem
Drucken beginnen Drucken Sie diese Zeichenfolge aus. Und der Text, wir
werden sagen: Hey, Spieler bewegt sich nach rechts. Und das ist es. Voila, gut. Jetzt, mit genau dem, werden
wir in der
Lage sein zu testen und zu sehen, ob das unsere Eingaben
liest An
dieser Stelle möchten Sie also auf
Kompilieren klicken und dann
zur Entwicklerebene wechseln. Wenn Sie nun
auf der linken Seite auf Play drücken , beginnen wir
jedes
Mal, wenn Sie drücken, mit der Tastatur. Also werde ich D auf
der Tastatur drücken. Das ist gut. Wir wissen also, dass das
tatsächlich richtig funktioniert. Lassen Sie mich die Ansicht vergrößern, damit
der Text klar erkennbar ist. Sobald ich D auf der
Tastatur drücke und mich in Aldon
befinde, muss ich Play drücken Drücken wir Play. Hier sind wir. Jetzt, wo das Spiel läuft ich D auf der Tastatur drücke, ausgedruckt diese Aktionen ausgedruckt und der Text auf dem Bildschirm gedruckt
. Es heißt: Hey, das Spiel
bewegt sich nach rechts. Das ist gut. Aber jetzt testen wir das mit
dem Controller. Ich habe den Controller hinzugefügt. Ich habe hier
drüben Play O gedrückt, ich
habe Play gedrückt. Komm wieder rein und lass uns
sehen, ob der Text auftaucht. Wenn ich also rechts
auf den Controller drücke
, wird registriert,
dass sich der Spieler bewegt. Wenn ich D auf der
Tastatur drücke, wird es registriert. Das ist also die
grundlegende Grundlage dafür, dass Ihre Eingaben
innerhalb der Unreal Engine gelesen werden können Jetzt, wo das erledigt ist, wollen wir die Bewegung hinzufügen. Aber kurz bevor wir die Bewegung
hinzufügen, wollte
ich Ihnen auch
das zeigen. Eines der guten Dinge
an Bauplänen. Beachten Sie, dass ich jetzt auf Play drücken
werde. Wir sind jetzt in dieser Welt. Ich klicke auf den Helden und du kannst sehen, was
die Baupläne bewirken. Ich ziehe das raus
, damit es
etwas weiter rechts auf dem Bildschirm erscheint Dies ist eine nützliche
Methode, um zu debuggen und sehen, wie die Blueprints tatsächlich
funktionieren Jetzt habe
ich im Hintergrund auf das Spiel geklickt Jetzt bin ich gerade im Spiel. Lass mich aus dem Spiel aussteigen. Als Debug-Objekt wähle
ich jetzt Hero aus Jetzt, wo das ausgewählt ist, drücke
ich Play Jetzt spielen wir im Spiel. Beachten
Sie, dass in dem Moment, in dem ich die rechte Taste
auf meiner Tastatur drücke, angezeigt
wird, dass die Bewegung nach
rechts gedrückt wird. Lassen Sie mich meinen Controller und
einige meiner schlimmsten Tage zeigen , damit es viel klarer ist. Ich klicke erneut auf Abspielen. Beachten Sie also, wenn ich
auf meinen Controller drücke, können
Sie
die Blaupausen visuell sehen können
Sie
die Blaupausen visuell sehen, die zeigen,
was funktioniert So können Sie sehen, dass das abgefeuert
wurde und funktioniert Wenn ich D drücke, wird es
ausgelöst und es funktioniert. Wenn ich eine andere
Taste drücke, passiert nichts. Wenn ich etwas anderes auf
der Tastatur drücke , passiert
nichts. So kannst du
deinen Blueprint ganz einfach auf
vielleicht einem zweiten Bildschirm einstellen deinen Blueprint ganz einfach auf
vielleicht einem zweiten Bildschirm auf
der anderen Seite Ihres Monitors Wenn Sie auf
der anderen Seite Ihres Monitors einige
grundlegende Doppelprüfungen durchführen möchten, ist
es gut, Ihren Code visualisiert
sehen zu können Lassen Sie uns nun die Bewegung
zu unserem Spielercharakter hinzufügen. Um die
Bewegungseingabe hinzuzufügen, verwenden
Sie im Wesentlichen den
ARD-Bewegungseingabeknoten. Genau hier, nach
der Druckzeichenfolge, ziehen Sie sie
einfach heraus, und dann verwenden Sie ARD-Bewegung und scrollen von
dort nach unten
und stellen fest, dass dort die Bewegungseingabe
hinzugefügt wird. Klicken Sie schnell darauf, das hinzuzufügen. dann die wilde Richtung angeht, müssen
wir eine Entscheidung
darüber treffen , in welche Richtung
wir uns bewegen. Nun wissen wir mit Sicherheit,
dass für unseren
Spielercharakter im Moment, wenn wir uns diese Richtungen ansehen, das Y die Tiefe steuert, das X die Bewegung
nach links und rechts steuert und Z die vertikale Bewegung. Da wir wissen, dass
wir uns
positiv in X-Richtung bewegen wollen,
wenn wir uns nach rechts bewegen wollen. Wir werden einfach entscheiden wir die Entscheidung treffen werden,
dass
wir für die Wildrichtung einfach eins
in X-Richtung sagen. Jetzt, wo genau das ist,
klicken Sie auf Kompilieren und kehren Sie
dann zur
Entwicklerebene zurück und spielen Sie. Und jetzt ist es jedes Mal gut, wenn
ich gerade D auf der Tastatur D auf der Tastatur drücke
und es sich in die richtige
Richtung bewegt. Ich drücke es gerade
auf meinem Gamecontroller und es macht dasselbe. Lassen Sie mich
es jetzt für Sie visualisieren. Sie sollten genau
dasselbe auf
Ihrem Bildschirm sehen , wenn Sie
richtig gefolgt sind. Falls es etwas gibt, gehen Sie
immer zurück und schlagen Sie nach. Also drücke
ich auf meinem Controller nach rechts. Der
Charakter bewegt sich nach rechts. Auf meiner Tastatur drücke ich D. Der Charakter bewegt D
und Whoop D aus der Welt Okay, ich habe Escape gedrückt
, um da rauszukommen. Aber ja, das ist okay. Also haben wir eine
grundlegende Bewegungseingabe gemacht. Im nächsten Video wir es für die Bewegung
nach links und rechts bereinigen und der
Bewegung
ein paar weitere Tasten hinzufügen , um sie zu verbessern. Lass uns
10. 009 Bewegungen nach links und rechts mit Tastatur und Controller: Ordnung. Nun, da wir den
Spielercharakter in der Lage
haben,
sich nach rechts zu bewegen und du weißt, wie Eingaben funktionieren, werden
wir
dem Charakter
Links-Rechts-Bewegungen hinzufügen und lassen mich
dir zeigen, wie man das richtig
macht. Zunächst haben wir
zunächst
eine Eingabe für die Bewegung nach rechts hinzugefügt eine Eingabe für die Bewegung nach rechts und
diese dann einfach zur Spielerkarte hinzugefügt. Jetzt nehmen wir eine
Änderung vor, bevor wir weitermachen. Lassen Sie uns das schnell
von „Nach rechts bewegen
“ in „Bewegung“ umbenennen . Weil wir
eine Eingabeaktion haben wollen,
die den
Spielercharakter sowohl
nach links als auch nach rechts bewegt . Also habe ich es einfach Bewegung
genannt. Okay. Das wird unser Ausgangspunkt
sein. Sobald Sie mit der
Änderung dieses Namens fertig sind, werden wir ihn
jetzt öffnen, und das ist im Grunde
nur ein Doppelklick darauf. Und im Moment ist es einfach als
digitaler Blayer eingerichtet, oder? Lassen Sie uns das nun in
einen D-Vektor mit der Achse drei ändern. Das ist im Wesentlichen das,
was wir wollen Achse drei D ermöglicht es uns, ihm einen Wert auf der X-,
Y- und Z-Achse
zuzuweisen , um seine Bewegung zu
bestimmen. das erledigt ist,
gehen wir
als Nächstes auf
die Spielerkarte. Derzeit wird die
Spielerkarte als Bewegung angezeigt. D, lass mich öffnen und
sicherstellen, dass meine Schlüssel sichtbar sind. Es ist derzeit
auf D Pad rechts eingestellt, das heißt, um es in die richtige Richtung
zu bewegen, und auch D auf der Tastatur. Aber was wir wollen, ist, dass
wir zunächst die
Analogsticks
verwenden können . Wir wollen links
und rechts auf den Tasten drücken können, und dann wollen wir auch A und D verwenden können Damit das nun
mit dem aktuellen Vektor Drei
D funktioniert , als den wir eingerichtet haben, müssen
wir eine geringfügige Änderung
vornehmen. Also werden wir damit beginnen, D hier
zu lassen. Als Nächstes werden wir tatsächlich eine Reihe weiterer Schaltflächen
hinzufügen. Lass mich das ziehen. Ich kann das
einfach nach oben ziehen , damit ich
keine dieser Schaltflächen verdecke. Ich werde das einfach exzellent auswählen und nach
oben ziehen. Ich habe darauf geklickt Ich nenne es A, weil
wir A und D
brauchen werden . Dann gibt es das
Steuerkreuz rechts, und dann
drücke ich tatsächlich links Lassen Sie mich zuerst links drücken und
dann auf das D-Pad schreiben Dann gibt es
eine weitere Eingabe, nämlich die X-Achse
des Thumbsticks Die X-Achse des Thumbsticks entsteht
im Grunde dadurch, dass ich beim Klicken auf NrlenGiNet Listen
geklickt habe und meine X-Achse ein wenig nach links und rechts gedrückt
habe Wenn ich darauf klicke und nach oben drücke, es sich die Y-Achse an Aber das brauchen wir nicht. Wir brauchen die X-Achse, also habe ich
das jetzt richtig eingerichtet. Nun, da sie genau in
ihrer aktuellen Form eingerichtet ist, möchte ich Ihnen schnell zeigen, was
Sie von der Bewegung Ihres
Charakters erwarten würden . Wenn ihr nun zum
Charakterentwurf zurückkehrt, werdet ihr feststellen, dass
es eine Änderung gegeben hat Nun, unser Plan
zeigt hier Handlungswert. Lassen Sie uns
diese Druckzeichenfolge schnell löschen. Es wird nicht benötigt und der Auslöser wird
direkt mit dem Bewegungseingang
verbunden . Okay. Jetzt, wo das direkt
verbunden ist, werden
wir auch
den Aktionswert verbinden. Beachten Sie den Aktionswert. Er zeigt X Null, Y Null und Z Null. Wir können das
direkt mit Wild Direction da
drüben verbinden . Mit nur dieser
einzigen grundlegenden Änderung können
wir jetzt schnell speichern und kompilieren. Lassen Sie mich das dann
herausziehen , damit wir es sichtbar sehen
können Wenn ich es öffne, drücke ich
auf Play, um zu simulieren. Okay. Beachten Sie das jetzt, wenn ich die
Analogsticks verwende, okay? Ich verwende derzeit die Analogsticks des
Controllers. Lass mich das nochmal einrichten. Der Controller-Analogstick ist jetzt in der Lage, den
Spielercharakter
in einen negativen Wert auf X
und einen positiven Wert auf X zu bewegen , und du kannst sehen, dass der
Blueprint reagiert Wenn ich jedoch auf dem D-Pad nach links
drücke, bewegt es sich vorwärts. Wenn ich auf dem
D-Pad nach rechts drücke, bewegt es sich nach rechts. Wenn ich D auf dem D-Pad drücke, und nicht, wenn ich D auf der
Tastatur drücke, bewegt es sich nach rechts. Wenn ich A auf der Tastatur drücke, bewegt
sie sich immer noch nach rechts. Nun, das
werden wir jetzt korrigieren. Also lass mich schnell auf
den Helden
doppelklicken , sodass mich das Spiel zurück hierher
zieht, Steuerung und Leertaste,
um das zu öffnen, und ich doppelklicke erneut
auf die Spielerkarte Jetzt nehmen wir eine
ziemlich einfache Änderung vor. Unter A bedeutet
A schlechtesten Fall D, was
Sie
im Wesentlichen nach links bewegen sollte . Wir suchen nach Modifikatoren, und dann fügen
Sie unter Modifikatoren den Skalierer hinzu Sie können es abtippen. Also skalar und öffne es und dann wollen wir
es auf negativ eins einstellen Und dann sind wir
mit der Einrichtung von A fertig und dann macht das Gamepad links
dasselbe Komm her, füge einen skalaren
Modifikator hinzu, um
die verwendete Skala so zu ändern , dass sich das Negativ auf der X-Achse nach
links bewegt Stellen Sie das als negativ ein. Und damit sind wir fertig. Wir drücken schnell Strg
S, um zu servieren. Und jetzt
sollte unsere Bewegung korrekt funktionieren. Ich lasse mich
vergewissern, dass meine Tastatur
angezeigt wird und mein Controller
links,
eher rechts auf dem
Controller auf Play drückt.
Ich hoffe, Sie können
das Klicken hören. Links macht das Richtige, und auf der Tastatur macht
A das Richtige. D macht das
Richtige, das ist gut. Dann glaube ich, mein Stock
driftet ein bisschen , aber das ist okay. Das ist nur ein
bisschen Drift. Das siehst du links, rechts und wir sind fertig. Nun, da wir mit der
Links-Rechts-Bewegung
grundsätzlich fertig sind , wollen
wir schnell zu unserer Planung zurückkehren. Denken Sie also ganz schnell daran, Code-Art zu
entwerfen. Jetzt sind wir mit
dem grundlegenden Design fertig. Wir wissen, was wir wollen. Wir wollen eine grundlegende
Links-Rechts-Bewegung. Es ist einfach. Wir sind mit dem Basiscode fertig. Im Moment funktioniert sie und sie
funktioniert richtig, die Bewegung. Lassen Sie uns nun im nächsten Video etwas
Grafik hinzufügen ,
damit die Laufanimation
korrekt funktioniert. Lassen Sie uns das in Zukunft tun. Und wenn wir damit fertig sind, fügen
wir das
Audio hinzu. Lass uns gehen.
11. 010 Zwang hinzufügen, Stick Drift korrigieren und Spielerposition festlegen: Okay, lassen Sie uns einige kleinere
Korrekturen vornehmen, bevor wir weitermachen. Jetzt, wo wir anfangen, Bewegung
zu verwenden, wähle den Spielercharakter aus. Und nachdem wir
den Spielercharakter
direkt unter den Details ausgewählt haben, transformieren
wir ihn und stellen
sicher, dass die Z-Achse diesen Bereich verlässt, aber stellen Sie sicher, dass er auf
Null steht , Null auf X und Y, damit wir wissen, dass es wilden Ort handelt, wenn
das Spiel bei
Null, Null beginnt , es ist quasi der
Mittelpunkt der ganzen Welt. Als Nächstes werden wir die Drift des
Controller-Sticks
schnell beheben. Sei aktuell, wenn
du das erste Mal spielst, wenn du dich bewegst, es gibt immer ein
bisschen Stick-Drift. Jetzt ist es ganz einfach, den
Stick-Drift zu beheben. Gehen Sie einfach zur
Spielermap, gehen Sie hier raus, gehen Sie zu den Modifikatoren
und fügen Sie bei den Modifikatoren den Modifikator hinzu und
fügen Sie den Modifikator hinzu, der als
Dead Zone bekannt ist Nachdem Sie die tote Zone gefunden haben, habe ich es hier schon gemacht Lassen Sie die Werte unverändert Damit wird
es keinen Stack-Drift mehr geben, wie wir es
im vorherigen Video gesehen haben. Nachdem das erledigt ist, müssen wir
noch eine letzte Sache verschärfen
, bevor
wir weitermachen Du gehst zum
Spieler-Blueprint. Sie werden die
Kapselkomponente auswählen. Und das Erste, wonach
wir suchen werden, ist, dass wir
eine Beschränkung hinzufügen wollen , und wir wollen sie auf die Z- und X-Ebene anwenden. Wir wollen ihre Position auf der Y-Achse haben.
Und das bedeutet,
dass sich der Spielercharakter nicht mehr
entlang der Y-Achse bewegen
kann Das wird
sehr wichtig sein. Lassen Sie mich tatsächlich auf den Helden
selbst
klicken und seine
Position entlang der Y-Achse fixieren. Das bedeutet, dass es richtig zwei D sein werden. Es kann sich nicht mehr entlang der Y-Achse nach oben oder
unten bewegen, sondern nur noch entlang der X-Achse.
Lassen Sie uns nur
sichergehen , dass wir nichts
vermasselt haben Das ist perfekt und das ist gut. nun im nächsten Video Lassen Sie uns nun im nächsten Video schnell
die Links-Rechts-Bewegung
für den Spielercharakter hinzufügen die Links-Rechts-Bewegung , was die Animationen
angeht. Lass uns
12. 011 Paperzd für das Animationsmanagement einrichten: In Ordnung. Als Nächstes fügen wir
eine laufende Animation hinzu. Um nun diese
laufende Animation hinzuzufügen, wir als Erstes zum Hauptordner zurück. Wir gehen zurück
zu den Charakteren, dem Spieler, und dann gehen wir unter
dem Spieler zurück
in den Art-Ordner. Jetzt führen
wir unter „Grafik “
eine Schnellsuche durch. Eines der guten Dinge an
gut organisierten Sprites ist, dass wir das abtippen können Beachten Sie nun, dass
unsere Run-Animation und nicht unsere laufenden Sprites 0-5
gehen.
Wählen Sie einfach alle aus Und dann Sprite-Aktionen
und Sprite erstellen. Erledigt. Jetzt tippe ich
erneut Ausführen ein, halte es organisiert und wähle 0-5 aus, klicke dann mit der rechten Maustaste
und erstelle ein Flipbook Jetzt haben wir also dieses
Flipbook von Adventure Run. Lass uns darauf doppelklicken und sehen. Jetzt
bewegen sich die
fünf Animationen gleichzeitig,
das ist gut Jetzt werde ich schnell die Entscheidung treffen,
die
Frames pro Sekunde um 15-5 fallen zu lassen Okay, jetzt schaut es. Es ist noch nicht da. Ungefähr sieben. Ungefähr zehn. Okay, ich denke, zehn
Bilder pro Sekunde, das ist eine vernünftige
Run-Animation. Jetzt, wo wir diese
grundlegende Laufanimation haben, wie werden wir
sie auf unseren Spielercharakter anwenden? Denn im Moment ist der
Spielercharakter noch da. Und was wir wollen, ist, wenn sich der
Spielercharakter bewegt, wir wollen
zu diesem Sprite wechseln Okay? Nun, um das zu tun, werden
wir weitermachen, und hier
vereinfacht die Verwendung von
Papier Z D zur Erstellung dieser Animationspfade unser Leben. Also gehen wir jetzt zurück
zum Player, lassen Sie mich schließen und den Text entfernen. Im Moment unsere Hauptseite
des Spielers. Hier haben wir Kunst, und das ist eine gute
Mappe. Wir werden einen
weiteren Ordner erstellen und das
nennen wir Animation. Nachdem der
Animationsordner eingerichtet ist, können
wir in den
Animationsordner gehen und mit der Erstellung
einiger Z D-Elemente in Papierform beginnen. Gehen Sie also direkt zu Papier Z D, und das Erste, was
Sie hinzufügen werden, ist etwas, das als
Animationssauce bekannt ist. Du solltest es
dort sehen. Was wir jetzt tun
werden, ist
,
es Hero Animation Sauce zu nennen . Also werde ich es Hero nennen. Papier Z de Animationssauce. Wir
belassen es einfach dabei. Wenn wir nun schnell auf
diese Animationssoße
doppelklicken ,
stellen Sie fest, dass wir zwar einen großen Raum haben, aber wir haben hier keine
neuen Animationen. Wir werden also in
die obere linke Ecke gehen und
eine neue Animationssequenz hinzufügen . Okay. Und das
nennen wir einfach. Ich werde es umbenennen. Ich werde das als untätig bezeichnen. Jetzt, wo wir unser Idol fertig haben, habe
ich
auf der rechten Seite darauf geklickt, es wird eine Animationssequenz angezeigt Ich scrolle jetzt nach unten und stelle
fest, dass dir sofort Abenteurer-ID und
Abenteurer-Run Wenn Sie auf Idle klicken, wird die Idle-Animation
angezeigt. Als Nächstes fügen
wir
eine neue Animationssequenz hinzu
und nennen sie Run, durchlaufen denselben Vorgang und
wählen die Run-Animation aus. Jetzt haben wir eher die Animation im Leerlauf und wir
haben die Run-Animation. Stellen Sie sicher, dass es sich nicht eine
multidirektionale Sequenz handelt. Wir werden uns später mit der
Direktionalität befassen. Doppelklicken Sie auf Ausführen.
Das ist der Lauf. Du kannst sehen, wo es
sich befindet. Es sieht so aus, als ob es
im Grunde etwas
von der Mitte entfernt ist. Wir sind untätig. Idle ist zu 100%
fest in der Mitte verankert. Laufen und im Leerlauf. Alles scheint in
Ordnung zu sein. Sie sind
richtig aufgereiht. Das ist gut. Jetzt haben wir also die
Control-Leertaste. Wir haben unsere Animationssauce aus Papier Z
D. Beachten Sie, dass
ein weiterer Ordner mit
Animationen oder Sequenzen erstellt wurde .
Das müssen wir nicht anfassen. Und unsere Animation, im Grunde unsere Hero Paper Z
D-Animationssauce, hat eine Leerlaufanimation und sie hat eine Laufanimation. Das ist perfekt. Hier
fängt alles an. Jetzt, wo wir die
Animationsquelle haben, ist
es im Grunde eine Sammlung
aller Animationen, die Paper
Z D verwenden wird. Nun, da wir das haben, werden
wir als Nächstes einen Animations-Blueprint erstellen, erneut mit
der Strg-Leertaste Gehen Sie dieses Mal zu Papier Z D, und Sie wollen
Papier Z D mit dem Namen BP Sobald Sie darauf
klicken, öffnet sich
ein neues Fenster, öffnet sich
ein neues Fenster Sie gefragt werden, also, hey, was wird die übergeordnete
Animationssoße sein und wählen Sie
einfach das
Heldenpapier Z di Animation Sauce aus. Das ist also der Container , aus dem alle Animationen abgerufen
werden. Jetzt, wo er da ist, werde ich ihn
einfach umbenennen. Ich werde es in
Hero Paper Zi Anime BP umbenennen. Jetzt
doppelklicke ich schnell auf den Animations-Blueprint Und hier sind wir jetzt in einem
Animationsdiagramm , das für all
unsere Animationen verantwortlich und
kontrolliert werden
wird all
unsere Animationen verantwortlich und
kontrolliert Es gibt einen Stern
als Ereignisdiagramm und dann gibt es hier ein
Animationsdiagramm. Und wir werden
durchgehen
, wie man beide effektiv einsetzt. Jetzt, genau hier, im
Animationsdiagramm
, werden wir all unsere
verschiedenen Animationen einrichten. Aber bevor wir das tun, lassen Sie uns einige grundlegende Einstellungen
im Ereignisdiagramm vornehmen. Im Ereignisdiagramm
gibt es also einen Knoten namens event
on int oder on initiate, und das ist der erste Knoten
, mit dem wir interagieren müssen. Also müssen wir ihm sagen,
was er bei der Initiierung tun soll. Was wir also wirklich wollen ist, dass es sofort initiiert, den
Player als Variable einrichtet und sicherstellt, dass das
Animationsdiagramm damit verbunden ist Damit das funktioniert, müssen
wir als Erstes
den Schauspieler finden, dem das Objekt gehört, okay? Also werden wir
den Hauptdarsteller finden, das ist das Erste, was
wir tun werden Also, welches Objekt auch immer
wir damit verbinden, welches wird unser Held sein und das werden wir als Nächstes tun Das wird der
Hauptdarsteller sein. Als Nächstes werden
wir den Spieler casten Okay, eigentlich nein, wir
wollen nicht für den Spieler casten. Wir wollen den Bauplan. Wir nennen den Bauplan Held, also wollen wir uns an dem Helden
orientieren, der unser
Heldencharakter sein
wird Sobald wir mit dem Casting für
den Heldencharakter fertig sind, werden
wir ihn einfach als Variable
heraufstufen , nennen wir das, nennen wir
es den Wir werden einfach
zu einer Variablen heraufsteigen. Hier sind wir, und es heißt
Set und es heißt Held. Bei diesem Setup werden
Sie auf der linken Seite feststellen, es jetzt eine Variable
namens Hero gibt. Das ist gut und das ist alles, was
wir von hier brauchen. Jetzt gehen wir zum
Animationsdiagramm über. Nun, dieses Animationsdiagramm
funktioniert auf ziemlich einfache Weise. Das hier ist
die Ausgabeanimation, und wir müssen
einen Knoten mit dem Ergebnis verbinden. Im Moment macht es vielleicht nicht den meisten Sinn, aber mach dir keine Sorgen. Wenn Sie sich damit auseinandersetzen, wenn Sie es verwenden, wird
es absolut Sinn machen Und falls etwas verwirrend
ist, schicken Sie mir
einfach eine Nachricht und
ich werde mich bei Ihnen melden Aber ich werde alles
Schritt für Schritt
erklären , damit
es Sinn macht. Lass uns in
der nächsten Lektion weitermachen. Bevor wir weitermachen, nur um das zu vertuschen, stellen Sie
sicher, dass Ihr Event-Graph so
aussieht, dass wir den Hauptdarsteller ermitteln, die
Besetzung zum Helden machen und ihn als Variable zum Helden
heraufstufen Besetzung zum Helden machen und ihn als Variable zum Helden
heraufstufen Stellen Sie sicher, dass Sie
Ihre Animationsquelle mit der Leerlaufanimation und
der Laufanimation, der Leerlaufanimation und
der Laufanimation diese beiden
eingerichtet und organisiert sind, ist
das alles, was Sie brauchen
, um voranzukommen.
13. 012 Die Idle-Animation durch Paperzd spielen: In Ordnung. Jetzt, wo wir unseren grundlegenden
Animations-Blueprint eingerichtet haben, kehren
wir zum
Helden-Blueprint zurück Jetzt haben wir unser
Flipbook-Setup und können es schnell kompilieren. Wir werden
eine neue Komponente hinzufügen und
Z D eingeben. Was
wir wollen, ist eine neue Z D-Animationskomponente für
Papier Bei dieser Komponente werden
wir nach rechts schauen, und es
wird ein paar Optionen geben. Wir lassen den Variablennamen stehen, ein Blatt Zed di und stellen fest, dass es nach einer
Animationsinstanzklasse fragt, und hier sind wir. Es ist der Zi
Animation-Blueprint aus dem Heldenpapier ,
den wir im letzten Video erstellt haben Und jetzt fragt es auch nach
einer Renderkomponente, okay? Also das, das wir auswählen werden, wir wollen
das Papier-Flipbook auswählen Weil das
Flipbook
die Komponente sein wird , die wir genau hier sein werden,
es ist die Komponente, für die wir die
gesamte Bildsprache rendern
werden gesamte Bildsprache Um sicherzugehen, dass alles wie vorgesehen
funktioniert, werden wir als Erstes hierher kommen und zur und Quelle
des Flipbooks gehen Derzeit ist es ein
Abenteuer-Idol. Wir werden
einfach herkommen und abräumen, sodass dem Flipbook nichts mehr
wird Wir werden
Paper Z D verwenden , um
all unsere Animationen zu verwalten. Wenn wir also gleich
zurück in das Level gehen, fest, dass
nichts angezeigt wird. Okay? Da ist absolut nichts
und wenn man sich nach links und rechts bewegt, und da ist nichts,
das ist okay. Mit all diesen Einstellungen
können wir nun beginnen, die
verschiedenen Animationen hinzuzufügen. Also gehen wir zurück zum Animations-Blueprint von Papier Z D und dann
zum Animationsdiagramm, und hier beginnen wir mit der
Arbeit an den Animationen Also drücken wir die
rechte Maustaste und geben State ein. Und wir werden eine neue Zustandsmaschine
hinzufügen. Die Staatsmaschine, wir werden sie
einfach nennen, ihr den Namen Hero geben. Du kannst es nennen,
wie du willst. sind nur die
Namen, die ich verwende da dies eine Heldenreise ist. Ich werde eine Verbindung vom
Helden zur Ausgabeanimation herstellen. Jetzt haben wir unsere
ursprüngliche Zustandsmaschine, und was eine Zustandsmaschine
ist, steht im Wesentlichen im Namen. Es ist die Logik, die
darüber entscheidet, in welchem Zustand sich
der Spieler befindet. Doppelklicken wir also auf
die Zustandsmaschine, um hineinzukommen. Und Sie werden
zunächst feststellen, dass alles, was es hat, draußen ist. Das ist okay. Das ziehen wir einfach in die Länge. Und wir fügen eine weitere
Animationsstatistik hinzu. Nennen wir diesen ersten
Animationsstatus „inaktiv“, weil das erste, was Sie
sehen,
wenn Sie das Spiel laden,
im Grunde genommen das erste, was Sie
sehen,
wenn Sie das Spiel laden der Charakter sein wird , der untätig da
steht. Jetzt, wo wir das Animationsset im
Leerlauf haben, doppelklicke
ich auf
dessen Innenseite Dann
klicke ich mit der rechten Maustaste und
fordere die Wiedergabe im Leerlauf an. Okay. Also wird es versuchen, diese inaktive Animation
abzuspielen. Das ist das Ergebnis. Lassen Sie uns
das schnell kompilieren und dann gehen
wir zurück
zum Animationsdiagramm. Die einfachste Art, darüber
nachzudenken, ist, dass die Zustandsmaschine Ausgabeanimationen
herausgibt. im
Heldenstaat,
von dem Moment an, wo er anfängt,
was draußen ist zeigt er nur das Idol Und innerhalb von Idol sagt es
nur so, hey, spiel
einfach die inaktive Das wird die Ausgabe sein. Das heißt, sobald wir zum
Level zurückkehren und auf Play klicken, sollten wir
nur
die inaktive Animation sehen. Also geh rein, sobald du auf Play geklickt hast, Bum, wir haben die
Leerlaufanimation. Denken Sie jetzt daran, dass aufgrund der Art und Weise wie
die inaktive Animation angehängt ist, an unser Papier-Flipbook
keine Animationen
angeschlossen sind. Es ist so gar nichts Es ist die Animation von Paper Z D, die an den Helden
Paper Zed Blueprint
geht, die das kontrolliert Gehen wir also jetzt zurück
zum Animations-Blueprint. Das ist genau das, was unsere Animation
steuert. Nun, da das
korrekt funktioniert und auch funktionieren
sollte,
wollen wir als Nächstes sicherstellen, dass der Spieler,
wenn er sich einer Geschwindigkeit in horizontaler Richtung
bewegt
, die
laufende Animation abspielt.
14. 013 Play The Run-Animation durch Paperzd: In Ordnung. Nun, da
wir es so eingerichtet haben, dass Pepa Z sich um
unsere inaktive Animation kümmert,
besteht unsere nächste Aufgabe darin, einfach die laufende Animation
abzuspielen zu tun, gehen wir zurück
zum Animations-Blueprint Um das klarzustellen, der Animationsgrafik doppelklicken Sie in
der Animationsgrafik auf Hero Jetzt sind wir hier draußen. Jetzt ist es ziemlich einfach, einen anderen Animationsstatus zu
erstellen. Wir ziehen es einfach heraus. Wir werden einen neuen
Animationsstatus erstellen. Und diesen Zustand
werden wir Run
nennen . Das ist alles, was wir tun werden. Wir nennen es Run. Beachten Sie jetzt , dass
hier etwas steht, das sagt:
Hey, ich bin untätig, um zu rennen. Denn jetzt werden
wir innerhalb
des Animationsdiagramms von einer Animation zur nächsten übergehen von einer Animation zur nächsten Was würde also nötig sein
, um vom Leerlauf zum
Ausführen zu wechseln ? Wir fügen diesen
Code hinzu und kommen dann zur äußeren Ausführungsebene und ziehen ihn
mit
der rechten
Maustaste und einem Linksklick,
tut mir leid, rechts zurück in den Leerlauf Also wird hier alles vom
Laufen zum Leerlauf gehen. Alles hier wird von Leerlauf zu Betrieb
gehen. Lassen Sie uns näher darauf eingehen,
was das auf Codeebene bedeuten wird. Gehen wir also schnell zur Idle-Animation über. Es wird lediglich
die Leerlaufanimation abgespielt und
das ist die Ausgabe. Gut. Gehen Sie jetzt zurück zum Helden, gehen Sie zur Run-Animation. Derzeit gibt es keinen Lauf. Als Nächstes werden
wir mit einem einfachen Rechtsklick Run spielen. Das habe ich abgetippt, damit Unreal Engine es finden kann. Und da sich das in
unserer Animationsquelle befindet , die wir eingerichtet haben, können
Sie den Lauf
einfach mit der Ausgabeanimation verknüpfen Das ist jetzt erledigt. Nun, wenn du hier
kompilieren würdest,
okay, kompiliere einfach schnell. Selbst wenn du zurückgehst
und dich bewegst, wird die Run-Animation nicht abgespielt. Innere des Blueprints wird also einfach in den Leerlauf versetzt, um zu laufen Und es sucht nach
einem positiven Wert angibt, dass es in
diesen Übergang übergehen soll , nach einem
positiven booleschen Jetzt werde ich dir
nur die Logik zeigen
, um
es einfach zu halten, okay? Logik zeigen
, um
es einfach zu halten, okay Als Erstes
holen wir
uns unsere Heldenvariable
und ziehen sie raus. Also werden wir zum Helden, okay? Wir werden das bekommen. werden
wir
das wieder in die Länge ziehen, und wir wollen seine Geschwindigkeit ermitteln. Stellen wir sicher, dass wir nach unten scrollen. Sie wollen das Einfache
Get-Velocity. Okay? Nun, da wir
die Geschwindigkeit ermittelt haben, wollen
wir sie
auf einen Strukturstift aufteilen. Sie nun daran, dass eine Bewegung nach links
und rechts ausschließlich X erfolgt Wir wollen
also den X-Wert
herausziehen
und das, wonach wir
suchen, nicht identisch ist. Mit anderen Worten, wenn er nicht gleich Null
ist, kann
er in den
nächsten Übergang übergehen. die Logik noch einmal zu erklären Wir lassen den
Spielercharakter seine Geschwindigkeit
überprüfen. In dem Moment, in dem seine Geschwindigkeit nicht exakt Null
ist, kann
ich mit
diesem Übergang beginnen. Und was ist dieser Übergang? Das ist die Laufanimation
genau hier, die wir
eingerichtet haben , um die
Laufanimation abzuspielen. Jetzt, wo alles so
eingerichtet ist, wollen wir es schnell kompilieren
und testen. Der Spieler steht also still. Wenn du dich jetzt bewegst, geht
es in die Run-Animation über. Aber Sie werden feststellen, dass
wir uns zwar in der Laufanimation befinden, aber nicht wieder herauskommen. Also müssen wir zur Blaupause zurückkehren
. Wir haben den Code hinzugefügt, der vom
Leerlauf zum Ausführen wechselt. Lass uns herkommen und alles
kopieren. Ich drücke Strg C
, um das alles zu kopieren. Dann lass uns das hinter uns lassen und in den Leerlauf
gehen. Da steht wortwörtlich
der Lauf in den Leerlauf. Wir sind fertig mit Idle to Run. Lass uns von Run to Idle arbeiten. Und um es einfach zu halten, füge
ich einfach
alles von früher ein, bis auf eine
einfache kleine Änderung. Anstatt zu sagen: Hey, wenn die Geschwindigkeit nicht Null ist, wollen wir überprüfen
, ob wir gleich sein wollen, okay? Wenn also die Geschwindigkeit
exakt gleich Null ist, wird
sie von
der Laufanimation übernommen. Zurück zur Animation im Leerlauf. Wenn es so eingerichtet ist, gehen
wir
die Logik noch einmal durch. Es beginnt damit, direkt zur Leerlaufanimation zu wechseln und die Leerlaufanimation
abzuspielen. Wenn die Geschwindigkeit auf X
größer als Null
ist, wird
die Laufanimation abgespielt. Wenn die Geschwindigkeit Null erreicht, geht
es zurück und
die Leerlaufanimation wird abgespielt. Nachdem die Innenseite des Papiers fertig ist, dieser
Animations-Blueprint, gehen wir zurück und sehen uns das
Ganze im Spiel an Lassen Sie mich dafür meinen
Controller herausholen. Prüfung der Wahrheit. Ich habe auf Play geklickt. Perfekt. Wenn ich mich bewege, wird die Laufanimation abgespielt. Wenn ich anhalte,
stoppt die Animation. Das ist ausgezeichnet. Die Animationen sind
korrekt ausgerichtet. Das sind gute Neuigkeiten. Lass uns schnell von der Brücke
springen. Okay. Das ist perfekt.
Das ist gut. Lassen Sie mich als Nächstes schnell
auf den Player
doppelklicken , damit ich wieder
hierher gebracht werde. Nun, obwohl die Animation
korrekt funktioniert, stellen
Sie fest, dass der
Spielercharakter nicht in die
richtige Richtung zeigt. Das wird eine einfache Änderung
sein. Lass es uns im nächsten Video machen.
15. 014 Changine Sprite-Richtung basierend auf Bewegungsrichtung: In Ordnung. Wenn Sie sich im aktuellen
Zustand des Spiels nach links bewegen,
mit der Steuerung, wenn Sie sich nach links bewegen, spielt
der Spieler die
Animation immer noch nach rechts ab. Wenn du dich nach
rechts bewegst, hat der Spieler ,
ich meine, im Allgemeinen
Recht. Lass uns das reparieren. Um das zu beheben, müssen wir uns nur
den Helden-Blueprint ansehen und
du gehst hier rein. Nun, die Stelle,
an der wir den Code platzieren wollen, der repariert
werden soll, ist
näher an der rechten Seite Das erste, was
wir tun werden, ist , Geschwindigkeit zu erreichen. Schnelles Scrollen, nicht
Lautstärke, wir wollen Geschwindigkeit. Wir werden die
Geschwindigkeit ermitteln. Da sind wir. Jetzt, wo wir
die Geschwindigkeit haben, können
wir sie da drüben
korrigieren. Wir wollen
den Struktur-Pin teilen, das ergibt den Wert. Da wir uns nun im X
bewegen, wollen wir die X-Geschwindigkeit. Wir werden einfach den Wert ermitteln und
eine einfache Überprüfung durchführen. Und was wir wollen, ist,
dass wir eine doppelte Überprüfung durchführen. Ist es größer als Null oder ist es negativ? Beginnen Sie einfach mit einer grundlegenden Überprüfung es größer als Null ist. Dann ziehen wir diesen Knoten heraus und
richten ihn auf einem einfachen Zweig ein. Nun, ein Zweig ist im Grunde ein Knoten, der verwendet wird, um Boolesche Werte zu
überprüfen Wenn es sich als
positiv herausstellt, mit anderen Worten, wenn die Geschwindigkeit X
größer als Null ist, dann wird es wahr sein Wenn es kleiner als Null
ist, wird es falsch sein. Jetzt, wo wir damit fertig
sind, wollen
wir wieder hierher zurückkehren. Wir holen uns das
Flipbook aus Papier, da unsere Animationen
enthalten wird Wir ziehen es und
legen es dort drüben ab. Sobald wir damit fertig sind, können
wir es herausziehen, und dann
wollen wir die Rotation einstellen. Und wir wollen die
Wildrotation einstellen. Jetzt, wo wir die Wildrotation eingestellt haben, werden
wir das kopieren
und einfügen, es hier
ablegen und
das Flipbook auch hier verbinden, weil wir die Wildrotation zweimal
einstellen werden. Also werden wir sagen: Hey, wenn es wahr ist, folgt es
der ersten Wildrotation. Wenn es falsch ist, folgt es
der zweiten Wildrotation. Denken Sie jetzt daran, wenn Sie etwas
umdrehen, dass
Sie es
entlang der Z-Achse drehen Lassen Sie mich das schnell demonstrieren. Lassen Sie mich
dieses Papier-Klappbuch schnell so einrichten , dass es den rennenden Geist
zeigt. Also wollen wir es entlang der Z-Achse drehen Okay. Also als Beispiel, das ist Null Grad oder
nahe genug an Null. Das sind 180 Grad. Wir wollen also, dass, wenn die
X-Geschwindigkeit positiv ist, sie
bei Null Grad bleibt. Wenn die X-Geschwindigkeit negativ ist, anderen
Worten,
bewegt sie sich nach links, okay? Wir wollen, dass es 180 Grad ist. Lass mich das wieder auf Null setzen. Und stellen Sie das wieder auf klar ,
damit nichts die Zeitungen am Tag
stört Gehen Sie zurück zum Ereignisdiagramm. Jetzt werden wir sagen: Hey, wenn die X-Geschwindigkeit
größer als Null ist, wird die
festgelegte Wildrotation Null sein. Wenn ihre X-Geschwindigkeit kleiner als Null
ist, was bedeutet, dass sie negativ ist, wollen
wir ihre Wildrotation
auf minus 180 Grad setzen. Nun, das ist eine sehr
einfache Änderung. Ich hoffe, ich habe es richtig
erklärt. Wir gehen zurück zur
Entwicklerebene, drücken auf Play
und stellen jetzt fest, dass, wenn
ich mich nach links bewege, das Sprite folgt und es sich
nicht sofort wieder ändert Wenn ich mich nach rechts bewege, folgt
das Sprite dieser Drehung und stoppt.
Das ist fantastisch Das ist genau das, was wir wollten. Und jetzt werden wir
dazu übergehen, unserem Spielercharakter
einige Sounds und Schrittgeräusche
hinzuzufügen unserem Spielercharakter
einige Sounds und Schrittgeräusche
hinzuzufügen
16. 015 Laufende Audiodateien hinzufügen: Wir haben derzeit unseren Charakter. Er kann sich nach links und rechts bewegen, und das haben wir parat. Kehren wir nun zu den
Grundprinzipien zurück, die wir verwenden. Jetzt sind wir mit dem Design fertig. Wir sind mit dem Code für
dieses bestimmte Element fertig. Wir sind jetzt fertig mit der Kunst
für dieses spezielle Ding. Jetzt müssen wir zum
Audio der Laufanimation übergehen. Lass uns das jetzt machen und dem Lauf etwas Audio
hinzufügen. Hier kommen wir also zu
einigen grundlegenden Empfehlungen. Erstens kann ich Ihnen als
Indie-Entwickler
nur empfehlen , zu
lernen, wie Sie Ihren eigenen Sound hinzufügen Also werden wir einen
laufenden Sound hinzufügen. Es gibt viele Möglichkeiten, Schrittgeräusche
zu erzeugen. Einige von ihnen machen weiter
und kaufen einige Vermögenswerte, aber als Indie-Entwickler, nur als zusätzliche Nebensache, denke
ich, dass es sehr wichtig sein wird,
eigene Audiodateien machen
zu können sehr wichtig sein wird,
eigene Audiodateien machen
zu Lassen Sie uns also darauf eingehen, wie das aussehen
würde, okay? Jetzt, gerade jetzt, habe ich
eine kostenlose Anwendung
namens Audacity geöffnet eine kostenlose Anwendung
namens Audacity Schauen wir uns nun Audacity an. Audacity können
Sie also im Grunde verschiedene Soundclips bearbeiten und ändern Beachten Sie nun, dass dieser
Soundclip, den ich
hineingezogen habe, „Ich gehe nach draußen“ heißt Das sind im Grunde nur
ein paar Schrittgeräusche, die ich aufgenommen habe,
indem
ich rausgegangen bin
und mein Handy fast so aufgestellt habe,
als ob ich mich vorwärts bewegen würde,
aber in Wirklichkeit
war ich an einem Ort so aufgestellt habe,
als ob ich mich vorwärts bewegen würde, aber in Wirklichkeit
war ich an einem Jetzt höre ich mir an, wie es
sich anhört. Okay. Wir haben all diese
verschiedenen Audio-Bits von mir, wie ich einen Schritt mache. Jetzt werde ich nicht auf
alles eingehen, was Sie Frechheit tun
können,
denn wie gesagt,
es gibt viele Möglichkeiten, Sounds
zu bekommen Aber eine Sache, die wirklich nützlich ist, ist, dass wir das abspielen lassen Okay, ich möchte es grundlegend aufschlüsseln, damit
ich es einfach einfangen kann. Lass es mich versuchen und ich möchte nur einen einzigen Schritt
festhalten. Lass mich das
hier her ziehen und spielen. Lassen Sie mich versuchen, meine
Maus wieder auf den Bildschirm zu bringen Ich sollte es mir leichter
erklären, was ich tue. Ich ziehe einfach über einen
Bereich und drücke dann auf Play. Es wird nur
dieses Soundsegment abgespielt. Okay, das ist also ein Schritt. Nett. Aber was ich will, ist , dass das Geräusch an
der allerersten Stelle ertönt, wo
der Fuß Geräusche macht. Okay, das ist also von hier
bis hier. Das ist es, was ich will. Das ist das echte Schrittgeräusch. Also werde ich das
einfach kopieren. Lass mich wieder rauszoomen. Ich klicke auf
Tracks und füge einen neuen Track hinzu. Lassen Sie mich es als Monotrack betrachten. Dann klicke
ich hier unten auf Zurück
, um den Abspielkopf
wieder anzuzeigen, und füge ihn ein Oh ja, ich habe
das in Stereo aufgenommen. Wenn ich also einen Track hinzufüge, muss
ich einen
Track als Stereo hinzufügen. Okay, jetzt klicken Sie mit der linken Maustaste und fügen Sie es ein. Also lass mich herkommen, das
stummschalten, herkommen und dann gehe ich jetzt. Ich bringe es zurück. Lass mich den Sound spielen. Das ist
ein richtiger Einzelschritt Nett. Jetzt, wo ich einen einzelnen Schritt
isoliert habe, gehe ich zur
Datei über und exportiere Audio Jetzt heißt es: Hey,
möchte ich es auf audio.com veröffentlichen? Das ist cool. Nein, ich möchte es auf meinen Computer
exportieren. Und jetzt, wo ich
das exportiert
habe, werde ich
die harte Arbeit auf mich nehmen etwa fünf
verschiedene Schrittgeräusche zu
exportieren Nun, ich persönlich finde,
dass etwa fünf Schrittgeräusche
die ideale Zahl sind, und ich werde
Sie nicht durch
den gesamten Prozess führen , weil das ein bisschen langweilig wäre Und ich werde diese
Geräusche in das Projekt aufnehmen, aber ich wollte das nur hier
reinstellen Lassen Sie uns nun mit
dem nächsten Schritt fortfahren. Sobald die
Schrittgeräusche exportiert wurden. Und wenn Sie sie exportieren,
exportieren Sie sie als WAV-Dateien. Das ist
mit Unreal Engine immer besser. Und jetzt
habe ich durch die Magie
der Zeitreise diese
fünf Schrittgeräusche organisiert Jetzt habe ich
einen Ordner namens Audio erstellt. Du wirst das finden. Es wird für Sie herunterladbar sein. Ich habe einen weiteren
Ordner unter Audio erstellt, und ich werde
das Schritte nennen, richtig Also füge
ich in den Ordner „Schritte“ das
Steuerelement V ein, sehen wir uns an. Da sind wir Ich füge die Schritte eins,
zwei, drei, vier und fünf Okay. Jetzt, wo wir
das haben, wenn Sie das haben, kopieren
Sie sie
einfach und fügen sie einen Ordner für unser
Projekt in Unreal Engine Suchen Sie also unseren Projektordner, gehen Sie hinein, gehen Sie zum Inhalt Beachten Sie jetzt, dass es Levels, Steuerelemente und Charaktere gibt.
Das ist cool. Da das ganze Audio
für einen einzelnen Charakter ist, gehe
ich gerne auf
die Charaktere ein, es gibt Spieler, es sind
Animationen, es gibt Kunst. Ich erstelle einfach einen neuen Ordner und nenne ihn Audio. Ich bevorzuge es, Audio für
jeden Charakter in
einem separaten Ordner zu haben für
jeden Charakter in
einem separaten Ordner ,
was mir das Auffinden von Dingen erleichtert. Ich weiß, dass einige Entwickler gerne einen großen Ordner
für das gesamte Audio
haben, aber ich mag
es nicht, dass er zu unorganisiert ist Also werde ich mich mit Audio befassen. Ich werde einen
weiteren Ordner erstellen und diesen
Ordner Footsteps nennen.
Okay. Dann werde ich im Ordner „
Schritte“ einfügen Ich füge mit Control
über Windows ein,
aber Sie können einfügen, aber Sie können einfügen es ist, wenn Sie auf einem MAC sind, das
kann etwas anders sein wir das nun in
unseren
Inhaltsordner für unser Spiel aufgenommen haben , wir uns die Unreal Engine an und schauen uns an, wie wir sie implementieren können Okay, jetzt sind wir
wieder in der echten Engine. Und hier drüben heißt es zunächst: Hey,
drei Asset-Editoren wurden
geöffnet, drei Asset-Editoren wurden bevor es das letzte Mal geschlossen
wurde. Lassen Sie uns diese hier erneut öffnen, und dann wurden fünf Änderungen am Quellinhalt
festgestellt Mit anderen Worten,
es wurde festgestellt , dass es hier fünf
neue Dateien gibt Es heißt also, möchten
Sie sie importieren? Ja, ich würde sie
gerne importieren. Lassen wir diese also schnell
importieren und fertig. Also gehen wir in die
Entwicklerebene und
haben die Strg - und
Leertaste gedrückt, um das zu erhöhen. Und jetzt werden Sie
unter Player natürlich feststellen, dass der Ordner für
Audio für Schritte
korrekt identifiziert wurde ,
und los geht's Wir haben Schritte eins, zwei,
drei, vier und fünf. Hören wir uns schnell jedes Hörbeispiel
an. Okay. Gut. Gut.
Gut. Okay, wir haben also fünf
verschiedene
Audiosounds für uns verfügbar. Der Grund, warum ich empfehle , mindestens fünf zu haben
, weil Sie einen verwenden können. Aber wenn du nur einen
spielst, wird
es nicht gut klingen. Der nächste Schritt
wird also darin bestehen, einfach
diese Sounds zu unserem
Charakter hinzuzufügen , weil der Charakter momentan kein
Geräusch von sich gibt, wenn er funktioniert. Lassen Sie uns
das im nächsten Video beheben , wenn wir diese Sounds
hinzufügen.
17. 016 Hinzufügen von Spatial-Running-Sound bei Landung des Sprite-Fußes: Jetzt müssen wir nur eine
Audiokomponente hinzufügen, um zu beginnen Die Audiokomponente wird
als Soundwarteschlange bezeichnet. Eine Sound-Warteschlange ist
einfach eine clevere Methode , um
mehrere Sounds zu sammeln. Nun, dieser Sound-Cue, nennen
wir ihn einfach
Player. Was für Schritte. Das wird also der
Name der Sound-Warteschlange sein. Wenn Sie nun
auf diese Sound-Warteschlange doppelklicken, wird die
Sound-Warteschlange in Annual Engine geöffnet, und das ist unsere Ausgabe. Wenn Sie auf Play klicken, sollten
Sie jetzt
nichts hören , da keine Sounds an den Ausgang angeschlossen
wurden. Was wir nun tun werden, ich sammle
einfach alle zusammen. Ich benutze die Umschalttaste
und klicke, und ich ziehe
sie alle auf einmal hinein. Lassen Sie uns nun schnell einen kleinen Test durchführen, um zu sehen, ob
das richtig funktioniert. Wir fügen den
ersten Schritt hinzu, okay? Und wenn wir
damit fertig sind, lassen Sie uns den Sound-Cue abspielen. Okay, der funktioniert also
richtig. Lass mich es kaputt machen. Lass uns den dritten testen. Okay, das funktioniert richtig. Lass uns den fünften testen. Wenn das funktioniert, funktionieren
sie alle korrekt. Perfekt. Jetzt, wo sie alle korrekt
funktionieren, müssen
wir sie nur noch randomisieren. sie nun zu randomisieren, klicken Sie
einfach mit der rechten Maustaste
und suchen Das sollte Sie dazu bringen, einen Soundknoten namens Bei diesem Zufallsknoten schiebe
ich den Ausgang nach oben, bringe diesen Zufallsknoten
hierher und lasse mich
ein paar Eingaben hinzufügen Sie müssen
fünf sein. Das ist gut. Also verbinde ich all unsere verschiedenen Schrittgeräusche mit
dem Zufallsknoten, sodass er sie für
eine Vielzahl von Schritten nach dem Zufallsprinzip sortieren kann dem Zufallsprinzip Verbinde das mit dem Ausgang. Hören wir uns jetzt an, wie das klingen
würde. Perfekt. Jetzt haben wir unsere
Sound-Warteschlange richtig eingerichtet. Jetzt,
wo die
Sound-Warteschlange richtig eingerichtet ist, werden
wir S zum Speichern steuern, wir schließen das und müssen jetzt zu
unserer Hauptfigur gehen. Gehe zu unserem Charakter.
Das Erste, was ich tun
werde, ist,
den Abenteurer hier untätig zu lassen den Abenteurer hier untätig ,
sodass
wir jedes Mal, wenn
wir auf der Welt sind, zumindest den Charakter dort
sehen können Jetzt werden wir unserem Charakter ein neues Element
hinzufügen unserem Charakter ein neues Element
hinzufügen Nun, da wir das haben, gehen
wir schnell zum Papier-Flipbook
über,
und wir wollen unseren
Sound-Cue auf das Flipbook ziehen Ich benutze die Strg- und
Leertaste, um das zu aktivieren. Ich
halte den Ton gedrückt und lasse ihn auf das Papier-Klappbuch fallen. Jetzt ist es da, spiel
hier Schritte. Es ist bereit, benutzt zu werden. Was die Position angeht, sie zunächst in der
Mitte des Charakters. Ich möchte es nur ein bisschen
herunterfallen lassen, bis dem Boden nähert, aber nicht darunter
, damit es nicht einschneidet. Nachdem Sie das ausgewählt haben, gehen Sie auf den
Sound-Cue und stellen Sie sicher, dass dieser hier deaktiviert
ist, und aktivieren Sie ihn automatisch Wir wollen nicht, dass es
automatisch aktiviert wird. Da das
Sound-Cue-Setup nun unverändert ist, wollen
wir auch die Dämpfung
ändern Genau hier gibt es eine Überschreibungsdämpfung.
Klicke einfach darauf Dadurch wird der Ton zu einem speziellen Sound, sodass der Ton abfällt. Eine der besten Möglichkeiten, einen
guten Klang zu erzielen, besteht darin, bei
der Spezialisierung die Funktion von
linearem auf natürlichen Klang
umzustellen Das ist so ziemlich alles. Dann kommen wir zurück und ändern die Details später. Apropos Geräusch, ein sehr lautes Motorrad fuhr an
meinem Büro vorbei. Wie cool. Wie dem auch sei, nachdem
das alles erledigt und eingerichtet ist, haben
Sie die Schritte des Spielers Sound-Cue-Setup hier drüben. Jetzt müssen wir es
einfach so einrichten, dass, wenn sich der Spieler bewegt, dieser Sound abgespielt
wird zu tun, haben wir jetzt alle Sounds im Player
eingerichtet. Wir müssen dem
Blueprint lediglich mitteilen, wann sie abgespielt werden sollen. Also gehen wir
wieder direkt zum Spieler über. Wir werden zur Animation übergehen. Sie können auf
Animationsquelle klicken oder einfach
in diesen Ordner mit
Animationssequenzen gehen und auf Ausführen
doppelklicken. Jetzt werden Sie feststellen, dass
unsere Laufanimation hier abgespielt
wird.
Lassen Sie mich das unterbrechen. Hier gibt es einen Track namens
One, den wir benutzen werden. Also nehme ich
den Spielkopf, richtig, und ich ziehe
ihn einfach bis zu einem Punkt, an dem ich sehe, dass der Fuß den Boden
berührt. Bum, genau da.
Genau hier, ungefähr eine Sekunde, okay? Dieser erste Animationsframe wenn der Fuß den Boden
berührt, dann füge ich
eine Animationsbenachrichtigung hinzu. Ich klicke zuerst mit der rechten Maustaste. Vergewissere dich,
dass die Benachrichtigungen angezeigt werden, und dann komme ich hierher. Und dann klicke ich erneut mit der
rechten Maustaste und sage dann:
Hey, neue Benachrichtigung Okay. Jetzt gibt es
mehrere Notifier , aber wir verwenden einfach eine Neue Benachrichtigung Dies dient im Grunde dazu, den echten Motor zu
informieren. Wir wollen etwas mit
dem Bild machen, und dann
nenne ich es Schrittgeräusche Lassen Sie mich
es sogar etwas länger machen. Schrittgeräusch des Spielers.
An dieser Stelle haben
wir also einen Notifier für die Wiedergabe von
Schrittgeräuschen erstellt Lassen Sie uns beim
Mitspielen weitermachen und dann noch einmal. Also klicke ich auf
das Schrittgeräusch, Strg C, um es zu kopieren Komm her, Control V. Es wird es da drüben platzieren Wir haben also zwei Punkte
, an denen wir
den Sound abspielen wollen . Da sind wir. Bum, spiel den Sound ab. Mehr brauchen wir
für diese Animation nicht. Also sollte es jetzt richtig funktionieren. Mit der Einrichtung des
Player-Schrittgeräuschmelders gehen
wir als Nächstes einfach zur Zeitung Z, der Animationsquelle, oder? Lieber nicht zur Quelle,
sondern zum Bauplan. nun, dass es im Blueprint Beachten Sie nun, dass es im Blueprint neue Notifier gibt
.
Klicken Sie auf den Melder, der den richtigen Namen hat,
nämlich das Schrittgeräusch Spielers Und hier sind wir bereit. Also das Erste, was
wir tun werden, ist unseren Heldencharakter zu finden und ihn
hierher zu
schleppen. Werde ein Held. Das ist gut. Und dann lassen Sie uns den Helden noch einmal
überprüfen. Das nennt man Fußstapfen von Spielern. Okay. Also lass uns das in die Länge ziehen und wir wollen die Fußstapfen der
Spieler sehen Oh, tut mir leid. Hol dir die Fußstapfen der Spieler Da sind wir, um die Fußstapfen der
Spieler zu bekommen. Das ist die Audiokomponente
und dann ziehen wir sie heraus, und wir wollen sie aktivieren Hier ist es, die Aktivierung bewirkt
im Grunde,
dass es aktiv ist. Sobald wir das getan haben, wollen wir
jetzt den Sound abspielen. Ich ziehe aus den Fußstapfen des
Spielers raus und tippe
Play, und hier ist er Abspielen, damit der Sound
abgespielt wird. Lass es mich
hier verbinden. Verbinde diese beiden. Gleich nach der Aktivierung spielt
es diesen Sound ab,
Startzeit Null. Das ist gut. Lassen Sie uns einen kurzen Überblick darüber geben, was
wir hier haben. Also müssen wir nach
Erhalt von Notify als Held die Schritte des Spielers, was wir als
Audiokomponente haben, aktivieren und abspielen Damit sollten wir jetzt die Schritte
des Spielers hören , die abgespielt werden.
Lass uns jetzt gehen Perfekt. Jetzt haben wir unsere Schritte mit
unserer 2-D-Sprite-Animation verbunden Eine coole Sache ist, wir
es
speziell gedämpft haben,
wenn ich in den Helden gehe, in die Kamera
gehe und ich seine Position
vergrößere, in die Kamera
gehe und ich um es rückwärts
zu bewegen, sagen
wir etwa 500 Einheiten, minus 500 Einheiten Negative 500 Einheiten. Sie werden feststellen, dass der Ton deutlich weniger laut
ist. Deshalb verwenden wir Spezialisierung denn wenn du den Sound einfach
abspielst, wird
er so sein, als ob er
überall auf der Welt wäre. Wenn Sie jedoch Dämpfung verwenden, werden die Geräusche ortsabhängig
sein,
und wir haben auch
dafür gesorgt, dass
die Soundwarteschlange an
einem natürlichen Ort positioniert die Soundwarteschlange an
einem natürlichen Ort Das ist gut. Gehen wir nun zur Sprunganimation über. Wir beginnen mit der
Einrichtung des Codes im nächsten Video.
18. 017 Verwenden von Kommentaren zum Organisieren von Blueprint-Knoten: Okay, jetzt
kann sich unser
Spielercharakter nach links und rechts bewegen und wir können sie hören Als Nächstes
werden wir unseren Plänen
eine Schnellsprungfunktion
hinzufügen unseren Plänen
eine Schnellsprungfunktion
hinzufügen
19. 018 Steuerungseinrichtung und Code zum Hinzufügen eines Sprungs: In Ordnung, also
fügen wir den Sprungeingang hinzu. Also haben wir unsere Bewegung da. Wir gehen einfach auf
Eingaben ein und fügen dann eine Eingabeaktion hinzu. Wir werden diese
Eingabeaktion Jump nennen. Ist das Jomo? Wo ist das P.
Okay, es heißt Jump Doppelklicken wir nun schnell
auf die Aktion „Sprungeingabe“. Also Beschreibung der Aktion,
ich denke, lassen Sie uns sie als Sprungeingabe
beschreiben. Ich denke, das ist einfach genug. Wird es ausgelöst, wenn es angehalten wird? Nein. Was ist sein Wert,
digitaler boolescher Für eine Sprungaktion denke
ich, dass Boolean Jetzt, mit all dem
Setup, werden wir das schließen. Und jetzt, wo wir
unser Jump-Here-Setup haben, gehen
wir noch
einmal zur Spieler-Map, der Eingabe-Map. Sie hat überall Eingaben für
Bewegungen. Das ist cool. Wir fügen noch ein Whoa hinzu. Wir würden weggehen und
ein weiteres Mapping hinzufügen. Also dieses Mapping, es
wird eine Eingabeaktion sein. Lassen Sie uns hierher kommen
und die Option, die wir auswählen
möchten, ist Jump ,
da dies das Asset ist, das wir
gerade erstellt haben. Das ist cool. Das ist der Sprung, und jetzt müssen
wir entscheiden was
der Sprung sein soll? Ich werde
es auf der Tastatur auf W einstellen W ist in Ordnung.
Lass uns noch eins
hinzufügen. W ist der Kern. Es erweitert sie ständig. Aber wie dem auch sei, lass mich es auch zur Leertaste
machen. Ich denke, das funktioniert
einwandfrei. Aber dann lass mich schnell meinen Controller
anschließen. Jetzt
ist der Controller angeschlossen. Okay. Ja, NRL Engine hat erkannt, dass ich meinen Controller
angeschlossen habe Also fügen wir noch einen hinzu. Und ich will, glaube ich,
jedes Mal, wenn der Spieler A drückt, aber es ist A auf Xbox oder X auf X auf, weißt
du, nein, es ist A auf
Xbox, X auf PlayStation. Das sollte also richtig
funktionieren. Also, jetzt ist unsere
Sprungaktion eingerichtet. Es funktioniert, wenn wir
W drücken . Es funktioniert, wenn wir die Leertaste
drücken, und es funktioniert, wenn ich
die X-Taste auf dem Controller drücke oder A, wenn du auf der Xbox bist. Wie dem auch sei, mit
allem, was Sie eingerichtet haben, gehen
wir zurück
zum Player-Blueprint Und wir werden etwas Code
hinzufügen, um den Sprung
zu bewältigen.
Lassen Sie uns also hineinzoomen. Ich möchte nach Jump suchen und dann gehe ich runter und es sollten
erweiterte Action-Events sein. Da sind wir. Lass mich ein bisschen näher
heranzoomen. Verbesserte Eingabeaktion, Jam. Der Aktionswert ist ein boolescher Wert, er ist
also ein- oder ausgeschaltet Sobald das erledigt ist, müssen wir
einfach den
Trigger herausziehen und
sagen wir, hey, springen Im Grunde haben wir einen Sprung nur für diese beiden Knoten
ausgeführt. Um es zu testen, steuere S, um zu speichern, und dann werde ich
hierher kommen und kompilieren. Gehen wir jetzt in das Level. Geh innerhalb des Levels spielen. Und dann testen wir es
mit Spaceb. Das ist cool Space B funktioniert, aber
das wollte ich nicht. Lassen Sie mich das
Aufzeichnen ausschalten
, nein, nein, nein, das brauche
ich nicht. Drücken, Leertaste drücken? Okay, wir haben einen Sprung. Nach
links gehen, nach rechts bewegen, cool. Jump with Spacebar funktioniert, Jump of W Und dann warte, Exon-Controller funktioniert nicht.
Das ist ein Problem Gehen wir zurück und überprüfen es
schnell noch einmal. Dies könnte
ausschließlich ein M-Problem sein. Oh, nicht hier. Ich muss die Eingabe in der Player-Map überprüfen. Oh, drücken Sie S, um zu speichern, um es
noch einmal zu überprüfen. Klicken Sie darauf. Gamepad, Gesicht, Unterseite,
Unterseite. Okay, cool Ich schätze, ich muss etwas falsch
gemacht haben. Gamepad, perfekt. Okay. Es sollte jetzt richtig
funktionieren. Noch einmal, schneller Test. W arbeitet, Spaceb arbeitet. X auf dem Controller oder besser gesagt die Gesichtstaste nach unten
funktionieren. Okay, cool. Jetzt, wo der Sprung in Sachen Code
funktioniert,
müssen wir als Nächstes daran denken,
DCAA zu entwerfen, Code Art Animation zu entwerfen Lassen Sie uns als Nächstes etwas
Grafik hinzufügen.
20. 019 Eine Jump-Start-Animation hinzufügen: Das
Schöne ist, dass du
schon ein paar nette
Sprites für den Sprung Wir gehen einfach
zurück zu den Charakteren, der Spieler-Grafik, und
das ist die ganze Kunst Wir
werden einfach schnell Jump eintippen. Okay, wir haben also ein paar verschiedene
Sprunganimationen, okay? Also wählen wir einfach
diese drei aus, okay, diese Abenteuer-Sprünge Null, Null bis Jump 003.
Die werden funktionieren. Und wenn das alles organisiert ist, klicken
wir einfach mit
der rechten Maustaste auf
Sprite Actions und erstellen dann, du weißt schon, Sprites Nachdem wir diese Sprites
erstellt haben, geben
wir erneut Jump ein, überprüfen Sie es
einfach noch einmal und überprüfen Sie es
einfach Da haben wir es also. Wir
haben diese drei Sprites. Lass uns einfach
auf alle klicken
und dann hierher
kommen und ein Flipbook erstellen Wir werden ein Flipbook erstellen und im Moment heißt es Abenteuersprung Wir können es Jump Start nennen. Der Grund, warum wir es
Jump Start nennen und du kannst es dort
sehen. Das ist die Animation,
weil die Animation,
mit der der Sprung gestartet wird, anders
sein kann als die Animation, wenn er
herunterfällt und wir werden als Nächstes darauf
eingehen, aber das ist gut genug,
um damit anzufangen, wir wählen einfach
das und dope Jetzt, wo wir das
grundlegende Animations-Setup haben, kehren wir noch einmal zu den
Charakteren zurück Lassen Sie uns nun den Text,
die Spieleranimation, beenden und zur Animationsquelle, Aufgabe D,
übergehen . ist unser Vorbild bereits Es hat unseren Lauf, und wir werden
einfach neue hinzufügen. Und doppelklicken Sie darauf. Lass mich es umbenennen.
Wir nennen es Jump, Dash Start. Okay, weil es nur für den
Start des Sprungs sein
wird. Nachdem Sie darauf geklickt haben,
kommen Sie hierher
und dann sind wir da, wo wir als
Starthilfe sind . Und das ist die Animation. Also haben wir unsere Starthilfe. Wir haben unsere Run-Animation, unsere Idle-Animation und
dann unser Springen. Ja. Also als Nächstes wollen wir
das testen. Irgendwann werden wir
zurückkommen und
die Rahmen so anpassen , dass sie besser zum Charakter passen
, aber das ist gut
genug für den Anfang. Als Nächstes werden wir zum Helden
zurückkehren. Hier sind wir, wir haben
diesen einfachen Sprung. Sobald er ausgelöst
ist, wollen wir
die Animation von Hey abspielen, der Charakter springt. Wenn der Charakter in der Luft
ist, wollen
wir wissen, dass
hey, er springt. Jetzt, wo wir das haben,
haben wir das hier und
unsere Animationen. Lassen Sie uns auch den
Animations-Blueprint öffnen. Wir hatten es auf Empfangen Notify. Wir können das schließen. Wir sind
wieder hier. Wir sind wieder hier. Wir haben unseren Leerlauf, wir machen einen Lauf und als Nächstes werden wir ein neues Animationsset
erstellen, und wir werden es Jump Start nennen. Okay. Weil
es nur den Anfang gibt und
dann ist da, wenn der Charakter
zu Boden fällt. Jetzt ziehen wir aus dem
Leerlauf in den Startmodus. Wir werden uns auch vom Laufen
zur Starthilfe hinziehen, okay? Und wir gehen von, mal sehen, von der Starthilfe aus, mm mm. Lass uns sehen. Nein, warum umziehen. Komm schon, beweg dich. Ich möchte umziehen. Du bist okay. Also das ist es. Also das ist momentan unsere Karte.
21. 020 Logik von Jump-Animationsübergängen: Jetzt haben wir den richtigen
Satz von Knoten bereit. Wir machen einen
Doppelklick in den Jumpstart, damit wir die
Ausgabeanimation anhängen können , und klicken
dann einfach auf Start abspielen. Also diese ersten Startframes nachdem der Charakter gesprungen ist Nachdem ich das gespeichert habe, kehren
wir zur Grafik zurück. Jedes Mal, wenn wir den Code hinzufügen, wechselt er vom Leerlauf zu „Hey, er hat angefangen zu springen“. Nun, diese einfache Methode, um zu
wissen, wann der Charakter vom Leerlauf zum
Springen wechseln
sollte, besteht darin, dass wir hineingehen. Wir werden sie wie immer
als Helden herausbringen. Und jetzt, wo wir Zugriff darauf
haben, werden
wir hier rauskommen und
Geschwindigkeit bekommen. Und wir wollen
Zugang zu seiner Geschwindigkeit haben. Das ist die wirklich einfache Methode , um zu wissen, wann ein
Charakter springt. Und dann sagen wir ein Größeres, solange es
größer als Null ist, sollte
es das eingeben können. Also lasst uns kompilieren. Also, wenn die vertikale Geschwindigkeit größer als Null
ist, sollten
wir diese
Stau-Animation sehen. Lassen Sie uns das jetzt schnell zeigen. Also im Moment haben die Charaktere
in Ido die Leertaste gedrückt. Beachten Sie, dass
die Sprunganimation abgespielt wird, aber sie kommt nicht aus
der Sprunganimation heraus Um also sicherzugehen, dass es
aus der Sprunganimation stammt, kehren
wir zur Blaupause zurück Wir klicken und ziehen vom Jump-Start zurück in
den Leerlauf. Und dann innerhalb von
Idle bevorzuge
ich es, das einfach zu kopieren, damit ich nicht alles erneut
eingeben muss. Aber hier füge
ich den gleichen
Code hinzu, der von hey wie der Held ausgeht, die Geschwindigkeit. Aber dieses Mal sage ich nicht
: Hey, bist du größer als,
ich sage einfach:
Hey, bist du gleich? Wenn es also gleich Null ist, kann
es wieder in den Leerlauf zurückkehren. Lassen Sie uns das schnell kompilieren zurück
zum Level gehen. Wir bei IDO springen, wir sind wieder bei ID. Wir können laufen. Wir springen zurück in den Leerlauf, wir können herumlaufen,
springen, uns bewegen. Okay. Das ist cool. Das ist eigentlich nicht
schlecht, gar nicht schlecht. Nun, es gibt viele Möglichkeiten, wie
wir mit diesem Sprung umgehen können. Eine Möglichkeit, wie wir mit
diesem Sprung umgehen können, besteht darin, einfach mal zu schauen, wo
der Sprung ist, zu dem wir beim Sprung gehen. Tippe aus
irgendeinem Grund weiter Jumo. Also gehen wir zur Starthilfe. Wir gehen zu dem Flipbook. Eine Möglichkeit, damit umzugehen
, besteht darin, einfach hierher zu kommen und es auf
etwa drei Bilder
pro Sekunde einzustellen , um zu starten. Okay, das ist in Ordnung.
Alternativ kann ich auch einfach das
erste Keyframe löschen und es so
einstellen, dass nur
die letzten beiden Frames abgespielt werden. Lassen Sie mich also auch
den zweiten löschen. Jetzt spielt es also nur noch diese Art von schwebender
Animation ab. Lassen Sie mich es auf
sechs Bilder pro Sekunde erhöhen. Es sieht also so aus, als ob
es das tut, dann können wir das einfach schließen. Also ich denke, das ist jetzt eine viel realistischere und
vernünftigere Sprunganimation. Aber beachten Sie, wenn wir uns von
links nach rechts bewegen und springen, haben
wir diese Animation nicht erst dann
, wenn
wir bei IDO sind, dass
wir dazu in der Lage sind Um das zu beheben, gehen wir zurück
zum Blueprint und verwenden dieselbe
Logik, gehen zurück zum Animationsdiagramm
in der Zustandsmaschine Jetzt können wir von Run ausgehen
und
bekommen im Grunde den gleichen Code
hier rein, alles kopieren Um von Run zu Jumpstart zu gelangen, solange die Z-Geschwindigkeit größer als Null
ist, wird
sie in die Animation übernommen Dann kopieren wir den gleichen Code. Also jetzt, oh nein,
nein, das geht von der
Starthilfe zurück zur Startphase. Füge das ein. Jedes Mal, wenn die Z-Geschwindigkeit
exakt gleich Null ist, kehrt
sie zu
dieser Animation zurück. Schauen wir uns nun an, wie das
aussieht. Hier sind wir. Beachten Sie, dass ich gesprungen bin und
die Sprunganimation abgespielt Es ist also irgendwie kalt
in der Luft. Und das ist im Grunde die vereinfachte und
grundlegende Art, wie Sie Ihre
Sprunganimation einrichten können Jetzt haben wir unsere Sprunganimation. Wir haben den Code für den Sprung. Der Code für den Sprung
ist im Grunde hier. Und wenn du jemals eine der
Sprungeigenschaften
ändern möchtest , gehst
du einfach zur Komponente
Charakterbewegung, und dann gibt es auf der rechten Seite unter Details eine
Menge Variablen, mit denen du spielen kannst. Lassen Sie mich kurz
Jump eingeben , damit wir einige davon
sehen können. Und du kannst einfach eine
Menge Dinge sehen , die es dir zeigen wird. Ich zeige dir die Sprunggeschwindigkeit. Du kannst sie erhöhen, die Verzögerung
unterbrechen
und es gibt noch ein paar andere Darauf können wir
später eingehen, wenn wir anfangen,
über die Erstellung und
Gestaltung von Levels zu sprechen über die Erstellung und
Gestaltung von Levels zu , denn
im Allgemeinen richtet ihr eure Levels danach aus, wie euer Charakter bewegen soll Also werden wir
darauf eingehen. Aber im Moment haben
Sie ein Verständnis für die Grundlagen Als Nächstes
werden wir daran denken, dass
DCAA jetzt etwas Sound hinzufügt, weil wir wollen, dass direkt
nach dem Sprung des
Charakters ein Ton abgespielt wird .
Lass uns reingehen.
22. 21 Jump-Start-Sound: Okay. Gehen wir jetzt rein und fügen
einfach ein springendes Geräusch hinzu. Jetzt
habe ich in
Ihren Kursdateien einige
grundlegende Sprunggeräusche hinzugefügt. Lassen Sie mich also schnell zu Audio wechseln und einen separaten
Ordner namens Jumping erstellen. Und im Inneren gibt es
zwei Sprunggeräusche. Nummer eins ist die Starthilfe. Okay, es ist ein bisschen zu leise, aber es gibt ein Startgeräusch
und dann ist da noch ein
Sprunglandegeräusch, und dann ist da noch ein
Sprunglandegeräusch wenn
du auf dem Boden landest. Okay, das sind also die beiden
Sounds, die wir verwenden werden. Aber fangen wir mit einem
Starthilfe-Sound an. Lassen Sie
mich also jetzt wieder herauszoomen. Wenn Sie hineingehen,
können Sie dieses Geräusch hören, wenn
Sie sich nach links und rechts bewegen. Aber es gibt kein nettes
Mith-Sound, wenn der Spieler springt. Also werden wir das korrigieren. Gehen wir also wieder in
unseren Player und
fügen dann das Sprunggeräusch hinzu. Gehen wir darauf ein.
Diesmal werden wir also nicht den
Animations-Blueprint verwenden, um
diesen Sound hinzuzufügen , da es sich um einen Sound handelt, Sie nur einmal haben möchten Jetzt gibt es eine Möglichkeit
, den Sound hinzuzufügen. Es wird einfach so sein, dass wir
mit der Strg- und Leertaste beginnen. Wir haben diesen
Player-Startsound. Wir wählen ihn aus und dann erstellen
wir hier oben eine Warteschlange. Jetzt, wo die Warteschlange erstellt ist, werde
ich dem Spieler einen Namen geben. Nennen wir es Starthilfe. Das ist der Beginn des Sprungs. Jetzt hole ich mir das
und ziehe es unter das
Papier-Flipbook Ich will es unter dem
Papier-Klappbuch haben. Es ist gleich
hier drunter. Ich wähle es aus. Lassen Sie mich zurück
zum Viewport gehen. Das ist ein vernünftiger Ort
für den Sound. Ich denke, das ist ein guter Ort. Ich lasse es
da drüben stehen und
komme natürlich hierher. Vergewissern Sie sich. Sehen wir uns an, ob die Option „
Dämpfung überschreiben“ aktiviert ist. Wir belassen es dabei und
stellen es auf natürlichen Klang ein. Und dann wollen wir sichergehen , dass es beim
Start nicht abgespielt wird, also scrollen wir nach unten. Wir suchen nach automatischer Aktivierung
und schalten automatische Aktivierung aus. Nachdem das erledigt ist,
teilen wir dem Jump
mit abgespielt wird, wenn
der Spieler springt Jetzt gibt es zwei
Möglichkeiten, das zu tun. Eigentlich gibt es viele
Möglichkeiten, aber ich wollte dir nur etwas darüber
zeigen,
wie Unreal Engine denkt Wenn wir es hierher ziehen und
herausziehen und sagen: Hey, spiel. Wir haben ihm im Grunde gesagt, dass es
spielen soll. Wir haben ihm gesagt, es soll abgespielt werden. Wenn wir es
unter Trigger verbinden, sagtest
du, wenn es ausgelöst wurde ,
mach die Sprunganimation und
spiele danach den Sound ab. Wenn wir es hier verbinden, kompilieren, rein gehen. Jetzt hör zu. Okay. Jetzt kannst du es tatsächlich
hören. Ich muss die Lautstärke erhöhen und es funktioniert
tatsächlich richtig. Komm rein. Aber es läuft, wenn ich den
Knopf loslasse. Lass mich meine Tasten auf dem Bildschirm platzieren damit du es sehen kannst. Wenn du dich bewegst. Beachten Sie, dass der Ton abgespielt wird, wenn ich die
Taste loslasse.
Das wollen wir nicht. Lass uns diesen Link unterbrechen. Wir wollen, dass es vom Start an hier ist. Jetzt, wo wir es so eingerichtet haben
, dass es am Anfang funktioniert, kommen Sie rein. Es wird sofort abgespielt, es fängt an. Um den
Sound noch besser zu machen, kommen
wir jetzt zur
Starthilfe, okay? Dieser hier. Und dann wollen wir die Lautstärke erhöhen. Also werde ich
die Lautstärke auf
etwa zwei erhöhen . Also lass uns reinhören. Hoffentlich ist es viel
besser hörbar, denn es gibt einige Dinge, die der Spieler wirklich hören soll , wie
zum Beispiel Springen Okay. Ja, bei zweifacher Lautstärke klingt
der Sprung gut. Nun, da du
damit fertig bist, lass uns weitermachen. Wir haben ein springendes Geräusch hinzugefügt. Denken Sie daran, es geht um DCAA, Design, Code, Grafik und Audio Wir haben den Code
für das Springen gemacht. Wir haben die Grafik gemacht und jetzt
sind wir mit dem Audio fertig. Lass uns weitermachen. Und
im nächsten Video fügen wir einfach etwas Sound hinzu,
wenn der Spieler landet.
23. 22 Jump-Landungsgeräusche: In Ordnung, willkommen. Also, jetzt machen wir ein
simples Sprunglandegeräusch. Okay, um das zu tun, werden wir als Erstes zum Iroharacter-Blueprint gehen Also, wie wir es zuvor organisiert haben, wenn du einfach wieder reinkommst
und darauf klickst Und für alle anderen drückst du im Grunde die Strg
- und Leertaste. Wir haben unsere
Pläne richtig organisiert, gehen wir zurück zum Player Der Helden-Blueprint, und wir gehen
dahin wo wir
unser Jump-Handling eingerichtet haben Der Einfachheit halber kopiere
ich einfach das grundlegende
Kommentarfeld, füge es hier ein
und sage dann: Hey, Sprunglandegeräusch, damit ich weiß,
dass
der gesamte Code hier für die
Verwaltung des Sprunglandetons bestimmt ist Verwaltung des Sprunglandetons Jetzt, wo wir das haben, müssen wir
als Nächstes einfach zu der Stelle
zurückkehren, an der wir
die Schritte des Spielers gesetzt haben, und dann wähle ich, es zu duplizieren, weil
wir bereits
einige Grundeinstellungen haben , z. B. für die
Audioverwaltung, die ich beibehalten
möchte. Jetzt, wo das
erledigt ist,
nennen wir das einfach Sprunglandung Jetzt, wo wir
das
Sprunglandeobjekt in unserem
Player eingerichtet haben , lass mich das kompilieren. Ich ziehe das raus und
lege es hier ab. Hier dringen wir
tatsächlich
tief in den
Basiscode ein. Ich habe herangezoomt Es gibt einen Sprunglandeknoten. Wir wollen das in die Länge ziehen. Nachdem ich es herausgezogen
habe, drücke ich auf Play Also werden wir
den Play-Knoten herausbringen. Wir haben also unsere
Sprunglandung und wir haben unseren Spielknoten,
was gut ist. Und jetzt
brauchen wir einfach eine einfache Möglichkeit für Unreal Engine, uns mitzuteilen
, dass der Spieler gesprungen ist Das geht ganz einfach: Ich klicke
einfach mit der rechten Maustaste und tippe und
stelle fest,
dass klicke
einfach mit der rechten Maustaste und tippe und
stelle fest, es bereits
ein Event namens On
Event On Landed gibt ein Event namens On
Event On Landed Ich werde das in die Länge ziehen. Ich
verbinde es, um zu spielen. Und wir sind
im Grunde genommen fertig, aber
wir sind noch nicht ganz fertig. Wir gehen zurück zur
Sprunglandung. Jetzt, wo ich darauf geklickt habe, können
Sie sehen, dass es im Moment
immer noch darauf eingestellt ist , Schritte zu löschen Ich gehe lieber runter,
tut mir leid, ich wähle den Sound aus den Assets befindet sich bereits der Sound für die
Sprunglandung des Spielers. Klicken Sie jetzt darauf. Aber jetzt ist es so
eingerichtet, dass es den Sound
des Spielers beim Sprung abspielt Jetzt, wo das erledigt ist, komme
ich her. Wenn alles eingerichtet ist, kompiliere
ich, komme in
das Level und drücke auf Play. Ja, das solltest du hören. Nett. Jetzt, nur zum schnellen Testen,
unterbrechen Sie die Verbindung. Lass uns schnell gehen. Haben wir kompiliert? Stellen Sie sicher, dass es kompiliert ist? Kein Landegeräusch.
Komm zurück und verbinde
dann das Event auf
Landed mit dem Spiel, kompiliere. Jetzt ist ein Landegeräusch zu hören. Ja, ich hoffe, das ist hörbar. Wenn du es im Video nicht
deutlich hören kannst, vielleicht weil ich
den Desktop-Sound zu leise gehalten habe Ich entschuldige mich, aber es sollte
sehr einfach sein , das im Spiel zu hören Als Nächstes werde ich einige neue Lektionen
rund um das Entwerfen von Plattformen
für euer Two-D-Spiel
hochladen rund um das Entwerfen von Plattformen
für euer Two-D-Spiel Nun, eine Sache, die vielen von Ihnen vielleicht
aufgefallen ist oder auch nicht, wenn Sie diesen Kurs später
bekommen, ist ich für ungefähr einen Monat verschwunden bin. Ich war tatsächlich im Krankenhaus,
aber jetzt bin ich zurück. Alle anderen, mach
dir darüber keine Sorgen. Genieß einfach den Rest
der Videos. Lass uns gehen.
24. 23 Plattformen für Plattformen hinzufügen: Ordnung. Nun, da einige Grundbewegungen funktionieren, fügen wir nur noch
einige Plattformen hinzu , mit denen
der Spieler interagieren soll. Um das zu tun, kommen
wir im Grunde hierher, um
schnell ein Objekt hinzuzufügen, Formen
auszuwählen, und ich würde
gerne einen einfachen Würfel hinzufügen, und da ist unser einfacher Würfel. Aber wo er jetzt positioniert ist, wenn ich den Spieler bewege, interagiert
der Spieler nicht mit dem Würfel. Also werde ich diesen Würfel haben wollen.
Ich werde ihn auswählen. Und dann, was seine Position angeht
, werde
ich sicherstellen, dass, Moment
, es das Objekt ist,
das ein Problem hat? Nein. Okay. Ich habe das Objekt
ausgewählt. Setze es auf der Y-Achse auf Null. Eigentlich ein bisschen mehr als Null , weil wir wollen, dass es
Nein ist, Null ist perfekt. Also Null und dann setze
ich es auf der X-Achse auf Null. Nun, das bewegt es
direkt in den Player. Also lass es uns ein bisschen weiter nach rechts und dann ein bisschen
weiter zum Boden haben. Also bei Z stelle ich es auf 50 ein. Okay, das ist also eine
nette, einfache Plattform. Wenn der Spieler jetzt
springt, also
wenn ich nach oben drücke, merke ich, dass sich der Spieler jetzt oben
auf der Plattform befindet Komm zurück, bumm. Aber wir haben
ein kleines Problem. Beachten Sie, dass sich
die Füße
des Spielers direkt über der Plattform befinden. Wenn der Spieler also hier ist, sich über
der Plattform, was nicht wirklich das ist,
was wir wollen. Der Grund, warum das
passiert, ist, dass der Capsule Collider mit der Welt
interagiert Wir wollen also, dass die Füße des Spielers tatsächlich
die Plattform berühren, und wir müssen verhindern
, dass der Capsule Collider um den Spieler herum mit der Welt
interagiert Wenn wir also etwas näher kommen, werden
Sie feststellen, dass Sie diesen Raum
sehen, Raum direkt darunter Willst du diesen Raum loswerden. Um das zu tun, ändern
wir einfach die Position
des Papier-Klappbuches, sodass die Füße auf dem Boden stehen. Gehen wir also gleich hier drüben auf den
Charakter ein. Cool, da ist
unser Flipbook. Und dann wähle ich
das Flipbook und passe seine Z-Position
leicht an Da haben wir's. habe
ich es nur
ein bisschen auf der Z-Position abgelegt. Schauen wir uns das jetzt
im Spiel an. Jetzt sieht es tatsächlich so aus die Füße des Charakters
tatsächlich den Boden berühren, die Oberfläche, was
wirklich, wirklich gut ist. Okay. Da ist also dieses kurze Objekt, das jetzt in der Wand
ist, und wir können darauf springen, und wir können anfangen, darüber nachzudenken weitere Plattformen
hinzuzufügen. Hier stehen wir darauf, springen davon, kommen runter. Okay. Das ist ein Anfang. Lassen Sie uns nun der Plattform etwas
mehr hinzufügen. Da wir diese eine
Plattform hier haben, werden
wir sie einfach auswählen. Lassen Sie uns schnell kopieren und einfügen
und sehen, ob wir es einrichten. Wir wissen, dass es
auf dieser Plattform um was geht? Auf der X-Achse sind es ungefähr 50. Lassen Sie uns das auf der
X-Achse auf etwa 100 erhöhen. Und bewegen Sie es etwas weiter
nach links und sehen Sie, kann der Spieler diesen Sprung schaffen Ja, es ist möglich, diesen Sprung
zu machen, aber es ist nicht möglich, diesen Sprung
zu machen. Der Sprung des Spielers
ist momentan sehr, sehr kurz, und ein kurzer Sprung
bedeutet, dass wir all diese
coolen Plattformspiele nicht
wirklich machen können all diese
coolen Plattformspiele nicht
wirklich machen Im nächsten Video werden
wir uns also
ansehen, wie man die Sprunghöhe des
Spielers anpasst und ein paar
andere Dinge, um
den Sprung für eine Plattform ein bisschen
angenehmer zu gestalten den Sprung für eine Plattform ein bisschen
angenehmer
25. 24 So passt du Spielerbewegungen und Sprünge an: Wenn wir also auf
unser bestes Kapital eingehen, gibt es etwas, das
als die
Bewegungskomponente der Charaktere bekannt ist. Dies ist derjenige, der
alle Eigenschaften
der Charakterbewegung bestimmt . Nun, schnell, wenn
wir uns das ansehen, wird
es
ein paar Dinge geben. Wir haben die Schwerkraft. Im Moment ist
die Schwerkraft also auf eins eingestellt. Wenn wir jetzt ins Spiel gehen
und der Charakter springt, so schnell geht er
wieder auf den Boden zurück Aber wenn wir zurückgehen und
die Schwerkraft von
Schwerkraft eins auf Schwerkraft, sagen
wir, fünf ändern die Schwerkraft von
Schwerkraft eins auf Schwerkraft, , dann
können wir einen großen Unterschied sehen Wenn wir zurückgehen, kompilieren wir
schnell. Wenn wir jetzt zurückgehen, kommt
der Charakter sehr schnell wieder auf
den Boden. Wenn wir uns für
etwas Weicheres wie die Schwerkraft entscheiden, ändere ich einfach auch die
Schwerkraft zwei Jetzt kommen wir zurück und die
Schwerkraft ist jetzt auf zwei eingestellt. Die Schwerkraft bestimmt, wie schnell dein Spielercharakter auf den Boden
zurückfällt. Da wir nun die Schwerkraft
erhöht haben, müssen
wir den Sprung erhöhen. Wir wollen, dass der
Sprung viel höher ist. Sie nun, dass es in diesen Einstellungen Beachten Sie nun, dass es in diesen Einstellungen eine
Menge gibt, Beschleunigung,
Bremsfaktor , der sich verlangsamt,
geschätzte Masse, Standardbewegung sich
keine Gedanken über das Schwimmen Das brauchen wir
hier nicht. Dann reden wir übers Gehen.
Was ist nun ein Schritt? Eine Stufe ist die höchste Höhe, dein Charakter kann über etwas
laufen. Du hast Bodenreibung
und Gehgeschwindigkeit. Sie können
diese jederzeit nach Ihren Wünschen anpassen. Was wir wirklich
tun wollen, ist, die Konfitüre zu ändern. Derzeit
beträgt die
Sprung-Z-Geschwindigkeit alle 20 Zentimeter/Sekunde Da wir die Schwerkraft verdoppelt haben, müssen
wir, um dieselbe Sprunghöhe zu erreichen, um dieselbe Sprunghöhe zu erreichen,
die Sprung-Z-Geschwindigkeit verdoppeln Machen wir acht
40 Zentimeter, tut mir leid, acht 40 Zentimeter pro Sekunde, was 8,4 Metern/Sekunde entspricht,
was okay ist Lassen Sie uns jetzt schnell
herauszoomen, kompilieren, wieder
hineingehen und sehen, welchen Unterschied
das bei unserem Sprung macht Beachten Sie also, dass es hoch springt und dann schnell wieder auf
den Boden fällt Und jetzt haben wir das, was
ich als vernünftige Bewegung
für ein Plattformspiel
bezeichnen Wir müssen allerdings ein
paar Änderungen vornehmen. Beachten Sie jetzt, lassen Sie mich
meine Eingaben auf dem Bildschirm platzieren , damit Sie sehen können, worauf ich drücke. Beachten Sie, dass wir uns jetzt, wenn wir uns auf dem Boden nach links und rechts bewegen, mit einer bestimmten Geschwindigkeit bewegen. Aber wenn ich springe, verliere
ich im Grunde, ich bin gesprungen, ich drücke, richtig, ich kann nicht Ich bin gesprungen, ich drücke nach links, kaum Bewegung, was für
Bewegungsplattformer nicht wirklich geschmeidig Beachten Sie, dass ich diesen Sprung machen kann, wenn
ich mich bewege. Wenn ich mich jedoch nicht
bewege und springe,
schaffe ich diesen Sprung nicht. Das wird durch eine
sogenannte Luftregelung gesteuert. Wenn wir jetzt zu unserem Helden
zurückkehren, wollen
wir nach einer Luftregelung suchen. Im Moment
ist die Luftregelung auf 0,05 eingestellt. Stellen wir das auf ein. Stellen wir das auf eins ein. Und jetzt, wo wir wieder
reingehen und ändern, wie es sich anfühlt, einen Charakter
zu spielen,
wenn ich springe, merke ich, dass ich gesprungen bin und ich immer noch diese Bewegung
habe Wenn ich also hier bin, kann ich auf „
Springen“ drücken und mich trotzdem nach
rechts bewegen und es trotzdem schaffen Nun, nur diese
wenigen grundlegenden Änderungen,
ich denke, wir haben eine Plattform
geschaffen, die
vernünftig genug Basisplattformen angeht
, die wir haben können. Da wir jedoch die DCAA-Philosophie
verwenden, haben wir
jetzt einige grundlegende
Plattformen, die wir einrichten können So denkst
du über Plattformen. sind nur Dinge,
die der Spieler
verwalten muss, und du kannst
das in deinem Spiel so einrichten ,
wie du willst. Wir müssen jetzt herausfinden, wie wir
den Plattformen etwas Grafik hinzufügen können , damit sie gut aussehen. Und wir werden
eine kleine Änderung
an der Kamera vornehmen , was
das Aussehen der Kamera angeht, und dann werden
wir reinkommen und einige der
Grafiken auf den Plattformen
anpassen. Was den Kamerawechsel angeht, gehe
ich einfach zurück zum
Helden-Blueprint Ich wähle die Kamera aus. Eine Änderung, die
mir gefällt, wenn ich an Plattformer
arbeite , besteht darin, die Z-Höhe
der Kamera
leicht zu erhöhen Lassen Sie mich vielleicht nur 50
Einheiten hinzufügen. Diese Änderung
bedeutet, dass, wenn
wir uns jetzt ansehen, wie der Spieler hier betrachtet
wird, die Kamera leicht
über dem Spielercharakter ist Beachten Sie also, dass sie nicht
flach auf dem Boden liegt. Wir haben es nur ein
wenig angehoben, damit wir uns die
verschiedenen Plattformen leichter ansehen können. Das ist jetzt der Kern, was wir
zusätzlich tun könnten , ist, die Rotation
leicht anzupassen. Nun, die Rotation, die wir
wählen werden, ist wahrscheinlich,
lassen Sie mich das noch einmal überprüfen. Ist es X? Nein, es ist
keine X-Rotation. Es sollte ja die
Rotation sein. Wir werden es um minus zehn
nach unten drehen. Das ist es. Auf der Y-Achse,
soweit es um die Rotation geht. Das bedeutet, dass die Kamera
leicht nach unten zeigt. Wie Sie sehen können, kann ich,
wenn ich die Y-Drehung ändere, nach unten zeigen, ich
mache sie auf minus zehn. ist eine Kleinigkeit, aber es hilft dem Spieler
nur, mehr vom Level zu sehen , weil er leicht nach
unten schaut Nachdem wir diese Änderung vorgenommen
haben, können wir die Kamera tatsächlich
anheben. Lassen Sie mich sie auf
etwa 80 Einheiten erhöhen Das sollte
uns also eine gute Sicht auf
die Welt geben , wenn wir
nach unten schauen. Das ist gut. Und Sie können alle
möglichen Anpassungen daran vornehmen, damit es
genau so aussieht, wie Sie es möchten. Ich glaube,
ich möchte
die Kamera jetzt ein
bisschen näher heranbringen . Von minus 500 bis vielleicht minus 450, damit
es immer gut aussieht. Und lassen Sie mich
es am Himmel
auf etwa 100 Einheiten
auf der Z-Achse anheben . Auf der Z-Achse ist es um etwa 100 Einheiten gestiegen. Das soll dir nur beibringen. Du kannst sie
gerne an
etwas anpassen , mit dem
du dich wohlfühlst. Aber für mich ist das
gut für Plattformspiele. Wir bekommen einen Großteil
des Hintergrunds zu sehen. Wir können den Boden
der Plattformen sehen, wenn wir auf ihnen
sind. Das
ist cool genug. Okay, im nächsten Video fügen
wir der Welt einfach etwas
Kunst hinzu, weil wir eine grundlegende
Charakterbewegung gewählt haben. Wir haben ein paar vernünftige
Bewegungen und Sprünge
und wir haben gesehen, wie man
einige Plattformen in die Lass uns das im nächsten Video machen.
26. 25 Hinzufügen von Platformer 3D-Plattform-Assets von Quixel: In Ordnung. Wenn es
darum geht,
Ressourcen hinzuzufügen werden
wir als Erstes
ein bisschen Organisation tun . Stellen Sie also sicher, dass Sie in Ihrem
Inhaltsordner einen Ordner erstellen, und nennen Sie ihn bitte Umgebung. Ich habe auch einen Ordner mit dem
Namen Village hinzugefügt , weil
Sie Ihre
Umgebungsressourcen wirklich organisieren möchten und dann einen Blueprint erstellen und ihn Platform Village
nennen möchten Und die Art von
Blueprint, die Sie
erstellen sollten , ist ein einfacher
Actor-Blueprint Sehr zu empfehlen. Jetzt, wenn Sie
in diesen Blueprint doppelklicken. Oh, öffne den vollständigen
Blueprint-Editor, okay? Beachten Sie, dass es sich um ein
einfaches leeres Objekt handelt. Und wenn ich ins Spiel komme und es
ziehe und
vor den Spieler lege, ist
da nichts. Lassen Sie uns nun einige
Umgebungsressourcen hinzufügen. Wenn Sie also ein Drei-D-Modellierer sind
und über die entsprechenden Fähigkeiten verfügen, können
Sie einfach Ihre
eigenen Modelle entwerfen und sie importieren Oder Sie können sie vom
NRL Engine Marketplace aus hinzufügen. Persönlich werde
ich Ihnen nur heute zeigen, wie Sie QuislBridge verwenden Jetzt melden Sie sich in Quisle
mit Ihrem UNRLEngine-Entwicklerkonto mit Ihrem Und dann lass mich einfach
Bridge eingeben, da wir uns in Quisle Bridge befinden, und Suche nach Brücken eingeben Und lass uns sehen, was es bringt. Das ist alles Kern. Lassen Sie mich die japanische
Steinbrücke auswählen, und ich bringe sie
in schlechter Qualität rein. Der Grund, warum ich
es in niedriger Qualität einfüge, ist, dass es sich um ein 2,5-D-Spiel
handelt und ich es nicht mit vielen
unnötigen Ressourcen in
Bezug auf Komplexität
auflade unnötigen Ressourcen in
Bezug auf Komplexität Das übt großen Druck auf die GPU VA aus. Das ist eine Optimierungssache, aber
Sie können tun, was Sie wollen. Sobald es heruntergeladen ist,
können Sie es schnell
zum Projekt hinzufügen. Sobald Sie fertig sind und es
dem Projekt hinzugefügt haben, gehen wir
einfach zurück. Beachten Sie, dass es jetzt einen neuen Ordner mit alten
Megascans gibt und gehen Sie in diesen Ordner, Japanese Stone Bridge, und
doppelklicken Sie auf die japanische Steinbrücke. Wir haben
dieses Asset zwar hier, wenn wir es einfach per Drag-and-Drop
in unser Plattform-Dorf ziehen, wird
es nicht zu
Kollisionen kommen. Was Sie also tun wollen,
ist,
im Detail Kollisionen zu
suchen. Dadurch haben wir Zugriff auf
alle Kollisionseinstellungen. Stellen Sie sicher, dass Sie
das einfache Kollisionsnetz
als eigenes Basisnetz auswählen , okay. Achten Sie darauf, es so auszuwählen, dass sein Netz
für diese Kollisionen verwendet wird Es sollte nicht aktiviert sein. Es
sollte sich in einem eigenen Netz befinden. Und stellen Sie dann Kollisionskomplexität so ein, dass
komplexe Kollision als einfach verwendet wird. Im Grunde stellt es sicher, dass
die Kollision nur
an dem Teil funktioniert , an dem
es tatsächlich drei D-Objekte gibt. Es ist eine wirklich coole,
einfache Änderung. Der Spieler kann hier
durchgehen, aber alles andere
funktioniert mit Kollisionen. jetzt mit dem Setter wir jetzt mit dem Setter zurück zur Plattform Jetzt, auf der Plattform, drücke
ich Strg und Leertaste,
und ich lasse es einfach drüben per
Dragon-Drop rein ich Strg und Leertaste,
und ich lasse es einfach drüben per
Dragon-Drop Und mit diesem Drag-and-Drop gehen
wir ins Spiel,
und da ist es. Und wenn ich auf Play drücke, kann
der Spieler
drüber laufen, was wirklich cool ist. Was wirklich cool ist.
Und wir können das einfach holen und kopieren und einfügen und es dann hierher ziehen. Jetzt wird also eine kleine Brücke gebaut, was wirklich cool
ist. Okay, das ist wirklich,
wirklich cool und wirklich, wirklich einfach zu haben. Und wenn wir jetzt
anfangen wollen, Plattformen könnten
wir es einfach
kopieren und einfügen, es hierher
ziehen
und es hochziehen. Mal sehen, ob der
Spieler den Sprung schafft. Wir kommen her. Boom, und der
Spieler kann den Sprung machen. Das ist der einfache
Weg, Assets zu importieren.
Stellen Sie sicher, dass sie
die richtige Kollision
für Ihr 2.5-Plattformer haben für Ihr 2.5-Plattformer Ein letzter
Ratschlag ist, es zu versuchen. Es gibt noch ein paar
andere Dinge, die wir mit dem Platforming machen
könnten, wie zum Beispiel die Sprungsicherheit zu
erhöhen, aber das empfehle
ich nicht Ich denke, es ist einfach besser
, deine Sprünge zu testen. Es bereitet dir weniger Kopfschmerzen in Bezug auf Bugfixes
und andere Probleme
und es ist besser, Levels
sauber
zu gestalten , sodass jeder
Sprung möglich ist Lassen Sie uns damit
fortfahren, der Welt
etwas Umgebung hinzuzufügen der Welt
etwas Umgebung hinzuzufügen ,
damit wir
sie ein bisschen mehr zum Leben erwecken können. Fügen wir also eine
dreitägige Umgebung hinzu.
27. 26 So fügst du Assets aus dem unreal Engine Store für deine Umgebung hinzu: In Ordnung. Also sind wir jetzt
im Epic Games Store und jetzt sind wir gegangen und haben uns eine Umgebung
ausgesucht. Finde eine Umgebung
, die dir gefällt. In meiner Bibliothek stelle ich fest, dass ich ein
paar Umgebungen habe. Wenn Sie es einfach halten möchten, können Sie sich jedes kostenlose Beispiel von
Unreal Engines holen. Also wie jetzt
auf dem Marktplatz, wenn ihr reingeht und
diese sich von Woche zu
Woche ändern , je nachdem, wann
ihr dieses Tutorial bekommt, gibt es ein kostenloses Cavins Es gibt noch ein paar andere Vorzüge wie zum Beispiel eine
stilisierte Pariser Straße Diese stehen Ihnen kostenlos
zur Verfügung,
um sie für Lernprojekte zu verwenden, also zögern Sie nicht, sie zu nutzen Für heute war die
Umgebung, die ich wirklich hinzufügen
wollte, diese
stilisierte Umgebung, und das Hinzufügen zu einem
Projekt ist wirklich einfach Sie klicken einfach auf Zum Projekt hinzufügen. Sie wählen Ihr Projekt und es wird
dem Projekt hinzugefügt. Nun, im nächsten Video werde
ich
Ihnen zeigen, wie Sie auf
alle Umgebungen
hier in Ihrem Projekt zugreifen können, und wir kommen zu, äh
, von dort aus zu einigen anderen kleinen
technischen Details. Lassen Sie uns nun darauf eingehen. Ich warte
hier auf einen Download. Ich werde kein
langes Video machen, wir warten alle. Fahren Sie einfach
mit dem nächsten Video fort.
28. 27 Elemente hinzufügen Teil 2: Ordnung. Also habe ich dem Projekt
den Infinity
Blade-Tempel hinzugefügt. Also lass uns reingehen und
sehen, was wir bekommen. Also, jetzt werdet ihr feststellen, dass es
etwas gibt , Environment Park Two, das Pläne,
Effekte, Karten, Materialien Es hat alles, oder? Aber fangen wir mit
den Maßnahmen an, oder? Das sind also die Maßnahmen. Das sind alles drei
D-Objekte, die wir verwenden können. Und wenn wir uns
die Welt jetzt ansehen, dann gibt es da ein paar Dinge. Da ist der aktive Bereich. Und im 2,5-D-Spiel
ist
diese Linie hier der aktive Bereich, diese Linie hier in dem sich der Spieler befindet. Und dann ist da noch
all das hier drüben. Das ist der Hintergrund.
Und dem Hintergrund wollen wir etwas Leben einhauchen. Lassen Sie uns das Schritt für Schritt machen. Lassen Sie uns zunächst dem Boden
etwas Leben einhauchen. Also
wählen wir einfach den Boden aus. Und was die Materialien angeht, werden
wir das Material ändern. Ich werde nach einem Material
suchen,
das eher dem Boden entspricht. Lassen Sie mich also Boden suchen. Da ist der Boden, es gibt Dammmaterial,
es gibt Tierboden. Lassen Sie mich zunächst den Damm machen. Lass uns sehen, wie das
aussieht. In Ordnung. Jetzt sieht der Boden unter dem
Spieler plötzlich viel granularer aus, viel realer Als Nächstes fügen wir etwas Hintergrundwissen hinzu.
Dann lass mich sehen. Also,
da drin ist diese riesige Säule
hier drüben. Lassen Sie mich das hinzufügen. Selbst wenn wir nur den
Boden und die Säule hinzufügen, bekommen
wir langsam eine viel
lebendigere Umgebung. Lassen Sie mich noch ein
paar weitere Vermögenswerte hinzufügen. Ich füge hier ein kleines
Haus hinzu. Beachten Sie, dass das
ein sehr großes Haus ist. Ich möchte nicht, dass es
hier als großes Haus steht,
ich wähle es aus. Nein. Interessant. Warum ist das so? Okay. Das war definitiv
eine Interaktion. Ich werde das mit dir noch ein bisschen weiter
nach hinten verschieben mit dir noch ein bisschen weiter
nach hinten Wir haben also diesen großen
Tempel im Hintergrund, und auf diese Weise fügen
Sie Vermögenswerte Je nachdem,
was Sie möchten und
wie
Ihre Umgebung aussehen soll, können
Sie der Welt nun wie
Ihre Umgebung aussehen soll, verschiedene
Elemente hinzufügen. Eine weitere Sache ist, Sie werden feststellen, dass wir
jetzt die Ränder der Welt
sehen können . Was wir tun können, um die Kanten nicht mehr zu
sehen, ist, dass Sie schnell das
Bodenobjekt auswählen
können, bei dem es sich um den Boden handelt. Gehen Sie zur Skala und
wir skalieren
es einfach auf etwa 50 auf allen Seiten. Jetzt ist
es plötzlich vollständig skaliert, sodass
wir seine Kanten nicht mehr sehen können In der Ferne sieht es aus wie allgemeiner Boden
. Wenn 50 irgendwie zu
groß ist, ist das in Ordnung. Wir machen 25, es wird immer noch den gleichen Effekt
haben. Alternativ könntest du es so
einrichten, dass es
mehrere Bodenplatten gibt , die sich in
verschiedene Richtungen verteilen. Sei einfach nicht zu
ressourcenintensiv. Sie jetzt daran, dass wir als Entwickler
all
das sehen, aber ein Spieler wird das nur hier
sehen. Okay? Jetzt werden wir den Sprite anpassen, sodass er
ein bisschen besser in
die Welt passt , so wie sie ist Wir wollen, dass es ein Material hat , das es ihm ermöglicht, Schatten zu werfen Da es überall so viel
Textur gibt, das Aussehen,
wenn der Spieler
Schatten ist es
besser für das Aussehen,
wenn der Spieler
Schatten wirft. Lassen Sie uns
im nächsten Video darauf eingehen. Und vor
dem nächsten Video möchte
ich, dass du weißt, dass
ich
einige allgemeine Ressourcen hinzufügen werde . Es werden keine Vermögenswerte auf
der Hauptlinie sein, auf der sich
das Spiel tatsächlich befindet, sondern nur einige Umweltaktivitäten.
Das können Sie auch tun. Das ist nur Augenwischerei für den Hintergrund
des nächsten Videos.
29. 28 Schau mir bei der Gestaltung eines Grundlevel-Designs zu und wie ich über Grundlevel-Levels denke.: Okay, dieses Video ist einfach ein
bisschen falsch, weil es kein besseres Wort gibt, weil es kein besseres Wort Ich werde
es nicht einmal Leveldesign nennen, hauptsächlich einfach
einige Dinge innerhalb
des Levels platzieren und sie einfach
anpassen. Ist das Leveldesign, ich
schätze, das ist Leveldesign. Aber im Grunde benutzt man einfach diese Ressourcen und versucht, sie so zu
positionieren, dass logisch sind oder
vom Anfang bis zum Ende
des Levels gehen . Das ist cool. Und dann
will ich einfach, dass es
so loch wird. Oh, warte. Was? Okay. Also benutze ich
viel von der Tastatur. Lassen Sie mich sogar die
Tastatur zeigen, weil ich eine Menge Dinge benutze, um Dinge zu kopieren
und einzufügen Äh, huh. Okay, das ist cool Aber dann will ich, also da ist dieser coole Bogen. Nein, das lösche ich.
Das brauche ich nicht Im Grunde
möchte ich nur ein
paar
verschiedene Ressourcen haben , deren Besitz logisch Sinn macht , sodass es eine
Art Umgebung gibt. Okay, das ist nur ein Teller. Nun, wenn der Saft gut ist, dass wir eine
gewisse Kontinuität haben. Und dann fügen
wir ein paar Klippen hinzu. Ich werde sie rotieren,
weil
sie ohne die Rotation keinen Sinn ergeben. Perfekt. Und dann lass
es in den Boden fallen, bewege es leicht nach
links und
bring es dann weiter
nach hinten. Also haben wir das. Lass mich sehen, was der
Spieler sehen würde. Der Spieler wird sehen wie ein Fels, und oh, lassen Sie mich
den Sonnenstand ändern. Ich erinnere mich richtig, passe es an. Nur ein bisschen
die Positionierung der Sonne. Oh, um den
Sonnenstand einzustellen, drücke
ich Control L.
Einfach Control und L. Ich meine,
ich kann nicht zulassen, dass es total dunkel ist. Die Farbe wird vorerst in Ordnung sein. Vielleicht wird es nicht so gut sein. Aus irgendeinem Grund
ist mein Geist superhell. Also werde ich nur wieder zum Helden
zurückkehren. Ich werde das Papier auswählen, das Flipbook, maskiert, beleuchtet Lass mich sehen. Beleuchtung
ist normalerweise das, was sie ist. Oh mein Gott, nein. Lass mich sehen Es ist viel zu hell. Lass uns sehen. Helle Farbe. Lassen Sie mich den
Helligkeitswert von hier aus verringern. Hoffentlich hilft das, die Helligkeit
zu reduzieren. Lass uns spielen sehen. Nein, ich habe ein bisschen geholfen,
aber es ist einfach hell. Ich glaube, was ich tun
muss, ist, in die Projekteinstellungen zu
gehen . Und dann suche ich nach etwas, das man automatische Belichtung nennt. Ja, siehst du, diese automatische Belichtung ist die
, die uns verwirrt. Ich werde die automatische Belichtung ausschalten. Und damit wollen wir sehen,
wie die Welt aussieht. Ja, mit Auto Exposure O ist das viel
vernünftiger. Aber lassen Sie mich jetzt Control L einstellen. Lassen Sie mich den Sonnenstand noch einmal anpassen. Ja, viel vernünftiger. Und jetzt
schauen wir uns an, welches Material. Es verwendet ein Maskenmaterial, das
Sprite beleuchtet. Wir wollen
Sprite-Lit-Material. Okay, es zeigt
mir hier nicht das Material, aber um das zu reparieren, gehe
ich wieder her Und dann werde ich fragen, lass mich die Einstellungen sehen. Eine der Einstellungen
sollte eine
der Einstellungen sein , hier sollte Engine-Inhalt anzeigen
sein. Okay, jetzt werden Engine-Inhalte
angezeigt. Jetzt, wo der Inhalt der
Engine angezeigt wird, sollte
ich mehr Materialien sehen. Also werde ich Sprite sagen. Du machst wohl Witze. Nein, ich brauche Lit
Sprite. Oh, Sprite Obwohl ich
sichergehen muss, dass ich
den richtigen Namen verwende , maskiert
unbeleuchtetes Sprite-Material Und maskierte es. Du machst wohl Witze. Oh, meine Güte. Wo ist das
Sprite-Material mit Maskenbeleuchtung Du willst mich verarschen. Ich habe dieses Material getippt. Okay, das zeigt es mir hier
also nicht. Lass mich zurückgehen. Ich komme wieder hierher unter Einstellungen. Lass mich sehen. Lokalisierung anzeigen, Entwicklerinhalte
anzeigen, Entwicklerinhalte
anzeigen. Das sollte nichts ändern. Lassen Sie mich eigentlich den Inhalt der Engine
sehen. Nein. Nein, ich
brauche nichts davon Das wird tatsächlich schwer
zu finden sein. Wo ist das Material? Kommen Sie zurück zu Hero Paper, Flipbook, suchen Sie nach
Shadow Cast Shadow Das Flipbook ist falsch, ich habe es auf wahr gesetzt Mal sehen, wirft es schon richtig
Schatten? Es wirft gewissermaßen einen
Schatten, aber lassen Sie mich die Einstellung der
Sonne noch einmal überprüfen. Die Sonne ist jetzt da? Ja. Jetzt wirft es einigermaßen korrekt einen
Schatten. Das ist in Ordnung. Das
wird reichen. Dann wieder nur die Sonne,
Mann, lass mich ein bisschen rauszoomen,
während ich das anpasse. Hä? Wohin habe ich die Sonne bewegt Da ist sie. Da hinten. Ich will, dass es hierher kommt. Weißt du, es arbeitet daran, es macht es im Grunde so sich
die Sonne in
die negative Richtung bewegt. Ich bin es also nicht gewohnt, mich so zu
bewegen. Deshalb habe ich
irgendwie Probleme. Aber ja, da sind wir, mit einem ordentlichen Schatten auf unserer
Wiese und der richtigen Beleuchtung. Ich denke, das ist viel besser. Schauen wir uns jedoch den
logischen Abstand der Welt an. Wir werden es
also so einrichten dass der
Spielercharakter hier beginnt. Also, da es hier anfängt, lass mich den Inhalt der
Engine verstecken. Das bringt alles durcheinander. Ich wähle Maßnahmen aus. Und dann möchte ich, dass der
Player anfängt. Der Spieler beginnt also hier, was bedeutet, dass ich
das anpassen und es auf
negative 90 Grad stellen kann . Also hier wird der Spieler
anfangen, okay? Und dann möchte ich
, dass das dahinter steckt. Also ist es klar Oh, Mann, das ist ein
furchtbar platzierter Vermögenswert Lass mich das holen
und kopieren und einfügen und es wieder hierher bringen Ich möchte, dass dem Spieler
klar , dass es kein
Zurück von hier gibt. Okay. Aber das ist ein Ausschnitt. Ich
mag diesen Ausschnitt nicht Mit Ausschneiden meine ich, dass
diese beiden Elemente eine Weise miteinander verbunden
sind
, die nicht natürlich aussieht Also werde ich das zurückbringen. Also ich drehe es um, ich
könnte das einfach machen, und das löst das
Clipping-Problem Das sieht ein bisschen natürlicher aus. Lass mich das vielleicht ein bisschen
vorantreiben. Okay. Perfekt. Also haben wir. Das sieht vernünftig aus. Und wenn ich dann auf Play drücke, kann ich
das Spieler-Asset schnell von hier aus verschieben. Lassen Sie uns nun
das Spieler-Asset auswählen und es weit nach hinten
verschieben. Ich will, dass es genau
hier ist. Das ist gut. Ich habe auf Play geklickt. Okay. Nicht schlecht. Allerdings
gefällt mir die Kollision dieses Dings nicht. Ich mag seine Kollision nicht. Lassen Sie mich jetzt einen kurzen Check machen. Passt es die
Positionierung auf der X- oder Z-Achse an? Scheint es sich anzupassen, wo sich der Spieler auf einer der Achsen
befindet Ich mag das nicht, weil das
bedeutet, dass es dort
unterbrochen wird, wo sich
der Spieler gerade befindet Also wähle ich das erneut aus. Ich werde seine Position ändern. Verschiebe die Lösung
hierher, sodass sie Null ist, Null auf der Y-Achse. Das kann wirklich
in der gleichen Position bleiben. Das wird nichts ändern. Oh nein, es hinterlässt ein Loch. Ich will nicht, dass
es dieses Loch gibt. Lassen Sie uns das auch ein bisschen
vorantreiben. Hier fängt
der Spieler also an. Aber zum Schutz werden
wir einige Grenzen hinzufügen. Nun, was meine ich mit gebunden? Was wir tun werden, ist etwas hinzuzufügen,
was wir wollen, einen Block nennen? Ja, das ist ein blockierendes Volumen. Und wir werden das gleich
hier drüben platzieren. Ist es am richtigen Ort? Nein.
Lass es uns hier vorantreiben. Im Grunde ist es eine
unsichtbare Mauer, sodass der Spieler sie nicht überqueren kann. Wenn ich jetzt auf Play drücke, kann
der Spieler sie nicht überqueren. Der Spieler kann nicht überqueren, was ich wirklich
cool finde. In Ordnung. Jetzt, wo wir das geklärt haben, werde
ich noch etwas
hinzufügen. Ich glaube, ich werde etwas
hinzufügen, lass mich sehen. Ich komme hierher, visuelle
Effekte, Nachbearbeitung. Nebel mit exponentieller Höhe. Nun, mit dem Nebel, schauen wir mal. Ich möchte Nebel mit
exponentieller Höhe hinzufügen. Nebeldichte, lass mich
das erhöhen, Jungs. Ah. Dieser Nebel
interagiert nicht gut mit der
Welt, also werde ich ihn löschen. Ich komme hier zu unserem Ausgangsnebel mit
exponentieller Höhe Oh, es muss schon sehr, sehr hoch sein
, um mit der Interaktion zu
beginnen Also werde ich das ein bisschen erhöhen. Ich versuche,
wieder in die Welt zurückzukehren. War mein Hauptdarsteller. Hero, doppelklicke auf ihn,
damit ich wieder aufstehen kann. Okay, ich wähle den Nebel mit exponentieller Höhe
und lasse ihn dann hochziehen Okay, also ja, das
fügt ein bisschen mehr Nebel hinzu. Also bei etwa 3.000 Perfekt. Das ist meiner Meinung nach genau die
richtige Menge an Nebel. Jetzt müssen wir diese Lücken
füllen weil es dort ein Loch
im Level gibt
, das mir nicht gefällt. Vielleicht fange ich das auf. Ich kopiere es und füge es ein, ziehe es hierher, bringe es zurück und dann
drehe ich es ein wenig, damit es nicht so aussieht, als wäre es
dieselbe Felsformation. Klicken Sie darauf und bringen Sie
das auch zurück. Mal sehen, wie es von
Anfang bis Ende aussieht. Es sieht so aus, als ob es dort eine
Felsformation gibt. Schon wieder Felsformation. Und lassen Sie uns weitermachen. Schau, hier gibt es so etwas wie einen
Wachturm, aber ich kann nicht sagen, was es ist. Wir sind einfach so, damit es
näher am Boden ist und wir sehen das. Dann gibt es diese
beiden Plattformen. Aber ich möchte, dass es hier
noch mehr Zeug gibt. Kopiere den
Lappen und füge ihn hier ein. Nein, das wird nicht gut genug aussehen. Aber lass es mich ein bisschen drehen, um zu
sehen, ob es zusammenpasst. Okay, passt
irgendwie, irgendwie irgendwie. Das ist irgendwie
traurig. Bring es her. Okay? Irgendwie passt es da hin. Wird jemand diese Lücke bemerken?
Ich denke, die Leute werden es bemerken. Okay, dann wähle ich das aus. Ich doppelklicke darauf, hebe es ein wenig an bewege es ein
bisschen nach hinten , sodass die
Felsformation da ist Ich will nur, dass wir es dann drehen. Die X-Achse, nein. Dreh es ein bisschen auf
dem Y. Nur ein bisschen. Ich möchte nicht, dass der Spieler
etwas Seltsames sieht, aber wir müssen all diese
Lücken füllen Wie wird es vom Boden
aus aussehen? Ja, da ist ein Ausschnitt, also verschiebe ich ihn nach hinten Okay, jetzt gibt es also
keinen Ausschnitt. Das sieht aus wie eine
richtige Felsformation. Aber jetzt wähle
ich beide mit Shift
aus bringe sie ein bisschen näher. Und wenn die beiden da sind, werde
ich noch etwas hinzufügen. Ich will noch ein Netz. Ich brauche noch ein Netz. Ich brauche noch ein Netz, gib
mir etwas Cooles. Ich glaube, was brauche ich, eine
Treppe, vielleicht noch ein Tor. Nein. Was ich will, ist ein Berg. Da ich will, lassen Sie mich zuerst sehen , ob es
in diesen Vermögenswerten einen Berg gibt. Nein. Damit ich eine Bergformation habe,
doppelklicke ich einfach darauf, schiebe es nach hinten und dann werde
ich es vergrößern Und dann bewege ich es rückwärts, ein bisschen
rückwärts. Dann lass mich das kopieren und einfügen. Und dann ziehe ich
das hier rüber. Dann
schiebe ich es
noch einmal rein , damit es dort
zusammenpasst. Und zu guter Letzt werde
ich mir das holen und dann werde ich es
kopieren und einfügen. Aber um was
werde ich das Einfügen entlang
der X-Achse verschieben ? Bewege es weiter. Lass mich ein bisschen rauszoomen. Lass
es mich einfach hier rausziehen. Lass die Welt von hier aus
weitergehen. Zieh das raus. Bum.
Dann hole ich mir das. Kopiere
das und füge es ein, ziehe es hierher. Ich drehe
es auf dem Y herum,
bringe es in die Nähe, kopiere es
und füge es wieder ein, ziehe es hierher, drehe es
wieder auf dem Y. Schiebe es hierher und schiebe es
dann hier rein Okay, ich denke,
in Bezug auf
Super-Basic-Level-Design oder
besser gesagt Umgebungsdesign sollte
das funktionieren Also werde ich gleich hier
runterkommen. Wenn ich auf Play drücke, startet der
Player von hier aus. Sie können wirklich nicht
viel anderes sehen. Das sieht
irgendwie normal aus. Noch nichts sehr Trauriges. Du bewegst dich. Das sind einige Felsformationen. Ich, wir müssen
dort einige Plattformen hinzufügen , um ihm Leben einzuhauchen. Aber dann machst du weiter, oh, das
sind die kleinen
Plattformen, auf denen
wir das Springen testen. Das ist cool. Okay, tschüss. Bleib in Bewegung. Oh, sieh dir das an. Da drüben stehen diese beiden
Steinstatuen. Ich frage mich, was als Nächstes
passiert. Oh. Oh, das ist nicht am Boden, aber das ist leicht zu reparieren. Und dann beweg dich,
beweg dich. Oh, Bosht-Gegend. Okay, warte. Warte, warte. Hol dir das. Vergewissern Sie sich, dass es in
der richtigen Position ist, bringen Sie es ein wenig in den Boden. Lass mich den Spieler auswählen.
Wo ist der Spieler? Der Spieler, lass mich das auf 3.000 erhöhen, was
genau hier drüben ist. Ich habe es vorangebracht.
Also lass uns diesen Test machen, Rap, Ra, Ra, Ra, Bum. Und dann
wird dieser Bereich hier drüben sein, wo der
Bosskampf hart sein wird. Und dann muss dort ein Sperrvolumen
sein. Damit der Spieler nie auf die Idee
kommt, das zu überschreiten. Um das zu tun, lassen Sie mich
sehen, was ich
hinzufügen möchte . Lassen Sie mich einfach nein,
nein, nein, eigentlich nicht. Ja, nein, ich werde das benutzen. Nein,
ich will das nicht benutzen. Ich möchte etwas anderes verwenden, etwas Einfaches, das diesen Bereich
einfach absperrt. Oh, das sieht gut aus.
Das sieht gut aus. Das
verbinde ich also hier drüben. Und bumm, jetzt kann der
Spieler hier nicht
vorbeikommen , bis er den Endgegner
besiegt hat. Lassen Sie uns das jetzt auch ein bisschen hochskalieren
. Und jetzt, wo es skaliert ist, möchte ich es etwas zurücknehmen Bring es voran und perfektioniere es. Das ist es. Ich denke,
das ist die Grundlage. Okay, das ist ein ausreichend
generalisiertes Level-Layout. Lassen Sie mich jetzt den Spieler auswählen. Zieh ihn den ganzen Weg zurück. Hier drüben. Ich spiele. Hier
fängt der Spieler also an und geht zurück. Okay, einen Moment,
jemand ist an meiner Tür. Bin zurück vom Antworten auf meinen Hund. Das ist übrigens ganz normales Zeug
zur Spieleentwicklung. Ähm, das Leben hört nicht auf, nur
weil du Game Diving machst. Okay, also wenn ich mir das jetzt
ansehe, ist
es nicht das Beste, was es je gab Aber alle tun es, du kannst immer, mit mehr Zeit und mehr Liebe, der Welt noch mehr Dinge
hinzufügen. Es ist cool. Hmm. Wie auch immer, lass uns weitermachen Und im nächsten Video werden
wir uns etwas eingehender mit Plattformen befassen und
sehen, wie man das macht,
sowie, Sie wissen schon, wie man
ein Sterbe- und Gesundheitssystem verwaltet. Das war irgendwie anders. Das ist nicht wirklich
ein Tutorial-Video. Ich hoffe, du hast etwas gelernt. Ich wollte
dir ein bisschen zeigen, wie
man Elemente hinzufügt und organisiert, um ein Level zu erstellen. Aber ich bin mir so sicher, dass du
einen Weg noch hübscher machen kannst. Und wenn du das tust, hey,
schick mir das Bild, okay? Ich bin wirklich interessiert. Gutes Personal, lass uns umziehen.
30. 29 Teilen Feedback Lehr- und Lernqualität: Sie nun
einige Zeit mit dem
Kurs und dem Lernen verbracht haben , bin
ich daran interessiert, Ihr Feedback
dazu zu wie der Unterricht
aufgenommen wird und wie Ihr
Lernen voranschreitet Ich weiß, was es bedeutet,
im Grunde vom unteren Ende
der Klasse zur Spitze aufzusteigen . Und welche Strategien angewendet werden. Wenn Sie also
Schwierigkeiten beim Lernen haben, wenden Sie sich
einfach an mich. Ich beantworte alle Nachrichten
innerhalb von 24 Stunden. Und was
meinen Unterrichtsstil angeht, geben
Sie mir bitte
Feedback, falls etwas
unklar oder nicht gut
erklärt und demonstriert ist . Es liegt wirklich in meiner
Verantwortung
, dafür zu sorgen , dass das gesamte Wissen
gut präsentiert
wird und Sie
alles haben, was Sie brauchen. Die alles praktizieren, was in diesem Tutorial
gelehrt wird. Außerdem werden wir
mit weiteren Lektionen zur Entwicklung Kampfsystemen und
KI für die 2,5-D-Plattform fortfahren. Lass uns weitermachen und weiter lernen.
31. 30 Kursfortschritts-Wissensprüfung: In diesem Video möchte
ich, dass Sie einen
schnellen Wissenscheck durchführen, und Sie müssen nur zwei
Fragen stellen. Nummer eins, kannst du es schaffen? Nummer zwei, wenn Sie nicht in der Lage
sind, gehen Sie zurück, lernen Sie es erneut und üben Sie es ein- oder zweimal,
und dann können Sie
weitermachen . Das ist der wichtigste und
wichtigste Schlüssel, um Dinge wirklich
zu lernen Lassen Sie uns damit
jedes der Dinge durchgehen , die
Sie bisher gelernt haben Also haben wir damit angefangen zu
lernen, wie man
Unreal Engine bekommt und
ein Projekt in Unreal Und dann sind wir dazu übergegangen
,
ein grundlegendes Entwicklerlevel zu erstellen , das für uns
einfach ist, damit wir anfangen können,
es mit dem auszufüllen, was wir brauchen Und als wir
damit fertig waren, herauszufinden wie man diese
Entwickler-Stufe einrichtet, haben wir mit der
Installation von Paper Z D weitergemacht
, einem inoffiziell
unterstützten Plug-In, das wir
für die Verwaltung
unserer verschiedenen Sprite-Assets
und Animationen im Spiel verwenden unserer verschiedenen Sprite-Assets
und Animationen Dann sind wir dazu übergegangen, der Welt
einen einfachen
Spielercharakter hinzuzufügen , der dann für die Interaktion mit unserer Spielwelt verwendet werden
sollte Dies war das ursprüngliche
Setup, ohne dass dem Spielercharakter die Möglichkeit hinzugefügt wurde, sich
durch
die Welt zu bewegen . Und dann haben wir uns dem
Import von Sprite-Grafiken
in Unreal Engine zugewandt Import von Sprite-Grafiken
in Unreal Und dann haben wir
dazu übergegangen,
inaktive Animationen für den
Charakter im Spiel einzurichten inaktive Animationen für den
Charakter im Spiel Nachdem das erledigt war und wir mit
Unreal Engine interagiert
hatten, gingen
wir zu einigen
allgemeinen Tipps über, wie Ihre
Spieldesigns als Spieleentwickler planen können. Diese
sollen Ihnen im Grunde beibringen, wie
Sie
die Zeit reduzieren,
die Sie verschwenden, und sich
auf die Dinge konzentrieren können, die Sie für Ihr
Spiel geplant haben Danach haben wir verstanden, wie Controller-Eingaben
in der Unreal Engine funktionieren und
wie man sie nutzt Nachdem wir das geklärt hatten, machten
wir uns daran, wie wir dem Spielercharakter tatsächlich Bewegung hinzufügen können, d. h. eine seitliche Bewegung
nach links und rechts Und gleich danach sind wir
dazu übergegangen,
die Animation für das Laufen hinzuzufügen , wenn der Spieler
die Bewegungsaktionen Und dann gibt es
mehrere Videos darüber, wie man den richtigen
Sound zum Springen,
Landen und Bewegen in der
Welt durch Laufen
hinzufügt . Und dann haben wir uns damit befasst, wie man der Welt drei D-Assets
hinzufügt
, ihr Leben
einhaucht und wie man
an ihrer Kollision arbeitet , sodass
sie interaktiv sind Und im letzten Video ging es um das allgemeine Level-Design und einige Empfehlungen, wie um
einige Empfehlungen, wie Sie Ihre
Assets in Ihren Levels organisieren Und nachdem all das
geklärt ist, sind
die
allgemeinen Grundlagen des Kurses abgeschlossen. Und jetzt, wo wir das
Fundament gelegt haben. Lassen Sie uns weitermachen und mit einem viel tieferen
Verständnis der KI und der Kampfsysteme im Spiel befassen. Wenn du
alles, was bisher behandelt wurde, verstanden hast und ein gutes Verständnis dafür hast, du
gerne weitermachen. Wenn etwas
noch nicht geklärt ist, können gerne zurückgehen und
lernen, bevor Sie weitermachen Nachdem das geklärt ist, lasst uns weitermachen und weiter über die
Spieleentwicklung lernen. Lass uns gehen.
32. 31 Entwicklerstufe auf „Clear“ zurücksetzen: Um nun einige
schnelle Vorbereitungen
für das, was wir als Nächstes tun werden,
zu treffen , werden
wir nun
die Hauptebene
beiseite legen und voneinander trennen. Dabei handelt es sich um die Hauptebene
beiseite legen und voneinander trennen eine Ebene, die wir bis zum Ende
all dieser Tutorials und
unserer Entwicklerstufe
erstellt haben werden all dieser Tutorials und
unserer Entwicklerstufe Jetzt werden Sie feststellen
, dass wir hier
eine Menge Ressourcen platziert haben , aber lassen Sie uns einige Anpassungen vornehmen. Also kontrolliere
jetzt die Leertaste unter den Levels. Wir haben eine
Entwickler-Ebene, und das ist diese. Ich werde es einfach auswählen und duplizieren. Okay, genau dort gibt es die
Option zum Duplizieren. Und nachdem
ich auf Duplizieren geklickt habe, nenne ich es
001 Dash Level One. Okay. Also das ist sein Name. 001 Dash Level eins. Und dann wähle ich die
Entwicklerebene aus. Verkleinern. Und was ich möchte, ist, viele dieser Vermögenswerte zu
entfernen. Also auf Entwicklerebene werde
ich das einfach löschen, das löschen, ich will das nicht. Ich werde diesen Band löschen. Ich möchte, dass die Entwicklerebene
so spärlich wie möglich ist , weil ich möchte, dass die
Entwicklerebene nur eine
Handvoll Ressourcen enthält Dort
werden wir unser MAI testen, es ist nicht nötig, dass es
eine Menge Zeug enthält ist immer gut,
das Personal zu haben
, nur um zu lernen
, wie man Vermögenswerte platziert. Das war
der Zweck dieses Videos. Aber jetzt haben wir das, und dann wähle ich
den Spielercharakter und ich werde seine Position auf
der X-Achse von minus 8.000
anpassen , unseren Helden auf Null
auswählen Jetzt ist es wieder hier. Dann habe ich den Boden ausgewählt. Und mir wird auffallen,
was ich hier anklicke. Ich werde es nur
leicht rückgängig machen. Also werde ich diese Eigenschaft
zurücksetzen. Ich habe auf Eigenschaft
zurücksetzen geklickt, und das sollte es sein Und jetzt, wo ich das hier drüben
zurückgesetzt habe, habe
ich es auf das
Standardmaterial zurückgesetzt indem ich hier auf das Zurücksetzen
geklickt habe, dann darauf Lass uns rauszoomen. Ich wähle diese zusätzliche Plattform aus
und lösche sie. Und jetzt sind wir wieder da,
nur mit unserem grundlegenden Spielercharakter. Okay. Jetzt, wo
es rocken kann, lasst uns weitermachen
und uns mit einigen Kampfsystemen befassen. Ihr werdet aber auch feststellen, dass wir immer noch das haben, wenn wir auf Ebene eins
doppelklicken ,
das ist Samstag. Wenn wir uns also
all diese Ressourcen im
Spiel ansehen wollen , können wir hierher kommen. Ich möchte jedoch zur reinen Entwicklerebene
zurückkehren, auf der wir
unsere Systeme entwickeln werden. Das ist es. Und ich werde immer
empfehlen,
ein Entwicklerlevel zu haben , um die Systeme zu
entwickeln, und dann können Sie sie
zu den Levels selbst hinzufügen. Das ist erledigt, lasst uns weitermachen. Im nächsten Video werden
wir ein einfaches Gesundheitssystem
erstellen.
33. 32 Ein einfaches Gesundheitssystem erstellen Teil 0: Dies ist ein aktualisiertes Video Ihnen
zeigt, wie Sie ein Widget
erstellen. Nun, die ersten Dinge zuerst, stellen Sie sicher, dass die
Dinge organisiert sind. Sie haben einen Ordner
namens Interface. Hier
ist das Widget bereits erstellt. Es heißt Health Bar, aber hier erfahren
Sie, wie Sie es erstellen. Um es zu erstellen,
klicken Sie einfach mit der rechten Maustaste und möchten dann zur Benutzeroberfläche
gehen
und Widget Blueprint auswählen Dann heißt es: Hey, erstelle ein Benutzer-Widget Ja, und jetzt ist unser
Blueprint erstellt, und Sie können ihn Gesundheitsleiste nennen Hier
nenne ich es einfach Gesundheit Nummer zwei. Jetzt, wo unser Widget
Health Two erstellt ist, doppelklicken Sie
einfach darauf. Jetzt gelangen wir zur
Widget-Oberfläche, wo wir entscheiden können, was
auf der Benutzeroberfläche angezeigt wird, wenn wir das Widget
aufrufen. Das wird im nächsten Video sehr
sinnvoll sein. Folgen Sie einfach. Als erstes möchten wir auf Zoom klicken
, um es anzupassen. Es ist das kleine
Symbol da drüben. Klicken Sie auf Zoom, um es
anzupassen, das ist gut. Und wir wollen
das erste
Benutzeroberflächenelement für das Widget hinzufügen . Sie kommen zur Suche und möchten nach Canvas suchen. Jetzt können wir
im Canvas-Bedienfeld
im Grunde genommen per Drag &
Drop auf unseren Bildschirm ziehen. Sie können sehen, dass der gesamte
Bildschirm hier ist. Jetzt, wo Sie den Bildschirm geöffnet haben, fügen
wir einfach etwas Text
hinzu, kommen zurück und wir
wollen nach Text suchen Ich wähle den Text und ziehe ihn hierher. Jetzt, wo ich den
Text hierher gezogen
habe, komme ich zu
den Eigenschaften
des Textblocks und werde
ihn in HeL Bar umbenennen Und damit habe ich Strg S gedrückt
, um zu servieren, und jetzt hast
du im Spiel ein Widget mit der Textintegritätsleiste
, das benutzt werden kann Lassen Sie uns als Nächstes mit dem
Aufbau des Gesundheitssystems beginnen.
34. 32 Erstellen eines einfachen Gesundheitssystems Teil 1: In diesem Video werden wir ein sehr einfaches
Gesundheitssystem
entwickeln. Gesundheit ist wichtig, weil das Spielen Spaß macht, zu
wissen, dass man scheitern
und sein klarer
Charakter sterben kann. Jetzt, im Moment,
kann sich unser
Grundcharakter einfach bewegen und jammen. Lassen Sie uns
ihnen schnell einige grundlegende Gesundheit hinzufügen. Wenn wir, lassen Sie uns schnell
alle anderen Fenster schließen und den Player
öffnen, oder? Wir gehen und wählen
den Spieler-Blueprint aus, okay, der jetzt Hero heißt Warum ist das Geräusch beim Springen? Es sollte das Geräusch von
Sprüngen sein, okay? Jetzt, wo wir das hinter
uns haben. Alles, was wir tun werden, ist eine Zahl oder besser gesagt eine
Variable
hinzuzufügen , die die Gesundheit
des Spielers enthält. Also gehen wir jetzt zu
Variablen über, was hier drüben ist. Wir werden auf AD klicken. Wir werden
anstelle von Bolean auswählen, lassen Sie uns es als Ganzzahl einrichten Okay? Der Grund, warum wir es als
Ganzzahl einrichten
wollen, ist wir die
Gesundheit einfach auf 100 setzen wollen und dann hier, anstatt sie NUVA zu nennen, wir sie Spielergesundheit nennen Okay. Und jetzt, wo wir
das
Widget zum Bildschirm hinzufügen können, beginnen
wir einfach mit
der zweiten Ebene der
Sequenz dort drüben. Wir ziehen es heraus und geben Create Widget ein, was zu dem Nicken von Create Widget führen wird. Und dann
fragt es nach einem Kurs. Wir geben einfach Health Bar ein, das ist die
Klasse, die wir erstellt haben. Und wenn wir damit fertig
sind, ziehen
wir das einfach heraus und
geben dann einfach Add to View Port ein, woraufhin das angezeigt wird. Also fügen wir das
dem Viewport hinzu und
geben dann den Wert zurück, wir ziehen ihn
zum Ziel selbst Und damit, okay, mit genau dem
kompilieren wir, haben auf Compile geklickt und gehen dann in die
Entwicklerebene, und wenn wir auf Play klicken,
sehen wir jetzt oben links den Text mit der
Aufschrift Health Bar, und jetzt haben wir das Widget Lassen Sie uns das
numerisch gesehen
von einem Text in eine tatsächliche Gesundheitsleiste umwandeln, und dann werden wir
herausfinden, wie wir
etwas Schaden hinzufügen können, damit wir
sehen können , dass diese klare
Gesundheitsleiste nach unten geht
35. 33 Ein einfaches Gesundheitssystem erstellen Teil 2: Jetzt ein Gesundheitsbalken, ja, wir sind wieder beim
Gesundheitsbalken-Widget, das wir haben. Ein Gesundheitsbalken ist im Grunde
ein Fortschrittsbalken. Eine einfache Möglichkeit, darauf zuzugreifen besteht
darin, einfach Fortschritt einzugeben. Da sind wir. Wir haben
unseren Fortschrittsbalken. Ich hole mir den Fortschrittsbalken und lege ihn
in das Canvas-Bedienfeld. Okay. Lass es mich jetzt hierher
verschieben. Jetzt haben wir den Fortschrittsbalken. Lass es mich gleich hier nach oben verschieben. Lass mich es ein bisschen verlängern, du weißt schon, seine Breite erhöhen. Dieser Fortschrittsbalken wird
also die Grundlage für
unsere Gesundheit sein. Das Einzige, was
wir zunächst
ändern werden, ist, dass
wir es
einfach nach dem Klicken auf Rot ändern. Ändere seine Farbe auf Rot. Das ist alles, was wir jetzt brauchen. Und dann werden wir einige kleinere Anpassungen daran vornehmen. Der große befindet sich
im oberen Bereich.
Beachten Sie, dass es eine
Option gibt, ihn variabel zu gestalten. Wir werden es variabel machen. Und dann werden wir es Player Health Bar
nennen. So werden
wir es nennen. Jetzt, wo unsere
Gesundheitsleiste für Spieler den richtigen Namen hat, haben
wir den Text, der
besagt, dass Gesundheitsleiste steht . Wir haben die Gesundheitsleiste für Spieler und wir haben unsere Leinwand bereit. Wir können ihn jetzt so
anpassen, dass der Spieler selbst bestimmt , wie
weit dieser Fortschrittsbalken ist. So wie es jetzt ist, wenn wir in die
Entwicklerebene gehen und auf Play klicken,
stellen wir fest, dass der Gesundheitsbalken
keinen Fortschritt anzeigt, was nicht wirklich das ist,
was wir wollen. Wir möchten, dass dieser
Fortschrittsbalken eins
zu eins mit dem
Gesundheitsbalken übereinstimmt . Um das zu tun,
müssen wir diese beiden miteinander verbinden. Also gehen wir zurück zum Helden. Und was wir wirklich wollen, ist, dass
dieses Widget für die Gesundheitsleiste mit der Ganzzahlkomponente für die
Spielergesundheit
verbunden wird. Also schauen
wir uns wieder innerhalb des Bauplans des
Spielercharakters den Punkt an, an dem
alles immer wieder
zum Viewport hinzugefügt wird, und alles immer wieder
zum Viewport hinzugefügt wird das ist Also, gleich nachdem wir
das Health Bar-Widget erstellt
haben, fügen wir es dem Viewport Dieses Mal werden wir
ein paar Schritte dazwischen hinzufügen ein paar Schritte dazwischen Also das Erste, was wir
tun werden, ist,
den Raum hier zu erweitern , weil noch
viel mehr passieren wird. Und aus dem Widget Create
Health Bar, das heißt, wir
werden rauskommen. Und denken Sie beim Widget „Gesundheitsleiste“
daran, dass dieses Widget „
Gesundheitsleiste“ all
diese Informationen enthalten wird . Es hat Zugriff auf diesen Text und es hat Zugriff auf die Gesundheitsleiste
des Spielers , die wir jetzt zu
einer Variablen gemacht haben , damit wir darauf zugreifen können. Von hier aus werden wir also zunächst eine neue Variable erstellen. Erstellen Sie ein Health B-Widget Wenn Sie mit der rechten Maustaste klicken, wird hier
eine Option angezeigt, die als Variable
hochstufen heißt . Wählen Sie sie aus. Nun, was „Zur Variablen heraufstufen bewirkt, ist, dass
eine neue Variable erstellt wird. Das wird ein separates Element
sein , das die
Daten des Widgets speichert. Ich hoffe das macht Sinn. Wenn nicht, mach dir keine Sorgen, du wirst dich in Unreal Engine
daran gewöhnen Und wir werden
das Spieler-Gesundheits-Widget nennen. So
wird diese Variable heißen. Nun, da wir
dieses Widget zur Spielergesundheit
hier haben und es sich um eine Variable handelt, lassen Sie uns
diesen Link schnell unterbrechen und auch
diesen Link aufheben. Wir haben jetzt unser
Widget zur Spielergesundheit hier drüben. Als Nächstes ziehen
wir
es aus dem Widget „
Spielergesundheit“ heraus. Und was wir wollen, ist, dass wir der Spielergesundheitsleiste
suchen wollen. Also werden wir einfach, du siehst das, die Gesundheitsleiste für
Spieler besorgen. Jetzt haben wir also die Gesundheitsleiste für
Spieler. Und der Übersichtlichkeit halber
ist
die Gesundheitsleiste für Spieler diese Leiste hier drüben, und es ist dieselbe
Spieler-Gesundheitsleiste hier drüben , die wir in eine Variable umgewandelt haben,
damit wir darauf zugreifen können. Nun, da wir die Gesundheitsleiste
für Spieler gefordert haben, ziehen
wir sie in die Länge und legen den Prozentsatz fest. Nun, genau hier, festgelegtem Prozentsatz,
wollen wir machen. Also werden wir einfach
Prozent angeben und wenn wir schauen, sucht
es nach einem Prozentsatz,
um auch die Gesundheitslatte zu setzen. Also, dieses festgelegte Prozent hier
drüben, okay? Das da drüben
wird das sein, was wir verwenden, um die Menge an Lebenspunkten in dem
Gesundheitsriegel zu ändern. Um
das effektiv zu machen, lassen Sie uns das hier veröffentlichen. Lassen Sie mich das aus organisatorischen
Gründen hierher ziehen. Nachdem wir
das Widget erstellt haben, ziehen
wir es hierher. Ich hoffe, du kannst das deutlich sehen. Nachdem wir das Widget erstellt
haben, werden wir
es als Prozentsatz festlegen, und dann werden wir das
Hinzufügen zum Viewpot beenden und dann werden wir einfach diese Gesundheitsleiste
verbinden Entschuldigung, wir
erhalten diesen Rückgabewert, und es wird derjenige sein
, den wir dem Viewpot hinzufügen Jetzt hoffe ich, dass das alles
Sinn macht. Ich gehe das so langsam wie möglich an, weil wir
viele Dinge im Griff haben. Als Nächstes
werden wir uns mit der Gesundheit
der Spieler befassen. Derzeit ist die
Gesundheit des Spielers
als Ganzzahl
festgelegt und auf 100 festgelegt. Wir werden einfach
eine Anpassung anstelle
einer binären Ganzzahl vornehmen . Da wir
es als Prozentsatz verwenden müssen, werden
wir es als Gleitkommazahl verwenden, da wir
es in einen Prozentsatz umwandeln. Und dann holen wir uns die Gesundheit des Spielers und
wir werden sie
in die Länge ziehen und wir wollen die
Spielergesundheit abrufen und sie dann wieder
herausziehen. Und wir wollen nach der
Funktion Divide suchen. Und das solltest du dir ansehen.
Also wollen wir Divide verwenden. Und wir wollen durch
100 teilen , weil
man so einen Prozentsatz erhält. Und da 100
die maximale Anzahl an
Lebenspunkten ist , die ein Spieler hat, werde ich das
auf
den Prozentsatz herausholen , und das ist
im Grunde alles, was wir tun müssen. Gehen wir nun Schritt für Schritt vor. Ab dem Zeitpunkt, an dem das Ereignis
beginnt,
die Play-Sequenz, erstellen wir als Erstes ein Widget, eine Gesundheitsleiste. Und dann
richten wir es einfach als Variable ein, die als Spieler-Health-Widget
bezeichnet wird. Wir werden den
Gesundheitsbalken darin ins Visier nehmen und dessen Prozentsatz festlegen
. Jetzt werden wir die Gesundheit
des Spielers ermitteln. Das ist die Variable
innerhalb des Spielers. Wir werden sie durch 100 teilen
, um den Prozentsatz zu erhalten. Es wird in
den Prozentsatz umgewandelt , den wir früher als Gesundheitsbalken für Spieler
festgelegt haben, und dann fügen wir es dem Viewport hinzu Ich hoffe, ich habe es
wirklich Schritt für Schritt gemacht. Ich möchte nicht, dass
du etwas verpasst. Jetzt kompilieren wir das und wenn wir auf Play klicken, stellen Sie fest, dass die Gesundheitsleiste jetzt voll ist. Wir haben eine volle Gesundheitsleiste, und wenn wir zurück
zum Helden kommen, die Spielerhölle
auswählen
und sie so anpassen, dass
der Standardwert 90
ist, dann kompilieren wir. Beachten Sie jetzt, dass sie zu 90%
gefüllt ist, sie ist zu 90% gefüllt. Wenn wir gehen und
den Standardwert auf zehn setzen, ist er
jetzt zu 10% gefüllt. Jetzt haben wir also eine funktionierende
Gesundheitsleiste, bei der die Gesundheitsvariable des Spielers bestimmt, wie voll
die Gesundheitsleiste ist. Jetzt gehen wir wieder rein. Lassen Sie mich das auf
einen Basiswert von 100 setzen. Also fangen wir mit einem
vollen Gesundheitsbalken an. Okay, wir beginnen mit
dem vollen Gesundheitsriegel. Und jetzt
werden wir als Nächstes
einige einfache Hindernisse erstellen einige einfache Hindernisse Wenn der Spieler auf dieses Hindernis
trifft, ändert
sich die Menge
der Hilfe, die dem Spieler zur Verfügung steht. Lass uns das im nächsten Video machen.
36. 34 Ein einfaches Gesundheitssystem erstellen Teil 3 Ein beschädigtes Objekt hinzufügen: Da wir nun eine
grundlegende Gesundheitsleiste für unseren Spielercharakter haben , werden
wir sie
auf einfache
Weise hinzufügen um dem Charakter Schaden zuzufügen. Nachdem ich die
Strg- und Leertaste gedrückt
habe, habe ich einen neuen Ordner erstellt und diesen
Ordner Damage Object genannt, sodass wir einen einzigen Ort haben,
an dem wir das Schadens-Objekt ablegen können . Jetzt schreibe
ich in diesen Ordner einfach click and
I want to create eine
Blueprint-Klasse Und soweit es das ist, ich
es einfach Blueprint Actor
und dann nenne ich es einfach
Damage Weil das
eine sehr einfache Sache sein wird. Doppelklicken Sie also auf
das beschädigte Objekt. Jetzt füge ich dem beschädigten Objekt einen
Würfel hinzu. Jetzt ist ein Würfel drum
herum, was gut ist. Und damit gehe ich in
die Entwickler-Ebene und dann möchte ich
diesen Würfel einfach irgendwo auf
der Welt platzieren . Also habe ich ihn irgendwo auf
der Welt direkt
vor dem Spieler platziert natürlich
darauf geachtet, dass er sich auf der richtigen Achse befindet, an
der richtigen Position. Wenn ich jetzt versuche, mich
ihm zu nähern, passiert nichts. Ich werde jedoch darauf eingehen. Jetzt werde ich
eine Hutschachtel drum herum anbringen. Also klicken wir einfach auf Hinzufügen. Und dann, was wir wollen, wir wollen eigentlich einen Box
Collider hinzufügen Wir werden einen Box Collider hinzufügen. Der Box Collider
ist also gerade da. Ich werde es einfach vergrößern. Damit es nur
bemerkt wird, dass ich es zu
groß machen kann, das ist nicht gut. Einfach unkonventionell, okay? Direkt draußen. Das ist perfekt. Und was Kollision angeht, gebe ich Kollision ein. Jetzt möchte ich, dass es nicht
überlappungsdynamisch ist. Ich möchte es
so einrichten, dass es nur die
Spielfigur überlappt Das ist eine sehr gute
Option, so dass der Collider
nur den Bauern erkennt das erledigt ist,
kompilieren wir einfach und
gehen dann zum Event-Graph Jetzt haben
wir im
Objekt selbst diesen Box Collider Ich hole es mir einfach und klicke dann mit
der
rechten Maustaste und füge dann ein Ereignis hinzu und dann auf Komponente
und beginne mit der Überlappung. Das
ist der, den wir wollen. Also
wird es das ansprechen. Zu Beginn der
Überlappung der Komponenten, richtig? Diese Kiste. Sobald wir das
hier auf der Komponente haben, beginnen wir mit der Überlappung, wollen wir
jetzt wissen, welche Komponente sie
überlappt und was tun wir? Fangen wir also mit etwas
Einfachem an . Lassen Sie uns das in die Länge ziehen. Und dann sagen wir,
zerstöre Actorself. Das ist alles, was es tun wird. Sobald wir anfangen, uns zu überlappen, wird
es sich
jetzt schnell selbst zerstören, um es zu testen Bevor wir weitermachen,
sollten wir eigentlich eine Änderung vornehmen Begin
Overlap, Destroy Actor Self haben wir bereits eingerichtet. Aber lassen Sie uns
eine weitere Anpassung vornehmen, wir wählen erneut den Box
Collider aus und wechseln dann von
Overlap auf der PN Lassen Sie uns das ändern. Wir überschneiden uns alle Dynamiken. Damit das
etwas zuverlässiger ist. Also, wenn du auf Play drückst, verschwindet
es, es
zerstört sich selbst. Wenn Sie also auf Play klicken, zerstört es sich selbst. Jetzt gehen wir zurück
zum beschädigten Objekt. Wenn wir diese Verbindung unterbrechen, wenn wir reinkommen, sieh dir das an. Jetzt bleibt es dort. Aber wir wissen mit Sicherheit, dass die Hutschachtel
drum herum funktioniert. Das ist eine gute Möglichkeit, um zu
bezeugen, dass die Box funktioniert. Das zerstört sich selbst. Mit diesem Aufbau
wollen wir es jetzt so machen, dass es, wenn
es sich mit dem Helden überschneidet, dem Helden Schaden zufügt Okay. In diesem Sinne kommen
wir zurück
zum Schadens-Objekt, und wir wollen noch ein paar Knoten hinzufügen
. Mehr Knoten.
So werden wir damit umgehen. eingebaute Unreal Engine
verfügt nun über ein paar
einfache Funktionen, die nützlich
sind, um zu wissen, wann ein
Schaden angerichtet wurde. Jetzt gibt es viele
Möglichkeiten, Schaden anzurichten. Wir werden
die einfachste verwenden. Nun, das ist einfach mit einem
Knoten namens Apply Damage. Beachten Sie nun, dass, wenn
wir angerichteten Schaden hinzufügen
, dieser noch ein paar
andere Verbindungen hat. Es hat den Schauspieler,
den Grundschaden, den Anstifter des
Ereignisses beschädigt .
Keines dieser Dinge für uns im Moment sehr bedeutsam Das einzige, was wir anpassen
wollen, ist der Basisschaden
, der eine Zahl ist, also nennen wir ihn
zehn. Das ist ein Floß. Jetzt müssen wir uns nur noch für
den geschädigten Schauspieler entscheiden
, der der Held sein wird, und dann sind wir fertig. Also werden wir einfach reinkommen, und dann wird der andere
Schauspieler es rausziehen und wir werden die Rolle des Helden übernehmen. Oh, tut mir leid, ich habe es verpasst. Von der Besetzung zum Helden. Und da sind wir, weil
es versteht, dass
es einen Charakter gibt, der Held genannt wird. Und da ist er. Also haben wir Cast to Hero bereit. Und als Held
ist das nicht wichtig. Wir verbinden das
zuerst. Also
wird der beschädigte Schauspieler der Held sein, und der Grundschaden
wird zehn sein. Und wenn wir
damit fertig sind, werden
wir den Schauspieler vernichten. Damit werden wir
schnell kompilieren. Beachten Sie nun, dass, wenn
wir ins Spiel zurückkehren, einfach verschwindet,
wenn wir es treffen, aber es gibt keinen eindeutigen auf einen Schaden
in der Gesundheitsleiste. Das liegt daran, dass der
Gesundheitsbalken der Held ist. Die Gesundheitsleiste wurde
nur zu Beginn des Events aktualisiert. Beachten Sie, dass wir
zu Beginn
des
Events als Erstes den Gesundheitsbalken und dessen Prozentsatz
einrichten. Also müssen wir einfach eine weitere Funktion hinzufügen
, die
den Gesundheitsbalken auf dem neuesten Stand hält. Es gibt viele Möglichkeiten, dies zu tun. Dies ist der letzte
prozessorintensive, der sinnvoll zu verwenden ist. Also lass mich das kopieren
und einfügen. einen Kommentar hinzufügen, können
Sie natürlich einen Kommentar abgeben, indem Sie
einfach C drücken. Okay. Aber ich mag es manchmal, da es schon die gewünschten
Stileinstellungen hat, dann heißt das
einfach „Gesundheitsleiste bei Beschädigung
aktualisieren“ . So heißt es. Und dann fügen
wir hier einfach eine Funktion
hinzu. Es wird bei jedem Schaden gerufen. Dann wollen wir irgendeinen Schaden. Ja, das wollen
wir. Wir wollen , dass dieses Ereignis bei jedem Schaden stattfindet. Zieh das hier raus. Sobald wir das Ereignis
für jeden Schaden vorbereitet haben, ziehen
wir es einfach raus
und dann wollen wir jetzt damit beginnen, und dann wollen wir jetzt damit beginnen Gesundheitswert des Spielers
anzupassen. Der
Schaden ist also sofort angerichtet. Als Erstes wollen wir die Gesundheit der Spieler in die Länge ziehen. Holen wir uns die Gesundheit der Spieler. Wir beginnen damit,
die Gesundheit des Spielers zu ermitteln,
und dann ziehen wir sie heraus und ziehen Subtrahieren. Jetzt, wo das
Subtrahieren funktioniert, verknüpfen
wir den Schaden mit dem , was wir subtrahieren wollen Wir ziehen also
den Schaden, der angerichtet wurde, von der Gesundheit des
Spielers ab.
Sehr wichtig Sobald wir den angerichteten Schaden von
der Gesundheit
des Spielers abgezogen haben , wollen
wir
diesen Wert herausziehen und wir wollen ihn teilen und durch was teilen
wir ihn Wir teilen ihn durch 100. Okay, weil wir wollen,
dass es als Prozentsatz angegeben wird. Und jetzt, wo wir das haben, haben
wir jetzt den Prozentsatz an Gesundheit, den der
Spieler gerade hat. Lassen Sie mich das herbringen. Bring das her.
Dann holen wir uns das
Widget
zur Spielergesundheit und bringen es ein. wollen das Widget zur
Spielergesundheit und dann wollen wir es herausziehen und nach der Leiste mit der Spielergesundheit
suchen. Wir wollen die
Gesundheitsleiste aus dem Widget holen. Okay, wir bekommen die
Gesundheitsleiste des Spielers vom Bildschirm und dann wollen wir einfach ihren Prozentsatz
festlegen. Okay. Also wollen wir den Prozentsatz
festlegen, und wir werden den Prozentsatz als
den Schaden heraufziehen , der gerade erlitten wurde. Und das wird es sein. diesem Hintergrund können wir nun
einfach das
Ereignis mit jedem Schaden verbinden. Wir möchten
diesen Prozentsatz aktualisieren. Lass es mich noch einmal durchgehen. Das Schadensobjekt wollen
wir auf den Helden anwenden, das ist der Spielercharakter. Okay, wir wollen für den Helden spielen, das ist der andere Schauspieler. Es ist der beschädigte Schauspieler. Und danach
wird es sich selbst zerstören. Das ist es, was unser
Schadensobjekt anrichten wird. Und auf der
Spielercharakterseite wurde der beste Schaden natürlich auf
der Heldenseite
auf zehn gesetzt, beliebigem Schaden, das heißt,
wenn Schaden erlitten wird, bekommen
wir diesen Schaden ziehen ihn von
der Spielergesundheit ab Wir teilen das durch 100. Und dann kommen wir hierher und
dann das Widget zur Spielergesundheit, wir wollen
den Prozentsatz aktualisieren. Und tatsächlich fehlt noch
eine Sache. Denn während wir die Spielergesundheit
aufteilen, haben
wir die Spielergesundheit noch nicht richtig
aktualisiert. Lassen Sie uns das also etwas in die Länge ziehen. Zwischen dem
Zeitpunkt, an dem wir subtrahieren, wir einfach
die Gesundheit der Spieler fest Also dieser Wert, ziehen Sie ihn nach oben, wird jetzt der Gesundheitswert des neuen
Spielers sein Und dann wird der
Gesundheitswert des Spielers derjenige sein, der als
festgelegter
Prozentsatz für die Gesundheitsleiste angegeben ist. Ich hoffe, das macht Sinn. Bitte, wenn es keinen
klaren Sinn ergibt, gehen Sie es noch einmal durch. Ich habe versucht, so
präzise wie möglich zu sein. Lassen Sie uns das also im Spiel
testen. Also, wenn ich das
beschädigte Objekt durchsehe, sind wir da. Mein Gesundheitsbalken ist gesunken. Nehmen wir an, ich erhalte, dass diese
Objekte kopiert und eingefügt wurden. Sie sind jetzt zwei, kopieren und einfügen. Sie sind jetzt drei, kopieren/einfügen, lassen Sie mich ein bisschen herauszoomen und das hierher
ziehen,
vier, kopieren/einfügen ,
fünf und dann 67, acht, neun, zehn. Okay, ich habe
zehn Objekte beschädigt. Der erste hat die Gesundheit des
Spielers um 10% reduziert. Zweitens 20, 30, 40, 50, 60, 70, 80, 90 und 100%. Jetzt haben wir herausgefunden, wie wir
den Schaden auf den
Spieler anwenden und
sicherstellen können , dass der Gesundheitskauf korrekt aktualisiert
wird. Im nächsten Video werden
wir nun einen einfachen Todesbildschirm hinzufügen und danach werden wir uns etwas
eingehender mit KI befassen. Im nächsten
Video erstellen wir also
einen Todesbildschirm, sodass
der Spieler tot ist, wenn er einen
bestimmten Prozentsatz an
Lebenspunkten
unterschreitet , was wir wollen. Lass uns gehen.
37. 35 Überprüfen, ob der/die Spieler:in lebendig oder tot ist, wenn er/sie Schaden erleidet: Okay, jetzt haben wir die
Lebenspunkte unseres Charakters verloren und er kann
durch Objekte aufgebraucht Fügen wir jetzt einen
einfachen Todeszustand hinzu. Also werden wir das überprüfen. Und sobald die
Gesundheit des Spielers unter Null fällt, sagen
wir, ist der Spieler
gestorben. Um das zu tun, gehen wir also zurück
zum Helden-Blueprint. Lass uns das schnell hier rausstellen
, anordnen und so organisieren, dass
sie ordentlich aussehen Nur ein bisschen Ordentlichkeit. Weißt du, es geht
sehr weit mit dem hier drüben und dem hier drüben
und dem hier drüben Denkt dran, das ist
Update Health Bar on Damage und dann kriegen wir das. Und dann kopiere ich
einfach den Dialog. Natürlich können Sie wie
immer
ein weiteres Kommentarfeld erstellen, indem Sie einfach C drücken, aber ich mag ein bestimmtes
Styling mit schwarzem Text, weil das für mich
besser lesbar ist. Und dann
wird überprüft, ob die Ebene aktiv ist. Das ist alles, was es tun wird. Also, gleich nachdem es das getan hat, was ich tun möchte, lass mich das hier rüber
ziehen, um
ihm etwas Platz zu geben. Und dann ziehe
ich diese
Typsequenz heraus , weil
ich möchte, dass dies ein
einfacher Sequenzknoten ist. Und dann ziehe ich
das hier raus. Und dann möchte
ich nach
einer BRA-NCH-Filiale suchen , richtig Nun, dieser Zweig wird
im Grunde genommen
das sein , was überprüft
, ob der Spieler noch am Leben
ist, und wie werden wir das machen? Es ist ziemlich einfach.
Wir werden die Gesundheit der Spieler
in die und wir wollen die Gesundheit
der Spieler erhalten. Dann wollen wir nach
weniger als oder gleich,
weniger als gleich
suchen . Wir werden herausfinden, dass, wenn es
kleiner oder gleich Null ist, das unsere Bedingung sein wird. Das heißt, wenn die Gesundheit des Spielers
Null ist, ist das wahr. Wenn die Gesundheit
des Spielers weniger als Null ist, gilt
dies auch. Lassen Sie uns nun einfach sagen:
Hey, wenn es falsch ist, fangen
wir mit etwas
Einfachem wie einer gedruckten Zeichenfolge an, und wir werden sagen, wir werden Großbuchstaben live eingeben , okay? Dann lassen Sie uns das hier
einfügen. Wenn es wahr ist, dass es
kleiner als Null ist, können
wir einfach Dead eingeben. Wir tun das nur,
um die Überprüfung zu vereinfachen ob diese grundlegende
Branch-Überprüfung korrekt funktioniert. Lassen Sie uns damit lebend, lebendig, lebendig,
lebendig, richtig
kompilieren und zurück auf die Entwickler-Ebene gehen . Es heißt immer
lebendig und dann tot. Sie können in der oberen linken
Ecke Ihres Bildschirms den Text
mit der
Aufschrift tot sehen. Jetzt haben wir also eine
gute Methode, um zu erkennen, ob der Spieler am Leben oder tot ist, wenn er keinen
Schaden mehr erlitten hat. Jetzt, wo wir
das haben, wollen wir
weitermachen und
einen einfachen Todesbildschirm hinzufügen.
38. 36 So erstellst du eine Benutzeroberfläche für den Death Screen: Um nun einen Todesbildschirm hinzuzufügen, müssen
wir zunächst ein neues UI-Objekt
erstellen. Es wird sehr
ähnlich sein, wie wir
die Gesundheitsleiste erstellt haben, die sich hier befindet, und lassen Sie uns das machen. Also habe ich Strg
und Leertaste gedrückt. Und jetzt schaue ich rein und bin hier
im Inhaltsordner. Ich werde
erstellen, damit ich unter Interface das
Innere des Charakters im
Player überprüfen kann. Das ist eigentlich ein sehr
guter Ort, um das zu platzieren. Und unter Interface
haben wir unsere Gesundheitsleiste. Ich werde
ein neues Widget erstellen. Lass mich hier nicht suchen. Benutzeroberfläche,
Widget-Blueprint. Es ist ein Benutzer-Widget, und dann
nennen wir es Death Screen Okay. Also Todesbildschirm. Lassen Sie uns nun auf den Todesbildschirm
doppelklicken. Stellen wir es
im Hauptfenster auf , damit wir
nicht herumspringen müssen. Und dann, genau wie zuvor, wollen
Sie als Erstes ein Canvas-Bedienfeld einfügen und dann auf „Anpassen
vergrößern“ klicken, okay? Dieser Taktstock hat einen Zoom, um zu passen. Dieser hier, zoomen Sie, um ihn anzupassen. Also zoomt es rein und
passt auf den Bildschirm. Der Einfachheit halber fügen
wir jetzt einen Bildhintergrund hinzu Okay. Und was die Anker angeht, lasst uns in der
oberen linken Ecke ankern Wir geben ihm Position
Null und Null. Auf dieser Seite werden wir es auf Null und Null
setzen. Größe, ich werde es tatsächlich
machen,
nein, lass es mich an allem
ausrichten. Und dann benutze ich diesen
, den hier drüben. Das wird gut sein,
damit es
den ganzen Bildschirm ausfüllt. Drücken Sie darauf. Und
dann beim Offset werde
ich den Offset Null
und den Offset Null machen. In Ordnung. Jetzt doppelklicke
ich für Farbe und Deckkraft doppelklicke
ich Ich möchte, dass die Farbe schwarz ist. Und dann ist es Opazität. Opazität ist dieser niedrigere Wert,
RGBA, A steht für Alpha Ich möchte das auf
vielleicht so etwas wie 0,4 reduzieren. Es wird als schöner
dunkler Hintergrund dienen. Das ist gut. Jetzt mit dem Bild
da drüben, kompilieren Sie es einfach. Als Nächstes wollen
wir etwas Text hinzufügen. Also holen wir uns diesen Text, ziehen ihn hierher und innerhalb des Textes sagen
wir, dass der Spieler tot ist. Jetzt können Sie natürlich wirklich jeden beliebigen
Text einfügen Dies dient nur dazu, zu
demonstrieren, wie Sie das machen. Jetzt, wo der Text hier drüben ist, wähle
ich den
Anker in der Mitte aus. Ich ändere seine
Position auf Null, Null und dann seine Größe
auf X, mal sehen,
lassen Sie mich seine Größe hier auf
300 und Größe Y auch auf 300 ändern . Nein, lass mich die
100 angeben und sie dann
einfach hier anordnen. Das ist Basistext. Um den
Text zu vergrößern, kommen
wir nun zurück zu
den Eigenschaften. Geben wir Größe ein. Wird die
Schriftgröße des Textes anzeigen. Lassen Sie mich es auf
etwa 80 erhöhen. Ja, 80 ist gut. Oh, tut mir leid, ich habe
auf das Falsche geklickt. Lass mich noch einmal darauf klicken. Okay. Ausgezeichnet. Jetzt muss
ich mich vergewissern. Oh nein, es stapelt sich. Alles oben ist
unten, kein Problem. Drücken Sie jetzt S, um zu speichern. Lass uns schnell kompilieren. Jetzt haben wir einen sehr
einfachen Todesbildschirm. Aber das ist nicht gut genug. Lassen Sie uns
etwas Besonderes hinzufügen. Wir kehren zur Kunst
im Inneren des Abenteurers zurück. Lass mich sehen. Haben wir ein paar
Death-Sprites? Nein, haben wir nicht Ich werde hinzufügen
, lassen Sie mich einfach die Animation der
Wandfolie hinzufügen, anstatt die
Wandrutsche hier drüben. Und ich drücke Lass es mich sehen. Nein, ich muss
diese Wandrutsche erklimmen. Nachdem ich
die Wandfolie ausgewählt habe, lassen Sie sie erscheinen.
Das ist der Auftritt. Jetzt habe ich seine Größe ausgewählt. Im Moment ist es auf 140 eingestellt. Lassen Sie mich das auf
etwa das Doppelte einstellen ,
was 280 bedeutet. Okay. Immer noch nicht groß genug. Ich denke, lass mich das
jetzt mit 400 und 160 Pixeln machen. Okay. Ja, das funktioniert
ziemlich gut. Stell das hier hin. Das ist also unser Schreibtischbildschirm. Derzeit. Lassen Sie uns noch eine weitere Sache hinzufügen , nämlich eine einfache Schaltfläche. Oh, es ist nicht in der Hierarchie. Ich muss
hier suchen, nach einem Button suchen. Und dann ziehen wir diese Schaltfläche
per Drag & Drop hierher. Erhöhen Sie die Größe ein bisschen. Jetzt hole ich mir das
und füge eine weitere Schaltfläche hinzu, nur um sie
hierher zu kopieren. Das ist gut. Wir haben also ein einfaches Bild mit dem Text
, dass ein Spieler tot ist, und wir haben zwei Schaltflächen. Cool. Nun, da wir unsere beiden Schaltflächen
haben, fügen
wir etwas Text hinzu. Ich füge den Text zur
ersten Schaltfläche hinzu und ziehe diesen Text dann
erneut auf die zweite Schaltfläche. Beachten Sie, wie es sich automatisch in der Mitte
positioniert hat. Und für den ersten Textblock wähle
ich seinen Text hier aus. Ich sage, im Text
steht Neustart. Und dann wird der letzte
Textblock Exit genannt.
Das steht im Text. Nun zu den Buttons, ich werde diese
Schaltfläche so ändern, dass der
Button-Name hier drüben Exit heißt. Und dann beim Neustart, den Namen der Schaltfläche selbst, werde
ich ihn in
Neustart, Neustart ändern, okay? Jetzt, wo das geändert wurde, wenn es um die Reihenfolge geht,
beachten Sie, dass der Text nicht wichtig
ist. Der wahre Name, der zählt,
ist der Name auf der Schaltfläche. Nun, da wir das eingewählt haben, sollten wir sie so organisieren,
dass sie aufeinander abgestimmt
sind dass sie aufeinander abgestimmt Also werden wir nach
etwas suchen, das als vertikale Box bezeichnet wird Okay. Jetzt holen wir uns das vertikale Feld und
ziehen es in die Szene. Und was die Anker angeht, wollen
wir es
auf der vierten Medaille verankern Hoch, einen Moment. In Ordnung. Ich habe den Anruf
und all die
damit verbundenen Herausforderungen geklärt . Ich liebe es, nützlich zu sein. Und wenn du in der
Spieleentwicklung
bist, musst du
dein Leben organisieren. Jetzt zurück zum Tutorial. Jetzt, wo ich
dieses vertikale Feld eingefügt habe, fällt auf, dass noch nichts
drin ist, okay? Oh mein Gott. Verkleinern. Ich war abgelenkt. Jetzt, wo
ich dieses vertikale Feld habe, habe
ich das vertikale Feld ausgewählt Lass es uns öffnen. Ich finde, es hat eine gute Größe. Wir wollen viele Elemente
in die vertikale Box einfügen. Wir wollen, dass sie darin sind , damit
es sie organisieren kann. Das ist im Allgemeinen der Zweck einer
vertikalen Box. Sie organisiert Elemente
in sich selbst. Lassen Sie uns nun die Elemente
in das vertikale Feld legen. in den Hierarchiebereich hineinzoomen, lassen Sie uns das einfach verschärfen Alles, was wir
tun werden, ist , diese beiden Schaltflächen
zu bekommen und sie
in das vertikale Feld zu legen und dann bekommen wir dieses Bild dem
der Spieler
tot ist, und das Bild, das die
kleine Grafik des
Spielers sein sollte , und legen sie auch
in das vertikale Feld Und jetzt, wenn wir wieder herauszoomen, oh, schauen Sie sich diese Organisation an. Sie haben ihre Reihenfolge geändert. Sie haben ihre Größe geändert. Also müssen wir jetzt
die Größe und Reihenfolge anpassen , damit sie Sinn ergeben. Zunächst ziehen wir
den Text. Um den Text zu ziehen, möchte
ich, dass die Spieler tot sind
, das zweite Ding sein Also wähle ich den Text
der toten Spieler in
der vertikalen Box aus. Ich werde es hier aufstellen und jetzt schau, es ist oben. Dann komme ich zurück
zu diesem Bild. Ich ziehe es über den
Text und stoppe es. Oh nein, es geht zu weit. Zieh es über den
Text, da sind wir. Und jetzt
kommt zuerst das Bild, zuerst das Bild und dann der
Text, dann die Buttons. Das ist genau das, was wir brauchen. Nachdem diese nun auf diese Weise
organisiert sind, legen
wir zunächst
die Bildgröße fest. Also habe ich das Bild ausgewählt und auf der rechten Seite festgestellt, dass es auf
vertikale Ausrichtung und
horizontale Ausrichtung eingestellt ist . Also stellen wir die
vertikale Ausrichtung , dass sie horizontal zentriert ist. Und allein durch das Klicken auf die horizontale
Mitte hat
es aufgehört, dass ich nicht mehr
gequetscht werde, okay Und jetzt, wo es nicht
ausgestreckt wird, ist
es immer noch klein, aber es wird
nicht ausgestreckt Jetzt wähle ich das
Bild noch einmal aus
und wir möchten seine
Größe ein wenig ändern, weil wir nicht wollen, dass es dieses
kleine Ding hier drüben ist. Also lasst uns jetzt seine
Größe ändern und es vergrößern. Also das gewählte Bild, wir wollen jetzt, dass
es viel größer ist. Wählen Sie einfach das Bild aus. Sie dann im
Eigenschaftenfenster, Beachten Sie dann im
Eigenschaftenfenster, dass sich der Pinsel befindet. Gehe in den Pinsel
und dann ist da noch die Bildgröße. Also ändere es einfach von
32 mal 32 auf etwa 200 mal 200. Das sollte uns ein viel
vernünftigeres Bild geben. Das gefällt mir sehr. Lass es uns noch größer
machen. Machen wir 300,
300 draus . Das ist gut. Lass es uns noch größer machen. Lass uns 400 mal machen, 400, 300 scheint
es klar erscheinen zu lassen. Das ist eine gute Bildgröße. Klicken Sie nun auf den
Text von Play is dead. Stellen wir sicher, dass die
horizontale
Ausrichtung hier in der Mitte liegt. Und damit sind wir glücklich. Dann
wählen wir jetzt die Schaltfläche aus. Als erstes müssen
wir die Farbe dieser Schaltflächen ändern. Ich denke, lassen Sie uns die
Farbe ändern in etwas wie, Okay? Nein, das ist der Knopf. Die Textfarbe, drücken Sie die
Taste Z, um das zu ändern. Ändern Sie die
Hintergrundfarbe auf
etwas mehr. Das ist in Ordnung. Die Tasten können komplett schwarz sein. Ich glaube, ich bin damit einverstanden. Aber mit weißem Text, der immer gut
für die Lesbarkeit ist Ich glaube fest an schwarze
Hintergründe und weißen Text. Und jetzt fügen wir
etwas Abstand
zwischen den Spielern hinzu,
dazwischen ist das Spiel tot Wählen Sie den Text „Totes Spiel“ aus. Auf der linken Seite gibt es
eine Option namens Padding. Okay. Das ist es. Und wir wollen den Boden etwas
Polsterung hinzufügen. Fügen wir etwa 200 Pixel hinzu, was diesen
Platz ergibt, das ist zu viel, 50 Pixel Perfekt. Also nur 50 Pixel Bodenpolsterung machen den Job Und jetzt haben wir unsere Knöpfe. Also werde ich die
Tasten doppelt auswählen, indem ich die Umschalttaste gedrückt halte. Wenn ich auf die
Schaltflächen klicke, damit wir die Werte beider
Schaltflächen gleichzeitig
ändern können . Ich komme also hierher, weil
es so aussieht. Lass mich sehen. Ich
möchte etwas Polsterung hinzufügen Ich denke, für beide werde
ich oben 20 Pixel hinzufügen, um ihnen
einen gewissen Abstand zu geben rechts 50, um ihnen
etwas Abstand zu geben , und links 50 Oh, nicht nach unten. Bis zum Boden sollten 20 bleiben. Also links und rechts haben
wir 50 Pixel. Vielleicht fügen wir mehr hinzu. Also 100 nach links, 100 nach rechts. Damit kompilieren Sie V.
Das ist unser Todesbildschirm, so wie er jetzt ist, und ich kann das vertikale Feld leicht
anpassen, und Sie werden sehen, wie
das Anpassen des vertikalen Felds die Position
von allem
darin verändert, sodass wir eine vernünftige
Benutzeroberfläche haben. Jetzt werde ich sicherstellen, dass das vertikale Feld in der oberen Mitte
verankert ist Position X ist,
dass ich das schnell auf Null setzen kann. Okay? Das wird
das da hinstellen. Das will ich nicht. Richten wir es wieder richtig in der
oberen Mitte aus. Und ich möchte, dass die vertikale
Position der Box viel größer ist. Oh, das habe ich geschlossen. Lass uns wieder hierher kommen. Ich möchte, dass es viel mehr
bis irgendwo in der Mitte ist. Also Größe X,
lass mich Größe X 700 nehmen. Hat Größe Y 800. Dadurch kann
ich es genau positionieren. Da ich weiß, dass
seine X-Größe 700 ist, ist
700/2 350, also kann ich einfach reinkommen und die
Position X auf minus 350 setzen Okay? Also, jetzt
haben wir ein Basismenü, das das, was bei
Tod funktioniert, schnell kompilieren und es wird noch nicht funktionieren, aber was passieren
wird ist, wenn dieser Spieler tot ist, wollen
wir
diesen Todesbildschirm sehen. Lassen Sie uns anfangen, diesen
Todesbildschirm zum Spiel hinzuzufügen.
39. 37 Hinzufügen des DeathScreens zum Tod: Jetzt haben wir die
Benutzeroberfläche erstellt, wohingegen der Bildschirm hier drüben ist. Jetzt müssen wir nur noch
sicherstellen, dass die Benutzeroberfläche auf dem Bildschirm angezeigt wird, sobald der
Gesundheitsbalken auf Null geht. Gehen wir also zurück
zum Heldencharakter. Jetzt wissen wir, wie
man tot oder lebendig
sucht, und das
werden wir verwenden. Jetzt entfernen wir den lebendigen Teil. Wir wissen bereits, dass das
korrekt funktioniert, und lassen Sie uns diese Zeichenfolge löschen. Wir brauchen diese
Druckbildschirme nicht , weil wir wissen, dass
es richtig funktioniert. Als Nächstes wollen
wir das Widget
einfach
zum Bildschirm hinzufügen. Nun, genau wie
wir es für die Gesundheitsleiste gemacht
haben, bringen wir das einfach raus. Und das Erste, was
wir
tun werden, ist, das Spiel
zu unterbrechen. Also werden wir das Spiel pausieren und
den Post-Wert auf true setzen. Okay. Das ist es. Wir haben den
Post-Wert auf wahr gesetzt. Und wenn das erledigt ist, ziehen
wir das als
Nächstes heraus und erstellen ein Widget. Welches Widget, ganz einfach, es wird das Todesbildschirm-Widget sein. Geben wir also Todesbildschirm und es wird
der Todesbildschirm hier drüben erstellt. Nun, was das Besitzen eines Spielers angeht, werden
wir es
genauso machen, wir hier die
Gesundheitsleiste hinzugefügt haben. Also kommen wir hierher
und holen uns den lokalen Spieler von ID Also geh okay. Und wir wollen
, dass das Spieler Null ist. Also haben wir das
Deathscreen-Widget erstellt. Okay. Als Nächstes fügen
wir es
einfach dem Viewport-Typ
und dem Viewport hinzu Und da ist es. Und lass es uns hier verbinden. Das ist der Rückgabewert. Und nachdem das erledigt ist
, lassen Sie mich das jetzt ein wenig
erweitern. Dann stellen wir den
Mauskurs so ein, dass er sichtbar ist. Lassen Sie uns das also in die Länge ziehen. Und wir wollen
set show mouse eingeben, eigentlich set mouse
cosa. Nein, nein, nein, nein. Was wir tatsächlich tun werden, ist, den
lokalen Spieler von ID zu bekommen und von dort
ziehen wir das für den lokalen Spieler. Wir setzen die Maus. Schauen wir uns den Cursor an.
Ja, hier sind wir. Nein, das ist nicht der, den wir wollen. Wir werden den Mauszeiger nicht setzen. Ja, hier sind wir eingestellt Mauszeiger
anzeigen. Das
ist der, den wir wollen. Das haben wir aus
dem Get Local Player von ID rausgekriegt. Und wir wollen, dass der
Mauszeiger sichtbar ist. Okay? Und danach wollen
wir den Eingabemodus ändern
, sodass wir
nicht mehr in die Spielwelt eingeben Wir werden einfach den Eingabemodus einstellen. Okay, und wir werden es nur
auf die Benutzeroberfläche einstellen. Und welcher Player-Controller
wird derselbe
Player-Controller sein. Und dann wollen
wir uns im Widget konzentrieren, wo ist das
Desktop-Bildschirm-Widget. Wir wollen uns auf
das Deathscreen-Widget konzentrieren. Und damit, okay, lass es uns im Spiel testen. Also auf Entwicklerebene,
es spielt live, lebendig. Lassen Sie uns das tatsächlich beschleunigen. Ich wähle
das Schadensobjekt und erhöhe
den Schaden um 10-25, also muss ich nur vier
dieser Objekte
durchgehen , um
eins, zwei, drei, vier auszulösen Schau dir das an. Der Spieler ist tot und jetzt zeigt er uns
den Bildschirm. Das ist cool. Also eins, zwei, drei, vier. Bum. Der Spieler ist tot. Jetzt wird der Todesbildschirm korrekt
angezeigt. Jetzt, wo er da ist, gehen wir
zurück zum Todesbildschirm und fügen einige Knoten hinzu, um
sicherzustellen , dass diese Schaltflächen auch das
tun, was sie sagen. Wir werden dafür sorgen, dass diese
Taste das Level neu startet, und wir werden dafür
sorgen, dass diese Taste das Spiel
beendet. Lass uns gehen.
40. 38 Hinzufügen von Funktionen zum Todesbildschirm: In Ordnung. Nun, da wir einen Todesbildschirm haben, geben
wir ihm einige wirklich brauchbare und nützliche Menüoptionen. Lassen Sie uns zunächst direkt
zum Todesbildschirm übergehen. Okay. Und jetzt
werden wir damit beginnen, dass
die Tasten zum Neustarten und
Beenden tatsächlich funktionieren. Zunächst
kommen wir hierher und Sie
sehen, dass das variabel ist.
Wählen Sie es aus, damit wir es
zu einer Variablen machen. Und für den Ausgang
machen Sie es auch zu einer Variablen. sie zu einer Variablen machen ,
können wir
darauf zugreifen und sie für verschiedene Funktionen verwenden. Kommen Sie als Nächstes runter und stellen Sie fest,
dass hier einige Ereignisse stattfinden. Erstellen Sie schnell ein Ereignis, auf das Sie nicht geklickt haben. Das ist für den Ausgang. Okay, hier
ist es OnClickedEit. Und dann gehen wir wieder zur
Designseite zurück und klicken dann auf Restart. Dann notieren wir uns hier
und
machen ein weiteres Ereignis, auf das notieren wir uns hier
und
machen ein weiteres Ereignis machen ein weiteres Also haben wir onClick
restart und onClick Exit. Und jetzt wollen wir
die Funktionen zu dieser
Schaltfläche hinzufügen , zu diesen Jetzt die Funktionen. Mm hmm. Entschuldigen Sie mich. Die Funktionen
sind ziemlich einfach. Fangen wir mit der
einfacheren Variante an, die das Spiel beendet. Um das Spiel zu beenden, fügen
wir zunächst einen Kommentar hinzu, ziehen ihn hinein und ziehen ihn heraus Und dann ändern wir uns wie immer. Ich liebe den schwarzen
Hintergrund und den weißen Text. Erhöhen Sie die Textgröße
auf etwa 50, aber sie ist groß und ziehen Sie das heraus. Ich sage, beende das
Spiel. Das ist alles. also auf Beenden klicken, wir also auf Beenden klicken, ziehen wir es einfach heraus und geben dann Spiel beenden ein. Das ist alles. Okay.
Also hör auf. Hör einfach auf. Das ist alles. Beende, beende das Spiel. Okay. Okay, gut. Vielleicht ist diese Textgröße ein
bisschen groß. Lass uns 24 draus machen. Okay, viel besser. Und dann werde
ich das kopieren
und einfügen. Ziehe es. Okay, das
ist viel zu groß. Komm wieder runter. Okay. Und dann klicken Sie auf Neustart. Also werde ich sagen,
starte das Level neu. Okay. Nun, der Neustart ,
wir werden
etwas komplexer. Das Erste, was
wir tun werden ,
ist, das hier
rauszuziehen. Und dann wollen wir den aktuellen Levelnamen
bekommen, okay? Das wird den
Namen des aktuellen Levels bekommen. Das ist das Erste, was
wir tun werden. Jetzt, wo wir damit fertig sind, wollen wir als Nächstes Level nach Namen öffnen. Okay. Und wir werden den Namen
des aktuellen Levels
mit dem Namen des offenen Levels verknüpfen . Ich bin mir sicher, dass es selbsterklärend ist,
was das bewirken wird. Es bekommt den Levelnamen und
es heißt, öffne das Level, und es wird das
aktuelle Level sein, in dem wir uns befinden Das ist also sehr gut. Und das ist zuverlässig. Es gibt viele Möglichkeiten, dies zu tun, aber dies ist die
zuverlässigste Methode. Es wird immer funktionieren.
Ruft den aktuellen Levelnamen ab und öffnet den Level nach Namen. Mit nur dem wird das funktionieren. Aber wir
wollen sicherstellen, dass der
Eingabemodus richtig eingestellt ist. Also rufen wir an, nein, wir werden zuerst anrufen lokalen Spieler anhand der ID ermitteln. Mal sehen, Local
Player von ID holen, perfekt. Und wir wollen, dass Spieler Null sind, und dann ziehen wir
das raus und setzen die Eingabe. Mal sehen, Eingabemodus einstellen. Und wir wollen den
Eingabemodus nur auf Spiel einstellen. Dann ziehen wir
das hier rüber. Und da sind wir. Also
lass es uns durchgehen. Das Spiel zu beenden, es ist ganz einfach. Beenden Sie das Spiel mit einem Klick. Einfach. das
Level beim Klicken auf Neustart neu zu starten, beginnen
wir jedoch mit dem
aktuellen Levelnamen von G, öffnen das Level nach Namen, Um das
Level beim Klicken auf Neustart neu zu starten, beginnen
wir jedoch mit dem
aktuellen Levelnamen von G,
öffnen das Level nach Namen,
rufen dann den
Player-Controller von ID ab und setzen den
Eingabemodus auf Nur Spiel Und damit
gehen wir zur Entwicklerebene über. Ich bin tot, ich kann auf
Exit klicken und bin raus. Ich könnte aber
auch, wenn ich tot bin, auf Neu starten klicken und das Level
wird neu gestartet Starten Sie neu. Perfekt. Jetzt haben wir also ein
funktionierendes Sterbesystem. Der Spieler kann sterben, und dann kann er das Spiel verlassen oder
das Spiel neu starten, und es funktioniert grundsätzlich einwandfrei
und es funktioniert immer noch Wir können uns bewegen,
alles andere funktioniert. Das ist eine ausreichend gute
Grundlinie, die fantastisch ist. Lassen Sie uns nun damit fortfahren, den Spieler so
zu gestalten, dass er
nun Schaden erleiden
kann. Geben
wir dem Spieler die
Möglichkeit, Schaden auszuteilen indem wir ihn angreifen und eine Übungspuppe
erstellen, die wir treffen können, um seine Gesundheit auf
Null zu reduzieren Lassen Sie uns das in den
nächsten Lektionen tun.
41. 39 Spielerangriffseingaben hinzufügen: Ordnung. In diesem Video werden wir
alles durchgehen,
wie man schnell eine
Schwertangriffseingabe einfügt. Wir wollen nur die Eingabe
einrichten. Jetzt, im Spiel,
wenn iPressPlay gedrückt wird, wenn ich mit der
linken Maustaste auf den Controller klicke, beachte, dass im
oberen linken Bereich
Text mit der Aufschrift Angriff angezeigt wird. Ich drücke E, während ich mich
bewege, Text mit der Aufschrift Angriff wird angezeigt und der
Text mit der Aufschrift Angriff wird angezeigt.
Wenn ich mich dann auf meinem Controller nach links oder rechts bewege, kann
ich sofort die X-Taste auf der Xbox drücken und
der So
werden Sie es einrichten. Gehen Sie jetzt zurück zu Controls, dem Ordner hier drüben. Es ist derselbe Ordner, den
du verwendest, um
deinen Sprung und deine Bewegungs
- und Spielermap in Unreal Engine einzurichten deinen Sprung und deine Bewegungs - und Spielermap in Unreal Engine Du wirst eine neue
Eingabeaktion erstellen und sie
Nahkampfangriff, Nahkampfangriff nennen Nahkampfangriff, Nahkampfangriff Wenn du sie jetzt betrittst, kannst
du sie so lassen, wie sie ist und sie kann
ein digitaler boolescher Wert bleiben Sie müssen keine Änderungen daran
vornehmen. Richte einfach die Aktion ein,
nenne sie Melata. Sobald Sie damit fertig sind, möchten
Sie zur Spielermap
gehen,
die den Eingabe-Mapping-Kontext darstellt Wenn Sie in die Player-Map gehen, den Eingabe-Mapping-Kontext, möchten Sie sicherstellen, dass Sie direkt hierher kommen und
ein neues Mapping hinzufügen. Sobald du mit dem Hinzufügen
dieser neuen Zuordnung fertig bist, fügst
du sie als Mein Angriff hinzu , den du
aus
einem Drop-down-Menü auswählst. Suchen Sie die Mattach-Eingabeaktion. Okay. Sobald das erledigt ist, füge neue Eingaben hinzu, füge die linke Maustaste hinzu,
um den Mea-Angriff auszulösen, füge E auf deiner Tastatur hinzu,
um den Mea-Angriff auszulösen. Und wenn Sie dann einen Controller
haben, wenn Sie keinen haben, ist es okay,
Sie können das überspringen. Aber wenn Sie einen Controller haben, fügen
Sie auch das
Drücken dieser Taste hinzu, oder als Auslöser für das Metack Sobald du mit
diesem Schritt fertig bist, der dem
Einrichten der Bewegung
sehr, sehr ähnlich ist , okay Sobald Sie mit diesem Schritt fertig sind, müssen Sie
jetzt
Ihren Spieler-Blueprint finden Jetzt sollte der
Spielerplan unter Charakterspieler zu
finden sein , und da ist er unsere
Helden-Blueprint-Klasse Im
Helden-Blueprint ist
dieser Teil nun sehr
einfach zu verstehen Erstellen Sie natürlich ein Kommentarfeld , das
die Daten enthält, und sagen Sie:
Hey, hier
befinden sich diese Knoten für die Organisation Und dann
klicken Sie mit der rechten Maustaste und suchen nach mir angreifen Daraufhin wird
das Hinzufügen
der Eingabe Ich angreifen angezeigt. Sobald diese Eingabe eingegangen ist, bitten Sie sie
einfach, die Zeichenfolge zu drucken und
diese Zeichenfolge Attack zu nennen. Und damit bist du fertig. Jetzt haben wir den Basiscode
für unser Me-Attack-Setup. Der Meal Attack ist also fertig. Jetzt sind wir bereit, mit dem
Hinzufügen und Implementieren zu beginnen, das Trefferfeld
einzufügen und dann mit der Animation. Aber lassen Sie uns
im nächsten Video darauf eingehen.
42. 40 Ein Kampf-Mockup erstellen Teil 1: Nun, da wir die Grundzüge unseres
Angriffsereignisses kennen, brauchen
wir etwas, gegen das wir
es üben können das zu tun, brauchen wir also
einen einfachen Angriffs-Dummy
, den wir verwenden werden Um das zu tun, gehen
wir einfach zurück in den Ordner unseres
Charakters Und dieses Mal werden
wir einen neuen Ordner erstellen und diesen Ordner
nennen. Wir werden diesen
Ordner Attack Dummy nennen, okay? Weil wir
hier einen einfachen
Angriff hinzufügen und erstellen werden, verdammt. Also werden wir
eine Blueprint-Klasse erstellen,
und wir wollen, dass sie so ist, mal sehen Wir wollen, dass es einfach ist,
mal sehen, mal sehen. Lass uns sehen. Was wollen wir? Lass es uns ein
Charakter sein, okay. Aber es wird trotzdem
nur eine Angriffspuppe sein. Okay? Das wird unser Angriffspuppe
sein Und lassen Sie uns schnell
auf den Angriffspuppen doppelklicken. Und was wir wirklich mit
dem Angriffspuppen wollen, oder? Wollen wir ihm
einen einfachen Würfel hinzufügen , das ist alles, was
wir hinzufügen müssen das Material angeht, ich meine, wir könnten praktisch
jedes Material wählen. Es spielt keine Rolle. Okay. Es ist wirklich egal. Aber das werden
wir verwenden, okay? Also lass uns das schnell kompilieren. Und mit diesem Angriff,
Dummy, ziehen wir ihn per
Drag-and-Drop in die Welt Achte darauf, dass es
auf der Y-Achse in Bezug
auf seine Position Null ist , weil ich möchte, dass es etwas rechts
vom Spieler Das ist cool.
Das nächste ist, dass wir, weißt
du, etwas
ziemlich Grundlegendes hinzufügen wollen. Wir wollen dem Ganzen ein
Gesundheitsproblem hinzufügen. Verdammt noch mal,
wir wollen innerhalb des Angriffs eine
Gesundheitsleiste haben Um hier die Gesundheitsleiste hinzuzufügen, gehen
wir als Erstes in das Ereignisdiagramm
und dann gehen wir
zu Variablen, und wir wollen
eine neue Variable erstellen Und dieser Variablentyp ist
, dass es ein Float sein wird. Und wir werden diese Variable
nennen. Wir werden
es Dam Health nennen. Okay, das wird
eine Variable sein. Und wir wollen das, lass uns
anrufen, lass uns das
Dummy Health 100 machen, einrichten , okay? Die verdammte Gesundheit
wird 100 sein. Das wird es einfach halten. Jetzt, wo die
Gesundheit von Dammi bei 100 liegt, können
wir
den Gesundheitsbalken zum
Dammi selbst hinzufügen den Gesundheitsbalken zum , sodass er einen Gesundheitsbalken
über seinem Kopf hat Als wir das letzte Mal die Gesundheitsleiste
erstellt haben, haben wir im Spielerinterface diese
einfache Gesundheitsleiste
für den Spieler auf
diese Weise erstellt, okay
? haben wir im Spielerinterface diese
einfache Gesundheitsleiste
für den Spieler auf
diese Weise erstellt , okay Also werden wir genau
das Gleiche tun, aber dieses Mal für unseren Dammi Also werden wir nur
dafür sorgen, dass alles organisiert ist, wir werden mit
der Abwehr von Angriffen beginnen. Wir werden einen neuen Ordner
erstellen und diesen Ordner
Interface
nennen, um ihn zu organisieren Darin schreiben
wir also schreiben
wir Click und wir wollen
ein Benutzeroberflächenelement erstellen. Und das Objekt, das wir
erstellen wollen, ist ein Widget-Blueprint. Du solltest ihn auf deiner Seite sehen können ,
Widget-Blueprint, okay? Und ja, wir wollen
ein Benutzer-Widget erstellen. Das ist in Ordnung. Und wir werden
es Dammi Health Bar nennen. Okay. Also so nennen
wir es. Wir nennen es
Dammi Health Bar. Doppelklicken Sie also auf
die Dummy-Gesundheitsleiste. Zuallererst möchten
wir wie immer
ein Canvas-Panel hinzufügen wie immer
ein Canvas-Panel Und dann, nachdem wir das Canvas-Panel hinzugefügt
haben, wollen wir einen Fortschrittsbalken haben. Ragatin. Wir wollen es verankern, wir
wollen es wirklich in der Mitte verankern Sie können also ein beliebiges Zentrum wählen, aber ich lege es gerne
genau in die Mitte. Und dann möchte
ich für
Position und Offset, dass es Offset Null und Offset Null ist, weil das ziemlich
groß sein
wird, weißt du? Und dann möchte ich die
Y-Größe auf
etwa 300 erhöhen . Okay, also mach einfach einen schönen
großen, fleischigen Gesundheitsriegel. Hüftposition Null, Null. Nein, lassen Sie uns die Position negativ auf 150 setzen. Also habe ich es im Grunde genommen bis zur Mitte des Ankers verschoben, es
nach links auf Null verschoben, nach rechts auf Null
versetzt. Und Position Y ist negativ 150
, weil ihre Größe Y 300 ist, also hat sie diese Größe erreicht. Und dann Füllfarbe, ich glaube, ich werde es gelb haben. Okay. Das ist cool. Und jetzt, wo die
Füllfarbe auf Gelb gesetzt ist, wollen wir über ihren Fortschritt nachdenken. Ich denke
, Prozentsatz wird zunächst
Null sein. Okay? Das ist cool. Das
ist jetzt unsere Gesundheitsbar. Beachten Sie jetzt, dass es Fortschrittsbalken
heißt. Lass uns das ändern. Und eigentlich können wir es nicht
mal beim Fortschritt belassen, nennen
wir es einfach Dummy-Hilfe Fortschrittsbalken. Nachdem wir unseren
DamiHalthPgress-Balken gesetzt haben, müssen
wir sicherstellen, dass er als Variable eingerichtet
ist Und nachdem all das erledigt ist, sind
wir hier im Wesentlichen fertig wir Gehen wir jetzt zurück
zum Angriff, verdammt, okay? Wir wollen jetzt, dass unser Attack-Dammi sobald er
in die Welt geladen ist, okay, dieser Angriffspuppe, wir wollen, dass er einen
Gesundheitsbalken über seinem Kopf hat Okay. Nun, um das zu tun, gehen
wir in
den Angriffspuppen und wir müssen etwas Code
zu seinem Startspiel hinzufügen Erstellen Sie jetzt ein großes Kommentarfeld, okay, sodass dort steht: Hey, das fügt
dem Dummy einen Gesundheitsbalken hinzu und wir mit dem Event und
beginnen mit dem Spielen, Also ziehe ich das raus und wir wollen
ein Widget erstellen, okay? Also, was wir wollen,
wollen ein Widget erstellen. Jetzt wählen wir das aus. Und die Widget-Klasse, die
wir wollen, ist DamiHealth Br. Sie können die
DamiHalth-Leiste dort sehen, weil
Areal gut darin ist, den Überblick darüber zu behalten
, was Sie erstellt Und jetzt, wo wir das haben, haben
wir den Spieler, der
es besitzt, und im Grunde wird er nur das
Dummy-Gesundheitsleisten-Widget erstellen Lassen Sie uns das schnell
testen und sehen, wie es aussieht. Okay. Nun, wenn wir hier kompilieren, sollte
nichts auf dem Bildschirm zu sehen sein. Was wir also
als Nächstes tun müssen, ist, dass wir das tatsächlich zum Bildschirm hinzufügen müssen . Also wollen wir es zum Viewport hinzufügen. Okay. Beginnen Sie also damit, es einfach zum Viewport
hinzuzufügen Stellen Sie sicher, dass
es zumindest richtig einspawnt. Verdoppeln wir C. Da haben wir's. Im Moment
funktioniert es also korrekt, aber es wird
zum Viewport hinzugefügt Passen wir das an. Okay. Nun, da
wir bestätigt haben, dass unser Gesundheitsbalken korrekt erscheinen kann, löschen
wir das Hinzufügen
zum Viewport, und dann kommen wir hierher und fügen ihn
dem Charakter selbst hinzu Also wollen wir ein Widget hinzufügen
und dieses Widget hinzufügen. Gehen wir jetzt schnell
in den Viewport, okay? Sie werden also sehen, dass
es jetzt dieses weiße Widget gibt. Da ist dieses Objekt, richtig, das wird
unser Widget sein. Jetzt, wo wir es haben, wollen wir es ein bisschen nach
links
bewegen, warten. Das wollen wir.
Das ist der Würfel. Das ist das Widget, das ich auswählen möchte. Nachdem wir das
Widget ausgewählt haben, möchten
wir auswählen, um welchen
Widget-Typ es sich handelt. also das Widget auswählen Wenn Sie also das Widget auswählen und hierher kommen, werden
Sie feststellen, dass es
die Option gibt die Widget-Klasse
auszuwählen, und natürlich nach
Dami Health Bar suchen, und da ist es Also hat es die
Dammi-Gesundheitsleiste hinzugefügt. Schauen wir uns nun an, wie
das im Spiel aussieht. Okay. Also kann man es von hier aus im Grunde nicht
wirklich sehen. Okay, aber du kannst
sehen, wo es ist. Gehen wir also zurück zur
Attacke Damming. Also im Moment zeigt es, dass die Gesundheitsleiste
von hier aus nicht sichtbar ist , aber von hier aus Also lasst uns einige grundlegende Bewegungen machen. Also wählen wir seine
Rotation aus. Lass uns sehen. Und wir wollen es auf
der Z-Achse um 90 Grad drehen. Okay? Also das ist hier drüben. Z-Achse, 90 Grad. Das ist cool. Und
wenn das erledigt ist, verkleinern wir es etwas. Auf etwa 0,5. Jetzt ist das erledigt, und dann wollen wir es abwechselnd
erhöhen. Also möchte ich, dass es
etwas höher ist. Los geht's, kompilieren wir das. Und jetzt, in der Zwischenzeit, können
Sie sehen, dass das
Widget dort drüben ist. Okay? Ja, der Spieler wurde wegen der Trefferbox
verschoben, aber
damit befassen wir uns etwas später. Okay. Also im Grunde ist
es da. Jetzt, wo wir das haben, können
Sie die Bar da drüben sehen. Lassen Sie uns etwas
runtergehen, wie hoch es ist. Möchte, dass es ein Gesundheitsriegel
ist, kein gigantischer Gesundheitsplatz Okay. Also gehen wir rein und
schalten die Skalierung frei und reduzieren die Skalierung auf der Z-Achse, um ein
bisschen vernünftiger zu sein. Sie können es auf der Z-Achse
herunterskalieren. Da ist es also. Jetzt haben wir also diese
grundlegende Gesundheitsleiste, aber sie ist noch nicht verbunden
, um Gesundheitsdaten anzuzeigen. Was wir also tun wollen, lassen
Sie uns zum Ereignisdiagramm zurückkehren. Jetzt, wo das hier ist,
komm her. Also rutschen Sie rein. Also, falls ja, fang an zu spielen
, hol das raus. Haltet durch. Wir wollen den
Gesundheitsbalken mit den richtigen Daten aktualisieren. Also
holen wir uns das Widget und ziehen es als Objekt hierher. Okay. Und dann wollen
wir aus dem Widget Dummy No. Wir wollen die Widget-Komponente tatsächlich
herausbringen. Also lass uns das hier holen. Machen Sie daraus eine Variable. Es ist derzeit auf die
Variable Widget Null gesetzt. Ich möchte nicht, dass es das
variable Widget Null ist. Also werde ich diese Variable
nennen. anstelle von Widget Null Lassen Sie mich
es anstelle von Widget Null schnell Health Bar nennen. So werden
wir es also nennen, okay? Es wird Health Bar heißen. Jetzt, wo es hier als Variable
eingerichtet ist, wollen
wir es jetzt herausziehen und sagen: Hey, verdammt
nochmal, nein, nein, verstanden Einen Moment, ich muss die Namen noch einmal überprüfen . Okay, jetzt warte. Lassen Sie uns den
ganzen ursprünglichen Code loswerden , weil ich eine lange
Umgehungsmethode verwendet habe, und doch gibt es eine
einfache und schnelle Methode, um das zu erledigen. Lass uns wieder runter
kommen Sie sehen dieses
Widget mit der Gesundheitsleiste. Wir brauchen es nicht bei. Wir brauchen es wirklich überhaupt nicht. Lassen Sie mich löschen,
dass das nicht benötigt wird. Wir kehren zum
Baseline-Widget zurück. Alles, was wir haben, ist die
Dummy-Gesundheitsleiste, die als Widget eingerichtet ist, und in der Welt sieht sie
derzeit so Wir kehren zum
Angriffspuppen zurück, und nachdem das Event gestartet ist, werden
wir es einfach halten, anstatt
all die Arbeit machen zu müssen, um es aufzurufen anstatt
all die Arbeit machen zu müssen, um Diesmal müssen
wir nur das Widget
holen und es
hierher ziehen Und jetzt haben wir unsere
Widget-Komponente. Die Widget-Komponente
ist jetzt da. Ich habe den Dammi
Health Bar schon einsatzbereit. Jetzt lass mich den Zug nach Süden ziehen. Als Nächstes werden wir
casten mal sehen,
wir wollen in der Helpbar casten. Nein, nein, nein, ich will casten. Was möchtest du mit
zwei Rollen besetzen? Welche Komponente? Welche Komponente?
Okay, bevor wir casten , müssen wir
eigentlich zurückkommen. Also haben wir unser Widget. Wir casten nicht direkt. Das erste, was wir
tun wollen, ist, ein Widget zu bekommen. Wenn du also nach unten scrollst,
wenn du G
eingibst, musst du Widget bekommen, was bedeutet Widget Das ist nicht das Widget Es ist
die Widget-Komponente. Dann wollen wir das
Widget in die Komponente integrieren. Sobald wir das haben, können
wir es jetzt herausziehen
und sagen Cast Two,
und wir wollen in die
Damihlth-Leiste Da sind wir also. Und lassen Sie uns das schnell verbinden. Jetzt wird es also in
die verdammte Gesundheitsleiste gecastet. Lassen Sie uns das aus organisatorischen
Gründen unter die Lupe nehmen. Halte es schön und organisiert. Also haben wir unsere Widget-Komponente bekommen. Wir haben das Widget
drin
und dann streamen wir in
die verdammte Gesundheitsleiste Jetzt, als Dammi-Gesundheitsleiste, ziehen
wir das raus und sagen:
Hey, hol, lass uns sehen Ich möchte den Dammi
Health-Fortschrittsbalken da drüben haben Du gehst das hier raus. Und als
Nächstes wollen
wir den Prozentsatz festlegen
. Okay. Lassen Sie uns also schnell den Prozentsatz auf
dem Fortschrittsbalken festlegen. Lassen Sie uns also schnell den Prozentsatz
festlegen. Leg das hier raus und verbinde diese
beiden Links hier drüben. Bevor ich nun irgendwelche
Änderungen am Prozentsatz vornehme, werde
ich ihn auf
100 setzen, was die Prozentzahl
angeht. Lassen Sie uns
das schnell zusammenstellen und bumm, wir haben jetzt unsere Gesundheitsleiste über der Kampfpuppe
komplett vergilbt Das ist cool. Wir gehen zurück zum Angriffsdamm und
was wir dieses Mal tun werden. Das ist
der Zeitpunkt, an dem das Spiel startet, wir wollen die verdammte Gesundheit holen, sie hierher
ziehen und wir wollen sagen: Hey, hol dir die verdammte Gesundheit. Und wenn wir
die Dammi-Gesundheit
haben, wollen wir das in die Länge
ziehen und teilen, und wir wollen es durch 100 teilen Okay, bis 100. Ziehen Sie das als Prozentwert
hierher, und das wird im Wesentlichen Y
sein. Lassen Sie uns kompilieren.
Wenn Sie also auf Play klicken, ist
es da. Da ist es. Es erleidet jedoch
noch keinen Schaden. Es hat keine
dieser Fähigkeiten. Wir haben nur einen einfachen
Dummy mit einem Gesundheitsriegel. Als Nächstes wollen
wir sicherstellen, dass der
Gesundheitsbalken bei jedem Schaden ordnungsgemäß aktualisiert Also lass uns das kopieren. Okay? Zieh das raus. Und das ist A, füge dem Dummy einen Gesundheitsbalken hinzu Nein, ändere deine Gesundheit bei
jedem Schaden. Okay? Also werden wir das
rausbringen
und wir werden
praktisch genau das
Gleiche tun, und wir werden
praktisch genau das
Gleiche tun was wir getan haben, wenn es um unseren
Grundcharakter geht, okay? Wir aktualisieren die
Gesundheitsleiste bei jedem Schaden. Wir kommen also auf sehr ähnliche
Weise hierher. Wir werden sagen: Hey, jeder
Schaden. Das ist das Ereignis. Das Ereignis ist also auf jeden Schaden zurückzuführen. Okay. Also bekommen wir den Schaden. Und das Erste, was
wir tun werden, ist verdammt nochmal
gesund zu
werden. Gib es hier drüben ab. Willst du verdammt noch mal gesund werden. Und als
Nächstes wollen wir die Dammi-Gesundheit wieder reinziehen Und dieses Mal legen wir die
Dammi-Gesundheit fest. Also bekommen wir die Scheingesundheit
und dann subtrahieren, subtrahieren und wir werden den Schaden, den
es erlitten hat,
abziehen, das wird die neue Gesundheit
sein Also werden wir es dort aufstellen. Und wenn wir damit fertig
sind, werden wir
hierher kommen und auch
diesen Prozentsatz ändern wollen. Also werden wir im Grunde den
ganzen Code hierher holen , ihn
kopieren und hier einfügen. Und gleich danach werden
wir zu der Gesundheitsleiste
hier drüben wechseln und
genau den gleichen Prozess durchlaufen. Okay? Also holen wir uns
den Dammi-Gesundheitsbalken und dann werden wir
seinen Fortschrittsbalken auf
den neuen Dammi-Gesundheitsbalken aktualisieren seinen Fortschrittsbalken auf
den neuen Dammi-Gesundheitsbalken Das ist alles, was
getan werden muss. Jetzt, wo dieser
Code eingerichtet werden kann, gehen
wir zurück und fügen dem Spieler etwas
Schaden zu, damit er den Feind
tatsächlich treffen
und ihm Schaden zufügen kann .
43. 41 Einen Spielerangriff machen Teil 1: Ordnung. Nun, da wir einen Dummy für normale Angriffe haben, okay, wir gehen zurück
zum Heldencharakter und
zurück zum Fleischzeug, und wir wollen dem Fleischzeug tatsächlich
etwas hinzufügen Und ich werde
Ihnen eine sehr effektive Methode vorstellen, Angriffe in
Ihr Spiel
einzubauen Angriffe in , die ziemlich
zuverlässig und vernünftig ist
und die einfach
jedes
Mal funktioniert, und die einfach
jedes
Mal funktioniert wenn Sie sie aufrufen,
und sie ist Aber lassen Sie uns auch schnell zu unseren Charakteren
zurückkehren, und ich werde
den Ordner Attack Dammi öffnen und sicherstellen, dass sowohl der Held als auch der
Attack Dammi
geöffnet sind , weil wir zwischen ihnen hin und her
wechseln müssen , stellen Sie sicher, dass der Code
korrekt funktioniert weil diese beiden interagieren werden. Lassen Sie uns jetzt hierher kommen. Nur ein kurzer Rückblick. Beim Laden
fügen wir dem Damik, den wir eingerichtet haben, den Gesundheitsbalken zu diesem Prozentsatz Und dann erhalten
wir bei jedem
Schaden, bei jedem Schaden, die verdammte Gesundheit und dann ändern wir die
Zahl in der Gesundheitsleiste Dieser Code sollte
für
Sie verständlich sein und Sie sollten
alles griffbereit haben Nun, mit all dem
brauchen wir etwas, das irgendeinen Schaden
anrichtet, und lassen Sie uns darauf eingehen. Eine sehr gute Möglichkeit, das
hinzuzufügen, ich habe die Leertaste gedrückt. Ich gehe zurück zu
den Charakteren. Ich gehe zurück zum Player und
erstelle einen neuen Ordner. Und in diesem neuen Ordner werde
ich den
neuen Ordner lieber Damage it Box nennen , oder? Oder manchmal
nenne ich es „beschädigte Objekte“, oder? Also Gegenstände beschädigen. Also, das ist eine
Art, es zu nennen, aber lassen Sie mich umbenennen , dass ich diesen Namen schon einmal benutzt habe. Ich möchte nicht, dass
das verwirrend ist. Also lass es mich
auf Schaden an der Box ändern. Und der Grund dafür ist, dass
ich in der Lage sein möchte, verschiedene Angriffe auszuführen, verschiedene
beschädigte Trefferboxen zu haben, und du willst das getrennt vom
Hauptcharakter haben. Gehen wir rein und lassen Sie mich das klar
erklären. Im Inneren werden wir also eine Blueprint-Klasse
erstellen,
und was wir wollen, ist, dass wir
einen einfachen Blueprint-Akteur haben wollen Nennen wir das einfach SWOD
Dash. Nennen wir es eigentlich
SWOD-Angriff, Unterstrich eins. Okay? Also das ist ein
SWOD-Angriff unter Punkt eins Doppelklicken Sie darauf,
um es aufzurufen. Lassen Sie mich es hier zusammenfassen. Und innerhalb des ersten SWOD-Angriffs wollen
wir einfach hinzufügen, dass wir eine Kollision hinzufügen
wollen. Okay? Was für eine Kollision? Damit wollen wir eine einfache
Box-Kollision hinzufügen. Und dann, nur der Übersichtlichkeit halber, fügen
wir auch hinzu weil Sie sehen können, dass wir diese Box-Kollision
hinzugefügt haben. Fügen wir auch einen einfachen Würfel hinzu. Oh, tut mir leid. Lass uns einen Würfel hinzufügen. Ich weiß nicht, warum wir da sind. Also haben wir einen Würfel hinzugefügt, oder? Jetzt könnten wir uns tatsächlich dafür entscheiden, den Box-Slider
einfach zu ignorieren
und den Würfel alleine zu verwenden. Aber lassen Sie uns schnell die
Verknüpfung mit der Skalierung aufheben. Also möchte ich es auf
der Y-Achse so skalieren ,
dass es auf der Y-Achse bleibt Oh, nicht zehn, zehn ist zu groß. Ich will es auf einem haben.
Aber dann möchte ich , dass es
auf der vertikalen Achse etwas kürzer ist. Also habe ich es in
der Vertikalen auf etwa 0,2 herunterskaliert. Also das hier ist
unser einfacher SOD-Angriff. Jetzt, hier, es
macht nichts. Es ist nur ein einfacher SWOD-Angriff. Es ist einfach so,
weißt du, einfach da zu sitzen. Also was wir wollen
, ist die Szene hervorbringen. Denken Sie daran, es tut
nichts, aber wir nennen
den SOD-Angriff einfach Also kehren wir zu dem
Helden zurück, der unter dem Nahkampfangriff stand. Und wir wollen, dass nicht nur
ein Text mit dem Namen Angriff gedruckt wird ,
sondern dass er auch
in dem Text mit dem Schwertangriff enthalten ist Wir kehren zum Helden zurück und direkt nach dem Text
, in dem Angriff
steht , fügen wir
die Knoten hinzu, in denen er erscheinen
wird Jetzt ist das Spawnen
ziemlich einfach. Wir ziehen das raus und
geben span Okay ein. Und wir werden Schauspieler aus
dem Unterricht auswählen. Was wir jetzt mitbringen werden, ist, dass
wir nach einem
Sword Attack suchen wollen Perfekt. Jetzt müssen wir
entscheiden, wo es spawnen
soll und seine
Kollisionsbehandlung außer Kraft setzen, okay? Aber das ist in Ordnung. Das
müssen wir vorerst nicht anfassen. Wir wählen die
Spawn-Transformation aus
und teilen sie dann einfach
auf, und teilen sie dann einfach weil wir möchten, dass sie an einem bestimmten Ort
erscheint Im Moment spawnt sie
bei Null, Null, Null. Wenn wir also zurückkommen, verkleinern
wir die Ansicht, wenn wir kompilieren Im Grunde ist es eher ein
Spawnen, tut mir leid, lass mich die Box spielen Also jederzeit, merke
es, es erzeugt einfach das. Das ist alles, was es tut.
Es spawnt ein Objekt genau da drüben Also bringt es es da drüben rein. Wir wollen, dass es im mittleren Bereich des
Charakters erscheint , okay? Also gehen wir zurück zum
Helden und wir
wollen ändern, wo er erscheinen
wird Wir wollen also, dass es
an
der Stelle erscheint, an der sich das Flipbook
aus Papier Also lass mich
das Flipbook aus Papier reinziehen. Und dann will
ich einfach das Wort Position und den Standort der Welt herausfinden, weil
ich wissen will, wo es ist Das ist gut. Und gleich
nachdem wir den Standort ermittelt haben, verbinden wir ihn mit dem Span. Lassen Sie mich diese Verbindung tatsächlich
unterbrechen. Nein, nein, nein. Bitte
kombinieren Sie den Struktur-Pin neu Ja, okay? Ja, ja,
warum trenne ich mich? Ich möchte rekombinieren. Ich will mich nicht trennen. Okay, also lass
es uns schnell da drüben anhängen, oder? Also haben wir das
Papier-Flipbook, wir haben es reingezogen, die Wildposition ermittelt und das wird dann mit der
Spawn-Transformation verbunden Und das bekommen Sie jetzt. Also lass uns
Play drücken. Bum, sieh dir an, wo es aufgetaucht ist. Okay? Gehen wir jetzt zurück. Das einzige Problem, das wir haben,
ist, wenn wir es
einspielen, es kollidiert quasi mit dem Schauspieler,
was wir nicht Also werden wir
diesen Schwertangriff hier wählen. Dieser Würfel hier drüben und wir werden nach Kollisionen
Ausschau halten. Und im Moment ist die Kollision so eingestellt, dass sie jegliche Dynamik blockiert, und das wollen wir nicht. Nennen wir es
Overlap All Dynamic. Überlappung bedeutet, dass
sie sich überschneiden wird. Es wird in der Lage sein,
mit Dingen zu kollidieren und sie zu überdenken, sie aber nicht auszublenden Also lasst uns versuchen, es reinzudrehen. Und merke, dass es sich einfach überschneidet. Und jedes Mal, wenn ich auf Attacke klicke, erscheint
es in einem von denen, okay? Und wenn ich einfach die
Angriffstaste gedrückt halte, erscheinen
sie unendlich Aber das ist dämlich, aber
damit werden wir uns später befassen. Okay? Zumindest wissen
wir jetzt mit Sicherheit, dass wir auf den Angriffsknopf klicken
können, und das erscheint in Das ist großartig. Jetzt, wo
wir das eingewählt haben, müssen
wir nur noch eine
etwas cleverere Positionierung hinzufügen für den Anfang, Lassen Sie uns für den Anfang,
diesen Schwertangriff,
zum Helden zurückkehren Also im Moment sucht es sich den wilden Standort und spawnt ihn
dann genau
an der wilden Aber vielleicht wollen wir
das nicht, oder? Also, was wir tun werden, ist, diese Verbindung schnell zu unterbrechen, okay? Also lass uns das aufteilen. Und dann lasst uns auch
durchhalten, das hinter uns lassen. Jetzt wissen wir mit Sicherheit
, dass dies das X ist, diese Ebene, die horizontale
Ebene ist das X. Also soweit, das ist in Ordnung. Es kann an
derselben Stelle auf der Z spawnen. Es kann an derselben
Stelle auf der Y-Achse spawnen Aber auf dem X nehmen wir
es einfach und fügen dann 120 Einheiten hinzu, wodurch es auf der X-Achse
etwas nach vorne bewegt wird Komm her, verbinde das. Exzellent. Und
damit lasst uns kompilieren. Also dieses Mal,
jedes Mal, wir reinkommen und
den Angriffsknopf drücken, erscheint
er etwas
vor dem Charakter Ja, ich weiß, dass es auf der linken Seite nicht
funktioniert, aber mach dir keine Sorgen, wir werden uns später darum
kümmern Wir wollen zuerst
sicherstellen, dass es Schaden anrichtet. Das ist also ungefähr der
Ort, an dem die Hitbox erscheinen
wird. Das ist cool Jetzt, wo
der Charakter einfach in etwas
Einfachem in die Welt spawnt, wir nun einige Anpassungen vor Also, wir haben den Angriff,
verdammt, hier drüben. Wir wollen, dass es der Angriffspuppe Schaden
zufügt. Wenn ich also reinkomme
und es reindrehe, sollte
es der Angriffspuppe Schaden
zufügen Also, damit das funktioniert, müssen wir es nur verbinden Wir wollen es mit dem
Angriffspuppen verknüpfen. Also innerhalb seines
Ereignisdiagramms, richtig? Wir holen uns diesen Würfel wir werden herkommen. Ich möchte ein Ereignis bei der Überlappung des
Beginns der Komponente, dem Würfel, hinzufügen. Okay. Also das ist
der, den wir wollen. Okay. Die Komponenten beginnen sich zu überlappen. Was den anderen Schauspieler angeht, wird
der andere Schauspieler die Angriffspuppe sein Also wollen wir casten, um
Dammi anzugreifen. Okay? Also das hier drüben, okay, um Dammi anzugreifen Und dann richte es so ein, dass der andere Schauspieler
als Angriffspuppe eingesetzt wird als Angriffspuppe eingesetzt Okay. Und dann, wenn ich mich erinnere, jedes Mal, wenn es sich
mit dem Attack-Damming überschneidet, wollen wir Schaden anrichten Okay. Das war's also, der Knoten,
auf den Schaden angewendet wurde. Und die Höhe des Schadens, den Sie anrichten
möchten, ist zehn, okay. Und gleich nachdem wir den Schaden von zehn angerichtet haben
, wollen
wir den Schauspieler vernichten und den Schauspieler selbst
zerstören. Es zerstört sich also selbst,
was cool ist. Okay? Also, was wir wollen,
ist, dass es jedes Mal auftaucht, wenn es sich überschneidet, als der Würfel
mit dem Angriffsstau, es wird zehn Schaden anrichten
und sich dann selbst zerstören jetzt mit nur dieser einfachen Lassen Sie uns jetzt mit nur dieser einfachen
Interaktionskodierung reinkommen Okay. Also es greift an, aber es ist nicht richtig. Es scheint keinen Schaden anzurichten, aber lassen Sie uns das noch einmal
überprüfen, oder? Kommen wir also
zum Angriffspuppen. Und schnell zu jedem
Schaden, lass mich schnell. Das ist nur eine
Fehlersuche, okay. Lassen Sie mich das bei jedem Schaden in eine Sequenz ziehen
. Okay, Reihenfolge
bedeutet also im Grunde , dass es eine
Sache macht und dann eine andere. Und dann
werde ich beim nächsten eine Zeichenkette aufbringen
und dann werde ich sie als
Schaden nehmen, um zu sehen, ob
Schaden angerichtet wird. Also bin ich hier. Okay, es wird derzeit also nicht
beschädigt, was bedeutet, dass der Guss
nicht richtig funktioniert. Gehen wir zurück und schauen uns die Besetzung
noch einmal an. Ah, das ist der Grund. Weil der beschädigte Schauspieler
nicht ausgewählt wurde, lassen Sie mich ihn
als beschädigten Schauspieler auswählen. Ich habe gespeichert, geh zurück, komm wieder rein und teste es erneut. Gut. Beachten Sie, dass
es Schaden nimmt. Hervorragend. Jetzt
wirst du es funktionieren lassen , sodass der Dummy Schaden erleidet,
wenn ich anklicke, um anzugreifen Dummy Schaden Es ist immer noch rudimentär. Es gibt viel mehr Code, damit
das effektiv
funktioniert, aber das ist Wir haben jetzt die Möglichkeit,
in einer einfachen Heatbox zu spawnen ,
was Schaden anrichtet Lass uns weitermachen
und es aufräumen. Als Nächstes werden
wir den Code nur ein wenig bereinigen , damit er effektiver
funktioniert.
44. 42 So erstellst du einen Spielerangriff Teil 2 Codeänderungen: Ordnung. Nun, da
wir, du weißt schon, die einfachste Version
eines Schwertangriffs für Spieler haben, gehen wir zurück und
schauen uns
die DCAA dieses Angriffs noch einmal an Aus gestalterischer Sicht schwingt
der Spieler also sein
Schwert, schwingt
der Spieler also sein
Schwert Cool. Code, füge Schaden
an feindlichen Objekten zu, das haben
wir jetzt eingestellt Und dann bei der
Soder-Tack-Animation
und dem Soda-Tack-Sound und dem Soda-Tack-Sound Und auf die letzten
beiden Teile werden wir in den Aber lassen Sie uns vorerst einen Großteil des Codes
bereinigen, in dem
es darum geht, feindlichen Objekten
Schaden zuzufügen. Derzeit funktioniert
es jedes Mal, wenn Sie
eine Angriffstaste drücken
. Beachten Sie, dass es viele
Schadensfälle verursacht. Lassen Sie uns diese
also eins nach dem anderen sortieren. Wir werden sicherstellen, dass es nur einen
Schadensfall verursacht. Okay. Und dann müssen wir sicherstellen, dass
es auf
der linken Seite erscheint, wenn er nach links schaut Wenn er nach rechts schaut, erscheint
es auf der rechten Seite Das macht
es schon. Aber ja, das ist das Erste, was
wir lösen werden. Wenn wir also jetzt zum Helden
zurückkehren, wird
er sich den aktuellen Standort der Wildnis ansehen. Und dann fügt er der Position 120
Einheiten hinzu, und deshalb
spawnt er dort. Okay. Aber wir werden eine schnelle Änderung
vornehmen. Jetzt, wo wir wissen, dass es funktioniert, können
wir den gesamten Code entfernen, und wir spawnen immer noch
im Sword Tack One Aber jetzt
wird seine Position nicht allein durch
das Flipbook aus Papier
bestimmt werden allein durch
das Flipbook aus Papier
bestimmt Jetzt gehen wir in
den Viewport, richtig? Wir haben ein paar Dinge. Da ist das Papier-Klappbuch. Da haben wir das Audio der Schritte
des Spielers eingerichtet, wo das
Startsignal herkommt, und das Sprunglande-Audio,
wo es herkommt Da alles, was der Spieler tut,
dem Papier-Flipbook beigefügt ist, ist
dies der ideale Ort um all diese
anderen Objekte hinzuzufügen Also fügen wir schnell
eine einfache Kollision hinzu .
Eigentlich nein. Wir fügen ein
einfaches hinzu, lassen Sie mich sehen, fügen ein einfaches hinzu, wir brauchen
etwas Sichtbares. Fügen wir eine einfache
Box-Kollision hinzu. Okay. Und diese Kiste, wir werden sie
verkleinern. Ich möchte, dass es
wirklich niedrig ist, okay? Und dann seine Position, wir ziehen
es direkt nach vorne. Ich bin mir sicher, dass Sie irgendwie
sehen können, was hier passiert. Und wir werden
dieses Feld umbenennen und
wollen es in
SWOT-Angriff, Standort,
Unterstrich eins umbenennen SWOT-Angriff, Standort,
Unterstrich Okay. Also, es ist
SWOD-Angriffsort eins, und wir haben es genau hier eingerichtet Nun, nur um Ihnen zu zeigen,
warum das wichtig ist, lassen Sie mich einen einfachen Würfel hinzufügen, okay? Füge einen einfachen Würfel hinzu, und ich habe
den einfachen Würfel
zum Schwertangriff hinzugefügt , richtig? Wo befindet sich dieser Würfel? Ich möchte, dass er
sichtbar ist. Wo ist es? Ich sehe es nicht.
Ist es so klein? Wenn es winzig ist,
müssen wir es größer machen. Oh, schnapp. Okay, vielleicht war
es zu groß. Lass uns das kleiner machen. Ja. Lass mich dir jetzt
schnell zeigen, oh, warum gibt es eine Pause? Es weigert sich zu kompilieren. Okay. Warum kompiliert es nicht Weil diese Spawn-Transformation nichts zu verbinden
hat. Lass mich diesen Link unterbrechen. Jetzt kompiliert es richtig, okay. Beachten Sie also, dass sich die Hutbox immer an derselben Stelle befindet, egal was passiert
, wenn der
Spieler
die Richtung ändert passiert
, wenn der
Spieler
die Du kannst das bemerken, oder? Ich hoffe, du siehst es
deutlich. Das ist gut. Jetzt, wo wir
diesen Standort haben, richtig? Diese Würfelposition, lassen Sie
mich den Würfel löschen. Lassen Sie uns schnell auswählen
, ob der Würfel gelöscht werden soll. Wir wissen jetzt, dass
wir den
Standort jederzeit abrufen können. Also lass mich zurück
zum Angriff gehen, nein, tut mir leid, zurück zum
Hero-Event-Graph. Wir werden dieses O erneut verknüpfen den
SOD-Angriff starten Aber dieses Mal nehmen
wir den ersten SWOD-Angriffsort
und ziehen ihn hierher Okay, zieh es hierher. Dann suchen wir
uns einen wilden Standort aus. Okay, finde seinen wilden Standort heraus, und das ist es, was wir als
den Ort verwenden
werden , an dem sich die
Span-Transformation verbindet. Also lass mich das stapeln. Ich
staple das gerne vertikal wann immer ich
die Gelegenheit dazu habe, sodass sich alle Knoten in einem Bereich befinden
können und ich von unten nach oben
schauen kann , um zu
sehen, was vor sich geht. Also lass uns das kompilieren. Und jetzt plötzlich spawnt
es vorne, spawnt rechts,
spawnt links, sponsert
rechts, spaziert Nett. Jetzt müssen wir das nächste Problem
lösen. Zunächst einmal dauern diese SOD-Angriffe einfach viel zu
lange an,
okay, und es sind viel zu viele Also müssen wir es reparieren
, sodass , wenn wir
in diesem SwodTack spawnen, es nach einer gewissen
Zeit verschwindet Kehren wir also zum SWOD-Angriff selbst zurück. Und wir werden es ändern. Für den Anfang heißt es also:
Hey, bei Beginn eines Ereignisses überschneidet Wenn es sich mit
dem Angriffspuppen überschneidet, richtet es Schaden an und zerstört sich dann selbst Aber was wir auch
wollen, ist ein Schauspieler,
eher, tut mir leid, den
brauche ich nicht Was wir wollen, ist, dass das Event beginnt. Das wollen wir. Wir
wollen, dass das Event beginnt. Wir wollen, dass
es eine kleine Verzögerung gibt. Okay. Und diese Verzögerung
wird auf 0,01 gesetzt und dann wird der Schauspieler zerstört. Das ist eine Möglichkeit, es zu tun. Wenn wir jetzt reinkommen, stellen wir
fest, dass jedes Mal, wenn ich bei einem SOD-Angriff
spawne, er für
etwa 0,1 Sekunden verfügbar ist, tut
mir leid, er ist
für etwa 0,1 Sekunden sichtbar Und dann verschwindet es. Das ist eine Möglichkeit, es zu tun. Eine andere Möglichkeit besteht darin, es anstatt Event
Begin Play zu verwenden, um es zu zerstören, wir können Event Tech verwenden und
T heißt Every Frame. Also lass mich das
Event unterbrechen und mit dem Spielen beginnen. Ich brauche also keine Verzögerung,
wenn ich das
T benutze . Also die Event-Technik
kommt hierher, verbinde das da drüben. Und im Grunde zerstört jedes
Mal, wenn ein Bild fertig
ist, der Schauspieler. Also wird es den Limonade Tack nur für einen Frame
geben. Jetzt merke es. Im Grunde ist
es jetzt unsichtbar. Wenn ich also hierher komme und klicke,
merke ich , dass es Schaden anrichtet,
weil es erstellt wird, aber es verschwindet gleich
nach einem Frame, okay? Und so ist
dein Charakter jetzt in der Lage
, mit
einer unsichtbaren Trefferbox
in einem einzigen Frame Schaden einer unsichtbaren Trefferbox
in einem einzigen Frame Das ist cool. Das ist
zwar gut, aber wir haben immer noch die Herausforderung jedes Mal, wenn ich
die Angriffstaste drücke
, mehrere Angriffe ausgeführt werden. Es spawnt in zu vielen. Also müssen wir das anpassen. Also lasst uns noch einmal
zum Helden zurückkehren. Die erweiterte
Eingabeaktion Maleta, wir werden eine Änderung vornehmen Dieses Mal verwenden wir
den sogenannten
Do-Once-Trigger ,
okay? Einmal machen. Also dieses Mal, wenn wir von
Trigger wegziehen, sagen wir: Hey, mach es einmal, so dass es es
nur einmal macht und es dann nicht noch einmal machen kann Und dann abgeschlossen oder besser gesagt
oder storniert, wird es zurückgesetzt. Also lass uns zurückgehen. Also werde ich klicken. Oh, tut mir leid, ich bin immer noch herangezoomt. Und nein, nein, es funktioniert immer noch
nicht richtig. Es ist nicht storniert.
Zerbrich den Link. Wenn es fertig sein soll, es zurückgesetzt, kompiliert und kommt zurück Wenn ich jetzt einmal drücke,
wird ein Angriff ausgeführt. Wenn ich also einmal drücke,
wird ein Angriff ausgeführt. Okay? Beachten Sie, wenn ich einmal klicke, verursacht
es einen Angriff
oder zehn Schaden. Wenn ich jedoch klicke und gedrückt halte, kommt
nichts heraus, bis
ich es erneut drücke, okay? Ich muss es erneut
drücken, damit es funktioniert. Und damit haben wir ein effektives und klares Funktionieren. Machen wir also zuerst einen weiteren Test. Okay. Also richtet es auf der linken Seite
Schaden an? Ja, es beschädigt auf der linken Seite. Es verursacht Schaden auf der rechten Seite. Perfekt. Perfekt.
Perfekt. Jetzt haben wir den Codeteil unseres
Soda-Tacks komplett eingegeben. Es gibt noch mehr Änderungen, aber wenn du jetzt
alles
darüber verstanden hast und verstanden hast, wie das
Spawnen funktioniert, können
wir jetzt mit der Arbeit an
der Animation weitermachen, sodass wir
eine Söder-Tack-Animation haben,
die im können
wir jetzt mit der Arbeit an
der Animation weitermachen , sodass wir
eine Söder-Tack-Animation haben Spiel gut aussieht
46. 44-Spieler-Schwertangriff-Animation Teil 2: Ordnung, also als Held, ziehen wir uns als Held zurück, wir wollen
Schwertangriff eins finden, das hier ist, und wir
wollen das nochmal überprüfen, richtig? Ist es gleich Okay, ist es gleich eins,
weil es ein Boolescher Wert ist Und wenn ja, kann es übergehen. Lassen Sie uns das kompilieren.
Das Spiel gefällt uns. Wenn ich also
die Angriffstaste drücke, ist sie
jetzt an
die Angriffsanimation gebunden. Das ist gut. Gehen wir also
zurück zum Bauplan Willst du das hohe
Level des Helden erreichen, um
vom ersten SOD-Angriff
zurück zum Idol zu Lass uns das alles einfach kopieren. Okay, weil ich denke Sie können
jederzeit kopieren und Zeit und Energie
sparen, um wieder untätig zu werden. Im Grunde wird es das tun, es
sei denn, es ist auf Aus gestellt, und dann sollte es wieder in den Leerlauf
gehen. Also untätig, warte mal. Angriff. Okay, jetzt warte mal
. Nein, es ist noch nicht da. Okay, aber der Angriff
läuft immer noch, also müssen wir herausfinden, wie sicherstellen können, dass die
Angriffsanimation zurückkehrt. Also gehen wir zurück zum Helden. Soda Tack ist auf eins eingestellt. Lass mich das holen,
leg das nach vorne. Also gleich nachdem es
im SOD erscheint, wird
Soda Tack auf Null gesetzt Das ist eine vereinfachte
Art, es zu tun. Also jetzt, ja, es funktioniert nicht. Es funktioniert zu schnell. Es geht zu schnell von An
nach Aus, also könnte ich
eine schnelle Verzögerung einführen. Und wir werden die Verzögerung vornehmen. die Verzögerung zu korrigieren, würden wir
eigentlich wollen,
dass wir zurückgehen die Grafik für den Spieler
ansehen. Und was wir wollen,
ist Limonade. Der Soda Tack hat 15 Frames.
Sie können es hier sehen Es sind 15 Frames, aber es sind
fünf Frames Animation. Lass mich das 15-5 fallen lassen.
Also macht es das Lass uns sehen. Bum. Hmm.
Interessant. Es sind also 15 Frames, davon sind es fünf
Frames Animation. Wir werden es vorerst bei fünf belassen, nur der Einfachheit halber. Geh zurück. Also fünf. Also das wird
eine Verzögerung von 1 Sekunde sein. Also lasst uns zurückkommen, angreifen und dann ist es erledigt. Also greift es an und
dann ist es erledigt. Der Grund dafür
ist, dass er als Held nach einer Verzögerung von 1 Sekunde den
Schwert-Angriff auf eins setzt, statt dass der
SWOD-Angriff auf Null gesetzt wird Wir werden
zurückkommen und das ändern. Zumindest wissen wir, dass die
Grundlogik Sinn macht. Also sofort aus dem Leerlauf und
dann kann es anfangen, sich zu bewegen. Sie können also angreifen und sich bewegen, angreifen und sich bewegen, angreifen
und sich trotzdem weiterbewegen. Die
Angriffsanimation wird also abgespielt. Dann ist es erledigt. Aber
wenn du dich bewegst, kannst
du nicht zur Angriffsanimation
übergehen. Lassen Sie uns das schnell beheben. Jetzt gehen wir zurück,
gehen zurück zum Animations-Blueprint auf eine höhere Ebene Wir werden das
Gleiche für den Lauf tun. Oh, lass mich zurückgehen und
den Code kopieren, weil ich will, dass er, weißt
du, Leben
und Zeit rettet. Komm zurück. Wenn Sie also vom Lauf zum Limonaden-Tack , gehen Sie
im Grunde vom
Laufen zum Limonaden-Tack Wenn ein Held wie ein Held ist, läuft der Söder-Tack, okay? Und dann kannst du vom
Soda-Tack zum Joggen übergehen. Solange der Soda
Tack auf Null gesetzt ist. Mit anderen Worten, du
bewegst dich vorwärts, was gut ist. Also lass uns das jetzt nochmal versuchen. Also renne ich. Ich nehme Limonade, ich kann wieder laufen. Ich renne, ich nehme Limonade, ich kann wieder laufen. Okay. Das ist gut. Bodenangreifend, cool,
Grasnarbenheftung, cool, bodenangriffend. Das funktioniert perfekt. Also lass uns sehen. Oh,
okay, es gibt Schäden. Es gibt Schäden. Es gibt Schäden. Es gibt Schäden. Es gibt Schäden. Das ist Schaden. Das ist beschädigt. Also ja, es richtet jetzt
Schaden an. Okay? Es funktioniert. Es funktioniert
größtenteils wie beabsichtigt. Natürlich gibt es
immer noch ein paar Probleme. Zum Beispiel verursacht es
Schaden am ersten Frame, was nicht
das ist, was
wir wollen, wir wollten am dritten Frame Schaden
anrichten. Dann ist es
gefährlich, oder? Weil er untergeht, dann schlägt er, geht runter, dann trifft er, dann ist es erledigt, geht runter, trifft, er ist fertig. Wir werden etwas später auf diese
Anpassungen eingehen, aber jetzt funktioniert die Baseline
richtig. Das ist gut.
47. 45 Luftschwertangriff-Animation: Okay, wenn es jetzt um den Boden
geht, kannst du
jederzeit angreifen, wann immer du
dich bewegst. Wenn du still stehst, kannst
du diesen
einfachen Basisangriff ausführen. Aber was ist, wenn
du gesprungen bist? Nun, jetzt
müssen wir ein bisschen hinzufügen weil du immer noch dieselbe Trefferbox bekommst
, wenn du springst, oder? Du bekommst zum Beispiel immer
noch dieselbe Trefferbox
, wenn du springst. Aber wie stellen wir sicher, dass
Sie tatsächlich Schaden anrichten können? Ich meine, der Schaden, den wir bereits
angerichtet haben, hat das geklärt. Aber wie haben wir eine schöne
Luftanimation für den Angriff? Nun, lass uns reingehen und
die Sprungangriffs-Animation hinzufügen. Also gehen wir zurück
zum Abenteurer und du willst schnell
unter der Grafik nach Angriff suchen Okay. Und jetzt sehen Sie, dass es eine einfache Luftangriffs-Animation gibt, drei
Animationsframes besteht. Es geht 0-03 Findet sie. Okay,
sie sind hier drüben. Ich hoffe, Sie können es deutlich sehen, aber Sie sollten es
anhand der
Anweisung in der Luft deutlich sehen können . Und dann wirst du
daraus Sprites machen. Mit anderen Worten, erstelle Sprite. Und dann mit den gleichen drei
, die du als Sprite erstellt hast,
erstelle ein Flipbook
und nenne es einfach Air Sword Attack, unterstreiche eins.
Okay. Also das ist der Name, den ich empfehle, Air Sword Attack zu
verwenden, unterstreichen Sie eins. Also
ist es ein Doppelklick Also das ist der Luftschwertangriff. Das ist es wirklich. Okay. Beachten Sie jetzt, dass es sich um
vier Animationsframes handelt. Lassen Sie mich also die
Animation auf vier ändern. Okay. Das wird später
angepasst, aber das ist nur der
Übersichtlichkeit halber, okay? Jetzt kehren wir zur
Animationsquelle zurück und fügen dann eine
neue Animationssequenz hinzu. Und natürlich werden wir es
Air SOD Attack unter Score
One nennen , und da ist es Okay. Damit geben
wir natürlich die
Animationsdaten von Air SOD Attack eins, und da ist der Air SOD-Angriff Das ist der, den
wir verwenden werden. Lassen Sie uns nun
zurück zum
Animationsentwurf gehen zurück zum
Animationsentwurf gehen Ich gehe zurück nach oben. Und wir wählen einfach
die Sprunganimation aus. Das wird der Richtige
sein, oder? Lass uns alles in der Nähe
der Sprunganimation belassen. Tut mir leid. Wie bewege ich das? Ja, lassen Sie uns das ein bisschen
verschieben. Oh, das könnte alles durcheinander bringen. Lass uns das nicht tun.
Wie auch immer, nimm das. Lassen Sie uns also eine
Animationsstatistik erstellen, und wir werden
diese Statistik Air Sword,
Attack Under Square One nennen . Okay, aus Gründen der Organisation
und Klarheit. Und dann
geben wir drinnen Play Air SWOD Attack ein. Bum, da ist es.
Und verbinde es. Jetzt, wo es verbunden ist,
wollen wir schnell kompilieren. Gehen wir zurück, und wir werden es
vom Jump-Start aus verknüpfen, und wir werden es auch
wieder mit dem Jump-Start verknüpfen . Okay, lassen Sie uns das wieder verknüpfen. Und was wir wollen, lass uns herkommen, es wird
genau dasselbe sein. Okay. Wenn wir also von der Starthilfe
zu AirsData übergehen, jedes Mal, wenn der SOD-Angriff
läuft, diesen können
wir im Grunde
jedes Mal, wenn der SOD-Angriff
läuft, diesen Übergang einleiten Und wenn der
SOD-Angriff dann nicht läuft, können
wir diesen Übergang beenden Okay? Also lasst uns schnell
kompilieren, denn das ist nur vom Springen,
nur vom Springen. Gehen Sie also zurück zur
Entwicklerebene. Also, wenn ich am Boden bin, spielt
es den SOD-Angriff von Sprung zu Sprung Es spielt den Air Solar
Tuck. Schau dir das an Ist das nicht irgendwie cool?
Spielt den Air Solar Tuck Das ist der Air-Slash. Luftschlitz Jetzt haben wir es
so eingerichtet, dass in der Luft der Airslash ist Und auf dem Boden
ist da der Bodenschlitz. Es sieht ziemlich gut aus. Jetzt, wo wir das
Grundlötgerät haben, ist es bereit, im Spiel
zu rocken Wir werden jetzt
reingehen und
einige viel
komplexere Anpassungen
an der Luftlötnadel und
der
Bodenlötnadel vornehmen einige viel
komplexere Anpassungen und befassen, wie man ein Kombinationssystem baut,
sodass wir
mehrere verschiedene
Soda-Nadeln haben können und auch, wie man die Angriffe miteinander
verbindet,
okay, wie man sie verbindet und sie Also werden wir in
den nächsten Videos darauf eingehen, wie
man eine Kombination aus drei Treffern macht. Was sich in sich zusammenfügt, was ein zuverlässiges System ist, das ein Dial-In-Combo-System
verwendet Okay, lassen Sie uns in
den nächsten
Lektionen darauf eingehen. Lass uns gehen
48. 46 So verwendest du benutzerdefinierte Animationsbenachrichtigungen für Sword Hitbox: Okay. Also werden wir
eine sehr wichtige Änderung vornehmen. Jetzt, in
unserer Implementierung, werden
Sie feststellen, dass der Schaden in dem
Moment, in
dem ich klicke, angerichtet ist. Der Grund dafür ist
, dass die Trefferbox für Schäden
sofort erstellt wird, sobald wir klicken. Ich bin mir sicher, dass du sehen kannst, wie ich
die Angriffstaste drücke und der
Schaden ist sofort angerichtet. Lasst uns
das so ändern, dass Schaden nur an einem bestimmten Punkt
während der Animation
angerichtet wird. Das ist Teil einiger
Schritte, die wir ergreifen werden um den Kampf
viel sauberer und besser zu gestalten. Damit der
Nahkampfangriff funktioniert,
passiert im Moment ein verbesserter Einsatz,
ein
männlicher Angriff, das ist unser eigentlicher Angriff Und dann führt es
einen SOD-Angriff durch. Okay. Und dann erscheint es in
der SOD Attack One Hit Box Und dann, nach einer leichten Verzögerung, wird angezeigt, dass der SOD-Angriff
nach etwa 1 Sekunde ausgeschaltet wird.
In Ordnung. Also, was wir wollen, ist zu ändern, was bei
diesem SOD-Angriff Anstatt dass es hier
spawnt, werden
wir das schnell kaputt machen Lassen Sie uns diesen Link
und diesen Link unterbrechen. Lassen Sie mich
das Kommentarfeld schnell erweitern. Also all
das, was tatsächlich bei diesem Angriff auftaucht , wird nach unten
verschoben und stattdessen belassen
wir nur den
Code, der entscheidet,
okay, ob der SOD-Angriff stattfindet oder nicht, ob er 1
Sekunde andauert Das lassen wir dabei.
Abgesehen davon, hier, ist es das, was tatsächlich in
der Damage at Box Nun, bevor wir kompilieren, wollen wir, dass der Schaden ungefähr
zu
dem
Zeitpunkt angerichtet wird , zu dem der Schrägstrich Siehst du, das ist der Punkt
, an dem der Schaden den Feind tatsächlich treffen
muss Um das zu tun, kommen
wir jetzt kommen
wir Und was wir
tun müssen, ist eine spezielle
Funktion oder ein Ereignis, das
bei diesem Schwertangriff tatsächlich Also
klicken wir einfach mit der linken Maustaste und dann
wollen wir ein Ereignis hinzufügen Und dann wollen wir
ein benutzerdefiniertes Ereignis hinzufügen, okay? Siehst du das? Fügen Sie ein benutzerdefiniertes Ereignis hinzu, und dann
nennen wir dieses Ereignis Span. Nennen wir es Spun,
SWOT, Hit Box. So
werden wir es nennen. Wir nennen das Event
Spun SWOD Hit Box und wir ziehen das auf das Spawnen in dieser It-Box
, okay? Nun, eine Sache, die wir sehen können, ist, dass wir jetzt, da wir diese Heatbox entfernt
haben, wenn wir das Level betreten, angreifen werden, aber es wird
kein Schaden angerichtet Was wir nun tun wollen, ist Spawnen der Heatbox zu aktivieren, wenn
die Grasnarbe
direkt nach dem Fegt ist Um das zu tun, gehen wir einfach auf deinen Charakter ein, der
der Spieler ist Und wir wollen in
die Animation gehen und die Zi-Sauce aus Papier und
den Zedi
Animation-Blueprint aus Papier öffnen Zi-Sauce aus Papier und
den Zedi
Animation-Blueprint aus Papier Wenn es nun um
die Animations-Sauce geht, gehen Sie zur SOD
Attack-Animation über Sobald Sie bei der
SOD Attack-Animation sind, werden
wir gleich
hier zu diesem Benachrichtigungs-Track übergehen Okay. Und jetzt lass mich die Animation
abspielen. Okay. Also hier will
ich in diesem SOD spawnen Also werde ich mit der rechten
Maustaste klicken und Notify hinzufügen. Aber welche Art von Benachrichtigung, ich möchte eine neue Art von
Benachrichtigung verwenden und wir werden
sie SOT Hit Box nennen . Stopp. Lass
mich sofort ein bisschen rauszoomen. Sofort schwingt die
Hauptfigur. Dann erscheint die
SWOD-At-Box. Nun, da wir hier diese Benachrichtigung
namens Sword Hit Box erstellt haben , gehen
wir zurück zum
Animations-Blueprint Nun werden Sie feststellen, dass es
in der Animation Blueprint hier jetzt eine neue Funktion namens SwodHitBX
gibt Doppelklicken Sie auf die Sword-Hitbox.
Okay. Mal sehen, es
heißt eigentlich Sword Hit Box. Nach einem Doppelklick darauf befinden
wir uns hier in
dieser Benachrichtigung. Und was wir tun wollen, ist, dass
wir das als Held
ziehen, diese Variable hineinziehen. Und dann wollen wir dieses Ereignis ausrufen. Also wollen wir
das Ereignis ausrufen, mal sehen. Das Event heißt Spawn
SOD Hit Box. Das ist es Diese Funktion hier
heißt Spawn SOD Hit Box, und das ist es Und Valla kommt einfach rein und sorgt
dafür, dass unser
Hauptcharakter-Blueprint eine spezielle Funktion Gehen wir zur Animationsquelle, erstellen eine neue Benachrichtigung, gehen zu unserem
Animations-Blueprint, finden diese Benachrichtigung und
rufen den Helden an
und bitten ihn, die
Funktion der Schwerttrefferbox auszulösen.
Lassen Sie uns noch einmal überprüfen, ob sie richtig Warum? Ja, beachten Sie,
es beschädigt die Rutsche. Es funktioniert also richtig und es spawnt
die Schwert-Heatbox korrekt und zur
richtigen Zeit, das ist gut Jetzt haben wir das Spawnen unserer
Damage Heat Box getrennt und wir haben sie platziert und mit der
Animation verbunden Als Nächstes kehren
wir zur Sauce zurück. Speichern
wir das schnell. Das ist sicher. Lassen Sie uns schnell
den Air Soda Tack
und den Air Soda Tack auswählen und den Air Soda Tack Lassen Sie uns zu dieser Zeit auch
dasselbe tun. Wir fügen die Benachrichtigung hinzu und
wo ist diese Benachrichtigung? Es heißt SOD Hit Box. Wir werden die Benachrichtigung hier hinzufügen. Jetzt ist es also da,
beim Luftangriff und
beim Bodenangriff. Beide sind dazu in der Lage,
sodass sie durch Sprünge Schaden anrichten. Ich kann eine normale Art machen und
sie wird den Angriff ausführen, und sie wird gut zuschlagen
und sie richtet Schaden an Jetzt haben wir also einen Aerattack
, der Schaden anrichtet, und wir haben den
Angriff hier drüben Okay? Aero-Attacke, und wir
haben den Angriff Aero-Angriff funktioniert. Grounded Attack funktioniert
und er funktioniert zuverlässig. Okay. Das ist eine wirklich coole
Sache und sie ist gut. Das haben wir eingewählt. Als Nächstes werden
wir über
einen Eingabepuffer sprechen und darauf eingehen, wie man Combos einrichtet Also wollen wir es so machen, dass der Autospieler
eine coole Kombination aus drei Treffern hat Vom ersten Schrägstrich, einem neuen sekundären Schrägstrich
und einem dritten Schrägstrich, um euch zu zeigen,
wie man ein
nettes Kombi-System Lassen Sie uns im nächsten Schritt darauf eingehen
49. 47 Hinzufügen von weiteren Angriffsanimationen für das Combo-System: Bevor wir mit
der Kombo-Sequenz beginnen, gehen wir als Erstes gehen wir rein und
gehen zur Animation über. Jetzt gehen wir lieber
zurück zum Spieler. Gehen wir zurück zur Kunst. Und was wir tun wollen, ist
, ein paar
weitere Kombinationsanimationen einzurichten , okay? Denn jetzt haben wir
mit dem ersten Sod-Angriff angefangen. Jetzt wollen wir noch ein paar
SD-Angriffsanimationen Ihr werdet feststellen, dass dies die zweite
Abenteurer-Angriffsanimation Also werde ich genau das
Gleiche mit Attack Two machen. Es hat fünf Frames. Ich werde die
Sprite-Aktionen verwenden, Sprites erstellen. Okay. Also jetzt hat der
Sword Attack Two , der Abenteurer
Attack Two, jetzt Sprites Ich muss diese
Sprites allerdings finden. Hier sind wir Abenteurer
Attacke Zwei geht von Null, Eins, Zwei, Drei, Vier, Fünf Und dann werde ich daraus
ein Flipbook erstellen und sie dann Sword Attack
nennen Gespeicherter Angriff unter Punktzahl zwei. Okay. Jetzt wirst du feststellen, dass
der Schwertangriff eins, dieser Hieb, Sporad-Angriff zwei, der niedrigere
Hieb ist Ist die Vertikale,
da ist die Abwärtsrichtung. Aus Gründen der Einheitlichkeit kommen
wir zurück und
vereinheitlichen das Und dann suche ich nach Abenteurern
Attack Three. Also lasst uns nach
diesen Animationen suchen. Okay, es gibt also Angriff drei. Ich werde
Sprite-Aktionen ausführen, Sprites erstellen. Ich möchte
all die als Sprites haben. Und jetzt als drei wähle
ich 0-5 und erstelle
ein Flipbook und wir nennen es SWOD-Angriff Lassen Sie mich also heranzoomen. Sie werden also sehen, dass
wir SOD-Angriff eins, SOD-Angriff zwei und
SOD-Angriff Oh, richtig. Jetzt werden wir
die Animationen verlangsamen. Das ist SOD-Angriff eins. Es sind nur noch ein, zwei, drei, vier, fünf Frames Was wir also
tun und im Hinterkopf behalten werden, wir machen diesen Kurs nur zu
Lernzwecken. Ich werde die Animationen vorerst
von 15 auf fünf
Bilder reduzieren . Und dann Sword Attack drei. Ich werde es auch um 15-5 Bilder
pro Sekunde reduzieren. Verlangsamen Sie es nur aus Gründen der visuellen
Klarheit. Natürlich kannst du diese Zeiten anpassen, wenn
du
deine letzte Spielentwicklung machst diese Zeiten anpassen, wenn
du Ich möchte nur, dass das für dich klar
und leicht sichtbar ist. Als Nächstes gehen wir auf
die Animationsquelle ein. Also haben wir hier schon Sword Attack
One. Lassen Sie mich sicherstellen, dass die
Namen sichtbar sind Wie Sie sehen können, ist Sword
Attack One bereit. Wir werden noch
einen hinzufügen, und natürlich wird
es SOD
Tack unter Quadrat zwei sein,
und wir werden noch eins hinzufügen, und es wird SOD Attack
unter Quadrat drei sein Wir haben hier also unsere drei
SOD-Angriffe. Lassen Sie mich auf zwei doppelklicken und ich werde nach SOD-Angriff zwei
suchen Sie sollten es dort sehen können
, und hier ist es. Lass uns plattieren. Okay. Also das ist der
zweite SOD-Angriff und dann SOD-Angriff drei Animationsdaten angeht, werde
ich nach
SOD Attack Three suchen Okay, das sind unsere drei
Sword-Attack-Animationen. Das ist cool. Nun, gut genug, dass diese Animationen auch
einige neue
SOD-Luftangriffe beinhalten einige neue
SOD-Luftangriffe beinhalten Also gehe ich zurück
zur Ich gehe wieder zurück zur Hauptbühne, Control-Leertaste Ich will den
nächsten Air-SWOD-Angriff finden. Es gibt also einen zweiten
SOD-Luftangriff. Du solltest es finden können. Es hat vier
Animationsframes, okay? Lassen Sie mich also Luft eingeben, damit es einfacher ist, die Luftangriffe
zu finden. Also das ist der erste. Okay, Luftangriff eins. Okay. Und dann ist da noch
Luftangriff zwei. Das ist der eine. Sie können also Air Attack
Two als nächsten Angriff
verwenden , also eher als
nächsten Sprite-Satz Lassen Sie mich etwas herauszoomen
, um das zu vereinfachen. Also Air Attack zwei, wir werden
daraus einen Haufen oder Sprites erstellen Air Attack, zwei
Sprites sind also bereit. Ich klicke darauf und
erstelle ein Flipbook und nenne es
einfach Air Attack
Under Score Two. Okay? Also lieber Air Attack, lass es mich umbenennen. Lassen Sie mich es in Air
SOD Attack Underscore Two umbenennen. Okay? Lass mich reinkommen. Im Moment ist es auf 15 Frames
eingestellt. Das sind zu viele. Es ist 12. Es sind drei Animationsframes. Also belassen wir es
bei drei
Animationsframes . Einfach genug. Und dann werden wir
die nächsten Air SO-Daten finden
, nämlich die dritten. Du kannst reingehen und
danach suchen. Lass uns sehen. Eins, zwei, drei, bumm. Dieser hat nur zwei
Animationsframes. Es sieht so aus, also
müssen wir reinkommen und ein
paar verschiedene hinzufügen. Schauen wir uns Air Soda Tack Three an. Okay, je nachdem, wie
sie organisiert wurden, sieht
es ein bisschen anders Aber im Grunde kannst
du einfach okay, von bereit
weitermachen. Lass uns sehen. Das ist ein bisschen komplex,
je nachdem , wie deine Sprites organisiert
sind Aber lassen Sie mich tatsächlich all diese
auswählen. Und dann schauen wir uns Sprite-Aktionen an, wir
werden ein Sprite erstellen Wenn diese ausgewählt sind, wähle
ich sie alle aus und
erstelle dann ein Flipbook Okay, wie heißt das
Flipbook? Manchmal
taucht das Flipbook irgendwie anders auf. Lass mich Z kontrollieren. Oh
Mann, ich habe die
Frames pro Sekunde geändert Haltet durch. Lass mich das auf
vier reduzieren, lass das. Dann lass uns sehen, ich habe
mehrere Flipbooks erstellt , was nicht das
ist, was wir wollen Lassen Sie mich diese drei Flipbooks für
Luftangriffe löschen. Ja, lassen Sie uns
diese schnell löschen. Lass mich wieder rüber kommen. Und was ich will, lass mich Luft eintippen. Ich möchte nach
den ARSOD-Angriffen suchen, sie alle
zuordnen und
dann ein Flipbook erstellen Es sollte ein einziges Flipbook erstellen. Es sollte nicht
mehrere Flipbooks erstellen. Okay. Aus irgendeinem Grund erstellt
es mehrere Flipbooks, was ich nicht wirklich will. Das ist ein Sprite,
das ist ein Sprite. Okay, wir müssen das auf die altmodische
Art machen. Also, wir haben diesen
Abenteurer-Luftangriff genau hier, oder? Nennen wir das, benennen wir es unter Punkt drei in
Luftangriff um. Es sollte also ein ARSOD-Angriff sein. Lassen Sie mich die Bezeichnung
Air SOD Attack 3 ändern. Jetzt habe ich es ausgewählt. Und was ich tun möchte,
ist, dass ich es
zuerst von der
Wiedergabepause aus pausieren lasse . Okay, jetzt, wo
ich die Wiedergabe beendet
habe , gehe ich zum Wiedergabebereich und füge dann tatsächlich einfach
ein Schlüsselbild hinzu. Lassen Sie mich das so einrichten, dass
es aus vier Animationsframes besteht. Bei den meisten Luftangriffen handelt es sich um
vier Animationsframes. Und dann wähle ich
das zweite Schlüsselbild aus.
Komm her. Und dann Linksklick,
okay? Das ist der eine. Klicken Sie mit der linken Maustaste auf das nächste, und dann möchte ich ein neues Sprite
auswählen Ich hoffe, das ist
deutlich sichtbar. Und dann lass mich nach
Air Attack Three End Ausschau halten, okay? Lassen Sie mich sehen, wie das aussieht. Okay. Beide sehen
sich also sehr ähnlich. Also, was ich tun werde, nein, was ich tatsächlich
tun werde, ist, mich das absagen zu lassen. Ich werde es einrichten, statt einen fragwürdigen
Luftangriff drei zu starten, lass mich das löschen. Wir richten es so ein, dass
der Air-Soda-Angriff eins
und der AirsDatak zwei ineinander übergehen AirsDatak eins ist also
eingestellt auf, mal sehen,
eins, zwei, drei, vier, okay Soda Tack Two sieht so aus. Lass mich das anpassen. Also werde ich mir Air Soda Tak One besorgen und
ich werde es duplizieren, und es hat
sich bereits in AirSDA Tak Three umbenannt Das ist cool. Dann
hole ich mir AirSDA Tak Two und Und dann hole ich mir
AirSDA Tak eins und dann
werde ich es duplizieren und feststellen, dass es sich AirData Tak Two heißt Aber ich werde
es bekommen, ich werde es eher pausieren, ich werde es pausieren, und was ich tun werde, ist Reihenfolge
der
Frames zu ändern Ich nehme Bild drei
und ziehe es dann an den Anfang. Lassen Sie mich zurückkommen und sicherstellen
, dass alles richtig läuft. Ich möchte den
letzten Frame bis zum Ende ziehen. Lass uns das abspielen und sicherstellen, dass ich
es richtig organisiere. Stopp. Also Bild vier statt Bild zwei wird
das erste Bild sein. Also müssen wir es verschieben. Es ist
überraschend schwierig, es zu bewegen. Ich muss mir die
Sprites tatsächlich aussuchen. Mal sehen,
Attack Two will
das zwei sein Also möchte ich, dass es von hier aus beginnt. Und dann ist der
zweite richtig. Perfekt. Und dann der dritte, Fake News Sprite, wir
wollen ihn haben, wenn er den Arm hochlegt Dann tippe Luft ein. Ich suche. Ich schaue mir jeden Geist an. Diese sind auf deinem Bildschirm wirklich
winzig, aber du solltest sie etwas sichtbarer
sehen Also möchte ich,
dass es von dieser Seite beginnt und dort endet. Okay, das ist gut. Also das ist
Luftangriff Nummer zwei. Sieht irgendwie nach Müll aus. Halte durch. Das letzte bisschen. Die letzte Animation,
ich glaube, ich werde sie entfernen. Lass mich sie löschen. Lassen Sie uns jetzt sehen, Animationen mit
einer, zwei, drei Frames. Okay, es ist also eine
Drei-Frame-Animation. Okay, ich schneide da rein. Okay? Das ergibt Sinn. Jetzt sieht der erste AirSOD-Angriff
so aus. Es schneidet Starts hoch, geht runter, dann zwei Starts lieber spielen Es sieht so aus, als würde es
in die entgegengesetzte Richtung schneiden. Wenn Sie
Ihre eigenen Sprites erstellen, können
Sie das natürlich anpassen, aber das wird für
unser anfängliches
Kombinationssystem vernünftig genug sein unser anfängliches
Kombinationssystem Jetzt haben wir also
mehrere SOD-Angriffe. Fügen wir diese
SOD-Luftangriffe hinzu. Neue Animationssequenz,
Air SOD, Attack, Underscore Two, und
noch eins Air SOD,
Attack, Attack Also zwei. Lass uns verkaufen. Nein, nein, nein, nein, nein. Zwei.
Mann, meine Maus ist riesig. Okay, also zwei wird Air-SWOD-Angriff zwei
sein, und drei wird
Air-SWOD-Angriff drei sein Da haben wir's. Und dann müssen wir
natürlich die Benachrichtigungen
hinzufügen. So wie wir
die Benachrichtigungen für
die SWOD-Angriffe hinzugefügt die Benachrichtigungen für
die haben,
müssen wir sie hier hinzufügen Also Air SWD-Angriff zwei
Oh, das ist nicht drin. Gab es Solder Tack zwei. Okay, ja, das
funktioniert, speichern wir das. Also auf Bild zwei, füge Notify
a Sauce Notify hinzu, SOEd-Heatbox Okay, lass uns sehen. Soda-Tack
eins. Lötstapel drei Füge Notify hinzu, Soße Notify, Sod-Heat-Box, wir
ziehen hier rein Gut. Jetzt hat Lötzange
eins die Benachrichtigung, Lötzange zwei. Lass mich sehen, wo es
auftaucht? Hier ist es. Also hier werde
ich go hinzufügen. Okay. Fügen Sie Notify SOD Drücken Sie das Kästchen und dann
SODA Stack drei. Mal sehen, an welchem Punkt müssen
wir Soda-Tack drei
machen, macht es Ihnen etwas aus zu spielen, bitte,
bitte . Kannst du spielen? Warum spielt es einfach nicht? Oh, okay. Lass mich
die Play-Taste drücken. Okay. Jetzt schleppe ich mich hier hin. In diesem Moment möchten Sie diese Benachrichtigung
hinzufügen,
also klicken Sie auf das Kästchen und speichern Sie,
nachdem das gespeichert wurde. Jetzt sind sie alle bereit, in einem richtigen
Kombinationssystem
verwendet zu werden . Nachdem wir nun
alle Animationen und
Benachrichtigungen eingerichtet haben , können wir
weitermachen
50. 48 Erste Schritte mit der Eingabepufferung: Ordnung. Bevor
wir weitermachen, möchte
ich Ihnen
ein sehr einfaches Konzept vorstellen. Wir werden
einen Eingabepuffer erstellen , der Eingaben speichert und
nach einer gewissen Zeit wieder zurückgesetzt Dies ist ein sehr allgemeines
Verständnis. Kommen wir nun zum Code. Ich möchte, dass das für dich absolut
Sinn ergibt. Lass uns gehen. Für den allerersten Teil
des Eingabepuffers
müssen wir also zur Melata zurückkehren, okay? Siehst du,
er funktioniert momentan so,
dass er auf den verbesserten Input des Nahkampfangriffs lauscht, richtig Dann macht es
das einmal und setzt den SOD-Angriff
auf eins, und dann gibt es eine Verzögerung So
macht es das gerade. Aber das werden wir ändern. Anstatt
dass ein Drücken dieser Taste zu einem
einmaligen Vorgang und dann zum Zurücksetzen führt, werden
wir
das jetzt herausziehen Okay. Okay, im Moment ist
es so weit, dass es einen Angriff auf eins macht, aber wir werden
das beenden Ich werde diese Verbindung unterbrechen. Und wir wollen jetzt
, wo wir das hier haben, wir wollen
hier etwas hinzufügen, das speichert, wie oft der Spieler den Knopf gedrückt
hat. Okay? Der Einfachheit halber verwenden
wir nun
eine einfache Ganzzahl. Denken Sie daran, dass wir Zugriff auf
drei verschiedene
Angriffsanimationen haben , was bedeutet, dass wir eine grundlegende Überprüfung durchführen
möchten. Warum
funktioniert das also nicht klar? Halte durch. Manchmal
macht Unreal Engine seltsame Dinge. Aber hör auf damit. Jetzt sollte das Okay
angezeigt werden, jetzt kann es die
Animationen korrekt anzeigen. Wir haben also Zugriff auf drei verschiedene
Angriffsanimationen, okay? Wir haben Animation zwei,
die sich aufteilt. Wir haben zwei, die
nach unten geschnitten werden, und die dritte
ist ein mittlerer Okay? Das ist unsere Kombination
aus drei Köpfen. Um also einen Puffer zu erstellen, wollen wir
sicherstellen, dass wir speichern können , wenn der Spieler die Taste einmal,
zweimal oder dreimal
gedrückt hat . Spielen Sie dann auf dieser Grundlage entweder eine,
zwei oder drei dieser
Angriffsanimationen ab . Das ist der Hauptgast davon. Nun, da wir das aufgeschlüsselt haben, wollen wir uns
überlegen, wie man einen
großartigen Eingabepuffer erstellt. Im Wesentlichen
wollen wir einen Knoten, der
erfasst, wie viele Schwertangriffe
der Spieler ausgeführt hat. Wenn sie einmal gedrückt haben, wird eine Aktion ausgeführt. Wenn sie zweimal gedrückt haben, wird eine
andere Aktion ausgeführt. Wenn sie
dreimal gedrückt haben, wird eine andere ausgeführt, und der Einfachheit halber belassen
wir es dabei. Okay. Lassen Sie uns in diesem
Sinne weitermachen. Wir haben hier also all diesen Platz
und beginnen wir damit, eine Variable
zu erstellen. Diese Variable wird
eine Ganzzahl sein und wir nennen sie
SWOT-Angriffsnummer. Okay. Und der Einfachheit halber machen
wir
daraus eine Ganzzahl, okay? Was bedeutet, dass es Null zu Eins ist. Es sind große Zahlen, ganzheitliche Zahlen ohne 0,1
oder zwei, es ist eine Ganzzahl. Lassen Sie uns das nun als Ganzzahl ziehen. Ziehen wir es heraus. Also wollen wir, äh, mit der Festlegung der
SOD-Angriffsnummer
beginnen. Okay? Also lass uns das hier öffnen. Nehmen wir an, der Spieler
hat gerade einmal
die Meletack-Taste gedrückt .
Was wollen wir tun? Wir wollen eigentlich die Nummer des
Soda-Attacks festlegen. Ich werde etwas Platz
schaffen müssen. Ich werde sie also in die Länge
ziehen und sie zur Verschuldung drängen. Also hat der Spieler den Knopf einmal
gedrückt. Wir wollen
die SodTac-Nummer
ermitteln und ihren Wert
um eins erhöhen Sie können also die SDStack-Nummer zurückziehen
Okay. Und dann wollen wir einen hinzufügen. Du willst es erhöhen, okay? Richten Sie es einfach auf eins ein. Und dann bumm,
wir haben das eingerichtet. Und dann bekommt es die SOD-Tack-Nummer und fügt
ihr eins hinzu, okay Weil
wir grundsätzlich die Anzahl der Soda-Tacks erhöhen wollen Nehmen wir nun an, der Spieler hat diese Taste einmal
gedrückt. Ich sage jetzt: Okay, der Soda-Tack-Wert ist jetzt eins Nun, um Ihnen zu zeigen, dass das funktioniert, müssen
wir
etwas Entwicklertext schreiben Lassen Sie uns also eine Druckzeichenfolge haben. Und die Druckzeichenfolge wird
einfach eine sein. Okay? Es wird einfach
auf eins gesetzt. Was ist jedoch, wenn der Spieler diese Taste erneut
drückt? Okay? Mit anderen Worten, was passiert, wenn der Spieler diese Taste
ein zweites Mal
drückt? Was möchtest du, dass passiert?
Es ist ziemlich einfach. Wir wollen
dieser Variablen namens
Sword Attack Number sogar
noch ein weiteres Inkrement hinzufügen noch ein weiteres Inkrement dieser Variablen namens
Sword Attack Number Aber jetzt müssen wir
einen einfachen Check machen, okay? Wir werden
einen einfachen Check durchführen. Und was dieser Scheck
im Grunde ist, wird ein Schalter sein. Lassen Sie uns also Integer einschalten. Okay, schalten Sie das Ende ein. Das ist es, wonach du suchen
willst. Und wenn Sie dann herunterkommen, wird
es sich selbst
als Schalter am Ende markieren. Nun, was macht ein
Switch on End? Was es tut, ist, den Pfad
des Codeflusses basierend auf
dem von Ihnen eingegebenen Wert zu
ändern , okay? Geben wir
hier also die Nummer des
SD-Angriffs ein und es ist jetzt so eingestellt
, dass es eingeschaltet wird. Und wir werden ein paar
verschiedene Werte haben. Meine Güte, das
wird länger. Lassen Sie uns
das Kommentarfeld erweitern und das noch ein
bisschen weiter vorantreiben Lass uns jetzt wieder hierher kommen. Also die erste Zeichenfolge, die es drucken
soll, ist eins. Nehmen wir drei davon. Die erste Zeichenfolge
wird also eine sein. Die zweite Zeichenfolge
wird zwei sein. Und die dritte Zeichenfolge
lautet Oh,
warte, warte, warte,
klicke das richtig an. Die dritte Zeichenfolge
wird drei sein. Also grundsätzlich wollen wir es. Fangen wir jetzt schnell
an, Pins hinzuzufügen. Wenn es also
Null ist, macht es im Grunde nichts. Wenn es eins ist, druckt es eins. Wenn es zwei sind, werden zwei gedruckt, und wenn es drei sind,
werden drei gedruckt. Nun, das ist ein sehr
einfacher Schalter. Gehen wir nun schnell zur
Entwicklerebene über. Wenn ich also in
der oberen linken Ecke auf eins drücke , sollte
ich eines sehen. Okay. Ich drücke erneut,
es werden zwei angezeigt. Ich hoffe, es werden dir
zwei angezeigt. Okay. Und wenn Sie
erneut drücken, werden drei angezeigt. Aber wenn Sie danach
erneut drücken, wird nichts angezeigt.
Das ist fantastisch. Jetzt kehren wir
zum Schwert zurück , eher zum Helden. Wir wissen mit Sicherheit, dass
wir es jetzt einrichten können. Wenn der Spieler die
Taste also einmal drückt, hat er eine Eins. Wenn der Spieler die
Taste zwei drückt, geht es zu zwei, und wenn der Spieler die Taste
drei
drückt , geht es zu drei. Das ist gut.
Das heißt, wir können feststellen, ob der Spieler die Taste einmal
gedrückt hat, ob er
die Taste zweimal gedrückt hat
und ob er
die Taste dreimal gedrückt hat,
das ist ziemlich cool. Jetzt, wo wir damit fertig sind, ziehen
wir das hier rein. Wir werden noch
ein bisschen mehr hinzufügen. Dies ist die Basislinie
des Eingabepuffers. Im nächsten Video werden
wir
etwas mehr Code hinzufügen , damit
es richtig funktioniert.
51. 49 Einrichten des Basis-Combos mit Hard Input Lockout: Okay. Nun, da wir dieses
Setup haben und loslegen können, wollen wir damit beginnen, die Animationen tatsächlich
hinzuzufügen. Zu Beginn haben wir also bereits unseren Sword
Attack One einsatzbereit. Also werden
wir es
auf sehr ähnliche Weise
einrichten wie Sword Attack One, und wir werden es
so ändern , dass zuerst
Int aktiviert wird. Lass mich dir zeigen, wie
das aussieht. Wir haben also schon
all diese Zeichenketten , die dir eins,
zwei und drei zeigen, richtig? Jetzt werden wir
einige neue Variablen erstellen. Der erste
wird
Sword Attack Under Score Two heißen . Das wird für unseren
zweiten SOD-Angriff sein. Und der nächste wird ein
SOD-Angriff unter Punktzahl drei sein SOD-Angriff unter Punktzahl Diese werden einfach nützlich
sein und lassen Sie mich sie unter
die Angriffsnummer
setzen Also werde ich
die Angriffsnummer nach oben ziehen. Bum, lass uns das schön neu anordnen. Hey, Spielergesundheit, geh wieder hoch. Okay. Das ist es. Wir haben also unsere Angriffsnummer und dann haben wir Boolesche Werte, die
zeigen, ob der erste Angriff, der
zweite oder dritte
, gerade aktiv also nach einer schnellen Kompilierung hierher und
wir werden im Wesentlichen ein
sehr ähnliches Setup durchführen Also werden wir zuerst nicht
einstellen wollen. Also schalte Swedatak 22 hier ein. Kopiere das hier drüben. Hier ist es aus und wir fügen dieselbe Verzögerung von 1 Sekunde hinzu. Okay. Behalten wir
die Verzögerung von 1 Sekunde bei. Jetzt, wo wir das hier haben, fügen
wir Swedatag
drei hinzu. Jetzt, nicht verstanden Ich weiß immer, wann ich
untergehen sollte, nicht verstanden. Richten wir es auf Set ein. Wir fügen dieselbe Verzögerung hinzu, genau
dieselbe
Verzögerung von 1 Sekunde. Hier wird es ja sein, während Sie hier sind, kopieren Sie es und
fügen Sie es hier ein. Hier wird es
nein sagen, du führst Sedatak
drei nicht mehr aus Also werden wir das schnell speichern. Und dann machen wir,
lassen Sie uns diesen Link zur
Einrichtung der
SWD-Angriffsnummer unterbrechen Einrichtung der
SWD-Angriffsnummer Lassen Sie mich diesen Link unterbrechen. alles kaputt machen,
ziehen wir es raus und ändern seine Position. Pause, Pause. Gut, gut, gut. Bring das hier raus. Und gleich zu Beginn ziehen
wir die
SODA-Tack-Nummer
rein, damit ziehen
wir die
SODA-Tack-Nummer
rein sie als Erstes überprüft wird,
und denken Sie beim Standardwert
daran,
dass sie das gerade
ausgelöst hat Beim Standardwert wird sie Null sein Da es also bei Null beginnt, wird
es eine Verbindung herstellen und
die Zahl wird hinzugefügt. Okay. Nun, da wir
diese grundlegende Funktion haben, fügen wir hinzu, lassen Sie
uns damit weitermachen. Gleich nach dem ersten Drücken wird
es sagen: Hey, es wird den ersten Angriff drücken
, und es wird
SOD-Angriff eins ausführen und damit
weitermachen SOD-Angriff eins ausführen und damit
weitermachen Und dann, nach dem zweiten
Mal, lassen Sie uns zunächst diesen Text durchgehen Dieser Text, bei dem
wir im Grunde die Notizen durchgehen,
die wir gerade verwenden, um die Zahl
zu erhöhen,
ziehen mit der Maus darüber, klicken mit der rechten Maustaste, und dann
kommen wir runter und sagen:
Hey, kollabieren zu einem Jetzt verhält
sich dieses neue Makro einfach wie
ein einzelner Knoten, okay? Es ist eine sehr einfache Funktion, und sie wird uns helfen unsere Baupläne zu bereinigen Und dann werde ich
seinen Namen ändern. Lass mich rauszoomen. Es ist ein einfaches Makro. Lassen Sie mich es hier kopieren und
einfügen und erneut kopieren und einfügen. Denken Sie daran, dass alles, was
es tut, ist, der Zahl eins hinzuzufügen. Also, bei zwei wird es knacken,
ich ziehe das Ganze. Wenn also die Taste zum zweiten Mal
gedrückt
wird, die Angriffstaste, druckt sie zwei aus, und dann versucht sie
zu zeigen, dass, hey, der Spieler
versucht, den zweiten Angriff auszuführen. Und beim dritten, eher dritten Mal, steigt
die Zahl auf zwei. Und dann wird es durchgehen und
der Unreal Engine mitteilen , dass der Spieler versucht
, den dritten verkauften Angriff auszuführen Sobald es damit fertig ist
, lass es mich kopieren. Oh, Schnappschuss, ich habe geschnitten. Nein. Sobald es damit fertig ist
, lass es mich kopieren. Komm raus, und
ich brauche eigentlich keine Kopie. Ziehen wir stattdessen die
Soda-Tack-Nummer heraus und setzen die
Soda-Tack-Nummer wieder auf Null, sodass sie wieder von oben
beginnt Denken Sie also daran, wenn die Nummer des
Soda-Tacks bei Null
beginnt,
wenn sie Null ist und Sie die
Taste zum ersten Mal drücken, wird
der Wert um eins zu eins erhöht Und dann neue Saite, es wird
die erste Zeichenfolge ausdrucken und dann wird es den
ersten Schwertangriff ausführen Gehen wir nun
zum Bauplan, um ihn uns kurz anzusehen Das ist also der
Animations-Blueprint. Schnell kompilieren und Play drücken. Beachten Sie also,
dass es jetzt auf eins, 02 eingestellt ist. Jetzt ist es nicht so,
es bedeutet eigentlich nicht, dass
du das drückst. Drücken Sie drei, jetzt kann es
wieder den ersten Angriff ausführen. Nun, das werden
wir tun. Sofort
drückt der Spieler die erste Taste. Wir werden
ein Eingabefenster einrichten, in dem sie die zweite Kombination drücken können,
okay, die zweite Taste
in der Kombination. Aber bevor wir das tun, wollen wir herausfinden, wie die anderen
Tasten in der Kombination tatsächlich gedrückt werden. Gehen wir also zum Bauplan,
und wir wissen bereits, dass der erste
SWOD-Angriff da ist Wir werden einen weiteren
Animationsstatus erstellen und
diesen gespeicherten Angriff
zwei unter Punktzahl zwei nennen diesen gespeicherten Angriff
zwei unter Punktzahl zwei Okay. Oh, das Wort
Staat ist immer noch da. Lassen Sie uns das Wort Staat entfernen. Hier sind wir also, der
SOD-Angriff ist fast fertig, und dann erstellen wir
einen weiteren Animationsstatus, und wir werden
diesen SOD-Angriff innerhalb
dieses Animationsstatus
unter Punkt drei nennen innerhalb
dieses Animationsstatus
unter Punkt drei Los geht's. Und wir werden es so einrichten
, dass
Sie von Soda Tack Eins zu Soda Tak Zwei wechseln können oder Sie
zurück zu Eido wechseln können Okay. Sie können
eines dieser beiden Dinge tun, und dann ist da noch Soda Tak drei, dem Sie
von Soda Tak zwei aus übergehen können. Oder du kannst zurück zu IDO gehen. Das ist also im Wesentlichen
das Loop-Setup. Von Idol kannst du zu Soda Tack One
wechseln. Von Soda Tack eins kannst
du zu Soda
Tack zwei gehen und von zwei kannst
du zu drei kannst
du Nun, die Tasten
sind noch nicht eingerichtet. Beachten Sie
also, dass
nichts passiert, wenn wir die
Angriffstaste mehrmals drücken , das ist okay Also gehen wir zurück
zum Bauplan und gehen
von Soda Tech eins auf zwei über, alles was wir brauchen ist reinkommen als Held
rausbringen Dann wollen wir nach SOD-Angriff
zwei Ausschau halten. Also hol dir Soda Tack Two. Und was wir wollen, ist der
exakte Gleichheits-Knoten, okay? So wollen wir es also einrichten. Und wenn ja, dieser
Wert positiv ist, dann wechseln Sie bitte zu dieser Animation. Schauen wir
uns das genauer an. Also als Held, Soda Tack Two, wenn es auf Ja gesetzt ist, kann
es übergehen Okay? Also lass uns da raus gehen. Und dann, von Soda Tack
2 bis Soda Tack 3, machen
wir
den gleichen Prozess durch, werden als Held SOD-Angriff Okay, ich möchte
SOD-Angriff drei bekommen. Ich möchte es mit
dem Gleichheitswert vergleichen, und wenn der Gleichheitswert ja
ist, Okay. Das ist alles was wir brauchen. Lassen Sie uns jetzt herausfinden , was der Limonade tatsächlich sein
wird jetzt daran, dass der Übergang von
Lötanschluss eins in den Leerlauf ziemlich einfach
erfolgen kann , indem ihn auf Natron
Eins
setzen, was Null ist, Wenn Sie also von Natron Tack 2 in den
Leerlauf wechseln, wird genau das
Gleiche getan Komm her, verbinde es,
aber hier ist es leer. Und dann für SDA Tack Three, genau das Gleiche Zurück zum Leerlauf. Wir fügen einfach unseren Code ein und
deaktivieren das Kontrollkästchen Dies ist der grundlegende und einfache und unkomplizierte
Weg, dies einzurichten Dann doppelklicken wir
in SDA Tack Two und wir wollen
Play SOD Attack Two eingeben Das ist die Animation, die
wir abspielen wollen. Und dann geben
wir in Soda Tack Three Play Sword Attack Three Okay. Welches ist die Animation, die
wir abspielen wollen. Überprüfe es noch einmal, platziere Solder Tack, zwei oder drei. Gut. Nun, mit nur dieser Grundkonfiguration, wenn wir zurück
zur Entwicklerebene gehen und eins, zwei, drei. Okay. Beachten Sie, dass es
die Kombination eins, zwei, drei macht. Wir haben jetzt also unsere
grundlegende Kombination zum Laufen gebracht. Versuchen wir also, die drei
Treffer auf unserer Übungspuppe zu machen. Eins, zwei, drei. Okay. Lass es uns nochmal machen. Eins, zwei, drei. Nett. Eins, zwei, drei.
Wir haben unsere Kombination. Okay. Nun, hier ist
das Wunderbare. Jetzt, wo wir
dieses Setup haben, okay? Die Tasten funktionieren tatsächlich, Sie können sehen, dass es eine Verzögerung von 1
Sekunde gibt bei der Sie entscheiden können,
ob Sie
damit weitermachen oder ob Sie damit aufhören, sehen Sie? Lassen Sie uns nun darauf eingehen. Wie richten wir es
so ein, dass es
eine leichte Verzögerung gibt , sodass wir
wissen, dass ich reinkommen kann,
wenn ich eine treffe, richtig? Im Moment ist es
mit einer sehr starken Verzögerung eingerichtet. Entweder machst du
die komplette Kombination oder es sperrt dich
davon ab, Tasten zu drücken. Nehmen wir an, wenn ich nur einen Anime-Angriff
drücke, kann
ich die
anderen nicht drücken, egal was passiert. Lass uns im
nächsten Video reingehen und
den Code so anpassen , dass du
viel mehr
Kombinationsfreiheit hast . Gehen wir.
52. 50 Kurzer Überblick vor der weiteren Integration des Combo-Systems: Ordnung. Jetzt haben Sie also
ein vernünftiges Verständnis. Sie wissen, wie die
Basissysteme für Animationen funktionieren. Sie haben
bis zu einem gewissen Grad verstanden wie Animationsbenachrichtigungen funktionieren, und Sie haben verstanden, wie
man Systeme entwickelt, durch die, Sie wissen schon, die Gesundheit beeinträchtigt wird Das ist extrem cool. Jetzt gehen wir dazu über,
diese Systeme auf
eine viel engere,
viel integriertere Weise miteinander zu verbinden diese Systeme auf
eine viel engere,
viel integriertere Weise Schauen wir uns also an, wie man
Benachrichtigungen für unser Kombinationssystem verwendet Benachrichtigungen für unser Kombinationssystem Fangen wir also mit dem an
, was wir eingerichtet haben. Das ist der aktuelle
Heldenentwurf, oder? Jedes Mal, wenn die
Me-Attack-Taste gedrückt wird, okay? Jedes Mal. Wir kommen jetzt rein und können
uns diese Knoten ansehen. Wir gehen von Mela aus, es wird eingeschaltet,
während es den Multiplikator zählt Es macht eine einfache
Addition plus eins. Es druckt diese Zeichenfolge aus
und wählt dann aus, welcher Seda-Tack Es wird sagen: Hey, Seda
Tack One ist fertig. Dann, nach der Verzögerung, heißt es:
Okay, wir sind fertig mit
Lötzange eins Das Gleiche gilt
für zwei und drei. So funktioniert es
derzeit,
und ich verwende es, um
Ihnen nur zu zeigen, wie die Systeme funktionieren. Lassen Sie uns es jetzt viel integrierter
gestalten und der Großteil der Logik wird mithilfe der
Animationsbenachrichtigungen
ausgeführt. Als Beispiel wissen wir, dass
der SOD Span SOD Hit Box Notifier das
einzige ist, was
zu dem Span SWOD-Angriff führt , bei dem eine
Hit-Box Wir werden also dasselbe
tun,
aber wir werden
Anpassungen an der Art und Weise vornehmen, wie
die Angriffe durchgeführt werden Art und Weise vornehmen, wie
die Angriffe durchgeführt Im
Grunde werden wir das tun. Wir werden dafür sorgen , dass, wenn der Spieler die Angriffstaste
drückt, die Kombo
vollständig durchgespielt wird. Wenn der Spieler aufhört, kann
der Charakter zurückgesetzt werden. Das ist der allgemeine
Überblick darüber , was wir als Nächstes
tun werden Und das sind wir, lassen Sie mich Strg und
Leertaste drücken ,
Animation, Animation-Blueprint Okay. Und als Nächstes öffnen Sie
die Animationsquelle. Wir
werden also ausschließlich
das Notifier-System verwenden , um
die Animationen einzurichten , und wir werden mit
den Bodenanimationen beginnen, dann werden wir weitermachen und einige
große Anpassungen an den Luftangriffen vornehmen, damit
sie viel mehr Spaß Lassen Sie uns
im nächsten Video darauf eingehen. Ich hoffe, du hast bis
zum jetzigen Zeitpunkt
alles verstanden . Falls etwas fehlt, kannst du dir
gerne
die Videos ansehen. Wenn du also zurückkommst,
hast du dieses tiefe Verständnis und alles, was als nächstes passiert ,
wird für dich
Sinn ergeben. Lass uns
53. 51 Angriffslink zum ersten Schwertangriff hinzufügen: Okay.
Lassen Sie uns nun damit beginnen, unsere Angriffe mit dem Warten auf den richtigen Input zu verknüpfen. , Wenn Sie jetzt im Spiel die
Angriffstaste drücken hört sie zunächst einmal auf
zu
hören, nachdem Sie sie gedrückt haben, nachdem Sie die Kombination nicht
eingegeben Das ist also der aktuelle Code nur um dir
die Basiskombination zu zeigen Also, das werden
wir tun. Wenn der Spieler
den Schnellangriff drückt, hören
wir uns an, ob der Spieler
den zweiten Angriffsknopf gedrückt hat. Wenn der Spieler den
zweiten Angriffsknopf drückt, drücken wir beide Angriffe. Es wird beide Angriffe ausführen. der Spieler beim zweiten Angriff Wenn der Spieler beim zweiten Angriff den dritten ausführt, wird
der dritte Angriff ausgeführt. Um das zu tun, lasst uns
weitermachen und das im Spiel einrichten. Das Erste, wenn
wir an den Code zurückdenken, ist
alles, was er tut, dem Moment, auf den Soda Tack
3 eingestellt
ist, den Soda-Tack abfeuert Soda Tack 2, es
macht diese Dinge. Aber jetzt werden wir sie so
einrichten, dass sie mit der Animation verbunden sind Um das zu tun, lassen Sie mich zunächst die Größe
dieses
MeleaTak-Kommentarfeldes ein wenig
verkleinern dieses
MeleaTak-Kommentarfeldes ein Lass es mich tatsächlich holen. Und ich weiß nicht, was
das war. Kopiere es. Okay, ich will nur
eine weitere Kiste hier haben. Und ich nenne
das Angriff. Links. Okay. Also zunächst werden
wir damit beginnen, es sehr einfach
zu halten. Wir werden
den ersten SOD Attack One
nennen Okay. Also lass uns herkommen. Jetzt
fliegen wir ein Event ab. Okay, wir wollen ein maßgeschneidertes Event
haben. Okay. Wir fügen
ein benutzerdefiniertes Ereignis hinzu. Und dann nennen wir
das SOD. Lass mich richtig hineinzoomen. Es wird SOD-Angriff genannt. Unter Punkt zwei,
unterstreichen Sie Link. Okay. Das ist alles,
was es heißen wird. Es wird SOD-Angriff auf Link genannt. Das ist es, was wir wollen. Und was werden wir nach
dem SOD-Angriff auf Link tun? Nun, es ist ziemlich einfach. Wir werden
hierher kommen und wir wollen etwas
überprüfen. Also, was überprüfen wir?
Also, es ist ziemlich einfach. Wir wollen überprüfen,
ob der SOD-Angriffsknopf, der zweite Angriffsknopf, gedrückt
wurde Mit anderen Worten, wenn die
SOD-Angriffsnummer zwei ist. Um das zu tun
, kommen wir her, ziehen das
in die Länge und sagen:
Hey, hol dir die SWOD-Angriffsnummer Und wir wollen einen
grundlegenden Check machen, okay? Also machen wir eine einfache Verzweigung. Ein Zweig ermöglicht es
uns zu überprüfen und zu ändern, was passiert,
ob es wahr oder falsch ist. Lassen Sie mich das mit der
SWD-Angriffsnummer in die Länge ziehen. Ich sage
gleich zwei, okay? Mit anderen Worten, ob es genau gleich zwei
ist, oder lassen Sie uns das in die Länge ziehen Machen wir es gleich
größer, okay? Wenn also die
SWOD-Angriffszahl größer als eins oder gleich eins ist, dann wird
alles nach dieser Länge abgespielt Also, lass uns herkommen. Und wir beginnen mit einem
einfachen Druckbildschirm. Es wird also gedruckt, und es wird
einfach Text mit der
Aufschrift „
Hey, mach SWOD swTAT Das ist es. Weil
wir nur überprüfen werden, ob der Code korrekt ausgeführt
wird, okay? Jetzt, wo der SWOD-Angriff
zwei Links eingecheckt ist, um zu verhindern, dass er durch etwas anderes
unterbrochen kommen
wir hierher
und wir werden, lassen Sie uns schnell die anderen Links
abbrechen Okay, wir werden das beenden. Also, nachdem die
Angriffstaste gedrückt wurde,
wenn sie einmal gedrückt wird , wird
sie
das erste Code-Bit für
den ersten SWOD-Angriff ausführen , aber sie wird nichts anderes
tun Okay? Also, wenn wir jetzt
ins Spiel gehen, wenn ich einmal drücke, ja, ist das
alles weg Also kann ich den
Angriffsknopf nur einmal drücken. Das ist gut. Jetzt gehen wir zurück zum Animations-Blueprint und suchen nach dem ersten SWOD-Angriff Also, da ist diese Funktion hier. Vielmehr gibt es diese Benachrichtigung
namens SWOD Hit Box. Also, das werden
wir tun. Ganz am Ende
der Animation, am Ende des
letzten Frames, okay? Wir werden eine neue Benachrichtigung hinzufügen
. Lass mich auf den Benachrichtigungs-Track springen. Und es wird
eine Benachrichtigung hinzufügen und es wird ein neuer Notifier
sein Und wir werden diesen
Notifier Swodtakundscoe nennen. Zwei, unterstreichen Sie Link. Okay. Nun, das ist ein
ziemlich langer Name, aber weißt du, er wurde aus einem bestimmten Grund so gekürzt , weil
das der Link von SODA
ist, von
Tack Eins Also nennen wir es SODA
Tak Two Link, okay? Nun, da wir das fertig
haben, gehen
wir direkt zurück zum
Animations-Blueprint und dann
zum Event-Graph Wir gehen zum Event-Graph und kommen hierher. Wir haben eine Benachrichtigung für
die aufgerufene Trefferbox erhalten. Gehen wir zum Link „
Benachrichtigung bei Sword empfangen “. Okay? Das ist der Bereich
, in dem der Code ausgeführt wird. Wir kommen rein und sagen: Hey, als Held wollen wir, dass sich der
SOD-Angriff verbindet Okay. Beachten Sie, dass es da ist. Die Funktion SOD
Attack Two Link ist da, führe diese Funktion Okay. Also los geht's. Jetzt, wo wir dieses Setup haben, schauen wir es uns im Spiel an. Ich werde Play drücken. Erster Angriff, zweiter Angriff, es führt einen SOD-Angriff auf die
Verbindung durch und überprüft das Gehen wir jetzt zu
Hero, um
den SOD dazu zu bringen , seine Nummer tatsächlich zu
aktualisieren Lassen Sie uns diesen Link hier unterbrechen. Wir brauchen keinen der
anderen Codes, um hier ausgeführt zu werden. Es ist nicht nötig, aber was wir tun werden,
kommen Sie hierher. Lass mich das holen. Also bekommen wir den ganzen
Code, der sagt: Hey, SOD-Angriff zwei, nach einer Sekunde Verzögerung, los, und dann
holen
wir uns einfach diesen Code und schneiden ihn. Okay? Also nehmen wir es weg,
um es woanders zu verwenden. Okay? Kommen
wir also zum Link zum Angriff, und das werden
wir tun. Wir werden den Code hier
eintragen. Also lass mich
das langsam durchgehen. In dem Moment, in dem das benutzerdefinierte SwedaTak-Ereignis mit zwei
Links ausgelöst wird, wird
die SwedaTak-Nummer noch einmal überprüft Und wenn die SwDaTak-Nummer größer als eins
ist, richtig,
was bedeutet, dass der Spieler die SwdaTak-Taste mehr als einmal gedrückt
hat, oder? Es wird hierher kommen und
sagen, es ist der wahre Kern. Es wird also die
Zeichenfolge ausdrucken. Mach Swedatak zwei Und dann kann ich
das verlinken. Hey, lass uns nochmal heranzoomen. Es wird sagen: Hey, Soda-Tack zwei, Daumen hoch, es ist erledigt, und nach einer Verzögerung von 1 Sekunde wird der
SWOD-Angriff ausgeschaltet Das ist alles, was es tun
wird, okay? Das ist alles, was diese Funktion tun
wird. Jetzt, wo es fertig ist, wollen wir sehen, ob es hier richtig
funktionieren wird. Also, hast du das gesehen? Also lass uns das nochmal von vorne anfangen
. Wenn ich es also einmal gedrückt habe, es
die zweite Animation tatsächlich richtig abgespielt. Okay? Also funktioniert es richtig. Okay, es funktioniert richtig. Und der Grund, warum es richtig
funktioniert, ich werde die
Logik noch einmal durchgehen. Jedes Mal,
wenn der Spieler die
erste Soda-Attacke
durchmacht, am Ende des
Sedatacks die
erste Soda-Attacke
durchmacht,
am Ende des
Sedatacks kommt das Spiel zurück und checkt, und es wird diese
Aktion ausführen Länge von SodaTackt.
Es überprüft es noch einmal. Hey, wie lautet die
Soda-Tack-Nummer? Ist die Soda-Tack-Nummer
größer als eins? Ist sie eher gleich
oder größer als eins? Dann, okay, führe den vollen Angriff
aus. Lassen Sie uns nun einen
kurzen Logikcheck durchführen. Okay. Also sofort
drückst du einmal die Angriffstaste. Dieses Makro
erhöht es im Grunde um 0-1. Also wird es eins daraus machen
und das gut ausführen. Also müssen wir
diesen Code so ändern , dass er nicht
größer gleich eins ist, sondern größer gleich zwei. Das bedeutet, dass die SOD-Angriffstaste mehr als einmal gedrückt
wurde Das heißt, der Spieler
möchte zwei oder mehr Angriffe. Lass es uns einmal versuchen. Drücken Sie
einmal. Nichts passiert. Gut. Versuch es nochmal. Zweimal drücken. Ah, das ist das Problem. Lass es uns nochmal versuchen. Zweimal drücken. Der zweite Hit wird nicht abgespielt. Okay, also lass uns zurückgehen
und einen kurzen Check machen. Der Grund, warum es
den zweiten Hit nicht spielt , hier ist er. Der zweite Treffer wird nicht abgespielt , weil dieses Makro nicht verbunden
ist. Lass es uns wieder verbinden. Kompilieren Sie schnell, gehen Sie zurück und testen Sie es erneut. Drücken Sie einmal die
SWOD-Angriffstaste. Okay, der Angriff kommt raus. Drücken Sie zweimal darauf. Beide
Angriffe kommen raus. Perfekt. Jetzt funktioniert es
richtig, denn jedes Mal Sie die
SWD-Tack-Nummer drücken, wird sie zurückgesetzt, sondern
um eins erhöht Das ist gut so, der
Code läuft korrekt. uns nun zurückkommen, um
sicherzugehen, dass dies Lassen Sie uns nun zurückkommen, um
sicherzugehen, dass dies vollständig korrekt funktioniert. Wenn die SWD-Tack-Nummer auf dem SDTAktink nicht
größer oder gleich zwei ist, wollen
wir die
Seda-Steuer wieder auf Null zurücksetzen Also kommen wir mal her,
ich sage einfach Set
Okay, ich sage einfach Set Ich werde es herbringen. Ich werde den
SDStack Nummer zwei setzen. Ich werde herkommen. Lass mich zuerst den
Link auf Null aufheben. Das ist also, was
passieren wird. Es wird geprüft, ob die
SD-Angriffsnummer zwei oder mehr ist. Wenn es das überprüft und das gut ist, tut
es das und
der SD-Angriff wird auch ausgeführt. Ist dies nicht der Fall, wird die
SOD-Angriffsnummer auf Null zurückgesetzt Und der Grund, warum wir das
tun, aber okay, der Grund, warum wir
das tun, ist, dass
dieser erste Code,
der die SOD-Angriffsnummer ausführt, wieder dieser erste Code,
der die SOD-Angriffsnummer ausführt, bei
Null überprüft
wird Das sollte korrekt
funktionieren. Lass es uns im Spiel sehen. Also Daten eins,
zwei, nett, das tut es. Also habe ich eins aufgespürt. Okay, es funktioniert noch
nicht richtig. Gehen wir zurück und machen
noch einen kurzen Check. Es einmal zu tun, macht das. Das funktioniert
korrekt wie beabsichtigt. Dies sollte wie vorgesehen
ordnungsgemäß funktionieren. Das heißt, wenn es einer ist,
unterbrechen Sie diesen Link. Wenn es zwei sind,
sollte es auf über
zwei erhöht werden, das ist okay. Wenn es also eins ist,
werden es zwei. Wenn es größer als zwei ist, das in Ordnung, weil ich mehr als zweimal
gedrückt habe. Lassen Sie uns das noch einmal
überprüfen und sehen, eins, zwei, das macht es. Okay. Perfekt.
Perfekt. Jetzt werden wir
noch eine Anpassung vornehmen. Also, was wir
tun werden, ist,
einen grundlegenden Check zu machen, wenn wir herkommen. Also gleich nach dieser Verzögerung, weil es eine Verzögerung von 1 Sekunde nach dem
ersten SWOD-Angriff gibt, was wir tun wollen,
lass mich das kopieren Bring das her. Eigentlich
möchte ich das überprüfen, aber lass es uns nicht hier überprüfen. Was wir
tun wollen, ist hier nachzuschauen. Wir prüfen, ob
die Zahl größer als zwei ist? Wenn es größer als zwei ist, führe die
Zeichenfolge aus. Das ist okay. Wenn die Zahl kleiner als zwei ist, also wenn die Zahl eins ist, wird der
SOD-Angriff auf Null zurückgesetzt Also lass uns hier etwas Text haben. Lassen Sie uns einen Text ausdrucken und wir nennen es Attack Reset. Weil wir sichergehen wollen, dass wir sehen
können, wann der
Angriff zurückgesetzt wird. Lass mich die Farbe ändern.
Ich denke, Rosa ist in Ordnung. Geh zurück ins Spiel und stelle
sicher, dass der Code ein-,
zweimal korrekt
ausgeführt wird . Okay, es macht es. Aber es ist nicht in der Lage,
zurückzugehen und es noch einmal zu tun. Okay, im nächsten Video werden wir den Code noch einmal kurz
54. 52 Angriffslink zum zweiten Schwertangriff hinzufügen: Okay, jetzt mach weiter. Wenn ich derzeit zweimal
die Angriffstaste drücke, macht
der Player die Tasten,
aber es wird noch nicht zurückgesetzt. Aber wenn ich sie einmal drücke, wird
sie zurückgesetzt, sodass
ich den Angriff ausführen kann. Nun, der Punkt, an
dem das Zurücksetzen abgeschlossen ist, öffnen
wir den
Helden-Blueprint. Wenn er
herausfindet , dass die Häufigkeit, mit der
du
den Angriff ausgeführt hast ,
größer oder gleich zwei ist, wird die Kombo ausgeführt,
aber
danach erfolgt kein
Reset Das ist okay. Wir werden uns später
mit dem Zurücksetzen befassen Wenn Sie jedoch einmal drücken, wird die Nummer des
Schwertangriffs auf Null
zurückgesetzt und
der Saitenangriffs-Reset ausgegeben So
sieht es also im Spiel aus. Einmal drücken, angreifen, zurücksetzen. Einmal drücken, angreifen, zurücksetzen. Zweimal drücken. Es
führt beide Angriffe durch, aber es erfolgt kein Reset. Das ist gut. Das
funktioniert wie vorgesehen. Gehen wir nun zu
Angriff Nummer zwei über. Wir kehren zur
Animation Blueprint Sauce zurück und wählen
Angriff Nummer zwei Jetzt, mit Angriff Nummer
zwei, lasst uns schnell loslegen. Gut. Jetzt, direkt nachdem das
Schwert getroffen wurde, am Ende der Animation, fügen
wir eine neue Benachrichtigung hinzu. Okay. Also werden wir einen
dieser Notifier hinzufügen , wir
wollen eine neue Benachrichtigung, und wir
werden tatsächlich anrufen Gehen wir zuerst zurück.
Ich möchte, dass die Benennung SWOD Attack Two
Link lautet, also CO Bei SWOD-Angriff drei werden
wir also eine neue Benachrichtigung
hinzufügen, und sie wird
SWOD Attack Underscore
Three, Underscore Link heißen SWOD Attack Underscore
Three, Underscore Link Okay. Das ist sein Name, und er steht ganz am
Ende der Animation. Das ist der Zeitpunkt,
an dem wir es machen wollen
, weil dann die Animation komplett fertig
ist. Das ist cool. Und dann im Animations-Blueprint,
okay. Lass uns gehen Jetzt attackiert SWOD Two das
erste Doppel-Cricket. Was auf diesem
Link passiert, ist, dass wir den Helden bekommen und das Event
SWOD Attack gegen Link spielen Also lasst uns das Event in
unserer
Charakter-Blueprint-Klasse unter Attack-Links einrichten unserer
Charakter-Blueprint-Klasse unter Attack-Links Also das SWOD attackiert
zwei Links hier drüben. Was wir jetzt tun wollen, ist ein weiteres benutzerdefiniertes Ereignis einzurichten,
und wir werden
dieses benutzerdefinierte Ereignis SWOD-Angriff, Unterstrich
drei, Unterstrich, Tinte nennen SWOD-Angriff, Unterstrich
drei, Unterstrich, Wir möchten, dass die Benennung so
einheitlich wie möglich ist. Sehr gut für die Organisation. Und damit werde
ich im Grunde alles kopieren, okay? Ich glaube nicht, dass es
einen Grund für mich alles neu
zu schreiben Es wird etwas
umgeschrieben werden. Aber der Geschwindigkeit und Einfachheit halber kopieren
wir es einfach und
gehen es noch einmal durch Nun, was haben wir kopiert? SWOD-Angriff auf Link. Lassen Sie uns ein bisschen näher heranzoomen. Wir bekommen die SWOD-Angriffsnummer. Wenn sie größer
oder gleich zwei ist, ist das wahr. Mach Limonade Tack Two Das ist es, was
ausgedruckt ist. Damit ist Soda Tack Two aktiv Nach einer Verzögerung von 1 Sekunde wird
es aktiviert. Okay. Und wenn
es dann weniger als zwei sind, spielt
es einfach die falschen Knoten ab. Sodtac-Nummer wird auf Null
zurückgesetzt und der String Attack
Reset wird ausgegeben. Nun, auf Soda Tack Three, wir werden es einfach hier
verlinken Nun, wenn die SOD-Tacks
entweder größer
oder gleich drei sind , werden
alle drei Punkte ausgespielt Okay. Es kommt hierher. Anstatt SDStack zwei zu setzen, ändern
wir das auf
SOD-Angriff Holen wir uns also
SOD-Angriff drei und
ziehen ihn hinein und setzen ihn auf Set Zoom
in Also setzen wir es auf,
ja, SOD-Angriff drei ist aktiviert Es wird ausgeführt. Wir verknüpfen die Verzögerung, wir
kopieren sie und fügen sie hier ein, ziehen sie heraus und stellen sie so ein,
dass sie nach 1 Sekunde ausgeschaltet ist. Okay. Und dann können wir hier sehen. Die Angriffsnummer
ist also auf Null gesetzt und der Angriff wird zurückgesetzt. Okay. Lassen Sie uns das jetzt schnell
kompilieren und voila Also lass uns zum
Level gehen. Lass uns auf Play klicken. Ein Angriff wurde zurückgesetzt, eins, zwei. Okay. Ich habe den Code nicht
richtig durchgespielt. Wir müssen
das schnell überprüfen. Ein Angriff wurde zurückgesetzt,
eins, zwei, okay? Oh ja, die
Funktion ist noch nicht fertig. Wir sind gerade damit fertig
, es hier einzurichten. Oh, das bin ich. Okay, gehen wir zurück zum
Animations-Blueprint. Öffnen Sie SWOD Attack Three Ink. Okay. Jetzt, wo wir SWOT
Attack Three Ink eingerichtet haben, füge
ich das hinzu, werde zum Helden, und
dann wollen wir, dass SWOT Attack Three Link das ist,
was danach läuft. Also lass uns das nachher spielen. Jetzt sollte es richtig funktionieren. Es spielt einen Attack-Reset, eins, zwei, ich sehe
den Attack-Reset nicht. Gehen wir zurück und schauen uns
das noch einmal an. Beim ersten SWD-Angriff müssen
wir also einen SWD-Angriff verknüpfen, und er funktioniert einwandfrei das beim zweiten SOD-Angriff Lassen Sie mich das beim zweiten SOD-Angriff schnell speichern und
sicherstellen, dass alles Alles speichern, alle Änderungen speichern. Wir haben hier den
Link SOD Attack Three eingerichtet. Wir kehren zum
Animations-Blueprint zurück. Der Sword Attach Three Link scheint korrekt
zu funktionieren. Der Sword Attach Three Link funktioniert
korrekt. Kommen wir jetzt zurück und stellen Sie sicher,
dass alles andere richtig funktioniert. Okay. Wenn die Nummer gesetzt ist, liegt hier das Problem. Okay, fügen wir schnell eine PIN hinzu. Wenn die Zahl also drei ist, holen Sie sich dieses Makro und kopieren Sie es erneut Das bedeutet, dass die Taste dreimal gedrückt
wurde. Erhöhen Sie die Zahl um eins. Das ist wahrscheinlich nicht das Problem, aber lassen wir es hinzufügen. Das heißt, die Taste
wurde dreimal gedrückt. Dann komm her,
Sword Attack Three. Das heißt, es
sollten drei Angriffe ausgeführt werden. Sword Attack Two
läuft also korrekt ab. Ich hoffe du folgst. Ich hoffe, das ergibt Sinn. Wir kommen her, Sword Attack. Greift SWOD drei an. Das ist der richtige Text. Kommt her,
Schwerter Angriff drei. Verzögerung, Verzögerung. Erledigt.
Okay, lass uns wieder hierher kommen. Drücken Sie einmal. Attack Reset, zweimal drücken. Okay, es führt den
zweiten Angriff durch. Perfekt. Nun, das Problem ist, dass
der zweite Soda-Tack nicht zurückgesetzt wird, nachdem er aufgebraucht ist. Lass uns sehen Warum wird es
nach dem zweiten Söder-Tack nicht zurückgesetzt? Denn danach wird
das abgespielt. Lassen Sie uns einige grundlegende
Problemlösungen durchführen. Lassen Sie uns sehen, ob sich das
tatsächlich abspielt. Die Zeichenfolge hello hello ausgeben
sollte in Ordnung genug sein. Kompilieren. Ich drücke einmal. Der Reset funktioniert. Ich drücke zweimal. Der
Reset funktioniert. Ich drücke einmal. Okay.
Verstanden. Ich werde noch einmal
nachschauen müssen, um zu sehen, was funktioniert. Hm. Wie dem auch sei, ich glaube
, ich bin ziemlich müde. Ich mache das schon
lange. Ich komme zurück und aktualisiere
einen Teil dieses Codes.
55. 53 Fertigstellung von Combo-Links und Resets für das Grounded Combo: Okay, es wurde also etwas Kaffee
getrunken und einige Zeit ist getrunken und einige Zeit Also komm zurück und
richte das System richtig ein. Gehen wir also zurück und gehen wir
von den ersten Prinzipien aus. Stellen Sie zunächst sicher, dass Sie die Animationssauce
haben. Stellen Sie hier sicher, dass Sie den Z-Animations-Blueprint haben
. Okay? Hier können wir uns das Animationsdiagramm ansehen
. Und wir werden
eins nach dem anderen gehen, um die Angriffe zu überprüfen. Jedes Mal, wenn die
Angriffstaste gedrückt wird, Nahkampfangriff mit
verbesserter Eingabeaktion abgefeuert Okay. Sobald das erledigt ist, gehen
wir zu einem Do Once über, das nur zurückgesetzt wird, wenn die Taste losgelassen wird und wir wechseln zu
einem Integer-Schalter,
der auf der
SWODAttack-Nummer basiert Fangen wir also mit dem Schnellangriff an. Also mit dem schnellen Angriff nachdem
die Zahl um eins erhöht wurde, ist die
SOD-Angriffsnummer jetzt auf eins gesetzt Wir drucken eine Zeichenfolge mit dem
Namen Eins aus. Das ist in Ordnung. Wir stellen sicher, dass SWD-Angriff
eins auf true gesetzt ist. Es gibt eine Verzögerung von 1 Sekunde, und dann wird SWD Tack
One auf False gesetzt Nun, wenn der SOD-Tack tatsächlich ausgeführt
wird,
passiert, dass der
SOD-Angriff zwei Verbindungen angreift,
dieser Knoten abgefeuert wird, dieser Knoten abgefeuert wird, wodurch sich die Soda ändert. Ich überprüft
die Stack-Nummer, ob sie größer oder gleich zwei ist Das wird die Bedingung sein. Wenn es wahr ist, dass es
größer als Null gleich zwei ist. Mit anderen Worten, der
Spieler hat
die Soda-Attack-Taste
mehrmals gedrückt . Es druckt die Saite,
macht Lötangriff zwei. Damit wird Sold-Angriff zwei
abgefeuert. Es gibt eine Verzögerung, und dann
wird Sold Attack Two abgebrochen. Wenn es falsch ist, wird die Nummer des
verkauften Angriffs auf Null zurückgesetzt und das Attack-Reset ausgedruckt Jetzt werden wir
ein paar Änderungen vornehmen. Für den Anfang Okay. Für den Anfang werden wir
die Verzögerung entfernen. Wir brauchen diese Verzögerung nicht, und wir
werden den Knoten, der die erste Swadata-Animation
einstellt, ausschalten Zweitens, fangen wir damit an,
das hier zu verschieben. Nun, der Grund,
warum wir
das tun wollen , ist, dass wir wollen
, dass es nur
ausgelöst wird. Ich möchte, dass es aufgrund einer Animation ausgelöst wird, nicht aufgrund einer Zeitverzögerung. Der Grund, warum wir das tun ist, dass wir zurück zu den Zeitungen über die Animation
von Sod Attack One Das wirst du am Ende
des
Seder-Tacks merken, okay, tut Ende
des
Seder-Tacks merken, okay, Scrollen Sie hier. Am Ende des Swedataks wird das
abgefeuert Lass es mich ein
bisschen nach vorne ziehen, bis die maximale Zeit erreicht ist. Also ich möchte Swedatak gleich hier in der Nähe
starten, genau am Ende,
wenn es abgefeuert Okay. Lass mich jetzt wieder rauszoomen. Das ist im Grunde das, was wir wollen. mit nur dieser einfachen Änderung Lassen Sie uns mit nur dieser einfachen Änderung
am Code zurückkommen. Also die Positionierung von
Soda Attack eins, zwei aus sollte
irgendwo hier sein. Lassen Sie mich viele
davon nach vorne
ziehen, ziehen Sie das nach vorne,
um Platz zu schaffen. Okay, organisiere sie. Ich staple sie vertikal und verbinde
sie dann. Also das Erste, was
es tut, wenn es versucht Verbindung zur zweiten
Lötnadel herzustellen, ist,
dass es sicherstellt
, dass die erste variable
Lötnadel aktiviert ist Das ist im Grunde das, worauf
es eingestellt sein wird. Lassen Sie uns nun mit diesem Set einen kurzen Check durchführen. Das ist also nur die
erste Lötnadel. Sobald die Nahkampftaste einmal gedrückt
ist, macht
sie das einfache Do
Once, schaltet Int ein, sie beginnt bei Null, und
dann wird Suder Tack 121 so
eingestellt, dass sie mit der Wiedergabe der Ich werde herkommen. Also das benutzerdefinierte Ereignis hat
Seda Tack One ausgeschaltet, es gibt eine einfache Zustandsprüfung der
Filialen Es wird den zweiten Swedatack erledigen. Und dann wird es
Swedatak Two zu mehr machen. Wir fangen genau
damit an und lassen uns sehen, ob das für uns zu saubereren
Animationen führt Lass uns sehen. Einmal drücken. Halte durch. Okay, ich habe
nicht den richtigen Reset durchgeführt. Einmal? Nein,
tut es nicht. Drücken Sie einmal. Okay, Angriff zurückgesetzt. Der Attack-Reset
funktioniert gut. Einmal drücken, auf
Reset drücken, zweimal drücken. Es ist noch nicht fertig mit
SweData Two. Nun liegt der Grund, warum es mit SwedaTask
2 nicht
fertig war, im Animations-Blueprint Im Moment
kann es also nur von
SwedaTak eins zu Seda Tak zwei gehen SwedaTak eins zu Seda Tak zwei Das ist im Grunde
alles, was es tun kann. Aber das werden wir ändern. Also lass uns
schnell herkommen. Der Code von SOD Tack Eins
bis Zwei lautet also , ob Sud Atak
Two Kopieren wir einfach den Code und ziehen ihn von Idle
auf Swedtak Two, fügen ihn ein und verbinden ihn Okay, lassen Sie uns sichergehen, dass ich Organisation
wirklich liebe. tue ich wirklich, wirklich. Lass mich sie in der Mitte
ausrichten. Okay. Nun, mit nur dieser
einfachen Änderung haben
wir es so gemacht, dass
es vom
Leerlauf zum SOD-Angriff
zwei übergehen kann , was in Ordnung ist Also lass uns
herkommen, wir sind untätig. Wortangriff, ein Reset. Okay, jetzt kann es übergehen es kann von Okay aus übergehen. Ich kann es aber nur einmal machen. Wir müssen an den Resets arbeiten. Das kann es tun. Da
habe ich also beide Animationen abgespielt. Aber wir müssen noch ein
bisschen mehr aufräumen denn so schön es auch ist , dass es von
Idle zu Swedatack wechseln kann, du musst es auch so
einstellen, dass es von Running
zu Soda Tack Two
wechseln kann , was diesem Bereich noch
viel mehr hinzufügen wird Nun, einen Moment. Nun, das
löst das Problem,
aber wir wollen trotzdem, dass es von
Sedatak eins auf zwei umgestellt werden kann Was ist, wenn wir zum Bauplan
zurückkehren? Richtig? Das ist der
Charakterentwurf Was wäre, wenn wir stattdessen nur
Seda Tack eins starten
lassen würden? Lassen Sie uns zuerst Zeitverzögerung
für das Ausschalten von Sed-Angriff zwei
entfernen . Wir haben das nur hier
ausgelöst, oder? Also gleich nach dem
Einschalten von Sed-Angriff zwei, würde es Sack
eins erlauben, direkt danach zu laufen? Allerdings
müssen wir das auch so machen, dass beim Zurücksetzen eines Angriffs, direkt nach dem Reset, auch Sudtack One ausgeschaltet wird Also lass uns das versuchen.
Okay. Oh. Okay, also Soder Tack Two läuft gerade Also genau hier, eins,
ein Reset, gut. Nett. Jetzt kommt der zweite
Angriff. Das ist gut. Das ist also eine
viel bessere Implementierung. Also gehen wir von mal sehen. Also, Soder Tack Two,
wir schalten es ein. Wir werden Solder Tack eins ausschalten
und von dort aus weitermachen.
Gut. Nun, für einen letzten Test, hier drüben
herrscht Leerlauf. Lassen Sie uns den Link
hier unterbrechen, den löschen wir. Lass uns kompilieren, es einschalten. Eins, Attack-Reset, ein
Attack-Reset, eins, zwei. Nun, ich habe Sedatack zwei nicht gemacht. Versuch das nochmal. Eins,
Attack Reset, eins. Ich sehe den Text
von D SDStack zwei,
aber ich sehe nicht, dass der eigentliche
SDStack zwei herauskommt Hmm. Hm. Warum sollte es das tun? Okay, also lass uns
hier reinkommen. Lass uns eine Verzögerung hinzufügen. Ich halte eine Verzögerung von 0,2
Sekunden für angemessen. Lassen Sie uns das
auf noch weniger reduzieren. Diese Verzögerung beträgt jetzt 0,1 Sekunden und wir werden sehen,
ob der
Angriff korrekt ausgeführt wird. Einmal zurückgesetzt. Einmal zurückgesetzt, zweimal. Okay. Okay. Jetzt
funktioniert es richtig. Okay, das ist gut. Hinzufügen dieser kleinen
Verzögerung wurde verhindert, dass der Code zu
schnell ausgelöst wurde, sodass wir Lötanschluss genau
dann ausschalten
können , wenn der zweite Lötanschluss tatsächlich ausgelöst
wird diesem Hintergrund haben
wir nun den ersten Lötangriff durchgeführt Nun zur zweiten Lötzange,
die ist hier reingekommen Das ist die Länge von Soder Tack Three. Das ist es, was wir abfeuern wenn wir SWD-Angriff zwei öffnen Lass uns schnell alles speichern. Es ist immer wichtig, alles zu speichern. Also gleich nach diesem Abschwung haben
wir SOD Attack Three Link, was das nächste ist, was
wir uns ansehen müssen Also gehen wir zum SWOD-Angriff drei Links und schon ist er fertig Es
ist also so eingerichtet, dass am Ende des SWD-Angriffs zwei hierher kommen wenn die Angriffszahl
größer oder gleich drei ist Okay, ich werde das
überprüfen, wenn es weniger ist. Es setzt SWD-Angriff Nummer 20 und führt einen Attack-Reset durch. Wenn das stimmt, wird SWD-Angriff drei ausgeführt
und SWD-Angriff 32 aktiviert Okay, das ist gut. Das ist sehr gut. Jetzt
, wo das erledigt ist, kommen
wir her. Wir wollen, dass
SWOD-Angriff zwei ausgeschaltet
wird und wir wollen, dass er hier abgeschaltet
wird Also werde ich das
auch ins Schwitzen bringen. Lass mich das holen. Füge das hier ein. Ich will, dass es ausgelöst wird. Und beim Zurücksetzen wollen
wir auch, dass es zwei Mal ausgeschaltet
wird. Wir bekommen diese Verzögerung und setzen sie auf 0,1 herunter, kompilieren, gehen zurück
und testen sie jetzt. Lassen Sie uns nach dem Kompilieren diesen Test durchführen. Eins, zwei, drei. Okay, gut. Das funktioniert richtig. Lass uns das nochmal machen. Eins, Angriff zurückgesetzt, eins, zwei, Angriff zurückgesetzt, eins,
zwei, Angriff ist zurückgesetzt. Lass es uns
dreimal machen. A, nett. Jetzt brauchen wir einfach
eine Funktion, um den
dritten SOD-Angriff zu beenden Lass uns rauskommen. Wir gehen noch einmal in die
Animationsquelle, gehen zu SOD-Angriff drei, und am Ende fügen
wir
eine neue Benachrichtigung hinzu und nennen sie Sword Combo Okay. Zieh es bis zum
Ende, zieh es dorthin. Okay, es ist also das Ende der
Sword-Kombi. Jetzt, wo wir das
SWOD-Kombi-Ende dort eingerichtet haben, gehen
wir zum Helden über gehen
wir zum Helden und wir werden ein neues Event
erstellen, und es wird ein benutzerdefiniertes Event sein Jetzt nennen wir dieses
benutzerdefinierte Event Sword,
Combo und Okay, wir wollen, dass die Namen einheitlich
bleiben Das ist es. Ende der SOD Combo Das ist der, den wir verwenden werden. Jetzt, innerhalb von SOD Combo End, werden wir
nur eins
tun, wir werden einen grundlegenden Reset durchführen Also setzen wir den
Angriffszähler wieder auf Null und wir werden SWODAttack drei
holen, ihn hier eintragen Das ist alles, was wir tun werden. Also schnell auf Kompilieren klicken. Und da sind wir. Sword
Tack Three ist losgegangen. Die Nummer von Sword Tack
ist auf Null gesetzt. Und jetzt kehren wir zum Animations-Blueprint zurück. Lassen Sie mich schnell alles speichern und kompilieren. Das ist
eine gute Kompilierung. Und wir wollen nach
Receive Notify Sword Combo End suchen . Gut. Dann werden wir sagen: Hey, als Spieler, lieber als Held. Hier,
am Ende einer Schwertkombination, feuerst du los. Perfekt. Kompilieren. Und dann, nur
der Einfachheit halber, kommen
wir her
und ziehen das in die Länge. Und wir wollen eine Zeichenfolge drucken, und wir nennen die
Zeichenkette Ende und lassen mich ihre Farbe
auf eine Farbe umstellen, die uns auffallen wird, sie in Rot umwandeln, schönes Tiefrot. So kann man
deutlich sehen, ob
alles richtig funktioniert oder nicht. Hier sind wir also beim Zurücksetzen des Angriffs. Wenn ich die
Angriffstaste einmal drücke, erhalte
ich einen Attack-Reset. Wenn ich sie zweimal drücke. Mm hmm. Gut. Und dann
lasse ich den Angriff zurücksetzen. Wenn ich es dann dreimal drücke, macht
es das und die Kombination endet. Eins, zwei, drei und
schon endet die Kombination. Das ist eigentlich ziemlich gut. Jetzt haben wir also ein sehr
einfaches Kombosystem für Bodenangriffe Also habe ich
dreimal
die Angriffstaste gedrückt und es ist erledigt jetzt daran, dass der
Grund, warum ich
die Angriffe so langsam habe , hauptsächlich
im Lernen und Unterrichten liegt. Sie können die
Bildrate der Angriffe beschleunigen je nachdem, was
Sie für angemessen halten. Für die Art von Angriffen
, die Sie in Ihrem Spiel haben möchten. Also im Moment
sind diese wirklich langsam, okay? Aber du kannst es so einrichten, dass sie viel
schneller sind als das. Also lass mich dir zeigen, wie das
aussieht. Also gehen wir zurück
ins, lass uns sehen. Gehen wir nun zu
den Animationen über. Nein, nein, nein, ich gehe zur Kunst. Ja, ja, ja. Dann scrolle nach unten. Also ist Sod Attack One zum Beispiel auf
fünf Bilder pro Sekunde eingestellt Okay. Aber wir können es anders einrichten. Wir können es auf bis zu
15 Bilder pro Sekunde einstellen. Das ist also ein viel
schnellerer Angriff. Jetzt, wo wir das
bei 15 Bildern pro Sekunde haben, schauen wir uns die Animation in der
Zeitung an Beachten Sie, dass es sich um eine viel
schnellere Animation handelt. Dann lasst uns angreifen. Beachten Sie, dass es schneller herauskommt. Nett. Hinweis, wird einmal
ausgelöst und zurückgesetzt. Nett. Und dann sind da noch
diese anderen Angriffe. Diese Angriffe sind langsamer. Lassen Sie mich nun
die Angriffsanimation so anpassen , dass sie nicht so schnell ist. Lassen Sie mich sie auf
zehn Bilder pro Sekunde reduzieren. So sehen die
Animationen jetzt also aus. Okay, die beiden sind also
langsam. Lass uns sie beschleunigen. Also, nimm zwei, lass mich es von
fünf Bildern pro Sekunde auf
zehn Bilder pro Sekunde erhöhen . Lade das. Und dann Limonade drei. Ich erhöhe es auch
von fünf Bildern pro Sekunde auf zehn
Bilder pro Sekunde Okay, eins, zwei, also es werden
beide Angriffe ausgeführt. Dann sieh dir das an. Eins, zwei, drei, eins, zwei, drei, eins, zwei, drei. Okay, du kannst sie einwählen, oder du kannst es quasi
halbgenau messen, okay? Also da sind wir. Jetzt haben wir
einen einfachen Spielerangriff. Okay. Also das ist es im Grunde. So richten Sie ein einfaches Kombinationssystem
für unseren Spieler ein. Jetzt, wo wir ein
einfaches Kombosystem haben, , sollten wir
für unsere Angriffe am Boden dasselbe für
unsere Luftangriffe tun denn wir
merken, wenn er springt, okay Wenn unser Held springt, machen
sie
nur einen einzigen Schrägstrich und die Animationen Also kommen wir rein und passen diese Luftangriffs-Animationen
im nächsten Video an. Lass uns gehen.
56. 54 Überprüfen, ob der Spieler für Schwertangriffsrouten aus der Luft fährt: Ordnung. Also, jetzt, wo wir unsere Ground-Combos richtig
eingerichtet haben, richtig? Jetzt wollen wir, dass
auch unsere Luft richtig eingerichtet ist. Lassen Sie uns also ein
Air-Combo-System einrichten. Also, im Grunde
werden wir das Gleiche tun, was
wir für die Bodenlosen getan haben, aber es wird
ein paar Änderungen geben, okay? Aber darauf werden wir eingehen. Gehen wir also zurück zur
Animations-Sauce. Also das ist unser erster Kombiangriff aus der
Luft. Da ist diese Luftscheibe. Als nächstes folgt die Daunenscheibe,
während Sie in der Luft sind, und die letzte ist ein nach unten gerichteter
Schrägstrich, während Sie in der Okay, das ist also
im Grunde das , was wir
für unsere Luftkombos haben Wir werden eine sehr ähnliche Organisation
durchführen , wie
wir wollen, dass die
Luftkombos interagieren Schauen wir uns nun kurz den Animationsentwurf
an. Das ist also das Animationsdiagramm. Was wir also tun können
, ist,
von jedem SOD-Angriff
wieder in den Leerlauf überzugehen von jedem SOD-Angriff
wieder in den Leerlauf überzugehen Wir können vom ersten SOD-Angriff zurück laufenden
Animation oder
zurück zum Leerlauf gehen Und von hier aus können
wir,
wie Sie sehen, derzeit
von einem Startschuss
zurück zum ersten
SOD-Luftangriff übergehen , okay? Also lieber zurück zu Seda Tack. Aber Seda Tack ist derzeit als Sword Attack One
eingerichtet. Jetzt werden wir das
so anpassen, dass wir
unsere Air-Combo-Checks von
unseren fixen Combo-Checks trennen können unsere Air-Combo-Checks von
unseren fixen Combo-Checks Gehen wir also schnell
zur Heldenanimation über, und da fangen wir
an. Also hier sind wir. Es gibt all diese
verschiedenen Angriffslinks, und was wir einfach tun werden,
ist, dass
wir lieber, wir werden diese Kiste holen, werden sie kopieren und wir
werden sie hier drüben platzieren. Okay, weiter unten, weil du
willst, dass sie in der Nähe sind. Und was wir tun werden, ist
diesen Namen
von Attack Links in Attack Links Grounded zu
ändern von Attack Links in Attack Links Grounded zu Und diese werden so eingestellt sein, dass
sie Verbindungen über die Luft angreifen. Das wird also unsere Verbindungen zu
Bodenangriffen halten, und das wird
unsere Verbindungen zu Luftangriffen haben Kommen wir nun zurück
zum Angriff von mir. Also das ist der
Ich-Angriff, normal, okay. Lass mich das schnell holen und das hier
runterziehen. Nur um uns ein
bisschen Platz zum Arbeiten zu geben. Und jetzt werden wir
einen neuen Scheck hinzufügen. Nun, dieser Scheck wird
ein einfacher Check sein , um zu sehen, ob der Spieler springt. Und so wie wir
das machen werden, wir einfach
den ganzen Inhalt vom Schalter, bewegen ihn ein bisschen nach rechts, kommen
her und lassen uns das
zuerst kaputt machen, richtig? Wir
wollen nur
eine einfache Es-Jumping-Funktion haben . Wir müssen herausfinden, ob der Spieler springt oder
nicht, und der beste Weg, das zu
tun, ist, Bewegungskomponente des Charakters
zu verwenden. Wenn du jetzt zum linken Bereich zurückkehrst,
nach
rechts, lass uns nach unten scrollen. Beachten Sie, dass es eine Komponente zur
Charakterbewegung gibt. Wir möchten auf Informationen
aus dieser Komponente zugreifen. Um nun auf die Informationen
aus der Komponente „
Charakterbewegung“ zuzugreifen , ziehen
wir diese in die Länge und wir wollen fragen, ob sie fällt. Nun, wenn Fallen immer
wahr zurückgegeben
wird, wenn sich der Spieler
in einem springenden Zustand befindet. Jedes Mal, wenn sich der Spieler in einem springenden Zustand befindet,
wird der Wert auf „Wahr“ gesetzt. Wenn der Spieler auf dem Boden liegt, wird er auf Stürze gesetzt. Lassen Sie uns jetzt
eine kurze Filiale eröffnen. Und von diesem Zweig wollen wir das hier verbinden
, okay? Wir wollen überprüfen,
ob der Spieler auf diesen Ast
fällt oder nicht. Und wir wollen, dass
ich zuerst ganz
schnell rauszoome , weil ich
noch mehr Platz dafür haben will .
Zieh das hier raus, okay? Gebt uns den Raum.
Wir brauchen den Raum. Okay, lass uns wieder reingehen. Also, was wir wollen, ist, ob es stimmt, dass der
Spieler fällt, drucken Sie es
einfach in
großen, fetten Buchstaben aus. Ja. Okay. Und in welcher Farbe, lass uns die Farbe grün machen. Ja, der Spieler springt,
fällt eher. Okay? Ich kopiere und füge etwas ein Okay. Ich bin hier drüben. Wenn es jedoch falsch ist, sollten wir es so einrichten, dass es nein sagt. Okay. Das
wird es im Grunde sein. Und in welcher Farbe, lass es uns auf die Farbe Rot
ändern. Nun, was wir im
Grunde getan haben, ist ziemlich einfach. Wir haben die
Angriffsanimation eingerichtet, die Angriffstaste, um zu überprüfen ob der Spieler
springt, sagt ja. Wenn der Spieler
fällt, sag nein. Okay. Wenn der Spieler Hausarrest hat, wenn der Spieler
Hausarrest hat, sag nein Befindet sich der Spieler
in einem Gebietsstaat,
sage Ja . Also lass uns umziehen. Ich habe gedrückt und es heißt, nein, nein, nein, nein, nein, weil der
Spieler am Boden ist. Das wird also gut für
unsere bodengebundenen Combos sein ,
okay? Das ist einfach nein Aber wenn ich in der Luft bin,
sagt es ja. Hast du das bemerkt, oder? Bei jedem Sprungzustand
wird es „Ja“ sagen. Aber wenn es Hausarrest hat, wird
es nein sagen. Wenn ich springe, sagt
es ja. Hausarrest,
nein. Springen Perfekt. Also haben wir
das Erste, was wir gerade brauchen, im Spiel. Also lasst uns schnell alles speichern. Es ist immer gut, Unreal
Engine von Zeit zu Zeit zu speichern. Machen wir das
zu, schließen wir das, kommen wir her und schließen das Nun, da diese
beiden wie vorgesehen funktionieren, richten
wir jetzt unsere Verbindung ein. Jetzt wissen wir mit Sicherheit, dass dieser Schalter so funktioniert. Sobald die Angriffstaste
gedrückt ist, macht sie das Inkrement, dann kommt
sie hierher und
richtet den ersten SWOD-Angriff so ein, dass Okay. Was
zu dem Flussdiagramm führt bei dem die Verarbeitung
über die Angriffslinks von
SWODAttack-Link zwei und drei beginnt über die Angriffslinks von und dann schließlich All das wird
dadurch erreicht. Was wir
jetzt also wollen, ist,
es so zu organisieren , dass wir
den Switch wie gewohnt lassen. Wir können den
Switch wie gewohnt belassen, wenn nötig, können wir ihn wie gewohnt
belassen. Was wir jedoch tun
werden, ist es so
einzurichten, dass
es hier, anstatt
den ersten SOD-Angriff einzurichten,
den
Aero-SOD-Angriff einrichtet einzurichten,
den
Aero-SOD-Angriff Und von dort aus werden wir
den gleichen Prozess durchlaufen, um die SWOD-Angriffskombinationen
einzurichten So werden wir es machen.
57. 55 Einrichten von Animations-Vorlagen für Air Combo: Jetzt, wo wir im Grunde genommen
die einfache Möglichkeit haben , den
Check durchzuführen, steht uns zur Verfügung Holen wir uns jetzt das,
schneiden wir das alles ab. Holen Sie sich all diese Knoten
und schalten Sie sie
vom Schalter auf int zurück. Und dieses Mal,
anstatt diese Zeichenfolge zu drucken, fügen
wir das alles hier ein, und das ist, was wir tun werden, ist
, dass der Spieler fällt. Okay? Wenn der Spieler nicht
fällt, fange mit Sword Attack One an. Geil. Das ist es im Grunde. Das ist alles was wir tun.
Wenn der Spieler fällt, schalten Sie SWOD Attack One ein Okay, setze den booleschen Wert auf eins. Jetzt werden wir
drei weitere Boolesche Werte erstellen. Für diesen Fall
werden wir es
Luft-SWOD-Angriff
unter Platz eins nennen Luft-SWOD-Angriff
unter Wir werden einen weiteren hinzufügen, und wir werden ihn
Luft-SOD-Attacke unter Punktzahl zwei nennen , und einen weiteren als
Luft-SOD-Attacke unter Also haben wir unsere drei
Air-SOD-Angriffsvariablen eingerichtet. Was wir nun tun werden, wir kommen hierher
und ziehen den ersten
Luft-SOD-Attacke rein ,
und wir werden ihn einstellen Wir haben angemacht. Und wir ziehen und verbinden
diese beiden miteinander
und dann machen wir
eine schnelle Kompilierung. Wenn wir jetzt am
Boden sind, gehen wir zurück. Ich muss sicherstellen, dass
das richtig gemacht wird. Ich hatte
diesen ersten Link nicht angeschlossen, lassen Sie uns das schnell
wieder beheben und dann kompilieren, noch einmal
zurückgehen, geerdet Ich kann meine Kombination mit
drei Treffern ausführen Ich kann meine Kombination mit zwei Treffern ausführen
. Ich kann meine Kombination mit drei
Treffern am Boden machen. Ich kann meine zwei Treffer machen.
Eins, zwei, drei. Nett. Perfekt.
Die geerdeten Combos funktionieren also sehr gut Aber wenn ich hochspringe, merke ich, Uh huh. Es macht noch nichts. Das ist cool. Fangen wir jetzt an den Code
für den Luftangriff zu
implementieren. Jetzt kehren wir zur Z-D-Animation von Paper zurück
. Der erste Angriff ist dieser Schlag
, der Luftangriff Also gehen wir noch einmal auf den
Animations-Blueprint ein, und wir wollen von Jumpstart zu
Air Swedatak übergehen .
Also komm her Aber dieses Mal
suchen
wir nicht nach einem Swedatak, sondern nach einem Luft-SWOD-Angriff Halte durch. Ja, ich möchte Air Sword Attack One
holen und es hier einbinden. Wenn es wahr ist, kann es übergehen,
und dann machen wir einen Rückzieher. Und dann gehen wir hier
unter und dann hat er das auch für einen Air SOD-Angriff
vorbereitet. Bring das raus. Luft-SWOD-Angriff eins. Perfekt. Und ja, wenn es
leer ist, wird es aufhören. Dieses Mal werde ich am
Boden angegriffen. In der Luft erhalte ich meinen
SOD-Luftangriff. Das ist gut Es wird noch nicht zurückgesetzt, aber wir wissen, dass es
funktioniert Der nächste Schritt ist natürlich genauso, wie wir
es für die anderen gemacht haben Wir werden jetzt neue
Animationsstatus hinzufügen Wir nennen diesen Luft-SWOD-Angriff unter dem zweiten Quadrat und
fügen einen weiteren Animationsstatus Und wir nennen es einen
SOD-Angriff unter Punkt drei. Und wir werden sie
genauso organisieren. Sie können also von Air
SwordTack eins zu AirsDtak zwei wechseln. Sie können von AirsStack zwei wechseln. Zurück zur Starthilfe, von AirSwdTack drei zur Starthilfe und
von AirSwdTack zwei
zu AirSwdTack drei von Vergewissern Sie sich, dass diese ordnungsgemäß angeschlossen sind. Nachdem diese nun ordnungsgemäß
angeschlossen sind, wir noch
einige Anpassungen vornehmen , um eine schnelle Überprüfung durchzuführen. Okay? Das funktioniert gut. Alles sollte logisch Sinn
machen. Lass mich die einfach nach oben verschieben. Lassen Sie uns
ihre Positionen ein bisschen verbessern, damit es eher
so aussieht. Es gibt also eine Kiste mit Animationen. Mir gefällt, wie das Design
aussieht. Und lass mich das auch so nach oben verschieben
, sieht eher aus wie eine
Kiste. Das gefällt mir. Das sieht ziemlich
cool aus. In Ordnung. Nun, wir wissen, dass man vom Starthilfe zum ersten AirSOD-Angriff
übergehen kann Und was wir tun, ist, AirSOD-Angriff zu überprüfen Nun, von
AirSOD-Angriff eins bis zwei,
was wir wollen, ist, dass wir als Held
dastehen Und wir werden
Air SWDaTak zwei überprüfen. Okay. Und wir wollen Gleichberechtigung sehen. Ist es genau
gleich, es ist eingeschaltet? Wenn es genau dem entspricht, dass es
eingeschaltet ist, kann es übergehen. Sie können also dorthin wechseln. Lassen Sie uns das kopieren, um zu vereinfachen,
was wir als Nächstes tun müssen. Dann von AirSWDatak
zwei zurück zu JumpStart, das Wenn Air SOD Attack two ausgeschaltet ist, es Wie wäre es nun, von
AirSOD-Angriff zwei auf drei zu wechseln? Das ist ziemlich einfach.
Das Einzige, was wir ändern, ist,
dass wir dieses Mal Air Word-Angriff drei bekommen. Okay, wir verstehen es. Verbinde es hier drüben. Wenn es auf Nice, Perfect ist, kannst du den Übergang machen
. Aber von Airs
Warder Tack drei, zurück zu Jump Start, ist
es dasselbe, außer dass wir
diesmal sicherstellen, dass es nicht aktiv ist, okay Und das ist alles, was wir
brauchen, um das einzurichten. Jetzt, wo wir das
eingerichtet haben, werden wir kompilieren. Und da alles so kompiliert ist, wie es jetzt
eingerichtet ist, sind
wir noch ein bisschen
davon entfernt, dass alles wie beabsichtigt funktioniert weil wir
die Animationsknoten eingerichtet haben, aber wir haben die Animationen nicht
eingerichtet. Also gehen wir in den
Animationsknoten und sagen:
Hey, spiel Air SWOD Attack Two Also ist es bereit,
die Animation abzuspielen und bei SWD-Angriff drei
herauszukommen Spiel Air. Also weißt
du natürlich, welche Animation,
Air SWD Attack drei Und jetzt, wo all diese
Angriffsanimationen eingerichtet sind, sind
wir in einem viel besseren Zustand Natürlich funktioniert es
noch nicht richtig, einfach weil
es beim Springen nur einen Angriff ausführt und dann kein Zurücksetzen erfolgt Als Nächstes werden wir also
die Resets durchführen und
ein bisschen Code hinzufügen, um das für die
Air-Combo fertigzustellen
58. 56 Die Luftkombo-Logik einrichten: Jetzt, wo wir die
grundlegende Verknüpfung von Animationen
haben, werden wir
denselben logischen Ablauf verwenden, um unsere Benachrichtigungen
für SOD-Angriffe
einzurichten , okay Also gehen
wir zur Animationsquelle
für den SOD-Luftangriff und am Ende
des SOD-Luftangriffs wir einfach eine Benachrichtigung hinzu Es wird eine neue Benachrichtigung sein und
es wird ein Air-SOT-Angriff sein. Unterstreichen. Sehen wir uns Air
SOD-Angriff zwei an, Unterstrich Tinte Da ist es Air
SwodTackUndercore. Link ist vollständig eingerichtet
und wir wollen genau
die gleiche Konvention verwenden, die wir beim normalen SOD-Tack
verwendet haben verwendet Wenn ich auf den
normalen SODA-Tack klicken soll, warte mal. Das ist SODA-Tack, ich bin hier drüben. Lass uns ein bisschen rauszoomen. Ich glaube, ich bin zu stark herangezoomt. Okay. Sie werden also feststellen, dass ArsOD Attack Three Link dort drüben eingerichtet
ist Ich muss rauszoomen. Warum wird das nicht richtig angezeigt
? Okay, die Frames werden nicht richtig angezeigt
. Wie dem auch sei, wir müssen das später
anpassen, aber bevor wir das tun, ja,
das ist viel besser. Du kannst die Spawn-Trefferbox sehen. Und dann SOD Combo
Ender, die Notifier Wir werden kommen und das aufräumen, aber etwas später Wie Sie sehen können, ist die
Spawn-Heatbox da, und am Ende befindet sich der
Air SODA Tak Two Link Und dann, am Ende
von ArsoDataC zwei, werden
wir einen Notifier löschen und
einen neuen
Notifier erstellen und ihn Air
SwodtaUnder
Score Three, Underscore, Link nennen werden
wir einen Notifier löschen und
einen neuen
Notifier erstellen und ihn Air
SwodtaUnder
Score Three, Underscore, Link nennen. Okay, das ist der nächste Notifier. Und am Ende kommen
wir wieder runter, und das ist unser dritter Also füge einfach eine neue
Benachrichtigung hinzu
und es wird einfach eine Air-Kombination sein. Das ist alles, es wird
ein Air-Combo-Ende sein. Also gleich nach dem
dritten Luftangriff endet
die Kombo. Jetzt kehren wir zum Spielerplan zurück
. Und da
die Logik buchstäblich dieselbe ist, verbinden
wir sie einfach alle
und kopieren sie. Okay, das Kopieren und Einfügen
spart Ihnen viel Zeit. Vertrau mir, Bruder. Okay,
wir hören hier auf. Nun, es hat hier verschiedene
benutzerdefinierte Ereignisse für uns eingerichtet. Jetzt kommen wir schnell,
doppelklicken Sie darauf. Ich habe F zwei gedrückt
, damit wir sie ändern können. Also das ist Air, SOD,
Attack, Underscore
2, Underscore Okay? Das ist der
Name der Veranstaltung. Das ist es also, was wir brauchen. Also, wir haben hier Soder
Tack Tack Two. Hier haben wir Soda
Tack Drei, cool. Also werden wir hier genau das
Gleiche tun. Also haben wir mit Air
SWOD Attack Two Link angefangen. Lassen Sie uns das auch umbenennen. Air SOD, Angriff, Unterstrich
drei, Unterstrich Link. Nein, das ist falsch geschrieben. Unterstreiche Tinte mit einem K, nicht mit einem L.
Und für den letzten ist
das der Combo-Ender Gehen wir also zuerst zurück und stellen sicher, dass es genau derselbe Name
ist Es ist Air Combo End. Gut. Also komm her. Wir zoomen rein. Also werde ich das umbenennen
und
Air Combo End nennen und wir sind fertig. Als Nächstes müssen wir alle
SODA-Tacks durch
ihre korrekte Version ersetzen SODA-Tacks durch
ihre korrekte Version Ich lasse mich dieses
Air-Combo-Ende eingeben. Wir ersetzen jetzt die SODA-Steuer
durch SOD-Luftangriffe. Also lösche das und
das ist im Grunde genommen Sod Tack Three. Wir kommen einfach hierher, ziehen AR Soda Tack
Drei rein und wollen es
einstellen, schalten es zwei aus, und wir
verbinden diese Knoten, und wir werden genau
das Gleiche
für all die verschiedenen Eigenschaften tun für all die Das ist also Soder Tack Two. Also holen wir uns Air Soder Tack Tack Two, und wir ziehen es rein und
wir stellen es als Set zusammen Wir werden den Söder-Tack loswerden. Weil die Kombos alle mit exakt derselben
Logik funktionieren werden mit exakt derselben
Logik funktionieren Das ist also Air Sword Attack,
zwei werden ausgelöst. Also die Angriffsnummer wurde zurückgesetzt. Dann sind wir hier, stellen Sie sicher
, dass sie richtig funktionieren. Also nochmal zwei angreifen, stattdessen wollen wir
Luftschwertangriff zwei. Also werden wir
das ersetzen und dann hier, wo
es Air-Soda-Tack drei Eher Soder Tack Drei, das können
wir entfernen. Wir besorgen Air Soda Tack 3, stellen es
auf und schalten es ein, weil es das war, was es war Die Logik ist exakt dieselbe. sparen einfach wirklich Zeit, indem wir genau
den gleichen Logikbaum für unsere Air-Soda-Steuer und für
unsere Soda-Steuer Das ist es im Grunde, es ist eine
sehr gute Möglichkeit, Zeit zu sparen. Denn alles, was Sie tun ist,
genau dieselbe Logik zu verwenden. Jetzt werden wir
einige Anpassungen an
der Air-Soda-Steuer vornehmen , um ihren Stil zu
ändern, aber darauf werden wir als Nächstes eingehen. Lassen Sie uns
zunächst sicherstellen, dass die Soda-Tacks richtig ineinander
übergehen Nun, da dies vollständig eingerichtet ist,
okay, lassen Sie uns die Logik überprüfen, die
ArsodTakt-Links Okay, das scheint gut
zu laufen. Nachdem wir die Ereignisse hier richtig
eingerichtet haben, kehren
wir zum
Animations-Blueprint zurück und wollen
die Notifier anpassen Also gehen wir zum Link „
Notifier of AISDTA“. Und dann
wollen wir ein Held werden. Und dann unsere Rolle als Held herausziehen. Und wir wollen nach dem
Event-Luftangriff suchen, um eine Verbindung herzustellen. Und das ist genau der Code, den
wir abspielen wollen
, wenn der Notifier
aufgerufen wird, okay? Und dann gehen wir zu
Air SOD Attack Three Ink
, geben das G als Held und dann machen wir genau
das Gleiche Air SOD Attack Three Link. Das ist perfekt. Das ist jetzt so eingerichtet, dass
es korrekt funktioniert. Dann gehen wir zum Ende der Air Combo und bringen den als Helden rein. Und die Funktion, die wir
spielen wollen, ist Air Combo und Bum, und fertig und abgestaubt Da haben wir es, und wir sind fertig mit unserem grundlegenden
Air-Combo-System Mal sehen, wie es im Spiel
funktioniert. Also bin ich am Boden. Meine Notizfeuer
funktionieren einwandfrei. Wenn ich jetzt springe. Halte durch. Springe, greife an. Okay, der Angriff
wurde nicht korrekt zurückgesetzt. Gehen wir zurück und
überprüfen noch einmal, warum. Wir
schauen uns zunächst den Helden an. Erkennt es richtig
, ob der Spieler fällt? Ja. Also ist es so
eingerichtet, dass
der Luftangriff normal abläuft Lassen Sie uns damit beginnen, das zu überprüfen. Nett. Springt. Es macht den Air-Stack und das
Reset Ah, nett. Okay. Also
, das funktioniert jetzt richtig, das einzige D, lass uns
schnell alles speichern. Wir müssen
sicherstellen, dass alles
gespeichert ist , damit es richtig
funktioniert. Mach noch einen Test. Wenn ich springe, kann
ich einen Schwerthieb machen. Aber stellen Sie sofort fest,
dass es ein Problem gibt. Der Code funktioniert nicht richtig,
weil
der Spieler irgendwann wieder auf dem Boden landen wird. Um das zurückzusetzen, müssen
wir es also so einrichten, dass
der Spieler, wenn er in der
Luft ist und seine Angriffe ausführt, in einem luftgebundenen Zustand bleibt. Lass uns das im nächsten Video machen.
59. 57 Die Luftkombinationslogik verfeinern: Okay. Jetzt, wo wir unseren
Air Combo-Code zur Verfügung haben, sehen wir nur, dass die Spieler, weißt
du, sehr schnell zu Boden gehen
. Also wollen wir
eine einfache Kette erstellen. Was wir wirklich
wollen, ist den Spieler für
Luftkombos in der Luft
zu halten Warum? Weil es irgendwie cool
aussieht. Okay. Aus Sicht des
Gameplays man
sich das ganz einfach so vorstellen
: Wenn
der Spieler in der Luft ist
und sich bewegt, wollen wir ihn der Spieler in der Luft ist
und sich bewegt, wollen wir Nehmen wir an, wenn sich der
Spieler bewegt und ich springe, möchte
ich normal hinfallen Aber wenn ich als Spieler angreife, möchte
ich, dass der Spieler länger in der Luft
bleibt. Nun ja, technisch gesehen könnte
das
den Spielablauf ein wenig stören,
aber mach dir keine Sorgen, der Tatsache
entgegenzuwirken , dass
du länger in der Luft bist Was wir auch tun werden, ist
,
die horizontale Bewegungsgeschwindigkeit zu drosseln , sodass der Spieler nicht einfach Angriffe treffen und die Sprungweite
vergrößern
kann Angriffe treffen und die Sprungweite
vergrößern Okay? Also okay? Also, du siehst, wir
können die Kombination dort machen. Aber wenn ich versuche, die Kombination zu machen, lande
ich irgendwann auf dem
Boden. Okay? Kommen wir also
zum Code. Moment im Helden führt
das Mela-Tag, wenn er in der Luft ist, dazu ,
dass man
Luftlötzägel aufsetzt und am Ende der
Angriffsdauer überprüfen
wir, ob der Spieler immer noch
angreift Ist dies der Fall, setzen Sie Nummer
des Sod-Angriffs auf Null
zurück,
falls dies nicht der Fall ist. Führen Sie dann
einen Angriffs-Reset durch und schalten Wenn sie immer noch drücken, schalten Sie Sod Sie dann nach einer kurzen Dauer die Schalten Sie dann nach einer kurzen Dauer die Variable Sod Attack
ones Nun, was wir
tun werden , ist, ein bisschen Sauce hinzuzugeben Also, wenn der Spieler anfängt, seine
Air-Soda-Tacks zu machen, werden
wir uns die
Komponente
der Charakterbewegung holen , okay? Und wir werden es hineinziehen. Und dann
wollen wir die Schwerkraft-Skala festlegen. Okay. Ich will die Schwerkraft-Skala einstellen, und wir wollen sie einstellen. Lassen Sie uns damit beginnen, sie auf Null zu
setzen ,
nur um Ihnen zu zeigen, was passieren
würde. Okay. Jetzt, wo wir es auf Null
gesetzt haben, kompilieren
wir und
gehen zurück ins Spiel. Wenn der Charakter jetzt springt,
merkt man, dass er
seine Kombos aus voller Luft auch
ohne Schwerkraft ausführen kann seine Kombos aus voller Luft auch
ohne Aber das ist, wenn sie auf Null gesetzt ist. Stellen wir es auf
etwas Sinnvolleres ein. Setzen wir es auf
etwa 0,25. Das heißt, sobald der
Spieler kombiniert, erhält
er ein Viertel Wenn der Spieler jetzt springt, erhält
er ein Viertel
der Schwerkraft und kann seine normalen
Luftangriffe ausführen. Okay. Das ist cool.
Beachten Sie jedoch, dass es ein kleines Problem gibt wenn sie wieder
auf den Boden kommen Wenn sie
normal springen, ist das kein Problem. Sie haben den normalen Sprung
, den wir für sie eingerichtet haben. Wenn sie jedoch
eine Kombination machen und
wieder auf den Boden kommen, wenn sie zurückspringen, bleibt die
Schwerkraft-Skala erhalten. Kehren wir also
zum Helden-Blueprint zurück
und kopieren dann die Knoten, die die Schwerkraft ändern, und das machen
wir Unmittelbar
danach, wenn der Spieler zurücksetzt und die Kombo nicht
fortsetzt,
setze die Schwerkraft-Skala wieder auf eins zurück Okay. Also, wenn der Spieler die Kombo zu irgendeinem Zeitpunkt
beendet hat, setze die Schwerkraft-Skala auf eins. Okay. Und wir werden die gleiche Gruppe von Knoten
in all unseren Händen hinzufügen. Das könnten die falschen Angriffe sein. Ich glaube, ich habe das
auf SOD-Angriff gesetzt. Das ist SOD-Angriff Ups. Komm runter, um Tinten Air anzugreifen. Willst du in den
Luftangriffslinien sein. Lass es uns hier hinstellen.
Also setzen wir bei jedem Reset die Schwerkraft wieder
auf eins zurück. Komm her. Das ist der zweite Reset. Wir setzen die Schwerkraft wieder auf eins zurück. Da haben wir es. Dann setzen
wir am Ende der Combo die Schwerkraft
natürlich wieder auf eins zurück. Ich hoffe, das macht Sinn und
ergibt für Sie einen logischen Sinn. Alles, was wir tun, ist bei jedem Reset, wir setzen die
Schwerkraft-Skala wieder auf eins zurück. Wenn die Kombination fortgesetzt wird, lassen
wir die schwebende
Schwerkraft der Farbe unverändert. Mal sehen, wie das jetzt
aussieht. Lass mich einen Sprung machen. Tun. Oh mein Gott. Oh, tut mir leid. Hör auf damit. Ich möchte keine Debuggings
durchführen,
bitte, danke Ich bin nicht im Debugging-Modus. Fangen wir von hier an. Also hör auf mit dem Spiel. Okay, spring. Okay. Siehst du? Also komme ich, ich schlitze. Sobald ich mit einem Schrägstrich fertig bin, ist
meine Schwerkraft
wieder normal Wenn ich schlitze,
wird meine Schwerkraft wieder auf den Normalwert zurückgesetzt. D mit einem Schrägstrich, meine Schwerkraft
ist wieder normal. Sprung, Schrägstrich, die Schwerkraft wird wieder auf den
Normalwert zurückgesetzt. Springe, schlage und schlage
das zweite Mal. Zurücksetzen. Ungefähr der dreifache
Schrägstrich, die drei Schrägstriche und dann die Schwerkraft, und wir müssen
die Schwerkraft nicht jedes
Mal neu einstellen Gehen wir jetzt wieder rein und
stellen sicher, dass das richtig funktioniert Lass mich sehen. Dieser
Reset wird auf eins zurückgesetzt, auf eins zurückgesetzt, auf eins zurückgesetzt,
auf eins zurückgesetzt Nicht schlecht. Aber ich muss auch noch etwas
überprüfen. Sie mich beim Öffnen der Komponente zur
Charakterbewegung Lassen Sie mich beim Öffnen der Komponente zur
Charakterbewegung nach der Schwerkraftskala suchen. Gravitationsskala
für einen normalen Sprung ist also normalerweise auf zwei gesetzt. Lassen Sie mich also eine
Anpassung vornehmen, damit der Sprung überhaupt nicht ändert. Zurück zum Ereignisdiagramm. Diesmal beim
Zurücksetzen Sorry,
wenn es zurückgesetzt
wird, setzen wir die Schwerkraftskala auf zwei
zurück, damit es gleich bleibt Der clevere Weg
ist natürlich, eine Variable mit, sagen
wir, Basisgravitation zu haben und sie hier einzurichten Aber das müssen Sie hinzufügen. Lass uns das nochmal machen. Also dieses Mal springe ich, ich schlitze. Die Schwerkraft wurde auf zwei zurückgesetzt. Ich springe, ich schlitze. Wir
setzen die Schwerkraft auf zwei Spring, ich mache alle drei Schrägstriche. Ich bin wieder auf dem Boden.
Ich mache zwei Schrägstriche Oh, ich habe drei gemacht. Mach zwei Schrägstriche Zurück auf den Boden. Ich springe, ich schlitze. Ich bin wieder auf dem Boden Ich springe, ich schlitze, ich bin wieder fit. Ich springe, ich schlitze, es wird zurückgesetzt. Ich springe, ich schlitze,
es setzt sich zurück, okay? Ich springe, ich mache den Dreifachstrich,
ich lasse los, ich lasse los, diese
Weise halten wir
den Spieler also in der Luft,
wenn er Luftkombos macht Okay? Jetzt
gehen wir wieder hierher und wollen noch eine
letzte Änderung vornehmen. Lassen Sie uns schnell die Schwerkraft-Skala zwei
überprüfen. Hier ist es auf zwei eingestellt. Ja,
es ist auf zwei eingestellt. Gut. Hier
wird die Schwerkraftskala auf 0,25 gesetzt. Ich denke, lass mich
das auf 0,15 reduzieren. Ich finde 15 Els besser. Natürlich können Sie dies
an
jeden Wert anpassen, der Ihrer
Meinung nach besser abwirft. Obwohl dort,
führt es zu einem höheren Stau. Oh. Okay. Jetzt, wo wir
sehen, dass es
zu einem höheren Sprung führt , werden
wir jetzt hierher kommen. Wir werden sehen, wir werden die Geschwindigkeit einstellen. Mal sehen, Geschwindigkeit einstellen. Okay. Wir werden die Geschwindigkeit
einstellen. Wir werden wieder die Komponente für die
Charakterbewegung abrufen
und wir werden die Geschwindigkeit ermitteln. Ermitteln Sie die Geschwindigkeit. Mal sehen, wo Get Velocity ist. Okay, ich möchte Geschwindigkeit bekommen. Lass uns die aufteilen. Okay. Teile sie auf. Auch das, lass uns sie aufteilen. Und wir wollen, dass die
X-Geschwindigkeit gleich ist, W die Y-Geschwindigkeit gleich ist, aber wir wollen, dass die Geschwindigkeit
auf Z genau Null ist. Nun, was bedeutet das? Oh, Target, W ist die
Charakterkomponente, richtig? Lass uns kompilieren. Nun, das ist es, was
wir wollen, oder? Wir sind gegangen, als der Spieler in der Luft
schwebte, mal sehen. Dies ist nur ein Set
für einen schnellen Angriff. Sie hören auf, an
vertikaler Geschwindigkeit zu gewinnen. Siehst du, was wir
dort gemacht haben? Wir haben es so eingerichtet , dass der Spieler keine
erhöhte vertikale Geschwindigkeit erhält. Und dieser schnelle Angriff, gut. Aber sie können ihre
drei Luftangriffe abschließen. Nett, nicht schlecht, gar nicht so schlecht. Aber jetzt, wo ich ihn gesehen habe, finde
ich diesen
Sprung ziemlich schwach. Er ist nicht hoch genug, weißt du. Okay. Aber jetzt, wo
wir das getan haben, denke
ich, lassen Sie mich
die Schwerkraft-Skala fallen lassen. Es ist lustig, wir nehmen ständig
all diese Anpassungen vor. Lassen Sie uns jetzt die
Schwerkraft-Skala auf 0,05 senken , okay? Ich denke, 0,05 ist eine vernünftige Gravitationsskala , weil wir die
Sprunghöhe erheblich reduziert haben Also kommen wir. Nett. Damit der
Spieler Oh, ich bin immer noch herangezoomt abschließen kann. Entschuldigt Der Spieler kann immer noch
seine dreifachen Schwerthiebe abschließen und dann ist er
wieder am Boden Und das ist der schnelle
Überblick darüber, wie
man ein gutes
Aero-Combo-Angriffssystem Und das Schöne ist, der Spieler die Fähigkeit behält,
die
Richtung zu ändern , selbst
wenn er in der
Luft angreift und zuschlägt Das ist eine coole Sache. Okay?
Das ist so ziemlich alles. Okay, lass uns sehen, dass
das ein normaler Sprung ist. Das ist ein offensiver Sprung. Der angreifende Sprung bewegt sich schneller. Was wir also tun werden, wird noch einmal auf den Helden
zurückkommen. Jetzt, wo wir wieder in
der Charakterbewegung sind, befinden
wir uns
wieder in einer Art Hauptfigur. Wir wollen eine weitere
Komponente aus
unserem Charakter herausholen , weil
es noch eine weitere Einbruchfunktion gibt Wenn ich einen einfachen Sprung mache, beachte, dass ich
beim Springen
etwa 1,5 Felder springen kann Aber wenn ich springe und
anfange anzugreifen, kann
ich etwa drei springen, was bedeutet, dass
wir Luftangriffe zu
Sprungbewegungstechnologien machen ,
was wir nicht wollen. Ich meine, wenn du es willst,
kannst du es in deinem Spiel haben. Aber ich werde dir zeigen, wie
du sicherstellst , dass Luftangriffe deine Sprünge nicht verändern, denn später
werden wir uns damit befassen,
wie du Plattformspiele entwickeln kannst
, die fesselnd sind und Spaß Also werden wir die Bewegungskomponente der
Charaktere herausziehen. Und wir wollen nach Luftsteuerungen
suchen, wollen die Luftregelung einstellen. Es ist das Ding
namens Luftregulierung, wir wollen die Luftregelung einstellen.
Das stellen wir hier hin. Und wir werden die
Luftregelung auf,
sagen wir, auf etwa 0,3 einstellen . Denn im besten Fall die
Luftkontrolle so, wie wir es
bei
der Einrichtung der Charakterbewegung einrichten , höher. Schauen wir uns schnell die Details an. Ich möchte, die Details öffnen. Okay, meine Daten
werden nicht angezeigt, also gehe ich zur Ansicht
und hier sind wir. Ich klicke auf Details und das Detailfenster wird
wieder geöffnet. Jetzt möchte ich nach einer Luftreinigung
suchen. Unter der Komponente „
Charakterbewegung“. So kannst du sehen, dass die beste
Luftregelung auf eins eingestellt ist, okay? wir also die Luftregelung auf 0,3
setzen, reduzieren wir die Fähigkeit der
Spieler, die
Diagonalgeschwindigkeit zu kontrollieren , wenn sie gesprungen
sind und aneinanderreihen. Sie sind also hier. Okay, also die
Luftregulierung wurde reduziert, aber obwohl die
Luftregulierung reduziert wurde, kann
der Spieler das immer noch tun. Nein, das ist vielleicht nicht
die richtige Lösung. Lassen Sie mich die
Änderung zur Luftregelung entfernen. Eine Änderung der
Luftregulierung bewirkt also möglicherweise
nicht genau das, was ich
vom Charakter erwarten würde. Lassen Sie uns stattdessen schnell die tatsächliche Arbeitsgeschwindigkeit
ändern. Mm. Okay. Also hier haben wir
die variable Gehgeschwindigkeit. Lassen Sie uns nun
genau diese Variable vorschlagen. Mal sehen, wir haben
tatsächlich die Gehgeschwindigkeit eingestellt. Also hier sind wir. Lass uns die maximale Gehgeschwindigkeit ändern. Jetzt fängt es bei 600 an. Schlagen wir vor, es auf
300 zu reduzieren und zu sehen
, ob das den richtigen Unterschied
macht oder sicherstellt, dass der Spieler seine Sprungweite nicht
vergrößern kann. Lass uns sehen. Nein, nicht genug. Lass es uns auf 150 reduzieren. Das ist die Charakterbewegung. Okay, es wurde also langsamer. Okay? Lass es uns auf 50 runterfahren. Okay? Lass
es wirklich fallen, damit wir den Unterschied in der
Wirkung
sehen können, die es hat. Nein, nicht gut genug. Mm. Muss noch eine Anpassung
vornehmen. Wenn das Ändern der
Arbeitsgeschwindigkeit für diesen
Anwendungsfall also nicht funktioniert, schauen wir uns das an. Ich denke, was wir
ändern könnten, ist die Luftreibung. Ich muss die
Reibung in der Luft ändern. Es gibt tatsächlich viele
verschiedene Möglichkeiten, das zu tun. Jeder hat seine eigenen
Probleme , die er
selbst verursachen wird. Lassen Sie uns später darauf zurückkommen. Nun, im Grunde, da wir
damit fertig sind,
haben wir
die Möglichkeit,
eine nette Animation mit drei Treffern einzurichten drei Treffern und diese Treffer dort auszuführen, und sagen wir auch, einen schnellen Sprung hinein zu
machen. Wir können einspringen und Luftangriffe
durchführen. Wir haben Luftangriffe. Dann haben wir Bodenangriffe. Wir haben Luftangriffe. Obwohl die
Luftangriffe langsam sind, können wir
sehr schnell Abhilfe schaffen. Lass uns sehen. Lass mich in die Kunst gehen. Und wähle den Air-Sod-Angriff. Dies ist auf vier
Bilder pro Sekunde eingestellt. Lassen Sie mich das auf
acht Bilder pro Sekunde aktualisieren , um es schneller zu machen. Und dann die zweite, mal sehen, eins, zwei, drei. Okay, das ist auf
vier Bilder pro Sekunde eingestellt. Lassen Sie mich das auf sechs Bilder
pro Sekunde einstellen , um es schneller zu machen. Und der letzte ist so
eingerichtet, wie du willst? Was ich eigentlich machen werde, ich werde
das ändern, lass mich sehen. Was ist die dritte Animation. Lass mich das löschen. Ich werde das einfach auf
vier Bilder pro Sekunde einstellen. Das wird also
der letzte Schwertangriff sein. Nein, halte es einfach. Also, mit diesen
wenigen Änderungen, schauen
wir uns an, wie sie aussahen. Also das sind die
Grounded Sword Tacks. Und wenn ich dann
springe, viel schneller. Eins, zwei, drei. Okay,
dann sind sie fertig. Gut. Eins, zwei, drei,
eins, zwei, drei. Okay. Dann, wenn du
springst, eins, zwei, drei. Ich
mag es sogar, die Bewegung
kontrollieren zu können, wenn ich so in der Luft bin.
Es ist irgendwie cool Wie dem auch sei, das ist es. Im Moment haben
wir unser
Baseline-Kombisystem eingerichtet. Jetzt, wo wir
das Kombosystem
in den nächsten Videos
eingerichtet haben , werden
wir kurz
über einige Dinge sprechen, die wir mit der KI machen
können, weil es Spaß macht, einen Block zu
treffen, aber eine echte
Kreatur zu treffen, die dich
angreifen und dein
Leben beenden kann , macht viel mehr Spaß. Lassen Sie uns darauf eingehen.
60. 58 Spieler im Bereich erkennen: Nun, da wir einige Kampfmöglichkeiten für unseren Spieler
zur Verfügung haben, geben
wir dem Spieler
etwas zum Kämpfen
, der
unser erster Nahkampffeind sein wird Nun, das Erste, was
wir tun werden, ist, den Grundplan für
Nahkampfgegner
einzurichten und zu erstellen, okay Um das zu tun, wollen wir uns mit den Charakteren befassen Beachten Sie nun, dass es hier
einige Ordner gibt. Wir haben unseren Angriff, das Objekt
beschädigen und
dann den Spieler. Also lasst uns einen neuen Ordner erstellen, okay, wir nennen ihn Nahkampf-Feind Wir werden es einfach halten, okay? So
wird es heißen. Also, das ist der Nahkampffeind. Und wenn wir gehen, werden
wir
den Nahkampffeind
als Kinderklasse
der Angriffspuppe erschaffen als Kinderklasse
der Angriffspuppe Also hol den Angriffspuppen.
Es wird es bekommen Und dann
gibt es oben die Option, eine untergeordnete Blueprint-Klasse zu erstellen Und wir werden
diese
Kinder-Blueprint-Klasse „Mein Feind“ nennen . Schneide das schnell aus, wir schneiden das, gehen zurück zum Nahkampfgegner und fügen
den Inhalt dann schnell Warte,
lass mich zurückkommen. Wo ist Copy? Ich möchte das tatsächlich in seiner Gesamtheit kopieren
. Echter Motor. Wo ist die
einfache Kopierfunktion? Okay, ich sehe keine Kopie. Ich ziehe es
einfach per Drag-and-Drop nach Melenem. Da steht: Okay, beweg dich hierher. Ja, genau das möchte ich tun. Sehr interessanter Herausgeber. Wie dem auch sei, jetzt, wo wir uns
im Nahkampfgegner befinden, wollen
wir
noch ein paar weitere Ordner hinzufügen Also erstellen wir einen Ordner
, den wir Kunst nennen werden. Wir erstellen einen weiteren
Ordner namens Animation , in dem wir
unsere Animationen ablegen, und wir erstellen einen weiteren
Ordner namens Audio. Okay. Wir haben also Kunst,
Audio und Animation, und wir werden je
nach Bedarf weitere Ordner hinzufügen. Aber für den Moment werden diese
drei ausreichen. Nun, obwohl es nett war, diesen Dummy hier
zu haben, legen
wir den Dummy zur Lass mich ihn wegbringen. Komm schon, Cameoa. F hier drüben. Cool. Okay. Lasst uns jetzt schnell den
Nahkampfgegner in die Welt
werfen sicherstellen, dass er auf der ZY-Achse Null
ist Okay. Also das ist unser erster
echter Feind im Spiel. Das ist es jetzt. Es ist hier. Lassen Sie uns jetzt den Bauplan öffnen
und sehen, was drin ist. Also beim Öffnen, lass es mich hier
hinzufügen, okay? Also, wenn du es öffnest, beachte , dass es ein
paar Dinge gibt. Es gibt eine einfache
Kapselkollision. Es gibt hier einen einfachen Würfel. Es gibt ein einfaches Charakternetz. Da drüben ist das Widget,
das ist die Gesundheitsleiste, und es gibt eine
Charakterbewegungskomponente, die gut ist. Das Erste, was wir
tun werden, ist reinzukommen. Wir werden den Würfel auswählen, und wir werden es vorerst einfach
tun, lassen wir ihn für den Moment drin,
weil wir nur eine Sache machen. Aber wir werden hier
eine weitere Komponente hinzufügen. Das Erste, was die KI tun
muss, bevor sie
etwas anderes tut, ist,
dass sie Lage sein
muss, den Spieler zu
erkennen und wissen, wann er sich
in einem bestimmten Bereich befindet. Also gehen wir
zu den Komponenten und wir wollen
eine Komponente namens
Pawn Sensing hinzufügen . Das ist es Das ist es also, der Bauernerwahn. Lass es mich in
Spielererkennung umbenennen. Das wird
der Name sein, den ich
dafür verwenden werde , weil er für die Spielererkennung
gedacht ist. Und wenn du dann herauszoomst, merkst du, dass das ein ziemlich
verrückter Radius ist, oder? Es ist ein riesiger Radius. Also wollen wir
diesen Radius verringern. Jetzt können
wir im Detailbereich den Radius der Site reduzieren. Im Moment sind es 5.000. Lass es mich
auf 1.000 Einheiten reduzieren. Okay. Ich denke, 1.000 Einheiten
wären gut. Und dann die Hörschwelle, wir können sie auf Null setzen,
sodass es den Spieler nicht hören
kann,
und die LOS-Hörschwelle. Wir werden das auf Null setzen. Es hat also nur einen Sichtradius. Denken Sie jetzt daran, dass
es sich tatsächlich um eine Kugel handelt. Es sieht aus, als wäre es eine
gerade Linie, ist es aber nicht. Es ist eine vollständige Sphäre,
die den gesamten Charakter umgibt, oder? Lassen Sie uns nun eine kurze Überprüfung durchführen und sicherstellen, dass die
Punktsensorkomponente, die ich als
Clear-Detection bezeichnet habe, funktioniert. Also gehen wir zum
Event-Graph über. Lass mich hier runterkommen und
wir werden kreieren. Wir lassen
es
mich tatsächlich per Drag-In-Spielererkennung einziehen. Die klare Erkennung ist jetzt also da. Und wir möchten
ein einfaches Ereignis hinzufügen , um den Spieler zu erkennen, also kehren wir zur Klarerkennung
zurück. Wir werden ein Ereignis hinzufügen. Wir könnten hier Lärm gebrauchen, aber das ist momentan nicht brauchbar. Ich möchte CPN hinzufügen, was dazu führen wird, dass dies
hinzugefügt wird also mit CPO tun,
das im Grunde Was wollen wir also mit CPO tun,
das im Grunde der Spielererkennung Wir wollen einfach eine einfache Zeichenfolge
ausdrucken und
sie Player is visible nennen Das ist es. Sobald sich der Spieler in nachweisbarer Reichweite
befindet, heißt
es einfach: Hey, der
Spieler ist sichtbar Das ist alles, was wir brauchen
, um loszulegen. Okay? Also lass uns
zurück in die Welt gehen. Ich drücke Play.
Okay, im Moment erkennt
es den Spieler nicht. Also kommen wir zurück
zum Bauplan. Also schaue ich mir den
Blueprint auf CPN an. Es sollte
den Spieler trotzdem erkennen. Lass uns zurückkommen. Wenn ich also auf diese
Seite springe, ist sie da. Also heißt es jetzt, dass
der Spieler sichtbar ist. Wenn ich zurückkomme,
ist der Spieler nicht mehr sichtbar. Wenn ich auf diese Seite zurückkomme, ist
der Spieler
sichtbar. Das ist cool. Jetzt wissen wir, dass es den Spieler sehen kann
, solange er sich auf der rechten Seite
seiner Sichtweite befindet. Nun sollten wir ihr Sichtfeld erweitern
, sodass sie nicht mehr zur rechten Seite
schauen,
sondern den Spieler sowohl
auf der linken
als auch auf der rechten Seite sehen kann . Und um den Blickwinkel
zu vergrößern,
beachten Sie hier den
peripheren Sichtwinkel bei der Spielererkennung. Schauen wir uns das mal an. Wir können diese Zahl nach oben oder unten
anpassen. Ich werde diese
Zahl auf 179 Grad erhöhen, nicht ganz 180, sondern 179. Ich habe festgestellt, dass das
in den meisten Anwendungsfällen sehr gut
funktioniert. Beachten Sie jetzt, dass der
Player sichtbar ist. Ich verlasse die Reichweite. Der Spieler ist nicht mehr sichtbar. Der Spieler ist sichtbar. Lass mich rausgehen. Der Spieler ist nicht mehr sichtbar.
Das ist gut. Unsere grundlegende KI ist jetzt also in der Lage
, den Spieler einfach zu erkennen. Lassen Sie uns als Nächstes herausfinden, wie wir es so machen können, dass sich
die KI in Richtung des Standorts
des Spielers bewegt, wenn
der Spieler sichtbar ist .
61. 59 Die KI zum Spieler hin bewegen: Jetzt, wo der
Spieler erkannt wird,
befinde ich mich gerade außerhalb
der sichtbaren Reichweite und jetzt bin ich wieder
in sichtbarer Reichweite. Als Nächstes wollen wir sicherstellen, dass
sich der Nahkampfgegner immer dann auf
den Spieler zubewegt , wenn
der Spieler sichtbar ist Um das zu tun, müssen
wir zunächst
eine Navigation erstellen, und
das tun wir , indem wir ein
Nervennetz einrichten. Nun, was ist das? Lass es mich dir
schnell zeigen, oder? Lassen Sie uns zunächst annehmen,
dass wir dieses
Objekt hier haben, richtig? Das ist unsere KI Wenn wir herauszoomen und dann
in die obere linke Ecke kommen und wir etwas hinzufügen wollen
und Sie einfach
Nervenmaschengrenzen in jedem Volumen mit
Nervenmaschengrenzen hinzufügen Nervenmaschengrenzen in jedem Volumen mit
Nervenmaschengrenzen Lass uns das der
Spielwelt hinzufügen. Wieder herauszoomen Dadurch
entsteht ein sogenanntes Nervengeflecht Dieses Feld ist ein bisschen klein, also habe ich es ausgewählt, und dann werde ich es für alle Einheiten auf
50
erhöhen , okay? 50, weil ich will, dass es groß ist. Viel besser. Das
ist jetzt richtig groß. Sie sehen also diese grüne Fläche. Diese grüne Fläche hier drüben
zeigt dir das Nervengeflecht. Mit anderen Worten, in
welche Bereiche kann die KI navigieren. Jetzt werdet ihr unsere Box hier bemerken, vielmehr kann
sich unser Nahkampfgegner entlang
dieser grünen Fläche bewegen Jetzt lass mich hierher ziehen. Sie werden diesen Bereich
um diese Objekte herum bemerken.
Der KI wird gesagt, dass sie nicht in der
Lage ist, sich darin zurechtzufinden, und das ist gut so. Nur für den Fall, dass Sie hier irgendwelche Leerzeichen
sehen,
müssen Sie nur überprüfen,
ob es sich nicht um den Nahkampfgegner handelt.
Doppelklicken Sie darauf, dass es sich nicht um den Nahkampfgegner Gehen wir zum Angriffspuppen. Stellen Sie sicher, dass die Kollision des
Würfels eingestellt
ist, dass sie einfach alle dynamischen
Elemente überlappen Er sollte nicht
blockieren, da jede Blockkollision dazu
führt, dass ein Bereich entsteht in dem das Nervennetz
nicht sichtbar ist. Wenn ich jetzt erneut auf
die Nervenbox klicke und P drücke, wird das Nervennetz nicht mehr
angezeigt. ich erneut P drücke, wird
dir jetzt das Nervennetz angezeigt. Jetzt, wo das
Nervennetz eingerichtet ist, machen
wir uns einfach auf den Weg zum Bauen und
suchen nach Baupfaden. Das bedeutet, dass die Navigation neu aufgebaut wird
, nur eine einfache Überprüfung. Und was Sie tun können, ist, sagen wir, wir wollen, dass
dieses Nervengeflecht rechts begrenzt wird und wir wollen es
etwas weiter nach links verschieben Es wird
ein Nervengeflecht bilden. Beachten Sie diese Neufassung des
Standardnervennetzes. Sie können das löschen,
zu den Pfaden für die Erstellung und den Wiederaufbau wechseln , und
das Nervennetz wird für Sie neu erstellt Ich weiß, ich habe schon oft von
Nervenmaschen gesprochen, aber im Grunde ist
das nur der
Bereich, in dem die KI arbeiten kann Jetzt, wo wir den begehbaren
Bereich eingerichtet haben, den die KI nutzen kann, wollen wir jetzt
sichergehen, dass sie versteht, sich auf
den Spielercharakter zuzubewegen Okay. Jetzt werde ich Ihnen
klar und
deutlich zeigen , was wir erreichen
wollen. Du bewegst dich also auf den Feind zu
und merkst, dass er dich verfolgt. Wenn ich dann drüberspringe, wird
es, solange ich
in sichtbarer Reichweite bin, solange ich
in sichtbarer Reichweite bin, weiterhin
versuchen,
den Spieler zum
Standort des Spielers zu verfolgen . Okay, komm zurück. Okay, komm zurück. Hey,
komm zurück, Bum. Okay? Natürlich versucht es, den genauen Standort des Spielers
zu ermitteln. Nun, das ist der
einfache Blueprint-Code. Als Erstes kehren
Sie also zu OSPn,
der Spielererkennung, zurück Und dann, nach der Druckzeile, wirst
du zum Helden casten Im Grunde ziehst du diese
Pinbelegung und willst nach dem
Namen
des Spielerplans Sobald das erledigt ist, gehst
du als Held zu und willst den Standort des
Schauspielers ermitteln wird
dieser Knoten aufgerufen und wir teilen ihn dann schnell auf, sodass
wir Zugriff auf die X-,
Y- und Z-Werte haben . Natürlich
benötigen wir den Z-Wert nicht. Es sind die X- und Y-Werte
, die am wichtigsten sind. Danach verwenden wir einen einfachen Move to Location Node. Sie können darauf zugreifen, indem Sie einfach Simple Move to Location
eingeben. Und damit
ziehst du aus dem
Controller raus und
willst den KI-Controller holen,
du wirst in der Lage sein, den KI-Controller abzurufen,
und vom KI-Controller stellst du
sicher, dass du
einen Verweis auf dich selbst aufgibst. Das sagt der
KI quasi, dass sie anfangen soll, im Grunde heißt
es: Hey, KI, sobald
du den Spieler erkannt hast. Drucken Sie aus,
dass die Saite
sichtbar ist dem Helden zugewiesen Das sollte das sein, was und dem Helden zugewiesen
wird. Das sollte das sein, was wir sehen,
das ist der Bauer Ermitteln Sie als Bauer seinen aktuellen Standort
und bewegen Sie sich dann einfach zu seiner Position, indem Sie auf
den KI-Controller
in Ihnen zugreifen den KI-Controller
in Und so
bekommt man im Grunde welche, lass mich wieder rauszoomen So bekommt man
eine einfache KI-Bewegung, bei der die KI
dem Spieler einfach folgt
und
versucht, dem Spieler zu folgen , solange
der Spieler in Reichweite ist. Jetzt, wo wir das haben,
können wir weitermachen und
einige allgemeine Grundbeschränkungen einrichten einige allgemeine Grundbeschränkungen ,
damit die KI nicht versucht,
sich vollständig in den Spieler hinein zu bewegen weil sie versucht, ihren genauen Standort
zu erreichen, was nicht das ist, was wir wollen, dass sie sich in einen bestimmten Bereich bewegt. Okay. Und dann
werden wir damit fortfahren, die
KI anzugreifen
, der dem Spieler Schaden zufügt.
62. 60 Anpassung der KI-Bewegung zum Spieler: Wenn du jetzt noch
einmal
zu den Ordnern zurückkehrst und in
den Ordnern, unter dem Player
befinden sollten, wirst
du feststellen, dass wir
einen speziellen Ordner für den
Schaden an Boxen für den Spieler erstellt haben . Wir werden etwas
ganz Ähnliches
für den Nahkampfgegner tun für den Nahkampfgegner Darin werden
wir einen neuen Ordner erstellen, und dieser Ordner wird
an den Boxen beschädigt werden Okay. Lass mich das
Kästchen nochmal ankreuzen, nicht bei den Boxen. Okay, beschädige die Kiste. Okay. Ich möchte die
Benennung beibehalten
, damit alles zwischen den beiden
ähnlich ist. Okay, jetzt, wo wir
damit fertig sind, das zur Verfügung zu haben, lassen Sie uns nun einige
Anpassungen vornehmen,
sodass der Nahkampfgegner nicht bis zur exakten Position des
Spielers vordringen sollte,
sondern die Spieler
erreichen sollte Im Grunde sollte es nicht
versuchen , in
den Spieler einzudringen, okay? Es versucht,
in den Spieler einzudringen. Das wollen wir nicht.
Wir wollen, dass es direkt vor dem Spieler
aufhört. Deshalb wollen wir, dass es immer kurz vor
dem Spieler
stoppt. Das werden
wir nun tun
, indem wir einen anderen Knoten verwenden,
und dieser Knoten heißt
Get Distance Two. Also lasst uns danach suchen. Holen Sie sich Distanz zwei. Da sind wir. Das gibt uns die Entfernung zu
einem Spielercharakter, okay? Also werden wir diesen Knoten benutzen. Es ist die Get-Entfernung zum Knoten. Lassen Sie uns also zuerst all diese Knoten verschieben , die
für die Bewegung
des Schauspielers vorgesehen sind, bewegen wir ihn ein wenig weiter. Was wir also tun wollen, ist, dass
wir
nach dem einfachen Bewegungstool eine
grundlegende Entfernungsprüfung
zum Spielercharakter durchführen wollen . Und nach dieser Entfernungsprüfung wollen
wir alle
aktiven Bewegungen beenden. Die Art und Weise, wie wir das
tun werden, ist zunächst, dass wir diese Dinge schnell etwas weiter voneinander trennen, weil wir ein paar Kontrollen durchführen
müssen. Okay. Also müssen wir auch Abstand nehmen, und der andere Schauspieler wird Held
sein, den
es entdeckt. Okay? Das wird der andere Schauspieler
sein. Und lass mich
das noch weiter nach links bewegen , weil
wir dann
etwas mehr Platz brauchen werden, okay? Wir ermitteln also
die Entfernung
zum Helden und dann wird er
versuchen, einen Wert zurückzugeben. Und dann
wollen wir anhand des
Rückgabewerts diesen Wert herausziehen. Wir wollen nach
weniger als gleich suchen. Wir wollen also
nach weniger oder gleich suchen. Okay. Und danach
weniger oder gleich, legen
wir einen Betrag fest. Nehmen wir an, der Betrag
beträgt 150 Einheiten. Und danach
werden wir
eine einfache Filiale einrichten und
nach dieser Filiale, ob es diese Filiale ist, schauen wir mal. Wenn die Entfernung also weniger als oder gleich 150 Einheiten ist, wollen wir, dass der Spieler innerhalb
dieser Entfernung befindet, oder? Es liegt innerhalb von 150 Einheiten. Wir wollen im Grunde jede Bewegung beenden
, das heißt, wenn die Entfernung
nicht ist , wenn die Entfernung
nicht weniger als 150 Einheiten beträgt, was falsch sein wird, ziehen
wir das raus und wir verschieben es auch auf die
einfache Bewegung. Es bewegt sich also, wenn die Entfernung kleiner als oder besser gesagt,
wenn sie nicht weniger als
oder gleich 150 Einheiten
ist wenn sie nicht weniger als
oder gleich 150 Einheiten Wenn es
jedoch wahr ist, ziehen
wir dies heraus und
möchten eine einfache Zeichenfolge drucken, und wir möchten, dass die Farbe
der Zeichenfolge rot ist. Klick, okay? Und wir nennen es Angriffsreichweite, weil das
im Grunde die Angriffsreichweite ist. Wir haben es so eingerichtet, dass 150 so ist als ob der
Spieler sich innerhalb von 150 Einheiten befindet, er
sich jetzt in Angriffsreichweite befindet, sodass er bereit ist, den Spieler
anzugreifen. Nun, da das alles richtig
eingerichtet ist, ziehen
wir die Besetzung
zum Helden hierher. Gehen wir also den Code durch. ein
Held erkannt, wird
er
die Entfernung zum Helden ermitteln und prüfen, ob sie
weniger als 150 beträgt. Wenn die Entfernung nicht
kleiner als 150 ist, versuche
einfach, zum Standort des
Charakters zu gelangen. Wenn es weniger als 150 ist, drucken Sie
einfach aus, dass
Sie sich in Angriffsreichweite befinden. Okay, also lassen Sie uns schnell eine Kompilierung durchführen und auf Play klicken und einen kurzen Check
durchführen. U, sagt in Angriffsreichweite. , aber die Entfernung von 150
scheint zu klein zu sein. Erhöhen wir das auf 500. Okay. Jetzt in einer Entfernung von 500, die wir zur Überprüfung verwenden. Hmm. Jetzt haben wir ein kleines Problem. Also, wenn ich mich bewege, versucht
es, okay? Nein, der Scheck
funktioniert nicht richtig. Lass uns sehen. Okay, jetzt stoppt
es in einer
guten richtigen Entfernung. Jetzt stoppt es
im richtigen Bereich. Jetzt stoppt es
im richtigen Bereich. Jetzt funktioniert es nicht richtig. Jetzt funktioniert es nicht richtig. Jetzt funktioniert es nicht richtig. Dies wird einige
Anpassungen erfordern. Versuch das nochmal. Nein, es ist unzuverlässig. Lassen Sie uns nun einige
grundlegende Problemlösungen durchführen. Wie gehen wir
bei der Fehlerbehebung vor? Komm her und
lass uns auf Play klicken. Ich will sehen, was los ist. Hey, das geht,
richtig? Okay. Das einzige Problem ist also, dass auch
der einfache Schachzug
immer noch funktioniert. Es scheint, dass der Code korrekt
funktioniert , denn lassen Sie mich versuchen
, dies zu demonstrieren. Wenn ich in den
richtigen Bereich komme, warte mal. Warte eine Sekunde. Es scheint sich zu bewegen
und macht tatsächlich das Richtige, indem es den Fluss umschaltet , indem es auch
die einfache Bewegung ausschaltet. Aber was fehlt, ist diese Umstellung auf einmal
und sie läuft immer noch. Was wir tun wollen,
ist sofort, nachdem es erkannt hat, dass es sich
innerhalb der Angriffsreichweite befindet, damit aufhören wollen, mal sehen. Da sind wir. Wir wollen die aktive Bewegung beenden. Okay? Also lass uns sofort darauf
klicken. Es hat also eher Bewegungskomponente des Charakters geöffnet und die
aktive Bewegung gestoppt. das jetzt mit
diesem Setup Lassen Sie uns das jetzt mit
diesem Setup schnell noch einmal testen. So perfekt. Ich bewege mich ein bisschen. Ja, es
funktioniert jetzt richtig. Lassen Sie uns das jetzt von
500 Einheiten auf 150 Einheiten reduzieren. Führen Sie eine schnelle Kompilierung durch.
Komm wieder her. Okay, jetzt
hört es richtig auf. Ein? Nein, aber es funktioniert jetzt nicht richtig.
Okay, warte. Lass mich die Einheiten erhöhen ,
damit ich
ein klareres Bild habe. Lassen Sie mich auf
300 Einheiten erhöhen. Okay? Okay, es hört auf.
Es hört dort auf. Es hört dort auf.
Es hört dort auf. Hört dort auf. Okay. Es funktioniert also derzeit
nicht zuverlässig. Dort hält es in
der richtigen Entfernung an. Hier, dort hört es auf. Okay. Die Bewegung zu stoppen
hilft also in einigen Szenarien, sie zu lösen, aber in anderen hilft
es ihr nicht. Was wir also
tun müssen, ist eine weitere Änderung vorzunehmen. Jetzt, wo wir hier sind, haben
wir es so eingerichtet, dass aktive Bewegung
gestoppt wird. Aber bevor wir das
tun, müssen wir das zunächst ein wenig umorganisieren
und
sicherstellen, dass es
wirklich bereinigt ist Lassen Sie mich das hier
zusammenfügen, um
Abstand zu bekommen und uns zu verzweigen , damit ich
klar sehen kann, was vor sich geht Das wird hier sein, gut. Ich mag diese Organisation. Und wenn es dann stimmt, verzweigt
es sich, um aktive Bewegung zu
stoppen. Mama, hm. Okay. Aber wenn es
die Bewegung stoppt, warum stoppt es dann in
unterschiedlichen Entfernungen? Das kommt auf die Geschwindigkeit an. Das kommt auf die Geschwindigkeit an. Wie ändern wir also die Geschwindigkeit? Das ist eigentlich ziemlich einfach. Wir verwenden Stop Active
Movement, ziehen Sie das raus. Lass uns sehen. Hier sind wir. Ich habe sofort eine
Stop-Bewegung hinzugefügt, um zu verhindern, dass das weiter
voranschreitet ,
nachdem wir das getan haben. Ich verwende also sowohl die Stopp-Bewegung sofort als auch die
Stopp-Aktiv-Bewegung. Lassen Sie uns das testen und sehen ob es
das richtige Ergebnis liefert. Okay. Okay. Nein. Nein. Ah. Ich verstehe. Okay. Das ist ein guter Anfang, aber es gibt noch ein paar
andere Anpassungen, die
wir
vornehmen müssen, damit die KI dem Charakter
folgt und
an einer bestimmten Stelle stoppt .
Wir funktionieren korrekt. Und ich denke, ein wichtiger
Teil davon wird die Anpassung der
Pensing-Komponente
sein Lass uns das im nächsten Video machen.
63. 61 Sensorkomponente anpassen und Theorieentwicklung zum Timing: Jetzt sind wir also an
einem Ort, an dem wir uns auf unseren
Nahkampffeind zubewegen können auf unseren
Nahkampffeind zubewegen Und manchmal hört es
an der richtigen Position auf. Manchmal hört es zu spät auf
und, weißt du, aber seine
Bewegung funktioniert jetzt. Ich muss
aus dem Code und den
Knoten herauskommen und zu einer etwas
höheren Denkweise übergehen. Jedes einzelne Spiel auf der
ganzen Welt läuft nach einem Timer ab. Dieser Timer wird Tech genannt. Lass mich das jetzt rausbringen. Lass mich eine Zeichenfolge drucken. Und ich möchte, dass es
jedes Mal, wenn es dauert, die Delta-Sekunden
ausdruckt . Also lass uns sehen, wie
das aussieht. Wo ist das Level dieser Seite? Nein, ich will, dass es links ist. Okay. Achte also darauf, dass es tickt. Im Moment siehst du
0,008 als Take-Timer. Nun, was das bedeutet, lassen Sie uns einen Taschenrechner
öffnen, richtig? Nun, wenn wir eins haben
und es durch
0,0 083 teilen , erhalten wir 120 Okay. Das bedeutet, dass
jeder Take etwa
alle 120 Frames
abgefeuert wird, und das können wir überprüfen, oder? kommen hierher und kommen raus, wenn wir es bitten, FPS zu zeigen, richtig? Beachten Sie, dass der FPS
etwa 120 Frames beträgt. Alles, was wir tun, basiert auf Timern. Lass mich jetzt Play drücken. Sie werden also feststellen, dass die Zeit
zwischen den einzelnen Frames angezeigt wird, die jetzt 0,008 3 Sekunden beträgt Die Variation,
wo der Gegner aufhört, hängt also vom Timing ab Lassen Sie mich jetzt zurückgehen und
diese Zeichenfolge löschen , die
auf Te go away erscheint. Jetzt habe ich das entfernt. Wenn wir
die Spielererkennung überprüfen,
gehen wir in das Detailfenster. Lass mich das öffnen. Und wir werden hier etwas sehen. Moment, mal sehen,
Komponenten nehmen, das ist gut. Okay. Also habe ich auf die Komponente Spielererkennung auf Sensorik geklickt.
Also lass uns herkommen. Beachten Sie, dass das
Tick-Intervall momentan auf 0,0 gesetzt ist. Das bedeutet, dass
es auf dasselbe T-Intervall
wie
die Bildrate eingestellt wird . Es ist nicht wirklich Null, aber es ist darauf eingestellt. Und jetzt wollen wir, dass wir das
anpassen und
erhöhen oder verringern können. Das ist nicht das
Wichtigste. Nun, lass uns sehen. Hier messen wir das Intervall. Mit dem Erkennungsintervall ist im Grunde genommen die Zeit
gemeint, die zwischen der Überprüfung dieser Komponente durch das Spiel
vergeht. Jetzt ist es also auf 0,5 eingestellt. Wir können also das Erfassungsintervall auf fünf
setzen. Das sind ganze fünf Sekunden. Das ist eine Menge, okay? Also kompiliere das. Also
das bedeutet im Grunde, dass
es das jetzt weiter
machen wird, eins, zwei, drei, vier, fünf. Beachten Sie, dass diese
Überprüfung nur alle 5 Sekunden durchgeführt wird. Eins, zwei, drei, vier,
fünf, jetzt bewegt es sich. Alternativ können
wir
das Erfassungsintervall anpassen ,
damit es viel schneller erkannt wird. Wir machen es auf 0,1. Erinnerst du dich, es fing
bei 0,5 an, okay? Lass uns jetzt reinkommen. Beachten Sie also, dass
es jetzt bei 0,1 folgt und sich
in der richtigen Entfernung anpasst. Der Grund dafür
ist, dass es jetzt plötzlich alle 0,1 Sekunden überprüft
, alle 0,1 Sekunden überprüft Feind
die Berechnungen durchführt und die
Entfernung zum Spieler überprüft. Lassen Sie mich das
Ereignisdiagramm noch einmal öffnen. Ich zoome ein bisschen heraus,
aber Sie können, okay,
lassen Sie mich
beim Drucken der Zeichenfolge, beim
Casting und beim Verzweigen heranzoomen Casting und beim Verzweigen Also lass uns schnell auf Play klicken. Ich möchte, dass du siehst, wie schnell
es geht, oder? Es hat sich komplett verändert. Pass, es bringt
Dinge auf den Bildschirm. Nun, der Grund, warum ich das teilen
wollte , ist, dass
wir viel Arbeit mit
verschiedenen Punktsensorsystemen
machen werden viel Arbeit mit
verschiedenen Punktsensorsystemen
machen . Um wirklich gute KI zu
entwickeln, müssen wir viel
mit ihnen arbeiten,
um Entfernungen zu erkennen und je nach
Entfernung des Charakters unterschiedliche
Entscheidungen zu je nach
Entfernung des Charakters unterschiedliche
Entscheidungen treffen. Wenn der Charakter
durch einen Fernkampfangriff weit weg ist, wenn er sich in der Nähe befindet, kannst du die KI so
einstellen, dass sie wegläuft. Das ist nur ein grundlegendes
Gesamtkonzept. Und jetzt, wo wir
das Erfassungsintervall
auf 0,1 Sekunden erhöht haben . Jetzt
funktioniert der Code aus
menschlicher Sicht genau so, wie wir es uns vorstellen. Jetzt, wo wir dieses
Setup haben und es so eingerichtet
haben, dass es grundsätzlich
in Reichweite angreift, oder besser gesagt, wenn es
sich in Angriffsreichweite befindet. Lassen Sie uns als Nächstes mit
dem Code weitermachen und
unserem Nahkampfgegner
einige Animationen hinzufügen . Dann werden wir uns mit dem
Hinzufügen eines Angriffs befassen und darüber
sprechen, wie Entscheidungen in Bezug auf Angriffssysteme getroffen
werden
64. 62 Hinzufügen eines sichtbaren Sprites für den Nahkampfgegner: Als Nächstes
wollen wir
unseren Nahkampfgegner so verändern , dass wir
tatsächlich einen Feind auf dem Bildschirm sehen können tatsächlich einen Feind auf dem Bildschirm sehen Lassen Sie mich ihn näher an
den Spieler heranrücken , damit wir die Änderungen schnell
sehen
können Wir wollen, dass
es sich tatsächlich um einen Feind handelt, nicht nur um eine Kiste
mit einem Gesundheitsbalken. Um das zu tun, gehen wir also auf den Plan
des Nahkampf-Feindes ein. Wir wählen den Würfel und gehen auf seine Details ein Wir wollen nach
sichtbarem Rendering suchen und
ihn unsichtbar machen Jetzt sollten wir also keine mehr
sehen, wir sehen nur einen
Gesundheitsbalken. Das ist cool. Aber wir werden noch eine Änderung
vornehmen. Wir werden das
Widget auswählen und auf Details eingehen. Und wir werden
es auch einfach unsichtbar machen. Damit du es weißt, jetzt haben wir nur noch
den leeren Feind. Da der leere Feind
da ist, gehen wir rein, und wir wollen jetzt
damit beginnen,
einige Sprites hinzuzufügen, um uns auf die Sprites
vorzubereiten Wir werden eine Komponente hinzufügen, und es wird ein
Flipbook sein Okay? Fügen wir einfach ein Flipbook aus
Papier als Komponente hinzu,
und
hier werden wir
all unsere Sprites Zu diesem Video gehören nun auch einige Sprite-Assets die wir verwenden werden, um den Feind
zu erschaffen Sie können sie herunterladen
und dann weitermachen. Jetzt
wird das Hinzufügen der Sprites ganz einfach sein. Zunächst wählen wir alle
Bilder aus, die wir importiert haben, und stellen sicher, dass auf diese die Textureinstellungen für Paper Two D angewendet
wurden Als Nächstes möchten
wir Skeleton Io auswählen und
Sprites daraus extrahieren Nachdem Sie auf Sprites extrahieren geklickt haben,
stellen Sie fest, dass NRL die
verschiedenen Sprites
bereits automatisch
segmentiert hat und wir einfach auf Extrahieren und Und da haben wir es. Und jetzt haben wir all diese
ungenutzten Sprites ausgepackt Also wählen wir sie aus und erstellen
dann das Flipbook,
das da drüben ist, und erstellen ein Und es heißt
Skeleton Idol One. Wir stellen es einfach auf
Me NMI um, Underscore Idle. Okay,
schauen wir uns jetzt den Nahkampfgegner im Leerlauf an. Das ist also die Animation. Im Grunde
steht das Skelett an einem Ort. Es ist eine sehr gute Animation, und das werden wir verwenden,
um den Feind untätig zu halten. Jetzt, wo wir das drin haben, schließen
wir es einfach. Wir wählen das
Papier-Klappbuch aus, das wir in
unserem Nahkampffeind aufgestellt
haben Und wir werden
das Saucen-Klappbuch so
umdrehen, dass wir runter gehen Wir wollen, dass der Nahkampfgegner untätig ist. Okay. Nun, da wir den Nahkampfgegner
da drüben im Leerlauf eingerichtet haben, lasst uns das kompilieren Und wenn wir auf Clay treffen, sieh mal, da drüben ist dieser winzige
Nahkampfgegner Sehr süß. Jetzt funktioniert das. Wir haben gezeigt, dass es richtig
angezeigt wird. Passen wir die Skalierung so an, dass sie
passt und logischer ist. Ich werde die Skalierung sperren und sie auf Y
skalieren.
Das ist cool. Lassen Sie mich die Positionierung so anpassen
, dass sie etwas höher Bewege es ein
bisschen vorwärts und dann nach unten. Die aktuelle Skalierung ist also 4,4. Lassen Sie mich das auf 4,5 setzen. Das ist die Skalierung. Kompilieren.
Lass mich sehen, wie es aussieht. Das ist gut. Gehen Sie als Nächstes zurück, wählen Sie das Flipbook
aus, suchen Sie nach Schatten, und wir möchten es so einrichten
, dass es Schatten wirft weil es momentan
keine Schatten wirft. Wählen Sie „
Schatten werfen“ und kompilieren Sie. Und jetzt
ist unser kleiner Feind zwei D da und wirft einen schönen
kleinen Schatten. Wie cool. Und schau, es bewegt sich richtig, links und rechts, bewegt sich
nach links, bewegt sich nach rechts. Das ist ausgezeichnet. Jetzt, wo
unser kleines Skelett kleine
Skelett-Sachen macht, denke
ich, wir sollten
es ein bisschen größer machen, weißt
du, ein
bisschen einschüchternder Schauen wir uns die Größenordnung an. Lassen Sie mich
die Skala auf sechs erhöhen. Erhöhen Sie die vertikale Ld. Ich muss auf den Boden schauen und
sichergehen, dass er den Boden
berührt. Ich erhöhe die
Skala auf sieben. Das ist gut. Achte darauf, dass es nur darum geht, den Boden zu berühren. Lassen Sie mich das nur kurz ansprechen. Kompilieren. Mal sehen,
was wir hier haben. Das sieht viel besser aus. Schau dir das Skelett an. Okay? Die einzige
Anpassung, die ich vornehmen werde, ist, es ein bisschen runter zu legen. Mal sehen, 30. 20? Nein, ich möchte, dass
sein Z-Standort etwa 28 ist. Nein, gib es 27 runter. Das sollte ungefähr richtig passen. Passen Sie es an, bis Sie
damit fertig sind, es zu mögen, okay? Passen Sie es nach Ihren Wünschen an. Okay. Passen Sie sich Ihren Wünschen an. Das
ist gut und ich mag es Jetzt, wo wir damit fertig sind, nehmen
wir eine letzte Anpassung vor. Ähm, nein, lassen wir es dabei. Jetzt haben wir also einen einfachen
Skelettfeind, der dem Spieler folgen kann. Als Nächstes werden wir
daran arbeiten, es anzubringen, es auf Papier
zu platzieren,
Zed, und es einer echten
Laufanimation versehen, sodass es den
Spieler verfolgt. Lass uns gehen
65. 63 Gehende Animationen in PaperZD hinzufügen: Okay, jetzt, wo wir
die Grundgrafiken haben, wollen wir sie aufpeppen und diese
dynamischere Funktionalität hinzufügen Also das Erste, was
wir tun werden, ist der Aufbau sehr ähnlich dem,
was mit dem Player gemacht wurde. Wir wollen die Animationskomponente für Papier
Z D finden. Und mit dieser
Animationskomponenten-Setup nennen wir sie
einfach Papier-Z-Animation. Und dann entscheiden wir uns für, okay, Animationsinstanz, wir werden uns später
damit befassen, welche Komponente gut rendert. Wir wollen das
Paper-Flipbook
als unsere Rendering-Komponente verwenden , und jetzt
sucht es einfach nach einer Animationsinstanzklasse. Also werden wir das erstellen. Gehen Sie also im
Ordner Nahkampf-Gegner in die Animation
und wir werden, mal sehen,
wir wollen eine
Animationsinstanz erstellen sehen,
wir wollen eine
Animationsinstanz Mal sehen, was Papers A ist. Hier sind Sie Papers A Day Wir wollen damit beginnen, eine Animationssoße zu
erstellen, und wir nennen sie
Nahkampf-Animationssauce Okay. Und danach haben
wir das gespeichert. Als Nächstes wollen wir
einen Animations-Blueprint erstellen. Okay. Und es ist hier und fragt: Okay, was wird
die übergeordnete Animations-Sauce sein? Wir wollen, dass die
Nahkampf-NEM-Animationsoße ihr übergeordnetes Element ist. Und wir werden es
Nahkampf-Feind-Animation BP nennen. Wir werden die Benennung sauber halten. Nachdem wir diese beiden
eingerichtet haben, gehen
wir zunächst zur
Animationsquelle über. Wir möchten eine neue
Animationssequenz hinzufügen. Wir werden diese Sequenz Idle nennen. Okay. Wie Sie sehen können, nennen
wir es untätig. Wählen Sie nun die
Idle-Animation aus. Wir wollen zuallererst, ich weiß nicht, warum das dort
geöffnet wurde. Wir wollen ein volles Fenster. Als nächstes, welche Animationsdaten
wir wollen, machen mich unbrauchbar. Also werde ich nicht die Nahkampf-ID des Feindes verwenden, und das ist die Animation Es spielt sauber. Es spielt sauber.
Das ist gut. Jetzt, wo wir das erledigt haben, gehen
wir zurück und stellen sicher, dass
alles gespeichert ist. Das ist es also, was in
der Animationssauce enthalten ist. Dann gehen wir zur
Nahkampf-Animation Blueprint über. Wir haben Zugriff auf den
Nahkampffeind als Variable. Wir werden
dafür sorgen, dass Sie aus dem Event-Diagramm des Animations-Blueprints von M
Enemy heraus auf den Feind Mel casten
möchten Und was das Objekt angeht, wollen
wir den Hauptdarsteller finden. Und der Grund, warum wir den Hauptdarsteller
bekommen,
ist, dass man
mehrere Nahkampfgegner hat
und jeder Animationscode separat ausgeführt werden
sollte,
und dann
wollen wir einfach zu variabel aufsteigen ist, dass man
mehrere Nahkampfgegner hat und jeder Animationscode separat ausgeführt werden
sollte, und dann
wollen wir einfach zu und die
Variable ist Das ist alles, was wir einrichten
müssen. Okay. Lassen Sie uns nun mit all
dem Setup zum
Animationsdiagramm übergehen. Innerhalb des
Animationsdiagramms wollen wir
also als Erstes eine
brandneue Zustandsmaschine erstellen. Lassen Sie uns also nach
einer Zustandsmaschine suchen, neue hinzufügen und wir werden
das Ganze einfach Enemy nennen , um es wirklich einfach zu
halten Das wird unser neuer Staat
sein. Bring das her,
wir gehen da rein und wir gehen direkt
von draußen raus, ziehen das raus. Wir wollen einen neuen
Animationsstatus hinzufügen und das
nennen wir einfach Idle. Und doppelklicken Sie auf Idle. Und wir wollen wirklich
einfach nach Play Idle suchen, das ist die Animation, die einzige, die wir haben. Soweit das
rein, raus, steuern und
natürlich speichern
und dann kompilieren. Jetzt, wo das alles
zusammengetragen und fertig ist, haben
wir unser
Paper Z im Grunde komplett eingerichtet. Wir kehren zum
Animationsdiagramm zurück. Im Moment,
sofort, wenn es startet, geht
es direkt in den Leerlauf über. Lassen Sie uns als Nächstes weitermachen und
die Bewegungsanimation oder
die Laufanimation hinzufügen . Jetzt ist das Hinzufügen der
Laufanimation einfach. Wir fangen einfach zuerst an, wir gehen zurück,
gehen zurück zur Kunst. Oh, nicht von dem Charakter. Wir wollen die Kunst des Nahkampf-Feindes. Und in der Kunst seht ihr
, dass da M ist. Mal sehen Wir haben W hier. Da ist Skeleton Walk. Okay. Also
wählen wir einfach das Skelettwerk aus. Wir wollen Sprites extrahieren. Sie werden automatisch geschnitten. Und dann wählt der wandelnde Sprite sie einfach aus und
erstellt ein Flipbook und
wir nennen das
Flipbook wir nennen das
Flipbook Okay. Also das ist die Animation zur Arbeit von
Nahkampfgegnern Es ist eine nette kleine Arbeit, die der Feind macht Jetzt, wo wir
diese Arbeitsanimation haben, gehen
wir einfach zur Animationsquelle für Nahkampf-Gegner Wir werden eine neue
Animationssequenz hinzufügen. Wir werden es Arbeit nennen. Doppelklicken Sie darauf
und das Gleiche, wir wollen hier in
der Animationssequenz nach Arbeit suchen. Jetzt haben wir also diese einfache
Arbeitsanimation hinzugefügt. Nachdem das hinzugefügt wurde, kehren
wir zum Mele
Animation Blueprint zurück Wir ziehen das heraus und erstellen einen neuen
Animationsstatus Wir werden den Status W nennen.
Innerhalb des Arbeitsstatus wollen
wir arbeiten. Oder die Arbeitsanimation. Als Nächstes wollen wir den
Link von der Arbeit zurück zum Leerlauf verbinden. Und wenn wir einmal reingegangen sind, kriegen wir
einfach den ASM-Feind. Dann wollen wir Geschwindigkeit bekommen. Okay, wir wollen Geschwindigkeit bekommen. Hier ist es diese Komponente
von Get Velocity, teilen wir sie auf und wir wollen das noch einmal kurz
überprüfen. Wir suchen nach der X-Geschwindigkeit, und wir wollen etwas sehen. Also wollen wir sehen,
ist sie gleich, und wir meinen nicht gleich. Also verwenden wir die Funktion „
Nicht gleich“, das ist diese Funktion. Und um vom Leerlauf zur Arbeit überzugehen, was die Regel ist, die wir
gerade aufstellen, kann
sie, sobald die Geschwindigkeit auf der
X-Achse größer als Null ist, sobald die Geschwindigkeit auf der
X-Achse größer als Null ist, anfangen zu funktionieren, aber dann geht sie vom Gehen zurück
zu exakt gleich. Mit anderen Worten,
genau gleich Null. Es sollte in ein
funktionierendes übergehen. Das war mein Fehler. Gehen Sie hier in die
Animationsinstanzklasse und wählen Sie Mele Enemy
Animation Blueprint Speichern, kompilieren und
jetzt wollen wir sehen. Okay, du kannst sehen, da ist
dieser Spaziergang und die Prahlerei. Schau es dir an, wie es den Feind jagt. Sobald es erreicht ist, hört es auf. Jetzt ist unser Feind in der
Lage, den Spieler zu sehen, auf ihn
zuzuarbeiten und aufzuhören. Nett. Also haben wir das richtig
eingerichtet. Wir haben unsere
Basisanimation mit Me Enemy korrekt
eingerichtet. Und jetzt können wir anfangen
, dem
Nahkampfgegner
einen Angriff hinzuzufügen . Lass uns weitermachen
66. 64 Melee Enemy Attack Sprite hinzufügen: Jetzt haben wir unseren
feindlichen Charakter, der swingen und sich auf
den gegnerischen Spieler zubewegen kann und sich auf
den gegnerischen Spieler zubewegen , sobald der
Spieler sichtbar wird Das nächste, was
wir wirklich
tun wollen , ist, einen
einfachen
Angriff zu machen , damit der Feind dem Spieler Schaden
zufügen kann Und während wir den Angriff einbauen, werden
wir
weitere Anpassungen
am Bewegungssystem
vornehmen, damit es
die Position des
Spielers viel besser erkennen und sich anpassen kann, wenn er sich
auf den Spieler zubewegt. Was wir also
tun werden, ist hierher zu kommen. Wir beginnen mit der
Auswahl des Skeleton-Angriffs und nachdem wir uns vergewissert haben, dass er die Papier-Two-D-Einstellungen hat, werden
wir Sprites extrahieren Und es scheint, dass
Unreal Engine dieses Mal Schwierigkeiten hat, die Dimensionen
der Sprites
herauszufinden Derzeit ist die
Sprite-Extraktion also auf Auto eingestellt. Ich werde das ändern,
weil Auto nicht genug ist. Wir werden
es ans Stromnetz anschließen. Als Raster
müssen wir nun
die Zellenbreite und Zellenhöhe bestimmen . Nun, das ist ein
einfacher Weg, das zu tun. Jetzt wird das
für dieses spezielle Bild funktionieren. Lassen Sie
mich zunächst ein wenig heranzoomen. Wir wissen, dass es
sich bei dem Angriff um eins, zwei, drei, vier handelt. Okay, fünf, sechs, sieben,
acht, neun, zehn, 11, 12, 13, 14, 15, 16, 17, 18 Bilder, okay? Es gibt hier also 18 Frames. Um
diese bei 18 herauszufinden, wissen
wir, dass momentan jede Zellenbreite auf 774 gesetzt ist Jetzt werden wir einige grundlegende
Berechnungen und Berechnungen durchführen. Wenn Sie
die Sprites selbst erstellen, müssen
Sie
diese Berechnungen natürlich nicht durchführen Wenn Sie jedoch Assets verwenden, müssen
Sie dies manchmal tun Wir haben also 774/18, was 43 ist. Also lasst uns die Breite auf 43 ändern. Und jetzt haben wir Sprites
sauber geschnitten. Okay. Einfach damit. Damit kommen wir zum Extrahieren und Extrahieren. Und ohne Zeit zu vergeuden, werden
wir ein Flipbook erstellen, und wir werden
es
Nahkampf-EM nennen. Lassen Sie uns den feindlichen Nahkampfangriff sehen Okay, das sollte perfekt sein. Okay, mit diesem Setup haben wir unseren feindlichen
Nahkampfangriff Gehen wir jetzt zurück in
den Nahkampf-Feind-Ordner. möchte zur Animation übergehen und die Animations-Sauce
und
den
Animations-Blueprint erneut öffnen und
den
Animations-Blueprint erneut Okay, Animationssauce, öffne
den Animations-Blueprint. Jetzt wollen
wir in der
Animationsquelle eine neue Animation hinzufügen, und wir nennen sie einfach
Angriff. Wir werden es einfach halten. Jetzt greifen wir an, wir werden
die richtigen Animationsdaten durchkauen
und nach
mir suchen, ob ich feindlicher Angriff Da ist es. Das ist die grundlegende Animation eines gegnerischen
Me-Angriffs. So untätig. Angriff zu Fuß.
Das ist ziemlich cool. Okay, lassen Sie mich
diesen Anruf annehmen. Und jetzt haben wir
diese Angriffsanimation hinzugefügt. Das nächste, was wir tun werden
, ist mir den Feind
zu
öffnen, die Blueprint-Klasse
Nahkampf-Gegner zu Jetzt werden wir zurückkommen, die Logik
neu organisieren
und darüber nachdenken, wann der Feind den Spieler
angreifen soll, und sicherstellen, dass die
Knoten hier
den Spieler
im richtigen Abstand angreifen lassen ,
und wir werden auch
die Bewegung des Feindes
so anpassen , dass sich der Feind
viel langsamer bewegt , sodass der Spieler
weglaufen kann. Lass uns das machen
67. 65 Melee Enemy KI Übersicht und Codekommentare: Ordnung.
Je tiefer wir in die KI eintauchen, besser hast du die Bewegung eingerichtet. Sie
ist in der Lage, dem Spiel zu folgen. Lassen Sie uns wieder von den
ersten Prinzipien aus
über die Dinge nachdenken . DCAA, Designcode bei Audio. Im Moment haben wir
mit etwas Code angefangen, nur um
Ihnen ein Gefühl für die Erstellung
und Einrichtung der Funktionell werden wir Erkennungssysteme verwenden
, also Pan-Sensor
- und Bewegungssysteme Diese beiden bestimmen wirklich, wie
sich eine KI fühlt. Lassen Sie uns also wieder
über Design nachdenken, okay? Das ist also ein sehr
vereinfachter
Überblick darüber, was wir mit der KI machen
werden. Das ist eine wirklich
einfache Nahkampf-NM-KI. Das erste, was sie tut,
ist, dass sie ein Gebiet patrouilliert. Okay. Wenn der
Spielercharakter ein Gebiet betritt, scheint
die KI in einem Gebiet zu
patrouillieren Als Nächstes bewegt sie sich auf den erkannten Spieler zu und
führt einen Angriff Und das Letzte, was es tun
muss, ist, hey, wenn seine Gesundheit unter Null
fällt, stirbt
es sofort, okay? Es stirbt einfach, was sehr gut
ist. Also das werden
wir tun, um uns auf den Nahkampffeind vorzubereiten Es muss ein Gebiet patrouillieren. Es muss sich auf
einen erkannten Spieler zubewegen und ihn angreifen. Und sobald seine Gesundheit auf Null
fällt, stirbt es ab. Lassen Sie uns unter Berücksichtigung dieser
Grundprinzipien weitermachen. Jetzt sind wir wieder bei der
echten Engine
angelangt und befinden
uns im Bauplan unseres einfachen Nahkampfgegners Gehen wir jetzt rein und werfen
einen kurzen Blick auf all
die verschiedenen Knoten Das Erste ist also, wir eine einfache Spielfigur haben, die in der Lage ist, den Spieler zu
erkennen Lass uns schnell gehen. Das
ist Spielererkennung. Innerhalb dieses Radius
um den Feind herum erkennt
es also den Spieler. Das ist gut. Lassen Sie uns nun
schnell einen grundlegenden Kommentar abgeben. Oh, meine Güte. Nein, nein, nein, drücken Sie C. Drücken Sie einfach
C für die Kommentare Das ist also ein einfacher Kommentar, und wir nennen ihn „Spieler
erkennen“. Also alles, was es hier innerhalb
dieses Codes tut , ist, den Spieler zu
erkennen. Das ist alles, was es tut. Es macht
nichts anderes. Wie immer liebe ich schwarze
Hintergründe mit weißem Text. Ich finde es sehr einfach, sie zu lesen
und in Knoten zu organisieren. Also das hier ist
die Spielererkennung. Jetzt gibt es derzeit eine Zeichenfolge , die erkennt, wann der
Spieler sichtbar ist. Okay? Das ist eine Saite, die ausgelöst wird, nachdem sie erkannt wurde. Lass mich diese zuerst anordnen, alle
Verbindungen hier klären, gut Und dann wird gecastet und geprüft, ob es der Held ist, der gut ist Und dann komm her. Hey, bring das
her. Fangen Sie damit an. Es erkennt quasi den
Spieler und wirft und sagt:
Hey, okay, das ist der Spieler. Das ist cool. Das ist
die Grundlage der KI. Sie ist in der Lage, den Spieler zu erkennen und bewegt sich dann bis zu einer
bestimmten Entfernung auf den Spieler zu. Lasst uns die Bewegung neu organisieren. Bringt das alles runter, bringt das hier runter. Und diesen Zweig
möchte ich außen vor lassen, weil ich
das
unter einem anderen Kommentar unterstellen möchte,
sicherstellen möchte, dass unter einem anderen Kommentar unterstellen möchte,
sicherstellen möchte, sie
alle richtig ausgerichtet sind. Okay. Komm her. Das ist die einfache Bewegung an Ort, mit der
wir die KI bewegt haben, den Standort
des Spielers, und dann hat der Controller das hier rüber
bewegt. Damit wir den
Controller auf der linken Seite ausrichten können, da es der
KI-Controller ist, der
verwendet wird , um sich selbst zu
bewegen, okay? Wir
erkennen also grundsätzlich den Spieler. Und sobald wir wissen, dass der Spieler die Blaupause für
den Helden ist, werden wir
ihn verwenden, um
all diese anderen
Aktionen auszuführen . Okay, gut Als Nächstes überprüft es die
Grundkondition, um zu sehen, ob
die Entfernung zum Spieler 300 Einheiten beträgt. Wenn die Entfernung nicht angegeben ist, bewegt
sie sich auf den Spieler zu. Wenn die Entfernung gleich ist, stoppt
sie stattdessen jegliche Bewegung
und sie muss den Angriff tatsächlich
ausführen, oder besser gesagt, wir stellen gerade fest
, dass sie sich in Angriffsreichweite befindet. Wir brauchen diesen Text nicht mehr. Bringen wir das her. Jetzt müssen wir hier
einen Kommentar abgeben. Also holen wir uns diese Kopie und fügen sie
hier ein, ziehen sie hinein. Wir nennen diesen Angriff den Spieler, der sich in Reichweite befindet.
Das ist alles, was das tut. Es wird den Spieler angreifen
, wenn er sich in Reichweite befindet. Wir haben
den Code für den Angriff also noch nicht hinzugefügt, aber
darauf werden wir noch eingehen. Das ist also so eingerichtet, dass
der Spieler angegriffen wird,
wenn er sich in Reichweite Lassen Sie uns
diesen Kommentar aus
organisatorischen Gründen kopieren und einfügen . Und das wird
in die Angriffsreichweite gebracht. Von einem erkannten Spieler. Ah, nein, nein, du brauchst kein großes L.
Mach daraus ein kleines L. Gut. Also das bewegt sich in
die Angriffsreichweite
des erkannten Spielers. Ziehen wir das hier rüber. Schieb es ein bisschen nach oben.
Bringen wir das nach oben. Schieben Sie
das etwas weiter nach rechts. Das ist gut. Im Grunde genommen
erkennen wir den Spieler, wenn er
sich in nachweisbarer Reichweite befindet Danach führen wir eine grundlegende Überprüfung
der Angriffsreichweite Wenn sich der Spieler
noch nicht in Angriffsreichweite befindet, bewegt
er sich auf den Spieler
zu, um zu versuchen, in Reichweite zu kommen. Befindet
sich der Spieler jedoch in Angriffsreichweite, stoppen
wir zunächst
alle aktiven Bewegungen und greifen den Spieler dann
tatsächlich an. Nun, da das im Allgemeinen
wirklich eingerichtet ist, gehen
wir rein und fügen
tatsächlich den Angriff hinzu, den die KI gegen
68. 66 Damage Hitbox für Nahkampfangriffe hinzufügen: Ordnung. Nun, da wir unseren Code
einigermaßen organisiert
haben, gehen
wir rein und fügen
den Angriff für die KI hinzu. Jetzt wollen
wir als Erstes wissen, dass wir in unserer Kopfbox spawnen
werden Wenn wir also zurückkommen und uns
die Animation anhand
der Animationsquelle ansehen und bedenken, dass
dies sehr unterschiedlich ist je nachdem, welche Art von
Animation Sie möchten Jetzt werden Sie feststellen, dass es eine ganze Reihe von Schäden
verursacht. Schau dir diesen Bogen an. Gehen wir Bild für Bild runter. Oh, schnell, mach das ein bisschen auf. Lass uns zurückgehen. Schau dir diesen schönen,
schwungvollen Schadensbogen an. Schau dir das an. Bei
Bild sieben haben
wir also diesen großen,
schwungvollen Schadensbogen Dann wollen wir dem Spieler Schaden
zufügen. Und du kannst
die schöne Größe
dieses Bogens sehen , acht Dollar, okay? Nun, da wir
diese Szene haben, gehen
wir zurück zu
unserem Nahkampfgegner
und wir müssen entscheiden, und wir müssen entscheiden wo diese
At-Kiste erscheinen soll Also gehen wir schnell und wählen
das Papier-Klappbuch aus, okay. Und dann wollen
wir darin eine einfache
Kollision hinzufügen, okay? Und wir verwenden eine
einfache Box-Kollision. Also, diese Kiste ist
da, sie ist zu groß. Machen wir es kleiner. Um es zu verkleinern, reduzieren wir seinen Maßstab auf etwa 0,1, schön, und dann bewegen wir uns, wir verschieben
seine Position direkt nach vorne. Jetzt, wo wir das haben, denke
ich, lassen Sie mich
diese Animation
noch einmal ansehen . Oh, sieh dir das an. Es ist ungefähr zwei Längen vorne, aber dafür wollen wir eine riesige
Hutschachtel haben. Also ich denke, ich werde
es hierher verlegen. Gehen wir zurück zum Feind. Also hier, okay? Das ist eine gute Position dafür. Und jetzt, wo wir sehen wollen
, ist es da. Und was die Kiste angeht, nennen
wir das Ax Swing. Okay, wir nennen
es X Swing, richtig? Standort. Okay. Wir nennen
es den X-Swing-Standort. Jetzt, wo wir
diesen Standort eingerichtet haben ,
fügen
wir als Nächstes eine nette
Kollision hinzu. Eine schöne, große Kiste, die die
große Kollision sein wird, die wir haben. Um das zu tun, lassen Sie uns schnell die Leertaste drücken also, dass wir unter unserem Heldencharakter Beachten Sie also, dass wir unter unserem Heldencharakter einen Ordner
für eine beschädigte Trefferbox hatten Jetzt werden wir uns dem Nahkampffeind stellen. Und der Nahkampfgegner hat auch
einen beschädigten At-Box-Ordner. In diesem Ordner wollen
wir also eine
neue Blueprint-Klasse erstellen wollen ein einfacher
Blueprint-Schauspieler werden und
das wollen wir X Swing at Box nennen Okay. Jetzt doppelklicken wir
auf die X-Swing-Hut-Box. Und hier ist es. Wir
haben einen kleinen X-Swing. Das ist also unser grundlegender X-Swing. Jetzt müssen wir eine richtige
AT-Box hinzufügen. Also werden wir hinzufügen,
wir werden
eine Kugel hinzufügen , weil der X-Schwung in der Box eine Kugel sein wird, und wir werden ihre Größe
auf etwa 0,5 auf der Skala
reduzieren . Und das ist ungefähr die Größe. Alles andere daran ist
nicht so wichtig, okay? Jetzt, wo wir den X-Swing in der Box
eingerichtet haben, kompilieren
wir ihn und wir kehren zu unserem
Nahkampffeind zurück, okay? Und wir kehren
zum Event-Graph zurück. Und was wir
machen werden, ist ein Truck, der gerade vorbeigefahren ist. Wie
dem auch sei, wir
werden es
gleich hier drüben eindrehen. Also, wir wollen
reinkommen und sagen: Hey, Spun-Spun-Schauspieler Okay, Hauptdarsteller aus der Klasse, und wir wollen die
Klasse als X Swing at Box auswählen Okay, x Swing. Kiste. das C
angeht, um den Standort zu
bekommen, wollen wir
nur die Position des Axtschwingens herausfinden, sie hierher
ziehen
und dann wollen wir herausfinden, sie hierher
ziehen die
wilde Position davon bekommen Oh, geh weg, geh weg. Zieh das zurück. Ermitteln Sie den Standort
der Welt. Okay, da
wollen wir seinen Standort ermitteln, und das wird seine Transformation
sein. Gut, gut, gut, gut, gut. Schnapp dir das hier drüben. Und wenn ich mich
richtig erinnere, ja, es wird süß, daraus
einen Vektor zu machen. Also hier sind wir. Also das ist im Grunde alles
, was wir damit wollen, okay? Jetzt haben wir es nur so
eingerichtet, dass es in die
Angriffsreichweite des erkannten Spielers wechselt. Sobald es in Reichweite ist, wird
es sofort
den X-Schwung an der Box starten Nun, um sicherzugehen und zu testen, ob das richtig
funktioniert Ja, da ist es. Ja,
es ist in der Wärmebox. Es wird sofort reingebracht. Aber was wir
jetzt tun werden, ist, zur X-Swing-Wärmebox
zu gehen Wir werden
ihre Skala auf eins erhöhen. Okay. Hmm. Angemessene
Größe, angemessene Größe Ich denke, das ist eine angemessene
Größe für die Hitbox. Nun, nur zur
schnellen Überprüfung, das ist die Animation. Nun, lasst mich zurück zum Plan des
Nahkampf-Feindes gehen. Nein, darauf kommen wir
zurück. Also das ist momentan die
Hitbox. Also lasst uns zurück zum
Nahkampffeind gehen. Reduzieren wir die Reichweite, bei der
es aufhören wird. Im Moment sind es 300 Einheiten. Reduzieren wir das
einfach auf 150. Geh wieder rein, mach
noch einen Schnelltest. Okay. Also hier hört
die Hitbox auf. Jetzt kehren wir zur
X-Swing-Hitbox zurück. Wir werden
die Eigenschaften dieser Kugel ändern die Eigenschaften dieser Kugel und wir werden zur Kollision
übergehen. Und im Moment ist es so eingestellt
, dass es alle Dynamiken blockiert. Wir werden das
als Überlappung einrichten, alles dynamisch. Machen Sie eine schnelle Kompilierung. Mal sehen, wie das jetzt
aussieht. Okay, es überschneidet sich also. Also, sobald es
150 Einheiten des
Spielers erreicht hat, macht es das Das ist gut. Das ist gut. Das ist gut genug Schaden. Das ist eher eine Position
, die
gut genug ist, um den Angriff zu starten. Jetzt, wo wir das haben, fügen
wir auch den Code hinzu,
um den des Spielers zu reduzieren. Um unsere Entwicklung zu
beschleunigen, ich zurück zum Schwertangriff des
Spielers gegangen, und dann werde ich im Grunde den ganzen Code
kopieren, ihn
rüberkopieren, zum X-Swing gehen und ihn dann einfach hier einfügen Natürlich wird dieser Code
nicht von hier aus funktionieren, aber er wird
uns zeigen, wie man alles macht Denken Sie also daran, dass alles, was er tut ist, wenn die Komponenten sich überschneiden. Okay? Übergib das Ding,
das Schaden anrichten soll,
füge den Schaden zu und zerstöre
dann den Schauspieler oder bei einem Ereignis t, das ein
Bild ist, zerstöre den Schauspieler. Jetzt nehmen wir einige Änderungen vor. Zunächst einmal ist der Schaden, mit dem wir jetzt leben
können, derselbe Wir entfernen den Einsatz von
Angriffsschaden, der nicht benötigt wird, und wir entfernen
die Würfelüberlappung Alles, was wir brauchen, ist Schaden
anzurichten, den Schauspieler zu zerstören und
gegebenenfalls den Schauspieler zu zerstören Das ist alles was wir brauchen. Damit
gehen wir jetzt zur Sphäre über. Wir fügen das Ereignis hinzu und rufen es bei Component
Begin Overlap auf. Dieses Ereignis
wurde jetzt hinzugefügt. Wir haben die
Überlappungskomponente hinzugefügt. Nun, von hier aus
wollen wir überprüfen und
sehen, ob
wir zufällig den Helden treffen. Fangen Sie also mit der
Grundbesetzung zum Helden an. Mit anderen Worten, wenn wir den Spielercharakter
treffen
, wollen wir
sehen, ob wir uns überschneiden. Wenn das also der andere
Schauspieler ist, ist das gut. Als Held wirst du als geschädigter Schauspieler
auftreten. Und los geht's. Das
sollte also im Grunde alles sein, was wir brauchen, damit es richtig
Schaden anrichtet. Wenn also die Komponente anfängt,
sich zu überlappen, ist es die Kugel. Es ist die X-Swing-Heatbox, wir auf den Helden werfen
, zehn Punkte Schaden zufügen, und das ist der Schadensverursacher. Lassen Sie uns diesen Schaden tatsächlich
erhöhen. Zehn Punkte sind irgendwie geizig. Erhöhen wir den
Schaden auf 25, okay? Nur für deine Idee x Swing. Du bist etwas Besonderes. Jetzt werden
wir kompilieren. Nachdem das kompiliert ist, gehen wir zurück und sehen, ob es richtig
funktioniert. Ah, da sind wir. Nicht schlecht. Jetzt
hat es es natürlich
mehrmals gemacht , was wir
nicht wollen. Aber du kannst sehen,
dass es
immer wieder in der Heatbox spawnt und
unseren Spieler tötet. Das ist gut Das bedeutet, dass unsere
Axtschaukel korrekt funktioniert, sondern dass der Schwung an der
Kiste richtig funktioniert Als Nächstes werden
wir nun dafür sorgen, dass der Feind nicht sofort
spawnt, sondern den gesamten
Animationszyklus
seines Angriffs
durchläuft und dass er
in der Heatbox mit der Einzelaxtschwinge
spawnt Heatbox mit der Einzelaxtschwinge Während des Angriffs
werden wir das Spawnen
der
Attack-Hutbox mit der Animation verbinden Spawnen
der
Attack-Hutbox mit der Animation Lass uns das im nächsten Video machen.
69. 67 Linking Attack Animation mit Code für Nahkampffeind: wir nun das
Basisschaden-Trefferfeld
für den Nahkampfgegner hinzugefügt haben , wollen wir nun sichergehen und es so
einrichten , dass
wir diese nette
Angriffsanimation abspielen, wenn der
Nahkampfgegner angreift wir diese nette
Angriffsanimation abspielen Wo ist das? Ja,
diese Animation. Okay? Diese nette Animation mit schwungvollen
Angriffen , Wir wollen also innerhalb des
Nahkampf-NEM-Blueprints eine
brandneue Variable erstellen nun innerhalb der Variablen wir nun innerhalb der Variablen eine Variable
namens X Swing Attack hinzu Und dann fügen wir
eine weitere Variable hinzu. Okay. Und wir nennen das die
Variable angreifend. Nun, diese beiden
Booleschen Werte werden etwas
sehr, sehr Grundlegendes bewirken Nun, der X-Swing-Angriff,
wir werden ihn so einrichten
, dass er
die X-Swing-Animation startet , und
dann wird der E-Angriff der KI
mitteilen, dass sie sich
gerade in
einer Angriffsanimation oder in einem Angriffszustand befindet, und wir werden
das später verwenden, um das Verhalten der KI
anzupassen Sobald Sie diese beiden Bolans hinzugefügt
haben, wird das alles sehr
sinnvoll sein , sobald wir
uns mit dem Code befassen Als nächstes haben wir unseren
Aufschwung bei Box. Wir wollen es also so einrichten, dass es dazu dient, jegliche aktive Bewegung
zu unterbinden Fügen wir das gleich nach dem Beenden
aller aktiven Bewegungen hinzu. Aber bevor wir
beim Schwertangriff spawnen, bekommen
wir den
Axtschwungangriff Zieh das hier raus. Wir wollen den X-Swing-Angriff aktivieren und wir wollen ihn einschalten. Also schalten wir den
Axe-Swing-Angriff ein, okay. Und wenn der
X-Swing-Angriff aktiviert ist, wollen wir nur angreifen, okay Und wir wollen, dass wir angreifen. Okay? Also hier sind wir. Set wollen heißt angreifen. Aber wo wir das haben wollen, bring es her. Mal sehen, Set greift an. Lassen Sie uns das hier rüberziehen. Also werden wir gleich hier drüben
angreifen. Also sagten wir sofort: Hey, wir greifen an, die
KI greift an und sie sollte
den X-Swing-Angriff verwenden. Das ist die Grundlinie. Damit das nicht
mehrmals wiederholt wird, ich wollte es einmal spielen, gehen
wir in
diese Filiale. Okay Und wir werden hier drüben
einen weiteren Zweig einrichten hier drüben
einen weiteren Zweig Denken Sie daran, dass wir die Zweige
hier nur der Einfachheit halber
verwenden , okay? Nun, wofür wir es
einrichten werden, ist gleich hier drüben. Also gleich nachdem wir
den Spieler
erkannt haben, ob sich der
Nahkampfgegner in der richtigen Angriffsreichweite befindet, werden
wir
ihn hier verbinden Und wenn das dann falsch ist, wird
es das tun Okay? Wenn es falsch ist, wird
es
weitergehen und den Spieler angreifen,
wenn er in Reichweite ist. Okay? Lassen Sie mich
das
ein bisschen vorantreiben , weil wir es
stark
ausweiten müssen , es ausweiten müssen. Wir fügen immer mehr
Code hinzu. Also grundsätzlich, wenn der
Spieler angreift, wenn der Spieler nicht angreift, wird
er all das ausführen, und er setzt seinen
Angriff auf Ja, und er führt den
Axtschwungangriff und er wird in
der Trefferbox erscheinen, okay? Wenn es jedoch falsch ist, sollte
es nichts bewirken. Jetzt werden wir mit dem Angriff beginnen. Mit anderen Worten, wir werden
den Angriff starten, ihn bis hierher
ziehen, und wir werden ihn bekommen und wir werden ihn hier verbinden. Es sollte also nur einmal abgespielt werden. Lassen Sie uns nun einen kurzen Überblick verschaffen bevor wir einige grundlegende Tests durchführen. Es überprüft den Spieler, ob sich in der
richtigen Angriffsreichweite befindet. Wenn es definitiv
noch nicht angreift, führt
es jetzt den
gesamten Code aus,
aber es wird sich
darauf einrichten, anzugreifen, und es wird den
C-Swing-Angriff auf positiv setzen, und es wird
in dieser Heatbox spawnen Jetzt, wo alles
in seinem aktuellen Zustand ist, gehen
wir schnell zur
Entwicklerebene über, und das hat es auch getan Beachten Sie, dass der Spieler seine Gesundheit verloren hat. Also lass uns das machen.
Boom, der Spieler hat 25% seiner Gesundheit verloren. Also macht es das und
es hat es einmal getan. Früher hat es
mehrere Trefferboxen erstellt, jetzt macht es das nur einmal. Das ist gut genug, um anzufangen. Als Nächstes fügen wir
die Animation hinzu. Also gehen wir zum Plan für
Nahkampfanimationen. Wir gehen zum Animationsdiagramm und gehen in
den feindlichen Nahkampfstaat hinein Im Moment ist es also
auf Leerlauf eingestellt und an die Arbeit gegangen. Jetzt müssen wir nur noch einen neuen Animationsstatus
erstellen. Und wir werden das stattdessen
Animation nennen. Nennen wir es X Swing. Nennen wir es einfach
X Swing Attack. Okay? Wir nennen
es einfach X Swing Attack. Dann ziehen wir vom Leerlauf
zum Axt-Swing-Angriff und von der
Arbeit zum eigentlichen Wir müssen
nicht einmal von der Arbeit schleppen. Der Grund, warum
wir das löschen, stellen wir einfach aus dem Leerlauf her. Und der Grund, warum wir uns
nur aus dem
Leerlauf heraus verbinden müssen , ist, dass die KI immer komplett zum Stillstand
kommt, bevor
sie mit dem Axtschwing beginnt Wenn wir uns nun den Code ansehen, stellen wir
fest, dass er zuerst
alle Bewegungen stoppt und dann
angreift Okay? Was bedeutet
, dass seine Bewegungsgeschwindigkeit zu diesem Zeitpunkt Null sein
sollte. Wir müssen uns also keine Gedanken
darüber machen, es von der Arbeit aus zu machen
, weil die Spieler arbeiten. Aber im Allgemeinen hält
man sie tot, hält
man sie tot, auch wenn es nur für den
Bruchteil einer Sekunde ist, und dann werden die
Angriffsanimationen abgespielt. Doppelklicken wir nun auf X Swing und wir wollen von hier aus einfach Attack
spielen. Okay. Und Sie werden sehen , dass diese Animation Angriff genannt
wird. Nun, innerhalb des Bauplans ,
wo der Angriff ausgeführt werden
soll,
brauchen wir den Zustand, brauchen wir der ihn
vom Leerlauf in
den Angriff versetzt, und der Zustand wird als
Nahkampfgegner Dann wollen wir den
X-Swing-Angriff überprüfen. Wir bekommen einen x-Swing-Angriff und wir wollen sehen, hey, ist das genau gleich Okay. Ist das genau das Gleiche wie
ja, dann spiele ich die
X-Swing-Attack-Animation ab? Das ist alles, was es tun wird. Wir haben derzeit noch eine
Möglichkeit , es von
X Swinging auf Idle zurückzusetzen, aber wir wollen es nur testen Jetzt macht es die
X-Swing-Animation. Schau dir das an. Schau, wie es den gegnerischen Spieler
niederhackt. Das ist ein gutes kleines
Evo-Skelett. Gutes kleines Geoskelett. Gut gemacht. Nun, da
es dafür eingerichtet ist, müssen
wir das Spawnen
dieses Schadens einfach
mit
einem Animationsframe verbinden , was ziemlich einfach ist Also gehen wir in Melenemy und wir werden dir zeigen, wie du den Darsteller
der Hit-Box spawnst, und wir werden ein benutzerdefiniertes Event
erstellen Okay. Also fügen
wir ein benutzerdefiniertes Ereignis hinzu. Wir werden dieses Ereignis nennen,
oder wir werden
es einfach Axe Swing nennen , das ist alles, was
wir es nennen Jetzt, wo wir das Event haben, ziehen
wir den
ganzen Code zum
Spawnen dieses Schauspielers auf Box rüber, und wir werden
es von hier aus verbinden, und dann kommen wir wieder hierher und brechen
die Verbindung, okay Also
das einzige, was in der eigentlichen Heatbox ist dieses benutzerdefinierte X-Swing-Ereignis Okay. Eigentlich sollten wir es ändern, weil X-Swing nicht genug
ist. Nennen wir es X Swing Hit Box. Okay? So
werden wir es nennen. Und dann werden
wir natürlich, wie
Good Little Citizens, ein Kommentarfeld hinzufügen
, und wir werden
es nennen , wir
werden den Kommentar
eingeben, in
X Swing at
Box erscheinen , sodass wir in
X Swing at
Box erscheinen, sodass wir leicht
wissen, was vor sich geht also zu diesem Ereignis zurückkehren, Wenn wir also zu diesem Ereignis zurückkehren, stellen wir
fest, dass es jetzt keinen
Schaden mehr anrichtet, weil die
Trefferbox entfernt wurde Gehen wir nun zurück zum
Animations-Blueprint. Und was wir
tun werden, ist, dass wir
rübergehen , mal sehen Nein, wir müssen in die
Animationsquelle gehen. Hier sind wir. Wir gehen zur
Angriffsanimation und lassen uns schnell
die Angriffsanimation abspielen. Nett. Jetzt gehen
wir rüber, oder? Hier, bumm, genau da,
wenn er den Kotelett macht. An der Stelle, an der
er den Hacken macht, werden
wir eine Benachrichtigung hinzufügen. Wir werden eine neue
Benachrichtigung hinzufügen und den Benachrichtigungsnamen
xSwingHTBx nennen Benachrichtigungsnamen
xSwingHTBx Das ist der Name der Benachrichtigung. Nachdem diese Benachrichtigung eingerichtet ist, kehren
wir zum Animations-Blueprint von Me
Enemy zurück Wir gehen zur Benachrichtigung über. Da ist xSwingHTBx,
was gut ist, und dann werden wir den Nahkampffeind reinziehen Nehmt euch als Nahkampfgegner und dann ziehen wir das raus,
und dann wollen wir die und dann wollen wir Deshalb ist es wichtig, alles so
zu benennen , dass es
Sinn macht Sie müssen also nicht
zu viel darüber nachdenken, was Sie tun. Es ist einfach Wir wissen also, dass dies die X
Swing It Box ist, und hier ist sie. Also, mit nur diesem Setup kompilieren
wir und
jetzt lass uns spielen. Bum, bumm, es richtet Schaden an. Bum, schon wieder Schaden. Bum, äh, der Spieler ist tot. Nett. Und das ist bei uns so. Wir haben also Sepuldon. Also machen wir den Ausgang nochmal. Ich töte den Spieler, töte den Spieler. Gut. Der Spieler ist also tot.
Also, der Grund dafür. Der Grund, warum das so
effektiv funktioniert und ich
all diese Methoden empfehle ,
ist, dass wir die Position
der Hit-Box-Animation
getrennt haben . Wir haben die
Animation vom Schaden getrennt. Alles ist getrennt, sodass
wir es separat anpassen können. Vielleicht möchtest du
die Trefferbox anpassen , das
kannst du anpassen. Sie können die Animation anpassen und ändern, wo sich
die Trefferbox erstreckt Das ist im Allgemeinen einfach gutes
Spieldesign, ich kann es nur empfehlen Wie dem auch sei, jetzt, wo wir
es so eingerichtet haben , dass der Feind
tatsächlich dorthin gehen kann ,
wo sich der Spieler
befindet, und Schaden anrichten kann. Als Nächstes
wollen wir ein
paar Anpassungen vornehmen. Jetzt werdet ihr merken,
wenn ich oh Snap, es versucht wirklich zu
kommen und einfach weiter anzugreifen Notice, wenn
ich weglaufe, spielt
es immer noch
diese Animation ab. Okay? Wir wollen nicht, dass
es das tut. Wir wollen die
Bewegung vom Zeitpunkt
des Angriffs trennen . Wir wollen eine kleine
Verzögerung hinzufügen , wenn der Feind
beschließt, verschiedene Aktionen auszuführen. Das ist der beste Weg, um
eine gute KI in deinem Spiel zu haben. Lass uns das im nächsten
Video machen, einige KI-Anpassungen.
70. 68 Hinzufügen der Funktion „Zurücksetzen des Angriffszustands“: Ordnung. Jetzt, wo unsere KI verstehen kann,
wann sie angreift, wir nur noch ein paar Timing-Anpassungen vor, okay? Es ist also nicht einfach so, als würde man herumrennen und tun,
was immer es will. Okay. Also
zuallererst, Nahkampfgegner, Aufschwungposition, Kollision,
Überschneidung, alles dynamisch ,
okay, ich weiß nicht, worauf
wir stoßen Aber es gibt etwas, auf das
wir stoßen, ja,
das Papier-Flipbook, das so eingestellt
ist, dass es
alles blockiert, ich stelle es so ein, dass es sich überschneidet, das sollte
das Problem lösen Jetzt kann ich es, ich weiß nicht,
was die Ursache dafür ist. Mm. Okay. Mir gefällt nicht, dass mir nicht gefällt,
was die Kameras machen. Alternativ könnte das eine Sache mit einem Heldencharakter
sein. Also gehe ich zur Helden-Kamera,
zur Kamera, und
überprüfe dann noch einmal, ob sie kollidiert. Lass uns sehen. Okay, nochmal überprüft. Es ist nicht die Kamera. Es ist der Federarm.
Das ist der Frühling. Ich komme raus. Im Moment macht
es einen Kollisionstest. Ich habe das während
des Kollisionstests deaktiviert. Ich möchte sichergehen, dass das
aufgehört hat. Okay, viel besser. Viel besser. Ich bevorzuge das. Okay, wir können also einfach
Leute durchgehen. Weg, geh weg, geh weg, geh weg, geh weg,
gut. Das ist in Ordnung. Wie dem auch sei, das war
nur eine schnelle Sache. Nun, im Grunde
wollen wir, dass die Bewegung und die
Aktionen der KI, mangels eines besseren Wortes, ein bisschen mehr Sinn ergeben, okay? Also das
werden wir tun, okay? Wenn sich die KI bewegt und anfängt, den Spieler
anzugreifen werden
wir
die Entfernung zwischen dem
Spieler und dem Bauern noch überprüfen die Entfernung zwischen dem
Spieler und dem Bauern Und wenn es dann
eine bestimmte Entfernung überschreitet, gehen
wir davon aus, dass der
Spieler
wegläuft oder
die Entfernung verlassen hat, in der er angegriffen werden kann Und dann werden
wir an diesem Punkt die Angriffsanimation deaktivieren. Okay, das ist der
allgemeine Überblick. Also gehen wir auf
den Nahkampffeind ein. Wir werden hier reinkommen. Und dann gleich hier um
die Angriffsreichweite, gleich nach dem einfachen
Umzug zum Standort, während es seine Sache mit dem Umzug
zum Standort macht, dann das nächste, was
es tun wird, das Erste,
was
es tun wird, das hier drüben ausdiskutieren Okay, wir werden
also einen einfachen Check durchführen. Ich werde einen einfachen
Filialcheck durchführen. Und innerhalb dieser Filiale werden
wir fragen,
ob sie angegriffen hat. Okay? Wir kriegen ihn zum Angriff. Mit anderen Worten,
der Spieler hat sich gerade aus der Angriffsreichweite bewegt, aber die KI
greift immer noch an. Okay. Also, da es immer noch angreift, wollten wir als Erstes X Swing Attack setzen. Nein, warum
zeigt es mir dann all das? Ja, hier sind wir beim Start des
X-Swing-Angriffs. Okay. Jetzt, wo wir
X Swing Attack Two ausgeschaltet , warte, lass uns
das etwas länger hinauszögern, ihm etwas mehr Platz
geben. Gleich nachdem wir den
X-Swing-Angriff ausgeschaltet haben, wird
er sich
einfach zum Standort bewegen. Wenn es jedoch
nicht angegriffen hat, muss es sich nur an den Standort bewegen. Es ist eine grundlegende
einfache Codelogik. Okay? Sehr einfach. Kommen wir also zurück zum Plan für
Nahkampfanimationen, zum Animationsdiagramm, zum
feindlichen Nahkampf-Zustand Also kommen wir her und holen uns den
X-Swing-Angriff Okay, und wir
lassen es zuerst so wie es ist. Komm her, hauptsächlich
Anime-Animation, bla, bla, bla, bla, bla Hauptsächlich Animation, wir werden den X-Swing-Angriff
bekommen. Und um vom
Leerlauf zum Axtschwung zu gelangen, muss es
nur sein, dass der
X-Swing-Angriff gleich True ist Um jedoch vom
X-Swing-Angriff zum Idle-Angriff überzugehen, wollen wir den
Nahkampfgegner Wir wollen einen X-Swing-Angriff bekommen. Okay, wir bekommen
den X-Swing-Angriff. Und außerdem werden wir die
A angreifen, okay. Und dann wollen
wir zwei Dinge noch einmal überprüfen. Für den Anfang
wollen wir gleich sagen. Ich möchte noch einmal überprüfen, ob
Swing Attack eher. Ich will sehen, lass uns sehen. Die Logik muss stimmen. Die Logik muss eng sein. Wenn ein Swing-Angriff falsch ist, kann
er in diesen Übergang übergehen Lassen Sie uns einen kurzen Check machen. Okay, es hat jetzt aufgehört. Okay. Aber es schafft
ein anderes Problem. Es geht nicht zurück
in die Animation. Beachten Sie also, dass es angreift. Okay. Starte neu, es greift an. Wenn es jedoch angreift und wir
die Angriffsreichweite verlassen, wenn es wieder
in Angriffsreichweite kommt, bumm,
kann es nicht mehr angreifen. Okay. Ich sollte mich ernsthaft diese
Discde-Benachrichtigungen ausschalten
lassen Okay, so funktioniert
es gerade, und wenn du dann weglaufst, funktionieren
die Animationen korrekt Damit das
funktioniert, müssen
Sie genau
das tun. Wenn du im
Nahkampfgegner anfängst, wirst
du
es so organisieren, dass ich gleich
danach richtig hineinzoomen Gleich nach
der Entfernungsprüfung zweigen
wir ab und überprüfen, ob die Angriffsbedingung Puls ist Er wird die Bewegung
fortsetzen Dadurch soll gewährleistet werden
, dass es sich erst
bewegt , nachdem die Angriffsanimation in vier Schritten abgespielt
wurde. Sie als Nächstes sicher, dass es natürlich den Zweig Normal
gibt, der angreift. Beachten Sie nun, dass am Ende des Animationscodes für den
Angriff rechts die Option I attackieren
auf Ja und der CSWing-Angriff auf Ja gesetzt
ist Darüber hinaus fügen
Sie jetzt einen einfachen Reset-Angriffsstatus Wir beginnen mit
einem benutzerdefinierten Ereignis namens Attack Stat Reset. Und innerhalb dessen
setzt es seinen Angriffswert und der CSWING-Angriff wird
ebenfalls wieder auf Aus gesetzt Und das ist genau innerhalb des Bauplans
des Nahkampfgegners. Und dann innerhalb der
Animationsquelle, okay? Gehen Sie zur
Angriffsanimation und fügen Sie am Ende eine Benachrichtigung
hinzu, die
als Attack State Reset bezeichnet wird. Sobald diese Benachrichtigung erfolgt
ist, wird diese
Benachrichtigung natürlich ganz am Ende
der Animation, ganz
am Ende, eingerichtet . Nachdem Sie diese Benachrichtigung eingerichtet haben, gehen Sie zum
Animationsentwurf für den Nahkampfgegner Und
fügen Sie unter „Benachrichtigung über das Zurücksetzen
des Angriffsstatus“ den Eintrag Empfangen und „Benachrichtigung über Zurücksetzen des
Angriffsstatus“ hinzu, sodass die Funktion zum Zurücksetzen des
Angriffsstatus aufgerufen wird Und wenn du das
alles eingerichtet hast und der Feind
jetzt
auf den Spieler
zukommt, kann er angreifen, aber der Spieler
kann weglaufen. Okay. Nun, im nächsten Video werden
wir
eine einfache Änderung vornehmen,
denn jetzt kann der
Spieler einfach
vorwärts gehen denn jetzt kann der
Spieler einfach
vorwärts und er
kann es nicht mehr, wie du siehst,
der Spieler kann von hier aus keinen Schaden mehr erleiden und der Feind
dreht sich erst
um, und der Feind
dreht sich erst wenn der Spieler
eine bestimmte Entfernung zurückgelegt hat. Wir wollen es so anpassen, dass der gegnerische Charakter
immer in die Richtung des
Spielers schaut. Okay? Bum, nein, lass uns das machen. Okay, das ist gut. Lass uns das machen. Kleine
Anpassung in der nächsten
71. 69 Den Spieler davon abhalten, die KI zu durchlaufen: Ordnung, also
wollen wir verhindern, dass der Spieler einfach alles
hinterherjagt,
indem er durch unsere Feinde rennt Eine einfache Möglichkeit, das zu tun, besteht darin, dass die Kapselkollision
derzeit auf die Kollisions-Voreinstellung von
Pawn eingestellt ist derzeit auf die Kollisions-Voreinstellung von
Pawn eingestellt Wir können es im Grunde so einrichten
, dass es so einfach ist, die gesamte dynamische Kompilierung zu
blockieren, sodass
das Level-Layout nicht gestört wird Stellen Sie sicher, dass das tatsächlich vor Ort sein
muss. Ich mag seine Position nicht
, wenn es draußen oder dort ist. Jetzt kann der Spieler also nicht einfach mit einem
Bulldozer durch den Feind fahren, muss
tatsächlich drüber springen Aber jetzt, mit nur dieser Änderung, wählen
wir den Charakter aus Okay, das ist unser Held. Wähle die
Bewegung seines Charakters, wähle Springen. Derzeit ist die
Sprung-Z-Geschwindigkeit auf 840 eingestellt. Wir werden diesen Wert auf 900
erhöhen. Okay. Lass uns einen kurzen Check machen. Ja, das ist dämlich. 909.000
Zentimeter/Sekunde ist nicht
das , was wir wollten. Lass uns sehen. Lassen Sie uns das auf
9 Meter/Sekunde einstellen. Manchmal ändert Unreal
Engine, manchmal Unreal Engine
die Zahlen auf eine Weise, die für mich
keinen Sinn ergibt Es gab bessere
Abläufe, nur eine Variable. Aber wie dem auch sei, jetzt sind wir in der
Lage, über den Feind zu springen, aber wir können uns nicht einfach durch
Bulldozer
durch den Feind Okay? Das
wurde irgendwie wild. Das ist jetzt
behoben, wir können weitermachen
72. 70 KI des Nahkampfgegners Nerfing: Ordnung.
Im aktuellen Zustand haben
wir also einen einfachen Nahkampffeind , der den Spieler angreift Okay, es kommt und
greift den Spieler an. Was ziemlich vernünftig ist.
Okay. Das ist cool. Beachten Sie jedoch, dass
jedes Mal, wenn
es angreift, es
den Spieler sofort wieder verfolgt Wir wollen Dinge in
die KI einbauen , nachdem sie etwas
getan hat, sie ein wenig langsamer werden
lassen und
ihre nächste Aktion hinauszögern, um dem Spieler etwas
mehr Zeit
zum ihre nächste Aktion hinauszögern, um Reagieren zu
geben Gehen wir also auf
den Nahkampfgegner ein, und wir
werden jetzt
viel mehr von seinen Fähigkeiten trennen viel mehr von seinen Fähigkeiten Zunächst einmal ist Clear sichtbar. Diese Saite,
wir werden sie loswerden. Wir brauchen sie derzeit nicht. Und das nächste, was
wir
tun werden, ist innerhalb des Levels. Wir werden die
Sichtweite verringern, also wird das viel übersichtlicher
sein Also wähle ich die
Spielererkennung aus. Und ich werde
seine Erkennungsreichweite herabsetzen. Derzeit ist ein
Standortradius von 1.000 eingestellt. Ich werde
die Erkennungsreichweite verringern, ihren Sichtradius auf 600 reduzieren Okay. Nur um vieles von dem, was sonst noch passiert,
ein bisschen sichtbar zu machen. Okay? Also
muss der Spieler jetzt innerhalb von 600 Einheiten sein. Das nächste NaF, das ihm gegeben
wird,
ist, dass wir seine Bewegungsgeschwindigkeit bestimmen, zur Charakterbewegung übergehen Und dann achte auf Geschwindigkeit. Die maximale Arbeitsgeschwindigkeit
liegt derzeit also bei 600. Wir werden
es auf 450 reduzieren. Okay. Also vier 50
Zentimeter/Sekunde, was bedeutet, dass es jetzt
deutlich langsamer ist als der Spieler Es erkennt also den Spieler, aber der Spieler kann leicht drüber
springen und weglaufen Beachten Sie, dass der Spieler im
Begriff ist, wegzulaufen. Jetzt kommt es
auf den Spieler zu, aber wir haben es verlangsamt Das sind grundlegende
Abschwächungen bei der Vereinfachung, okay, weil du nie willst, dass
das, du weißt schon, dein Feind übermäßig
schwer macht Beachten Sie also, dass er in Reichweite kommen
muss, dann greift er
an, muss in Reichweite kommen,
dann greift er an, aber der
Spieler kann Der Spieler kann weglaufen, bevor seine Angriffsanimation abgespielt
wurde. Okay? Also das sind nur
ein paar grundlegende Nerven. Also die Bewegungsgeschwindigkeit nervt
und die Animation ist schon langsam genug, dass der
Spieler dem wirklich
vernünftig entgegenwirken könnte , indem
er wegläuft. Okay? Das ist nur, um
den Spielern einen kleinen Buff zu geben Und jetzt, wo das erledigt ist, gehen
wir rein und machen es so, dass jedes Mal, wenn der Spieler den Feind
angreift, der Feind sofort betäubt
wird, sodass der Spieler einfach
seinen Dreifachschwertangriff ausführen und den Feind zu Tode
sonnen kann seinen Dreifachschwertangriff ausführen und den Feind zu Tode
sonnen Lassen Sie uns darauf eingehen.
73. 71 Todesanimation für KI und einige Logiktheoriebildungen: Jetzt, wo wir ein paar
grundlegende Dinge am Laufen haben, wollen
wir zunächst einmal:
Wenn der Spieler dem Feind
Schaden zufügt, wollen
wir nicht, wollen
wir nicht Es ist im Grunde ein bisschen genug. Wir möchten, dass sie
ein bisschen
Heck eingeben , damit der Spieler seine Kombo
tatsächlich ausspielen kann. Jetzt wissen wir, dass
wir, um das zu tun , unseren kleinen
Skelonen da drüben eine
Hitzestater-Animation
hinzufügen müssen unseren kleinen
Skelonen Gehen wir also in die Kunst über unseren
Nahkampffeind, und wir wollen nach Skeleton Dead suchen Okay, und Skeleton hat zugeschlagen. Nun, wenn wir uns Skeleton
Heat ansehen, ist
es im Grunde
voreingestellt mit, oh, es hat ein
bisschen Hitzeschaden erlitten, und dann geht es wieder in den Leerlauf. Es ist eine einfache IT-Animation. Okay. Also lass uns wieder hierher kommen. Also da ist das Skelett getroffen
und dann Skelett tot. Das Skelett
fällt um. Okay, du kannst es dort sehen. Das Skelett fällt quasi um. Nur der Logik halber werden
wir
für diese Animation nur Skeleton Dead verwenden . Okay? Also wählen wir das Skelett tot aus und richten
ihm Sprite-Aktionen Wir wollen
alle Sprites extrahieren. Jetzt können Sie sehen, dass alle Sprites hier
sind, wenn wir die Ansicht vergrößern. Es gibt mehrere Sprites. Aber lassen Sie uns es aus dem Auto nehmen
und es wieder ins Grid einfügen. Jetzt sind es eins, zwei, drei, vier, fünf, sechs,
sieben, acht, neun, zehn, 11, 12, 13, 14, 15 verschiedene Animationen. Also müssen wir
die Zellenbreite durch 15 teilen. Also lass uns ganz schnell unseren
Taschenrechner öffnen. Also 495/15 ist 33. Also machen wir die Zellenbreite 33 Pixel und extrahieren
diese Sprites Und dann werden wir
ein Flipbook erstellen und
es nennen Wir werden es tot nennen. Wir nennen es einfach tot, okay? Das ist also die aktuelle
tote Animation. Du kannst es dort sehen, 15
Filme pro Sekunde, okay? Das ist die Animation.
Okay? Das ist cool. Also lass mich innehalten und Bild für Bild
durchgehen. Also kannst du sehen, wie es
anfängt, weiß zu werden, okay? Es wird weiß. Dann fällt es ein
bisschen zurück und dann kollabiert es. Hier kommt also
die Logik ins Spiel. Wir werden es so einrichten
, dass
wir gegen Frame sechs, bevor es anfängt, auseinanderzufallen bevor es anfängt, auseinanderzufallen, eine grundlegende
Überprüfung des Zustands durchführen werden. Wenn der Zustand gut ist, geht
es sofort
wieder in den Leerlauf, okay? Wenn die Gesundheit jedoch
Null ist oder besser gesagt
Null oder weniger als Null, wird
sie auseinanderfallen, und das wäre das Ende
unseres netten kleinen
feindlichen Nahkampfskeletts Okay? Also haben wir jetzt diese
Animation. Lass es uns zuerst spielen. Es ist also so eingestellt, dass es sich mit
15 Bildern pro Sekunde bewegt. Aber ich denke, wir
müssen es
etwas verlangsamen oder auf
etwa 20 Bilder pro Sekunde verlangsamen. Ah, das beschleunigt es. Entschuldigt. Verlangsamen wir es auf etwa zehn
Bilder pro Sekunde Es hat also einen Schlag erlitten. Es wird getroffen.
Es wird getroffen. Okay. Setzen wir es zurück auf 15. Wir werden später zurückkehren, je nachdem
, wie die Dinge aussehen und sich anfühlen. Nachdem wir diese Animation
eingerichtet haben, gehen
wir zurück zu
unserer Animationsquelle, und wir wollen eine
neue Animationssequenz hinzufügen, und wir werden die
Animationssequenz nennen, Dad. Wir werden es behalten, weißt du, die Namen
bereinigen ,
die Namen sauber halten. Animationsdaten angeht, suchen
wir nach
Dead on Flipbook Das ist also die Animation der
Untoten. Schau dir das an Ziemlich cool. Nun,
da wir mit der Einrichtung der Animation hier fertig sind, gehen
wir zurück. Gehen wir zurück und schauen
uns das kurz an. Gehen wir zurück zu
unserem Nahkampffeind. Okay, wir werden hier wieder
nachdenken, Animationsdiagramm. Schauen wir uns den Animationsentwurf
für den Nahkampfgegner Wählen Sie den Nahkampffeind aus, und wir wollen jetzt
einen neuen Animationsstatus haben Und dieser Animationsstatus
wird Dad heißen. Verkleinern. Verkleinern,
zurück gehen, den Namen ändern. Es heißt tot. Und wir
werden es hierher schleppen. Also vom Leerlauf zum X-Swing-Angriff können
wir sofort in
den Tod übergehen, okay? Und tot, wir werden den
Animationstyp tot abspielen lassen, also fängt er an, die tote Animation
abzuspielen. Okay,
genau das wird es tun. Lass uns schnell kompilieren. Jetzt ist es mit nichts verknüpft. Als Nächstes
werden wir es verknüpfen und
so einrichten, dass es jederzeit
abgespielt wird , wenn der Feind es nimmt
74. 72 Die KI-Gesundheitsleiste sichtbar machen und einige Anpassungen vor dem nächsten Schritt: Ordnung. Jetzt generalisierter
Zeitreisen kann der Spieler dank
generalisierter
Zeitreisen
den Angriffspuppen angreifen und seine Gesundheit wird
irgendwann Null erreichen Okay? Es ist noch nicht
bereit zu sterben, aber wir sind in der Lage,
den Angriff anzugreifen, anstatt den Feind
anzugreifen und
seine Gesundheit zu senken. Ein paar Dinge
wurden geändert. Erstens,
ändere für deinen
Schwertangriff auf den Spieler seinen
Grundschaden von etwa 25 auf 40, sodass er mehr Schaden anrichtet. Und dann für die
Axt Swing it Box,
reduziere den Schaden auf eins Das ist nur, damit wir ein paar Tests durchführen
können ohne dass
der Spieler superschnell ermordet wird Das ist so ziemlich alles, was dafür getan werden
muss. Gehen Sie als Nächstes
zum Nahkampffeind und
erstellen Sie einen neuen Kommentar Dieser Kommentar wird Heads stater
heißen, wenn er
Schaden erleidet, aber wir wollen
sichergehen, dass wir ihn so einrichten , dass der Feind tatsächlich sichtbaren Schaden
erleidet, weil möchte, dass seine Gesundheit
angezeigt wird Damit der Gesundheitsschaden angezeigt wird,
kehren wir als Erstes zum Widget zurück,
gehen zurück zum Widget und
stellen es so ein, dass es sichtbar Stellen Sie es so ein, dass es sichtbar ist (wahr). Sobald das erledigt ist, müssen Sie als Nächstes diese Pläne
organisieren und einrichten In diesem Kommentar beginnen wir
mit einem Ereignis, einem Schaden, und dann
trifft eine Variable auf Stan und wir werden eine grundlegende Druckfolge erstellen, in der angegeben wird, ob
der Schaden angerichtet wurde Und dann werden wir eine weitere Zeichenkette
erstellen, die
den Schaden eingibt , anstatt die Gesundheit des Feindes einzutippen
. Wenn wir jetzt zurückgehen, fest, dass Sie hier Dammi Health
sehen Um das zu enthüllen, gehen Sie zu My Blueprint und dort gibt es eine
Einstellung und zeigen Sie dann geerbte Variablen an,
weil die Variable DamiHealth von der übergeordneten Klasse geerbt
wird. Jetzt verwenden wir hier häufig die Dami-Gesundheit
. Zunächst
erhalten wir die Dammi-Gesundheit
und ziehen den Schadensbetrag von
dem Schaden ab
, und ziehen den das Ereignis erlitten Also subtrahieren wir es, indem wir einfach Dammi Health gesetzt
haben. Es findet eine Subtraktion statt. Das ist unsere neue verdammte Gesundheit. Sobald wir damit fertig sind, kommen
wir rüber und holen das Widget vom
Nahkampfgegner und ziehen es raus Und dann holen wir uns das
Widget aus dem Inneren, was natürlich die
verdammte Gesundheitsleiste ist Und sobald wir es auf den
Dammi-Gesundheitsbalken hier drüben
als Dammi-Gesundheitsbalken geworfen haben , werden
wir natürlich den Dammi
Health-Fortschrittsbalken
anvisieren, und wir werden es
auf den Prozentsatz von
100 setzen , indem wir das festgelegte Prozent
vom Dammi
Health-Fortschrittsbalken machen , und wir werden DamiHealth geteilt durch 100 verwenden, und das ist die
Gesundheit, die wir haben. Und mit all diesen Einstellungen wird der
Spieler in der Lage sein, dem Feind
Schaden zuzufügen , und wir können sehen, wie die
Gesundheitsleiste sinkt. all das eingerichtet ist,
wollen wir nun mit dem Hinzufügen
der Hit-Stern-Logik fortfahren.
75. 73 Melee-Feindhitstun und Death in einem: Nun, um den
Kopfstatus im Spiel hinzuzufügen:
Wenn wir uns im Bauplan des
Nahkampf-Feindes befinden, stellen wir
fest, dass wir bei jedem Schaden diese Variable
namens Heads Stan eingerichtet haben, und
wir haben sie so eingerichtet, und
wir haben sie so eingerichtet Jetzt, wo wir dieses Setup
haben, gehen
wir zum
Me Enemy Animation-Blueprint
und wir werden ihn so einrichten, dass er vom Axe-Swing-Angriff bis dass er vom Axe-Swing-Angriff zur Dead-Animation übergehen kann,
und alles, was wir brauchen, ist AsmLeeenMy. Wir wollen überprüfen, ob Headstan Get in Treffern ist. Wir wollen es auf Augenhöhe überprüfen. Okay. Wir haben
das mehrmals gemacht. Das sollte jetzt einfach für dich sein. Und solange Treffer gleich positiv
sind, kann
es vom Angriff
zurück zur,
du weißt schon, zum Abspielen
der Toten-Animation übergehen. Also lass uns das machen. Also greife
ich dich an. Also macht es jetzt
die tote Animation. Beachten Sie, wenn es einmal getroffen wird, greift
es an, es greift an. Aber sobald es einmal getroffen wird, spielt
es die tote Animation ab. Okay? Das ist cool.
Das ist jetzt völlig in Ordnung. Kehren wir jedoch zum
Animationsentwurf zurück. Wir möchten auch,
dass es von
der toten Animation
direkt wieder in den Leerlauf übergehen kann Aber wir werden
es so einrichten. Nun der Grund, warum
es von X schwingt Okay,
gleich wieder tot Und der Grund, warum
es auch in der Lage
sein sollte , vom Leerlauf zum Stillstand zu wechseln, werden
wir später einrichten, ist
, dass sobald es
in Clearack-Bereich ist, anfängt, den
X-Schwung zu machen Aber wenn wir darauf klicken, fängt es an, die tote Animation
abzuspielen, und diese Animation ist die
Animation, in der sie zusammenbricht Aber wir wollen nicht, dass
es immer
die tote Animation abspielt , wenn sie noch nicht tot
ist Also werden wir herkommen. Sehen wir uns eins, zwei, drei an, kurz bevor
es zusammenbricht Gegen Ende
des fünften Frames werden
wir eine neue Benachrichtigung
erstellen Also werden wir eine Benachrichtigung hinzufügen. Wir werden eine neue Benachrichtigung hinzufügen und sie
Meleem Heads Stater nennen Okay, wir nennen
es einfach Nahkampf-Feind-Kopfstand. Und das ist alles, was wir
es nennen werden. Das ist der Notifier. Das machen wir jetzt für
mich, Enemy Heads Stater,
okay ? Da drüben ist es geprüft Gehen wir jetzt in den Staat und Kenntnis, dass Enemy
Headstand
hier im Bauplan informiert hier im Bauplan Und was wir tun wollen, ist, uns als
Feind hereinzuziehen. Als Nächstes
wollen wir nun eine Funktion
erstellen. Und was diese Funktion sein
wird, ist, dass es die DST-Funktion für Nahkämpfer
sein wird die DST-Funktion für Nahkämpfer
sein Okay? Nun zurück zum
Nahkampf-Enemy Blueprint, ich füge ein Kommentarfeld hinzu, und dann nennen wir das Hitter Help-Check.
Du kannst es nennen Ehrlich gesagt, du kannst
das auf verschiedene Arten ändern. Mal sehen, ich nenne das
Melanem-Headstart kein Problem. Nennen wir es meinen
Heads-Gesundheitscheck. Also jedes Mal, wenn der Spieler Kopf hat, wird
er das durchführen,
eher die EM ist Headstan, sie führt diesen Check durch. Dann werden wir ein neues Event
erstellen und es wird
ein benutzerdefiniertes Event sein, okay? Um sicherzugehen, dass die
Namen identisch sind, heißt
es Mele ENM Hit
Stern. Wir werden es nennen. Wir werden es hier
den Namen nennen. Mele N hat Stern getroffen, also haben wir jetzt die Nahkampf-Kontrolle der Gegner eher
hier drüben, dieses Nun, was wollen wir
in diesem benutzerdefinierten Event machen, richtig? Was wir also tun wollen, ist,
dass wir die verdammte Gesundheit in Mitleidenschaft ziehen
wollen Okay? Also, wir wollen verdammt nochmal gesund werden und eine Grunduntersuchung machen, okay? Wir wollen also
sehen, dass wir weniger als oder gleich
sehen wollen weniger als oder gleich
sehen Und ist es kleiner oder
gleich Null, okay? Und dann werden
wir einen einfachen Zweig machen. Ein sehr einfacher Zweig. Wenn nun der Zustand
des Dummys kleiner
oder gleich Null ist, wollen
wir
ihn so einstellen, dass wir die
Hetster-Variableneigenschaft ändern Okay? Wenn also die
Gesundheit des Feindes unter Null oder gleich Null ist,
bedeutet das, dass der Nahkampfgegner tatsächlich tot
ist Also, wenn es wahr
ist, es ist einfach, wir lassen
es so wie es
ist, wir lassen es einfach so wie es ist Okay? Wenn es jedoch falsch ist , werden wir versuchen, den Kopfstand zu erhöhen Okay? Oh, ich tippe nicht. Stellen Sie den Kopfstand im
Kopfstand auf Aus. Der Grund, warum
wir das tun, ist
, dass wir
den Headstater ausschalten wollen , weil wir wollen,
dass der Feind aus der Headstater-Animation herauskommt Jetzt wird es derzeit nicht funktionieren,
weil ich merke, dass
es im Moment noch nicht einsatzbereit Ich habe sie geschlagen, sobald sie
noch im Kopfstand sind. Damit es
funktioniert, müssen
wir zunächst die Veranstaltung hier einrichten Wir wollen das feindliche Headstan Benachrichtigung innerhalb
des Animations-Blueprints
einrichten des Animations-Blueprints Perfekt. Jetzt ist es in der Notify
eingerichtet. Es sollte immer noch nicht funktionieren,
aber ich möchte sichergehen , dass
es auch bei dem Ereignis korrekt eingerichtet ist. Okay. Als Nächstes wollen
wir zurück zum Animations-Blueprint
in den Animationsgraphen gehen
, und wir wollen in der Lage sein von
XSwing zur toten Animation überzugehen,
wir
wollen auch
vom Leerlauf zur toten Animation übergehen können wollen auch
vom Leerlauf zur toten Animation übergehen vom Leerlauf zur toten Ich werde einfach
den exakt gleichen Code aus
dem AXSing kopieren , weil es dieselbe Logik hat,
wenn es sich im Headstand befindet, und dann doppelklicken wir auf die tote Animation
und auf Play Dead, wir werden es so einstellen,
dass es nicht wiederholt wird. Mit anderen Worten, es ist eine
Animation, die nur einmal abgespielt wird. Okay? Jetzt läuft es also nicht mehr. Jetzt, da es sich
nicht mehr im Loop-Modus befindet, kann ich in einem Fall
von Dead Back in
Idle wechseln .
Wenn Hitter gleich Off ist, geht
es direkt
zurück in den Und wenn Hitter gleich Off ist, kann
es direkt zurück gehen Gehen wir hier rüber und
greifen an, wenn es ausgeschaltet ist. Okay. Es stehen also beide
Routen zur Verfügung. Also lass uns jetzt spielen.
Beachten Sie, dass wir es jetzt haben, lassen Sie
mich das noch einmal machen. Jetzt kann es angreifen. Wenn ich es treffe, bekommt es einen
Startschuss, aber es
greift wieder an und kann dann wieder hinter
dem Spieler her sein. Köpfe, und dann steht es. Aber dieses Mal spielt es die Animation
ab. Ich hoffe, das ergibt Sinn. Ich habe mein Bestes getan, um die gesamte Logik zu
beschreiben. Bitte, wenn nichts
Sinn ergibt, gehen Sie zurück und schauen Sie sich das Video erneut Ich möchte, dass das richtig
funktioniert, aber
darüber hinaus möchte ich auch, dass es viel Sinn
macht Also, der Feind
ist jetzt tötbar. Also eins, es ist Kopfstand, eins, zwei, drei, jetzt ist es Kopfstand und jetzt ist es tot Wir haben es richtig eingerichtet
, um tatsächlich richtig zu sterben. Vor diesem Hintergrund wollen
wir nicht, dass diese Cops ewig rumsitzen. Okay? Also werden wir es innerhalb des
Nahkampfgegners so einrichten , dass, wenn dieser Zustand der Dammi-Gesundheit gleich oder kleiner
als Null ist, dieser Zustand der Dammi-Gesundheit
gleich oder kleiner
als Null ist,
wir auch
eine Verzögerung von 0,2
Sekunden haben wollen , ich denke, das ist völlig in Ordnung,
aber ich denke, das ist ein bisschen zu Aber dann werden wir einfach den Schauspieler
zerstören, und das wird sein Ich sein Also, lasst uns das schnell kompilieren. Gut kompilieren. Nein,
nein, nein, kompilieren. Lassen Sie uns zunächst
alles speichern und sicherstellen, dass alle Änderungen ordnungsgemäß
gespeichert wurden. Das ist kompiliert. Also hat es wieder zugeschlagen, tot. Und dann, bumm, ist es von der Welt
verschwunden. Und das ist
insgesamt eine sehr einfache Art, es so
einzurichten , dass der Feind
Headstan betreten kann, wenn er Schaden erleidet Okay, aber greifen Sie wieder an, aber es kann immer noch in Head Stan
eindringen, und jetzt ist es tot Mit diesem Setup, diesem sehr guten System
für Headstart, können
wir jetzt einfach weitermachen
und weitere Anpassungen vornehmen Es gibt ein paar verschiedene
Richtungen, die Sie einschlagen können. Für den Anfang können wir jetzt genau dasselbe für
den Spielercharakter tun genau dasselbe für
den und ihn in Headster
einrichten Wir können genau
dasselbe für andere Feinde tun, da die Logik
jetzt für Sie Sinn machen sollte Lassen Sie uns mit diesem Setup dazu übergehen unserem Spiel mehr Code
hinzuzufügen. Und als Nächstes werden wir einige Aufräumarbeiten
und Anpassungen
vornehmen, kurz
alles mit dem Feind überprüfen, einige der Zahlen
anpassen und dann zu einem anderen
Feindtyp für dich übergehen
76. 74 Den angeordneten Feind einrichten: Nun, um schnell damit
anzufangen,
einen netten Feind aus der Ferne in
unserem Spiel zu haben einen netten Feind aus der Ferne in , denn wir haben hier
den Nahkampffeind Aber im Moment
brauchen wir dich nicht,
also können wir ihn einfach, du weißt schon, wir können ihn in der
Welt lassen, um ihn später erneut zu besuchen, aber vorerst löschen wir ihn
einfach Wir brauchen es momentan nicht. Aber wir werden
reingehen und
einen brandneuen Ordner erstellen, den Ordner Ranged
Enemy
nennen und
zwei Ordner darin erstellen, einer heißt Animation,
der andere heißt Art Nun, innerhalb der Kunst werden
Sie
einige grundlegende Sprites haben, werden
Sie
einige grundlegende Sprites haben die Ihnen
in diesem Projekt zur Verfügung gestellt
werden, sodass Sie sie zum Lernen
verwenden können Du kannst auch
deine eigene Animation verwenden wenn du ein sehr guter Künstler bist, und wir können mit der
Erstellung des Fernkampf-Feindes beginnen Sobald Sie diese
beiden Ordner eingerichtet haben, wir uns als Nächstes werden
wir uns als Nächstes mit
den Charakteren befassen Wir gehen zurück zum Angriff,
verdammt, und als Nächstes wollen
wir einen Plan für Kinder
erstellen, okay Und wir werden den Plan
Fernkampfeind nennen . Okay? Wir holen uns das kleine Kind. Wir werden es schneiden. Und
ich möchte es im Grunde bewegen. Mal sehen, lass uns
move benutzen, wollen move benutzen. Wir werden
herkommen, wir holen es, und wir werden es in den
Fernkampfeind ziehen und wollen dorthin
ziehen, wollen es bewegen Jetzt ist unser
Feind aus der Ferne also hier drüben. Wenn ich jetzt
auf den Fernkampffeind doppelklicke, lass mich
ihn jetzt hierher bringen Hier haben wir unseren netten
kleinen Fernkampffeind quasi startklar Als Nächstes werden
wir natürlich den Würfel
auswählen, nach dem wir nach einer Kollision suchen werden Wir werden ihn auf keine Kollision einstellen. Und was die Sichtbarkeit angeht, werden
wir sie unsichtbar machen,
weil wir
diese Ube wirklich überhaupt nicht brauchen .
Aber hier sind wir. Es gibt eine grundlegende und
einfache Gesundheitsleiste, und das Ereignisdiagramm ist
derzeit völlig leer. Das ist perfekt
für uns, um anzufangen. Nun, da wir das haben, wollen wir weitermachen und
die Basisanimation hinzufügen ,
damit wir tatsächlich
etwas zum Anschauen haben , wenn
wir uns unser Arrangement
77. 75 Einfache Idle-Animation für den angreiften Feind: Hinzufügen der
grundlegenden Leerlaufanimation für
den Feind aus der Ferne
wird also den Feind aus der Ferne
wird sehr ähnlich
sein, wie wir es mit
dem Nahkampfgegner gemacht haben Jetzt, nur um sicherzugehen, dass
wir alles richtig machen, werde
ich
den Plan für
Nahkampfgegner öffnen Nun, ganz ähnlich:
Das allererste, was
wir tun werden, ist, einen Artikel aus Papier für das Flipbook einzufügen einen Artikel aus Papier für das Flipbook Also fügen wir einfach hinzu und wir
wollen ein Flipbook aus Papier. Also ist das
Flipbook aus Papier jetzt hinzugefügt. Jetzt, wo das hinzugefügt wurde, okay. Genau so wie
im Nahkampffeind, okay? Jetzt, wo wir das Flipbook aus
Papier hinzugefügt haben, werden
wir als Nächstes eine Animation hinzufügen Also werden wir uns der Kunst zuwenden. Nein, nicht im Nahkampffeind. Gehen wir zu
Arrangierter Feind, Kunst, und wir haben ein paar
verschiedene Animationen, aber wir wollen die Idle-Animation Also doppelklicken. Sie können
feststellen, dass es ein, zwei, drei oder
fünf, sechs Sprites Okay. Also im Grunde wollen wir sicherstellen, dass wir diese Sprites
extrahieren Nun werden wir zunächst Textureinstellungen
für Paper Two D anwenden Lassen Sie uns
diese eigentlich einfach auf alles anwenden. Okay. Jetzt gehe
ich aus dem Leerlauf zu Sprite Actions und wähle Sprite extrahieren aus Lassen Sie mich das noch einmal durchgehen. Lassen Sie mich zunächst
schnell alles speichern. Okay. Also aus dem Leerlauf, einfach mit der rechten Maustaste klicken und
dann zu Sprite Actions gehen und Sprite extrahieren, wie es schon mehrfach gemacht
wurde Beachten Sie nun, dass die echte Engine reinkommen und das Sprite
manuell extrahieren
möchte Das werden wir nicht tun. Lass
es uns als Grid einrichten. Jetzt wissen wir, dass es eins, zwei, drei, vier, fünf, sechs, Sprites Okay. Also, wir
werden einfach berechnen, dass es 750/6 ist, was sie 125 macht. Also machen wir die Zellenbreite
auf 125. Also, was die Zellenbreite angeht, setzen
wir sie auf 125 mal 125. Das siehst du. Das ist ziemlich cool, oder? Okay. Also, jetzt, wo wir
das haben, lassen Sie uns das extrahieren. Jetzt, wo all unsere
Sprites extrahiert sind, erstellen
wir einfach ein
Flipbook und nennen
es ranged M underscore Das ist im Grunde alles, was
wir es nennen werden. Schauen wir uns nun die Animation
im Leerlauf an. Es ist eine ziemlich coole, nette
und einfache Leerlaufanimation. mit diesem Animations-Setup wir mit diesem Animations-Setup zurück zum Plan des
Fernkampf-Feindes Unser Papier-Flipbook ist da und wir
ändern das
Quell-Flipbook einfach in die Quell-Flipbook Da ist es. Da ist es also. Wenn wir jetzt
in die Welt zurückkehren,
direkt neben unserem Spieler, fügen
wir einfach einen Feind aus
der Ferne hinzu Stellen Sie sicher, dass er auf Null gesetzt
ist. Okay. Und nun, da drüben haben wir
unsere kleine feindliche
Fernkampf-Geisterin Sie tut nichts, aber sie existiert gerade auf
der Welt Lassen Sie uns jetzt einige Anpassungen vornehmen. Also zurück zum Fernkampfeind. Und was wir dann tun werden, ist, mal sehen, mit dem Nahkampfgegner, wir haben die Skala mit dem Feind Lassen Sie uns mit dem Feind aus der Ferne zunächst die Skala
vier nehmen Das ist sehr groß, sehr groß. Auf einer Skala von vier ist es eigentlich gar nicht mehr auf
der Welt. Was wir also tun werden, ist,
zuerst die Position des
Papier-Klappbuches anzuheben und damit aufzuhören. Jetzt, wo wir
es angehoben haben, kompilieren. Jetzt ist es immer noch ziemlich groß. Lass es uns auf zwei reduzieren. Und dann
die Position der
schwebenden Geisterdame runterfallen .
Und lass uns jetzt sehen Okay, das ist nicht schlecht. Mit zwei sieht es
ziemlich vernünftig aus, fühlt sich
aber immer noch ein
bisschen zu klein an. Schauen wir uns 2,52 0,5 an, es sieht ungefähr richtig Es sieht ungefähr richtig aus. Und jetzt merke, wenn wir drinnen
stehen, blättert es ab. Was wir tun können, ist einfach den Fernkampffeind
auszuwählen. Und auf der Achse von, sehen wir mal, auf der Y-Achse, können
wir ihn einfach so bewegen,
wo zehn Einheiten Also verschieben wir es auf, sagen
wir, minus zehn. Jetzt ist es also im Hintergrund. Sie befinden sich also nicht auf der
exakten Pixelebene, und Sie können
sie grundsätzlich anpassen, weil
sie bei minus zehn nicht mehr flackern Technisch gesehen sollte es auch bei
negativer Eins
nicht mehr flackern , da diese
Sprites ein Pixel dick sind Okay? So werden Sie also jede Pixelüberlappung
loswerden. Das ist eine ziemlich
vereinfachte Methode. Okay. Aber jetzt haben wir unser arrangiertes NEM mit einer
einfachen Leerlaufanimation. Jetzt fügen wir ein einfaches Projektil hinzu, das der Feind aus der Ferne auf den Spieler
abfeuert Machen wir das im nächsten Video, und dann gehen wir
noch weiter, um
mehr Animationen und Leben in den Feind aus der Ferne zu
bringen . Lass uns gehen
78. 76 Erzeuge ein Projektil, das beim Start an den Spielerstandort geht: Okay, jetzt gibt es unseren
Fernkampffeind und du kannst ihn
treffen und er erleidet Schaden, aber er kann nicht einfach nur Er muss dem Spieler Schaden
zufügen. Um also sicherzustellen, dass es dem Spieler
Schaden zufügt, erstellen
wir ein Objekt
, das den Standort
des Spielers verfolgen und dem Spieler Schaden
zufügen kann . nun innerhalb des Ordners
Entfernte Feinde, ähnlich wie wir es überall
gemacht haben, Lassen Sie uns nun innerhalb des Ordners
Entfernte Feinde,
ähnlich wie wir es überall
gemacht haben, einen Ordner mit dem
Namen Damage it Box erstellen, und
darin fügen wir einen Blueprint Begebt euch zum Feind auf Distanz. Das ist momentan der
Fernkampffeind. Wir erstellen einen neuen Ordner und wollen
ihn Damage it Box nennen In diesem Ordner, okay, in diesem Ordner werden
wir
eine neue Blueprint-Klasse erstellen, und wir wollen nur einen Blueprint-Akteur
erstellen Und wir werden das feindliche Projektil
nennen. So werden
wir es nicht nennen. Und dann lass uns schnell speichern. Also, im Inneren des
feindlichen Projektils werden wir
nur etwas hinzufügen
, lassen Sie uns eine
schnelle Kugel hinzufügen, okay? Das ist alles, was wir wollen,
diese grundlegende Sphäre. Also lasst uns schnell kompilieren. jetzt von selbst Lassen Sie uns jetzt von selbst das feindliche
Projektil schnell in die Welt werfen Bringen Sie es wahrscheinlich irgendwo rein. Da ist es also. Da drüben ist dieser
große Klecks, okay? Das ist das feindliche Projektil. Wir wollen also
, dass sich der Blob
auf den Spieler zubewegt, okay Damit sich die Kugel also auf den Spieler
zubewegt, gehen
wir in das gegnerische
Projektil und lassen Sie uns in
dessen gehen , lassen Sie uns schnell
in das Ereignisdiagramm gehen Aber bevor wir das tun,
wähle die Kugel aus. Ich wähle Kollision und dann „
Alle Dynamiken überlagern“ aus, sodass ,
du weißt schon, im Grunde
nicht
in die Kugel springen und sie sich im Spieler
bewegen kann ,
ohne den Raum zu blockieren. Okay, mit diesem Setup gehen wir zurück in die Kugel, gehen in ihr Ereignisdiagramm
und lassen Sie uns jetzt damit beginnen, und lassen Sie uns jetzt damit beginnen, sie in Richtung
der Position des Spielers zu bewegen. Okay. Nun, um ihm das
richtige Maß an Bewegung zu geben, fügen
wir ihm zuerst
eine bestimmte Eigenschaft hinzu, und das ist
Projektilbewegung Jetzt haben wir der Kugel also
die Projektilbewegung
hinzugefügt die Projektilbewegung
hinzugefügt Wir können anfangen, mit
ihrer Bewegung zu spielen, und zwar auf nette Art und Weise, wie sie in den Motor
eingebaut Jetzt werden die Dinge
ein bisschen mathematisch, aber ich vertraue darauf, dass es mit Ihrem
Wissen über Unreal Engine Sinn machen wird,
da Sie
es
bis ins Tutorial geschafft haben Sinn machen wird,
da Sie
es
bis Als Erstes müssen
wir
also die müssen Spielers
herausfinden, die Position
des Balls selbst
herausfinden, okay, die Kugel, und versuchen, die Kugel in Richtung
der Position des
Spielers zu bewegen Richtung
der Position des
Spielers Okay? Das ist im Grunde das, was wir tun
wollen, damit es sich auf den Spieler
zubewegt. Das ist also die großartige
Gesamttheorie. Okay. Also als
Erstes werden wir damit beginnen, die Projektilbewegung
einzuführen
und wollen, dass sie da
ist und stellen sicher, dass sie aktiviert ist Okay. Und wir setzen das auf den Event-Start-Play-Knoten. Jetzt
ist der Event-Start-Play-Knoten im Grunde der erste Knoten, der immer dann aufgerufen
wird, wenn
das Objekt im Spiel erscheint Also möchte ich all das zu Beginn des Events erledigen. Nun, das ist alles,
begradigen Sie die Verbindung. Jetzt, wo das erledigt ist, ist
es aktiviert. Wir haben die
Projektilbewegung aktiviert. Als Nächstes
wollen wir die Geschwindigkeit einstellen. Möchte die Geschwindigkeit einstellen. Lass uns im Weltraum sehen
und das war's. Ich möchte die
Geschwindigkeit im lokalen Raum einstellen und feststellen, dass es sich um eine Komponente der
Projektilbewegung handelt Lass mich das holen und hier drüben
hinstellen. Jetzt denke ich, momentan ist
die Geschwindigkeit auf Null, Null
gesetzt. Das ist es, was wir sehen. Lassen Sie uns es zunächst auf eins auf
der X-Achse setzen, kompilieren und sehen, wie
das aussieht. Beachten Sie, dass es abwärts geht. Cool. Okay, also komm zurück
und wir stellen es der Einfachheit halber auf
eins, eins, eins. Okay. Also
versucht es sich zu bewegen und es fällt immer noch
durch die Welt. Okay. Wir müssen
einige größere Anpassungen vornehmen. Nun, wir wollen, dass
diese Geschwindigkeit ist,
wir werden sie nicht beeinflussen und auf die Geschwindigkeit Wir wollen eigentlich, dass sie
einen bestimmten Wert hat, nämlich den Wert
der Entfernung zwischen dem
Spieler und dem Objekt selbst Was wir tun werden, ist den Spielercharakter zu ermitteln. Wir werden ihn besorgen und
wenn wir ihn haben, holen
wir uns den Standort. Okay, wir haben jetzt den Standort des
Spielers. Wir haben ihn. Und dann wollen wir den
Standort des Selbst herausfinden, okay? Also das ist es,
das Ziel selbst zu beachten. Das bedeutet, dass dieser
Ort hier
der Standort des
Projektils selbst ist der Standort des
Projektils selbst Jetzt
wollen wir diese beiden
Orte voneinander
subtrahieren Okay. Also das hier ist im Wesentlichen der Unterschied zwischen diesen beiden
verschiedenen Akteuren. Und genau damit werden wir als Nächstes eine einfache Multiplikation durchführen. Beachten Sie, dass der Multiplikator drei Koordinaten
hat. Das gilt für X, Y und Z, und wir verbinden das Ende dieses Multiplikators mit der
Geschwindigkeit Nehmen wir also an, wir setzen den Multiplikationsfaktor
auf eins, eins und eins, dann bewegt er sich mit einer
Geschwindigkeit von
einer Einheit pro Sekunde auf den Spieler
zu Schauen wir uns an, wie das im
Spiel tatsächlich aussieht. Drücke also im Spiel auf Play. Es bewegt sich jetzt in Richtung des tatsächlichen Standorts des
Spielers. Es funktioniert also wie vorgesehen. Beachten Sie jedoch, dass
es zu weit nach unten geht, das ist eine Sache der Schwerkraft. Um das zu beheben, gehen wir
zurück zum Projektil. Wir wählen die
Projektilbewegung. Und nachdem wir
die
Projektilbewegung ausgewählt haben, wollen wir als Nächstes
nach
der Projektilbewegung, der Schwerkraft, suchen der Projektilbewegung, der Schwerkraft Ähm, wir wollen, dass das
auf Null gesetzt wird,
weil es sich um ein Projektil ohne
Schwerkraft handelt Wenn wir anfangen müssen, die Schwerkraft zu
berücksichtigen, werden
wir
ein Problem haben, okay Die Dinge werden sehr kompliziert
und laufen aus dem Ruder. Also ohne Schwerkraft,
schauen wir uns das mal an. Bum, es
bewegt sich auf den Spieler zu. Jetzt, wo es sich
auf den Spieler zubewegt, lassen wir
es einfach ablenken, wenn mit
dem Spieler in Kontakt kommt, okay? Nun, der einfachste Weg, es
anzuhalten und
nicht bei Kontakt, besteht
darin , es einfach, du weißt schon,
zum Stillstand Jedes Mal, wenn es auf etwas trifft, wird
es zerstört. Also werden wir
einen Destroy-Akteur erschaffen. Okay. Also da ist diese
Destroy-Actor-Komponente. Wir werden es hier drüben einbauen. Natürlich ist das Ziel das
Selbst mit dem Zerstörer. Und dann lassen wir das hier und fügen hinzu, dass wir nach dem
Ereignis beim Projektilstopp suchen Okay. Lass uns sehen, sehen. Um das zu nennen,
muss
ich eigentlich zu Projectile Movement wechseln Es gibt diese Veranstaltung namens
On Projectile Stop. Holen wir uns das schnell. Jetzt steht uns dieses Ereignis
zur Verfügung,
und lassen Sie uns es
kurz vor
dem Destroy-Akteur hinzufügen . Okay. Lass mich diesen Link unterbrechen. Ich glaube nicht, dass das nötig ist. Lass uns einfach schnell testen. Also bei Projektilstopp, das heißt bei jeder Bewegung, Stopp des Projektils Bei jeder Bewegung, wenn das Projektil stoppt
, wird
es zerstört Stopp. Lass uns anfangen. Bum. Okay? Die Bewegung
stoppt also noch nicht, weil sie sich nicht wirklich
mit der des Spielers überschneidet ,
wodurch sie stoppt Jetzt müssen wir einfach eine schnelle Überlappung
hinzufügen. Jetzt, wo wir hier sind, lasst uns reinkommen und sagen:
Okay, wir haben also diese Sphäre. Die Kugel ist gut. Lass uns noch etwas hinzufügen. Fügen wir Kollision hinzu. Fügen wir eine Kugelkollision hinzu. Holen wir uns die eigentliche
Kugel selbst. Eigentlich will ich das
im Standard-Root haben. Das ist also die Kugel. Lasst uns die
Größe dieser Kugel reduzieren. Okay, die Kollision findet also
nur rund um die Kugel statt. Also das ist Sphäre
eins, kein Problem. Bei Kugel eins wollen
wir also ein Ereignis hinzufügen, das sich
am Anfang der Komponente überschneidet. Das ist das Ereignis, das
wir hinzufügen möchten. Und wir wollen, dass sich die Komponenten
am Anfang überschneiden. Wir werden es sofort für den Spieler einsetzen, eher nennen
wir es jetzt Held. Also nennen wir es von Besetzung zu Held. Und das wird der andere Schauspieler
sein, das ist das Objekt
, das es getroffen hat. Und gleich nachdem
es das getan hat, wird
es den Schauspieler zerstören. Jetzt, wo wir das haben,
lassen Sie uns schnell kompilieren. Und sofort
trifft es den Schauspieler. Ich werde sofort zerstört. Das ist cool, und ihm dann etwas Schaden
zuzufügen, ihm etwas Schaden zuzufügen,
zu
bemerken, wie es sofort
zerstört wird , sobald es auf dem
Spielercharakter ist, gut. Um ihm etwas Schaden zuzufügen, müssen wir das nur noch
in die Länge ziehen. Und wir wollen sagen: Hey, etwas Schaden
anrichten, etwas Schaden
aufstauen, was auch immer. Und wir wollen, dass der geschädigte
Schauspieler der Held ist. Und nehmen wir an, dass jedes
Projektil 30 Schaden anrichtet. Okay. Lass uns sie ausarbeiten,
schnell kompilieren und dann auf Play klicken. Schau dir das an. Der Spieler hat gerade
30 Schaden direkt
auf seine Gesundheitsleiste genommen auf seine Gesundheitsleiste , weil er
vom Projektil getroffen wurde Jetzt haben wir also einen
Basisfeind und wir haben ein schönes Projektil
, das dem
Spielercharakter tatsächlich Schaden
zufügen kann dem
Spielercharakter tatsächlich Schaden
zufügen Im nächsten Video kombinieren
wir diese beiden
miteinander, sodass wir
einen gefährlichen Fernkampffeind haben können
79. 77 Einrichten eines Animationsplans für einen Feind im Rampenbereich: Und jetzt, wo wir
das grundlegende Projektil haben, sollten wir es schnell aus
der Welt entfernen , denn es wird
nicht einfach auf der Welt
sein, um Dinge von selbst
zu erledigen Nein, es muss
von unserem Feind aus der Ferne geschaffen werden. Jetzt, wo wir das haben, wollen wir loslegen und unserem Feind aus
der Ferne
ein paar richtige Ballwurf-Animationen
hinzufügen der Ferne
ein paar richtige Ballwurf-Animationen . Um das zu tun, gehen wir als
Erstes in die Animation des
Fernkampf-Feindes Und dann
wollen wir
eine ZD-Animationsoße auf Papier hinzufügen ,
und wir nennen das Animationsquelle für
Fernkämpfer Und wir werden jetzt einen Animations-Blueprint hinzufügen
. Dann werden wir natürlich gefragt was wir als Quelle
verwenden wollen,
wollen wir die Animation von
Fernkampfgegnern verwenden. Als Quelle Wir nennen diese orangefarbene Animation B P. So
werden wir sie der Organisation
halber nennen. Jetzt öffnen wir die
Animationsquelle für Feinde Distanz und fügen eine neue
Sequenz hinzu, die erste Natürlich werden wir es
als untätig bezeichnen. Das ist der Name der ersten,
weil wir mit
einer Idle-Animation beginnen. Dann wollen wir einfach feststellen, dass Feind
aus der Ferne untätig ist.
Das ist die Animation Es gibt eine nette kleine
Idle-Animation, die verwendet werden kann. Um dann das richtige Setup vorzunehmen, wollen
wir den Animationsentwurf für
Fernkämpfer öffnen Das öffnet das Ganze. Und jetzt, wo wir
es an den Feind aus der Ferne gerichtet haben,
wollen wir den
Hauptdarsteller finden. Okay, sehr ähnlich dem, was
wir mit dem Nahkampf gemacht haben. Und dann
wollen wir den Feind als
Fernkampffeind mit Variablen befördern Feind als
Fernkampffeind mit Variablen ,
weil wir genau das in der Animation verwenden
werden Das ist also alles. Das Ereignis der
Initiierung als Distanzfeind wird bei der
Initiierung als Distanzfeind
und dann als Fernkampffeind die Variable sein Okay. Nun, da
das eingerichtet ist, haben
wir Zugriff auf
das Animationsdiagramm und möchten
einen neuen Animationsstatus erstellen. Also fügen wir eine neue
Zustandsmaschine und nennen
diesen Bereich einfach EEM Wir halten es einfach und richten das als Ausgabe Und um sicherzugehen, dass
das effektiv funktioniert, kehren
wir zum Blueprint des Fernkampffeinds
selbst zurück Wir werden ihm die
Papier-Z-D-Komponente hinzufügen, um die Animationen zu handhaben Wir werden den Blueprint für
den Fernkampfeind
als Animationsinstanzklasse hinzufügen Blueprint für
den Fernkampfeind als Animationsinstanzklasse Und dann wählen
wir für die
Render-Komponente das Papier-Flipbook als Jedes Mal, wenn Paper die Animationen
macht, wird
es damit klarkommen, dass wir das schon
dreimal gemacht haben, zweimal Ich hoffe, das alles ergibt für Sie einen
logischen Sinn. Denn jetzt merke, dass es
einfach feststeckt, aber dann kehren wir zum
Animationsplan für
Fernkampffeinde zurück . Wir wählen den Animationsstatus aus und ziehen
ihn heraus. Stellen Sie den Status auf „Inaktiv“ ein. Oh, setzen Sie I auf inaktiv und wählen Sie dann den Ruhezustand aus. Dann möchten wir, dass die Leerlaufanimation
abgespielt wird. Kompilieren, geh zurück. Und jetzt, wenn wir in das Level
gehen, wird die inaktive
Animation korrekt abgespielt. Genau hier wollen wir sein,
und ich hoffe, dass,
weil du so gut aus
den anderen Videos
gelernt hast , all das für dich zusammenhängt und für dich logisch Sinn ergibt. Eigentlich solltest du in der Lage sein, das größtenteils selbst zu tun. Aber jetzt, wo wir das erledigt haben, wollen wir dazu übergehen,
die
Projektil-Zeichnungsanimation
tatsächlich hinzuzufügen die
Projektil-Zeichnungsanimation Wenn Sie nun zu den
Charakteren zurückkehren, die im NEM angeordnet sind,
und zurück zur Grafik, stellen Sie
fest, dass es diese Animation mit
Angriffsrudern gibt Okay. Damit wollen wir nun diese Angriffsanimation bekommen. Machen Sie dasselbe, tragen Sie
Papier auf diese Einstellungen und extrahieren Sie dann Sprites. Es wird immer noch dasselbe
tun versuchen, sie automatisch
für Sie zu extrahieren, aber die echte Engine ist noch nicht intelligent
genug, um das zu tun Also richte es als Raster ein und teile
dann 750 durch eins,
zwei, drei, vier, fünf, sechs, was eins, zwei,
fünf ergibt
, und das gibt
uns die Clean-Strip-Sprites Wir extrahieren sie. Sie kommen als Angriff Null bis Fünf
raus, und dann erstellen wir ein Flipbook, und wir wollen es als EM-Underscore-Angriff
mit großer Reichweite bezeichnen Okay.
Beachten Sie dabei die Animation. Das ist der feindliche Fernangriff. Aber lass es uns verlangsamen. Ich denke, das ist
viel zu schnell, okay? Ich möchte also, dass
es statt 15 Frames fünf Frames sind. Viel besser. Das ist als
Angriffsanimation viel
vernünftiger. So kannst du sehen, wie die
Hexe ihre Hand hebt und sie
dann wirft. Also das ist sehr, sehr gut. Jetzt, wo wir
diese Animation hier haben, gehen wir zurück zur NEM-Quelle
mit großer Reichweite Wir fügen eine neue Animationssequenz und nennen
sie einfach Angriff. Halte es einfach. Die Animationsdaten werden aus
der
Animation für NEM-Angriffe mit großer Reichweite stammen .
Da ist es Okay, das ist es im Grunde. Und dann, da die Animation für
NEM-Angriffe mit großer Entfernung im Spiel ist, können
wir schnell alles speichern Jetzt können wir
im Grunde genommen
zum NEM mit großer Reichweite zurückkehren , oder? Es ist also inaktiv. Wir müssen
es jetzt grundsätzlich für einen Angriff einrichten. Also werden wir einen
neuen Animationsstatus erstellen und
ihn einfach als Play-Attack einrichten
, sodass die Angriffsanimation
abgespielt wenn sie übergeht Und wir werden es einrichten. Wir machen das später, aber ändern
wir den Namen. Wow, von diesem Staat,
sollte nicht einfach Staat sein. Es sollte Angriff sein. Jetzt haben wir also eine Möglichkeit, vom Leerlauf zum Angriff
überzugehen .
Es ist in der Lage, die
Angriffsanimation abzuspielen, aber es gibt noch keinen Code für die
Umstellung,
und das ist okay Aber jetzt gehen wir
einfach noch
einmal zurück zum Plan
des Fernkampf-Feindes Plan
des Fernkampf-Feindes und
gehen dann zum Ereignisdiagramm Damit
der Angriff nun ganz ähnlich abläuft, wie
wir den Nahkampfgegner eingerichtet haben, werden
wir hinzufügen, dass wir
etwas Punktsensorik hinzufügen
werden Okay. Und wir werden es genauso nennen wie zuvor,
Spielererkennung. Sobald der Spieler erkannt ist, funktioniert
es und das Gleiche, Sichtradius wird den Wert auf sagen wir 500
reduzieren. Das Gehör wird Null sein. Wir wollen nicht, dass es Gehör ist. Das Erfassungsintervall ist auf
0,5 eingestellt, was fantastisch ist. Das ist vernünftig.
Ich reduziere es auf 0,1, nur damit das
Erfassungsintervall besser ist. Der Sichtbereich wird auf
179 Grad eingestellt , sodass
ein großer Sichtbereich gewährleistet ist. Und damit
gehen wir einfach zum Ereignisdiagramm über. Wir werden es in die Länge ziehen, nein, wir müssen es nicht hineinziehen. Wir werden sofort
erkannt, wenn ein
Bauer in C als
Spieler erkannt Also, jedes Mal, wenn es den Bauern sieht, wollen wir nur eine Zeichenfolge drucken und sagen: Hey,
Spieler erkannt Okay, das wäre ein guter Anfang, um zu sehen, ob
es richtig funktioniert Drücken Sie also Play. Clay
wird nicht erkannt. Clear wird erkannt. Wir wissen also, dass es innerhalb
des Bereichs Denamy
korrekt funktioniert innerhalb
des Bereichs Denamy
korrekt Das brauchen wir nicht mehr. Jetzt, wo wir das haben, werden
wir einfach in
diesem Projektil spawnen Jetzt, wo wir es haben. Jetzt werden
wir uns, ähnlich
wie zuvor, mit dem
Paper-Flipbook befassen, und was wir tun
wollen, ist einen einfachen Box-Collider
hinzuzufügen, und
das wollen wir Projektil-Spawn nennen Okay. Der Grund dafür ist
, dass das
Projektil dort erscheinen wird, sodass wir es hineinziehen können Und lass es uns
irgendwo hier hinstellen, okay? Nett. Wir werden es hier
irgendwo hinstellen. Jetzt, wo wir den
Projektil-Spawn festgelegt haben, gehen
wir zum Event-Graph über Jedes Mal, wenn
der Spieler entdeckt wird, erscheint
das Projektil. Wir werden also den
Basisknoten zum Spawnen verwenden. Also nennen wir es Spawn-Schauspieler,
okay, Schauspieler aus Und die Klasse wird ein feindliches
Projektil sein. Okay. Das ist nur
die Basisklasse , die wir verwenden werden. Und dann erhalten
wir für die Span-Transformation die
Projektilspanne Wir werden seinen wilden Standort ermitteln. Oh, Physik. Ich
weiß nicht, warum diese Physik von mir ausgewählt
wurde.
Das ist mein Fehler. Was wir wollen, ist ein
wilder Standort. Und dann ist
es dieser wilde Ort , zu dem sich die gesamte Zeit verändern wird. Zieh das hier runter,
zieh das her. Jetzt macht das Sinn. Also im Grunde wird es spüren und jedes Mal, wenn es das spürt, wird
es
in diesem Projektil erscheinen Lassen Sie uns kompilieren und
überprüfen, ob das funktioniert. Beachten Sie also, dass es immer wieder in
diesen Projektilen spawnt , und beachten Sie die Projektile dorthin
bewegen , wo das Das Spawnen von Projektilen ist jetzt also startklar
. Im nächsten Video fügen
wir nun die Wurfanimation hinzu
und richten den Frame ein, in dem
das Projektil tatsächlich spawnen wird
80. 78 Linking Throw Animation mit Projectile Spawn: Jetzt, wo all das eingerichtet ist, haben
wir unseren arrangierten Feind, der in diesen Projektilen
spawnt Gehen wir jetzt schnell zurück zum
NEM-Blueprint mit großer Reichweite. Und vergiss nicht: Jedes
Mal, wenn es den Spieler entdeckt, wird
es
im Projektil erscheinen Aber anstatt
jedes Mal, wenn es den Spieler
entdeckt, im Projektil zu
spawnen den Spieler
entdeckt, im Projektil zu
spawnen, werden
wir eine
sehr grundlegende Anpassung vornehmen Beginnen wir also damit, einen kurzen
Kommentar hinzuzufügen. Also habe ich den
Kommentar von Just,
du weißt schon, Detect Player hinzugefügt . Natürlich, wie immer,
schwarzer Hintergrund, weißer Text Erhöhen Sie die Größe
dieses Kommentars und stellen Sie sicher, dass die Knoten gut positioniert
sind. Wir wissen also,
dass es hier drinnen nur den Spieler
erkennt. Und jetzt laicht das
im Projektil. Wir werden also Verbindung
aufheben
und sie
hierher ziehen, um
diese beiden Aktionen zu trennen. Nachdem wir und sie
hierher ziehen, um
diese den Spieler
erkannt haben, den Spieler
erkannt erstellen
wir einen neuen
Befehl und rufen dann das eingedrehte Ordnung. Also lass mich das schnell hier
reinziehen. Und wir werden eine benutzerdefinierte Funktion
erstellen. Okay. Nun, eher
ein maßgeschneidertes Ereignis, und wir werden es Feuer nennen. Nein, nennen wir es
Shoot Fireball. Okay. Eigentlich kein Feuerball
, weil es kein Feuerball Es ist ein magischer Ball. Also
nenne es einfach Shoot Magic Ball. Also Shoot Magic Ball ist der
Name dieser Funktion. Und jedes Mal, wenn Shoot
Magic Ball aufgerufen wird, schwenkt
es das
Projektil mit hinein, okay? Jetzt, wo wir das eingerichtet haben
und aus dem Weg geräumt sind, wir raus, um den Spieler zu finden Jetzt wollen wir es so einrichten
, dass es eines von zwei Dingen tut. Erstens: Wenn es feststellt, dass
der Spieler sehr nah ist, wollen
wir, dass der Feind aus der
Ferne versucht wegzulaufen. Und das sollte es nur einmal tun. Befindet
sich der Spieler jedoch in Schießstand, wird
er versuchen, ein
Projektil auf den Spieler abzufeuern Lassen Sie uns nun im Grunde damit
beginnen,
es einfach so einzurichten , dass, sobald
der Spieler gesehen wird, ein Feuerball
auf den Und das werden wir tun
, indem wir
einfach eine neue Variable erstellen Und wir werden
diese Variable hinzufügen. Es wird
ein einfacher Boolescher Wert sein. Und wir werden
es I Footing Magic Ball nennen. Okay. Nun, mit diesem
variablen Setup ziehen
wir das raus
und stellen es so ein, als ob Set einen Zauberball verschießt. Und wir werden das als „Ja“ festlegen. Es beginnt mit Nein, aber
sobald der Spieler gesehen wird, richten
wir ihn so ein, dass er die magische Kugel
abschießt. Jetzt, wo sein
schießender Zauberball startklar ist, öffnen
wir den
Animationsentwurf des Feindes Nun, innerhalb des
Animationsplans,
um vom Leerlauf zum Angriff überzugehen, müssen wir nur noch
in den Übergang gehen
und ihn dann als
Feind auf Distanz, tut mir leid, hineinziehen und ihn dann als
Feind auf Distanz, tut mir leid, hineinziehen Schlüpfe in die Rolle des Fernkampffeinds. Wir suchen nach einem
schießenden Zauberball. Und dann wollen wir sagen: Hey, gleich Y, dann kannst du diesen Übergang
eingeben. Es ist sehr logisch und
sollte sehr einfach Sinn machen. Gehen wir also zurück
zur Hauptebene. Beachten Sie also, dass
der Spieler jetzt sofort hineinkommt. Es fängt an, die Animation abzuspielen , die
zeigt, dass es den Zauberball
wirft. Jetzt
gehen
wir zurück zur
Animationsquelle
und wählen die Angriffsanimation aus. Wir wollen nach einem Punkt suchen, an dem der Ball hier herumgeworfen wird. Boom, und wir werden eine neue Benachrichtigung
erstellen. Wir werden eine neue Benachrichtigung erstellen
und
die Benachrichtigung als „Zauberball werfen“ bezeichnen die Benachrichtigung als „Zauberball werfen Das
nennen wir „Zoom wieder raus“. Also um die Ecke, oh, tut mir leid. Ungefähr in diesem Moment werfen
wir die magische Kugel. Jetzt, wo wir dieses Setup
in der Animationsquelle haben, kehren
wir zum Entwurf zurück und suchen nach
der Empfangsbenachrichtigung und werfen den Zauberball Und dann
wollen wir als Fernkampffeind agieren. Wir wollen das
Wurfereignis , ich habe es
Shoot Magic Ball genannt, hier Also nennen wir das Ereignis
Shoot Magic Ball. Es ist immer besser,
sie logisch zu benennen. Also hier sind wir. Also jedes
Mal, wenn diese Benachrichtigung aufgerufen wird, sollte
sie die magische Kugel abschießen. Also, lassen Sie uns
darauf eingehen. Lass uns sehen. Also geh zurück ins Spiel. Jetzt schießt der Feind
jedes Mal, wenn er den Spieler sehen
kann, die magische Kugel ab. Okay. Bum. Das ist sehr gut. Das ist also eine Grundvoraussetzung. Jetzt haben wir das Animations-Setup für das Werfen der Zauberkugel, okay? Also lass uns weitermachen. Lassen Sie uns nun als Nächstes die
Richtungsänderung korrigieren und dann
eine viel lebendigere
Animation hinzufügen, denn im Moment schwebt der Zauberball dem Spieler
im Grunde nur so vor. Lassen Sie uns eine Anpassung daran vornehmen
, wie es aussieht.
81. 79 Anpassen der Sprite-Richtung an den Spielerstandort: Nun, da der Feind aus
der Ferne in der
Lage ist, einen magischen
Ball auf den Spieler zu werfen,
und das alles auf der Grundlage der Animation eingerichtet und
ausgeführt wird,
wollen wir sicherstellen, dass
der Fernkampffeind Lage ist, einen magischen
Ball auf den Spieler zu werfen, Ferne in der
Lage ist, einen magischen
Ball auf den Spieler zu werfen,
und das alles auf der Grundlage der Animation eingerichtet und
ausgeführt wird,
wollen wir sicherstellen, dass , wenn sich der Spieler in
Erfassungsreichweite befindet, als Erstes dem Spieler zugewandt
ist Jetzt werden wir uns mit dem Sprite
der Feinde auf Distanz befassen. Ihr werdet feststellen,
dass
diese Sprites nach links statt nach rechts
gezeichnet wurden nach rechts
gezeichnet Wir werden also einfach das
Papier-Klappbuch auswählen und
seine Drehung auf der Z-Achse anpassen und
es dann einfach um negative 180 Grad drehen Es ist wirklich einfach so einfach. Jetzt ist es
dem Spieler also richtig zugewandt. Beachten
Sie jedoch, dass
es nicht mehr richtig ausgerichtet ist, wenn Sie auf die andere Seite gehen . Das ist okay und
einfach zu korrigieren. Nun, all das, ich werde dir einfach den Code zeigen,
nachdem er geschrieben wurde. Beachten Sie, dass es jetzt in
die richtige Richtung zeigt. Und lassen Sie mich Sie schnell durch die Pläne und
das Denken Um das schnell zu erledigen, möchte ich
Ihnen zunächst zeigen , wie der
Codefluss funktioniert Also habe ich es so eingerichtet, dass der Feind aus
der Ferne debuggt werden kann. Beachten Sie, dass es
durch die oberste Zeile fließt. Wenn ich zu dieser linken Seite wechsle, fließt
es durch
die untere Zeile. Hier fließt es durch den oberen Teil des Topfes in den Knoten. Hier fließt es
durch den Boden. Ich habe
den Schaden natürlich auf B angepasst, ein Schaden
am gegnerischen Projektil, aber das ist nur zur Veranschaulichung Kommen wir nun zu
den Knoten selbst. Das allererste
, was wir tun, ist von Os Pon direkt zum
Casting zum Helden überzugehen. Nachdem wir den
Helden als Helden ausgewählt
haben, erhalten wir seine Kapselkomponente. Im Grunde ist fast
jede Komponente ausreichend, aber die Kapsel ist sehr nützlich. Und dann erhalten wir
die Wildposition, und mit Linksklick teilen
wir die Struktur-Pins
auf, teilen
wir die Struktur-Pins sodass wir den
X-Wert separat ermitteln können. Sobald wir damit fertig sind, bekommen
wir die
Flipbook-Komponente, die wir aus dem Inneren des
Fernkampf-Feindes
herholen können aus dem Inneren des
Fernkampf-Feindes
herholen , wie es bei
jeder anderen Komponente der Fall ist, aber der
Einfachheit halber verwenden wir nur
das Flipbook und dann ermitteln wir Sobald das erledigt ist, machen wir weiter und wollen subtrahieren Jetzt wollen wir
den wilden Standort
der Kapsel vom
Papier-Klappbuch subtrahieren den wilden Standort
der , das
gibt uns ein
Maß für den Abstand zwischen den beiden Und dann werden wir
den Unterschied in der
Entfernung überprüfen , indem wir den
Größer-als-Node Ist er größer
oder gleich Null? Das ist die Logik dahinter. Und dann haben wir eine Filiale gegründet. Jetzt ist die Filiale einfach. Die Entfernung ist
größer oder gleich
Null, was wahr ist. Das bedeutet, dass der
Spieler auf der rechten Seite ist. Also stellen wir die
Wildrotation auf minus 180 ein, indem wir uns selbst anrufen und
das Papier-Klappbuch holen und die Wildrotation einstellen. Das ist der Knoten, den
Sie verwenden werden. Nachdem
Sie ihn jetzt auf minus 180 gesetzt haben, wird
er dem
Spieler korrekt zugewandt sein. Wenn es jedoch falsch ist, bedeutet
das, dass der Spieler hinter dem Feind
steht, also setzen wir die neue
Drehung auf Null. Ich hoffe, die Logik ergibt für Sie Sinn und
danach verbinden
wir alles wieder
mit seinem schießenden Zauberball. Lassen Sie uns das
noch einmal in Aktion sehen , nachdem Sie die Knoten gesehen
haben. Also ich bin c der Spieler
ist auf der rechten Seite. Der Geist schaut nach rechts. Der Spieler ist auf der linken Seite, der Sprite schaut
ständig in
die richtige Richtung, was sehr gut ist Nachdem dies erledigt ist, wollen wir weitermachen und
einige weitere Anpassungen
an unserer NEM-KI mit Fernzugriff vornehmen
82. 80 Hinzufügen von Sprite zum Zauberball: Ordnung. Also jetzt wirft
der Feind tatsächlich
eine magische Kugel Wir werden die Richtung
im nächsten Video korrigieren,
aber Sie können sehen, wie der Feind einen Ball
wirft, und lassen Sie
sich von mir durch die sehr
einfachen Schritte führen, um das einzurichten Zu Beginn gehst du einfach in das gegnerische Projektil und
kannst die ursprüngliche Kugel löschen Sobald das erledigt ist, fügen Sie
ein Flipbook aus Papier hinzu,
etwas, das Sie schon mehrmals
gemacht haben Ich habe es auch so eingerichtet,
dass es Schatten wirft, was ich cool finde,
und außerdem habe ich dem
Fernkampfgegner
Schatten hinzugefügt dem
Fernkampfgegner
Schatten Dann hier drinnen, nachdem du
das Papier-Flipbook hinzugefügt hast, wirst
du feststellen, dass sich im Inneren
des Ordners des
Fernkampf-Feindes eine Datei namens
Projektil befindet Jetzt
befinden sich im Projektil ein, zwei, drei,
vier, fünf, sechs kleine Sprites, die
das Projektil bilden,
und um die Sprites zu extrahieren, wenden
Sie
Papier-Two-D-Textureinstellungen auf
sie an und gehen dann zum
Extrahieren von Sprites über, und Real wird immer versuchen, automatisch
zu extrahieren. Aber Sie möchten es auf Raster
und Zellenbreite
einrichten ,
anstatt 288 zu sein, Sie erhalten einfach 288 und
teilen es durch sechs, was Ihnen
eine Zellenbreite von 48 ergeben sollte. Und beachten Sie, dass Sie jetzt all
diese sechs Sprites sauber extrahieren Holen Sie sie sich nach dem Extrahieren
einfach
und verwandeln Sie sie in ein Und das ist aufgedreht, nein. War das Flipbook, das Buch, und nenne das
Flipbook Magic Ball Sobald das erledigt ist, fügst du es dem
Flipbook hinzu und Wala,
du bist
im Grunde damit fertig, die eigentliche Figur hinzuzufügen , die zu
erhöhen, die Skala auf die richtige Größe
zu erhöhen, die zu Und jetzt, wo der
Feuerball eingerichtet ist, werden
wir uns nun mit dem Code befassen,
um seine Richtung so zu
organisieren, dass er in die Richtung zeigt, dass er sich
bewegt Lass uns das im nächsten Video machen. Falls Sie nun
Probleme mit dieser einfachen Einrichtung haben, vielleicht die Rückkehr zu einigen
der hilft Ihnen
vielleicht die Rückkehr zu einigen
der früheren Videos. Das ist eine Art
Wissenscheck, denn das ist eine Aktion, die du
schon fünf oder
sechs Mal hättest machen sollen , und sie sollte dir im Blut liegen. Wenn Sie jedoch vollständig
verstanden haben, wie das geht, bedeutet
das, dass Sie
effektiv aus dem Tutorial lernen, und darüber
freue ich mich sehr. Lass uns weitermachen.
83. 81 Changine-Richtung des Zauberballs: Nun, da wir das Sprite zur magischen Kugel
hinzugefügt haben, passen
wir einfach seine Aber bevor wir das tun, werden
wir
eine schnelle grundlegende
Code-Bereinigung durchführen , okay Also jetzt, wenn es um den Code für das
feindliche Projektil
geht, ist viel los Lass uns das einfach schnell organisieren. Also der ganze Code hier ist
für Actor Begin Overlap. Dies ist der Code, der den Schaden
verwaltet. Wir fügen einfach einen kurzen Kommentar indem wir C drücken. Ich möchte die Telefongröße auf 50
setzen. Und dann, wie immer, schwarzer Hintergrund, weißer Text. Jetzt fügen wir das einfach hier
hinzu und
erweitern es, sodass
genügend Platz vorhanden ist. Hervorragend. Jetzt werde
ich diese Knoten hier unten direkt
im Kommentar platzieren. Es ist also ziemlich klar
, was vor sich geht. Das ist also eine
beginnende Überlappung der Sphäre, werfen auf den Helden
und richten Schaden an, und lassen Sie uns diesen
Schaden von eins wieder
auf 30 erhöhen , weil er für grundlegende Tests nur
auf einer war. Und wenn die Projektilbewegung gestoppt
wird, zerstört sie sich selbst.
Das ist gut Es zerstört sich selbst.
Das ist gut. Gehen wir nun zum
Start-Play-Knoten über. Lass uns schnell diesen Kommentar bekommen. Setze das Oh, meine
Güte,
setze den Kommentar zunächst nur
auf einen Kommentar damit er
unsere Knoten nicht verschiebt. Und so
alles von Anfang an neu organisieren. Bis zur
Projektilbewegung. Lass mich das beschleunigen. In Ordnung. Also diese Knoten sind jetzt alle an einem Ort
organisiert. Es
wurden keine weiteren Änderungen vorgenommen. Wir werden
also direkt nach der Einstellung der Geschwindigkeit
im lokalen Raum die Geschwindigkeit so
einrichten, dass sie in die Richtung
des
Spielercharakters zeigt ,
sobald sie mit der Einstellung
fertig ist. Und so sieht
das aus. Es gibt zwei Dinge
, die wir wollen. Als Erstes wollen wir den Standort
des Schauspielers wissen, okay? Das ist unser derzeitiger Schauspieler. Und wir wollen nur,
dass uns sein Standort als Referenz
zur Verfügung steht. Nachdem wir den Standort des
Schauspielers
ermittelt haben, wollen wir als Nächstes herausfinden, oh, tut mir leid. Wir wollen die
aktuelle Geschwindigkeit ermitteln. Diese beiden werden
wichtig sein, um
die Richtung zu wählen , in die das
Projektil zeigt Nun gibt es einen neuen Knoten, auf den
wir verweisen werden, und dieser Knoten heißt
Find Look at Rotation Okay? Das ist der Knoten, den wir wollen. Er heißt Find
Look at Rotation. Und wir wollen,
dass es im Grunde genommen
einen Rotationswert ausgibt den unser Projektil betrachten kann Und damit das funktioniert, braucht
es einen Start
- und einen Zielort Jetzt
wird der Startort der aktuelle Standort des
Schauspielers sein. Das Ziel, das Ziel
wird jedoch anders sein. Was wir
tun werden, ist , die aktuelle Geschwindigkeit
hinzuzufügen
und aktuelle Geschwindigkeit
hinzuzufügen nach dem Addieren werden
wir den Standort
des Schauspielers ermitteln hinzufügen. Und der Grund dafür ist, die Geschwindigkeit in die Richtung zeigt , in die sich das
Projektil bewegt Und damit ermitteln wir den Wert und
setzen ihn als Ziel Das Ziel wird
etwa einen Bewegungsrahmen vor der Startposition des
Schauspielers liegen. Nun, damit werden
wir die Rotation finden
und wir werden das, mal sehen, Papierflipbook
besorgen, okay Also, oh nein, das brauchen wir nicht
einmal. Wir brauchen
nur das Flipbook
und dann stellen wir die Rotation Okay. Also ich möchte Wild Rotation
einstellen, und das wird der
Knoten sein, mit dem wir uns verbinden. Und dann wird die
Look-Rotation als neue Rotation festgelegt. Aufgrund der Funktionsweise des
unrealen Engine-Codes wird er jedoch nicht effektiv
funktionieren,
wenn wir
ihn jetzt
alleine ausführen nicht effektiv
funktionieren,
wenn wir
ihn Und das ist der Grund, warum
, wenn alles so ist, wie es ist, wenn wir in die
Entwicklerebene gehen
und auf Play drücken, Oh, Entschuldigung Lasst uns die
Simulation zuerst ganz schnell beenden. Okay, weil es
versucht hat, uns das zu zeigen, aber das wollten wir nicht sehen. Wenn wir also auf Play drücken,
stellen Sie fest, dass es keine Änderung gibt. Art und Weise,
wie es
mit der Richtung umgeht, ändert sich nicht wie es
mit der Richtung umgeht, ,
außer natürlich, ja,
es gibt keine Änderung. Der Grund dafür liegt darin, wie schnell die Berechnung durchgeführt wird Wir müssen dies
nach mindestens einem Frame tun. das also
nach mindestens einem Frame
passiert, machen wir das gleich,
nachdem die Geschwindigkeit
im lokalen Raum
eingestellt haben, okay? Gleich nach dem Knoten mit der eingestellten
Geschwindigkeit im lokalen Raum werden
wir eine Verzögerung als Verzögerung
einrichten,
aber es gibt verschiedene
Arten von Verzögerungen, und die Verzögerung, die wir wollen, ist diese, die als Delay
until next Tech bezeichnet wird. Also werden wir einfach bis
zur nächsten Technologie warten. Sobald das erledigt ist, durchläuft es die restlichen Knoten, um
die Drehung
des Papier-Flipbooks einzustellen Lass es uns jetzt ausprobieren. Okay.
Jetzt funktioniert es richtig. Beachten Sie, dass die Richtung korrekt
berechnet wird. Jetzt fragst du vielleicht, aber warte mal. Es sieht irgendwie
flippig aus. Warum ist es so Vertikal scheint
die Richtung richtig zu sein,
aber alles ist falsch. Das ist eigentlich ganz einfach. Wir gehen einfach zurück in
das feindliche Projektil. Wir gehen zurück in den Viewport und stellen fest, dass es sich um
das Papierflipbook handelt Wir holen uns also das Papier-Flipbook selbst
und wollen es umdrehen und wollen es Und jetzt, wo wir zurück sind, werden
Sie feststellen, dass das Projektil nach
links zeigt Da es also
nach links zeigt, werden
wir
eine kleine Anpassung vornehmen Anstatt also
die Position des Akteurs
und die Geschwindigkeit beim Abrufen hinzuzufügen , werden
wir das Ganze etwas höher schalten
und so
einstellen, dass es subtrahiert Also wollen wir den Standort des Schauspielers
subtrahieren. Vielmehr wollen wir die Geschwindigkeit von der Position
des Schauspielers
subtrahieren und
diese als Ziel festlegen nun mit diesem Setup auf diese Weise wieder reingehen und sehen, Lassen Sie uns nun mit diesem Setup auf diese Weise wieder reingehen und sehen, ob
es wie beabsichtigt funktioniert Also lass uns auf Play klicken, ja, jetzt funktioniert es wie beabsichtigt. Beachten Sie, dass die kleine magische Kugel tatsächlich in die
richtige Richtung geht. Das ist ziemlich cool. Und
jetzt, wo wir das haben, stellen Sie fest, dass es sich im Grunde genommen in
die richtige Richtung bewegt. Okay. Nett. Schau dir das an. Okay, jetzt bewegt sich unser
magischer Feuerball. In die richtige Richtung. Schau dir das an. Okay. Das ist erledigt. Lassen Sie uns nun weitermachen und einige zusätzliche Anpassungen an der KI des Fernkampfgegners
84. 82 Hit-and-Tod-Animations-Combo einrichten: Um den Fernkampfgegner wirklich abzurunden und zu
finalisieren, passen
wir ihn so an, dass, wenn
ich die Fernkampf-EM oder einen der
anderen Spieler treffe, er in eine nette
Grundanimation übergeht
und dann stirbt und Und dann bemerkt
man, dass diese Projektile
in der Welt erscheinen,
aber sie laufen quasi
bis ins
Unendliche weiter, sofern sie den Spieler nicht treffen Unendliche Also werden wir einen Timer einbauen, um zu verhindern, dass sie für immer am Leben
bleiben Lassen Sie uns diese beiden
Dinge jetzt machen. Zuerst fangen wir mit
dem feindlichen Projektil an und richten es so ein, dass
es
nach einem Fehlschlag zu einer Verzögerung kommt
, und diese Verzögerung dauert, sagen
wir, 6 Sekunden, und dann
zerstört sie den Schauspieler Das Projektil kann also
nur
etwa 6 Sekunden auf dem Bildschirm bleiben , bevor es vollständig
aus der Welt entfernt
wird Okay? Das ist erledigt. Gehen wir nun direkt
zum Feind auf Distanz
und öffnen wir uns, gehen wir zurück in die Gruppe
des Fernkampffeinds , gehen wir zurück
zur Kunst, und ihr werdet feststellen, dass da
ein Sprite namens Hart ist . Ein
Doppelklick darauf
zeigt, dass es hier
drüben diese
kleine Herzanimation gibt, wenn es Schaden nimmt. Dann gibt es noch einen anderen, der
Tod heißt . Beachten Sie, dass Tod und Kunst
viele Ähnlichkeiten haben. Deshalb wollen wir den Code auf
eine sehr ähnliche Weise
einrichten wie zuvor. Es gibt also eine Schadensanimation, aber wenn die Lebenspunkte
unter Null oder gleich Null fallen, wird
die Todesanimation beendet. Lassen Sie uns mit einer
grundlegenden Sprite-Extraktion beginnen. Also habe ich Hart ausgewählt. Und zuallererst,
Herz und Tod Lassen Sie mich schnell Papier
auf die Textureinstellungen auftragen und lassen Sie uns schnell alles speichern. Und danach
fange ich mit Kunst an. Und tut mir leid, klicken Sie mit der rechten Maustaste auf Sprite
Actions und extrahieren Sie Sprite. Es gibt drei Sprites. Lass es uns als Grid einrichten. Also werden wir einige
grundlegende Berechnungen durchführen. Okay, also ich sollte den Taschenrechner wirklich einfach hier
anheften. Also bekommen wir 375/3,
was bedeutet, dass die
Zellenbreite 125 ist, und wir extrahieren diese Es gibt also Herz Null, T Eins und Herz Zwei.
Das ist gut. Dann wählen wir die
Todesanimationen aus,
okay, die
Aktionen der Todesgeister, extrahieren das Sprite Dann richten wir es auf Grid ein. Und jetzt sind es 875 oder ein,
zwei, drei oder fünf,
sechs, sieben Frames Okay. Also, wenn wir
unseren Taschenrechner herausziehen und 875 bekommen und das durch sieben teilen, erhalten
wir wieder 125 Also 125, wir schneiden die Sprites richtig aus
und extrahieren sie. Das ist cool Also, was wir tun werden wir wählen alle Death-Sprites und dann werden wir
ein Flipbook erstellen und wir nennen es, nennen wir es, nennen
wir es einfach Tod, okay Nennen wir es Ranged
EM Underscore Death. Okay. Nun, mit diesem Setup. Beachten Sie,
dass dies
die Todesanimation ist. Was wir jetzt tun
werden, ist, das zunächst auf
etwa zehn Bilder pro Sekunde zu verlangsamen. Jetzt
wollen wir ein
weiteres Schlüsselbild hinzufügen. Wir ziehen es hinein. Mal
sehen, dass das Bild eins ist. Bild zwei ist leer,
dann Bild Okay. Also das ist eins und das sind zwei. Also, innerhalb dieses
leeren Rahmens hier drüben gehen
wir zu Ins, wir werden
uns ein neues Sprite aussuchen
und wir werden nach, mal sehen, verletzt, einem Sprite Das ist der, der den
weißen, du weißt schon, weißen Blitz hat weißen, du weißt schon, weißen So wird
es jetzt also beschädigt. Und dann
fügen wir
danach ein weiteres Bild hinzu und in diesem Bild werden
wir
eine weitere Animation hinzufügen. Lass uns ein neues Sprite auswählen. Nennen wir Pick Heart Zero. Dafür verwenden wir Heart Zero. Beachten Sie also, dass es jedes Mal wenn es
beschädigt wird, schnell blinkt, was cool ist. Lassen Sie uns jetzt die Zahl der Bilder
pro Sekunde von zehn verringern. Lassen Sie uns sie auf neun reduzieren. Lassen Sie uns also die Animation
abspielen. Beachten Sie das. Es hat also diesen kleinen Blitz,
wenn es Schaden nimmt, und das ist die Animation. Okay, lassen Sie uns gleich damit aufhören. Mit diesem Setup haben
wir jetzt die
Animation zum Tod von Feinden auf Distanz, die sofort losgehen kann. Also gehen wir einfach zurück zum Fernkampf-Feind, zur Animation Öffnen wir die Animationsquelle für
Fernkampffeinde. Fügen Sie eine neue Animationssequenz hinzu. Wir werden es in Tod umbenennen. Okay. Und innerhalb des Todes werden
wir den
Tod des Feindes auf Distanz als Animation verwenden Also werden wir das
als Animation einrichten. In der nächsten Lektion fügen
wir nun die richtigen Benachrichtigungen
und die richtigen Ereignisse hinzu , damit
das Playout korrekt
85. 83 Ranged Enemy setzt auf Hitch bei jeglichem Schaden: Okay. Also zurück zur
Animations-Sauce, okay? Beachten Sie, dass es diese Bilder
gibt denen der Feind
einen kleinen Treffer erlitten hat. Wir wollen nicht zum
dritten Bild der Animation übergehen. Also fügen
wir gleich am Ende
der zweiten Animation eine Benachrichtigung hinzu. Wir werden es eine neue Benachrichtigung nennen und wir werden es
Fernkampfgerät für feindliche Gegner nennen. So
werden wir es nennen. Das nennt man
Fernkampfgegner Headstand. Okay? Nur
feindliche Feinde aus der Ferne stehen So
wird es nicht genannt werden. Okay. Sobald wir das eingerichtet
haben, gehen
wir jetzt zum NEM-Blueprint für den
Bereich und Hinweis unter benachrichtigt den NM-Bereichsverwalter
hier. Also werden wir hier auf die Funktion zugreifen. Also gehen wir zurück zum
Fernkampffeind. Stattdessen kopieren wir einfach
dieses spezielle Kommentarfeld, okay, und fügen es ein und
wir nennen es Nein, vergiss den Kopfstand. Nein, nur
der Geschwindigkeit halber, nennen
wir das einfach Hits
Stater, das ist der Kommentar Aber was wir wirklich
wollen, ist, dass wir ein benutzerdefiniertes
Event
erstellen wollen . Ja, okay? Und dieses benutzerdefinierte
Event wird Range NEM Hits Stater
heißen So wollen
wir es wirklich nennen. Halten Sie einfach dieses einfache
benutzerdefinierte Ereignis bereit. Nun, da das Event startklar ist, erstellen
wir nun eine neue Variable. Und wir nennen diese Variable in Headstar. Sie ist ein einfacher boolescher Wert und sie heißt Jetzt, jetzt, werden
wir das schnell kompilieren. Wenn das Spiel startet, wird
es leer sein. Das ist der Standardwert. Nun, was wir
tun werden , ist jetzt, da wir
diese Kopfstandvariable haben Wenn diese
Kopfstandfunktion für Gegner aus der Ferne aufgerufen wird, wollen
wir nur, dass sie
einen kurzen Check durchführt, um die Gesundheit des
Feindes zu überprüfen Gehen wir zurück. Und jetzt sagen
wir, als Fernkampffeind wollen
wir, dass er den Feind aus der Ferne
herauszieht .
Er hat die Stater-Funktion Das haben wir schon
mehrfach gemacht, also sollte es logisch Sinn machen Jetzt, wo wir das haben, wissen wir, dass jedes Mal, wenn
diese Animation abgespielt wird,
genau hier,
ein kurzer Kopf-Check durchgeführt wird,
genau hier,
ein kurzer Kopf-Check durchgeführt Und was wir wollen, ist, wenn der Kopfstandcheck sich als
wahr herausstellt , dass der Spieler,
der Feind, tot ist, wird die komplette
Todesanimation abgespielt Wenn die
Treffer jedoch lauten, weißt
du, nein, du bist
nur im Kopfstand, du bist noch nicht
tot, dann geht es zurück Zu seiner ungenutzten Animation für
einen kurzen Zeitraum. Und dann kehrt es zu
seiner Angriffsanimation zurück , nachdem es den Spieler
erkannt hat. Das ist die Logik, nach der
wir streben. Also komm wieder her. Lasst uns schnell alles retten und
zurück zum Fernkampffeind gehen. Hier wollen wir nur damit beginnen, einfach
den Gesundheitswert zu überprüfen Als Erstes holen wir uns
die Gesundheit von Dami, ziehen sie hierher und wir
wollen die Gesundheit von Dami abrufen, und wir werden einen
Basiszweig einrichten Und wir wollen
die Gesundheit von Dami überprüfen, ob sie besser
ist Mit anderen Worten, ist es
größer als Null? Wenn die Gesundheit von Dammi größer als Null
ist, wird
das wahr sein Okay. Also, wenn die Dammi-Gesundheit größer als Null
ist, setzen
wir das auf true und dann werden wir hier einfach einige Funktionen
ausführen Und zunächst sagen
wir: Okay, schau mal,
ich nehme an, Gesundheit ist
weniger als grundsätzlich, wenn es kleiner als Null
ist, wollen wir das in die Länge
ziehen und dann sagen:
Hey, nein, lass
mich klarstellen, dass diese Logik Sinn
macht. Okay. Also, wenn es weniger als
Null ist, was wir wirklich wollen. Okay? Nein, wenn es
kleiner als Null ist, anderen
Worten, es ist falsch. Wir wollen, dass es eine
Verzögerung von etwa 1 Sekunde gibt, nur eine einfache Verzögerung von 1 Sekunde, und dann zerstören
wir sofort den Schauspieler. Okay? Es ist ein einfacher Scheck. Es ist ein sehr einfacher Scheck. Und das bedeutet,
dass der
Fernkampffeind jetzt tot ist Wenn wir also zurück in das Animationsdiagramm für Gegner
mit großer Entfernung gehen, stellen wir
fest, dass es nur
Inaktivität gibt und dass es Angriffe gibt Aber jetzt erstellen wir
einen neuen Animationsstatus und nennen diesen
Animationsstatus Tod Okay. Also vom Angriff zum Tod kann
es übergehen, und vom Nichtstun zum Tod kann
es übergehen. Und die Art und Weise, wie es
übergehen kann, ist, gehen wir rein. Wir werden es als Fernkampffeind
überprüfen lassen. Wir wollen, dass Stern getroffen wird, oder? Und wenn es Stater trifft, ist es gleich, ja, es
ist in seinem Stater Es kann übergehen. Okay. Solange der
Feind in seiner Gewalt ist, kann
er übergehen.
Das ist es im Grunde. Und dann nehmen wir ein, lassen Sie
uns das einfach kopieren. Also jedes Mal, wenn der Feind
in irgendeinem Kopfstand steht, fängt
er an,
die Todesanimation abzuspielen Also lass uns das kopieren und
hier einfügen. Das spart das. Wir doppelklicken auf Tod
und wollen
die Todesanimation vom
Inneren des
Todesknotens hier drüben abspielen die Todesanimation vom
Inneren des
Todesknotens , okay, diesem kleinen Staat. Es kann also vom Leerlauf zum Tod und
vom Angriff zum Tod übergehen. Es kann jedoch nur in einer Situation, in der
es sich nicht mehr im Kopfstand befindet, vom Tod in den
Leerlauf
zurückkehren in einer Situation, in der
es sich nicht mehr im Kopfstand befindet, vom Tod in den
Leerlauf Dann kann es zu
seiner inaktiven Animation zurückkehren, okay? Das ist es vorerst im Wesentlichen. Nun, so sieht
das aus. Oh, es ist noch nicht
wieder im Leerlauf. Darauf werden wir als Nächstes eingehen. Beachten Sie nun, dass es im
Moment im Fernkampffeind noch keine Möglichkeit
gibt, ihn wieder
einzuschleusen, sondern dass es derzeit keine Möglichkeit
gibt, derzeit keine Möglichkeit
gibt Stater-Eigenschaft des Treffers
zu geben Lass uns das ändern. Also die Art und Weise, wie
wir das machen werden, ist
, schnell
das Kommentarfeld zu holen und es hier drüben aufzustellen. Geben Sie
bei jedem Schaden eine Animation ein. Was ziemlich
einfach zu verstehen ist. Rufen Sie also die Kopfstandanimation
auf, wenn Sie Schaden erleiden. Also fangen wir damit an,
das Ereignis zu erfassen, jeden Schaden. Okay, wir kümmern uns um das Ereignis „
Jeder Schaden“. Und dann setzen wir einfach Kopfstand ein und wir richten ihn so ein, dass er, wenn er einmal im Kopfstand
ist, auch den Kopfstand einstellt, damit er korrekt Jetzt, genau damit, wir zur Entwicklerebene zurück Es nimmt also Schaden. Es spielt das jetzt, aber
es spielt es auf unbestimmte Zeit. Um zu verhindern, dass es
abgespielt wird, gehen wir wieder rein. Und dieses Mal, wenn es die grundlegende Überprüfung durchführt
und herausfindet, dass es tatsächlich gesund ist, ist es
immer noch größer als Null. Wir
wollen den Kopfstand einsetzen,
also stellen wir ihn auf
und sagen nein, ist nicht mehr im Kopfstand Also so sieht das aus
. Das ist dir aufgefallen, oder? Wenn du also aufhörst, den Feind
zu bekämpfen, geht
er sofort zurück, okay? Das ist im Grunde das,
was wir wirklich wollen. Also lass uns hier reinkommen. Also wirft es ein Projektil.
Jetzt treffe ich es. Okay. Es erleidet also
tatsächlich Schaden, aber beachten Sie, dass es nicht stirbt und es eine kleine Verzögerung gibt. Vielmehr ist die Verzögerung, bevor es erneut
angreift,
wirklich zu kurz. Lassen Sie uns das also im nächsten Schritt vorschlagen
86. 84 Angriffsverzögerung nach einem Treffer einstellen: Ordnung. Jetzt haben wir also unseren Gegner aus großer Entfernung
, den wir angreifen können, und wenn wir angreifen, geht er ein bisschen in seinen Zustand und kann uns nicht zurückschlagen Das ist ziemlich cool. Nehmen wir eine einfache Anpassung vor
, sodass es, wenn es einmal getroffen ist, viel mehr Geld ausgibt,
bevor
es in
seine eigentliche Angriffsanimation übergeht seine eigentliche Angriffsanimation ,
sodass es
mehr Gewicht hat. Um das zu tun,
müssen wir zunächst nur eines öffnen
: Wir gehen in
den Ordner Fernkampfeind und stellen
sicher, dass
der Plan für
Fernkampfeinde geöffnet ist Ordner Fernkampfeind und stellen
sicher, dass
der Plan für
Fernkampfeinde Und sobald er geöffnet ist, können wir
jetzt weitermachen und den Vorsprung
etwas verzögern Als Nächstes
werden
Sie feststellen, dass der Gesundheitsbalken nicht richtig funktioniert,
wenn wir gehen und dem Angriffspuppen Schaden zufügen,
während er dem Angriffspuppen Schaden zufügen,
während er Schaden
erleidet Der Grund
, warum das passiert, ist
, dass sobald wir
den Schaden hier gemeldet haben, nicht mehr
im übergeordneten Plan angezeigt wird Wir müssen also den gesamten Code für den
Fall, dass der Schaden vom
Elternteil verursacht wurde,
kopieren Fall, dass der Schaden vom , um sicherzustellen, dass er hier korrekt
funktioniert Der schnellste Weg
, das zu tun, besteht darin, dass
Sie
Ihren Dummy-Blueprint für Angriffe öffnen und zu dem
Ereignis
gehen, wo ein Schaden festgestellt wurde. Dort stellen Sie fest, dass wir
reinkommen und jetzt
eine Kopie von all dem machen können , um sie
dann dem Kind zu geben Lassen Sie mich Ihnen zeigen, wie das
aussieht, und dann führe ich
Sie durch Also, bumm, da ist
ein bisschen Kopfstand und dann ist es tot Voilà. Nun, so
sieht es im Code grundsätzlich aus Gehen wir eigentlich ein bisschen
zurück, okay? Also im Moment ist der Feind in der Lage, Projektile
auf mich
zu werfen, okay? Er kann Projektile werfen. Oh, schnapp. Nein. Nein. Fensterheber. Aber sobald ich es geschlagen habe, merke ich, dass es
etwa 2 Sekunden dauert, okay? Das ist der eigentliche Hit-Star. Und für 2 Sekunden
kann ich nichts tun. Nun,
das ist natürlich übertrieben. In einem echten Spiel willst du, dass die
Zeit etwas kürzer ist, aber ich übertreibe es
nur für den Unterricht, okay? Der Feind, und nicht der
Spielercharakter, kann einen Feind nur
für den Feind aus der Ferne
schlagen, und für eine Weile können sie absolut nichts tun
und dann sind sie tot So einfach ist das, okay.
So einfach ist das. Lassen Sie mich nun auf den Code eingehen, und wir werden
Schritt für Schritt vorgehen. Also fangen wir mit
dem einfachen Fernkampffeind an. Okay. Also genau hier, okay, du musst es nur so einrichten,
dass es im Kopfstand läuft Aber lassen Sie uns
das Schritt für Schritt durchgehen. Sobald wir das Ereignis hier als
Schadensereignis bezeichnen , funktioniert es
jetzt nicht mehr vom übergeordneten Ereignis aus. Also müssen wir
den ganzen Code erneut hinzufügen. Also lass uns anfangen.
Es gibt eine Sequenz. Lass uns hier
oben für eine Weile alles signalisieren. Und folge dieser Linie. Wir
bekommen die verdammte Gesundheit Das bekommen wir natürlich
aus dem Inneren des Charakters. Okay. Und sobald wir
die Dammi-Gesundheit haben, werden wir den Schaden
von allen Schäden von der Dammi-Gesundheit abziehen von allen Schäden von und
das
als neue Dammi-Gesundheit festlegen Sobald das erledigt ist, wollen wir in
die Dammi-Gesundheitsleiste wechseln Das machen wir jetzt, indem wir
ein Widget aufrufen. Das Widget ist hier drüben. Wir haben es bereits hinzugefügt. Das ist die Gesundheitsleiste. Wir bekommen das Widget und wir casten in
die Dammi Health Bar Und dann als Fortschrittsbalken für Dammi
Health erhalten
wir Dammi Health, teilen es durch 100 und geben das
als festgelegte Prozent an,
das Und alles, was wir tun,
ist sicherzustellen, dass, wenn
wir den Dummy treffen, sondern wenn wir diesen Feind treffen, er tatsächlich
in seiner Gesundheitsleiste angezeigt Okay, lass uns weitermachen. Jetzt, wo wir das haben, okay. Gehen wir zurück zum Stater-Gesundheitscheck
der gegnerischen Fernkämpfer. Okay? Hier überprüfen wir, ob die Gesundheit geringer ist als ob die Gesundheit kleiner oder größer
als Null ist. Okay? Das ist der Stater der
gegnerischen Fernkämpfer Also,
was wir hier wollen, ist es
eine Verzögerung von 1 Sekunde geben wird, und dann wird der Schauspieler zerstört Das ist vorerst in Ordnung, okay. Wir wollen es jedoch so
einrichten, dass es im Headstan Off ist. Schießt es mit einem
Zauberball? Nein, ist es nicht. Hinzufügen einer schnellen
Verzögerung von 2 Sekunden. Und dann wollen wir
eine neue Variable
namens Cannot Shoot erstellen . Nun, was ist der Zweck
von Carnot Shoot? Wir werden später auf
Cannot shoot eingehen, aber erstellen Sie einfach diese Variable Und momentan ist Cannot
shoot auf aus gesetzt. Das heißt, nach
zwei Sekunden Verzögerung wird „Nicht schießen“ ausgeschaltet,
was bedeutet, dass geschossen werden kann, okay? Gehen wir nun zurück zur Animation von Fernkampfgegnern.
Es ist Todesanimation Am Ende seiner
Todesanimation
haben wir es so eingerichtet, dass es sich selbst zerstört. Das ist die Verwendung einer Benachrichtigung. Okay? Nun, innerhalb des
Entwurfs der Fernkampf-Animation ist
es einfach so eingerichtet, dass es angreift,
wenn es die magische
Kugel abschießt Ist dies nicht der Fall, geht es in den Leerlauf über. Will das nicht einrichten lassen, okay? Und dann vom Angriff
bis zur Todesanimation, das heißt, ist es im Kopfstand? Ja. Wenn es keinen Kopfstand mehr hat, kann
es wieder angreifen, oder wenn es keinen Kopfstand hat, kann
es wieder in den Leerlauf
oder zurück zur ID gehen, okay? Das ist grundlegende Logik. hast du schon
einmal gemacht. Gehen wir jetzt zum zerstörten Selbst über. Das
führt lediglich zu einer Funktion im Fernkampffeind, die als
Selbstzerstörung bezeichnet wird Jetzt, wo sich der Feind in Reichweite befindet
, haben wir Destroy
Self als grundlegenden Zerstörungsakteur festgelegt Self als grundlegenden Zerstörungsakteur Das ist alles, was es tut. Es zerstört den Schauspieler, wenn seine Hölle unter
Null fällt oder Null erreicht. Okay. Das ist alles, was es tut. Mit diesem Setup bei jedem Schaden so eingestellt
, dass es seinen Kopfstand aktiviert hat Es schießt nicht mehr die magische Kugel und
es kann auch nicht schießen Jetzt schauen wir uns an, wie das Code
tatsächlich aussieht, okay? Gehen wir nun zurück zu der Stelle, an
der der Spieler erkannt wurde. Diesmal gibt es eine große
Veränderung. Okay, wir haben hinzugefügt, ist es am Kopfstand Wenn es im Kopfstand ist, sollte
es nichts bewirken. Wenn Headstan wahr ist, tu nichts. Wenn der Heads Stater nicht mehr verfügbar ist,
sollte er den
Rest des Codes übernehmen Natürlich gibt es
immer die Besetzung des Helden, das haben
wir gemacht, die
Richtung hat sich geändert Aber nach dem Richtungswechsel
und dem Setzen der Wildrotation haben
wir einen neuen Zweig hinzugefügt und der Zweig ist ziemlich
einfach, man kann nicht schießen. Wenn er nicht schießen kann,
tut er nichts. Wenn es schießen kann, schießt
es die magische Kugel ab. Schauen wir uns jetzt an das tatsächlich aussieht, okay? Ich werde es auf Debug setzen, ich spiele. Im Moment kann es
schießen, also schießt es. Aber okay, lass
mich das neu starten. Sobald ich es getroffen habe, steht es
und kann eine Weile nicht schießen. Und
das können Sie nach Ihren Wünschen anpassen. Nun, wenn Sie
die Tutorials richtig befolgt haben, hat das
alles einen logischen
Sinn ergeben Und jetzt habt ihr einen
funktionierenden Fernkampffeind, und lasst uns schnell zu einem
männlichen Feind übergehen , um
ihn in die Welt zu schleppen Oh, ich habe tatsächlich
schon einen hier. Es ist ein Feind, den
ich hier platziert habe. Ich habe also einen männlichen Feind , der kommt und
mich angreifen kann, aber natürlich kann
ich ihn treffen und töten,
sodass er stirbt, und dann
haben wir einen Feind aus der Ferne Komm Moria. Ich und es verbindet. Wir haben jetzt also einen Feind aus der Ferne und einen männlichen Feind, die
bereit sind, eingesetzt zu werden, und Sie haben erfahren, wie
man Papier Z D verwendet, um diese beiden Feinde
aufzustellen Also gibt es noch eine Sache , die wir
für den Feind auf Distanz tun werden, und dann machen wir weiter Und das heißt, wir werden uns mit dem
Feind auf Distanz befassen. Wir gehen zum Widget
seiner Gesundheitsleiste und stellen
es so ein, dass es nicht sichtbar Und der Grund, warum wir
das getan haben, ist, dass wir nur das
Aussehen unseres Levels verbessern wollen . Okay? Okay. Jetzt , wo ihre
Gesundheitsbalken nicht mehr im Spiel
sichtbar sind , ist das cool. Lasst uns das auch für
den Nahkampffeind einrichten. Ich meine, mit dem Widget. Wir brauchen nicht, dass der Gesundheitsbalken
sichtbar ist. Das ist gut. Das ist jetzt erledigt.
Okay. Entwickle ein Level. Voi a fini. Jetzt, wo
wir damit fertig sind, nehmen
wir eine weitere Anpassung
an den Feind aus der Ferne vor. Was sein wird,
wir werden es einstellen. Das sind eigentlich
zwei Anpassungen. Die erste ist, dass
wir die Geschwindigkeit leicht
anpassen werden. Und im Moment scheint es auf den Entfernungsfeind zu
stoßen
, was wir nicht
wollen, dass das wahr ist Wir wollen also, dass der
Nahkampfgegner sich
bewegen kann und in
keiner Weise mit
dem Feind aus der Ferne interagiert , weil er sich gerade an ihn heftet,
was wir nicht Und dann wollen wir es so
einrichten, dass der Feind aus der Ferne aufhört, einen zu werfen,
sobald man eine bestimmte Reichweite Projektile auf einen zu werfen,
sobald man eine bestimmte Reichweite erreicht
hat Wir wollen, dass es nur Projektile
innerhalb einer bestimmten Reichweite
wirft innerhalb einer Okay? Lass uns das machen. Als Nächstes
87. 85 So verhinderst du, dass deine Feinde aneinander hängen bleiben: in diesem Video Lassen Sie uns in diesem Video mit dem einfachen
Grundproblem beginnen. Wir haben einen Nahkampffeind. Okay. Also, komm schon,
folge mir. Folgt mir. Komm schon, komm schon,
hier. Okay. Aber sobald es den
Feind aus der Ferne erreicht hat, bleibt es stecken Also lass uns das
Problem lösen, okay? Nun, die Art und Weise, wie
wir das Problem lösen werden, ist
, dass wir uns mit dem Me NEM Blueprint befassen Okay. Und wir wählen die Kapselkomponente aus
, weil dort
die meisten Kollisionen
passieren, okay? Jetzt gehen wir ins Detail und ich möchte nach der Kollision
suchen. Jetzt ist es so eingestellt
, dass es alle Dynamiken blockiert, und das ändern wir auf Pastor. Jetzt, da es sich in einem benutzerdefinierten Status
befindet, können wir
seine
Kollisionsreaktionen allgemein ändern . Also wählen
wir Bauer aus und stellen es auf Ignorieren ein,
sodass
es auf Ignorieren, Überschneiden oder Blockieren eingestellt werden kann , aber wir werden es
einfach so einrichten Bauern generell komplett ignoriert werden, okay Sobald das erledigt ist, kompilieren
wir schnell. Lassen Sie uns es jetzt schnell
testen und sehen, ob es die Aufgabe tatsächlich
erledigt. Okay? Okay. Und da ist es. Also ignoriert es jetzt
völlig, oh, Snap, ich muss rennen Jetzt ist es okay, ich bin gestorben. Aber du kannst sehen, dass
es
den Fernkampffeind jetzt völlig ignoriert und nicht
mehr daran hängen bleibt Ja, das ist im Grunde die
Lösung. Lass uns weitermachen.
88. 86 Erstellen eines Angriffsbereichs für den angeordneten Feind: Okay. Lass mich dir schnell das Endergebnis
zeigen denn der Feind hat
ständig angegriffen, aber jetzt greift er den Spieler an. Sobald ich jedoch eine bestimmte Reichweite
verlasse, hört
es auf, den Spieler anzugreifen. Wenn ich wieder in Reichweite bin, fängt
es an anzugreifen. Und sobald ich diese Reichweite
verlasse, hört
es sofort auf,
den Spieler anzugreifen . Und genau das wollen wir. Lassen Sie mich Sie nun Schritt für Schritt durch
den Code führen. Lassen Sie uns also auf den Feind
aus der Ferne eingehen. Das allererste
, was wir
tun werden, ist eine große Kugel hinzuzufügen Für diese Art von Kugel
müssen Sie
natürlich in die Kapsel gehen und eine Kugel hinzufügen. Ich habe meine Kugel auf einen Radius von
etwa 20 Einheiten eingestellt. Sie können es mit einem
beliebigen Radius einrichten. Und das nenne ich Sphäre
Collision Attack Range. Sobald die Angriffsreichweite eingerichtet ist, füge
einfach zwei
verschiedene Ereignisse hinzu, okay? Das erste Ereignis ist die
Anfangsüberlappung und die
Endüberlappung das zweite. Sobald Sie diese
beiden Ereignisse erstellt haben, gehen
wir zum Ereignisdiagramm über. Das Erste, was
wir tun wollen, ist kurz bevor die
Spielererkennung mit der Suche nach einem Vorsprung
beginnt.
Wir wollen, dass sie eine einfache
Überprüfung unter einer neuen Variablen durchführt,
die ein boolescher Wert ist und Attack
Range genannt Im Grunde genommen gilt sie dafür, ob sich der Spieler
in Angriffsreichweite befindet oder nicht Wenn es also wahr ist, geht es weiter. Wenn es falsch ist, tut es nichts. Wenn es nun darum geht, mit
der Angriffsreichweite umzugehen, schauen wir uns
zunächst die beiden Ereignisse an. Wir haben die Komponente
Begin Overlap Event. Und wir haben das Ereignis „
Ende der Überlappung“ der Komponente. Das führt nun zu
zwei verschiedenen Dingen. Sie werden beide dem Helden zugewiesen
, weil wir nur wollen, dass die Komponente der Held ist,
der das verursacht Und jetzt, wenn die Überlappung
begonnen hat,
wird die Angriffsreichweite auf true gesetzt Wenn die Überlappung beendet wird,
wird die Angriffsreichweite auf Off gesetzt, und das nur aus Gründen der
Übersichtlichkeit. Es wird angezeigt, ob es sich
in Angriffsreichweite befindet, es wird in Angriffsreichweite angezeigt. Sobald es sich außerhalb der Angriffsreichweite befindet, wird
es sicher gedruckt
und es wird aktiviert, und es wird aktiviert magische Kugel abgefeuert wird, um zu
verhindern, dass der Feind
aus der Ferne auf den Ball schießt Lass es uns in Echtzeit sehen. Jetzt habe ich die Angriffsreichweite erreicht. Jetzt bin ich in Sicherheit. Ich bin in Angriffsreichweite.
Ich bin jetzt in Sicherheit. Aber jetzt, obwohl die
Angriffsreichweite da ist, gehen wir
jetzt in die
Erfassungsreichweite, okay? Denn hier
gibt es auch den Pfotensensor , der die Angriffe tatsächlich
verursacht Jetzt, wo ich in Angriffsreichweite bin, treffe ich den Bauern, der erkennt, und
er fängt an, mich anzugreifen Aber wenn ich gehe, bin ich jetzt in Sicherheit
und es hört auf, mich anzugreifen und Projektile auf mich zu
werfen Das ist die einfache Logik verwendet wird, um eine
Angriffsreichweite um
den Feind herum zu erstellen und dann mithilfe der Sensorik
die Projektile
auf den Spieler zu werfen
89. 87 Ein Blick auf das Level: Ordnung. Nun
, da wir mit der Arbeit an diesen KIs fertig sind, lassen Sie uns sie
in ein Level einordnen. Gehen wir zurück zu den Levels und jetzt, wo wir
mit einigen Arbeiten auf
der Entwicklerebene fertig sind , gehen
wir zur ersten Stufe über. Nun, das ist unsere
aktuelle Stufe eins, und wir werden ein
bisschen mehr Leveldesign machen,
weil diese Ebene so
angelegt war, dass sie sehr offen sein sollte. Lassen Sie uns es
so komprimieren, dass es
eine viel kleinere Fläche einnimmt eine viel kleinere Fläche und das ist
eigentlich ganz einfach. Wir holen uns diese beiden Objekte am Anfang
des Levels und
verschieben sie hierher. Okay, viel, viel besser
mit nur dieser Änderung. Und dann haben wir unseren
Spielercharakter. Im Moment ist das also
vom Levelstart an. Oh, es gibt
noch etwas, das wir nicht hinzugefügt haben. Da ist also dieser kleine Block
, den ich dem Level hinzugefügt habe. Okay, ich ziehe ihn hierher. Zieh es hier rüber. Es verhindert im Grunde, dass der Spieler die
Treppe vollständig hinaufgeht, nur einen Block. Und jetzt haben wir diese kleinen Schritte, auf die der Spieler treten
kann, und
bitte stellen Sie sicher, dass innerhalb des
Megascan-Assets, falls Sie ein
Megascan-Asset verwendet haben,
dass, um sicherzustellen, dass die
Kollision korrekt funktioniert, achten Sie darauf, dort nach den
Kollisionseinstellungen zu suchen, und Sie möchten sicherstellen, dass es so eingestellt ist, dass
komplexe Kollisionen als
einfach verwendet werden,
um das zu garantieren Der Spieler kann tatsächlich korrekt darauf
treten. Nun, da wir
das haben, schauen wir mal, wir haben den Spieler, der von hier aus
anfängt. Wir lassen sie reinkommen
und dann
fangen sie damit an, gegen
einen einzigen Nahkampfgegner zu kämpfen einen einzigen Nahkampfgegner Danach bewegen sie sich vorwärts und da oben wird es
einen Feind mit großer Entfernung geben,
und dann gibt es noch
einen Nahkampffeind, gegen den sie kämpfen müssen
,
und dann einen Fernkampffeind und dann gibt es noch
einen Nahkampffeind, gegen den sie kämpfen müssen
, und dann Und wenn sie fertig sind, klettern
sie die
Treppe hinauf und da wird ein
Boss-Charakter sein, okay Lassen Sie uns nun einige grundlegende
zusätzliche Leveldesigns erstellen. Ich hole mir das und kopiere es. Ich mache
das, weil ich will,
mal sehen, okay, das wird mir nicht gut genug
sein. Was wir tun werden, ist
, eine Form hinzuzufügen,
und Sie fragen sich vielleicht, welche Form, wir wollen nur einen einfachen
Würfel. Lassen Sie uns ihn skalieren. Lassen Sie uns die Skalierung freischalten. Ich denke, eine Skala von 50 auf dem X, zehn auf dem Y und dann
50 auf der Horizontalen. Okay? Also, jetzt haben wir
diesen riesigen Schattenwurf, und dann wähle ich diesen Block aus. Ich werde ihn nicht auf Rotation einstellen. Ich werde es auf Bewegung setzen. Lass es uns auf diese Weise vorantreiben. Nett. Jetzt wirft es also diesen riesigen Schatten dort drüben. Lassen Sie mich die Kamera so
nach vorne bewegen und den Schatten nur ein bisschen anpassen
. Okay? Das ist wie
echtes Cheaten bei der Spieleentwicklung, okay? Ein künstliches
Objekt benutzen, um einen Schatten zu werfen. Jetzt ist da also dieser Schatten
, der
ihn meiner Meinung nach viel besser aussehen lässt. Jetzt, wenn du rüberspringst und hierher
kommst, wirst du einige Feinde
haben, gegen die du kämpfen musst. Und wenn die Feinde bekämpft sind , gehst du vorwärts und dann
kletterst du die Treppe hinauf, und in diesem schattigen Bereich
wird der Boss Das ist perfekt. Aber jetzt wirst
du feststellen, dass
unser Sprite-Material nicht auf Licht reagiert Passen wir es also so an, dass es tatsächlich
auf Licht reagiert
und wir deutlich sehen können, wann der Spieler
den Schattenbereich betreten hat Lass uns das im nächsten Video machen. Und dann machen wir
etwas Leveldesign, fügen ein paar Charaktere hinzu
und dann werden
wir das Tutorial
beenden, nachdem ich
dir die letzte Übung gezeigt habe, bei der es darum geht
,
einen Boss-Feind zu erschaffen. Lass uns gehen.
90. 88 So reagierst du Player-Sprites auf Licht: Okay, also ich habe den Spieler direkt um
den Bereich herum platziert, der durch
das kleine Objekt da
drüben verursacht
wird durch
das kleine Objekt da
drüben verursacht
wird , weil die Spieler gerade, wenn sie im
Schatten sind, spät hinschauen Wenn der Spieler im
Licht ist, schaut er spät. So können wir eine
einfache Anpassung
vornehmen , damit es auf Licht reagiert. Gehen Sie also als Erstes in die Einstellungen und stellen Sie sicher, dass Engine-Inhalt anzeigen als auch
Plugin-Inhalt sowohl
Engine-Inhalt anzeigen als auch
Plugin-Inhalt anzeigen ausgewählt sind. Dadurch wird
Unreal Engine mit all ihren
Engines und Plug-in-Inhalten Das ist der Grund, warum
wir das tun, weil wir in
den Player gehen und dann Papier-Klappbuch auswählen und feststellen, dass das
aktuelle Material auf das maskierte
unbeleuchtete Sprite-Material
eingestellt ist , und wir wollen das auf
das maskierte beleuchtete
Sprite-Material ändern , wodurch unser
Sprite Licht empfangen kann. Gehen wir also zu Level eins über und drücken auf Play
. Mir
ist aufgefallen, dass unser Geist jetzt Licht akzeptiert und
darauf reagiert Basiert die Farbänderung auf dem Licht, das
ihn umgibt? Wenn das
Cape buchstäblich kein Licht mehr hat, kann
man sehen,
dass das ziemlich cool ist Und jetzt kannst
du jedes Mal, wenn sich
der Spielercharakter in einen dunklen Bereich
bewegt, in einen dunklen Bereich
bewegt, die Dunkelheit
um ihn herum sehen. Das ist cool. Aber jetzt, wo wir das getan haben, wollen wir dem Charakter ein wenig
Licht verleihen ,
damit er immer
etwas hat, das hell leuchtet. Um das zu tun, gehen wir
einfach in den Helden wählen die Kapselkomponente aus. Und was wir tun wollen,
ist Licht hinzuzufügen. Okay, wir beginnen
mit einem einfachen Punktlicht. Lass es uns
hierher ziehen. Und hier drüben. Und der Charakter wird immer ein bisschen
Licht mit sich
herumtragen. Bewege es in Richtung des Charakters. Mal sehen, wie das aussieht. Beachten Sie, dass es
ein bisschen zu hell ist, es leuchtet auf allem. Aber wenn sich der Spielercharakter jetzt in einem dunklen Bereich
befindet, leuchtet
er immer noch hell. Wir können reinkommen. Heben Sie es an
und bewegen Sie es weiter nach
hinten, um es etwas weicher zu machen, und dann ist es jetzt viel besser,
nicht sichtbar in hellen Bereichen Aber sobald du
in einen dunklen Bereich gehst, nur ein
bisschen Licht auf den
Spielercharakter
gebracht, was ihm wirklich
hilft, in der Szene ein bisschen
y-förmiger auszusehen Okay. Jetzt können
Sie alle Arten von
Anpassungen an der Beleuchtung vornehmen. Sie können seine Positionierung ändern, Sie können ändern, wo es sich befindet. Es hängt alles von dir ab, aber das ist einfach eine coole Art, deinem Sprite etwas Leben einzuhauchen
91. 89 Allgemeine Feinheiten für das Level: Ordnung. Also lass
mich schnell etwas behutsames, langsames
Level-Design machen. Also habe ich hier
eine weitere Plattform
hinzugefügt, diese hier hinzugefügt. Okay, lass uns schnell nachsehen. Kann der Spieler
diese Plattform erreichen? Ja, der Spieler kann
diese Plattform erreichen. Das ist gut. Lass mich das kopieren und einfügen. Stellen Sie sicher, dass diese
beiden richtig zusammenpassen. Kann der Spieler auf
diese Plattform springen und
dann diese hervorragende. Stellen Sie jetzt sicher, dass es
eine kleine Herausforderung ist. Es ist immer gut,
einen arrangierten Feind an einem Ort zu platzieren, der
für den Spieler schwer zu erreichen ist. Lassen Sie mich seine Position
ein wenig erhöhen. Lass uns sehen. Iss es und es ist nett. Jetzt, wo der
Fernkampffeind da oben ist, bin
ich hier drüben und
setze ein, warte, lass mich sicherstellen,
dass seine Position minus eins,
minus 20 ist eins,
minus 20 Nun, das ist ein Feind aus der Ferne. Ich werde einen weiteren
Fernkampffeind hier drüben platzieren. Negativer Punkt bei der
Positionierung, gut. Dann werde ich
ein Nahkampf-Neem drüber legen. Das ist die nächste Phase
der Spieleentwicklung. Wenn Sie
mit Ihrer Planung fertig sind, werden
Sie
Ihre Codegrafiken und Animationen und dann Audio erstellen. Dadurch werden einzelne Komponenten erstellt,
aber
einzelne Komponenten machen das Spiel
nicht wirklich zu diesem Feind, dem
Spielercharakter, den Levels. Was ein Spiel wirklich ausmacht, ist, wenn diese Komponenten so
zusammengefügt werden , dass sie miteinander
interagieren. Oh, das tut mir leid. Hast du bemerkt, dass es
Schwierigkeiten hat, sich zu bewegen, warum? Weil die Navigation fehlt. Lass uns schnell hinzufügen, mal sehen, ein großes Nervengeflecht begrenzt das Volumen Lassen Sie mich seine Größe hier
auf etwa 20 erhöhen, ausgezeichnet, und dann
seine Höhe auf etwa 20 erhöhen Das ist zu tief. Nein, ich
brauche nicht viel Breite. Stellen wir das auf etwa zehn ein. Gut und dann verschiebe es über all diese
verschiedenen Charaktere. Okay. Nun, was seine Höhe angeht, es zunächst auf den
Boden
fallen, erhöht dann
aber die Höhe erheblich auf, lass es zunächst auf den
Boden
fallen, erhöht dann
aber die Höhe erheblich auf, sagen wir, 20, damit es diese
Navigationsbereiche betrachten kann diese
Navigationsbereiche betrachten Okay, 20 sind vernünftig. Vielleicht können wir ein bisschen höher gehen. Lass uns das 30 machen. Gut. Da sind diese Navigationsgrenzen, vergrößern Sie ihre Breite ein wenig, erhöhen Sie ihre Länge um etwa 30. Ich denke, 30 ist genau
das Richtige für hier. Dann, da das den
Autofeind blockiert, ist das gut genug. Dann kopieren wir das Bounds-Volume, um
ein zweites Bounds-Volume zu erstellen. Und dieses gebundene Volumen wird
einfach seine Breite verkleinern , weil das nächste Band nur noch gültig
ist Ich möchte nicht, dass es
bis zur Treppe reicht. Hier sind wir perfekt
und dann kopieren wir das und fügen es in
die Welt ein, und hier. Dieses nächste
Bounds-Volumen muss
noch kleiner sein , weil es nur die Arena hier drüben verwalten
muss Nett. So können sich unsere Feinde
in all diesen Gebieten bewegen. Als Nächstes setze ich einen weiteren
männlichen Feind hier drüben ein. Das sind natürlich zwei. Und Valla, wir haben die Voraussetzungen für ein
sehr grundlegendes Niveau. Hallo. Jetzt sind unsere Feinde tatsächlich
in der Lage, uns richtig zu verfolgen. Der ist tot. Nett. Jetzt kommen wir her werden
uns
magische Bälle zugeschmissen. Hey, hey, du stirbst, du stirbst. Der ist auch tot. Und jetzt sterben zwei,
und jetzt, wo das geschehen ist, gehen
wir triumphierend weiter Beachten Sie, dass dieses
Sprite-Material noch nicht zu spät kommt, also werden wir einige Anpassungen
nur an diesem Sprite-Material
vornehmen nur an diesem Also wählen wir den Feind aus
der Ferne aus,
gehen in den Viewport, wählen das Papier-Klappbuch aus
und passen es an das Material der
späten Sprite-Version Und dann
fügen wir ein Punktlicht hinzu. Okay. Lass es
uns eigentlich hierher bringen. Irgendwie hier. Das ist okay. Und dann werden
wir schnell die
Lichtfarbe auf Grün
einstellen. Oh, das ist grün. Perfekt. jetzt
, wo wir
das Licht auf Grün eingestellt haben,
werden wir
als Nächstes den Radius verkleinern Lass uns sehen. Wir werden den Dämpfungsradius gleich nach unten reduzieren. Nein 200. Lass uns 150 machen. 150 sind nicht genug, 100. Nett. Nun, das ist ein netter kleiner
Dämpfungsradius. Das ist gut. wir zum Level zurück. Und dieses Mal, glaube ich, lass mich den Spielercharakter
nehmen und ihn weit
hierher bewegen , damit wir schnell
zur Action kommen und diesen Kerl töten können zur Action kommen und diesen Kerl töten Nett, komm her. Jetzt sieh dir das an. Oh,
aber wir haben ein Problem. Also, im Moment in der Reichweite Enemy, das Rampenlicht ist
unter dem Flipbook, also wird es umgedreht Jetzt verbinden wir es mit der Kapselkomponente
, damit es nicht umkippt Okay. Tschüss. Jetzt ist es spät und es
leuchtet grün. Aber wir können die
Position des grünen Glühens jederzeit anpassen. Wir können es näher an
den Füßen platzieren und
es ein bisschen zurückziehen Nur ein bisschen. Wir können die
Intensität auf 2.500 senken und dann den
Dämpfungsradius
etwas erhöhen und dann die
Intensität wieder auf 1.500 senken Lassen Sie uns nun einen
Blick darauf werfen, wie es bei Gain aussieht. Bitte stirb. Ich greife
dich an, tschüss. Jetzt sieht es okay aus, aber es ist jetzt ein bisschen
zu nah am Boden. Haben wir, aber das ist cool. Es ist immer noch kalt, das zu sehen. Erhöhen wir es ein bisschen. Zurück hier und dann noch
ein bisschen höher . Das
sollte in Ordnung sein. Das nächste, was wir
tun werden, ist in der EM-Distanz, lassen Sie uns das Projektil öffnen und dann
fügen wir ein Licht hinzu, ein LICHT, ein
Punktlicht Okay. Ich werde
es hierher schleppen. Und dann wird die
Lichtfarbe natürlich grün
sein, so schönes Grün. Und dann
wird der Dämpfungsradius auf etwa 1:50 sinken 150 ist zu viel. Lass uns 100 draus machen und schauen, ob das auf
welcher Kugel ist? Okay. Schauen wir uns jetzt an,
wie die Projektile aussehen Ein Projektil auf mich losgegangen? Ja, die Projektile haben jetzt ein nettes kleines Licht
, das sich mit ihnen bewegt Es ist nur eine sanfte Berührung. Denken Sie daran, natürlich können
Sie Oh, mein Gott. Stirb, stirb, stirb. Okay, du bist weg. Also, das alles ist nur, um dir ein paar kleine Details zu
zeigen. das, ohne
Ihr eigenes Audio oder die
Hitzeeffekte und den Schaden hinzuzufügen . Jetzt ist es Zeit für mich,
im nächsten Video werde
ich
dir deinen letzten Test geben, darin
bestehen wird, einen Boss-EM
zu erstellen. Mit allem, was du gelernt hast, sollte
alles zusammenpassen.
92. 90 Mache dir einen Cheffeind als Abschlussübung: Nun, da du alles
gelernt hast, was
ich
dir über die Grundlagen
der 2,5-D-Entwicklung beibringen muss , bist du jetzt bereit für
deine letzte Übung Was ihr nun in
diesem Bereich oder dem Bereich, den ihr für euren
Boss-Charakter
vorgesehen habt, tun werdet diesem Bereich oder dem Bereich, den ihr für euren
Boss-Charakter
vorgesehen habt für euren
Boss-Charakter
vorgesehen ,
ist, einen Boss-Feind zu
erschaffen, und das ist euer letzter
Übungstest, bevor ihr mit der Erstellung
eurer eigenen Spielprojekte weitermacht Die Animationen,
die du für dieses Projekt verwenden wirst ,
befinden sich alle in einer einfachen, kostenlosen Vorlage auf jedem Punkt-IO namens Demon
Slime. Sie enthält viele verschiedene Animationen,
von einem kleinen Blob bis
hin zu einem
voll ausgereiften Boss-Charakter. Es hat eine Angriffsanimation, es gibt einen Stopp und es gibt Flammen sowie Der Link
dafür wird nun im Kurs
enthalten sein. Sobald Sie das haben
und es importiert haben, verfügen
Sie jetzt über
das gesamte Wissen, das Sie benötigen, um einen einfachen Boss zu erstellen. Ein einfaches Beispiel dafür,
was Sie tun könnten, ist dass der Boss kommt
und den Spieler angreift. Das ist ein vereinfachtes
Beispiel, okay? Und dann kannst du andere
Dinge tun, wie zum Beispiel
Schlagen, sodass
der Boss, sobald er
bis zu einem bestimmten Level angegriffen wurde, in einem arrangierten Feind erscheint Hoffentlich schaffe
ich das jetzt mit einem Versuch. Es hat mich beschädigt. Das Spiel ist vorbei. Okay. Also das ist ein
einfaches Beispiel. Nun, es gibt viele
Möglichkeiten, Boss-KI zu entwerfen, aber ein kurzer Tipp, den ich Ihnen geben
möchte ist, dass
diese aus
zwei verschiedenen Phasen besteht. In der ersten Phase führt sie
lediglich einen
Nahkampfangriff aus, wenn sie sich in Reichweite befindet In der zweiten Phase erscheint
es in einem
einzigen Fernkampffeind , der den Spieler
angreifen soll Das ist nur eine einfache Reihe von Beispielen dafür, was Sie tun
könnten, um kreativ zu sein Wenn du den Baumstumpf
hinzufügst, könntest du ihn so einrichten,
dass er in Phase eins zufällig zwischen
einem Nahkampfangriff und dem Stumpf auswählt oder
das eines Zauberspruchs
als Animation aufgerufen werden kann
,
bevor er den Feind aus der Ferne hereinbringt Es gibt viele Möglichkeiten, einen Boss
zu erstellen. Ich kann nur Empfehlungen aussprechen. Es liegt an Ihnen
als Spieleentwickler,
Dinge für sich selbst zu erstellen. Mit dieser letzten
Übungsübung möchte
ich mich bei Ihnen dafür bedanken, dass
Sie
den 2,5-D-Kurs zur
Spieleentwicklung abgeschlossen haben. Ich hoffe, du hast
viel gelernt , um dich
in der Spieleentwicklung voranzubringen. immer daran, alles zu
durchdenken und zu
planen, bevor du etwas ausführst. Und denken Sie zum Schluss daran,
dass es wirklich übertrieben
ist, Dinge im Voraus zu planen, okay? Planung ist okay. Scheuen Sie sich als
Spieleentwickler also nicht, einfach Dinge
aufzuschreiben und diese als Leitfaden zu
verwenden. Und mein letzter einfacher Tipp ist um zu vereinfachen wie Sie gerne Spiele entwickeln Fangen Sie immer mit einem
generalisierten Design an, fahren Sie
dann mit dem Code fort und dann, eher
nach dieser Grafik Und dann, zum Schluss, Audio für das,
was auch immer
Sie für Ihr Spiel tun Bis zum nächsten Mal, wenn wir uns treffen, bin
ich Hyper-Entwickler und
kann mir
bei Fragen eine Nachricht schicken, aber ich hoffe, du hast in diesem Kurs
viel gelernt Ansonsten geh raus
und vergiss nicht, dass dein Traumspiel sich nicht selbst
entwickelt. Ich wünsche dir alles Gute.