Erstelle ein 2.5-D-Spiel in Unreal Engine 5 | Hyper Dev | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Erstelle ein 2.5-D-Spiel in Unreal Engine 5

teacher avatar Hyper Dev

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Übersichtsvideo

      5:40

    • 2.

      001 Hol dir Unreal Engine und beginne das Projekt

      2:43

    • 3.

      002 Entwicklerstufe einrichten

      5:12

    • 4.

      003 Paper Zd installieren und Startups auf Entwicklerniveau belasten

      4:32

    • 5.

      004 Der Welt einen Spielcharakter hinzufügen

      8:23

    • 6.

      005 Importieren von Kunst in Unreal Engine für die Spielfigur

      4:43

    • 7.

      006 Eine einfache Idle-Animation einrichten und Sprites und Flipbooks verwalten

      9:57

    • 8.

      007 So planst du dein Spiel

      5:08

    • 9.

      008 Eine ausführliche Erklärung zum Hinzufügen von Controller-Eingaben

      18:03

    • 10.

      009 Bewegungen nach links und rechts mit Tastatur und Controller

      8:15

    • 11.

      010 Zwang hinzufügen, Stick Drift korrigieren und Spielerposition festlegen

      2:36

    • 12.

      011 Paperzd für das Animationsmanagement einrichten

      10:38

    • 13.

      012 Die Idle-Animation durch Paperzd spielen

      5:29

    • 14.

      013 Play The Run-Animation durch Paperzd

      6:35

    • 15.

      014 Changine Sprite-Richtung basierend auf Bewegungsrichtung

      4:51

    • 16.

      015 Laufende Audiodateien hinzufügen

      9:18

    • 17.

      016 Hinzufügen von Spatial-Running-Sound bei Landung des Sprite-Fußes

      10:38

    • 18.

      017 Verwenden von Kommentaren zum Organisieren von Blueprint-Knoten

      0:18

    • 19.

      018 Steuerungseinrichtung und Code zum Hinzufügen eines Sprungs

      5:11

    • 20.

      019 Eine Jump-Start-Animation hinzufügen

      4:36

    • 21.

      020 Logik von Jump-Animationsübergängen

      7:02

    • 22.

      21 Jump-Start-Sound

      5:48

    • 23.

      22 Jump-Landungsgeräusche

      4:51

    • 24.

      23 Plattformen für Plattformen hinzufügen

      4:38

    • 25.

      24 So passt du Spielerbewegungen und Sprünge an

      6:55

    • 26.

      25 Hinzufügen von Platformer 3D-Plattform-Assets von Quixel

      4:50

    • 27.

      26 So fügst du Assets aus dem unreal Engine Store für deine Umgebung hinzu

      1:29

    • 28.

      27 Elemente hinzufügen Teil 2

      4:24

    • 29.

      28 Schau mir bei der Gestaltung eines Grundlevel-Designs zu und wie ich über Grundlevel-Levels denke.

      21:51

    • 30.

      29 Teilen Feedback Lehr- und Lernqualität

      1:19

    • 31.

      30 Kursfortschritts-Wissensprüfung

      4:17

    • 32.

      31 Entwicklerstufe auf „Clear“ zurücksetzen

      3:28

    • 33.

      32 Ein einfaches Gesundheitssystem erstellen Teil 0

      2:28

    • 34.

      32 Erstellen eines einfachen Gesundheitssystems Teil 1

      3:04

    • 35.

      33 Ein einfaches Gesundheitssystem erstellen Teil 2

      10:09

    • 36.

      34 Ein einfaches Gesundheitssystem erstellen Teil 3 Ein beschädigtes Objekt hinzufügen

      13:18

    • 37.

      35 Überprüfen, ob der/die Spieler:in lebendig oder tot ist, wenn er/sie Schaden erleidet

      3:57

    • 38.

      36 So erstellst du eine Benutzeroberfläche für den Death Screen

      15:59

    • 39.

      37 Hinzufügen des DeathScreens zum Tod

      5:12

    • 40.

      38 Hinzufügen von Funktionen zum Todesbildschirm

      5:59

    • 41.

      39 Spielerangriffseingaben hinzufügen

      3:56

    • 42.

      40 Ein Kampf-Mockup erstellen Teil 1

      20:26

    • 43.

      41 Einen Spielerangriff machen Teil 1

      14:45

    • 44.

      42 So erstellst du einen Spielerangriff Teil 2 Codeänderungen

      11:00

    • 45.

      43-Spieler-Schwertangriff-Animation Teil 1

      7:22

    • 46.

      44-Spieler-Schwertangriff-Animation Teil 2

      5:29

    • 47.

      45 Luftschwertangriff-Animation

      5:44

    • 48.

      46 So verwendest du benutzerdefinierte Animationsbenachrichtigungen für Sword Hitbox

      8:35

    • 49.

      47 Hinzufügen von weiteren Angriffsanimationen für das Combo-System

      15:49

    • 50.

      48 Erste Schritte mit der Eingabepufferung

      9:44

    • 51.

      49 Einrichten des Basis-Combos mit Hard Input Lockout

      12:37

    • 52.

      50 Kurzer Überblick vor der weiteren Integration des Combo-Systems

      3:28

    • 53.

      51 Angriffslink zum ersten Schwertangriff hinzufügen

      15:14

    • 54.

      52 Angriffslink zum zweiten Schwertangriff hinzufügen

      8:59

    • 55.

      53 Fertigstellung von Combo-Links und Resets für das Grounded Combo

      19:55

    • 56.

      54 Überprüfen, ob der Spieler für Schwertangriffsrouten aus der Luft fährt

      8:36

    • 57.

      55 Einrichten von Animations-Vorlagen für Air Combo

      8:20

    • 58.

      56 Die Luftkombo-Logik einrichten

      9:39

    • 59.

      57 Die Luftkombinationslogik verfeinern

      18:25

    • 60.

      58 Spieler im Bereich erkennen

      8:50

    • 61.

      59 Die KI zum Spieler hin bewegen

      7:04

    • 62.

      60 Anpassung der KI-Bewegung zum Spieler

      11:59

    • 63.

      61 Sensorkomponente anpassen und Theorieentwicklung zum Timing

      6:04

    • 64.

      62 Hinzufügen eines sichtbaren Sprites für den Nahkampfgegner

      6:48

    • 65.

      63 Gehende Animationen in PaperZD hinzufügen

      9:14

    • 66.

      64 Melee Enemy Attack Sprite hinzufügen

      4:50

    • 67.

      65 Melee Enemy KI Übersicht und Codekommentare

      7:59

    • 68.

      66 Damage Hitbox für Nahkampfangriffe hinzufügen

      11:32

    • 69.

      67 Linking Attack Animation mit Code für Nahkampffeind

      13:59

    • 70.

      68 Hinzufügen der Funktion „Zurücksetzen des Angriffszustands“

      10:01

    • 71.

      69 Den Spieler davon abhalten, die KI zu durchlaufen

      1:53

    • 72.

      70 KI des Nahkampfgegners Nerfing

      3:34

    • 73.

      71 Todesanimation für KI und einige Logiktheoriebildungen

      6:04

    • 74.

      72 Die KI-Gesundheitsleiste sichtbar machen und einige Anpassungen vor dem nächsten Schritt

      3:59

    • 75.

      73 Melee-Feindhitstun und Death in einem

      11:29

    • 76.

      74 Den angeordneten Feind einrichten

      2:59

    • 77.

      75 Einfache Idle-Animation für den angreiften Feind

      6:22

    • 78.

      76 Erzeuge ein Projektil, das beim Start an den Spielerstandort geht

      13:27

    • 79.

      77 Einrichten eines Animationsplans für einen Feind im Rampenbereich

      12:23

    • 80.

      78 Linking Throw Animation mit Projectile Spawn

      7:12

    • 81.

      79 Anpassen der Sprite-Richtung an den Spielerstandort

      4:42

    • 82.

      80 Hinzufügen von Sprite zum Zauberball

      3:09

    • 83.

      81 Changine-Richtung des Zauberballs

      9:03

    • 84.

      82 Hit-and-Tod-Animations-Combo einrichten

      6:37

    • 85.

      83 Ranged Enemy setzt auf Hitch bei jeglichem Schaden

      10:05

    • 86.

      84 Angriffsverzögerung nach einem Treffer einstellen

      11:41

    • 87.

      85 So verhinderst du, dass deine Feinde aneinander hänhängen bleiben

      1:47

    • 88.

      86 Erstellen eines Angriffsbereichs für den angeordneten Feind

      3:46

    • 89.

      87 Ein Blick auf das Level

      4:57

    • 90.

      88 So reagierst du Player-Sprites auf Licht

      3:17

    • 91.

      89 Allgemeine Feinheiten für das Level

      10:07

    • 92.

      90 Mache dir einen Cheffeind als Abschlussübung

      4:28

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

7

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Entwickelt für absolute Anfänger:innen, die in die Spielentwicklung Unreal Engine einsteigen. Lerne, wie du einen 2.5D-Plattformer in der Unreal Engine erstellst.

Plattformer-Spiele sind eine der besten Möglichkeiten, in das Spieldesign einzusteigen. Erfahre, wie du ein Plattformer-Spiel in einen vollständig spielbaren Zustand bringst. Du gehst von einem leeren Projekt durch alle Schritte, die ein guter Spieleentwickler unternimmt, um ein vollständig spielbares Spiel zu erstellen.

Das Tempo ist genau richtig eingestellt, damit du nie verwirrt wirst oder ohne das richtige Maß an Wissen in ein Thema gehst.

Während des Kurses wirst du nicht nur eine Kopie einfügen von dem, was ich mache. Stattdessen werde ich dir beibringen, wie man wie ein/-e Spieleentwickler:in denkt, damit du in der Lage bist, die Spiele zu erstellen, die du willst.

Ich hoffe für dich, dass du nach diesem Kurs die Spielidee fertigstellst, die du im Kopf hattest, und sie startest. Ich selbst bin ein begeisterter Gamer und freue mich schon auf die Reise, die du kreieren wirst.

Für alle, die von UNITY ENGINE kommen, ist dies der richtige Kurs für dich. Er bringt dir alles bei, was du brauchst, um mithilfe von Vorlagen für die Erstellung der Spiele, die du erstellen möchtest, auf den neuesten Stand zu kommen. Von einem Unternehmen gebaut, das von Spieleentwicklern betrieben wird.

Viel Glück.

Triff deine:n Kursleiter:in

Teacher Profile Image

Hyper Dev

Kursleiter:in

Join me for some learning on how to make production ready games. Tutorials that give you the full scope of what you need to do to get a game totally ready for release.

They are made for people going from being a hobbyist to a professional game developer who wants to earn a living by selling games.

Vollständiges Profil ansehen

Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

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.