Unreal Engine 5: Blueprint-Skripte 101 | Greg Wondra | Skillshare

Playback-Geschwindigkeit


1.0x


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

Unreal Engine 5: Blueprint-Skripte 101

teacher avatar Greg Wondra, Unreal Authorized Instructor

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.

      Kurs-Werbevideo (Über den Kurs)

      1:10

    • 2.

      Kursanleitung

      4:09

    • 3.

      Herunterladen und Installieren

      3:33

    • 4.

      Projekt erstellen

      3:03

    • 5.

      Beispiel für einen Entwurf

      9:10

    • 6.

      Komponentenbedienfeld

      18:35

    • 7.

      Reiter für den Ansichtsbereich

      14:40

    • 8.

      Detailfenster

      7:44

    • 9.

      Mein Blueprint-Panel

      7:54

    • 10.

      Ereignisdiagramm

      14:12

    • 11.

      Konstruktionsskript

      16:36

    • 12.

      Klassenentwürfe

      6:19

    • 13.

      Ebenen-Entwürfe

      15:35

    • 14.

      Knotentypen

      7:48

    • 15.

      Ausführung und Datenpins

      6:45

    • 16.

      Knotenverdrahtung

      6:40

    • 17.

      Knotenorganisation

      10:29

    • 18.

      Ebene BP – Entwurf von Zeitobjektreferenzen

      10:44

    • 19.

      Ebene BP - Referenzen zu Laufzeitobjekten

      16:57

    • 20.

      Klasse BP - Entwurfszeitobjektreferenzen

      10:58

    • 21.

      Klasse BP - Laufzeitobjektreferenzen

      13:33

    • 22.

      Referenzen zu gegossenen Objekten

      14:27

    • 23.

      Widget BP-Referenzen

      11:33

    • 24.

      Tag-Referenzen

      10:40

    • 25.

      Ereignis Spiel beginnen

      10:03

    • 26.

      Ereignis-Haken

      12:52

    • 27.

      Ereigniseingabe

      15:40

    • 28.

      Ereignisachse

      18:42

    • 29.

      Ereignisbeginnüberschneidung

      13:02

    • 30.

      Ereignisendeüberlappung

      5:26

    • 31.

      Ereignisbeginn Zeigen Sie den Mauszeiger über

      11:34

    • 32.

      Ereignisende-Cursor über

      3:57

    • 33.

      Ereignis auf das geklickt wurde

      5:31

    • 34.

      Ereignis am veröffentlicht

      2:11

    • 35.

      Ereignis-Treffer

      12:21

    • 36.

      Ereignis eines Schadens

      8:25

    • 37.

      Ereignispunktschaden

      7:44

    • 38.

      Ereignisradialer Schaden

      8:48

    • 39.

      Ereignis wurde zerstört

      8:44

    • 40.

      Benutzerdefinierte Ereignisse

      14:40

    • 41.

      Variablenübersicht

      9:26

    • 42.

      Boolesche

      9:54

    • 43.

      Ganzzahl

      12:02

    • 44.

      Schweben

      14:36

    • 45.

      Name

      12:11

    • 46.

      Schnur

      9:33

    • 47.

      Text

      13:54

    • 48.

      Vektor

      8:01

    • 49.

      Rotator

      16:38

    • 50.

      Transformation

      11:03

    • 51.

      Schauspieler (Objekt)

      9:18

    • 52.

      Variable Dinge, die Sie wissen sollten (Teil #1)

      11:53

    • 53.

      Variable Dinge, die Sie wissen sollten (Teil #2)

      9:36

    • 54.

      Variable Tipps und Tricks

      12:27

    • 55.

      Funktionsübersicht

      7:20

    • 56.

      Schauspielerfunktionen

      6:14

    • 57.

      Klassenfunktionen

      7:52

    • 58.

      Komponentenfunktionen

      4:31

    • 59.

      Erstellen von Funktionen

      11:39

    • 60.

      Aufruffunktionen

      15:05

    • 61.

      Zusammenbrechen bis Funktionieren

      14:09

    • 62.

      Reine und unreine Funktionen

      11:18

    • 63.

      Funktionsbibliothek

      17:17

    • 64.

      Lokale Variablen

      10:55

    • 65.

      Funktionen Wichtige Informationen

      15:17

    • 66.

      Makros im Überblick

      8:43

    • 67.

      Erstellen von Makros

      13:23

    • 68.

      Zu Makro zusammenbrechen

      7:39

    • 69.

      Makrobibliothek

      15:32

    • 70.

      Array

      16:00

    • 71.

      Festlegen

      10:45

    • 72.

      Karte

      18:12

    • 73.

      Liste

      14:34

    • 74.

      Struktur

      18:31

    • 75.

      Überblick über die Durchflusssteuerung

      3:56

    • 76.

      Niederlassung

      10:21

    • 77.

      Sequenz

      7:15

    • 78.

      Einmal ausführen

      8:01

    • 79.

      Tun N

      5:10

    • 80.

      Flip Flop

      10:23

    • 81.

      Tor

      9:53

    • 82.

      Mehrgängiges Tor

      9:17

    • 83.

      Für Loops

      17:30

    • 84.

      Für Jede Schleife

      14:17

    • 85.

      while-Schleife

      7:57

    • 86.

      Schalter

      18:31

    • 87.

      Auswählen

      18:13

    • 88.

      Gießerei

      11:30

    • 89.

      Direkte Kommunikation (Teil 1)

      8:53

    • 90.

      Direkte Kommunikation (Teil #2)

      12:20

    • 91.

      Ereignis-Dispatcher

      16:08

    • 92.

      Blueprint-Schnittstellen (Teil 1)

      15:39

    • 93.

      Blueprint-Schnittstellen (Teil 2)

      8:55

    • 94.

      Übergeordnete Klasse (Basisklasse)

      12:50

    • 95.

      Kinderklasse (Teil #1)

      14:09

    • 96.

      Kinderklasse (Teil #2)

      13:17

    • 97.

      Framework-Übersicht

      4:32

    • 98.

      Spielmodus (Teil 1)

      11:47

    • 99.

      Spielmodus (Teil 2)

      10:50

    • 100.

      Pfand

      9:52

    • 101.

      Charakter

      11:47

    • 102.

      Spieler-Controller

      19:38

    • 103.

      Spielinstanz

      18:31

    • 104.

      Kompilierer

      9:21

    • 105.

      Haltepunkte

      14:33

    • 106.

      Werte überwachen

      7:50

    • 107.

      Nachrichtenprotokoll

      8:07

    • 108.

      Suchen

      8:19

    • 109.

      Lesezeichen

      4:06

    • 110.

      Palette/Favoritenfenster

      5:23

    • 111.

      Zusammenklappende Knoten

      8:02

    • 112.

      Benutzerdefinierte Layouts

      6:17

    • 113.

      Tipps und Tricks

      9:59

    • 114.

      Produktivitäts-Hotkeys

      15:55

  • --
  • 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.

1.285

Teilnehmer:innen

4

Projekte

Über diesen Kurs

Wenn Sie schon immer mal Ihre eigenen Spiele programmieren wollten, aber keine Erfahrung haben oder wissen, wo Sie anfangen sollen, dann ist dies der richtige Kurs für Sie!

Im Inneren bringt dir der Spieledesigner und Pädagoge Mr. Wondra alle grundlegenden Konzepte, Fähigkeiten und Techniken bei, die du brauchst, um Blueprint Scripting zu meistern – das visuelle, knotenbasierte System der Unreal Engine zur Erstellung funktionaler Gameplays.

In diesem Kurs lernst du:

  • Erstellen und Einrichten von Unreal Engine-Projekten

  • Erstellen und Verwenden von Ereignissen, Funktionen, Makros und Variablen

  • So erstellen Sie verschiedene Arten von Blueprints
  • So kommunizieren Sie zwischen Blueprints

  • Erstellen von Eltern-/Kind-Klassen (Vererbung)

  • So kompilieren und debuggen Sie Blueprints

  • So erstellen Sie VIELE nützliche Skripte: 
    • Erstellen von Abholskripten
    • Erstellen von interaktiven Objektskripten
    • Erstellen von Skripten für bewegliche Objekte
    • Erstellen einfacher Feindskripte
    • Erstellen von Verfahrensinhaltsskripten
  • Tipps und Tricks um ein effizienter Scripter zu werden!

Für wen ist dieser Kurs geeignet?

Kurz gesagt, ALLESchüler und Studenten (12 - 70!) und vom absoluten Anfänger bis hin zu erfahrenen AAA-Spieleentwicklern haben diesen Kurs immensen Wert gefunden und geschätzt.  Zu den üblichen Teilnehmer:innen gehören:

  • Vollständige Anfänger (noch nie codiert!)
  • Bestehende Unreal-Entwickler (die diese Tools erlernen möchten)
  • Unity konvertiert
  • Lehrkräfte (die einen Lehrplan für die Spieleentwicklung (oder Entwicklungs-) für ihre Kurse suchen) 

Los Geht's!

Mit dem Wissen, das Sie in diesen Video-Lektionen erworben haben, verfügen Sie über das notwendige Know-how und die Fähigkeiten, um mit der Erstellung Ihrer EIGENEN benutzerdefinierten Skripte für Ihre EIGENEN Spieleprojekte zu beginnen!  Ich freue mich schon auf deine Kreationen!

Triff deine:n Kursleiter:in

Teacher Profile Image

Greg Wondra

Unreal Authorized Instructor

Kursleiter:in

Hello! I'm Greg but most of my students know me as "Mr. Wondra." I'm an active game designer and Unreal Engine Authorized Instructor.

As a kid growing up in rural Wisconsin I dreamed of leaving the corn fields and cow pastures to one day become a video game designer. For 12 years I LIVED that dream! I've designed titles for 2K Sports, KingsIsle Entertainment, and Nickelodeon and have had rare lifetime opportunities such as directing LeBron James and Derek Jeter in motion capture sessions.

My design credits include:

- Wizard 101 (PC)

- Lost Planet 3 (360, PS3, PC)

- MonkeyQuest (PC)

- Sports Champions (PS3)

- Major League Baseball 2K5, 2K6, 2K7, 2K8 (various consoles)

- SpongeBob Moves In (Mobile)

- Grub ... Vollständiges Profil ansehen

Level: All Levels

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. Course (Über den Kurs): Willkommen! In diesem Kurs zur Spieleentwicklung für Anfänger lernst du, wie du dein eigenes funktionales Gameplay mithilfe von Blueprints in Unreal Engine five skriptest dein eigenes funktionales Gameplay . Keine Beschichtung oder Unreal Engine erforderlich. Hallo, mein Name ist Greg Wanderer, ein 12-jähriger Branchenveteran, der seit 2016 Spieleentwicklung mit Unreal Engine unterrichtet . Am Ende dieses Kurses haben Sie ein tiefes Verständnis aller Kernkonzepte, die diesen knotenbasierten Programmieransatz vorantreiben . Er umfasst Blueprint-Klassen und -Komponenten, Ereignisse, Funktionen, Makros, Variablen und vieles mehr. Dieser Kurs richtet sich an alle, vom jüngsten Byron-Spieledesigner bis zum Branchenprofi der Saison. Wir beginnen von Anfang an vorausgesetzt, Sie wissen nichts. Aber am Ende wird dieser Kurs als wertvolle Ressource dienen. Sie können immer wieder referenzieren. Also komm schon, schließe dich den Tausenden zufriedener Schüler an, die ihre Reise zur Spieleentwicklung mit mir begonnen haben. Ich kann es kaum erwarten zu sehen, was du kreierst. 2. Course: Willkommen, nur eine kurze Einführung hier, bevor wir zu den guten Dingen kommen, nur damit Sie wissen, wie Sie in diesem Kurs navigieren und maximalen Nutzen daraus ziehen können. Zunächst einmal vielen Dank, dass Sie sich für diesen Kurs entschieden haben. Ich weiß, dass du viele Möglichkeiten hast. Ich nehme es sehr ernst, diese Kurse zu machen. Ich habe mehr als ein Jahr damit verbracht, es herzustellen. Dies ist mein Traumkurs , weil ich denke, dass dies das grundlegendste wichtigste Konzept ist das grundlegendste wichtigste Konzept bei der Arbeit mit Unreal Engine bekommen Sie werden etwas Blueprint-Scripting lernen. Was ist Blueprint Scripting World ist im Wesentlichen eine visuelle, knotenbasierte Art, das Gameplay zu programmieren, ohne auf eine Wand aus Text und Syntax und all dem Jazz zu starren . Wenn Sie also noch nie gesehen haben wie Blueprints Scripting überhaupt aussieht, habe ich hier ein kurzes Beispiel , das Ihnen zeigen soll. Das ist übrigens Unreal Engine Five. Um ein funktionales Gameplay in Unreal mit Blueprint-Skripten zu erstellen , können Sie einfach einige Knoten wie diesen miteinander verbinden. Und was ich hier rausgeholt habe, ist nur eine schnelle Abholung. Ich habe auch diese prozedurale Wand, an der wir erweitern können, wie viele Teile wir haben. All dies wird mit Unreal Engine erledigt , ist Blueprint-Scripting. Also für wen ist dieser Kurs gedacht? Ich verstehe diese Frage oft. Ist es für mich? Nun, ich habe diesen Kurs für alle entworfen. Ich hatte Schüler im Alter von sechs Klassen, Alter von 65 Jahren, die diesen Kurs belegen. Manche wissen irgendwo nichts über Programmieren oder Scripting, komplette Neulinge und andere sind dreifach Entwickler. Ich hatte Schüler von Naughty Dog und Insomniac. Ich mache das aber bei Teach, als wäre es dein erstes Mal. Also keine Bedrohung in einem Hey, ich verstehe nichts über Programmierung, so etwas. Ich beginne ganz vom Boden aus. Wie ist dieser Kurs aufgebaut? Nun, wir werden in diesem Kurs keine bestimmte Sache aufbauen . Vielmehr handelt es sich bei diesem Kurs um einen konzeptbasierten Kurs, der viele sehr nützliche, praktische Beispiele zeigt. Nun habe ich versucht, diesen Kurs so offen wie möglich zu gestalten, was bedeutet, dass er als Ressource für Sie dienen soll, als Repository für Skripting-Wissen , auf das Sie immer wieder zurückgreifen können wieder wie eine zentrale Anlaufstelle für all diese zentralen Skripting-Konzepte Sie sich jemals wünschen und brauchen könnten. Ich meine, das waren all die Fragen , die ich mir auf meiner Lernreise in den letzten zehn Jahren gestellt habe. Aufgrund der Struktur dieses Kurses können Sie jetzt von Lektion zu Lektion springen. Sie müssen nicht linear vorgehen. Obwohl ich empfehle, in Ordnung zu gehen. Jetzt gibt es hier und da vielleicht ein paar Lektionen , die sich auf frühere Lektionen beziehen, aber ich werde versuchen, diese herauszurufen, wenn sie auftreten, und das auf ein Minimum zu beschränken. Nun, ich möchte darauf hinweisen, dass es äußerst schwierig ist, einen konzeptbasierten Kurs wie diesen zu unterrichten, ohne Zitat, um die hier vorgestellten Konzepte vollständig zu verstehen, werden wir zweifellos begegnen Einige Abhängigkeiten davon , was das bedeutet, sind, dass Sie darüber Bescheid wissen müssen, um das zu verstehen . Und um das zu wissen, müssen Sie darüber Bescheid wissen. Es wird ein Konzept oder eine Fähigkeit vorgestellt, die auf den ersten Blick völlig fremd erscheint. Wisse das a, ich werde es herausrufen und werde dieses Thema später richtig behandeln . gibt es viel, Hier gibt es viel, viel zu besprechen. Und nur um Ihnen eine kurze Einführung zu geben , wie gut ich auf den Unterricht dieses Kurses vorbereitet bin . Ich habe meine Gliederung hier drüben. Dies ist die Gliederung, die ich verwende, um diesen Kurs zu erstellen. Jeder dieser blauen Links, Links zu einer Lektion. Also habe ich, ich habe buchstäblich, ich bin fast zwei Jahre damit verbracht ich bin fast zwei Jahre damit diesen Kurs zusammenzustellen. Auch hier empfehle ich, in Ordnung zu gehen, obwohl Sie herumspringen können. Wenn Sie diesen Kurs für wertvoll halten, hinterlassen Sie bitte eine Bewertung und empfehlen Sie ihn anderen Es gibt nichts Besseres , als ihn anderen zu empfehlen. Ich liebe es, Schülern das Sehen beizubringen, oder sie können bauen. Nichts ist aufregender für mich, als zu sehen, wie die Schüler was ich unterrichtet habe, auf die nächste Stufe bringen. Tat ziemlich aufregendes Zeug. Okay Leute, genug davon. Lass uns zu den guten Sachen kommen. Wir sehen uns alle im nächsten Video. 3. Herunterladen und Installieren: Alles klar, zuerst, bevor wir mit dem guten Zeug weitermachen, müssen wir sicherstellen, dass Sie Unreal Engine heruntergeladen und installiert haben . Wenn Sie dies bereits tun, Sie dieses Video gerne überspringen. Dieser ist für die kompletten Neulinge, dass ich keine Ahnung habe, wohin ich gehen soll, wie ich anfangen soll, und so weiter. Sie mit einem Internetbrowser Ihrer Wahl Geben Sie mit einem Internetbrowser Ihrer Wahl einfach Unreal Engine.com ein. Jetzt haben sie eine Seite mit einigen Download-Anweisungen darauf. Es zeigt Ihnen einige Systemanforderungen wenn Sie sich darüber wundern, dies ist gut für Windows oder Mac, egal was Sie haben. Und das erste, was Sie tun müssen um Unreal Engine zu erhalten, ist, den Epic Games Launcher herunterzuladen. Ja, es ist ein bisschen ein unscharfer Prozess. Wir müssen den Epic Games-Launcher herunterladen, über den wir dann Zugriff auf die Unreal Engine erhalten. Seltsam, ich weiß. Aber fahren Sie fort und klicken Sie auf diesen Download und starten Sie Ihre Option. Sie werden aufgefordert, dieses Installationspaket an einem Dateispiel Ihrer Wahl zu speichern . Ich habe das schon einmal gemacht, aber sobald dies erledigt ist, können Sie darauf doppelklicken, um den Installationsprozess des Epic Games Launcher zu starten den Installationsprozess des Epic Games Launcher Es ist ziemlich einfach. Alles, was Sie tun müssen, ist durch die dargestellten Felder zu klicken . Auch hier habe ich das schon gemacht, also kann ich das hier nicht wirklich replizieren. Ziemlich unkomplizierter Prozess. Sobald Sie das getan haben, sollten Sie in der Lage sein, den Epic Games Launcher zu finden, der entweder angezeigt wird, nachdem dies erledigt ist, oder Sie können ihn hier suchen. Wenn ich hier auf meine kleine Lupe klicke und einfach episch eintippe, kannst du sehen, dass meine Epic Games deine App starten. Auch hier habe ich das schon von hier aus vorinstalliert. Ich kann mit der rechten Maustaste darauf klicken und an meine Taskleiste anheften, was ich bereits gemacht habe. Sobald der Epic Games Launcher mit der Installation fertig ist, haben Sie Zugriff auf den Epic Games-Launcher , den Sie auf der linken Seite über die Registerkarten Store , Bibliothek und Unreal Engine verfügen. Weil wir offensichtlich mit Unreal Engine arbeiten. Sie möchten sicherstellen, dass diese Registerkarte ausgewählt ist , und oben möchten Sie Ihre Registerkarte „Bibliothek“ auswählen. Jetzt installieren Sie hier verschiedene Versionen von unreal. Jetzt, alle paar Monate oder so, erstellt Epic Games eine aktualisierte Version der Engine. Um jedoch eine neue Engine-Version hinzuzufügen, können Sie einfach hier auf diesen gelben Plus-Button klicken . Es wird diese kleine Karte hinzufügen und dann können Sie in diesem Dropdown-Menü klicken, um gezielt eine Version der Engine auszuwählen , die Sie installieren möchten. Jetzt, ab dem heutigen Datum , an dem ich aufnehme ist diese Unreal Engine Fünf noch sehr neu und dies ist die neueste Version der Engine. Welche Engine-Version sollten Sie installieren? Ich würde die neueste Version empfehlen, was auch immer das ist. Wenn ich nun erneut darauf klicke, werden Sie aufgefordert, sie zu installieren, wenn Sie eine andere Version der Engine auswählen . Ich habe das bereits vorzeitig außerhalb der Kamera gemacht, also bin ich bereit, es zu starten, aber wenn Sie hier installieren klicken, installieren Sie diese Version der Engine. Und das kann ein ziemlich langwieriger Prozess sein. Sobald Sie also auf Installieren klicken, sehen Sie, dass sich dieses Epos oder dieses Unreal Engine-Icon wie eine Meterleiste füllt. Und wenn Sie hier auf diese Download-Option klicken, können Sie auch den Fortschritt der Installation von Unreal sehen . Also mach das jetzt. Machen Sie weiter und holen Sie sich einen Drink, essen Sie zu Abend usw. Weil es eine Weile dauern wird. 4. Erstellen eines Projekts: In Ordnung, mit der Installation von Unreal Engine war es an der Zeit, ein Projekt zu erstellen. Und um das zu tun, müssen wir den Motor starten. Jetzt gibt es tatsächlich mehrere Möglichkeiten, die Engine zu starten. Also zeige ich Ihnen diese Methoden jetzt hier im Epic Games Launcher wobei Unreal Engine links ausgewählt ist, die oben ausgewählte Bibliotheksregisterkarte. Wir könnten die Version der Engine starten, die wir gerade installiert haben , indem wir direkt hier klicken. Oben rechts befindet sich eine Startschaltfläche, der ich dieselbe Version der Engine starten kann. Wenn ich jetzt mehrere Versionen der Engine hier installiert habe, kann ich auf dieses Dropdown-Menü klicken. Sie würden alle hier vorgestellt werden. Ich könnte mich für einen entscheiden. Welche Engine-Version ich auch gewählt hatte. Diese Zahl scheint hier rechts zu sein. Sie erneut auf diese gelbe Startschaltfläche klicken diese bestimmte Version der Engine gestartet. Wenn dies alles unpraktisch ist, können Sie eine Verknüpfung erstellen, können Sie eine Verknüpfung erstellen indem Sie auf dieses kleine Dropdown-Menü klicken. Und Sie können hier eine Desktop-Verknüpfung erstellen, die ich bereits vor diesem Video gemacht habe. Es gibt meine Desktop-Verknüpfung. Ich klicke gleich hier auf Launch. Okay, irgendwann kommst du zu einem Pop-up, das so aussieht. Wir erstellen ein Gaming-Projekt, stellen Sie also sicher, dass Sie das Feld links ausgewählt haben. Wir werden auch die Vorlage für die dritte Person verwenden , um uns hier zu helfen. Stellen Sie also sicher, dass Sie das ausgewählt haben. Auf der rechten Seite haben wir ein paar Optionen. Dies wird ein Blueprint-Projekt sein , das standardmäßig ausgewählt ist. Das ist alles gut und gut. Unsere Zielplattform hier wird die Voreinstellung der Desktop-Qualität sein , maximal, Entschuldigung , Inhalt, klar, Raytracing Ihre Wahl, ob Sie das auswählen möchten oder nicht , ich werde Sure sagen. Projektspeicherort, wählen Sie einen Dateispeicherort auf Ihrem Computer aus. Aber den Projektnamen für die Liebe Gottes, lassen Sie das bitte nicht als Standard da ich viel zu viele Schüler sehe. Ändern Sie dies in Blueprint-Skripting. Dann fahren Sie fort und klicken Sie auf Erstellen. Okay, und nach welchen Szenen in Ewigkeit, nachdem wir dieses Projekt erstellt haben, werfen wir unseren ersten Blick auf Unreal Engine Five, den Level-Editor hier. Nun, wenn Sie im unteren rechten Fenster etwas gesehen haben, das besagt, dass Projektdateien veraltet sind. Machen Sie einfach weiter und klicken Sie auf Reparieren. Jetzt um das in Ordnung zu bringen. In der oberen rechten Seite sehen wir den Namen unseres Projekts. Und ich möchte darauf hinweisen, dass Sie, nachdem Sie dieses Projekt geschlossen haben, sofort wieder darauf eingehen können, indem Sie den Epic Games Launcher durchgehen Die Registerkarte Unreal Engine Library enthält meinen Projektabschnitt. In jedem Projekt, das Sie erstellt haben, wird hier unten aufgeführt. Ein Doppelklick darauf öffnet uns dieses spezielle Projekt, was ziemlich praktisch ist. Mission ist hier vollbracht, Leute, wir haben unser erstes Projekt erstellt. Lassen Sie uns im nächsten Abschnitt etwas über Blueprint-Skripting lernen . Wir sehen uns dort. 5. Beispiel für das Blaupause: Willkommen zurück alle. Nun, da unser Projekt jetzt erstellt wurde, lassen Sie uns einfach direkt einsteigen. Lasst uns zu den guten Sachen kommen. In diesem Video ist es unser Ziel, zu definieren, welche Blaupausen in Unreal sind, und dann ein Beispiel für einen in einem Spiel zu zeigen . Und dies wird konzeptionell zeigen , was eine Blaupause ist und wie wir diese bei der Erstellung von Spielprojekten nutzen können. Bevor ich dieses Video drehte, habe ich eine Blaupause erstellt. Ich habe einen Abholplan erstellt, nur um dich darüber zu begeistern , was wir hier im ersten Teil dieses Kurses machen werden . Das ist etwas, das du ständig im Spiel siehst. Also dachte ich, dies wäre ein sehr relevantes Beispiel. Ich klicke hier ganz oben auf diesen grünen Play-Button . Und dabei wird oben links angezeigt, klicken Sie für die Maussteuerung. Wenn ich von Anfang an unterdrückt wurde WAR und ASD passiert nichts. Ich muss zuerst in dieses Fenster klicken , um die Kontrolle über meinen Charakter zu erlangen. Jetzt wurde alles, was du hier siehst, vorgebaut. Das einzige, was ich vor diesem Video gebaut habe , war das sich drehende Kreuz. Wenn ich meinen Charakter hineintreffe, habe ich gesammelt, spiele ich ein wenig Ton. Das siehst du ständig in Spielen. Ich klicke auf Escape , um hier rauszuspringen. Wenn ich jetzt in meine Inhaltsschublade gehe und wenn ich mir den Tooltip, ihre Kontrolle und die Leertaste anschaue , kann ich das auch in die Inhaltsschublade bringen. Hier kann ich auf die Ordner und Ordner in Ordnern in meiner Unreal Engine zugreifen . Ich habe diese Blueprint-Klasse erstellt, ist BP Beispiel Blueprint-Klasse. Vor diesem Video werden wir eines unserer eigenen durch Videos anterior erstellen. Aber ich wollte hier mit der Inhaltsschublade darauf hinweisen, dies ist eine neue Funktion und Unreal Engine fünf, Sie können darauf klicken, um es anzuheben oder zu senken, oder diese Steuerung plus Leertaste ausführen. Für diejenigen unter Ihnen, die etwas mehr Erfahrung haben, oder Veteranen von Unreal, können Sie jedoch die etwas mehr Erfahrung oder Veteranen von Unreal, etwas hinzufügen, noch der Inhaltsbrowser, eine dauerhafte Ansicht davon darstellt Schublade unten auf dem Bildschirm. Also gehe ich unter den Fenster-Inhaltsbrowser und wähle den Inhaltsbrowser aus, der nur eine Kopie des Inhalts-Browsers hier unten im Editor zur Verfügung haben möchte eine Kopie des Inhalts-Browsers hier unten im Editor zur Verfügung haben des Inhalts-Browsers . Das musst du nicht tun. Das ist meine persönliche Präferenz. Dies ist genau das gleiche, wie das Inhaltsfach exakt dieselben Ordner, Inhalte usw. hat. Okay, der Grund, warum ich das mache ist, dass ich hier in meinem Inhaltsordner einen neuen Ordner erstellen möchte . Also klicke ich hier mit der rechten Maustaste auf meinen Inhaltsordner. Ich erstelle einen neuen Ordner und nenne diesen einen Scripting. Dann klicke ich mit der rechten Maustaste auf diesen neuen Skriptordner. Und ich gebe ihm sofort eine Farbe. Und ich klicke einfach mit der linken Maustaste, bewege das. Ich setze es auf blau, denn hey, das ist ein Blueprint-Skriptkurs. Okay, der Grund, warum ich diesen Ordner erstelle, ist viele der dass viele der Assets, die wir während dieses Kurses erstellen werden . Ich möchte, dass sie wie speziell in diesem Ordner sind, damit ich einfach zugreifen kann , damit ich genau weiß, wo sie leben. Jetzt auf der rechten Seite kann ich hier verschiedene Arten von Assets erstellen. Und das kann ich tun, indem ich mit der rechten Maustaste klicke und etwas Leerzeichen. Im MI Rechtsklickmenü kann ich eine neue Blueprint-Klasse erstellen. Jetzt wäre dies ein guter Zeitpunkt für mich, darüber zu sprechen, was unsere Blaupausen in Unreal sind. Dieser Begriff, Blaupausen, bedeutet hier irgendwie zwei Dinge. Blueprints ist das visuelle Skriptsystem innerhalb von unwirklichen, manchmal als Blueprints Scripting bezeichnet. Blueprints sind aber auch Assets wie Blueprint Class Assets, die bestimmte Komponenten, Daten oder Skripts enthalten können , die Ihrem Spiel in irgendeiner Weise, Form oder Form geholfen haben . Es gibt viele verschiedene Blueprint-Typen in unreal. Jetzt ist dieses ganze blaue Drucksystem eine Möglichkeit für Nicht-Programmierer wie mich, ist dieses ganze blaue Drucksystem eine Möglichkeit für Nicht-Programmierer wie mich funktionales Gameplay innerhalb von Unreal zu erstellen, was ziemlich süß ist. So werden Sie in gewisser Weise beschichten, aber auf sehr künstlerische Weise. Was heißt das? Wir werden einige Knoten miteinander verdrahten und es wird optisch viel ansprechender sein als Einsen und Nullen und geschweifte Klammern und all das Zeug. Also hier wähle ich einen Blueprint-Kurs aus. Wenn ich darauf klicke, müssen wir eine Elternklasse auswählen. Auch hier viele verschiedene Arten von Blaupausen, aber im Großen und Ganzen ist der Entwurf der Schauspielerklasse am häufigsten. Dies ist dann ein Objekt, das in der Welt reagiert werden kann. Also lasst uns weitermachen und das auswählen. Erstellen Sie dieses Asset hier unten in unserem Content-Scripting-Ordner. Nennen wir ihm einen Namen. Ich nenne mein BP-Unterstrichen-Scripting-Beispiel. Ich glaube, das ist der Name, den ich möchte, dass er ihm geben soll. Beispiel: Nehmen Sie keine Beispielabholung ab. Das ist der Name, den ich ihm geben wollte. Beispiel Abholung. Deshalb behalte ich Notizen. Drücken Sie Enter. Übrigens, wenn Sie den Namen ändern möchten, können Sie mit der rechten Maustaste klicken und ihn in F2 umbenennen , während Sie ihn ausgewählt haben , werden Sie ebenfalls aufgefordert, ihn umzubenennen. Wenn ich das jetzt in mein Level bringen sollte, kannst du es einfach per Drag & Drop aus deinem Inhaltsbrowser ziehen. Du siehst, dass es hier ein Icon gibt. Aber wenn ich in mein Spiel springen würde, würde ich das Ding nicht wirklich sehen. Dieses Symbol ist nur hier im Editor sichtbar verfügbar. Ich sehe es nicht, wenn ich das Spiel selbst spiele. Jetzt habe ich derzeit einen Rotationsmodus auf diese Treffer auf einige grundlegende Navigationssachen. Der Rotationsmodus ist eingeschaltet. Sie können in den Bewegungsmodus zurückkehren, um dies zu bewegen. Alternativ wechselt Ihre Leertaste zwischen Bewegungen, Drehen oder Skalieren Ihrer Objekte. Alle diese haben auch Hotkeys, die mit ihnen verbunden sind. Okay, das ist also alles gut und gut. Das Sternchen hier unten zeigt , dass es noch nicht gespeichert wurde. Control plus S wird das sagen, oder Sie können mit der rechten Maustaste darauf klicken und auch auf Speichern klicken. Eine weitere Sache, die ich tun möchte, bevor wir dieses Video schließen, ist dass ich ein brandneues Testlevel erstellen möchte. Wir werden eigentlich nicht innerhalb dieses Levels arbeiten. Dies alles dient zu Demonstrationszwecken. Also werde ich ganz oben links unter die Akte kommen. Ich werde ein brandneues Level schaffen. Wenn Sie dies tun, werden Sie aufgefordert, eine dieser verschiedenen Vorlagen auszuwählen. Ich gehe hier mit dem Basis-Level. Klicken Sie auf Erstellen. Das bringt mich aus diesem Level heraus und in ein neues unbenanntes Level. Jetzt müssen wir hier ein paar Dinge tun. Eine davon ist, dass ich dieses Level speichern muss. Wenn ich also hier oben auf dieses kleine Speicherfestplatten-Symbol klicke, wird es mich auffordern, hey, wo willst du dieses Level speichern? Ich werde das in mein Skript-Level setzen. Ich gebe uns einen neuen Namen und nenne diese LV-Unterstrichen-Testkarte. Diese ganze Karte wird nur ein riesiger Test sein. Jetzt werden wir für all diese verschiedenen Blueprint-Konzepte während des gesamten Kurses erforschen . Wir klicken hier auf Speichern. Der Name dieser Registerkarte wird nun in Test-Map geändert. Sie können sehen, dass sich das Asset jetzt in meinem Inhaltsordner befindet. Es wird automatisch diese Test-Mab-Build-Daten erstellen. Sie müssen in diesem Fall nichts tun, aber es wird dies automatisch auch in Ihrem Ordner erstellt . Es gibt noch eine Sache, die ich hier in unseren Projekteinstellungen machen möchte . Das finden Sie in den Einstellungen ganz oben rechts, Projekteinstellungen. Es wird einen neuen Tab bringen. Auf der linken Seite haben wir Karten und Modi. Geh weiter und wähle das aus. Wir möchten unseren Editor-Standard ändern, Karte von der Third-Person-Map auf die gerade erstellte Map starten , eine Level-Test-Map. Wir können einfach hier raus. Und was das tun wird, ist es so zu machen, dass, sobald wir den Editor hier schließen und wieder öffnen, automatisch in dieses Level gelangen. Wir müssen dieses Level hier in unserem Content-Browser nicht finden . Das ist also alles gut und gut. Ich werde dieses Level sehr schnell beenden , indem ich in das Blueprint-Beispiel springe , das ich in meinem Inhaltsordner erstellt habe Ich kann einfach eines davon in meinem Level platzieren und springe in mein Blueprint-Beispiel. Genau hier habe ich diese Ansichtsfenster-Registerkarte, die die verschiedenen Komponenten anzeigt, aus denen mein Blueprint besteht. Und dann habe ich dieses Ereignisdiagramm , das das Skripting, die Knoten und Drähte zeigt , die die Funktionalität für diese speziellen Blueprints erstellt haben. Ich überschneide mich und es spielt ein Geräusch und es zerstört den Schauspieler. Das ist also im Wesentlichen das, was wir in den nächsten Videos hier erstellen werden . Aber Leute, das wird uns in diesem Video so weit bringen, wie ich wollte. Wir sehen uns also im nächsten. 6. Components: Willkommen zurück alle. In diesem Video ist es unser Ziel, einige Komponenten zu unserem neu erstellten Blueprint hinzuzufügen einige Komponenten zu unserem , um Ihnen ein Verständnis dafür zu vermitteln, was sich das Komponenten-Panel in einem Blueprint befindet in einem Blueprint und wie Sie das Beste daraus machen können damit zu arbeiten, weil es viele Nuancen gibt, viele gute Dinge zu wissen, die Ihnen eine Schiffsladung Zeit sparen. Okay, bevor wir dazu kommen, möchte ich dieses BP-Beispiel, das ich vor dem Start des letzten Videos gelesen habe, auslöschen . Wir verabschieden uns also davon, indem wir genau dort im Katalog-Browser auf Löschen klicken . Alternativ können Sie Ihre Inhaltsleiste nutzen. Ich komme in meinen Scripting-Ordner und lege meinen BP-Beispiel-Tonabnehmer in mein Level. Auch hier befindet sich noch nichts in diesem Entwurf, also sehe ich dieses Symbol, aber wenn ich spielen würde, würde ich nichts sehen. Jetzt gibt es mehrere Möglichkeiten, wie wir diesen Entwurf modifizieren können . Eine davon ist, dass wir unten in der Schrägstrichschublade des Inhaltsbrowsers auf sein Asset selbst doppelklicken können . Oder wenn dieses Objekt im Level platziert ist, können Sie in Ihrem Outliner rüberklicken, wo Sie die BP-Beispielaufnahme ausgewählt haben und genau dort BP-Beispiel-Tonabnehmer bearbeiten. Also werde ich darauf klicken. Und wenn Sie feststellen, dass dies nur Daten sind Blueprints passieren manchmal wenn Sie einen Blueprint öffnen, können Sie einfach hier klicken, um den vollständigen Blueprint-Editor zu öffnen . Ordnung. Das ist unser Blueprint-Editor. Ich klicke hier oben auf die Registerkarte „ Darstellungsfenster“. Wir werden hier jeden Aspekt davon im Detail aufschlüsseln . Aber ich gehe zuerst zur Registerkarte Viewport, weil wir einige Komponenten auf der Registerkarte Komponenten hinzufügen werden einige Komponenten auf der Registerkarte Komponenten , die wir dann auf der Registerkarte Viewport anzeigen können. Ich möchte hier darauf hinweisen, dass wir im letzten Video Blaupausen für die Schauspielerklasse gemacht haben. Und siehe da, der oberen rechten Ecke steht, heißt es, Elternklasse sei die Schauspielerklasse. Ordnung, also lasst uns weitermachen und darüber sprechen, was Komponenten sind. Komponenten sind im Wesentlichen die Bausteine einer Blaupause. Wenn Sie an ein Auto denken, die Konstruktion eines Autos, hätte ein Autoentwurf eine Netzkarosserie. Du hättest ein paar Räder, es hätte ein paar Scheinwerfer, Hupe, vielleicht etwas Abgas. Alle diese Komponenten können hier im Bedienfeld „Komponenten“ hinzugefügt werden . Das Bedienfeld „ Komponenten“ befindet sich jetzt standardmäßig oben links im Blueprint-Editor. Jetzt können Sie die Größe dieses Fensters ändern, indem Sie mit der linken Maustaste klicken und es hierher ziehen. Du könntest diese Lasche hier abreißen und an einem ganz anderen Ort platzieren. Sag da unten. Ich entschied mich dafür, es wieder da zu haben, wo es war. Sie können die Registerkarte Komponenten ein- und ausblenden. Wenn ich einfach mit der rechten Maustaste darauf klicken würde, könnte ich diese Registerkarte ausblenden. Wenn ich dort auf die blaue kleine Flagge klicke, kann ich die Registerkarte anzeigen. Ich kann mit der rechten Maustaste darauf klicken und an die Seitenleiste andocken und sie hierher verschieben, wenn ich möchte. Und ich klicke einfach so darauf damit ich in der Seitenleiste wieder mit der rechten Maustaste darauf klicken kann. Viele Optionen hier. Ich kann dieses Komponenten-Panel auch komplett loswerden , indem ich auf das X klicke. Die Schüler machen das von Zeit zu Zeit, dann flippen sie aus und fragen sich, wie bekomme ich das Fenster zurück? Nun, wenn Sie hier oben unter Ihre Windows-Option fallen, siehe da, Sie haben eine Komponentenoption. Da hast du es. Ordnung, fügen wir einige Komponenten zu unseren Bauplänen hinzu. Also haben wir uns hier einen schönen Blick darauf geworfen. Wir haben diesen Hinzufügen-Button genau hier. Aber getreu der Natur des Unwirklichen, wenn es mehrere Möglichkeiten gibt, Dinge zu tun. Also werde ich versuchen, mehrere Möglichkeiten zum Hinzufügen von Komponenten zu demonstrieren . Klicken wir zuerst hier auf die Schaltfläche Hinzufügen und fügen Sie eine brandneue hinzu. Was wir wollen, ist eine Kugelkollision und Komponenten. Wie Sie sehen können, lassen Sie sich viele verschiedene Komponenten hier in Unreal nicht einschüchtern. Es gibt einige davon, die viel häufiger verwendet werden als andere. Eine davon, die sehr häufig verwendet wird ist die Kugelkollisionskomponente. Dies bietet Ihnen im Wesentlichen eine unsichtbare Kugel, die wir überprüfen können, um festzustellen, ob sich Ihr Charakter überschneidet, um Dinge zu tun. Also nenne ich diese Sphäre unterstrichene Kollision. Du kannst ihm dort oben einen Namen geben. Und nachdem diese Komponenten im Bereich Details ausgewählt sind, werde ich etwas daran ändern. Ich ändere die Details, den Kugelradius auf 50. Wir werden uns in einem zukünftigen Video näher mit dem Bereich Details befassen. Ich füge auch einen Würfel hinzu. Und ich nenne diesen Würfelunterstrich horizontal. Ich kann mit meinem Mausrad ein- und auszoomen. Ich gebe uns nur eine grobe Skala. Ich kann das irgendwann anpassen, aber wenn das freigeschaltet ist, werde ich das auf 0,25 im x, 0,25 ändern und das y es irgendwie ausdünnen. Und ich werde die Z-Skala auf 0,8 ändern , ungefähr so. Jetzt kann ich mit der rechten Maustaste darauf klicken. Ich kann diese duplizieren, weil ich die Kreuzform erstellen werde , die ich im letzten Video hatte. Und es veranlasst mich , uns einen Namen zu geben. Ich nenne das einen Würfel vertikal. Und diesen werde ich wirklich vertikal halten , weil der letzte, obwohl ich ihn horizontal nenne, vertikal steht der Würfel horizontal ausgewählt ist. Ich werde hier oben den Rotationsmodus wählen. Sie können auch die Leertaste drücken. Und ich werde das einfach auf 90 Grad herunterdrehen , so wie so. Okay, fügen wir eine weitere Komponente hinzu. Sollen wir? Wie wäre es, wenn wir dem etwas Feuer hinzufügen? Klar, fügen wir einen Partikeleffekt hinzu. Ich löse diesen Tab gleich hier. Und ich docke es ab und platziere es irgendwo hier drüben. Und der Grund, warum ich das mache, ist unten in meinem Inhaltsbrowser, ich gehe in meinen Starter-Inhalt. Ich gehe in meinen Partikelordner. Hier sehe ich ein P-Feuer-Partikel. Das ist jetzt ein älteres Partikelsystem. In einigen zukünftigen Jahren werden diese wahrscheinlich beseitigt. Das neuere Partikelsystem ist als Niagara up bekannt. Sie müssen also diese älteren Partikeleffekte nicht verwenden. Sie können einen neueren Niagara-Partikeleffekt verwenden, wenn sie, ich bin mir sicher, dass wir diese in einem Starter-Inhaltsordner verfügbar haben werden . Aber was ich hier demonstrieren wollte, ist, dass ich hier im Katalog-Browser mit der linken Maustaste klicken so direkt in mein Komponenten-Panel ziehen kann. Und du siehst die Box, die meinen Cue horizontal umgibt, ich ziehe sie einfach direkt darüber. Und ich kann sehen, dass ich das zu meinem Entwurf hinzugefügt habe. Nun möchte ich noch darauf hinweisen, dass, als wir dies zu unserem Blueprint innerhalb unseres Komponenten-Panels hinzugefügt haben, es dies zu der Instanz dieses Blueprints hinzugefügt hat , die sich in unserem Level befindet. Wie Sie sehen können, wenn wir die Dinge hier in unserem Blueprint ändern, wird es jede Instanz, jede Kopie dieses Blueprints, die wir in unserem Level platziert haben , modifizieren und aktualisieren jede Kopie dieses Blueprints, die wir in unserem Level platziert haben , ist es, was Blaupausen so großartig macht. Etwas anderes, auf das ich hier hinweisen wollte, ist, ist eine Art Beziehung, die im Gange ist. Sie können sehen, dass die Dinge eingerückt sind, indem Sie mein P-Feuer horizontal auf meinen Würfel ziehen. Es hat es tatsächlich so gemacht, dass es an diesem horizontalen Würfel befestigt ist . Wenn ich also meinen horizontalen Würfel genau hier auswählen würde, lass mich einfach zur vollen Größe zurückkehren. Ich habe meine horizontalen Würfelkomponenten hier ausgewählt. Wenn ich das bewege, kommt das Feuer auf die Fahrt. Ich werde nur Control Z machen, um das zu untermauern. Wenn ich jedoch das Feuer selbst auswählen und bewegen sollte, ist nichts anderes am Feuer befestigt. Das Feuer war horizontal am Würfel befestigt . Also werde ich Control Z machen, um das rückgängig zu machen. Wenn mir nicht gefallen hat, dass es daran befestigt ist, kann ich diese Tasche einfach per Drag & Drop darauf ziehen. Und jetzt zeigt es sich, dass es im Wesentlichen nicht verbunden ist, wenn etwas so eingerückt ist, es zeigt, dass eine Sache an eine andere gebunden ist. Im Moment sind meine beiden Würfelnetzkomponenten an meine Kugelkollisionskomponente angehängt. Jetzt nur, weil ich mehr von solchen Dingen zeigen möchte, die damit verbunden sind. Ich ziehe das wieder horizontal auf meinen Würfel. Es gibt keinen Grund für mich , das zu tun, außer nur weil ich das wieder abdocken werde, Orte einfach wie diese . Was möchte ich hier noch hinzufügen? Ich möchte etwas hinzufügen, lass uns etwas Rauch hinzufügen, auffällig. Also werde ich gleich hier oben rauchen. Lass mich das eigentlich machen. Ich setze dieses Backup-Top auf und kehre zu meinem Testlevel zurück. Hier ist eine weitere Möglichkeit, diese Komponente hinzuzufügen, meinen Rauch zu greifen, mit der linken Maustaste ihn auf meinen Tab zu ziehen. Jetzt öffnet sich diese Registerkarte automatisch und jetzt ziehe ich sie per Drag & Drop auf das Feuer. Also habe ich gerade einen weiteren Partikeleffekt hinzugefügt. Jetzt ist der Rauch wieder am Feuer befestigt, das wiederum horizontal am Würfel befestigt ist. Wenn ich also die horizontale Komponente des Würfels bewegen sollte, kommen das Feuer und der Rauch mit. Steuere Z, um dies zu sichern. Und wie Sie in meinem Level-Editor hier sehen können, raucht es mit dieser Instanz des Entwurfs. Ziemlich cool. Ordnung, ich möchte hinzufügen, lass uns hier etwas anderes hinzufügen. Ich möchte hinzufügen, dass ich wieder in meinen Blueprint-Beispiel-Tonabnehmer gehe . Fügen wir eine Drehbewegung hinzu, um es ihm zu zeigen. Also klicke ich unter dem Bereich Komponenten hinzufügen in einem Bereich für Suchkomponenten, ich kann nach einer sogenannten rotierenden Bewegung suchen. Also ja, Sie können nach Komponenten suchen. Ich wusste, dass es diesen gibt, also wusste ich, dass ich ihn reduzieren würde, wenn ich danach suchte . Wenn Sie das jetzt auswählen, wird es irgendwie hier unten andocken. Dies ist eine Art spezielle Komponente , die an nichts gebunden ist. Sie können eine rotierende Bewegungskomponente nicht an eine andere Komponente anhängen . Dies betrifft im Wesentlichen alle anderen Komponenten hier in unserem Blueprint. diese Option nun im Bereich Details ausgewählt ist, können Sie die Rotationsrate anpassen. Derzeit dreht es sich entlang der Z-Achse. Sie haben die X-, Y- und Z-Achse , auf der Sie sie mit einer bestimmten Geschwindigkeit drehen können. Jetzt sehen wir momentan nichts mehr rotieren. Wenn ich jedoch als Simulationsschaltfläche oben im Editor unterdrückt würde, würden Sie sehen, dass es sich dreht. Jetzt wird es simuliert, ich klicke erneut darauf, um es zu stoppen. Ich könnte das in, sagen wir mal zweitausend, ändern . Und dann klick Simulieren, um zu sehen, wie es sich viel schneller dreht. Setzen Sie das auf den Standardwert zurück, indem Sie auf diese kleine Zurück-Schaltfläche klicken. Okay, großartig. Wenn ich also hier in mein Level gehen und spielen würde, nun, wenn ich spielen würde, würde ich nicht herumlaufen. Ich würde nicht sehen, dass sich das tatsächlich dreht weil ich keinen Schauspieler oder Schauspieler in meinem Level habe, an dem ich spawnen kann. Wenn ich also unter meinen Hinzufügen-Button hier oben im Editor komme, werde ich unter die grundlegenden Schauspieler fallen. Und ich möchte einen Player-Startdarsteller zu meinem Level hinzufügen. Ich kann einfach mit der linken Maustaste klicken und ziehen und ablegen. Und mit diesem Schauspieler definiert es einen Punkt in meiner Welt, an dem ich in diesem blauen Pfeil spawnen werde , der in die Richtung zeigt, in die mein Charakter schauen wird. Wenn ich jetzt auf Play klicken würde, würde ich spielen. Und ich kann sehen, wie sich das alles dreht. Ja, alles dreht sich, auch das Feuer und der Rauch, weil alles hängt. Ich weiß, dass es nicht gut aussieht, nur verschiedene Konzepte zu zeigen. Ordnung, fügen wir unserem Blueprint eine weitere Komponente hinzu. Und dieser wird auch auf einzigartige Weise gemacht. Ich möchte ein bestimmtes Audiostück finden , das auch an diesen Entwurf angehängt ist. Also was ich hier tun werde ist unseren Blueprint hier im Level-Editor selbst auszuwählen. Und schauen Sie im Bereich „Details“ vorbei. Ich werde das hier abziehen . Ich kann all die verschiedenen Komponenten sehen , die zu diesem Blueprint hinzugefügt wurden. Und von hier aus kann ich eine Komponente hinzufügen. Versuchen wir also, es von hier aus hinzuzufügen , anstatt in unserem Blueprint-Editor selbst. Also klicke ich auf Hinzufügen und möchte eine Audiokomponente hinzufügen. Und dabei fügt es es hier hinzu. Wenn ich jedoch in meinen BP-Beispiel-Pickup springen meinen BP-Beispiel-Pickup , den ich hier in meinem Scripting-Ordner erstellt hatte. Lass uns sofort da reinspringen. Ich sehe diese Komponente noch nirgends hier drin. Wie stelle ich also sicher , dass diese Änderung hier an dieser Instanz des Blueprints auf meinen Basis-Blueprint übertragen wird? Nun, wenn ich hier auf diese Schaltfläche klicke, Entwurf für diesen Schauspieler bearbeite, lass mich genau dort klicken. Was ich tun kann, ist, dass ich diese Option hier auswählen und Instanzänderungen auf den Blueprint anwenden kann . Dabei erhalte ich genau dort eine kleine Benachrichtigung. Und wenn ich dann zu meinem Blueprint-Beispiel-Tonabnehmer zurückkehre, kann ich jetzt sehen, dass diese Audiokomponente ebenfalls hinzugefügt wurde. Jetzt gibt es wieder viele Arten von Komponenten, die einem Blueprint hinzugefügt werden können. Es gibt viele davon, die ich noch nie benutzt habe, aber es gibt einige, die sehr häufig verwendet werden. Und eine Sache, die ich hier früh vermitteln möchte , ist die Arbeit mit Unreal. Es gibt so viel zu wissen, aber Sie müssen nicht alles wissen, wenn Sie einige der wichtigsten Kernkonzepte kennen , die Sie sehr, sehr weit bringen können. Lassen Sie sich hier also nicht früh einschüchtern. gängigen Komponententypen gehören statische Netze. Du hast ein paar Lichter , die hinzugefügt werden können. Wo meine Lichter, da sind meine Lichter. Du hast deine Kollisionsformen. Und dann hast du einige dieser Bewegungen. Sobald Sie die rotierende Bewegung gelöst haben, gibt es eine, die als interpretative Bewegungen bezeichnet wird. Das wird auch ziemlich häufig verwendet. Ordnung, noch ein paar Dinge, auf die ich in diesem Video hinweisen wollte , bevor wir das abschließen, eines hat mit dieser Beziehung zu tun , die wir im Komponenten-Panel haben. Zu beachten ist, dass bei ausgewählten Komponenten, die an etwas anderes angehängt sind, die im Bereich Details aufgeführte Position relativ zu der Sache ist , an die sie angehängt ist. Im Moment habe ich meine horizontalen Würfelkomponenten ausgewählt. Und das hängt mit meiner Sphärenkollisionskomponente zusammen. Wenn ich den Z-Standort auf 100 setzen würde, würde das ihn um 100 unwirkliche Einheiten nach oben bewegen. Jede unwirkliche Einheit repräsentiert einen Zentimeter, 100 unwirkliche Einheiten über dem Mittelpunkt meiner Kollisionskomponente. Wisse also einfach, dass all diese Standorteinstellungen relativ zu dem sind , womit sie verbunden sind. Ich werfe das zurück. Ich wollte auch darauf hinweisen, dass Sie die Wurzel ändern können. Beachten Sie, dass, als wir diesen Blueprint standardmäßig erstellt haben, er diese standardmäßige gesehene Route in diesem Editor hatte. Das war die Ikone, die es dort zuvor gab. Alles andere ist beigefügt und ihr Standort ist relativ zu dieser Route. Sie können die Stammkomponente ändern, indem Sie einfach auswählen In diesem Fall wähle ich schwere Kugelkollision, keine schwere Kollision. Ich ziehe es und lege es hier oben drauf. Und es lässt mich wissen, wenn ich das hier fallen lasse, werde ich das zu den neuen Roots machen und dass die Standardroute gelöscht wird. Sweets, das ist jetzt die neue Wurzel. Alles andere ist relativ zu meiner Sphärenkollision positioniert . Das Letzte, worauf ich hier hinweisen wollte und was Blueprints so großartig macht, und was Blueprints so großartig macht ist, dass, wenn ich hier einen Blueprint-Schauspieler erstellen lasse, wenn ich eine Änderung innerhalb dieses Entwurfs vornehme, es jede Kopie ändert das ist jedes Beispiel dafür auf der Welt und zeige das hier sehr schnell. Kannst du hier in meinem Scripting-Ordner zu meinem Testlevel zurückkehren . Ich werde nur ein paar davon im gesamten Level platzieren . Sie müssen übrigens nicht weiter ziehen und ablegen. Sie können die Alt-Taste gedrückt halten und linken Maustaste klicken, um weiterhin Kopien davon herauszuziehen. Ordnung, also habe ich fünf davon. Sagen wir einfach, ich denke, weißt du was, das dreht sich, Feuer und Rauch sehen irgendwie dämlich aus. Ich kann hier auf meine Beispielabholung zurückkommen. Ich kann mir meinen Rauch aussuchen. Ich kann löschen sagen. Ich mache dort einfach Control Z und sage: Weißt du was, ich will das Feuer und den Rauch loswerden . Also wähle ich mein Feuer aus und klicke auf Löschen. Das wird es löschen. Ich lösche dann den Rauch. Und wenn ich jetzt wieder in mein Level springe, ist das für jede Kopie davon weg, ich möchte sie loswerden , ja, in der Tat. Also gehe ich zurück zu meinem Blueprint-Beispiel-Pickup. Speichern wir das. Und das ist alles, was wir in diesem Fall erreichen wollten. Der Komponenten-Panel-Typ ist ein sehr wichtiger Teil, den Sie über Blaupausen wissen sollten. Es wird alles für dieses Video machen, wir sehen uns im nächsten. 7. Viewport: Willkommen zurück alle. In diesem Video ist es unser Ziel zu verstehen, wie die Registerkarte „Ansichtsfenster“ in einem Blueprint befindet. Dies ist unser Einblick in das, wie unsere Schauspielerklassen-Blaupause aussehen wird. Über diese Registerkarte können wir die Platzierung dieser Komponenten in Relation zueinander abstimmen . Jetzt ist die Registerkarte „Ansichtsfenster“ gleich hier oben zu finden. Wir haben drei verschiedene Registerkarten, eine Ansichtsfenster-Registerkarte, die Registerkarte „ Konstruktionsskript“ und dann die Registerkarte Ereignisdiagramm. Jeder von ihnen wird sein eigenes Video rechtfertigen. Also mach dir keine Sorgen, wir kommen zu den anderen. Beginnen wir damit, über die verschiedenen Ansichtsfensteroptionen zu sprechen . Das heißt, was sich unter diesem kleinen Hamburger-Symbol ganz oben links befindet. Wenn ich also darauf klicke, werden mir vier verschiedene Optionen vorgestellt , von denen ich zwei habe. Standardmäßig sind diese Echtzeitoption und diese Option „ Raster anzeigen“. Wir werden alle in ein bisschen erreichen. Also lasst uns die Kamera eins zurücksetzen. Wenn ich gerade darauf klicken wollte, scheint es nicht wirklich so viel zu tun. Es springe einfach meine Kamera zurück, um alles in meiner Blaupause zu zeigen. Genau hier, vorne und in der Mitte in meinem Ansichtsfenster. Nun, wo dies wirklich nützlich ist, ist dass Sie manchmal viele verschiedene Komponenten in Ihren View-Ports haben . Oder manchmal aus irgendeinem Grund bist du weit, weit weg geflogen , wie ich es gerade mache. Und du meinst: Wo sind all meine Sachen? Wo sind meine Komponenten? Wenn Sie einfach unter dieses Hamburger-Symbol kommen, klicken Sie auf Kamera zurücksetzen. Es wird dich gleich dahin bringen, wo du sein willst und du wirst seufzen. Seufzer der Erleichterung. Als Nächstes werden wir über die Echtzeitoption sprechen. Es ist standardmäßig aktiviert, aber wir haben hier nichts Animationsprogramm, daher ist es schwer wirklich zu erkennen, was das bedeutet. Ich gehe zu einer anderen Blaupause , um zu zeigen, was es hier macht. Also gehe ich zurück zu meiner Level-Testkarte innerhalb meines Content-Browsers oder Inhaltsschublers. Ich komme in meinen Third-Person-Blueprints-Ordner. Da ist mein B P ThirdPersonCharacter, der ein Charakter ist , den wir gerade spielen Wenn wir diesen Play-Button drücken, doppelklicke ich hier, um diesen Blueprint zu öffnen. Und wenn ich wieder auf die Registerkarte „Ansichtsfenster“ klicke, kann ich alle verschiedenen Komponenten sehen, aus denen unser ThirdPersonCharacter besteht, einschließlich einer Kamera, und das ist die Kamera, die wir durchschauen, wenn wir spielen unser Spiel. Wenn Sie diesen Charakter leicht vergrößern und ich hier nur mit der Maus drin fahre können Sie sehen, wie unser Charakter ein wenig animiert wird. Sie spielen eine untätige Animation. Nun, wenn ich aus irgendeinem Grund möchte, dass der Charakter einfach still bleibt, kann ich auf diese Option klicken. Schalten Sie Echtzeit aus. Es ist auch ein Hotkey damit verbunden. Wenn ich also Control und unsere mache , schaltet das ein- und aus. Ziemlich cool. In Ordnung, zurück zu meinem BP-Beispiel zu springen, Pickup, unter mein Hamburger-Symbol zu kommen, will mehr. Ich habe die Option „Show Floor“. Jetzt ist das standardmäßig deaktiviert, aber es zeigt hier keinen Boden, was ziemlich merkwürdig ist. Ich schalte das aus. Lass mich zurück zu meinem ThirdPersonCharacter und Show Floor gehen. Da sind wir los. Es gibt unsere Show für Option. Ich benutze das nicht allzu oft, aber ab und haben Sie eine Reihe von Komponenten und sagen, dass wir ein Auto oder ähnliches bauen. Dies kann Ihnen ein besseres Maßstabsgefühl geben und wie die Dinge in Bezug zueinander angeordnet sind, Gegensatz zu einem Charakter oder einer Schauspielerklassenentwurf, die im Weltraum schwebt. Wenn wir wieder zu meinem BP-Beispiel-Pickup zurückspringen, unter den verschiedenen Optionen, haben wir das Show-Raster. Jetzt ist es standardmäßig aktiviert und Sie können sehen, dass es hier unten ist. Ich kann das ausschalten. Und warum das nützlich ist, um es zu zeigen oder nicht zu zeigen. Ich werde es hier in nur ein bisschen demonstrieren. Ich werde mein Raster zeigen und jetzt werde ich hier in die Diskussion unserer verschiedenen Ansichten führen die Diskussion unserer verschiedenen Ansichten und eine überspringen. Derzeit ist dies das Perspektiv-Ansichtsfenster. Das ist irgendwie deine schöne Aussicht. Wenn ich jedoch darauf klicken sollte, habe ich verschiedene orthogonale Ansichten in die ich unser Ansichtsfenster springen kann, z. B. eine Draufsicht. Dies ist eine Art von Dingen aus der Vogelperspektive. Ich habe eine linke Ansicht es aus einem linken Winkel betrachtet und Sie können mit der Maus ein- und ausfahren. Eine Frontansicht. Wir sehen das Kreuz, nicht auf der Kreuzseite, sondern eher die Seite, Seite. Und jeder von ihnen hat einen Hotkey damit verbunden. Jetzt, wo das Raster hier wirklich ins Spiel kommt , können Sie diese verschiedenen Rastermarkierungen sehen. Sie fragen sich also vielleicht, welche Größe hat jedes dieser Gitterquadrate? Nun, hier oben führen wir in die Diskussion über unsere verschiedenen Netzgrößen. Wenn ich also genau hier klicken würde , wo diese Nummer Fünf ist, kann ich verschiedene Schnappschussgrößen zeigen, 1510 usw. Es ist derzeit auf fünf festgelegt, was bedeutet, dass jedes dieser winzigen Quadrate einen unwirklichen Einheitsbereich von fünf mal fünf darstellt . Jetzt ist das super praktisch und ich werde einfach springen, um zur Draufsicht zu gehen. Wenn Sie Komponenten verschieben möchten und Sie möchten, dass sie bestimmte Inkremente springen. Also habe ich diese Schnappbewegung Snapping“ gerade eingestellt. Das ist es, was dieses Blau hier drüben darstellt Ich setze meine Snap-Einstellungen auf 100. Beachten Sie nun, dass sobald ich dies mache, die Rastergröße so geändert wird, dass sie übereinstimmt. Dies ist also jetzt 100 100 als Rastergröße im Gegensatz zu dem, was zuvor war, was fünf mal fünf war. Also werde ich das wieder auf 100 ändern. Sagen wir einfach, ich möchte, dass es mein horizontales Würfelnetz hierher bewegt , über 100 Einheiten, indem ich mit der linken Maustaste klicke und es Ich springe es einfach über 100 Einheiten. Jetzt können Sie sehen, ob ich das in der Draufsicht bewege , es springt es in Schritten von 100. Und das siehst du hier in den Standorteinstellungen. Auch hier sind diese Standorteinstellungen relativ zum Stamm. Wenn ich es jetzt reibungsloser bewegen wollte, könnte ich die Schnappeinstellungen ausschalten , wenn es nicht so blau ist. Das bedeutet, dass ich es ganz reibungslos bewegen kann. Aber manchmal möchten Sie es in sehr diskreten Schritten verschieben. Und das ist, wo das wirklich nützlich ist. Ich setze meinen Standort hier wieder auf 0. Und ich schalte meine Snap-Einstellungen wieder ein und setze sie auf fünf zurück , während wir hier sind und über all das sprechen. Dies ist wahrscheinlich ein guter Zeitpunkt, um hier in unserem Ansichtsfenster über unsere verschiedenen Einstellungen zu sprechen . Derzeit befinde ich mich im Modus „Objekte übersetzen“. Ich kann direkt hier klicken, um dies in den Rotationsmodus zu ändern. So. Sie können jetzt sehen, lassen Sie mich hier einfach wieder in die perspektivische Ansicht springen. Sie können sehen, wenn ich das rotiere, es verschiebt es in Schritten von zehn. Und es bewegt sich in Schritten von zehn, weil ich meine Drehfangeinstellungen aktiviert habe , was bedeutet, dass es sie in Schritten von zehn verschieben wird. Und wenn ich direkt hier klicken würde, könnte ich welche Inkremente ändern. Es wird es umdrehen. Ich mag zehn Grad, aber es gibt Fälle für diese anderen. Ich habe auch den Skalierungsmodus , in den ich das verwandeln kann. Also kann ich zu meiner Skalierungsoption gehen. Und wenn ich jetzt einfach einen dieser Griffe greifen sollte, schnappe ich mir genau dort den blauen Griff, die Z-Achse, die relative Z-Achse, darstellt. In diesem Fall können Sie sehen, wie ich die Skala davon anpasse. Ich werde das auf das zurücksetzen, was ich vorher hatte, was 0 Punkte war. Ich glaube, ich hatte es an Punkt 8.8 tatsächlich das, woran ich es hatte. W, E und R können Sie, wie Sie in diesen Tooltips sehen können, in die verschiedenen Modi dort springen, nämlich den Bewegungsmodus , den Rotationsmodus und den Skalierungsmodus. Wenn Sie auf diese Schaltflächen klicken, ist dies ebenfalls möglich, aber mit ENR kann Sie in diese verschiedenen Bewegungs-, Dreh- und Skalierungsmodi springen . Die Leertaste wechselt jedoch auch zwischen allen drei. Sprechen wir als Nächstes über unsere verschiedenen Beleuchtungsmodi. Derzeit befindet sich dies standardmäßig im Lit-Modus, aber wenn ich darauf klicke, kann ich dies in den unbeleuchteten Modus ändern. Auch hier sind alle Hotkeys mit ihnen verknüpft. Oder Wireframe-Modus. Nicht allzu oft verwende ich Wireframe oder Unlit Mode, aber sie sind da, falls Sie sie benötigen. Was passiert, wenn Sie diesen Tab versehentlich schließen? Es passiert ziemlich oft, öfter als Sie denken. Und dann fragen sich die Schüler, wo ist es hingegangen, wie bekomme ich es zurück? Also mache ich das jetzt, indem ich es schließe. Nun, der Weg, es zurückzubekommen, besteht einfach darin, unter diese Fensteroption zu kommen. Und dann unten können Sie auf klicken um Ihr Ansichtsfenster wieder einzuschalten. Es gibt andere Ansichtsport-Optionen, auf die Sie zugreifen können, indem Sie mit der rechten Maustaste darauf klicken. Sie können es an eine Seitenleiste andocken. Was das macht, ist, dass es es hier rüberspringen wird. Und wenn ich darauf klicken würde, würde ich diese Öffnung erweitern. Wenn ich es anhefte, heißt das, dass ich nicht davon runterkomme. Wenn ich es also löse, kann ich mit der rechten Maustaste darauf klicken und es wird zurück in die Seitenleiste verschoben. Wenn ich erneut mit der rechten Maustaste darauf klicke, kann ich es abdocken. Also kann ich es auch von hier aus schließen, was ich vor dem Schließen gemacht habe ist das gleiche wie das Klicken auf dieses x. Ich kann den Tab rechts von dieser Bedeutung dieses Konstruktionsskripts schließen dieser Bedeutung dieses Konstruktionsskripts oder das Ereignisdiagramm. Wenn ich diese Typen los werde, sind sie weg. Diese sind hier nicht unter der Fensteroption zu finden. Um diese Jungs wieder in das My Blueprint-Bedienfeld zu bringen, können Sie auf den Event Graph doppelklicken können Sie auf den Event Graph doppelklicken, um den Kerl zurückzuholen. Sie können auch auf das Konstruktionsskript doppelklicken , um diese bestimmte Registerkarte aufzurufen. Lassen Sie uns als Nächstes darüber sprechen, sich im Ansichtsfenster zu bewegen. Wenn ich die linke Maustaste gedrückt halten und einfach meine Maus bewegen würde. Dies. Fahren im Ansichtsfenster. Das ist übrigens das gleiche Steuerelement in Ihrem Level-Editor. Wenn Sie sich in Ihrem Level-Editor-Fenster befanden, linken Maustaste und bewegen Sie Ihre Maus auf Laufwerken. rechte Maustaste schaut sich einfach hier in Ihrem Level-Editor sowie innerhalb Ihres Ansichtsfensters um, sowie innerhalb um Ihre mittlere Blueprint-Maustaste zu erhalten. Und wenn Sie Ihre Maus bewegen, halten Sie sie einfach auf derselben 2D-Ebene und bewegen Sie sie. Mittlere Maustaste plus, oder ich sollte eine mittlere Maustaste oder die linke und rechte Maustaste sagen , rechte Maustaste zusammen. Wir machen das Gleiche wieder im Level-Editor, in der mittleren Maustaste, bewegen Sie es, linke und rechte Maustaste zusammen. Es zu bewegen, macht das Gleiche. Und dann ist nicht zuletzt meine bevorzugte Art, durch das Ansichtsfenster zu navigieren, die rechte Maustaste gedrückt und dann W, a, S und D zu verwenden, um herumzufliegen. Jetzt, mit der Geschwindigkeit , mit der du herumfliegst, lass mich zurück in meinen Ansichtsfenster-Tab meiner Blaupause springen , die von diesem Kerl hier oben bestimmt wird . Ihre Kameras Speed-Schieberegler. Wenn Sie darauf klicken, können Sie dies nach oben oder unten einrichten. Jetzt fliege ich super schnell herum. Oder wenn ich es tiefer schicke, fliege ich super langsam herum. Eine Sache, die Sie hier beachten sollten: Wenn Sie herumfliegen und Ihr Mausrad ein- und ausrollen, oben oder unten scrollen, können Sie tatsächlich ändern, wie schnell Sie herumfliegen. Das ist also auch ein guter praktischer Trick, den man wissen sollte. Sie möchten, dass Dinge darauf hingewiesen werden, bevor wir dieses Video schließen , die Root-Komponenten. In diesem Fall habe ich die Kugel könnte Kollisionen als zwei Stammkomponenten gesetzt haben . Ich kann die Root-Komponenten nicht verschieben. Sie können sehen, dass ich es hier in meinem Editor nicht wirklich auswählen kann , außer wenn ich es einfach im Komponentenbedienfeld auswähle , außer wenn ich es einfach im Komponentenbedienfeld Sie können es auswählen, aber wie Sie sehen können, kann ich es nicht ändern Übersetzungsmodus oder Rotationsmodus oder Skalierungsmodus. Es hält mich nur im Select Object-Modus, der der Q-Hotkey ist. Und Sie können im Detailbedienfeld sehen, dass ich das nur skalieren kann. Ich habe keine Möglichkeit , es zu verschieben oder zu drehen. Außerdem wollte ich Sie an den relationalen Aspekt des Bedienfelds „Komponenten“ erinnern den relationalen Aspekt des und wie sich dies auf das Verschieben von Dingen in Ihrem Ansichtsfenster auswirkt. Wenn du dich an das letzte Video erinnerst, habe ich diese Audiokomponente hinzugefügt, die hier in meinem Kreuz vergraben ist. Lassen Sie mich den Kerl einfach ein bisschen hochziehen , denn es spielt keine Rolle, wo ich ihn platziere, nur dieses Symbol hier. Ich füge dies meiner vertikalen Cube-Komponente hinzu. Wenn ich also meine Audiokomponente von selbst bewegen sollte , wird sie sich unabhängig bewegen. Aber gerade jetzt ist es an meiner Q vertikal befestigt. Ich soll den Kerl bewegen . Die Audiokomponente wird für die Fahrt mitkommen. Diese Beziehung ist also ziemlich mächtig. Verwenden Sie das und merken Sie sich diese Standorteinstellungen, diese beziehen sich auf die Sache, an die es angehängt ist. Wenn Ihnen diese angehängte Beziehung nicht gefällt, können Sie einfach so gehen, erneut oben ziehen und es wird nicht einrücken da sie nicht mehr daran angehängt ist. nicht zuletzt Vergessen Sie nicht zuletzt Ihre Schnappeinstellungen hier oben im Ansichtsfenster wenn Sie etwas bewegen, etwas drehen oder etwas skalieren. Und bitte vergessen Sie nicht, dass Sie Ihre Einstellungen für den Skalenfang, Ihre Einstellungen für den Drehfang und Ihre Einstellungen für Bewegungen ändern Ihre Einstellungen für den Drehfang können, die Ihnen auch viel Zeit sparen können . Alles klar Leute, das ist die Registerkarte „Viewport“. Kurz gesagt, hoffentlich Ihnen viele dieser Tipps und Tricks sparen Ihnen viele dieser Tipps und Tricks viel Zeit. Das wird reichen, um diesen anzubieten. Wir sehen uns im nächsten Video. 8. Details Panel: Begrüßen Sie alle in diesem Video oder in diesen Zielen, um alles über das Detailfeld in einer Blaupause zu erfahren . Jetzt setzen sich Blaupausen aus allen Arten von Dingen zusammen. Wir haben Komponenten. Wir haben Variablen, über die wir noch nicht einmal gesprochen haben, aber werden, und sogar Informationen über den Entwurf selbst. Jetzt werden alle diese Daten, all diese Informationen von Ihnen innerhalb des Detailfensters festgelegt . Jetzt befindet sich das Detailbedienfeld standardmäßig rechts in Ihrem Blueprint-Editor. Wie jedes andere Ansichtsfenster können Sie es einfach abreißen, linken Maustaste klicken und in einen anderen Teil Ihres Editorfensters ziehen . Einige Leute legen es gerne direkt unter ihr Komponenten-Bedienfeld, da verschiedene Komponenten ausgewählt werden und dann die Details direkt unten ändern möchten . Ich komme jedoch genau dort hin, wo es ist. Also docke ich es da hinten an. Walla. Warum ändern wir nicht ein paar verschiedene Details zu einigen unserer Komponenten. Und gerade jetzt sehe ich zwei verschiedene statische Netzkomponenten oder würfeln zwei verschiedene statische Netzkomponenten oder Sie eine horizontale und vertikale Würfel. Im Moment haben wir diese Art von weißem Kreuz für eine Gesundheitsabholung. Ich denke, es wäre schöner, wenn wir es auf grün ändern würden. Also wähle ich meinen Würfel hier horizontal und im Detailbedienfeld kann ich das Material ändern , das darauf angewendet wird. Im Moment habe ich dieses grundlegende Formmaterial. Ich kann mit der linken Maustaste darauf klicken und eine dieser verschiedenen Arten von Materialien auswählen . Ich mochte dieses grundlegende Asset, O3, das ist ziemlich cool. Wenn Sie das nicht sehen oder vielleicht auf weitere Materialien zugreifen möchten. Wenn Sie hier auf dieses kleine Zahnradsymbol klicken, können Sie Engine-Inhalte aktivieren und anzeigen. Und so sehe ich hier mehr Materialien als Sie auf den ersten Blick. Wenn Sie also auch Plug-In-Inhalte haben , können Sie dies auch auf diese Weise aktivieren. also Engine-Inhalte anzeigen, werden weitere Materialien für Sie überprüft. Ich werde dieses grundlegende Asset O3 verwenden, um sein Grün zu ändern. Und ich mache dasselbe für meinen Würfel vertikal mit dem ausgewählten, ändere das Material hier, indem ich auf dieses Dropdown-Menü klicke , und wir ändern es in grün. Das ist alles gut und gut. Vielleicht möchte ich auch, dass meine Kugelkollision hier um mein grünes Kreuz hier ein bisschen größer ist, ein bisschen mehr ein großzügiger Abholbereich, wenn ja, genau hier mit einer Kugel Da Kollisionskomponenten im Detailbedienfeld ausgewählt wurden, kann ich meinen Kugelradius ändern, indem ich darauf klicke und eine neue Zahl wie 100 einstanze und auf Enter klicke. Oder in diesen numerischen Feldern können Sie einfach mit der linken Maustaste klicken und ziehen. Mal sehen, klicken Sie mit und klicken Sie wieder darauf. Und dann kannst du es nach links und rechts bewegen um es auch so anzupassen. Ich gehe vorerst mit der Nummer 100. Das scheint ziemlich großzügig zu sein. Wenn Sie dieses Detailbedienfeld fälschlicherweise wieder schließen, indem Sie darauf klicken x, können Sie unter die Fensteroption kommen und es wieder einschalten. Jetzt gibt es verschiedene Anzeigeoptionen Sie aufmerksam gemacht werden sollten. Drüben im Detailbedienfeld hast du dieses Zahnradsymbol. Wenn ich darauf klicke, stehen Ihnen eine Reihe verschiedener Optionen zur Verfügung. Ich werde nur über ein paar der am häufigsten verwendeten sprechen . Einer von ihnen ist zusammengebrochen und erweitert alle Kategorien. Im Moment werde ich alle Kategorien zusammenbrechen. Also ja, wenn du jetzt darauf einsteigen willst, musst du nacheinander darauf klicken. Das kann nützlich sein, wenn es nur ein paar verschiedene Kategorien gibt, mit denen Sie herumspielen möchten. Ich werde noch einmal darauf eingehen und alle Kategorien erweitern. Eine andere, die mir sehr gefällt, ist nur geänderte Eigenschaften zeigen oder nur geänderte Eigenschaften anzuzeigen. Wenn Sie also darauf klicken, ist es eine wirklich einfache Möglichkeit, auf einen Blick zu sehen , welche Dinge Sie an dieser bestimmten Komponente tatsächlich geändert haben ? Ich mache diesen einen Backoff. Zeigen Sie dann alle erweiterten Eigenschaften an. Was sind Advanced Properties unter jeder dieser angegebenen Kategorien? Ich sollte nicht jedem aber vielen von ihnen sagen, dass es erweiterte Eigenschaften gibt , auf die standardmäßig nicht erweitert werden. Also habe ich zum Beispiel meine Form und kann meine Formfarbe ändern, wenn du willst. Lassen Sie mich einfach davon abklicken. Standardmäßig ist es rot. Aber wenn ich auf meine Kugelkollision unter der Kategorie „Erweitert“ zurückklicken würde, könnte ich dies in Hot Pink ändern, wenn ich es wirklich wollte. Klar, warum. Nüsse. Jetzt gibt es auch so wenig, ich weiß nicht, wie du das nennst. Ein bisschen wie ein Notizblock-Symbol. Dies öffnet eine Auswahl in der Eigenschaftsmatrix. Was ist das jetzt, das ist eine Option ich nicht zu häufig verwende. Wenn ich jedoch darauf klicken würde, öffnet es hier einen neuen Tab. Dies ist eine andere Möglichkeit, verschiedene Eigenschaften zu ändern. Auch hier ist alles zusammengebrochen, aber wenn es etwas gibt, das Sie daran ändern wollten, könnten Sie es einfach anheften. Ich werde diese Option jetzt anheften. Erzeugt Überlappungsereignisse. Sie können sehen, dass dies überprüft wird, wenn ich es hier deaktivieren und dann zurück zu es hier deaktivieren und dann zurück meinem b p Beispiel Pickup unter Kugelkollision gehe. Unter den Kollisionseigenschaften generiert Überlappungsereignisse wird nicht mehr überprüft. Ich werde das wieder dahin ändern , wo ich es hatte, und ich werde hier schließen. Ich wollte nur zeigen, was das ist. benutze ich nicht allzu oft. Vielleicht finden Sie eine gute Verwendung dafür. Und dann können Sie hier mit Vakuum I Sphere Kollision sehen, ich kann sehen, dass das generierende Überlappungsereignis wieder überprüft wurde. Oben in unserer Symbolleiste haben wir diese Standardoption der Klasse die ich Sie aufmerksam machen wollte. Ich klicke darauf und wenn ich es tue, werde ich eine ganze Reihe verschiedener Details über diesen Entwurf der Schauspielerklasse vorstellen, die spezifisch für diesen Entwurf der Schauspielerklasse sind . Jetzt gibt es hier nicht viel, was Sie ändern müssen, obwohl ich Sie auf eine Person aufmerksam machen werde, mit der es Spaß macht, herumzuspielen. Und das heißt, bei der Standardeinstellung der Klasse wird die anfängliche Lebensdauer derzeit auf 0 gesetzt, was bedeutet unendlich. Aber wenn ich das auf etwas wie drei einstellen sollte, bedeutet das, dass dieser Typ nach drei Sekunden verschwinden wird . Und das kann ich beweisen, indem ich hier einfach auf den Play-Button klicke. Und das wird hier in meinen Level-Editor springen , indem du nach drei Sekunden spielst. Sie gehen alle vorbei, um Spaß zu haben, wenn ich es selbst sage. Also ändere ich diese Klasse standardmäßig meine anfängliche Lebensdauer wieder auf 0. Dies wirkt sich also auch auf bestimmte Dinge diese bestimmte Blaupause aus, die Standardwerte der Klasse. Als Nächstes wollte ich Sie nur auf die Schaltfläche hier aufmerksam machen , diese Option für die Klasseneinstellungen. Später im Kurs haben wir es mit etwas zu tun, das Blueprint Interface bezeichnet wird. Und das wird alles in diesem Bereich einrichten. Nichts anderes möchte ich hier ändern. Tatsächlich beschäftigen Sie sich nicht zu sehr mit Klasseneinstellungen außerhalb der Implementierung von Dingen als Blueprint-Schnittstelle bezeichnet werden. Aber das wollte ich jetzt nur noch ansprechen. Später auf dem Kurs wirst du sagen, ich weiß genau, wo ich hingehen soll und was das ist. Okay Leute, das ist das Detail-Panel. Wissen Sie es, liebe es, nutzen Sie es gut. Das wird alles für dieses Video machen. Wir sehen uns im nächsten. 9. Mein Blueprint: Willkommen zurück alle. In diesem Video ist es unser Ziel, zu erfahren, was der Zweck des My Blueprint-Panels in einem Unreal Engine-Blueprint liegt. Jetzt ist dies ein Bereich eines Blueprints, in dem Sie Dinge wie Variablen wie Funktionen oder Makros erstellen können, um zu gestalten , was ein bestimmter Blueprint leisten kann. Wenn Sie mit Begriffen wie Variablen, Funktionen oder Makros nicht vertraut sind, machen Sie sich keine Sorgen. Wir werden diese später im Kurs viel weiter aufschlüsseln . Im Moment ist es einfach gut, das Wissen abzulegen, dass im My Blueprints Panel solche Dinge erstellt werden können. Wie Sie hier in meinem BP-Beispiel sehen, nehmen Sie das Blueprints-Panel auf, sich standardmäßig in der unteren linken Ecke der Benutzeroberfläche befindet das sich standardmäßig in der unteren linken Ecke der Benutzeroberfläche befindet, genau wie jede andere Registerkarte hier, Sie können mit der linken Maustaste auf klicken dies und du kannst es dorthin ziehen , wo immer du willst. Ich mag es dort, wo es standardmäßig ist. Also lasse ich es genau da liegen. Genau wie bei anderen Registerkarten können Sie mit der rechten Maustaste darauf klicken. Du kannst es schließen. Sie können es über die Fensteroption hier wieder einschalten, das Häkchen zeigt, dass es sich hier in unserem Blueprint befindet. Kein Häkchen bedeutet , dass es nicht vorhanden ist. Also bringe ich das wieder an. Rechtsklick auf Optionen hier. Ich könnte den Tab verstecken. Das wird nur eine Art Barriere dieser Registerkarte gibt Ihnen ein bisschen mehr Bildschirm-Immobilien, die merkwürdigerweise von Zeit zu Zeit als nützlich erweisen. linken Maustaste darauf klicken, wird dieser Tab zurückgebracht. Rechtsklick. Ich kann wie zuvor an die Sidebar andocken. Rechtsklicken Sie auch auf dunkel. Du hast mich das mehrmals machen sehen. Okay, eine weitere Option, auf die ich hier in den My Blueprint-Panels hinweisen möchte , dieses Zahnradsymbol. Wenn ich jetzt darauf klicke, zeigt es mir verschiedene Optionen leere Abschnitte zeigen, die ich hier habe. Was das tut, ist, dass es einen leeren Abschnitt, jede leere Kategorie anzeigt . Im Moment habe ich hier keine Makros in meiner Blaupause. Wenn Sie nicht wissen, was das ist, sich keine Sorgen darüber, aber wissen Sie nur, dass ich diese Kategorie nicht einmal sehen würde, wenn ich das ausschalten würde. Wenn ich das zeige und ich möchte, dass es standardmäßig angezeigt wird, sehe ich alle verschiedenen leeren Abschnitte, die wir unter der Kategorie Blueprints haben könnten. Ein weiterer wichtiger Punkt , der hier unter diesem Zahnradsymbol hervorgehoben wird, ist diese geerbte Variablen. Jetzt werden geerbte Variablen von übergeordneten Klassen angezeigt . In unserem Fall ist unsere Elternklasse hier ein Entwurf der Schauspielerklasse. Also zeige ich das schnell. Und wenn ich das tue, werden Sie sehen hier unten einige Kategorien erscheinen. Also los geht's. Wir werden geerbte Variablen zeigen. Und ich werde hier einen Drilldown in meine Schauspielerkategorie eingehen. Und was weißt du? Ich sehe eine Variable, die als erste Lebensdauer bezeichnet wird. Nun, das sieht ziemlich vertraut aus. Was sind all diese Variablen in diesen verschiedenen Kategorien? Nun, wenn Sie sich an das letzte Video erinnern, als wir auf unsere Klassenstandardschaltfläche geklickt haben, haben wir viele verschiedene Parameter, viele verschiedene Eigenschaften, die für diese Schauspielerklasse spezifisch sind Blaupause. Und eine davon, die sich unter der Kategorie Blueprint der Schauspielerklasse befand, war die anfängliche Lebensdauer. Und siehe da, das kann hier auch auf das My Blueprints Panel zugegriffen werden . Wir zeigen geerbte Variablen. Dies ist also eine andere Möglichkeit, alle diese Klassenstandardvariablen anzuzeigen, nicht nur wenn Sie auf die Standardeinstellungen der Klassen klicken , sondern hier im Bedienfeld „ Mein Blueprint“. Und ich möchte hier nur darauf hinweisen , dass ich auf die anfängliche Lebensdauervariable klicken die anfängliche Lebensdauervariable und zum Detailbedienfeld gehe. Ich kann meine anfängliche Lebensdauer auf S3 ändern. Nun, wenn ich in die Standardeinstellungen der Klasse gehen und anfängliche Lebensdauer der Schauspielerkategorie finden würde. Es ist auch hier auf drei eingestellt. Sie ändern also dieselbe Eigenschaft, nur zwei verschiedene Möglichkeiten, dies zu tun. Ich setze das wieder dahin zurück, wo ich es hatte. Und beachten Sie jetzt, dass, obwohl ich es hier im Klassenstandardbereich geändert habe, wenn ich auf meine anfängliche Lifeespan-Eigenschaft klicken sollte, sie auch hier wieder ändert. Okay, lass uns die wieder verstecken, damit wir unser My Blueprint-Panel hier ein wenig aufräumen können. Zeigen Sie also geerbte Variablen an. Nee. Sprechen wir darüber, wie neue Variablen, Funktionen oder Makros erstellt werden. Wir können auch neue Graphen und Event-Dispatcher erstellen, aber diese werden später im Kurs ihre eigenen Abschnitte haben . Wenn wir auf diese Schaltfläche „Hinzufügen“ klicken, heißt es, dass Sie eine Variable, eine Funktion, ein Makro, ein Diagramm und einen Ereignisdispatcher erstellen eine Funktion, ein Makro, ein möchten. Sie können es so machen oder mit jeder dieser verschiedenen Kategorien haben Sie diesen kleinen Plus-Button, um ein neues Diagramm, eine neue Funktion, ein neues Makro oder eine neue Variable zu erstellen Funktion, ein neues Makro oder eine neue , oder ein Event-Dispatcher. Lassen Sie uns weitermachen und hier eine Variable erstellen. Auch wenn es nicht darum geht, worum es in diesem Video geht, werden Variablen hier ein paar Abschnitte haben. Wir werden einen erstellen, um Ihnen ein Gefühl dafür zu geben, was dieser gesamte Blueprint-Bereich macht. Ich werde eine neue Variable erstellen, indem auf diesen Plus-Button klicke. Ich nenne das einen Namen und nenne es Schluckauf. Hört sich so an. Als nächstes muss ich entscheiden, welche Art von Blau oder welche Art von Variable ich haben möchte. Standardmäßig zeigt es normalerweise einen booleschen Wert wenn Sie zum ersten Mal eine Variable erstellen. Oder der Standardvariablentyp wird so festgelegt , dass er das ist, was Sie zuletzt erstellt haben. Bevor ich dieses Video erstellt habe, habe ich einen Trockenlauf gemacht und daher ist es derzeit auf den variablen Typ eingestellt , nach dem ich suche . Wie ändert man das? Wir können direkt hier klicken, um es zu ändern. Oder wenn seine Variable im Detailbedienfeld ausgewählt ist, können Sie sie auch hier ändern. also unter Variablentyp Klicken Sie also unter Variablentyp auf dieses Dropdown-Menü und suchen Sie nach Soundbasis. Im kleinen Fly-Out-Menü möchten Sie die Objektreferenz auswählen. Wenn Sie dies tun, werden Sie aufgefordert, Ihren Blueprint zu kompilieren. Auch hier zeigt es meinen Standardwert an, weil ich vor dem Video bereits einen Trockenlauf gemacht habe. Wenn Sie jedoch hier kompilieren, können Sie einen Sound Ihrer Wahl auf dieses Dropdown-Menü klicken. Ich mag den Zusammenspiel-Sound. Wenn Sie also nach Enter, Play und Mauszeiger über diese bestimmte Schallwellendatei suchen , wird in diesem kleinen Popup angezeigt , dass dies vom Engine-Pfad stammt. Und wenn Sie diesen Ton nicht sehen, können Sie, wenn Sie auf dieses Zahnradsymbol klicken, wenn Sie auf dieses Zahnradsymbol klicken, Engine-Inhalt anzeigen und Sie sollten Zugriff auf diesen Sound haben. Jetzt könntest du hier wirklich jeden Sound einstecken. Dies ist nur die, die ich gewählt habe. Fühlen Sie sich also frei, in den gewünschten Sound zu stecken. Jetzt werden wir diese Variable noch nicht nutzen . Das wird im nächsten Video kommen , wenn wir über unseren Event Graph sprechen. Aber um hier zusammenzufassen, das My Blueprint-Panel, beherbergt man Dinge wie Funktionen, Dinge wie Makros, Dinge wie Variablen und wo man darauf zugreifen kann diese Dinger. Als letztes, bevor wir dieses Video abschließen, haben Sie möglicherweise bereits bemerkt, dass alle unsere verschiedenen Komponenten hier oben im Komponentenbedienfeld auch hier unten im Variablenabschnitt angezeigt werden. Und dies ist eine schnelle und einfache Möglichkeit , einen Verweis auf jede dieser verschiedenen Komponenten in unser Ereignisdiagramm aufzunehmen. Aber auch hier werden wir das in zukünftigen Videos nutzen . Im Moment wollte ich nur auf die Beziehung zwischen Komponenten hinweisen, die zu Ihrem Blueprint hinzugefügt wurden auch im Variablenabschnitt des Bedienfelds „Mein Blueprint“ angezeigt werden . Das wird alles für dieses Video machen, Leute, wir sehen uns im nächsten. 10. Event: Willkommen zurück alle. In diesem Video ist es unser Ziel, mehr darüber zu erfahren und zu demonstrieren was sich der Event Graph in einer unwirklichen Blaupause befindet. Jetzt ist dies ein Bereich einer Blaupause, in der all unsere Skriptmagie immer dann passiert , wenn wir ein Verhalten, eine Funktionalität oder ein Gameplay hinzufügen möchten . Der Ort, an dem diese Interaktionen lebendig werden befindet sich im Ereignisdiagramm. Hier in meinem BP-Beispiel-Pickup haben wir bereits die Registerkarte „Ansichtsfenster“ auf der Registerkarte „ Konstruktionsskript“ untersucht, über die wir bald sprechen werden. Die Registerkarte Ereignisdiagramm ist diejenige die wir in dieser Show zum Star der Show machen werden. Lassen Sie mich also mit der linken Maustaste darauf klicken. Und was Sie sehen, ist ein Graph , das hier ein paar Knoten hat. Standardmäßig sind dies Ereignisknoten, aus denen wir ein Skript erstellen können. Wir werden in ihrem eigenen Abschnitt über Ereignisknoten sprechen. Aber im Moment möchte ich einfach nur linken Maustaste klicken und dieses Feld, das als Festzeltauswahl bekannt ist, herausziehen . Und ich drücke die Löschtaste, sobald alle diese hervorgehoben und Newcomb raus sind. Tschüss. Wir werden hier unser eigenes Skript erstellen. Okay, das erste, was wir tun wollen, ist ein paar Knoten zu unserem Graph hinzuzufügen. Wie machen wir das? Nun, es gibt tatsächlich verschiedene Methoden und wie man das macht. Die erste ist, indem Sie mit der rechten Maustaste in ein Diagramm klicken. Wenn Sie mit der rechten Maustaste klicken, haben Sie eine ganze Reihe verschiedener Kategorien. Und in jeder dieser verschiedenen Kategorien gibt es verschiedene Funktionen, die Sie hinzufügen können. Es gibt verschiedene Ereignisse , die Sie hinzufügen können, und so weiter. Ich wähle einfach Event Begin Play hier aus. Das ist eine, die du hier schon mal gesehen hast. Und voila, du hast selbst einen Knoten. Ich werde das rausholen. Ich werde jetzt eine hinzufügen, die wir in unserer Grafik wollen Ich werde hier oben im Bedienfeld „Komponenten“ unsere Kugelkollisionskomponente auswählen . Jetzt springe ich einfach schnell zur Registerkarte „Ansichtsfenster“. Die Kugelkollision ist diese unsichtbare Kugel, die unser Kreuz hier umgibt. Also möchte ich etwas mit unserer Kugelkollision machen. Ich möchte einen Knoten damit verknüpft haben. also zurück zu meinem Ereignisdiagramm gehe, während diese Kugelkollision ausgewählt ist, klicke ich mit der rechten Maustaste in mein Diagramm und notiere dieses Kontrollkästchen hier oben. Es ist kontextsensibel. Es wird mir also einige Knoten zeigen, die spezifisch für meine Kugelkollision sind spezifisch für meine Kugelkollision und sie sind hier oben aufgeführt. Einer von ihnen, den ich jetzt hinzufügen werde, befindet sich unter dieser Kategorie Add Event for Sphere Collision. Also klicke ich auf dieses Dropdown-Feld und möchte unter dem Kollisionsbereich die Überlappung der Komponenten hinzufügen. Jetzt wird dieser Knoten ein Signal auslösen , wenn etwas beginnt, es zu überlappen. Und es kann hier einige Daten ausgeben, je nachdem , was diese bestimmte Komponente überlappt hat. Jetzt eine Information, die ich finden möchte, wenn sich etwas überschneidet, die Kugelkollision , war wer war der andere Schauspieler? Also ziehe ich einen Draht hier raus und tippe Besetzung zu Third Person-Charakter ein. Nun, wir haben noch nichts über Casting gelernt, aber lange Geschichte, kurz, wir werden, dieser Knoten wird es uns erlauben zu überprüfen, hey, war der andere Schauspieler, der diese Sphere Kollision überlappt, dass der ThirdPersonCharacter? Wenn ja, werden wir hier unseren Hinrichtungsfluss fortsetzen . Von diesen Ereignissen durch diesen Knoten, fahren Sie hier fort. Dies ist eine Reihe von Drähten und Knoten, die wir miteinander verbinden, um Dinge zu verwirklichen. Wenn es nicht der ThirdPersonCharacter , der diese Angstkollision überlappt, würde diese Besetzung scheitern und der Ablauf der Ausführung würde hier weitergehen. Auf diese Weise können Sie also einen Knoten hinzufügen, indem Sie einfach einen Draht aus einem dieser farbigen Pins ziehen. Und wir werden in zukünftigen Videos über diese verschiedenfarbigen Pins sprechen und dann nach einem bestimmten Knoten suchen. Die dritte Möglichkeit, unseren Graphen hier einen Knoten hinzuzufügen , besteht darin, Drag & Drop zu ziehen. Wir können Komponenten per Drag & Drop ziehen. Und ich könnte es hier entweder über das Bedienfeld „Komponenten“ oder aus dem Variablenabschnitt des „My Blueprint-Panels“ machen. Jetzt mache ich beides, nur weil es Spaß macht, beide Wege zu demonstrieren. Aber das erste, was ich tun werde ist, dass ich diesen Tonabnehmer per Drag & Drop ziehen, mit der linken Maustaste klicke und in unsere Grafik ziehe. Es wird mich fragen, ob ich das bekommen will oder möchte ich das einstellen? Nun, ich möchte den Inhalt dieser Variablen abrufen. Der Inhalt dieser Variablen oder dieser beginnt dort abzuspielen, tut mir leid, dieser damit verbundene Zusammenspiel-Sound . Ich kriege es. Und dann ziehe ich diesen Knoten ab und tippe den Play-Sound ein. Siehst du, ich wusste, dass diese Variable einen Klang darin enthielt. Es enthält diesen Wechselspiel-Sound. Also alles was ich hier mache ist, dass ich sage, Hey variabel, ich möchte spielen , welchen Klang du in dir hast. Das macht dieser Funktionsknoten genau hier. Jetzt wird dies nicht passieren, wenn ich diesen Ausführungsdraht nicht mit diesem Play-Sound-Funktionsknoten verknüpft habe . Okay, das ist also eine Möglichkeit zum Drag & Drop direkt aus dem My Blueprint-Bedienfeld. Eine andere Sache, die ich tun möchte, und das wird nur zu Demonstrationszwecken dienen, ist, dass ich eine Komponente hier rausziehen werde. Lassen Sie mich etwas Visuelles wie den Würfel horizontal ziehen , mit der linken Maustaste klicken und ziehen. Und dann ziehe ich horizontal aus meinem Würfel und tippe einfach Destroy ein. Ich werde diese Komponenten zerstören, wenn unsere ThirdPersonCharacter-Überlappungen Sphäre sind. So lesen Sie dieses spezielle Drehbuch gerade, wenn wir unsere Sphäre überlappen, werden wir herausfinden, wer der andere Schauspieler war. Wir werden zu unserem ThirdPersonCharacter spielen, im Grunde herausfinden, hey, war es der ThirdPersonCharacter , der uns überlappt hat? Wenn ja, werden wir hier unseren Ausführungsfluss fortsetzen , indem wir den Sound abspielen. Und dann zerstören wir einfach nur die horizontale Komponente des Würfels. Lass uns weitermachen und das testen. Ich klicke hier oben auf diesen Play-Button. Und ich werde das hier zur Seite stellen , weil ich möchte, dass du nicht nur sehen kannst , wie ich das Spiel spiele, sondern auch die Ausführung dieses Skripts ansiehst . Jetzt habe ich derzeit Zugriff auf mein Fenster, aber ich möchte es tun, ist die Umschalttaste in F1 drücken , um meinen Mauszeiger wieder zu meinem Editor zu bringen. Jetzt hier oben habe ich meinen BP-Beispiel-Pickup. Ich kann darauf klicken und Sie können sehen dass ich in meinem Diagramm 12345 verschiedene Instanzen dieses Pickups habe. Dies wird dies also nur für jede bestimmte Instanz zeigen , die ich hier ausgewählt habe. Also gehe ich mit BP Beispiel Pickup, dem ersten. Und wenn ich dieses Fenster wieder anbringe, werden Sie sehen, dass dieser Ausführungsfluss aus diesem Ereignisknoten durch den Rest dieser Knoten herausschneidet diesem Ereignisknoten durch den Rest dieser , wenn ich diese spezifische Instanz von diese Abholung. Also lasst uns das erste mal hier sehen. Das war also eine, die den Ablauf der Ausführung direkt oben zeigte . Und wie Sie sehen können, hat es einfach zerstört , dass eine Komponente nicht alles zerstört hat. In Ordnung. Ich überlappe das. Auch hier hat es die Komponente zerstört, aber Sie sehen den Ausführungsfluss von oben nicht. Süß, also funktioniert es gerade. Jetzt möchte ich das hier ein bisschen weiter gehen, und wir können diesen Fehler hier ignorieren, weil was wir gerade hier gebaut haben, nur vorübergehend war. Also klicke ich auf diese X-Button. Ich wollte das hier ein bisschen weiter bringen, indem er diese Zerstörungskomponente und die Hitze und den Würfel horizontal zerstörte. Denn das ist nicht wirklich das, was ich hier machen wollte. Stattdessen möchte ich den ganzen Schauspieler zerstören , wenn wir das sammeln. Also ziehe ich meinen Play-Sound 2D ab und tippe einfach Destroy Actor ein. Jetzt ist das Ziel dieses bestimmten Knotens selbst, also dieser gesamte Blueprint. Wenn wir diese Kugelkollision überlappen, werden wir herausfinden, ob es ein Third-Person-Charakter war, der der andere Akteur war, der diese Kugelkollision überlappt. Wir spielen diesen Sound und dann werden wir unseren Schauspieler zerstören. Spaßfaktor diesen Ort bis D. Sie können darauf klicken um einige Eigenschaften zu ändern, z. B. der Volume-Multiplikator kann dies auf zwei setzen. Lasst uns zum Beispiel weitermachen und das noch einmal spielen. Jetzt sollte dies den ganzen Schauspieler zerstören , wenn wir ihn überlappen. Und lassen Sie uns das hier ein bisschen größer machen. Und los geht's. Süß. Okay, mit ein bisschen Skript, das hier erstellt wurde, sprechen wir über das Navigieren im Ereignisdiagramm. Hier zoomt das Scrollrad im Ereignisdiagramm ein- und heraus. linke Maustaste plus rechte Maustaste zoomen ebenfalls ein- und heraus. Also habe ich beide runter und ich bewege nur meine Maus auf und ab. Sie können die Zoomstufe oben rechts sehen. Übrigens. Wenn ich mit der rechten Maustaste klicke und ziehe, schwenkt das herum. Es gibt mir irgendwie dieses Handsymbol um es so zu bewegen, linken Maustaste und ziehen, linken Maustaste klicken und ziehen wie. Also. Das bringt diese Marquee-Auswahl mit sich, die sich hervorragend eignet, um eine ganze Auswahl von Knoten wie diesen hervorzuheben . lustige Tatsache hier, etwas, das Sie mit dem ganzen Skript wie diesem machen können , ist, auf die C-Taste zu tippen , um ein Kommentarfeld hinzuzufügen. Und ich nenne das einfach mein Pickup-Skript. Das hilft, die Dinge schön und organisiert zu halten. Wenn Sie also so herauszoomen, können Sie alle Ihre verschiedenen Skripte sehen , die Sie hier geschrieben haben. Linke Maustaste auf „Nein“, damit du es auswählen kannst, damit du es dann so bewegen kannst. rechten Maustaste auf einem Knoten wird ein inhaltssensitives Menü geöffnet. Einige Optionen hier, die ich sehr gerne erforscht habe. Diese Ausrichtungsoptionen sind großartig und funktionieren wie alles, was Sie in PowerPoint oder Google Slides finden könnten , um Knoten auszurichten und sie leicht zu machen, links gerechtfertigt, rechts gerechtfertigt. Ich liebe diese, besonders diese geradlinigen Verbindungen. Einer ist einer meiner Favoriten. Was haben wir sonst noch hier? Wir haben Alt plus linke Maustaste um Drähte zu schneiden. Wie Sie sehen können, haben wir diesen ununterbrochenen Ausführungsfluss. Wenn dieses Ereignis eintritt, fließt ein Impuls durch diese Ausführungspins, die Alt-Taste gedrückt halten und mit der linken Maustaste auf einen Draht klicken, wird es unterbrochen. Also, wenn ich das Spiel spielen würde , würde ich tatsächlich den Sound spielen , aber den Schauspieler nicht zerstören, weil der Ablauf der Ausführung durch diese Ausführungspfannen nicht hierher gekommen ist. In Ordnung, Control plus linke Maustaste bewegt die Kabel. Sagen wir einfach, ich habe es getan, ich werde einfach mit der rechten Maustaste klicken und meinen Destroy Actor-Knoten duplizieren. Sagen wir einfach , dass dies hier unten eine andere Funktion war . Und ich wollte diesen Draht bewegen. Du musst es nicht so kaputt machen und es dann so neu verdrahten. Wenn Sie die Strg gedrückt halten, können Sie mit der linken Maustaste klicken und diesen Draht aufnehmen und zu einem anderen Knoten verschieben. Das ist auch ein sehr praktischer Trick. Benutze das oft. Es ist etwas, auf das man hinweisen kann, wenn man Drähte bricht , man muss nicht nur Alt und Linksklick auf die Mitte klicken. Sie können auch Alt - und Linksklick auf einen dieser Ausführungspins klicken. Also da hast du es. Das ist ein paar schnelle Navigationssachen für Ihr Event-Diagramm. Eine weitere Sache, die ich hier mit den Ereignisgrafiken hervorheben möchte , weil es den Schülern immer passiert. Wenn Sie Ihren Event Graph Tab schließen, ist der Boom schließlich weg. Sie können es in der Fensteroption nicht direkt hier oben finden. Wie kriegt man das damals? Nun, das ist im My Blueprint-Panel hier enthalten , wir haben dieses Ereignisdiagramm. Und wenn ich auf dieses Ereignisdiagramm unter unserem Diagrammbereich doppelklicken würde , wird es sofort wieder aktiviert. Auch das ist gut zu beachten. Es listet alle Ereignisse auf, die sich in Ihrem Ereignisdiagramm befinden . Lassen Sie mich also einfach mit der rechten Maustaste klicken und hinzufügen und Ereignisse beginnen Play. Sie können sehen, wie ich dies zu meinem Diagramm hinzufüge, es zeigt es auch hier unten unter meinem Event Graph. Wenn ich also noch einen Sommer draußen wäre und zweimal auf das Event geklickt habe, würde es mich dazu bringen. Ich habe auch die Möglichkeit, ein neues Diagramm zu erstellen. Lassen Sie mich das einfach schnell machen, indem ich auf ein neues Diagramm klicke, und ich nenne dieses neue Diagramm. Jetzt habe ich zwei verschiedene Graphen. Beides sind Ereignisgrafiken. Einer heißt Ereignisdiagramm, der andere wird als neuer Graph bezeichnet. Warum würdest du das jemals tun? Nun, ich mache das manchmal einfach um meine Drehbücher besser zu organisieren. Abhängig davon, wie viel Skript Sie einem Blueprint hinzufügen möchten, kann es sinnvoll sein, ein Diagramm zu haben , das sehr spezifisch ist, Eingabeereignisse im Vergleich zu sehr passiven Dingen , die es können passiert mit dieser Blaupause. Also einige organisatorische Dinge, die beachten sollten, wenn Sie Ihre verschiedenen Blaupausen erstellen . Okay Leute, das ist ein schneller Überblick im Event Graph. Irgendwelche Blaupausen. 11. Construction: Willkommen alle. In diesem Video ist es unser Ziel, ein hohes Verständnis dafür zu bekommen was das Konstruktionsskript in einer Blaupause steckt. Das heißt, diese Registerkarte befindet sich hier oben zwischen unseren Registerkarten „ Ansichtsfenster“ und „Ereignisdiagramm“. Auf den ersten Blick scheint es fast identisch mit dem Event Graph zu sein. Jetzt bin ich also auf der Registerkarte Ereignisdiagramm unseres BP Beispiel-Pickups. Sie können sehen, dass Knoten miteinander verdrahtet sind. Drüben in unserem Bauskript. Derzeit haben wir einen Knoten, aber genau wie ein Ereignisdiagramm können wir andere Knoten damit verbinden. Nun, während das Event Graph der Ort ist , an dem Skript erstellt werden soll, das ausgeführt wird, während Ihr Spiel läuft. Das Konstruktionsskript ist ein Ort um Skript zu erstellen , das Sie ausführen möchten , bevor das Spiel beginnt während Sie Ihren Blueprint erstellen. Nun schauen Sie, Konstruktionsskript eignet sich hervorragend für Aufbau von Konstruktionsvielfalt in Ihre Skripte sowie das Erstellen von prozeduralen Akteuren , mit denen Sie arbeiten können. Was du vor dir siehst, ist ein Blick darauf, was während des restlichen Videos kommen wird. Diese Wand hier ist eine Blaupausen der Schauspielerklasse, die nur verwendet und das Konstruktionsskript nutzt. Was ein Konstruktionsskript so cool macht , ist, dass Sie ein paar Parameter in Ihrem Detailfenster verfügbar machen können. Und indem Sie nur einige dieser Parameter ändern, die Sie angegeben haben, können Sie das Aussehen dieser bestimmten Instanz des Blueprints ändern. Wie Sie sehen können, feuert das folgende Skript ab, wenn ich einige Eigenschaften ändere . Was es wieder einmal von Construction Script vom Ereignisdiagramm unterscheidet, ist dass das Konstruktionsskript ausgelöst wird, wenn ich überhaupt eine Änderung an diesem Entwurf vornehme, es könnte sogar einfach verschoben werden beobachtet, wie ich das bewege. Sie werden hier unten im gesamten Konstruktionsskript einen Puls sehen . Jetzt macht es das auch cool, wenn ich eine Kopie dieses Blueprints erstelle, gehe ich zu Alt, klicke mit der linken Maustaste und ziehe. Ich kann die Parameter für diese bestimmte Instanz ändern. Lassen Sie mich also die Anzahl der Abschnitte hier auf etwa zehn ändern . Und ich kann das Material ändern, geben wir einfach das Wort Ziegel ein. Und so kann dies ein ganz eigenes Material haben. Das Konstruktionsskript ist also, wo er so etwas verwirklichen kann . Denken Sie nun an die Möglichkeiten, wie ich dieses Konstruktionsskript eingerichtet habe. Dies ist nur eine einfache Wand. Dies könnte eine Reihe von Stühlen sein, es könnte ein Zaun sein. Es könnte ein Haufen elektrischer Pole mit Drähten sein, die zwischen ihnen aufgereiht sind, so etwas. Okay, wir werden hier in unserem Content-Browser anfangen , insbesondere im Skriptordner unseres Content-Browsers. Ich klicke mit der rechten Maustaste in einen leeren Bereich hier drüben. ich mit der rechten Maustaste Menü? Ich möchte einen neuen Blueprint erstellen. Wir möchten, dass dies zur Vielfalt der Schauspielerklasse gehört, denn dies wird eine Blaupause sein, die wir in der Welt platzieren. Es wird mich dazu auffordern, ihm einen Namen zu geben. Ich nenne diesen BP-Unterstrich-Beispiel. Wie wär's mit nur Eiern? Construct Script, das ist ein sehr abgekürzter Name, aber ich wollte irgendwie, dass es hier in eine Zeile passt, nicht um das x-Konstrukt-Skript umbrochen. Großartig. Doppelklicken Sie darauf , um es sofort zu öffnen. Dann docket ganz oben, wie ich es gerne tue. Jetzt werden wir diesen Blueprints eine Komponente hinzufügen . Ich gehe unter die Schaltfläche „ Hinzufügen“ und tippe statisches Netz ein. Nur statisch wird es vermindern. Im Gegensatz zu dem Zeitpunkt, an dem wir eine statische Netzkomponente hinzugefügt haben, möchten wir in diesem Fall eine Static Mesh-Komponente hinzufügen. Und der Grund dafür ist , dass wir eine beliebige Anzahl von Wandabschnitten aufbauen werden . Und um dies effizient für den Typ des Skripts zu tun , den wir gerade erstellen werden, möchten wir ein statisches Instanznetz, da ein Tooltip Ihnen sagt wie Sie es effizient rendern können. Fügen wir also eine Instanz hinzu Static Mesh. Ich drücke hier die Eingabetaste , wobei diese Komponente im Detailbedienfeld ausgewählt ist , das wir in ein statisches Netz stecken können. Ich klicke hier auf dieses Dropdown-Menü. Geben Sie die Nummer 400 ein, da dieser Wandabschnitt , den ich dieser Komponente zuordnen möchte , Wand 400 mal 400 ist. Geh weiter und wähle das aus. Wie Sie sehen können, sehen wir noch nichts in unserem Ansichtsfenster. Wir werden das hier in unseren Konstruktionsskripten auf andere Weise nutzen . Also lasst uns da drüben aufsteigen. Jetzt. Das wichtigste Mitnehmen, das Sie zumindest dafür verstehen, ist, was das Konstruktionsskript leisten kann. Für den Aufbau einer sehr dynamischen Blaupausen. Du kannst deine Blaupausen auf großartige Weise anpassen , während du dein Level ausbaust. Jetzt das Skript, das wir gerade zusammenstellen werden, es ist okay, wenn Sie überhaupt nicht verstehen, was passiert, wir werden diese Skriptkonzepte aufschlüsseln als wir gehen während des gesamten Kurses. Mein Ziel in diesem Video ist es, das Ding einfach zu erstellen, damit Sie sich ein Bild davon machen können , was das Konstruktionsskript leisten kann. Also ertrage mit mir das. Wir beginnen damit, hier eine Variable zu erstellen. Klicken Sie auf diesen Plus-Button. Wir werden diese Variable Num von nennen. Abschnitte, wir werden diese Variable verwenden , von der wir diese in einen ganzzahligen Typ ändern werden , um festzuhalten wie viele Wandabschnitte wir für diesen Entwurf haben möchten. Wir können diesem einen Standardwert im Detailbedienfeld geben , aber wir werden aufgefordert, zuerst den Blueprint zu kompilieren. Ich mach das weiter. Beginnen wir mit dem Standardwert eines Wandabschnitts. Das ist nett. Jetzt möchte ich hier auf etwas anderes hinweisen. Wir können diese Variablen unserem Editor zur Verfügung stellen , wenn wir dieses bearbeitbare Kontrollkästchen für die Instanz hier aktivieren. Aber bevor wir das tun, muss ich diese Blaupause tatsächlich in unser Level legen . Lassen Sie mich also zurück zu meinem Level-Test-Map Tab springen meinem Level-Test-Map Tab , der mich zurück zum Haupteditor bringt. Lassen Sie mich dieses Beispiel-Konstruktionsskript auf unser Level ziehen und ablegen . Alles was wir sehen ist das Symbol der Wurzelkomponente. jetzt im Detail-Panel Wenn ich jetzt im Detail-Panel nach nur taub suche, erinnere dich an unsere angegebene Variable hier hieß Anzahl von Abschnitten. Ich sehe nichts. Ich lasse diese Suche für den Moment gleich hier oben. Ich gehe hier zurück in mein Beispiel-Konstruktionsskript. Lassen Sie uns das bearbeitbare Kästchen für die Instanz genau hier ankreuzen. Beachten Sie, dass wenn ich das mache, das dasselbe ist wie hier zu klicken. Das Schließen dieses Augapfels bedeutet, dass Instanz nicht bearbeitet werden kann Klicken, um es zu öffnen, aktiviert dieses Kästchen. Sie können dieses Kästchen also entweder ankreuzen, indem Sie hier klicken oder direkt dort klicken. Wenn ich nun kompiliere, speichere diesen Blueprint und gehe zurück zu meinem Level-Editor mit meinem Beispiel-Konstruktionsskript das hier im Level Over im Detailbedienfeld ausgewählt wurde. Ich habe diese Variable jetzt dem Level-Editor zugänglich gemacht. Das wird großartig sein , denn wir werden hier eine Nummer einschlagen können. Und dann wird es Construction Script bestimmen, wie viele Wandabschnitte wir erscheinen wollen. Ziemlich süß. Okay, lasst uns das Skript ausbauen. Zurück hier. Im Konstruktionsskript. Ich ziehe ein Kabel raus. Ich suche nach einer for-Schleife. Und wieder werde ich das ein bisschen schnell durchmachen . Wenn Sie also nicht verstehen, was alles passiert, ist das ganz in Ordnung und möchte hier nur die Kraft des Konstruktionsskripts zeigen . Jetzt füttere ich dies um eine Reihe von Abschnitten, die diese eine Reihe von Abschnitten in das Diagramm ziehen und ablegen. Ich will es kriegen. Dann ziehe ich das ab und tippe den Minusschlüssel ein. Ich möchte den Knoten subtrahieren und subtrahiere die Nummer eins. Und ich erkläre warum wenn wir mit all dem fertig sind. Und ich werde das in unseren letzten Index der for-Schleife stecken . Also ja, bitte gestatten Sie mir, das zuerst aufzubauen und dann wieder durchzugehen und genau zu beschreiben, was passiert. Nun, der Loop-Körper den ich davon abziehen werde. Nun, eigentlich muss ich zuerst Static Mesh Referenz in unsere Instanz einbringen . Lassen Sie uns das per Drag & Drop aus unserem Komponentenbedienfeld direkt in unser Diagramm ziehen. Alternativ könnte ich es auch hier runter kriegen. Ich ziehe davon ab und tippe AD-Instanz ein. Das wird also das Wissen sein, das hier tatsächlich einen Wandabschnitt hinzufügen wird . Es ist in dieser Instanz statisches Netz für unsere Welt enthalten . Wir nehmen unseren Loop-Körper und stecken ihn hier rein. Als Nächstes ziehe ich unseren Index aus unserer for-Schleife ab. Ich werde eher einen Multiplizierknopf einbringen oder einen Knoten multiplizieren, ich möchte dies mit 400 multiplizieren. Es gibt einen ganz bestimmten Grund, warum ich hier die Nummer 400 auswähle. Das ist zufällig die genaue Länge unseres statischen Netzes hier. In der Tat, wenn ich mit dieser Maus darüber klicke, sehen Sie dort im Tooltip die Größe dieses Feldes, ungefähr in der Mitte dieser Box, die ungefähre Größe beträgt 400 mal 20 mal 400. Es ist also 400 unwirkliche Einheiten breit, 20 Einheiten dick, 400 Einheiten groß. Das ist also ein ganz spezifischer Grund warum ich diese Nummer hier auswähle, da ich alle 400 unwirklichen Einheiten eine bestimmte Anzahl von Abschnitten hinzufügen werde. Als nächstes ziehe ich von diesem Instanz-Transform-Pin rückwärts ab . Und sobald ich das Wort make transformation loslasse und eintippe , gibt uns hier ein bisschen mehr Platz. Bewegen Sie das in Position wie folgt. Und dann links von der Standortstift hier klicke ich mit der linken Maustaste und ziehe und tippe ein, mache Vector hier unten, mache Vektor. Und ich werde das in unser x. anschließen und es wird einen Konvertierungsknoten einbringen, der eine Datentyp-Ganzzahl in einen Float konvertiert. Das wird also gut werden. Lasst uns jetzt darüber reden , was wir hier vor sich haben. Was passieren wird, ist, dass wir eine bestimmte Anzahl von Abschnitten einspeisen werden. Und denken Sie daran, dass diese Variable im Editor verfügbar ist, damit wir bestimmen können, wie viele Abschnitte wir wollen. Nehmen wir einfach an, wir wollen zehn Abschnitte. Wir werden so viele Abschnitte durchlaufen , die wir hier haben, beginnend mit unserem ersten Index. Es beginnt mit der Zahl von 0. Wenn ich zehn habe und minus eins, entspricht das neun. Unser erster Index wird also 0 sein. Unser letzter ist neun. Im Wesentlichen wird uns das zehn Iterationen dieser Schleife geben . Wieder, beginnend mit 0, endend mit neun. Deshalb machen wir diese Subtraktion genau hier, indem wir zehn einsetzen eine subtrahieren , die neun entspricht. Aber wir fangen an, bei 0 zu zählen. Also wird es das zehnmal laufen. Es wird zehnmal aus diesem Loop-Körper ausgeführt. Es werden zehn Instanzen dieses statischen Netzes hinzugefügt. Jetzt bestimmt all dies hier unten wo die statischen Netze platziert werden sollen. Im Wesentlichen tun wir für jeden Index, wir werden ihn auf über 400 unwirkliche Einheiten in x-Richtung verschieben . Das ist im Wesentlichen das, was dieses Skript genau hier macht. Jedes Mal, wenn Sie ein Skript erstellen , sei es im Konstruktionsskript oder im Ereignisdiagramm, möchten Sie kompilieren. Auf diese Weise überprüfen wir Ihr Skript , um sicherzustellen, dass Sie keine Fehler gemacht haben. Es wird nicht alle Fehler erfassen, aber es wird viele Fehler erkennen. Und dann willst du das aufsparen. Lasst uns jetzt wieder in unser Level springen. Und was wir gerade sehen ist, dass wir einen Wandabschnitt haben. Das ist alles gut und gut. Lassen Sie mich das einfach ansprechen. Drücken Sie die End-Taste und das wird es auf den Boden schlagen. Und das ist ziemlich cool. Was passiert jetzt, wenn ich die Anzahl der Abschnitte auf zwei ändere ? Was weißt du, was einen weiteren Abschnitt hinzufügt? 3410. Jetzt haben wir zehn Wandabschnitte , die ziemlich langweilig aussehen, aber Sie können sehen, was uns das Konstruktionsskript erlaubt hat. Es ist sehr viel, einen Blueprint zu erstellen, der sehr anpassbar ist, indem wir hier nur einen Wert ändern. Wir ändern, was mit diesem Blueprint passiert, einem Ort innerhalb Ihres Levels. Lasst uns nun diesen einen Schritt vorwärts machen, denn dies ist eine ziemlich langweilig aussehende Wand, wenn ich es selbst sage. Lassen Sie uns also unser Skript ein bisschen weiter erweitern. Also komm in unser Konstruktionsskript hinein. Und ich zoome nur ein bisschen raus. Und ich ziehe hier eine weitere Kopie unseres statischen Instanznetzes heraus . Ziehen Sie eine Kopie heraus. Ich lege es genau hier ab. Und dann ziehe ich hier raus und tippe ein festgelegtes Material ein. Stellen Sie Material ein. Unser statisches Instanznetz wird das Ziel sein. Und lasst uns unsere Hinrichtung hier fortsetzen. Und von unserem Material hier kann ich mit der rechten Maustaste klicken und dies in eine Variable bewerben. Wenn ich diese Variable mache, erscheint diese Variable in unserem Variablenbereich. Dies wird ein Material sein und ich werde dem Namen neues Material geben. Und ich klicke auf dieses Feld, um diese Instanz editierbar zu machen. Ich muss dies auch editierbar machen , damit wir dies im Editor ändern können. Geben wir uns hier ein neues Material. Wir können ihm ein neues Material geben, das ich wählen werde. Lass es uns versuchen. Ich tippe einfach Ziegel ein. Du kannst das ändern , was immer du willst. Ich wähle Ziegelton. Klar. Kompilieren, speichern Sie das ist unser aktuelles Skript. Und wenn ich jetzt wieder in unseren Level-Editor springe, können Sie sehen, dass Tonmaterial an jedem Wandabschnitt platziert wird. Ich sehe es jedoch nicht im Editor da ich gerade nach dem Wort taub filtere. Lassen Sie mich diesen Filter ganz oben rückgängig machen, ich sehe die beiden Variablen, die ich jetzt dem Editor ausgesetzt habe. Lass mich mein neues Material in etwas anderes umwandeln. Lass uns zu Chrome und Wallah gehen. Wir haben uns eine Chromwand. So erstellen Sie Blaupausen , die während der Entwurfszeit sehr erweiterbar sind. Das Konstruktionsskript bietet Ihren Designern, Ihren Leveldesignern, wenn Sie so bietet Ihren Designern, Ihren Leveldesignern, wollen, große Leistung und Flexibilität bei den Blaupausen, in denen sie platziert wurden Ihre Levels und wie sie sie anpassen können. Stellen Sie sich vor, wenn Sie eine Blaupause hätten , die einfach ein Licht war, eine Lampe, wenn Sie so wollen, in einem Raum. Und vielleicht legen Sie die Farbe des Lichts frei, wie wir es hier in unserem Beispiel getan haben, genau hier im Editor. Wir können es so machen, dass wir für jeden Lampenentwurf, den wir in das Level gesetzt haben, die Farbe davon über das Konstruktionsskript ändern können . Also da hast du es, Leute, das ist die Macht des Konstruktionsskripts. Innerhalb einer Blaupause. Sie werden es tun, um das anzubieten. Wir sehen uns im nächsten. 12. Class: Willkommen zurück alle. In diesem Video ist es unser Ziel, einige der verschiedenen Blueprint-Typen in Unreal kennenzulernen , beginnend mit etwas, das als Class Blueprint bekannt ist. Der Grund, warum wir mehr über verschiedene Blueprint-Typen lernen möchten , liegt darin , dass verschiedene Typen unterschiedlichen Zwecken dienen. Darüber hinaus können sich die Benutzeroberfläche und die Art und Weise, wie Sie mit diesem Blueprint arbeiten , geringfügig unterscheiden, je nachdem woran Sie gerade arbeiten. Lassen Sie uns nun unseren BP-Beispiel-Pickup hier verwenden. Schau dir das sehr schnell an. Oben rechts. Es zeigt erneut, dass es sich einen Blueprint der Schauspielerklasse handelt, der als übergeordnete Klasse bezeichnet wird. Es steht unter dem Dach von Class Blueprint. Auch hier gibt es viele Arten von Klassenblaupausen. Was macht einen Class Blueprint zu einem Klassen-Blueprint? Nun, Sie können sich einen Klassen-Blueprint oder einen Blueprint kurz als eine Art Asset-Vorlage vorstellen oder einen Blueprint kurz . Als Vorlage, mit der Sie einfach Funktionen oder Komponenten hinzufügen können , um sie zu Ihrer eigenen zu machen. Jetzt, direkt neben diesem Tab hier habe ich meinen BPA ThirdPersonCharacter. Und innerhalb dieser Charakterklasse Blueprint habe ich ein paar verschiedene Komponenten, habe ich ein paar verschiedene Komponenten die automatisch aus der Erstellung dieses Charakterklassen-Blueprints stammen , nämlich der Capsule Component, der Pfeil, das Netz und die Charakterbewegungskomponente. Wenn ich es wollte, könnte ich dies jedoch anpassen und es mir zu eigen machen. Ich kann weitere Komponenten hinzufügen. Ich könnte beispielsweise das Aussehen dieses Netzes im Ereignisdiagramm austauschen . Ich könnte all dieses Skript bei den feinen Leuten bei Epic Games ändern . Und ich könnte etwas ganz anderes erschaffen, damit sich mein Charakter so bewegt , wie ich wollte, dass er sich bewegt. Das ist es, was Klassenpläne so mächtig macht. Sie stellen Ihnen die Vorlage zur Verfügung und von dort aus können Sie sie zu dem machen, was Sie machen möchten. Wie erstellen wir diese Klassenblaupausen? Nun, es gibt ein paar Methoden. Eine, die du mich schon gesehen hast. Im Inhaltsbrowser können Sie mit der rechten Maustaste klicken, und ein leerer Bereich wird unter Blueprint-Klasse angezeigt. Und dort können Sie eine Elternklasse auswählen. Dies sind alles verschiedene Arten von Klassenblaupausen. Die häufigsten oben aufgelisteten, die weniger gebräuchlichen unten. Es gibt viele. Wir werden während dieses Kurses einige der häufigsten Typen untersuchen . Aber wisse, dass es viele, viele, viele Arten gibt. Dies ist also eine Möglichkeit, an dieser Klasse Blueprint-Picker zu gelangen . Der andere Weg ist hier ganz oben mit diesem kleinen Node Icon, dem Blueprint-Symbol, wenn du willst , kannst du das auswählen, unter die neue leere Blueprint-Klasse kommen. Wenn Sie darauf klicken, wird dasselbe angezeigt, wenn Sie Ihre Elternklassenoption auswählen. Jetzt stellt uns der Elternteil erneut die Startvorlagen zur Verfügung. Also mache ich weiter und erstelle hier einen Charakter. Und ich nenne das so meinen temporären Charakter. Und ich doppelklicke darauf, um es zu öffnen. Wir werden dies mit unserem bestehenden BP ThirdPersonCharacter vergleichen und kontrastieren . Wie Sie oben rechts oben sehen können, heißt es, dass die übergeordnete Klasse Charakter ist. Und einige der Gemeinsamkeiten , die Sie zwischen diesem und dem Third-Person-Charakter sehen werden , ist, dass ich eine Kapselkomponente in einer Fehlerkomponente habe , ein Netz, eine beliebige Charakterbewegungskomponente. Diese vier finden sich auch in unserer ThirdPersonCharacter Komponente, Kapsel, Pfeil, Mesh und Charakterbewegung. Nun ist einer der Hauptunterschiede zwischen dem ThirdPersonCharacter und zwischen dem ThirdPersonCharacter und unserem temporären Charakter das Netz hier mit einem Skelettnetz gefüllt ist. In meinem temporären Charakter könnte ich dies jedoch definieren und alles machen, was ich möchte. Ich könnte wählen, welches Skelettnetz ich wollte. Es ist standardmäßig leer. Sie werden auch feststellen , dass ich hier mit unserer leeren Zeichenvorlage unserer leeren Zeichenvorlage nichts im Ereignisdiagramm bekommen habe, das die Bewegung meines temporären Charakters definiert. Im ThirdPersonCharacter haben die guten Leute bei Epic Games dies jedoch bereits gegeben, damit sie arbeiten können. Also noch einmal, unsere Charakterklasse Pooper, liefern die Blaupause, wie man einen Charakter erschaffen kann, indem sie uns diese Komponenten , aber der Rest liegt an uns. Wir können es anpassen, indem wir neue Komponenten hinzufügen das Skript anpassen, damit es sich auf eine bestimmte Weise bewegt . Als Nächstes wollte ich Ihnen ein paar Möglichkeiten geben , sich leicht zu identifizieren. Arbeiten Sie in einem Klassen-Blueprint oder Blueprints auf Level Blueprint-Ebene wird im nächsten Video gesprochen. Nummer eins, oben rechts in einem Klassen-Blueprint wird eine übergeordnete Klasse Level aufgeführt. Blaupausen werden es nicht tun. Nummer zwei. Klassen-Blueprints haben ein Bedienfeld „Komponenten“, das Level Blueprints nicht tun. Nummer drei der Klassen-Blueprints der Ereignisgraph-Tab-Klasse unten rechts lautete einfach „Blueprint“ im Gegensatz zu Level Blueprints und sagte Level Blueprint. Also ein paar schnelle Tipps dort. Ich habe viele Anfänger, die manchmal verwirrt sind , wo sie arbeiten. Warum sehen sie nicht das Bedienfeld „Komponenten“ , so etwas. Also werden diese Dinge hoffentlich einigen von euch da draußen helfen. Schließlich möchte ich hier über einige der gängigen Klassenpläne sprechen. Also Rechtsklick und etwas Leeres Leerzeichen Blueprint Class. Nach dem Unterrichtsentwurf. Dies ist der, den Sie wählen möchten , wenn es etwas ist, das Sie in Ihrem Level platzieren oder spawnen werden. Darum sollte ich sagen, etwas, das kein Charakter oder ein Bauer ist. Ein Charakterentwurf ist ein Bauer. Es erstreckt sich von der Pawn-Klasse, eigentlich kann man es bewegen. Und eines der großartigen Dinge einem Blueprint der Charakterklasse ist, dass er mit einer Charakterbewegungskomponente vorgefertigt ist, die dir die Kontrolle über Dinge gibt , wie schnell dein Charakter sich bewegt und wie schnell dein Charakter sich bewegt an einem Blueprint der Charakterklasse ist, dass er mit einer Charakterbewegungskomponente vorgefertigt ist, die dir die Kontrolle über Dinge gibt, wie schnell dein Charakter sich bewegt und wie schnell dein Charakter sich bewegt hoch sie springen, so was du besitzen und steuern kannst eine Charakterklasse, Blueprint, Spielmodus, Blueprints Spielmodus-Basis, wenn du willst. Dies ist ein wichtiger Ort, um skriptgesteuerte Spielregeln zu speichern . Es kann Dinge wie Scoring bestimmen, Zeitlimits dieser Art von Dingen werden später im Kurs an einem von denen funktionieren. Okay Leute, das wird es tun. Das ist der als Nächste kommende Klassenentwurf , der Level Blueprint. Wir sehen uns dort. 13. Level: Willkommen zurück alle. In diesem Video ist es unser Ziel, zu erfahren, was ein Level Blueprint ist, wie man darauf zugreifen kann, Dinge, für die er verwendet wird und wie er sich von einem Class Blueprint unterscheidet. Was ist ein Level Blueprint? Nun, es ist die Blaupause, die speziell mit einem bestimmten Level verbunden ist. In unserem Fall wäre es der Blueprint, der mit unserer Testkartenebene verknüpft ist. Wie greifen wir jetzt darauf zu? Nun, ganz oben hier mit diesem kleinen Blueprint-E-Typ-Symbol, klicken Sie auf dieses Dropdown-Menü und rechts Smack Dab in der Mitte hier haben wir diese offene Level Blueprint-Option. Wenn Sie einfach darauf klicken, wird unsere Registerkarte Level Blueprint geöffnet . Bevor ich das tue, möchte ich Ihnen hier einen kurzen Tipp zeigen denn wenn ich jetzt darauf klicken würde, würde es es in diesem separaten Fenster öffnen. Ich möchte, dass meine Fenster hier am Hauptfenster oben geöffnet sind. Also zeige ich dir schnell, wie das geht. Gerade jetzt. Ich gehe in unserem Fenster „Editor-Einstellungen bearbeiten“ unter Editor-Einstellungen bearbeiten. Genau hier haben wir die Option unter der Kategorie „Allgemeine Erscheinungen“ genau hier. Asset-Editor, offener Speicherort ist derzeit auf Standard festgelegt. Ich setze das als Hauptfenster ein, und dann schließe ich das. Also, als ich jetzt versucht habe, auf meinen Level-Blueprint zuzugreifen , öffne Level Blueprint, bam , es bringt ihn hier ganz oben, anstatt dass ich diesen Tab direkt entlang der top, wie, ich mag es. Jetzt ziehe ich das auch direkt neben meinem Level Map Tab selbst. Beachten Sie also schnell etwas hier, die orangefarbene Ikone des Berges , die das Niveau selbst darstellt, das Niveau von sich selbst, an dem Sie gerade arbeiten. Dies hat genau den gleichen Namen, aber es hat dieses blaue Bergsymbol, das die damit verknüpfte Blaupause ist . Es ist der Level Blueprint. Bevor wir so schnell darüber sprechen, wofür dieser Level Blueprint verwendet wird, wie können wir feststellen, dass dies sich von einem Class Blueprint unterscheidet? Nun, für den Anfang hier, ganz unten, heißt es offensichtlich: Hey, Level Blueprint. Eine andere Möglichkeit, wie wir feststellen können , dass dies sich von einem Klassen-Blueprint unterscheidet , besteht darin, dass es kein Komponenten-Panel gibt kein Komponenten-Panel gibt BP Beispielabholung hier hatte ein Komponenten-Panel. Unser Level Blueprint nicht. Beachten Sie auch, dass unser Level Blueprint kein Konstruktionsskript oder eine Ansichtsfenster-Registerkarte hat, sind weitere Blueprints hier oben zum ThirdPersonCharacter und unserem BP Beispiel-Pickup. Beide haben es auch. auch in unserem Level Blueprint Wenn wir auch in unserem Level Blueprint oben rechts hinschauen, wird keine übergeordnete Klasse aufgeführt. Und weil es nicht von einer übergeordneten Klasse erbt, gibt es keine geerbten Komponenten oder Variablen. in diesem Level-Blueprint Wofür wird es in diesem Level-Blueprint verwendet? Nun, der Level Blueprint ist der Ort, an dem Sie ein Skript für stufenspezifische Dinge wie Levelmusik platzieren würden . Vielleicht möchten Sie dieses Level nur , dass eine Auswahl an Musik nur in diesem Level spielt , nirgendwo sonst. Hier könntest du für die Wiedergabe dieser Level-Musik schreiben. Vielleicht haben Sie bestimmte einmalige Ereignisse dieses Level spezifisch sind, z. B. Spieler, die einen Korridor hinuntergehen. In diesem Level überlappen sie eine Triggerlautstärke und es führt dazu, dass Zombie ein Fenster durchbricht und den Spieler erschreckt. Das sind sehr stufenspezifische Dinge, die das Skript in einen Level-Blueprint enthalten sollte. Kontrastieren Sie dies mit unserem BP Beispiel Pickup. Nun, wenn Sie zurück zu unserem Level-Editor springen finden Sie hier BP-Beispiel-Pickup. Dies ist eine Blaupause der Schauspielerklasse. Sie können dies in diesem Level per Drag & Drop ziehen. Und wenn ich mein Spiel spielen würde, kann ich diese falschen Gesundheitspickups überfahren und sammeln. Jetzt spielt es keine Rolle, ob ich diese in mein Testkarten-Level ziehe und ablege, oder ich kann eine zweite Ebene erstellen , eine dritte Ebene der vierten Ebene usw. Diese Abholung wird sich genauso verhalten. Daher habe ich dieses Skript innerhalb unseres bp-Beispiel-Pickups erstellt , das überprüft, ob unser ThirdPersonCharacter die Kugel überlappt, einen Sound abspielt und als Schauspieler zerstört, dieses Skript ist spezifisch für diesen Schauspieler, und dieser Schauspieler kann in jedem Level platziert werden. Der Level Blueprint ist also der Ort, an dem Sie verschiedene Levels spezifisches Skript platzieren. Einer der Vorteile der Arbeit im Level Blueprint besteht darin, dass es wirklich einfach ist, eine Referenz zu erhalten oder ein Ereignis für einen Schauspieler hinzuzufügen , der bereits in Ihrem Level vorhanden ist. Dies ist etwas, das innerhalb eines anderen Klassenentwurfs wie einer Schauspielerklassen-Blaupause nicht so einfach zu machen ist . Und um das schnell zu demonstrieren, gehe ich hier zurück zu meinem Level-Editor. Und ich komme hier unter meine Registerkarte „Anzeigeninhalt“. Und ich füge eine Form hinzu. Wir fügen einfach einen Würfel hinzu. Also klicke ich mit der linken Maustaste und ziehe einen Würfel in mein Level, um ihn einfach ein wenig in die Luft zu heben. Beachten Sie, dass ich es ausgewählt habe. Dieser gelbe Umriss zeigt , dass ich nicht ausgewählt habe. Und wenn ich mir meinen Outliner anschaue, wird dies derzeit als Cube-Schauspieler bezeichnet , das ist der Name. Jetzt springe ich zurück in meinen Level Blueprint mit diesem ausgewählt. Und wenn das ausgewählt ist, muss ich nur die R-Taste gedrückt halten und mit der linken Maustaste klicken. Oder alternativ kann ich mit der rechten Maustaste klicken und direkt hier kann ich einen Verweis auf diesen Cube erstellen. Dies ist also die Rechtsklick-Methode. Wenn ich Alt gedrückt halte und mit der linken Maustaste klicke. Das ist das Gleiche, wenn man einen Verweis auf diesen Würfel bekommt. Beachten Sie nun, wenn ich so etwas in meinem BP-Beispiel-Pickup hier ausprobieren sollte, lassen Sie uns in dieses Ereignisdiagramm springen. Wenn ich die Alt-Taste gedrückt halte und mit der linken Maustaste klicke, hat es keine Ahnung, worauf Sie hier verweisen möchten. In der Tat, wenn ich mit der rechten Maustaste klicke, ist es so, als hätte ich keine Ahnung , worauf Sie jetzt verweisen möchten Das heißt nicht, dass wir keinen Verweis auf diesen bestimmten Würfel innerhalb unseres BP-Beispiel-Pickups erhalten können dass wir keinen Verweis auf diesen bestimmten Würfel innerhalb unseres BP-Beispiel-Pickups aber es gibt andere Methoden, um das zu tun, und wir können das später im Kurs untersuchen. Dies ist jedoch nur ein kurzes Beispiel für einen der Vorteile der Arbeit im Level Blueprint ist es in einem Level Blueprint wirklich einfach ist, einen Verweis auf alles zu erhalten , was bereits darin existiert deines Niveaus. Okay, lassen Sie uns hier in unserem Level-Blueprint ein schnelles Skript erstellen . Wir haben unseren Würfel bereits im Level ausgewählt. Also klicke ich mit der rechten Maustaste und ein bisschen leeren Platz hier. Und anstatt einen Verweis auf unsere Warteschlange zu erstellen , weil wir bereits eine haben, fügen wir ein Ereignis hinzu. Jetzt heißt es, dass Sie auf der Veranstaltung für statischen Mesh-Schauspieler sind, anstatt statischen Mesh-Schauspieler sind, anstatt derzeit y Static Mesh Schauspieler gut zu machen, um dies in unserem Level, in unserem Outliner, dem Boden, dem Standardboden, deutlich zu machen, das ist ein statischer Mesh-Akteurtyp. Dies war ein zweiter Static Mesh-Schauspieler , den wir zu unserem Level hinzugefügt haben. Daher erwägt es auch Static Mesh Schauspieler. Ich wollte das nur klarstellen. In Ordnung, wenn dieser Würfel ausgewählt ist, klicken Sie mit der rechten Maustaste auf das Ereignis für statische Mesh-Akteure zwei. Wir fügen ein Ereignis hinzu, wenn wir diesen Schauspieler treffen. Also mach weiter und füge das hinzu. Dies wird ein ganz einfaches Skript sein. Wir werden nicht überprüfen, wer es getroffen hat. Wir werden dieses Ding in der Luft schweben lassen. Also ziehe ich davon ab und tippe einfach Ton zu D ein. Du kannst jeden Sound einstecken, den du magst. Wie auch immer Dinge explodieren zu hören. Also werde ich nachsehen , ob es hier eine Explosion gibt. Dort ist es Explosion. Zögern Sie nicht, es einzulegen, wann immer Sie möchten. Und danach ziehe ich mich aus meinem Würfel, ziehe ich mich aus weil ich speziell mit diesem Würfel sprechen möchte. Und ich möchte „Destroy Actor“ sagen. Dies ist also ein Skript innerhalb dieses Level-Blueprints spezifisch ist. Wenn ich nur diesen Würfel in eine andere Ebene platzieren würde, würde er ihn nicht so zerstören, wie wir es sehen würden, weil dieses Skript nur innerhalb dieses Level-Blueprints existiert . Also lasst uns weitermachen und hier spielen. Und bumm, da wenig verzögerte Explosion. Aber ein Weg, wie es geht , der tatsächlich funktioniert. Lassen Sie uns hier ein anderes Beispiel durchgehen das zeigt, wofür der Level Blueprint verwendet werden könnte. Es kann für so etwas wie das Abspielen von Musik verwendet werden . also wieder in diesen Level Blueprint springen, lasst uns weitermachen und von diesem Event aufbauen , begann hier zu spielen. Ich ziehe einfach den Typ im Play Sound 2D ab. Ein 2D-Sound ist einer, der an keiner Stelle in einem 3D-Raum lokalisiert ist . Es ist einfach toll für Menümusik, Hintergrundmusik, so etwas in unserem Sound-Dropdown-Menü hier tippe ich das Wort Musik ein, und ich werde hier unsere Startermusik machen , die im Starter-Inhaltspaket. Fühlen Sie sich frei, es zu platzieren, wo immer Sie wollen. Und wenn ich weitermache und Wallah spiele, hast du Musik. Also noch einmal funktionieren diese Skripte in diesem Level und diesem Level nur, wenn ich eine zweite Ebene erstelle , muss ich entscheiden, welche Menümusik ich spielen möchte und welche andere aus Interaktionen möchte ich vielleicht auch skripten. Bis zu diesem Zeitpunkt in diesem Video habe ich Ihnen einen einstufigen Blueprint gezeigt, habe ich Ihnen einen einstufigen Blueprint gezeigt der mit einer einzigen Ebene verknüpft ist. Also könnte sich die Frage stellen Kann ich mehrere niedrige Blaupausen haben? Die Antwort darauf ist ja, im Wesentlichen können Sie sehen, wie gut ich diese Option vier Ebenen finden kann, wenn ich im Haupt-Level-Editor unter meine Windows-Option komme , wenn ich im Haupt-Level-Editor . Und wenn ich das öffne, öffne ich einen Level-Tab. Jetzt docke ich das gerne direkt neben meinem Outliner an. Und was ich hier tun kann, ist, dass ich dieser bestehenden Ebene ein brandneues Level hinzufügen könnte, im Wesentlichen eine Unterebene, eine Ebene, wenn Sie so wollen. Derzeit zeigt es, dass ich hier ein Level habe , das als mein persistentes Level bekannt ist. Und diese blaue Färbung zeigt, dass dies das Niveau ist , auf dem ich mit ihm arbeite. Kommen Sie unter diesen Level-Tab und die Levels sind genau hier heruntergefallen, ich kann ein neues Level erstellen. Also mache ich das jetzt. Es wird mich dazu auffordern, ein neues Level zu wählen und ihm einen Namen zu geben. Ich wähle hier ein leeres Level. Wir werden das schaffen. Und es wird sagen, wo willst du es speichern. Also gebe ich dem den Namen des Unterstrichs Level, Unterstrich 01. Ich gehe gerade so, wie es in diesen Ordner geht, aber ich werde anfangen, diese Dinge in nur ein bisschen in separaten Unterordnern zu unterbringen , lass mich das Kapital U dort loswerden. Unterebene eins, wir werden das aufsparen. Jetzt sehen Sie, dass dies hier ein Level zum Tab „Meine Level“ hinzugefügt hat . Stellen Sie sich eine Unterebene wie eine Ebene in Photoshop vor. Es ist nur eine zusätzliche Schicht von Sachen, Schauspielern, Objekten, was kannst du zu deinem Level hinzufügen? Entwicklerteams widmen beispielsweise häufig eine ganze Unterebene der Beleuchtung. Damit sich ein Beleuchtungsspezialist nur auf den Beleuchtungsaspekt des Niveaus konzentrieren kann . Und es ist wirklich einfach für diese Person, alleinigen Zugriff darauf zu haben , dass es untergeordnet ist und Änderungen daran vornimmt, ohne den Rest des Entwicklerteams zu unterbrechen , das auf dieser Ebene arbeitet. Wenn wir also eine massive Open-Welt schaffen, können wir hier mehrere Unterebenen haben. Vielleicht ist jemand dafür verantwortlich , diese riesige offene Welt zu formen. Vielleicht gibt es eine Unterebene für das gesamte Laub und andere Untermiete für Beleuchtung und andere Unterverhältnisse für Effekte, so etwas. Wie Sie hier sehen können, das aktuelle Level emittiert, in dem wir arbeiten, als wir dies als Unterebene erstellt unsere Unterebene Blau haben. Was heißt das, um es aktuell zu machen? Nun, das bedeutet, dass jeder Akteur, den wir jetzt zu diesem Level hinzufügen sollten , was es tatsächlich zu unserer Unterebene, unserer Unterebene hier unten, hinzufügt und einen brandneuen Vermögenswert für diese Ebene nach unten und unsere Inhalte geschaffen hat einen brandneuen Vermögenswert für Browser, im Gegensatz zu unserer persistenten Haupt-Level- oder LV-Testkarte. Versuchen wir es in nur einem Augenblick. Ich wollte jedoch darauf hinweisen, dass jedes Untermieter einen eigenen Level-Blueprint hat. Und darauf können Sie zugreifen, indem Sie direkt hier klicken , wo sich das kleine Blueprint-Icon befindet. Wenn ich das also öffne, können wir sehen, dass es den Namen meines Unterblevel und wieder das Level-Blueprint-Icon hat . Gehen wir nun zurück zu unserem Haupt-Level-Editor und ich füge ein Punktlicht hinzu. Also komme ich hier unter den Tab „Hinzufügen“. Wir werden unsere Lichter finden. Lasst uns ein Punktlicht hinzufügen. Okay, jetzt haben wir es zu unserem Untermieter hinzugefügt. Und wenn ich hier auf diese kleine Toggle-Sichtbarkeit klicke, kannst du sehen, dass es sie ein- und ausblendet. Und es ist in unserem Untermieter. Wenn ich unser hartnäckiges Level-Sachen verstecken würde, würden wir immer noch unser Licht sehen , weil das zu unserer Unterebene gehört. Um diesen Punkt nach Hause zu bringen, wähle ich hier unser Licht aus. Wenn ich in meinen Sub-Level-Blueprint gehen würde und mit der rechten Maustaste und etwas leeres Leerzeichen klicken sollte, kann ich einen Verweis auf mein Punktlicht erstellen. Ich habe diese Punktlichter hier in meinem Level ausgewählt , speziell mein Unterangebot. Wenn ich jedoch versuchen würde, einen Verweis darauf innerhalb meines Blueprints auf Hauptebene hinzuzufügen , klicken Sie mit der rechten Maustaste. Es gibt keinen Hinweis, den ich bis zu diesem Punktlicht erzeugen kann. Was auch immer Sie haben, welche Objekte, Effekte und so weiter Sie haben, die Sie in Ihrem gegebenen Untermieter vorhanden haben. Sie können sie direkt in Ihrem Level Blueprint referenzieren . Aber es muss egal sein, in welcher Ebene oder Unterebene Sie dieses Ding tatsächlich platziert haben. Wenn Sie neu bei Unreal sind, liegt die ganze Idee hinter Unterverhältnissen wahrscheinlich weit über das hinaus, worüber Sie gerade wissen müssen. Aber da wir uns mit dem Thema Level Blueprints beschäftigen, dachte ich, es sei unangemessen es zumindest zur Sprache zu bringen. Noch ein paar Dinge, die ich tun möchte bevor wir dieses Video schließen. Lasst uns weitermachen und unser Level und unser Untervermieter speichern. Beide haben die Sternchen auf ihnen. Sie können gespeichert werden, indem Sie mit der rechten Maustaste auf diese Assets und unseren Content-Browser klicken, oder in unserem Level-Tab direkt hier drüben kann ich auf jede Festplatte klicken, um sie zu speichern. Darüber hinaus möchte ich hier separate Ordner für einige unserer Assets erstellen . Andernfalls haben wir zu viele Stellen in unserem Skriptordner. Ich klicke mit der rechten Maustaste. Ich füge einen neuen Ordner hinzu. Ich füge 14 Level hinzu. Und ich klicke auch mit der rechten Maustaste auf unseren Skriptordner. Noch einmal füge ich einen weiteren neuen Ordner hinzu, und ich füge einen hinzu, denn wir nennen ihn Übersicht für einige unserer allerersten Blueprints, die wir erstellt haben. Und dann gehe ich zurück zu meinem Skriptordner. Und ich werde einige dieser Assets per Drag & Drop innerhalb des entsprechenden Ordners ziehen. Also klicke ich mit der linken Maustaste und ziehe und markiere es leider nicht mit der linken Maustaste und ziehe. Steuerung. Klicken Sie in meinem Konstruktionsskript auf meine Beispielabholung. Und ich ziehe diese per Drag & Drop in unseren Übersichtsordner. Und die anderen 3123, ich klicke nur. Ich ziehe es per Drag & Drop in unseren Levels-Ordner und verschiebe sie hierher. Fallende Säuren werden von einer oder mehreren referenziert , sagen ja. Und nicht zuletzt werden wir alle guten Spots einreichen und speichern, um alles zu speichern. Okay Leute, das wird alles dafür tun. Wir sehen uns im nächsten. 14. Node: Okay, willkommen alle zurück. Im Laufe der nächsten Videos hier werden wir Blueprints aufschlüsseln Knoten viel detaillierter skriptieren. Insbesondere werden wir über verschiedene Knotentypen sprechen. Wir werden über verschiedene Stiftypen sprechen. Das sind diese farbigen kreisförmigen Stifte im Vergleich zu diesen dreieckigen Stiften. Wir werden über den Unterschied zwischen Eingabe-Pins auf der linken Seite eines Knotens gegenüber Ausgangspins auf der rechten Seite eines Knotens sprechen. Wir werden über die Verkabelung von Knoten und darüber sprechen , wie Sie Knoten besser organisieren können. Nun, in diesem Video, ist es unser Ziel, einige der Blueprint-Skript-Knotentypen zu diskutieren , die in unreal zu finden sind. Jetzt werden wir später im Kurs ausführlicher über jeden dieser verschiedenen Knotentypen sprechen im Kurs ausführlicher über jeden dieser verschiedenen Knotentypen . Aber im Moment wollte ich Sie nur mit diesen verschiedenen Knotentypen vertraut machen , damit Sie sie besser identifizieren und ihre Verwendung verstehen können . Okay, wir werden unsere Diskussion über verschiedene Knotentypen hier mit den roten Farbknoten beginnen . Rot gefärbte Knoten in Unreal werden als Ereignisknoten bezeichnet. Und sie sind kritisch , weil sie benötigt werden, um dort ein bisschen Skript zu starten. Der Funke, der hier einen Impuls über diesen Draht sendet , um alle anderen Knoten an ihn anzuschließen, feuert ebenfalls ab. Jetzt beginnen ein Beispiel, Ereignisse oder Ereignisse mit dem Spiel, was sehr häufig ist. Das feuert immer dann aus, wenn wir unser Spiel starten. Sie haben auch Eingabeereignisse z. B. wenn Sie eines auf Ihrer Tastatur oder die untere Gesichtstaste auf einem Gamepad drücken . Im weiteren Verlauf haben wir diese blauen Farbknoten, die als Funktionen bezeichnet werden. Insbesondere werden sie als unreine Funktionen bezeichnet. In reinen Funktionen kann etwas geschehen, aber es ist frei, Dinge modifizieren zu lassen. Einige Beispiele für verschiedene Funktionsknoten sind das Spawnen eines Akteurs, das Laichen und den Emitter. Das ist das ältere VFX-System in unwirklich, wir haben auch das System hervorgebracht, das das neuere VFX-System in unreal ist , wir haben diese Funktion zum Erstellen von Widget-Funktion. Dies wird verwendet, um Arten von Menüs oder HUD anzuzeigen , die Sie erstellt haben. Wir haben auch Funktionen zum Abspielen eines Sounds oder einer Einstellung und der Position oder Einstellung der Schauspieler , das Material, so etwas. Ich wollte das auch hier unten hinzufügen. Sie haben einige Funktionen , bei denen diese Entwicklung möglicherweise nur gestreift ist. Und das liegt daran, dass diese Funktionsnotiz wirklich nur für Entwicklungszwecke gedacht ist . Wenn Sie also jemals so etwas sehen, deshalb haben wir diese grüneren Farbknoten. Und sie werden auch als Funktionen bezeichnet. Sie werden jedoch als reine Funktionen bezeichnet , die einfach verwendet werden, um einige Daten zu erhalten. Und ein wesentliches Unterscheidungsmerkmal zwischen diesen grünen Funktionen und diesen blauen Funktionsknoten. Beide haben dieses ausgefallene F darauf, dass diese blauen unreinen Funktionsknoten etwas haben, das als exakte Pins bekannt ist diese blauen unreinen Funktionsknoten etwas haben . Ausführungsstifte, exakte Stifte für kurz. Während das Grün weiß, dass die reinen Funktionen dies nicht tun. Diese exakten oder Ausführungsstifte werden einfach verwendet, um den Ausführungsfluss am Laufen zu halten. In. Ausführungskabel kann ein- und ausgehen. Diese haben das jedoch nicht. Was genau ist ihr Zweck? Ihr Zweck wird verwendet , um nur einige Daten zu erhalten. In diesem Fall wird dieser Knoten das bekommen, was unser Spielercharakter ist. In diesem Knoten erhalten wir, auf welchem Niveau sich dieser Akteur befindet. Und diese reine Funktion erhält einfach den Anzeigenamen des Objekts, das daran angeschlossen ist. In diesem Fall unser Level. Diese beiden Knoten hier sind keine reinen Funktionen. Als nächstes haben wir eine Kategorie von Knoten, die als Flow Control Nodes bekannt sind. Sie können sie an diesem gräulichen Farbbanner oben identifizieren . Die einsame Ausnahme davon ist die Switch-Familie von Knoten, von denen es viele gibt. Und sie hatten diese Art von goldenem Farbbanner an der Spitze. Sie gelten auch als Flusskontrollknoten. Was also ein Flow Control Nodes mit ihrer Verwendung machen, um zu bestimmen, wohin sie als nächstes in einem Skript gehen sollen. Stellen Sie sich also vor, wir hatten ein Event, beginnen es kurz vor diesem Zweig-Knoten zu spielen . Und es war genau hier eingesteckt . Abhängig von der Bedingung, wahr oder falsch, könnten wir entweder auf diese oder diese Weise feuern . Und ich kann alle Arten von verschiedenen Skripten an meinen wahren Zweig anhängen lassen oder meine falschen Zweig-Hello Control Nodes sind in Unreal - und Blueprints-Scripting sehr verbreitet. Und Sie werden wissen, dass Sie Ihr Blueprint-Skriptspiel wirklich Ihr Blueprint-Skriptspiel verbessern, wenn Sie anfangen, diese zu meistern, wie finden Sie diese Knoten? Wenn Sie einfach mit der rechten Maustaste in einen leeren Bereich klicken, können Sie die Flusssteuerung eingeben. Und es gibt eine ganze Kategorie, die tatsächlich als Flusskontrolle aufgeführt ist. Und Sie können sehen, wo es Tonnen von Switch-Knoten gibt , Flusskontrolle, lassen Sie mich die Switch-Kategorie reduzieren und es gibt eine Reihe Ihrer Flow Control Nodes. Und als nächstes haben wir Variablen. Jetzt habe ich links eine Reihe verschiedener Variablen erstellt , um mich auf dieses Video vorzubereiten. Variablen enthalten Daten eines bestimmten Typs. Dies sind Container, wenn Sie so wollen. Sie können ihre Werte ändern oder festlegen lassen, wie wir es gerne sagen, etwas anderes als das, was es ursprünglich war, solange es sich um den gleichen Typ handelt. Jetzt werden diese Container verwendet, um Dinge wie Gesundheitswerte aufzubewahren . Oder ist der Status, etwas zu besitzen oder einen Spawnstandort zu haben. Wenn es sich um einen Gesundheitswert handelte, könnte es sich um einen int - oder float-Typ handeln. Das ist eine Art Zahl. Wenn es sich um den Status des Besitzes eines Schlüssels handelte, könnte es sich um einen booleschen Typ handeln , der wahr oder falsch ist. Und wenn es der Ort eines Feindes wäre, wäre das ein Vektortyp , der ein X-, Y- und Z-Standort wäre. Schließlich wollte ich einen ganz besonderen und einzigartigen Knoten erwähnen, der einen ganz besonderen und einzigartigen Knoten sich in Blueprint-Scripting befindet , also ein Timeline-Knoten. Zeitleistenknoten werden verwendet , um den Wert einer Variablen oder Variablen im Laufe der Zeit zu ändern . Und sie werden für Dinge wie das Ändern eines Float-Wertes verwendet um einen Spieltimer im Laufe der Zeit zu ändern, wie zum Beispiel ein Sportspiel gegründet, weißt du, eine Uhr, die herunterzählt. Oder vielleicht ändern Sie eine Vektorvariable im Laufe der Zeit, um ein Objekt zu verschieben. Im Falle einer sich bewegenden Plattform ist dies ein so cooler und einzigartiger Knoten, dass ich später im Kurs ein ganzes Video dafür habe . Zusammenfassend haben wir also rote Knoten. Diese werden als Ereignisknoten bezeichnet , die benötigt werden, um beliebige Skripte zu starten . Sind blau. Knoten werden als unreine Funktionen bezeichnet. Sie lassen einfach etwas passieren. Sie können einen Schauspieler spawnen, sie können einen Partikeleffekt spawnen, einen Klang spielen. Sie können einen Menübildschirm oder ein HUD anzeigen. Was unreine Funktionen von unseren reinen Funktionen unterscheidet , ist , dass Ausführungspins - und aussteigen. Apropos reine Funktionen, hier sind einige Beispiele für unsere reinen Funktionen. Diese sind grün gefärbt. Sie haben keine Ausführungspins und werden einfach verwendet, um einige Daten zu erhalten. Flusssteuerknoten sind mit Ausnahme der Switch-Knoten grau gefärbt . Und diese sind sehr nützlich, um den Ausführungsfluss in Ihrem Diagramm zu steuern . Als Nächstes haben wir Variablen. Es gibt viele verschiedene Variablentypen. Variablen enthalten eine Information. Der Inhalt einer Variablen kann irgendwo entlang Ihres Skripts festgelegt gegebenenfalls geändert werden und gegebenenfalls geändert werden. Und zu guter Letzt haben wir einen Timeline-Knoten. Dies ist ein ganz spezieller Knoten in unreal, der den Wert einer Variablen im Laufe der Zeit ändern kann . Okay Leute, das wird alles dafür tun. Wir sehen uns im nächsten. 15. Ausführung und Datenpins: Willkommen zurück alle. In diesem Video ist es unser Ziel, mehr über die Unterschiede zwischen Ausführung und Datenpfannen in Unreal Engine-Blueprints zu erfahren und zu verstehen zwischen Ausführung und Datenpfannen . Bis zu diesem Zeitpunkt des Kurses haben Sie gesehen, wie ich mit einigen dieser verschiedenen Pin-Typen auf den verschiedenen Knoten gearbeitet habe, aber wir haben keine offizielle Diskussion über PIN-Typen geführt. Darum geht es in diesem Video, indem es einige unserer unreinen Funktionen verwendet. Hier ist ein kurzes Beispiel. Sieh dir das an. Ich habe einige dieser dreieckigen Stifte an einem Knoten, und ich habe auch diese farbcodierten kreisförmigen Stifte an einer Nase. Diese Dinge werden als Pins bezeichnet. Was sind die Unterschiede zwischen ihnen? Nun, diese dreieckigen Stifte werden als Ausführungsstifte bezeichnet. Diese Pins sind der Ort, an dem Signale in und aus einem bestimmten Wissen gesendet werden . Sie weisen den Knoten an, auszuführen, um etwas zu tun. In diesem Fall würde dieser Knoten einen visuellen Effekt hervorrufen. Jetzt haben alle Ereignisknoten mindestens einen Ausführungspin. Und es ist ziemlich wichtig , dass Ereignisknoten dies tun, weil sie diejenigen sind , die das gesamte Skript starten. Also fingen wir an zu spielen. Es wird einen Ausführungsfluss aus diesem Stift und nach unten starten . Jetzt ist es wichtig zu beachten, dass nicht alle Knoten Ausführungspins haben. Wenn Sie sich an das letzte Video erinnern, diese reinen Funktionsknoten keine Ausführungspins. Diese sind einfach dazu gedacht, einige Daten auszugeben. Das führt gut zur Diskussion darüber was ein Datenpin ist. Nun, zurück zu unseren unreinen Funktionen hier, denn dieser Knoten hat viele davon. Daten-Pins sind Pins, bei denen Daten in einen bestimmten Knoten oder aus einem bestimmten Knoten fließen können . Beispiele für Daten, die an einen Knoten angeschlossen werden können , könnten Zahlen, Koordinaten, Objekte und so etwas sein. Beachten Sie nun, dass diese Daten-Pins, diese kreisförmigen Datenstifte, in verschiedenen Farben erhältlich sind. Und das soll helfen, die verschiedenen Datentypen zu identifizieren. Wenn ich mit der Maus über einen dieser verschiedenen farbcodierten Pins im erscheinenden Tooltip fahren würde. Es listet die verschiedenen Datentypen , die in ihn eingegeben werden können. Der Standort sucht also nach einem Vektordatentyp, ebenso wie der Maßstab. Dieses automatische Zerstören sucht jedoch nach einem booleschen Datentyp. Jetzt haben Sie sich vielleicht an das letzte Video erinnert, das wir hier kurz über Variablen gesprochen haben, und dass Variablen in verschiedenen Datentypen enthalten sein können. Variablen können an diese verschiedenen Daten-Pins angeschlossen werden , um den Knoten zu informieren, was zu tun ist. Wenn wir beispielsweise einen Emitter an einer bestimmten Stelle spawnen wollten , könnte ich eine Vektorvariable an diesen Datenpin anschließen , um diesen Emitter anzuweisen, wo er spawnt werden soll. Wie Sie sehen können, wenn ich dies über den Pin ziehe und ablege , heißt es: Ja, das ist eine Vektorvariable. Es ist in Ordnung, das an unseren Standort hier anzuschließen. Nun, wenn ich das lösche und versucht habe, dasselbe an diesen Auto Destroy Pin anzuschließen . Es wird sagen, Nein, kann es nicht tun, weil das kein kompatibler Datentyp ist, es nicht kann. Diese boolesche Variable könnte jedoch an diese automatisch zerstörte angeschlossen werden , da dies ein übereinstimmender Datentyp ist. Jetzt ist es wichtig zu verstehen, dass Knoten sowohl Daten aufnehmen als auch ausgeben können . Dieser Spawn-Emitter vor Ort als unser Spawn-System vor Ort kann alle Arten von Daten aufnehmen und es gibt auch Daten zurück. Aber schauen wir uns ein anderes Beispiel für einen Knoten an, der viele Daten ausgibt . Ich werde zu meinem BP-Beispiel springen und hier schnell abholen. Und wir können auf unserer eigenen Komponente beginnen überlappende Ereignisnotiz hier sehen , dass es viele Daten ausgeben kann, einschließlich des anderen Akteurs, der die andere Sache ist , die diesen Sphere Collider überlappt hat. Jetzt möchte ich helfen, all diese Konzepte zu festigen Wir haben Ausführungspins im Vergleich zu Daten-Pins. Wir haben Eingabe-Pins auf der linken Seite eines Knotens im Vergleich zu Ausgangspins. Also habe ich hier oben ein temporäres Skript in meinem BP-Beispiel-Pickup hinzugefügt . Das ist dieser Griff genau hier. Ich werde dies am Ende dieses Videos löschen, nur um dieses Konzept zu demonstrieren. Ich habe auch in meinem Level eine Instanz, eine Kopie meines BP-Beispiel-Pickups. Derzeit ist es in meinem Level als BP Beispiel Pickup bekannt . Der Grund, warum ich das anspreche, ist, dass ich innerhalb dieser Blaupause genau hier oben diese, mein Kredit-BP-Beispiel, die Pickup-Instanz als Debug-Option ausgewählt habe mein Kredit-BP-Beispiel, . Die Sache, die ich sehen möchte, das Skript dafür tatsächlich bei der Arbeit abfeuert. Jetzt dieses temporäre Skript, das ich hier addiert habe, wird jedes einzelne Frame auslösen. Das ist es, was Event Tick macht. Es wird unseren Print-String-Funktionsknoten hier anweisen unseren Print-String-Funktionsknoten hier , etwas in rosa Texten auf unseren Bildschirm zu drucken. Und es wird den Namen unseres Spielercharakters ausdrucken . Das machen diese Knoten auch hier. Also diese Druckzeichenfolge, wenn ich diesen Draht hier aushaken würde, würde er einfach den Text Hello ausdrucken. Da dies jedoch angeschlossen ist, sage ich dieser Druckzeichenfolgenfunktion was auf dem Bildschirm ausgedruckt werden soll. Wir stellen IT-Daten zur Verfügung, was ausgedruckt werden soll. Also los geht's. Ich klicke hier schnell auf „ Play“. Und wenn ich das ein bisschen nach unten schiebe, gehen wir los. Sie können sehen, wie dieses Ereignis-Tick kontinuierlich abfeuert, ein kontinuierlicher Stream, unsere Druckzeichenfolge anweist, diesen Anzeigenamen kontinuierlich auf unseren Bildschirm zu drucken , hier wird er entlang der linken Hand gespammt Seite in rosa Texten. Und da hast du es. Wir haben einen Ausführungsknoten in diesen Eingabeknoten für die Ausführung abfeuert , der darauf hinweist, auf dem Bildschirm auszudrucken. Wir haben einige Daten, die in diesen Knoten fließen , die ihm sagen, was zu drucken ist. Das wird alles für diese Videoleute machen, wir haben Ausführungsstifte, diese dreieckigen Stifte. Wir haben Daten-Pins, diese farbcodierten kreisförmigen Pins. Wir haben Eingabe-Pins auf der linken Seite eines Knotens. Wir haben Ausgabe-Pins auf der rechten Seite des Knotens. Das wird alles für dieses Video tun, Leute, wir sehen uns im nächsten. 16. Node: Willkommen zurück alle. In diesem Video ist es unser Ziel, die Methoden der Verdrahtung von Notizen unwirklich zu erlernen . Nun, oberflächlich betrachtet, scheint es nicht viel zu geben, aber es gibt einige subtile Tipps und Tricks hier, die es wert sind, etwas zu lernen, weil sie Ihnen eine Bootsladung ersparen können der Zeit über viele Tage der Entwicklung. Sprechen wir zunächst über verschiedene Arten von Drähten. Weiße Drähte. Dies sind Ausführungsdrähte und sie fließen zwischen Ausführungsstiften. Sie halten den Ausführungsfluss von einem Knoten zum anderen weiter. Und ein lustiger Tipp hier, wenn Sie mit der Maus über eines dieser Drähte fahren, können Sie es irgendwie so hervorheben , um ihn hervorzuheben. Sie können sehen, wie ich das tue, löscht irgendwie alle anderen Drähte unten aus. Ziemlich cool, lässt es auffallen. Als Nächstes haben wir Datendrähte. Diese sind nach ihrem Datentyp farbcodiert, was wir später im Kurs wieder viel mehr über Datentypen lernen werden . Sie geben Daten von einem Knoten zum anderen weiter. Dieser rosafarbene Draht repräsentiert also einen String-Datentyp. Und wieder heißt es, dass wir im Tooltip, wenn ich darüber fahre, wenn ich zu unserem bp ThirdPersonCharacter springe, wenn ich zu unserem bp ThirdPersonCharacter springe, ein paar andere farbcodierte Drähte finden können. Diese grünen Drähte stellen einen Float-Datentyp dar , bei dem es sich um eine Zahl mit einem Dezimalpunkt handelt. Hier unten gibt es auch einen gelben Draht. Dies ist ein Vektor-Datentyp. Datendrähte sind also wieder einmal nach ihrem Datentyp farbcodiert. Lassen Sie uns als Nächstes über verschiedene Möglichkeiten sprechen , Knoten miteinander zu verbinden. Die wahrscheinlich gebräuchlichste Methode besteht darin einfach mit der linken Maustaste zu klicken und von einem Pin-Typ zu einem anderen ähnlichen Stiftyp zu ziehen. Sie müssen jedoch nicht so vorwärts arbeiten, auf diese Weise von links nach rechts, Sie könnten rückwärts arbeiten. Wenn ich diese Pin trennen würde, könnte ich so etwas machen. Das ist auch eine vollkommen gültige Art, dies zu tun. Sie können einige Knoten auch per Drag & Drop auf andere Knoten ziehen. Schau unten hier unten an meiner Stelle Sound 2D-Knoten, ich habe meinen Tonabnehmer vorübergehend von meinem Soundeingang hier getrennt . Ich könnte so etwas machen, wo ich mit der linken Maustaste klicke und es in das Transplantat ziehe, ich bekomme es und dann verkable ich es so. ist jedoch ein zweistufiger Prozess. Lasst uns unser Leben einfacher machen. Da dies den gleichen Datentyp hat, nach dem gesucht wird, kann ich ihn einfach per Drag & Drop direkt oben drauf und es wird automatisch verkabelt. Das ist ein wirklich praktischer Trick. Dies funktioniert jetzt nicht nur für die Eingabe von Daten, sondern auch für die Ausgabe von Daten. Vor diesem Video habe ich hier eine Variable namens Delta-Sekunden des Float-Datentyps erstellt , da dieses Ereignis-Tick einige Float-Daten ausgeben kann. Wenn ich mit der linken Maustaste klicke und das oben drauf ziehe , kann es automatisch. Warum sind diese beiden Knoten auch zusammen? Jetzt haben wir nicht darüber gesprochen, einige Daten zu erhalten , anstatt die Daten festzulegen. werden wir in unserem Variablenbereich mehr sprechen. Eine andere Möglichkeit, wo Knoten zusammen sind , besteht darin , etwas Kontextsensitives zu bekommen. Was meine ich damit? Nun, lass mich es dir zeigen. Ich wähle unser horizontales Würfelnetz hier oben in unserem Komponenten-Panel aus. Und wenn das ausgewählt ist, ich hier mit der rechten Maustaste in unsere Grafik. Und ich suche nach Knoten namens Sets Material. So kann ich hier Material für meinen horizontalen Würfel einstellen. Wenn ich diesen Funktionsknoten ausgewählt habe, wird er unsere horizontale Cube-Komponente hier automatisch an diesen Funktionsknoten angeschlossen. Dies funktioniert nicht nur in einem Entwurf der Schauspielerklasse oder anderen Blaupausen . Aber hier in unserem Level Blueprint kann ich das auch demonstrieren. Also lass mich hier zurück zu meiner Testkarte springen. Ich habe meinen Würfel ausgewählt, springe zurück in meinen Level Blueprint. Das ist eine Erinnerung daran, wie das geht. Bei ausgewähltem Knoten oder mit ausgewählter Schauspielerin. Ich sollte sagen, dass der Würfel ausgewählt wurde. Ich kann mit der rechten Maustaste klicken und etwas Leerzeichen. Ich kann eine Funktion für diesen Static Mesh-Akteur aufrufen. Lassen Sie mich in den Rendering-Bereich gehen und ich kann den Schauspieler in Spielen verstecken. Also verbinde ich automatisch einen Verweis auf meinen Würfel, auf diesen Set-Schauspieler, der in der Spielfunktion versteckt ist. Nun, wie ich im letzten Video kurz gezeigt habe, wird Unreal Sie darüber informieren, wenn Sie versuchen, einen Pin an einen anderen anzuschließen und sie nicht kompatibel sind. Also wenn ich meinen Cue-Boy hier kaputt machen würde, und ich habe versucht, ihn hier anzuschließen. Es wird sagen: OK, ich kann es nicht tun. Ereignis begann mit dem Ausführungspin zu spielen und versuchte, es in eine int-Zeichenfolge, String-Datentyp, Kann es nicht zu verbinden . Lange Geschichte, kurz, Unreal wird dich wissen lassen ob du diese Pins verbinden kannst oder nicht. Sprechen wir nun über einige Möglichkeiten, wie Drähte geschnitten werden können. Die einfachste Methode besteht darin, die Alt-Taste gedrückt zu halten und mit der linken Maustaste auf das Kabel selbst zu klicken. Wenn Sie dies jedoch nicht am Kabel selbst tun müssen, können Sie feststellen, dass der Draht verbunden ist , und halten Sie einfach Alt gedrückt und klicken Sie mit der linken Maustaste auf den Stift selbst. Es spielt keine Rolle, ob es sich um diese oder die andere Seite des Verbindungskabels handelt. Eine andere Möglichkeit, dies zu tun, besteht darin, einfach mit der rechten Maustaste auf den Knoten zu klicken. Also klicken wir hier mit der rechten Maustaste auf unseren Print-String-Knoten. Und bin ich mit der rechten Maustaste Menü? Ich habe die Möglichkeit, Knoten-Links zu unterbrechen. Das wird es tun. Eine andere Möglichkeit, dies zu tun, besteht darin, mit rechten Maustaste auf den Pin selbst zu klicken. Lassen Sie uns dieses Beispiel hier verwenden. Ich habe diese Cube-Referenz in meinem Level Blueprint. Und ich habe das an zwei Funktionen angeschlossen. Also kann ich mit der rechten Maustaste auf diesen Pin selbst klicken und ich könnte alle Pin-Links brechen. Beachten Sie also, dass ich es hier an zwei verschiedene Funktionsknoten angeschlossen habe. Wenn ich beide Drähte gleichzeitig mitbringen wollte, klicken Sie einfach mit der rechten Maustaste auf diesen Pin, brechen Sie alle Pin-Links und Boom, alle getrennt. Schließlich ist das Verschieben von Drähten von einem Pin zum anderen einer meiner Lieblingstricks. Anstatt so etwas zu tun, wo wir unsere Cube-Referenz haben und wir wollen sie damit verbinden. Oh, jetzt wollen wir es damit verbinden. Also müssen wir die Nadel brechen und so gehen. Ja, das ist vollkommen in Ordnung. kannst du machen. Wenn Sie jedoch die Strg-Taste gedrückt halten und mit der linken Maustaste auf den Pin selbst klicken, haben Sie dieses kleine Handsymbol. Sie können das per Drag & Drop von einem Datenpin auf einen anderen ziehen, einfach so, lieben Sie diesen Trick. Das ist eine riesige Zeitersparnis, richtig, das sind verschiedene Methoden, um Knoten miteinander zu verdrahten. Das wird alles dafür tun. Wir sehen uns im nächsten. 17. Node Organisation: Willkommen zurück alle. In diesem Video ist es unser Ziel, einige Tipps und Tricks zur Notizorganisation zu lernen einige Tipps und Tricks zur Notizorganisation , die uns helfen, effizienter zu sein, sowie sauberere Skripte zu schreiben, die einfacher gelesen werden können. Bis zu diesem Zeitpunkt des Kurses haben wir einige ziemlich einfache Skripte geschrieben. Sie enthalten nicht viele Knoten oder Drähte. Und daher ist die Organisation unserer Knoten keine große Sache, aber wenn Sie weiter fortgeschritten werden, werden Ihre Skripte tendenziell mehr Knoten enthalten , mehr Drähte enthalten und damit diese organisatorischen Optionen werden o, so wichtig für die Lesbarkeit willen. In einer Blaupause deiner Wahl werde ich also in meinem BP Beispielabholung sein. Lassen Sie uns einige davon untersuchen und jetzt habe ich absichtlich einen Teil der Node-Organisation vermasselt , die ich hier vorzeitig gemacht hatte. Wenn Sie mit der linken Maustaste klicken und ziehen, können Sie eine Auswahl von Knoten markieren. Alternativ können Sie die Steuerung gedrückt halten und mit der linken Maustaste klicken, um mehrere Knoten auszuwählen. Sobald Sie mit der rechten Maustaste auf eine Ihrer Auswahlen klicken, können Sie ein Kontextmenü in einer der Kategorien Organisation aufrufen ein Kontextmenü in einer der . Wir werden speziell über diese Ausrichtungsoptionen sprechen . Und im kleinen Fly-Out-Menü sehen Sie, dass wir unsere Knoten oben auf dem Knoten ausrichten können. Der Boden, die Mitte ist weniger die Zentren, die Rechte und so weiter. Alle diese haben Hotkeys, die mit ihnen verbunden sind. Wie Sie hier sehen können. Wenn du genau hinsiehst, ist es Shift plus W, a, S und D. Das ist die Bewegung deines Charakters auf der Tastatur, die leicht oben, unten, links und rechts entspricht . Ziemlich praktisch. Also werde ich mich hier oben ausrichten , aber es gibt ein bisschen Nuancen beim Ausrichten, von dem du Bescheid wissen solltest. Also lass mich einfach weitermachen und das machen. Sie können sehen, wie alle diese Knoten oben ausgerichtet sind. Aber dann stellt sich die Frage , welcher dieser Knoten entscheidet , zwei auszurichten? Lass uns das nochmal machen. Bewegen Sie das ein bisschen aus dem Kilter. Sie werden die Steuerungsauswahl dieser Knoten vornehmen. Also habe ich 1234. Beachten Sie also, dass Destroy Actor hier der letzte Knoten war , den ich ausgewählt habe. Wenn ich jetzt mit der rechten Maustaste klicke, richte ich mich wieder oben aus. Beachten Sie, dass es alles nach dem letzten Knoten ausrichtet , den Sie ausgewählt haben. Jetzt haben wir uns gerade oben ausgerichtet, aber Sie können sich vorstellen, was das Ausrichten von rechts, links oder unten tut. Als nächstes möchte ich über das Richten von Verbindungen sprechen. Wenn Ihre Skripte immer komplexer werden, können Sie oft Knoten in einem Bereich zusammenrollen lassen und können Sie oft Knoten in einem Bereich zusammenrollen lassen vielleicht so zurückrollen. Nein, das ist irgendwie so. Verkabelung aller möglichen seltsamen Wege. Ausrichten von Verbindungen ist eine Möglichkeit, sie sehr sauber aussehen zu lassen. Wenn ich diese beiden Knoten hervorhebe, richtig? So und klicken Sie mit der rechten Maustaste, können Sie sehen, dass der Hotkey zum Richten Verbindungen der Q-Schlüssel ist. Und wenn ich das mache, kannst du sehen, wie es die Kabelverbindung aufrichtet. Jetzt gibt es auch hier ein bisschen Nuance. Die erste Auswahl , die wir getroffen haben, und lassen Sie mich diese einfach aus dem Gleichgewicht bringen. Noch einmal. Die erste Auswahl , die wir getroffen haben, ist der Knoten, den Sie begradigen möchten. Die zweite Auswahl , die wir treffen. In diesem Fall wird es unser Print-String-Knoten sein. Das wird der Pin des Knotens sein , den wir zwei begradigen wollen. Beachten Sie dies also mit der rechten Maustaste. Richten Sie Q aus. Wir haben uns auf diesen Stift gerichtet, diesen Knoten, den wir auf diesen Stift gerichtet haben. Als nächstes bin ich zu meinem Level Blueprint übergegangen , wo ich absichtlich die Organisation einiger meiner variablen Knoten durcheinander gebracht habe die Organisation einiger meiner variablen Knoten durcheinander damit ich demonstrieren kann, dass ich vertikal verteilt. Das erste, was ich tun werde, ist mit der linken Maustaste zu klicken und alle diese variablen Knoten hervorzuheben. Und ich möchte sie zuerst auf der linken Seite ausrichten. Wenn ich die Umschalttaste gedrückt halte, drücke ich eine Taste, da Umschalt plus a der Hotkey zum Ausrichten auf der linken Seite ist. Wie Sie vertikal sehen können, sehen sie nicht sehr gleichmäßig auseinander aus. Dafür gibt es also auch eine Option . Ich klicke hier mit der rechten Maustaste auf eine meiner verbleibenden hervorgehobenen Notizen. Sie sind alles hervorgehobene Achsen und wir können vertikal verteilen. Und was das tun wird, ist, dass sie gleichmäßig zwischen dem obersten Knoten, den ich ausgewählt habe , und dem untersten Knoten , den ich ausgewählt habe, auseinander setzen. Also sieh es dir an. Es hat sie gleichmäßig zwischen meinem am häufigsten ausgewählten Knoten und meinem am häufigsten ausgewählten Knoten verteilt. Notizen horizontal zu organisieren ist nicht das, was anders ist. Also hier haben wir einige Flow Control Nodes , die etwas abseits sind. Ich klicke mit der linken Maustaste und ziehe, um diese vier hervorzuheben. Das erste, was ich tun werde, ist die Umschalttaste gedrückt zu halten und die W-Taste zu drücken , um sie hier oben auszurichten. Und wenn all dies hervorgehoben ist, kann ich mit der rechten Maustaste auf eine dieser vier hervorgehobenen klicken. Wir können zur Ausrichtung gehen. Wir können sie waagerecht auf gleichmäßig verteilen und ausräumen. Jetzt, da diese Knoten ausgewählt sind, gibt es verschiedene Möglichkeiten sie zu verschieben. Du siehst, dass ich alle vier ausgewählt habe. Ich kann einen von ihnen auswählen und alle vier Runden so bewegen. Ich kann jedoch auch die Pfeiltasten benutzen. Also drücke ich jetzt die Pfeiltasten nach unten, links, rechts und oben, das bewegt auch die Knoten. Etwas anderes, das Sie vielleicht bemerken, dass ich auf ein paar Knoten habe. Hier ist ein Kommentar, ein Kommentar zu einigen der Hotkeys, die mit dem Einbringen einiger dieser Knoten in Ihr Diagramm verbunden sind. Wie bekommt man einen Knotenkommentar? Nun, es geht nur darum, mit der rechten Maustaste auf die Notiz selbst zu klicken. Und dort kannst du einen Knotenkommentar hinterlassen. Ich möchte das manchmal mit Hotkeys machen, besonders wenn ich solche Videos erstelle. Jedes Mal, wenn Sie sich selbst daran erinnern möchten , was ein Knoten tut, oder vielleicht einen Sonderfall, mit dem sich der Knoten befasst. Es ist sehr praktisch, mit der rechten Maustaste darauf zu klicken und einen Knotenkometen hinzuzufügen . Apropos Kommentare, Sie sehen vielleicht , wenn Sie so wollen, dass ich dieses Kommentarfeld um diese gesamte Auswahl von Knoten habe. Nun, wie habe ich das bekommen? Nun, das ist einfach eine Frage von, lassen Sie mich diese Knoten einfach alle hier raus bewegen. lösche ich aus. Sie können mit der linken Maustaste klicken und ziehen, um diese Marquee-Auswahl um alle Ihre Knoten herum zu erstellen. sie alle ausgewählt sind, können Sie auf die C-Taste tippen , um ein gemeinsames Feld zu erstellen. Sobald Sie dies tun, können Sie im Detailbedienfeld sehen, können Sie Ihrem Kommentarfeld einen Namen geben. Sie können es auch hier oben benennen. Lassen Sie mich diese Knoten einfach nach unten bewegen weil sie sich ein wenig überlappen. Sie können auch direkt dort auf diesen Namen doppelklicken , um ihn umzubenennen und auch Zugriff auf Ihren Kommentar zu erhalten. Details hier, ich nenne diese Flusskontrolle. Sie geben ihm auch eine Farbe in die Box genau hier. Etwas Grünes. Vielleicht. Sie können auch die Schriftgröße ändern. Dies ist wirklich praktisch, wenn Sie so ausgezoomt werden. Vielleicht willst du so etwas. Eine weitere wirklich nützliche Option mit dieser Kommentarknotenblase ist, dass Sie diese Bewegung im Modus haben. Wenn ich mein Kommentarfeld auswählen sollte, kann ich derzeit alle Knoten verschieben, da mein Bewegungsmodus auf Gruppenbewegung eingestellt ist. Ich kann dies jedoch auch nur in das Kommentarfeld selbst ändern . Und ich kann nur das Kommentarfeld persönlich verschieben, ich mag Gruppenbewegung. Eine andere Möglichkeit, ein Kommentarfeld zu erstellen darin, einige Knoten wie folgt hervorzuheben. Und wie Sie sich vielleicht vorstellen können, bietet Ihnen das Kontextmenü auch die Möglichkeit, ein gemeinsames Feld zu erstellen. Ich mache das weiter und nenne diese meine Loop-Knoten. Dies zeigt auch , dass Sie neben einem anderen Kommentarfeld ein Kommentarfeld haben können . Also könnte ich mich so um diese Knoten bewegen und alle diese Knoten bewegen. Lassen Sie mich dies wieder in GRU-Bewegungen ändern, einschließlich der darin enthaltenen Kommentarauswahl. Und schließlich kann kein Node-Organisationsvideo vollständig sein, ohne über Umleitungsknoten und ihre Bedeutung innerhalb von Blueprints zu sprechen . Um den Umleitungsknoten zu demonstrieren, ich mich in meiner Blueprint-Wand, Scotts, die Sie bis zum heutigen Datum sowieso finden können, im Ordner Starter Content Blueprints. Sie können dies erneut demonstrieren in jede Blaupause, aber hier drinnen sieht man das oft in Skripten, in denen er einige Drähte über andere Drähte kreuzt, Drähte, die durch Knoten laufen, so etwas. Gibt es eine Möglichkeit, dass Sie das Kabel umleiten können? Ja, das kannst du. Und das ist durch etwas, das als Umleitungsknoten bezeichnet wird. Was bedeutet der Umleitungsknoten? Es ist im Wesentlichen ein definierter Punkt, ein Band, wenn Sie wollen, in einem Draht erstellen. Um diese anzuziehen, können Sie einfach auf einen beliebigen Draht doppelklicken. Doppelklicken Sie hier hier ist ein Umleitungsknoten. Es setzt einfach den Datenfluss fort. In diesem Fall können Sie auch Umleitungsknoten für die Ausführungsdrähte hinzufügen . Es ist großartig, so etwas zu tun, bei dem Sie dies irgendwie biegen, um klarer zu machen, wohin das geht, anstatt Dinge zu überqueren. Sie können auch einen Umleitungsknoten einbringen , indem Sie etwas herausziehen und erneute Routen eingeben Sie können einen Umleitungsknoten wie diesen hinzufügen. Und Sie können sehen, dass dieser Punkt genau hier leuchtet, diese Komponente ist, wenn ja, an ein Vielfaches davon angeschlossen ist. Solange es sich in eine Umleitungsnotiz einfügt, könnte ich auch so etwas tun. Dies ist eine völlig gültige Möglichkeit, dies zu tun. In diesem Fall spielt es keine Rolle, ob ich das Punktlicht von hier oder von dem Punkt ziehe , an dem es umgeleitet wird. Beides sind gültige Möglichkeiten, dies zu tun. So liebte der Umleitungsknoten super praktisch so sehr. Und der einfachste Weg, sie zu bekommen, besteht darin, einfach auf ein Kabel zu doppelklicken. Leute, die es für dieses Video zur Knotenorganisation tun werden , beherrschen diese Tipps und Tricks. Du wirst dir später danken. 18. Level BP - Design: Willkommen zurück alle. Im Laufe der nächsten Videos hier werden wir über eines der wichtigsten und wesentlichsten Konzepte eines Blueprint-Skripting sprechen wichtigsten und wesentlichsten Konzepte . Und so erstellt man eine Objektreferenz. Nun, das ist ein so wichtiges Konzept und wir kommen darauf vor, bevor wir überhaupt über Ereignisse, Funktionen oder Variablen sprechen. Weil sich so viele Blueprints Scripting darauf konzentriert Objekte in irgendeiner Weise zu manipulieren. Wenn du zum Beispiel über einen neuen Waffenabnehmer laufen würdest , kannst du diese Waffe nicht sammeln, ohne einen Hinweis auf dieses Objekt zu haben. Vielleicht schießt du einen Panzer mit einem Raketenwerfer. Nun, du kannst den Panzer nicht zerstören , ohne einen Hinweis auf das Objekt dieses Panzers zu haben. Oder vielleicht möchten Sie sozusagen einen erntbaren Gegenstand sammeln, um ein Meisterschwert herzustellen. Nun, Sie können diesen Gegenstand nicht sammeln, ohne einen Verweis auf dieses Objekt zu haben. Jetzt werden wir darüber sprechen, wie man diese Objektreferenzen nicht nur in Level Blueprints erstellt , sondern auch in Klassen-Blueprints und nicht nur während der Entwurfszeit, bevor das Spiel läuft auch während der Laufzeit, also während das Spiel läuft. Okay, also erstellen Sie Referenzen neben unserem Level Blueprint. Zunächst einmal möchte ich nur darauf hinweisen , dass ich in meinem Level-Tab hier in meinem Persistent Level arbeite. Und ich habe drei Objekte , die zu diesem dauerhaften Level hinzugefügt wurden, einen Würfel, meinen BP-Pickup und meinen Konstruktionsskript-Blueprint. Und nur um den Punkt nach Hause zu hämmern, dass diese zu meinem beharrten Level hinzugefügt wurden , meine Level-Test-Map, wenn du willst. Ich klicke einfach auf diesen Augapfel, um diesen ein- und auszuschalten, damit du sehen kannst, dass sie tatsächlich in dieser Level-Testkarte existieren, die auch als mein Persistent Level bekannt ist. Ich gehe hier zurück in meinen Outliner und wähle alle drei Objekte aus. Jetzt können Sie alle drei hier in Ihrem View-Port auswählen , indem Sie die Strg-Taste gedrückt halten und mit der linken Maustaste auf 123 klicken. Wenn ich für einen Moment abklicke, kann ich auch alle drei hier in meinem Outliner auswählen , 123. Und Sie können sehen, dass alle drei dieser Objekte hier im Viewport skizziert sind. Okay, jetzt lasst uns in unseren Level Blueprint einsteigen indem wir hier unter unseren Blueprint-Button kommen. Wir werden unseren Level Blueprint öffnen, obwohl ich ihn bereits oben geöffnet habe. Und etwas, das ich hier anmerken möchte , dass ich derzeit mein niedriger Blueprint zwei Ereignisgrafiken habe. Einer namens Event Graph , der standardmäßig da war, und ein anderer nannte Knotentypen. Ich habe diesen erstellt, als ich über die verschiedenen Knotentypen sprach. Nun, der Grund, warum ich das erwähne, ist, dass innerhalb meiner Knotentypen Event-Graph dieses Ereignis beginnt. Sie können nur ein Event pro Level Blueprint spielen lassen. Also, wenn ich in diesem Event Graph Tab arbeiten würde und mit der rechten Maustaste klicken und Begin Play suchen würde. Und klicke darauf. Es wird mich von dieser Registerkarte Ereignisdiagramm zurück zur Registerkarte „Typ“ meiner Nodes bringen. Da ist es. Jetzt muss ich auch Nodes hier draußen funktionieren. Ich habe einen Delay-Knoten , der sich um drei Sekunden verzögern wird , und dann einen Destroy Actor-Knoten. Was ich mir im Wesentlichen ansehe, wenn ich hier anschaue, ist zu Beginn des Spiels, wir werden drei Sekunden verzögern und dann einen Zieldarsteller zerstören. Nun, welche Schauspieler wollen wir zerstören? Nun, ich habe diese drei hier in meinen View-Ports ausgewählt. Lassen Sie uns also einen Verweis darauf innerhalb unseres Level Blueprint erstellen . Wenn ich mit der rechten Maustaste klicke und hier auf etwas leeren Platz klicke, scheine ich sie hier überhaupt nicht zu sehen, aber dafür gibt es eine Abkürzung. Ich kann die R-Taste gedrückt halten oder wie bei Robert, Linksklick und Boom, werden alle drei dieser Referenzen hinzugefügt, obwohl sie sich überlappen. Sie können sie also trennen. So. Das ist meine bevorzugte Art, einen Verweis auf etwas hinzuzufügen , das innerhalb Ihres Levels innerhalb des Level Blueprint existiert . Wenn ich jedoch wieder hier reingehe und nur ein Objekt auswähle, wähle ich hier meinen Beispiel-Pickup aus. Ich gehe zurück zu meinem Level Blueprint. Ich kann hier mit der rechten Maustaste klicken. Und wenn Sie nur einen von ihnen in Ihrem Kontextmenü ausgewählt haben in Ihrem Kontextmenü ausgewählt , können Sie auch einen Verweis darauf erstellen. Jede Methode wird persönlich funktionieren, mir gefiel die Abkürzung , R, R wie in der Robert-Taste gedrückt zu halten und mit der linken Maustaste zu klicken. Jetzt habe ich hier zwei Hinweise auf meinen BP-Beispiel-Pickup. Ist es in Ordnung, mehr als einen Verweis auf denselben Akteur zu haben mehr als einen Verweis auf , dasselbe Objekt? Ja, das ist vollkommen in Ordnung. Es gibt einfach Duplikate, mit denen Sie sprechen. Das Gleiche. Ich lösche vorerst einen von ihnen hier draußen . Wie Sie sehen können, stammen alle diese Akteure von der hartnäckigen Ebene, meiner LV-Testkarte. Und ich kann alle drei mit meinem Destroy Actor verbinden. Und du siehst, dass ich sie vorwärts und zurück verdrahten kann. Auch hier ist es sehr wichtig, eine Objektreferenz zu erhalten, da so sehr ein Blueprint-Skripting die Manipulation von Akteuren in irgendeiner Weise beinhaltet . In diesem Fall gehen wir nur die Brute-Force-Methode , um den Schauspieler zu zerstören. Wenn ich also jetzt mein Spiel spiele, kompiliere ich zuerst meinen Blueprint hier, um zu sehen, ob es irgendwelche Fehler mit meinem Skript gibt. Spar dir das sofort auf. Fahren Sie fort und klicken Sie gleich hier auf „Spielen“. Und Sie können sehen, dass nach drei Sekunden alle drei Schauspieler zerstört sind. Jetzt ist das Erstellen von Objektreferenzen cool, nicht nur weil Sie das Objekt selbst beeinflussen können, sondern Sie können die Dinge an diesem Objekt auf einer detaillierteren Ebene beeinflussen. Lass mich dir zeigen, was ich meine. Ich werde diese Destroy Actor-Funktion gleich hier los . Und mit meinem BP-Beispiel-Pickup habe ich hier einige Komponenten, mit denen ich direkt sprechen kann, wenn ich dorthin zurückkehre, wo dies in meinen Ordnern ist mit denen ich direkt sprechen kann, wenn ich dorthin zurückkehre, . Diese existieren innerhalb meines BP-Beispiel-Pickups. Und ich möchte diese Spherkollision beeinflussen. Dies ist derzeit meine Root-Komponente. Also werde ich den Maßstab dieser Wurzelkomponente ändern. Alle diese anderen Komponenten sind mit dem Stamm verbunden. Wenn ich das also skaliere, werden diese ebenfalls skaliert. Also wie dieses Audio, aber dieser ist derzeit leer und ehrlich gesagt brauche ich es nicht mehr. Lassen Sie mich also weitermachen und das löschen, kompilieren und speichern. Okay, lass mich zurück zu meinem Level Blueprint springen. Und ich ziehe mein Beispiel hier ab. Und ich suche nach einer Kugelkollision. Und ich möchte ganz auf den Grund gehen. Wenn Sie nach etwas suchen, das in dieser Blaupause existiert, ist es oft das in dieser Blaupause existiert, ganz unten. Und ich möchte meine Spherkollision bekommen , weil ich etwas damit machen möchte. Und dann ziehe ich mich hier ab und tippe festgelegten World Scale 3D ein. Diese Funktion macht also das, was Sie denken, um diese Szenenkomponente zu vergrößern , das ist das Ziel. Ich stelle fest, dass die Skala in den X-, Y- und Z-Koordinaten dreimal größer ist. Also machen wir das nach drei Sekunden. Und wieder alle anderen Komponenten des grünen Kreuzes, wenn Sie so wollen, was mit dieser Komponente der Kugel verbunden ist . Wenn Sie dies skalieren, sollte alles auch dreimal größer werden, einschließlich dieses grünen Kreuzes. Lassen Sie mich das also kompilieren, um sicherzustellen, dass mein Skript in Ordnung ist. Lass uns weitermachen und auf „Spielen“ klicken. Nach drei Sekunden sollten wir diese Änderung sehen. Whoops, und ich habe versehentlich aus dem Fenster geklickt. Lass mich das noch einmal versuchen. Konzentrieren Sie sich auf dieses grüne Kreuz, Boom, dreimal größer. Probieren wir hier etwas anderes aus. mithilfe unseres bp-Beispiel-Pickups noch einmal Lassen Sie mich mithilfe unseres bp-Beispiel-Pickups noch einmal einige dieser unnötigen Knoten hier löschen . Ich werde diese Typen löschen. Innerhalb unseres BP Beispiel-Pickup. Wir haben diese Tonabnahme-Klangvariable, und derzeit ist sie auf diese Wechselspielart von Ton eingestellt. Jetzt ändere ich das in ein Explosionsgeräusch. Und das kann ich in meinem Level Blueprint machen, solange ich einen Hinweis auf diesen Schauspieler habe , der im Level existiert. Sobald ich einen Hinweis darauf habe, ziehe ich ein Kabel davon ab und tippe den Tonabnehmer ein. Ich kriege das Geräusch oder ich kann diesen Ton einstellen. Lass mich weitermachen und es einstellen. Und jetzt kann ich den Inhalt dieser Variablen in etwas anderes ändern . Lasst uns weitermachen und das in eine Explosion umwandeln. Und ich werde es so schaffen, dass aus Event Begin Play. Ich ändere einfach den Wert dieser Variablen, dieser Tonabnahme-Klangvariablen, von diesem Wechselspielton zu einem Explosionsgeräusch. Okay, sobald ich spiele, hörst du eine Explosion. Nun, wenn ich diese Gesundheitsabholung sammle, ein paar andere interessante Leckerbissen Informationen, von denen ich dachte, ich würde es erwähnen, während ich hier war, mit dieser Beispiel-Pickup-Referenz in unserem Level Blueprint. wenn ich mit der rechten Maustaste darauf klicken sollte, kann ich diesen Schauspieler in einem Level finden. Wenn Sie sich also jemals fragen, Hey, wo existiert dieses Ding in meinem Level, können Sie mit der rechten Maustaste klicken, darauf klicken und zurück zu Ihrem Level-Tab springen, und es springt Sie direkt dorthin klicken, darauf klicken und zurück zu Ihrem Level-Tab springen, . Etwas anderes in deinem Level Blueprint, das du tun könntest, ist, mich einfach davon abwenden zu lassen , wo sich diese Referenz befindet. Sag, ich bin im Niemandsland weg. Ich kann unter Fenster kommen. Ich kann runterkommen, Ergebnisse finden, in diesem feinen Ergebnisfenster kann ich einfach eintippen, lass uns einfach Pickup eingeben. Und ich kann meinen BP-Beispiel-Pickup genau dort finden. Ich wusste nicht, dass ich auch meinen Pick-up-Sound finden würde , aber in der Tat hat das Wort Tonabnehmer drin. einfach darauf doppelklicken, gelangen Sie direkt dorthin, wo sich diese Objektreferenz befindet. Ziemlich süß. Okay Leute, also können Sie einige Objektreferenzen in Ihrem Level Blueprint hinzufügen , stellen Sie sicher, dass Sie die hier ausgewählten Objekte und Ihr Level haben . Und dann können Sie entweder mit der rechten Maustaste und auf etwas leeres Feld klicken und einen Verweis darauf erstellen, oder die Alt-Taste gedrückt halten und mit der linken Maustaste klicken, damit Sie ebenfalls dorthin gelangen. Das wird alles für dieses Video machen, Leute. Wir sehen uns im nächsten. 19. Level BP - Run: Willkommen zurück alle. In diesem Video ist es unser Ziel, zu lernen, wie Sie zur Laufzeit Referenzen auf Objekte in Ihrem Level Blueprint erstellen können. Dies unterscheidet sich von Design-Time-Objektreferenzen darin, dass Verweise auf verschiedene Objekte erfasst und enthalten während des Spiels Verweise auf verschiedene Objekte erfasst und enthalten werden. Denken Sie daran, dass die Designzeit ist, bevor das Spiel läuft. Laufzeit ist, während das Spiel läuft. Ein häufiger Anwendungsfall dafür sind Gegenstände oder Feinde, die während des Spiels ins Spiel spawnen. Vielleicht möchten Sie, nachdem ein Gegenstand oder Feinde in Ihr Level spawnen, ihn irgendwie beeinflussen. Um dies zu tun, müssen Sie eine Referenz für dieses Objekt erstellen. Sie müssen diese Referenz innerhalb einer Variablen enthalten. Okay, wir werden hier in unserer Level-Test-Map anfangen . Und nur um die Dinge super klar zu machen, über den Tab „Meine offenen Levels“ habe ich über den Tab „Meine offenen Levels“ mein hartnäckiges Level als das blaue Level, das derzeit aktive Level. Ich werde von hier an Objekte zu meinem Persistenten Level hinzufügen , ohne mehr in meinem Unterverzeichnis arbeiten zu können . Ich wollte das nur klarstellen. Wenn Sie dies zur aktiven Ebene machen möchten, können Sie darauf doppelklicken oder alternativ mit der rechten Maustaste darauf klicken und aktuell machen, dass die blaue Schriftart anzeigt, dass dies Ihre aktuelle Ebene ist. Wir werden diesem Level einen Schauspieler hinzufügen. Und um dies zu tun, werde ich schnell zur Schaltfläche Projekt im Flyout-Menü alle Klassen hinzufügen . Und ich suche einen Notenschauspieler. Also klicke ich mit der linken Maustaste und ziehe es in mein Level und platziere es genau hier. Wenn du das Spiel spielst, siehst du dieses Symbol nicht wirklich hier draußen. Ich benutze diesen Schauspieler einfach, um einen Punkt im Raum zu definieren , in dem ich etwas spawnen möchte. Beachten Sie nun, dass ich derzeit meinen Notenschauspieler ausgewählt habe, und ich kann sehen, dass ich ihn hier in meinem Outliner ausgewählt habe. Bitte stellen Sie sicher, dass Sie diese Auswahl haben , da wir hier in nur einer Sekunde eine Designzeitobjektreferenz erstellen werden einer Sekunde eine Designzeitobjektreferenz . Wenn ich hier unter meinem Blueprints-Button komme, gehe ich zum Level Blueprint, obwohl ich ihn hier geöffnet habe, kannst du so wieder in deinen Level Blueprint springen. Und was ich tun werde, ist, dass ich hier drüben zu meinem E Event Graph Tab springen werde. In einem leeren Raum erstelle ich eine Designzeitreferenz auf diesen Notenakteur. Ich halte die R-Taste gedrückt und klicke mit der linken Maustaste. Also hast du gesehen, wie ich das im letzten Video gemacht habe. Das ist eine Entwurfszeitreferenz. Jetzt komme ich in einem Moment darauf zurück, aber ich brauche einen Event-Schlüssel. Ich klicke mit der rechten Maustaste und etwas leeres Leerzeichen und tippe die eine Schaltfläche ein. Ich füge ein Tastaturereignis hinzu, wenn ich die eine Taste auf meiner Tastatur drücke. Und oft ziehe ich das, sobald ich diesen Knopf drücke, davon ab und tippe Spawn-Schauspieler aus dem Unterricht ein. Dies ist eine super praktische Funktion, nein, die in etwas spawnen wird , das wir aus diesem Dropdown-Menü sagen. Was wollen wir hier drin spawnen? Ich spawne in etwas Visuelles. Lasst uns in diesem Blueprint-Effekt-Feuer spawnen. Dies stammt aus dem Starter Content Pack. Wenn Sie dieses konstante Paket nicht haben, wenn Sie diesen Kurs zusammenstellen, wird alles etwas Visuelles tun. Es spielt also keine Rolle, was Sie hineinstecken. Ich entscheide mich allerdings für das Feuer. Ich muss jedoch sagen, wo ich das spawnen möchte, und hier kommt diese Spawn-Transformation ins Spiel. Und ich muss etwas in diesen Transformationseingang stecken , damit er weiß, was zu spawnen ist und wo. Dafür werden diese Note-Akteure verwendet. Ich ziehe davon ab und tippe Schauspieler-Transformation ein. Die Transformation ist der Standort, die Drehung und tatsächlich die Skalierungsinformationen für diesen Knotenakteur. Aber wir kümmern uns nur sehr um die Standortinformationen. Es ist also in Ordnung, dass wir die gesamte Transformation hier verwenden. Stecken Sie das in meine Spawn-Transformation. Und hier werden wir eine Runtime-Objektreferenz erstellen. Wir werden etwas in einer Variablen speichern , während das Spiel läuft. Von diesem Rückgabewert hier, wenn ich den Mauszeiger über den Pin fahre, heißt es, dass er eine Instanz dieses Blueprints zurückgibt , das Feuerobjekt. Jetzt möchte ich dies in eine Variable speichern , damit ich es während des Spiels irgendwie beeinflussen kann . Also klicke ich mit der rechten Maustaste auf diesen Pin und tippe auf Variable bewerben ein. Dabei habe ich in meinem variablen Abschnitt ein neues Blueprint-Effektfeuer erstellt. Aber ich muss dem einen Namen geben. Ich nenne das gefördertes gefördertes Feuer. Das ist ein guter Name. Obwohl dies eine Variable ist, kann ich dies auch kompilieren. Derzeit, wenn ich dies kompiliere, schaue ich mir den Standardwert an und sage: Okay, wird von dieser Blueprint-Website sein , ist Blueprint Fire Effect, Fire Type. Aber im Moment haben wir hier nichts drin. Sobald ich jedoch die eine Taste drücke, spawnt dies diesen Akteur an dieser Stelle und setzt ihn dann in diese Variable ein. Es wird im Wesentlichen in diesem Container enthalten , während wir das Spiel spielen. Jetzt machen wir das einfach zur Laufzeit , damit wir es dann zerstören können. Also unten gehe ich mit der rechten Maustaste, tippe die beiden Schlüssel ein, zwei Eingaben. Sie werden auf die Tastatur heruntergefahren, um das Schlüsselereignis zu erreichen. Und davon ziehe ich den Typ rein, Destroy Actor. Es ist eine sehr visuelle Funktion. Deshalb gefällt es mir so sehr, wenn ich diese Kurse zusammenstelle. Und dann wird es sagen, welches Objekt würdest du gerne zerstören, welchen Schauspieler? Nun, ich kann das einfach per Drag & Drop direkt auf das Ziel ziehen, um das anzuweisen, es zu zerstören. Beachten Sie nun, dass ich das jetzt tun werde, um etwas zu demonstrieren, wenn ich reinspringen und spielen und die beiden Taste drücken und spielen und die sollte. Das Spiel spielen. Mal sehen, ob ich das irgendwie in ein Seitenfenster stecken kann . Du siehst meine Drehbücher. Ich drücke nur die beiden Tasten, um, zu, zu, zu, zu, zu, zu, zu, whoops, ich muss hier oben eine Debug-Option auswählen. Wählen wir meine Testkarten aus, damit wir den Ausführungsfluss hier sehen können . Und so drücke ich die beiden Tasten und du kannst den Puls dort nach links sehen , während ich die beiden Taste drücke. Aber sieh dir das an. Wenn ich auf Escape klicke, werde ich mit einigen Fehlern gespannt sein. Und der Grund, warum ich einen Fehler bekomme , ist, dass es Hey, wir können nichts in dieser Variablen finden. Wir versuchen dieses Ding zu zerstören, aber da ist nichts drin. Der Grund dafür ist also, dass derzeit nichts hier gespeichert ist. Wenn wir jedoch auf das Wackelige drücken, werden wir einen Schauspieler spawnen, der den Feuereffekt entwirft, und dann speichern wir ihn in dieser Variablen. Wir haben eine Objektreferenz erstellt in dieser Variablen gespeichert ist. Versuchen wir es also noch einmal. Klicken auf „Play“. Mein Notenschauspieler war also eine Runde über dem Ort, an dem der Kopf meines Charakters hier ist. Also drücke ich eine Taste. Es gibt diesen Feuereffekt , der gerade hervorgebracht wurde. Und ich drücke die beiden Tasten weg. Und ich kann die eine Taste noch einmal drücken. Eine andere Instanz dieser Firewall, füllen Sie diese Variable aus, drücken Sie die Taste F2, verschwunden. Jetzt etwas anderes erwähnenswertes hier, ich gehe zurück zu meiner Level-Test-Map. Und ich ändere hier meine Spieloption klicke auf diese drei Punkte. Es ändert sich so, dass es nicht in einem neuen Editorfenster, sondern in diesem ausgewählten Ansichtsfenster abgespielt wird. Ich mache das, denn wenn Sie im Outliner hinüberschauen, auf der rechten Seite, wenn ich die eine Taste drücke, werden Sie tatsächlich sehen, dass der Schauspieler in meine Objektliste in der Outliner. Also sieh es dir an. Sie können die eine Taste unterdrücken. Du siehst das Blueprint-Effekt-Feuer direkt über meinem BP-Beispiel. Pickup zwei wird es eins zu eins zerstören. Und nur um darauf hinzuweisen, ist es im Outliner genau dort. Versuchen wir hier ein zweites Beispiel. Genau hier oben werde ich unter Volumes platzieren, Trigger-Lautstärke, eine Triggerlautstärke direkt vor dem Ort, an dem mein Charakter laichen wird. Und ich werde es nur ein wenig vergrößern, um sicherzustellen, dass es meinem Charakter leicht ist, dies zu überlappen. Ich hebe es leicht vom Boden ab. Wenn das ausgewählt ist, springe ich hier in meinen Level Blueprint und klicke mit der rechten Maustaste, um ein Ereignis hinzuzufügen, wenn wir diesen Anfang überlappen, es überlappen. Und wieder löst es Lautstärkereignis wie dieses auf Überlappung des Schauspielers beginnt uns sagen, wer der andere Schauspieler ist , der sich überschneidet, tut das, was ich tun werde . Ich werde mit der rechten Maustaste auf diesen Pin und ich werde dies zu einer Variablen fördern. Und dabei kannst du uns einen Namen geben. Es ist der Name hier für mich an einen anderen Schauspieler. Denn bevor dieses Video aufgenommen wurde, hatte ich das als Namen eingegeben. Sie können jedoch F2 drücken, um es umzubenennen. Sobald wir dies überlappen, kann es einen Hinweis auf diesen Schauspieler speichern, der ihn während der Laufzeit überlappt hat, wer der andere Schauspieler war. Nur um sicherzustellen, dass wir wissen, dass sich tatsächlich Überschneidungen ergeben. Ich spiele nur ein Geräusch ab, höre, dass jeder Ton reicht. Ich werde auch hier den Ton aufheben. Wir werden sicher spielen. Ein Kameraauslöser, das sind nur zwei. Benachrichtigen Sie uns, es ist tatsächlich etwas passiert. Das ist also großartig. Aber nehmen wir an, wenn unser Charakter diese Triggerlautstärke überlappt, das heißt, oh, das ist in irgendeiner Weise negativ. Vielleicht ist das eine Art giftige Gaswolke , die uns schrumpfen wird. Sobald wir hier einen Hinweis auf unseren Schauspieler haben, können wir sie irgendwie beeinflussen. Also ziehe ich mich hier weg und verweise auf meinen anderen Schauspieler. Und davon gib ich das Wort „Skala“ ein. Wir setzen die Akteur-Skala 3D. Und ich werde 0,5.5.5-Werte in jeden von diesen drücken. Also lasst uns reinspringen, hier spielen. Sobald ich kompiliert habe, überprüfe, ob mein Skript gut ist. Lass uns spielen. Ich habe meine Test-Map als mein Standardobjekt festgelegt, das ich hier debugge. Wir können also sehen, wie diese Skripte abfeuern. Hier ist mein Spielerfenster. Also direkt vor mir, diese unsichtbare Triggerlautstärke. Du hast gehört, dass ich das überschneide. Jetzt drin. Der andere Schauspieler wurde zur Laufzeit hier besiedelt. Sobald ich die Taste drücke, wird der andere Schauspieler, in diesem Punkt auch bekannt als ich , in diesem Punkt auch bekannt als ich , die Handlung oder Skalierung auf halbe Größe eingestellt . Los geht's. Ich drücke gerade die eine Taste. Boom, runter. Ich geh. Ein weiteres Beispiel hier. Bevor wir dies schließen, zeigen wir, wie man während der Laufzeit mehrere Verweise auf Akteure erstellt . Ich habe momentan meine Beispielabholung hier dupliziert. Sie können dies einfach tun, indem Sie einzelne Instanzen ziehen und ablegen oder Alt, Linksklick auf eine dieser Instanzen ziehen und ziehen, um eine andere Instanz zu erstellen. Also zurück in meiner Level-Blupause von meinem 16k-Event werde ich einen Draht ziehen und eintippen, alle Schauspieler des Unterrichts holen. Und in der Schauspielerklasse kann ich meinen BP-Beispiel-Pickup abholen. Und dies kann alle Instanzen dieses Schauspielers ausgeben. Also klicke ich mit der rechten Maustaste auf diesen Out-Schauspieler. Ich werde dies zu einer Variablen befördern und das meine Pickup-Schauspieler nennen . Es ist ein Array. Auch hier weiß ich, dass wir nicht über Array-Typen gesprochen haben, aber ein Array ist im Wesentlichen eine Liste einer Art von Variablen, in diesem Fall sind BP-Beispielabnehmer. Es wird all die hier drinnen speichern , damit wir sie irgendwie beeinflussen können. Und was wir mit ihnen machen werden , ist diese Pin abzuziehen und für jede Schleife einzutippen. Und wieder habe ich ein Video, das der bevorstehenden for-each-Schleife gewidmet ist. Wenn Sie also nicht wissen, was das gerade ist , keine große Sache. Für jeden Artikel in dieser Liste, den wir hier aufbewahren, werden wir etwas damit tun. Und was wir tun wollen, ist, dass wir für jedes Element in dieser Liste, das Array-Element, den Anzeigenamen erhalten. Und dann drucken wir das in unser Spielerfenster und haken dies so an. Klicken Sie auf dieses Dropdown. Ich werde dies in rosafarbene Texte umwandeln weil es dadurch ein bisschen mehr hervorsticht. Im Wesentlichen passiert hier sobald ich die eine Taste drücke, werden wir nach allen Akteuren einer bestimmten Klasse suchen , die in meinem Level existiert. Und wir werden sie speichern , während wir das Spiel zur Runtime innerhalb dieser Array-Variable spielen , sie werden alle von diesem variablen Typ sein, meinem BP-Beispiel-Pickup-Typ. Und dann drucken wir für jedes Element in dieser Liste den Anzeigenamen auf dem Bildschirm aus . Lass uns weitermachen und uns ein Stück geben. Und noch einmal habe ich meine Level-Test-Map hier aufgelistet. Es akres, es erhöht diese Zahl jedes Mal, wenn ich das Spiel spiele. Das ist also, was diese Zahl ist. Sie müssen sich keine Sorgen darüber machen, was diese Zahl bedeutet. Genau hier geht's los. Klicke und spiele. Beachten Sie nun oben links hier, wenn ich die eine Taste drücke, werden Sie sehen, dass der Ausführungsfluss hier durchläuft. Und es listet alle fünf Instanzen meines Beispiel-Pickups auf. Ich schaffe es immer wieder und immer wieder. Ich spamme dich gerade gerade aus. Wenn Sie es jetzt hier in meinem Level Blueprint wissen, wenn ich hier im Editor auf meine Liste der Pickup-Schauspieler klicke. Nun, hier ist nichts drin. Wieder einmal füllen wir den Inhalt dieser Variablen während der Laufzeit, wir erfassen sie innerhalb dieser Variablen. Also lasst uns hier etwas von den beiden Events machen. Stellen wir die Lebensdauer des Einkaufszentrums Shelley fest. Sobald wir also einen Verweis auf diese Liste von Schauspielern haben, kann ich mir diese Liste der Schauspieler schnappen, sie per Drag & Drop ziehen. Lass es uns da runterziehen. Ich tippe für jede Schleife ein, wir werden für jedes Element in dieser Liste etwas tun. Und was wir tun werden, ist außerhalb der Array-Elemente. Das ist also für jeden Artikel in dieser Liste, ich werde ihre Lebensdauer festlegen. Schon wieder. Jeder von ihnen hat eine Lebensdauereigenschaft in ihnen, die ich beeinflussen könnte. Ich ändere diese Lebensdauer auf zwei Sekunden. Okay, und lass mich das ein wenig verkleinern. Ich habe meine Testkarten als Debug-Option festgelegt . Ich klicke auf „Spielen“. Lassen Sie mich einfach dieses Spielfenster verschieben und hier ein wenig nach unten drücken, indem Sie die eine Taste drücken, um diese Liste der Variablen zu füllen. Es ist jetzt besiedelt. Wenn ich also die beiden Taste drücke, ist eine weg. Also da habt ihr es alle. Einige der vielen Möglichkeiten, wie Sie Runtime-Objektreferenzen in Ihrem Level Blueprint erstellen können . Wir haben darüber gesprochen, wie man das von einem Spawn-Akteur aus dem Klassenfunktionsknoten macht. Auch wenn wir eine Triggerlautstärke überlappen, könnten wir auch ein anderes Objekt treffen , das dies tun würde. Außerdem haben wir darüber gesprochen, wie man das von einem macht, alle Akteure der Klassenfunktion bekommt. So kann man mehrere Schauspieler gewinnen. Es gibt andere Möglichkeiten, sicher zu sein, aber hoffentlich gibt dir das ein Raster, tut mir leid, Leute, das alles für dieses Video erledigt. Wir sehen uns im nächsten. 20. Klasse BP - Design: Willkommen zurück alle. In diesem Video ist es unser Ziel, zu lernen, wie man Verweise auf Levelobjekte innerhalb eines Klassen-Blueprints erstellt . Jetzt können wir ein Skript in einen Klassen-Blueprint schreiben, der sich auf Levelobjekte auswirken kann, die hier in unserem Level platziert werden. Dies ist ein wirklich praktischer Trick zu wissen und unwirklich, um ein einfaches Einstellungssystem pro Level zu erstellen. Also werden wir das tun, obwohl hier nur ein bisschen Haftungsausschluss ist, wird dies ein super vereinfachtes Einstellungssystem sein und ich verwende hier Air Quotes. Okay, wir beginnen in unserem Übersichtsordner für Inhaltsskripte. Und drüben in einem leeren Bereich ich mit der rechten Maustaste und erstelle eine neue Blueprint-Klasse. Dies wird auf einer Schauspielerklasse basieren , weil wir dies in unser Level bringen werden . Also werde ich diesen BP-Unterstrich L V benennen , der für Einstellungen für den Unterstrich der Ebene stehen wird. Dann doppelklicke ich darauf, um es zu öffnen. Und ich füge hier eine Komponente und füge eine Billboard-Komponenten hinzu. In dieser Plakatwand erhalten wir standardmäßig diesen Drachenkopf-Typ von Sprite Icon. Dies ist die, mit der ich rollen werde. Du könntest das ändern, um etwas anderes zu sein, aber das wird in meinem Level angeben, dass hey, das ist dein Akteur für die Einstellungen auf BP-Level. Ich werde dies auch zur Wurzel machen weil ich dieses Standard-Szenen-Root-Symbol loswerden möchte . Lassen Sie mich das einfach per Drag & Drop direkt oben drauf ziehen. Das wird es zur Wurzel und damit zum einzigen Icon-IC machen . Wenn ich das jetzt in mein Level lege, sehe ich dieses kleine Drachenkopf-Symbol. Ja, die Drachenköpfe stehen für meine Leveleinstellungen, um das Detailbedienfeld zu erreichen. Wenn Sie erneut nach Billboard suchen, müssen Sie diese Ebeneneinstellungen auswählen lassen. Sie können es auf den Maßstab des Editors reduzieren. Ich werde das ändern, um etwa das Zehnfache der üblichen Größe zu haben. Nur um das wirklich hervorzuheben. Dieser Schauspieler wird nicht gesehen werden, wenn Sie das Spiel spielen, aber für so etwas wie einen Schauspieler mit Leveleinstellungen möchte ich dies sehr prominent machen, sehr leicht zu erkennen. Und wieder sieht man das nicht im Spiel, also keine Sorgen. Okay, das nächste, was wir tun werden, ist, eine Variable in unserem Blueprint für Leveleinstellungen zu erstellen . Im Abschnitt „Variablen“, der sich im Bedienfeld „My Blueprint“ befindet, Variablen. Außerdem fügen wir eine Variable namens Music hinzu. Und wir werden den Variablentyp hier von einem booleschen zu Ambiente ändern . Ton, Umgebungsklang in Objektreferenz. Jetzt im Detailbedienfeld heißt es hey, kompilieren Sie dies, um einen Standardwert festzulegen. Also mache ich das. Ich lasse das jedoch leer. Wir werden dies in unserem Level-Editor festlegen , um diese bestimmte Variable vom Level-Editor aus einstellen zu können . Entweder muss ich auf dieses kleine Symbol zum Schließen des Augapfels klicken Augapfels oder überprüfen dieses Feld, in dem die Instanz editierbar ist. Du siehst gerade, ob ich mit dem ausgewählten Schauspieler zu meinem Level-Editor zurückkehren sollte, lass mich einfach aussteigen. Ich sehe diese Musikvariable nicht, lege alles in meinem Editor vor. Wenn ich jedoch entweder auf dieses Augapfelsymbol klicke, macht das dasselbe wie das Aktivieren dieser Instanz bearbeitbares Kästchen. Und ich kompiliere das und speichere es. Jetzt hier zurück in meinem Level-Editor, der hier im Detailbedienfeld in meinem Level-Editor angezeigt wurde . Was mir das ermöglicht, ist, den Wert dieser Variablen hier im Editor auf einen Schauspieler festzulegen den Wert dieser Variablen . Im Editor könnte ich auf dieses Dropdown-Feld klicken. Und ich sehe jedoch, dass hier nichts drin ist. Aber es gibt diesen Pick-Schauspieler von Scene Pipette , der es mir ermöglichen würde , eine Sounddatei auszuwählen , die in meinem Level existiert. Also lasst uns weitermachen und nach einem Ton suchen, um abzuspielen. Ich wähle hier meinen Inhaltsordner aus. Und ich verwende die Filteroption. Und ich suche unter Ton. Und wir suchen nach Sound-Wave-Dateien , die irgendwo in meinem Inhaltsordner oder einem seiner Unterordner nach Sound-Wave-Dateien suchen. Ich möchte diese Startermusik finden. Also werde ich das einfach per Drag & Drop in mein Level ziehen und fallen lassen . Wenn ich jetzt reinspringen und unser Spiel spielen sollte, höre tatsächlich, dass die Musik entkommen ist. Und der Grund dafür ist , dass unsere Startermusik, lassen Sie mich einfach, mit der ausgewählten, hier mein Viewport aktivieren und die F-Taste drücken, um sich darauf zu konzentrieren. Meine Star-Musik im Detailbedienfeld hat eine Eigenschaft für die automatische Aktivierung aktiviert. Ich werde das vorerst abchecken. Und wenn ich jetzt spiele, höre ich diese Level-Musik nicht spielen drücke erneut Escape. Was ich jetzt machen möchte, ist hier auf der Seite meiner BP-Level-Einstellungen, ich möchte den Wert meiner Musikvariablen auf dieses Musikstück einstellen . Also los geht's. Ich wähle Schauspieler aus Szene aus. Ich wähle diesen Ambient-Sound-Schauspieler aus. Und jetzt wird es diese Star-Musik in meine BP-Leveleinstellung stecken . Das ist also alles gut und gut. Innerhalb meiner BP-Leveleinstellung habe ich jedoch keine Schriftstelle, um das tatsächlich zu sagen, um es zu spielen. Ich kann das ändern, indem ich zum Ereignisdiagramm gehe und etwas außerhalb des Ereignisses mache. Fange hier an zu spielen. Lassen Sie mich diese beiden anderen Schauspieler einfach auslöschen. Jetzt kann ich hier einen Verweis auf meine Musikvariable ziehen , mit der linken Maustaste klicken, ziehen. Wir werden es kriegen. Und wenn ich hier rausziehe und das Wort Play eintippe, kann ich die Audiokomponenten abspielen. So lange Geschichte, kurz, wenn Sie aus der Musik ziehen, diese Variable, die Umgebungsklangvariable direkt dort, wird sie diese Audiokomponente automatisch einbringen. Wir können eine Verzögerung festlegen. Ich klicke mit der rechten Maustaste und etwas leeres Leerzeichen und tippe Verzögerung ein. Wir hören das also nicht sofort, wenn wir es auch hier verdrahten. Nehmen wir an, nach zwei Sekunden werden wir ganz am Anfang dieses musikalischen Tracks beginnen . Lassen Sie uns kompilieren und speichern, um sicherzustellen , dass unser Skript gut ist. Und wenn ich nach zwei Sekunden spiele, spielst du das nicht. Lassen Sie uns hier schnell ein anderes Beispiel ausprobieren. Hier drüben in unserem Variablenbereich klicke ich auf diese Plus-Button. Und ich gebe gerichtetes Licht als Namen ein. Es wird mir Umgebungsklang als variablen Typ geben , denn das war das Letzte, was ich erstellt habe. Das möchte ich ändern. Und ich ändere dies in ein gerichtetes Licht, eine gerichtete Lichtobjektreferenz , nicht auf die Referenz des gerichteten Lichtobjekts der Komponente. Wenn ich jetzt noch einmal hier kompiliere, ist dies eine leere Variable. Hier ist nichts drin. Aber auch noch einmal, wenn ich dieses bearbeitbare Kästchen für die Instanz ankreuze, wird dieses Augapfelsymbol wieder zum Leben erweckt, das macht das Gleiche. Und ich kompiliere das und gehe zurück zu meinem Level-Editor. Ich habe diese Variable jetzt dem Level-Editor zugänglich gemacht, sobald ich meine Einstellungen für die BP-Level hier ausgewählt habe . Der Grund, warum ich das exponiert habe, liegt darin, dass ich, als wir unser Testkarten-Level erstellt haben, weiß ich, dass es standardmäßig einen Directional Light-Akteur in diesem Level hatte . Das heißt, dieser Typ hier, diese Art von Sonnenlicht-Ikone mit diesem weißen Pfeil, der an diesem Kerl hängt. Was ich also tun kann, ist meine Leveleinstellungen Blueprints ausgewählt sind. Ich kann mein gerichtetes Licht innerhalb meiner Einstellungen auf BP-Level einstellen , um diesem bestimmten Schauspieler zu sprechen. Also lass mich hier auf die Pipette klicken und schauen. Es weiß, dass diese Objekte ungültig sind. Das ist jedoch gültig. Keiner dieser anderen ist nein, aber das ist ein gerichteter Lichtakteur. Also können wir das einstellen. Boom, es ist jetzt auch eingestellt. Gehen wir zurück in unsere Einstellungen für das BP-Level. Und wenn ich das per Drag & Drop in unsere Event-Graphlets ziehe, ich das davon ab, ziehe ich Sets ab und tippe sie ein. Intensität wird hier die Intensität unserer Lichtkomponente einstellen , da gerichtetes Licht aus einer Beinkomponente besteht. Und wir setzen unsere Intensität hier auf, versuchen wir einen Wert von etwa 500. Setzen Sie einfach den Ausführungsablauf direkt nach dem Spielbeginn fort und dann die Verzögerung von zwei Sekunden. Nach zwei Sekunden hören wir unsere Musik Kickin. Es wird die Q-Taste gedrückt, wo sich das als nützlich erweist. Dann stellen wir auch fest , dass die Intensität unseres Directional Light Actors oder kompilierten Drehbuchs gut aussieht. Lass uns weitermachen und spielen. Man sieht, dass wir nicht nur die Musik hören. Dies sind also einige ziemlich extreme Beispiele hier, aber wir haben einen sehr grundlegenden Akteur für die Einstellung auf Ebene geschaffen. Und beachte die Macht hier. Ich könnte diesen Level-Seting-Schauspieler auch auf andere Ebenen ziehen und Level-Seting-Schauspieler auch auf andere Ebenen ein einzigartiges Musikstück und ein einzigartiges Richtungslicht setzen. Solange ich auf ein gerichtetes Licht für diese Variable und einen Umgebungsklang für diese Musikvariable zeige diese Variable und einen Umgebungsklang . Also musst du diese in deinen Levels haben. Nun, whoops, direktionaler Hauptdarsteller im Musikdarsteller. Auf diese Weise stellen wir Levelakteur-Levelobjekte innerhalb unserer Einstellungen auf BP-Level ein. Ein Klassen-Blueprint, Leute, die alles für dieses Video machen werden, wir sehen uns im nächsten. 21. Klasse BP - Run: Willkommen zurück alle. In diesem Video ist es unser Ziel, zu lernen, wie man zur Laufzeit Referenzen auf Levelobjekte innerhalb eines Klassen-Blueprints erstellt , dh während wir das Spiel spielen. Das ist wirklich nützlich, wenn du zum Beispiel möchtest, dass dein Charakter mit etwas in deiner Welt interagiert. Und dann wollte er etwas mit dem Ding machen , mit dem du interagiert hast. Okay, um dieses Beispiel zu zeigen , das ich heute für dich habe, werde ich ein paar Sachen in unseren Blueprint ThirdPersonCharacter stecken , das wird innerhalb einer First-Person funktionieren Charakter auch. Aber das ist wieder der Charakter, den wir für dieses Projekt verwenden. Also fahren Sie fort und doppelklicken Sie darauf, um es zu öffnen. Gehen wir zur Registerkarte „ Ansichtsfenster“, da wir hier in nur ein wenig eine Komponente sehen werden. Wir werden eine brandneue Komponente in unsere Komponentenliste aufnehmen. Wir werden eine Pfeilkomponente hinzufügen. Mach weiter und klicke darauf. Und ich nenne das meinen Endpunkt der Zeilenverfolgung. Und wenn diese Komponenten ausgewählt sind, der x-Standort dafür, werde ich auf 300 eingestellt. Unwirkliche Einheiten trafen Enter. Und wenn ich irgendwie weiterkehre und hier die rechte Maustaste gedrückt halte, in meinem Ansichtsfenster, habe ich festgelegt, dass meine Pfeilkomponente um 300 unwirkliche Einheiten meinem Charakter voraus ist. Jetzt wollen wir hier eine unsichtbare Linie in den Weltraum senden, indem wir eine unsichtbare Linie in diese Komponente verwenden, um uns hier zu helfen. Wir werden prüfen, ob diese unsichtbare Linie kollidiert mit irgendetwas. Und wenn ja, werden wir herausfinden, was das Ding war , das uns getroffen hat , damit wir es irgendwie beeinflussen können. Dabei können wir zur Laufzeit eine Objektreferenz erstellen , während das Spiel läuft. Lassen Sie uns also zu unserem Event Graph übergehen. Ich komme in einen leeren Raum. Und standardmäßig erkennen Zeichenklassen-Blueprints Eingabeereignisse. Also halte ich gedrückt, oder eher mit der rechten Maustaste klicken und die Taste 0 eingeben. Übrigens erkennen nicht alle Klassen-Blueprints standardmäßig Eingabeereignisse, aber die Zeichenklasse tut es. Aus der Taste 0 zu drücken. Wir werden einen Funktionsknoten namens Line Trace für Kanal einbringen . Es gibt viele verschiedene Trace-Funktionsknoten. Die, nach der wir suchen, ist Line Trace für Kanal. Jetzt sprechen wir viel später auf dem Kurs über einige dieser Spuren. Und das wird viel fortgeschrittener sein als dort, wo Sie gerade sind, wenn Sie mit Blaupausen beginnen. Aber die zirkuläre Natur des Erlernens von Unreal Engine-Blueprints besteht darin, dass Sie darüber Bescheid wissen müssen, um dies zu wissen. Und um davon zu wissen, musst du davon wissen. Wenn Sie diesen Teil also nicht verstehen , ist das völlig in Ordnung. Wir werden zu einigen dieser Konzepte kommen. Ertragen Sie es einfach mit mir. Dies zeigt nur eine Technik zum Abrufen einer Laufzeitobjektreferenz. Okay, also wird dieser Knoten hier eine unsichtbare Linienspur in unsere Welt senden . Also wo wollen wir diese Spur starten? Nun, wie wäre es, wenn wir an unserem Schauspielerstandort angefangen haben? Also klicke ich mit der rechten Maustaste und ein leerer Bereich Eingabe erhält den Standort des Schauspielers. Und dies wird den Standort von uns selbst oder unseren ThirdPersonCharacter-Blaupausen zurückgeben . Dort fangen wir damit an. Wo werden wir das beenden? Nun, deshalb habe ich diese Endpunkt-Komponente für die Zeilenverfolgung aufgenommen. Ich ziehe einen Verweis darauf per Drag & Drop in unser Diagramm. Und dann ziehe ich davon ab und möchte den weltweiten Standort dieser Komponenten ermitteln. Im Wesentlichen beginne ich diese unsichtbare Linienspur in unsere Welt am Standort unseres ThirdPersonCharacters. Und es wird sich bis zu unserer Linie an Trace-Endpunkten erstrecken . Also von hier nach hier, okay, wenn wir hier weiterziehen, was wir tun werden, ist dieses Outfit. Im Wesentlichen wird es uns viele verschiedene Ergebnisse darüber geben , was dies getroffen hat. Und ich kann die Trefferergebnisse hier ausbrechen, indem ich ein Breakout-Treffer eintippe. Klicken Sie hier auf diesen Pfeil nach unten. Diese unsichtbare Spur, diese unsichtbare Linie , die der Welt zuschreit kann uns alle möglichen Informationen geben, einschließlich was der Schauspieler war, der ein Hit war. Es kann all diese Informationen ausgeben. Derjenige, den wir ausgeben wollen, ist der Hitdarsteller. Was wir damit tun können, ist mit der rechten Maustaste darauf zu klicken. Wir können dies zu einer Variablen fördern. Lass uns das machen. Und lasst uns den Namen Hit Actor hier behalten. Und Sie können sehen, dass der Variablentyp nur ein generischer Akteur ist. Jetzt oben hier oben ziehe ich einen Draht heraus und tippe den Zweig ein. Und ich werde unseren Rückgabewert hier in den Zustand stecken . Im Wesentlichen werden wir hier sagen , dass wir nur über diesen Zweig hinaus weitermachen wollen. Wenn es tatsächlich stimmt , dass wir etwas getroffen haben, werden wir hier nur ausführen , was jenseits dieses Zweigs liegt. Wenn es stimmt, dass unsere Leitungsverfolgung etwas getroffen hat, ist das unser Zustand. Ziehen wir also einen Draht von dieser Art im Play-Sound zu D. Lassen Sie uns ein wenig Sound-Feedback haben wenn wir tatsächlich etwas getroffen haben. Lassen Sie uns unseren Sound hier so einstellen, dass es alles ist, aber ich stelle fest, dass es auf einen Knopf geklickt wird. Klar. Wir werden damit gehen. Das klingt gut. Aus diesem Grund werde ich diesen Ausführungsfluss dazu bringen, unseren Hitdarsteller zu setzen. Wenn wir also etwas getan haben, wenn und nur wenn wir etwas getroffen haben, werden wir den Inhalt dieser Variablen festlegen, wenn ich kompiliere, merke genau hier, dass wenn und nur wenn wir etwas getroffen haben, werden wir den Inhalt dieser Variablen festlegen , wenn ich kompiliere, der Standardwert ist keine nur, wenn unsere Line Trace etwas trifft. Nun, wir legen den Inhalt dieser Variablen fest und wir werden es tun, während wir das Spiel spielen. Lassen Sie uns davon einen Draht ausdehnen und drucken, string eingeben. Und aus unserem Hit Actor heraus. Ziehen wir einfach hier raus und geben den Anzeigenamen abrufen ein. Also drucken wir den Namen des Dings aus, das wir versteckt haben. Lassen Sie mich dieses Skript hier einrahmen. Wenn Sie also das Video hier anhalten und einen guten Blick darauf bekommen möchten , können Sie sehen, was wir gebaut haben. Kann nicht behalten, kann hier nicht ganz die richtige Zoomstufe bekommen. Da sind wir los. Eine weitere Einstellung, die hier nützlich wäre, um unseren Draw-Debug-Typ hier auf Dauer festzulegen . Wenn wir dabei die Taste 0 drücken, sehen wir dort eine kleine Zeile, eine Debug-Zeile, wenn Sie so wollen, in die Welt geschossen wird . Wir können also sehen, dass dieser Trace-Kanal ihn sichtbar macht. Im Moment ist das unser Standard-Trace-Channel. Dies ist im Wesentlichen ein Namenskanal, den wir diese Linie aus dem Jenseits herausschießen werden. Okay, und damit können wir das tatsächlich kompilieren, speichern. Lasst uns reingehen und spielen, um zu sehen, ob wir sehen können, dass eine Linie ausgeschlossen wird. Noch einmal drücken wir eine Null-Taste. Dort siehst du, dass die rote Linie rausgeschossen wird. Diese rote Linie wird rausgeschossen. Jetzt ist der Grund, warum Sie sehen, dass die rote Linie in die Welt geschossen wird, aber Sie sehen, dass der Ausführungsfluss in meinem Skript oben nicht oben oben ist, weil ich meine Debug-Option nicht festgelegt habe. Also muss ich zuerst spielen. Und sobald ich spiele, wird das meinen Charakter in die Welt bringen, dann kann ich meinen BP ThirdPersonCharacter setzen. Lassen Sie mich das Spielfenster noch einmal anbringen. Wenn ich also die Taste 0 drücke, kann ich sehen, dass der Ausführungsfluss gerade läuft. Ich treffe nichts. Sie sehen also, dass der Ausführungsfluss am Zweig anhält. Wenn ich jedoch zu einem Objektstuhl gehe, hörst du das Geräusch oben links und mein Spielfenster, es gibt den Namen von S M Stuhl, Würfel, Beispiel Pickup aus . Und das geht es nicht durch. Es ist überhaupt so, dass er auf diese Bank trifft. Und der Grund, warum es diese Bank nicht trifft, ist, dass diese Bank Static Mesh keine Kollision hat. Deshalb überspringt es das. Also etwas, das man dort im Hinterkopf behalten sollte. Meine Konstruktionsskript-Wand auch. Okay, also das ist alles gut und gut. Wir setzen diese Objektreferenz zur Laufzeit, aber lassen Sie uns diese Objektreferenz auf andere Weise beeinflussen , sobald wir einen Verweis darauf erfasst haben. Lassen Sie uns hier einfach ein bisschen zusätzliches Skript ablegen . Ich klicke mit der rechten Maustaste und etwas leeres Leerzeichen. Bringen wir die neun Eingabetaste ein. Da sind wir los. Und davon hole ich unseren Hit Actor herein. Lasst uns das kriegen. Und dann ziehen wir einen Draht aus diesem Typ heraus in ist gültig, diese Fragezeichenversion. Und wenn dies ein gültiges Objekt ist, was bedeutet, dass es existiert? Wenn es gültig ist, werden wir von diesem inneren Destroy Actor abziehen . Das Ziel. Wir wollen unser Hit Actor sein. Das ist das, was wir zerstören wollen. Doppelklicken Sie darauf, um einen Umleitungsknoten zu erstellen. Wenig Sauberkeit dort. Versuchen wir also, dieses Skript direkt hier zu gestalten, beide Skripte, damit Sie sehen können, wie sie funktionieren. Lass mich weitermachen und spielen. Versuche dieses Spielfenster hier ein wenig zu verkleinern. Okay, wenn ich jetzt die Neun-Taste drücken würde , was Sie bemerken werden, können Sie sehen, dass sie aus der Neun-Taste auf der linken Seite herauszieht , während ich darauf spamme. Aber es geht nicht über den gültigen Knoten hinaus, da es keinen gültigen Hit-Act Akteur gibt , der eine leere Variable ist. Drücken wir jedoch die Pfeiltaste. Ich habe jetzt überprüft , ob das ein Stuhl ist, indem ich diese Variable setze. Wenn ich jetzt den Nike drücke, ist der Hit-Schauspieler besiedelt. Und boom, es geht auf Wiedersehen. Gehen Sie zu diesem Würfel drücken Sie die Taste 0 , die jetzt als mein neuer Hit Actor festgelegt wurde. Drückt auf den Nike, Boom, das geht auf Wiedersehen. Jetzt ist es wichtig zu beachten, dass Hit Actor nur ein generischer Schauspieler ist. Wir sind uns nicht sicher, welches Objekt wir treffen, und daher können wir keine Variablen ändern , die als Funktionen bezeichnet werden diese Objektreferenz spezifisch sind. Wenn wir das wollten, könnten wir es in dieses Objekt umwandeln, um sicherzustellen, dass es von einem bestimmten Typ ist. Jetzt wird dies wieder ein bisschen fortgeschrittener sein , da Sie gerade sind, wir werden später im Kurs über das Casting sprechen . Aber um kurz zu zeigen wie Sie so etwas machen können, werde ich dieses Skript hier ein bisschen mehr ändern . Versuchen wir so etwas von meinem Hit Actor. Ich werd auch besetzen. Wir machen Beispielabholung. Wir werden besetzen und prüfen, ob das eine Beispielabholung war. Und wenn ja, lasst uns diesen Typ im weltweiten Maßstab skalieren. Wir werden die weltweite Skala unserer Kugelkollision festlegen, die alle anderen Komponenten gebunden sind. Und wir werden unsere Weltskala hier so einstellen, dass sie dreimal so groß ist und das x, y und z. Also wieder einmal, unsere Zeilenverfolgung wird sich bevölkern einen Verweis auf unseren Hit Actor schaffen variabel. Wenn das gültig ist, prüfen wir, ob es sich um einen Beispiel-Pickup-Blueprint handelte. Und wenn ja, werden wir es dreimal so groß skalieren. Lassen Sie mich also einfach das hier drüben minimieren. Springen und spielen, der 0 Taste ringen. Ich will dem nicht zu nahe kommen. Drücken Sie jetzt die Taste 0. Mein Hit-Schauspieler wurde jetzt eingestellt. Trotzdem. Es wurde festgelegt. Lass mich einfach zurückziehen, damit ich es nicht versehentlich überlappe , wenn ich das skaliere. Jetzt drücke ich die Taste F9. Und Wallah, es wird die weltweite Skala davon viel größer sein. Okay, da hast du es, Leute. Es gibt einen sehr praktischen Anwendungsfall einer Laufzeitobjektreferenz. Auch hier gibt es andere Möglichkeiten, dies zu tun, aber eine Zeilenverfolgung ist ein sehr nützlicher Weg, insbesondere innerhalb eines Charakter-Blueprints. Das wird tun, um diesem einen Kerl anzubieten, wir sehen uns im nächsten. 22. Casted Object: Willkommen zurück alle. In diesem Video ist es unser Ziel, zu lernen, wie man auf ein Objekt umwandelt , um einen Verweis auf etwas zu erstellen. Also zuallererst, was ist Casting? Casting ist eine Möglichkeit zu prüfen, ob ein bestimmter Objekttyp eine bestimmte Klasse hat. Jetzt hast du gesehen, wie ich das in meinem BP Beispielabholung hier gemacht habe. Wir haben nachgesehen, was unsere Kollisionssphäre hier überlappt, das ist diese Sphäre genau hier. In diesem Fall haben wir überprüft, ob dieser andere Schauspieler, ob das Ding sich überlappt, ein ThirdPersonCharacter war , den wir ausgaben um zu sehen, ob das der ThirdPersonCharacter war. Wenn es sich um einen bestimmten Klassentyp handelt, ist in diesem Fall der ThirdPersonCharacter. Wir können dieses Objekt dann sofort als Referenz erfassen . Und was noch wichtiger ist, tun Sie Dinge, die für dieses Objekt spezifisch sind. Es kann Funktionen, Variablen oder Komponenten innerhalb unserer spezifischen Klasse geben , die für sie eindeutig sind. Damit meine ich, wenn wir hier einen Verweis auf unseren ThirdPersonCharacter erfassen , können wir, wenn das stimmt, wenn das stimmt, Verweise auf unseren ThirdPersonCharacter erfassen. Das bedeutet ThirdPersonCharacter. Wir können hier mit den Komponenten sprechen. Wir haben irgendwelche Variablen hier drin. Wir können sie irgendwie modifizieren. Wir können einige der Standardvariablen der Klassen hier ändern . Dinge wie Jumping Max Count, was Spaß macht, mit denen man herumspielen kann. Hinweis, Hinweis, Sie können mit diesem Parameter verdoppeln, dreifach springen, alle möglichen Dinge. Beachten Sie also, dass dieses Thema des Castings ein Thema ist, über das wir später in diesem Kurs im Abschnitt Blueprint-Kommunikation viel mehr sprechen über das wir später in diesem Kurs im Abschnitt Blueprint-Kommunikation viel mehr werden. Aber für dieses Video werden wir einfach darüber sprechen, wie man Objektreferenzen erstellt , indem wir auf eine bestimmte Sache werfen. Okay, lassen Sie uns ein paar Beispiele hier in meiner Level-Test-Map zeigen. Zunächst möchte ich überprüfen, ob Sie einen Spielerstartdarsteller hier in Ihrem Level haben . Und wenn nicht, können Sie hier unter Ihren kleinen Button kommen , um schnell zu Ihrem Projekt hinzuzufügen. Und in der Kategorie „Alle Klassen“ findest du hier einen Spieler-Start-Schauspieler , den Typ genau dort, davon per Drag & Drop. Stellen Sie sicher, dass Sie einen von denen in Ihrem Level haben. Und wenn Sie dann gleich hierher kommen, haben Sie diese drei kleinen Punkte, um Ihren Spielmodus in den Platzeinstellungen zu ändern. Hier können Sie ändern, um den ausgewählten Ansichtsport oder ein neues Editor-Fenster abzuspielen . Übrigens möchte ich Ihre Aufmerksamkeit derzeit auf diesen Spawn-Spieler lenken, wir haben dies angekreuzt, das bedeutet, dass ein Spielercharakter bei unserem Standardspielerstart hervorgebracht wird, dass ist an diesem Schauspielerstandort genau hier. Ich könnte das ändern, dies in den aktuellen Kamerastandort ändern. Wo auch immer ich im Level bin, wenn ich auf Play klicke, könnte ich von diesem Ort aus spawnen , den ich gerade betrachte. Wir möchten jedoch, dass dieses Set für die Zwecke dieses Videos den Standardspieler startet. In Ordnung, damit werden wir ein Skript erstellen, um eine Charakterreferenz in unserem Level Blueprint zu erfassen . Sie können also noch einmal auf Ihren Level-Blueprint zugreifen, der hierher kommt und Ihre Level Blueprints öffnet. Boom. Jetzt möchte ich etwas aus Event Begin Play machen. Jetzt, früher in diesem Kurs, habe ich ein zweites Ereignisdiagramm erstellt und es Knotentypen genannt. Und ich habe erwähnt, dass wir pro Level Blueprints nur ein Event beginnen können. Also werde ich es einfach hier löschen und all diese Arbeit in unserem Basisereignisdiagramm hier machen , unserem Standard-Ereignisdiagramm, das derzeit leer ist. Also hier gehe ich dann mit der rechten Maustaste und tippe start, play. Ereignis B bei Thrombozyten. Mach weiter und füge das hinzu. Und dann klicke ich mit der rechten Maustaste. Und in einem leeren Raum tippe ich den Git-Spieler-Charakter ein. Dies ist eine wirklich praktische Funktion , die einfach den Charakter zurückgibt, den Sie, ein Einzelspieler spielen, da in diesem Fall der Spielerindex 0 ist. Wir haben nur einen Einzelspieler, also werden wir das sein. Abseits davon. Wir können Cast to ThirdPersonCharacter ziehen und eingeben. Wenn du hier mit einer Ego-Charaktervorlage spielst , kannst du auf einen Ego-Figur umwandeln. Wir werden zu unserem BP einen ThirdPersonCharacter werfen. Also was wir hier machen, ist, dass wir unseren Spielercharakter bekommen und dann prüfen, hey, ist dies ein ThirdPersonCharacter du kontrollierst oder ist das ein anderer Charakter, der Sie hatten in Ihren Projekteinstellungen zugewiesen? Und wieder können auf unsere Projekteinstellungen hier, Projekteinstellungen und über Karten und Modi zugegriffen werden . In unserem ausgewählten Spielmodus sehen wir unsere Standard-Pawn-Klasse. Derzeit sind wir standardmäßig auf eine Third-Person-Charakterklasse eingestellt , wenn wir dieses Spiel spielen. Aber das ist eine Art, einfach zu überprüfen, hey, spielen wir tatsächlich als Third-Person-Charakter? Nun, hier kommt das Ding wirklich ins Spiel, wo wir einen Cast verwenden, um eine Objektreferenz direkt hier als Third-Person-Charakter zu erstellen eine Objektreferenz direkt hier . Wir klicken mit der rechten Maustaste darauf. Wir werden dies auf eine Variable befördern. Sobald wir dies tun, wird es zwei Drähte an diese zentrale Variable anschließen . In unserem Variablenbereich hat es also eine neue Zeichenvariable für dritte Person erstellt , die ein Typ ist, der ihr gegeben wurde. Der Name. Wir können das ändern. Ich werde das einfach ändern, um Character Rough zu sein. Und dann klicke ich mit der rechten Maustaste auf diesen Knoten und hinterlasse Knoten einen Kommentar und nenne diesen einfach als Promoted. So haben wir diese Variable erstellt. Wir haben es von unserem Spielbeginn hier gefördert. Wir werden einen Verweis auf unseren ThirdPersonCharacter erfassen . Toll süß. Das heißt, wir können dann etwas damit anfangen. Und es ist großartig, solche Dinge zu tun. Oft beginnt das Spiel außerhalb eines Ereignisses, denn sobald Sie es auf einen bestimmten Schauspieler verweisen , geben Sie ein bestimmtes Objekt ein, dann können Sie loslegen. Sie können beliebig beeinflussen , wie Sie möchten. Also erstelle ich hier unten ein Skript, um dann unsere Charakterreferenz zu beeinflussen. Klicken wir mit der rechten Maustaste in einen leeren Bereich. Und ich gebe einfach eine Reihe von Schlüsseln ein. Lassen Sie uns das eine Ereignis eintippen Shelley. Und davon ziehe ich unsere Charakterreferenz ein. Es wird sagen, willst du es bekommen oder einstellen? Ich möchte einen Hinweis auf unseren Spielercharakter bekommen und dies anbieten. Ich tippe meine alte Set-Welt ein, skaliere 3D. Was wollen wir jetzt hier in 3D setzen? Lasst uns unser Netz setzen. Und wenn wir in unseren ThirdPersonCharacter Blueprint gehen, haben wir mit diesem Kerl hier mit den ausgewählten Komponenten gesprochen . Unser Charakternetz oder Person, unsere Schaufensterpuppe, wenn du willst. Mannequin Frau, wenn du willst. In Ordnung. Wenn wir also den Wackelpunkt drücken, legen wir unsere Weltskala fest und lassen sie nicht auf 0, denn dann wirst du verschwinden. Lass uns 0.5.5.5 gehen. Und lassen Sie uns das zusammenstellen , um sicherzustellen, dass unsere Skripte gut aussehen. Lasst es uns retten. Lassen Sie uns dann unsere Debug-Option hier auf unsere Test-Maps setzen , so dass dies die Skripte sind, die wir abfeuern sehen werden. Lass uns weitermachen und spielen. Lassen Sie mich tatsächlich sicherstellen , dass ich das auf ein neues Editorfenster eingestellt habe. Gehe zurück zu meinem Level Blueprint. Jetzt haben wir bereits diese Charakterreferenz erstellt , die wir angefangen haben, gespielt zu haben. Aber wenn ich jetzt die eine Taste drücke, werden Sie sehen, dass dieses Skript tatsächlich abgefeuert ist. Ich habe diese Charakterreferenz von Event Begin Play erfasst von Event Begin Play und drücke die eine Taste, die meine Skala auf 0,5 eingestellt hat. Jetzt siehst du, dass ich auf den einen Schlüssel hämmere. Jetzt wird es nicht weiter auf die halbe Größe, die Hälfte der Größe und die halbe Größe eingestellt werden. Ich habe es gerade gesagt, setze es genau dort auf die Hälfte seiner üblichen Größe. Das ist also ein Beispiel für Casting auf unseren ThirdPersonCharacter Erstellen einer Objektreferenz. Okay, versuchen wir hier ein anderes Beispiel. Diesmal wird kein Spielercharakter, ein Dritter- oder Ego-Charakter verwendet . Ich komme hier unter meinen Button, um Inhalte zu erhalten. Ich füge eine Kugel hinzu. Lasst uns weitermachen und unserem Level eine Kugel hinzufügen. Ich hebe es in die Luft. Und dann setze ich ein paar Parameter ein, einen auf meiner Kugel hier und dann einen auf diesem Bodengitter. Zuallererst benenne ich meine Sphäre hier um , indem ich einfach darauf klicke und F2 drücke. Und ich nenne das meinen Physikball. Das wird helfen, es ein wenig auszugleichen. Dies ist ein statischer Mesh-Akteur. Und dann unten im Detailbedienfeld möchte ich ein Kästchen namens Simulate Physik ankreuzen. Und unter diesem Physik-Bereich ist es, Physik zu simulieren. Was das jetzt tun wird, sobald ich das Spiel spiele, wird dieser Ball auf den Boden fallen. Lass uns weitermachen und hier spielen klicken. Und du siehst, whoops ich möchte gehen, tatsächlich muss ich das Spiel nicht spielen. Ich stelle das kurz ein, um es zu simulieren. Und in dem Moment, in dem ich werden Sie sehen, dass die Ausbuchtung auf den Boden fällt. Simulation läuft also das Spiel, spielt nicht das Spiel, aber dort haben Sie die Ergebnisse gesehen. Was passiert, wenn du das Spiel ohne Spiel spielst? Das war Simulationsmodus. Jetzt steckt es im Simulationsmodus fest. Ich gehe zurück zum neuen Editor-Fenster. In der Nähe hast du gesehen, wie der Ball wieder fallen ließ, shift und F1 gibt mir meinen Mauszeiger zurück. Lass mich da raus. Okay, also haben wir unseren Ball eingestellt Physik zu simulieren , die wichtig ist. Als Nächstes wählen Sie hier Ihr Bodennetz aus. Und was ich hier machen möchte, ist, dass ich nach etwas suchen möchte , das man simulieren generiert Hitereignisse. Und wenn ich hier unter meinen Kollisionsbereich komme, ist hier ein Kontrollkästchen, das ich nach Simulation suche , generiert und treffe Ereignisse. Dies wird ein simulierter Ball sein, was bedeutet, dass er Physik haben wird. Simulation erzeugt Trefferereignisse für diese Etage bedeutet, dass sie ein Treffereignis für ein simuliertes Objekt, auch bekannt als dieser Physikball, generiert . Daher ist es wichtig, dass dieses Kästchen auf das überprüft wird, was wir tun werden. Als Nächstes greifen wir auf unseren Level Blueprint zu. Ich möchte jedoch sicherstellen, dass wir zuerst unsere Etage hier ausgewählt haben. Stellen Sie also sicher, dass Sie Ihre Etage ausgewählt haben und in Ihrem Level Blueprint. Gehen wir hier nach rechts. Ich klicke mit der rechten Maustaste und etwas leeres Feld. Wir werden ein Ereignis für Floor-Kollision hinzufügen und wir werden bei Schauspieler-Hit-Events teilnehmen. Dann werden wir nachsehen, was der andere Schauspieler war. Sie haben mich geschlagen. Wenn wir also davon abziehen, können wir auch werfen. Werfen wir zu einem statischen Mesh-Akteur. Warum werfen wir einen statischen Mesh-Schauspieler? Nun, wir werfen uns an einen statischen Mesh-Schauspieler weil unser Physikball hier, wenn ich das wähle, die Art von Schauspielern, die dies ist, ein statischer Mesh-Schauspieler ist. Okay, lass uns wieder in unseren Level Blueprint springen. Und nochmals, lassen Sie uns dies zu einer Variablen fördern , indem Sie mit rechten Maustaste auf diesen Pin klicken, um eine Variable zu fördern. Und ich benenne das ist Physikball so um. Der Typ ist ein statischer Netzakteur. Und lassen Sie uns danach auch ein paar Texte ausdrucken. Ich ziehe davon ab. Wir können Strings drucken oder Texte drucken. Ich gehe einfach mit Drucktexten in das Textfeld. Ich werde das ändern , um den Boden zu erreichen. Ich klicke mit der rechten Maustaste darauf und hinterlasse auch einen Knotenkommentar und nenne das als Promoted. Okay, lasst uns hier auch etwas mit einem Schlüssel machen. Ich klicke mit der rechten Maustaste. Bringen wir zwei Schlüssel zu Schlüssel ein. Whoops, das war F2. Ich meine, wir könnten das wirklich aus allem machen. Ich mache einfach die beiden Schlüssel, weil das offensichtlich ist. Und dann wollen wir hier einen Hinweis auf unseren Physikball bekommen. Ziehen wir das also per Drag & Drop in die Grafik. Wir werden es kriegen. Und dann geben Sie weniger einfach eingestelltes Material ein. Wir möchten so ein Material auf die statischen Netzkomponenten setzen . Und wir werden sagen , dass ich Gold eintippen werde , sobald wir die Röhre drücken und unser Material wechseln werden. Du kannst das ändern , was immer du willst. Also werde ich noch einmal sicherstellen, dass meine Debug-Option hier auf Level Testmap eingestellt ist. Gehen Sie weiter und klicken Sie hier in das Spiel. Du löst das Feuer genau oben, da ich hier das Fenster gepackt habe , du kannst sehen, dass ich es perfekt gepackt habe, damit du sehen kannst , wie der Puls durch den Schauspieler fließt. Wir werfen uns an unseren statischen Mitch-Schauspieler. Wir fangen dort unseren Physikball ein, jede Variable, auf die wir einen Verweis erstellen und wir drucken ihn auf den Bildschirm aus, trifft den Boden. Und dort wird es mehrmals ausgedruckt. Sobald ich die beiden Tasten drücke, sollte dies zu massivem Gold werden. Und da gehst du. Du hast einen Physikball , der zu massivem Gold geworden ist. Sie können sehen, dass es diese Treffer-Events wieder registriert, während ich es über den Boden rolle. Weil natürlich, warum sollte es das nicht? Okay, also da hast du es. Sie haben ein paar Instanzen von uns Casting, um eine Objektreferenz zu erstellen. Viel mehr Dinge, die wir hätten in die Figur bringen können. könntest du etwas Nutzen finden. Das wird alles für diesen einen Mann tun, wir sehen uns im nächsten. 23. Widget BP Referenzen: Willkommen zurück alle. Wir beginnen diese Lektion hier im Internet, indem wir einige Beispiele für in diesem Fall im Inventarbildschirm von einer Legend of Zelda, Breite der Wildnis, zeigen. Und auch ich möchte dieses Beispiel des im Spiel HUD von Legend of Zelda im Spiel zeigen , Breite der Wildnis. Wenn Sie also unwirklich etwas wie Gesundheitsmessgeräte oder Mini-Karten oder Nachrichten im Spiel oder im Inventarbildschirm erstellen möchten Gesundheitsmessgeräte oder Mini-Karten oder Nachrichten im Spiel oder im Inventarbildschirm , müssen Sie eine Widget-Blueprints erstellen. Unser Ziel in diesem Video ist es also zu lernen, wie man einen Verweis auf einen Widget-Blueprint erstellt. Wir werden also nicht wirklich darauf eingehen, wie man Widget-Blueprints erstellt. Obwohl wir das tun werden, ist das ein ganz anderer Kurs für sich. Aber wie erstellen Sie nach dem Erstellen eines Widget Blueprint-Assets einen Verweis darauf? Wir, wir werden in diesem Video tun, um eines dieser Assets zu erstellen. Wir werden einfach ein einfaches Gesundheitsmessgerät aufstellen. Es wird nicht funktionsfähig sein. Wir werden es einfach ertragen, mir geholfen hat, ihre Kapuze zu verdienen. Jetzt erstellen wir einen Verweis darauf, damit wir sie in Unreal ein- und ausschalten können sie in Unreal ein- und ausschalten Wir erstellen zunächst einen brandneuen Ordner in unserem Skriptordner Ich klicke mit der rechten Maustaste auf Neuer Ordner. Ich nenne das Widgets. Dann klicke ich mit der rechten Maustaste auf der rechten Seite. Wir werden unter die Benutzeroberfläche kommen. Und wir möchten ein Widget Blueprint-Asset in dem angezeigten Popup-Feld erstellen . Wir werden uns auffordern, ein Routen-Widget auszuwählen. Alles, was wir tun wollen, ist dieses gebräuchlichste auszuwählen, das Benutzer-Widget. Auch dies wird keine Lektion darüber sein, wie Sie jeden Aspekt eines Widget-Blueprints erstellen können. Ich nenne diesen WPP-Unterstrich einfach HUD. Und dann doppelklicken wir darauf, um dieses Widget Blueprint-Asset zu öffnen. Kurz gesagt, was Sie hier tun können, ist, dass Sie verschiedene Elemente ziehen und ablegen können, diese verschiedenen Widgets aus diesem Palettenfenster direkt diese verschiedenen Widgets aus diesem Palettenfenster direkt hier in dieses Ansichtsfenster, um eine Art Bildschirm zu erstellen, eine Haube, ein Menübildschirm, eine Textbenachrichtigung, all das Zeug. Wir werden ein sehr einfaches HUD erstellen, einen Gesundheitsbalken hat. Und wir werden damit beginnen, ein Canvas-Bedienfeld-Widget hinzuzufügen . Unter dem Gaumenfeld suche ich nach einem Canvas-Panel. Canvas-Panel ist im Wesentlichen ein Tack-Board, das das Widget sein wird , auf das wir andere Widgets kleben können. Also werde ich das gleich hier raus ziehen und fallen lassen. Boom, wir sehen diesen grünen Umriss in der Hierarchie. wird eine Auflistung aller Widgets angezeigt, die Sie Hier wird eine Auflistung aller Widgets angezeigt, die Sie Ihrem Widget-Blueprint hinzugefügt haben. Derzeit haben wir dieses Canvas-Panel und geben uns ein riesiges Tech-Board, wenn Sie so uns ein riesiges Tech-Board, wollen, an dem Sie die Dinge festhalten können. Großartig. Als Nächstes fügen wir eine horizontale Box-Komponenten hinzu. Horizontal Box ist einfach ein leeres Feld, das andere Widgets enthalten kann. Ich werde das hier oben links ziehen und ablegen , weil ich möchte, dass mein HUD eine Art Meter in der oberen linken Ecke meines Bildschirms hat. Jetzt ist es derzeit diese Größe, diese vorgegebene Größe. Ich werde dies jedoch in nur einer Sekunde hier anpassen, aber nur um dies zu erweitern, werde ich meine Größe x hier ändern , wobei diese ausgewählt wurde, um etwas zu tun, ich weiß nicht, 400, lass uns 500 gehen, wahrscheinlich ein bisschen lang, so etwas. Auch hier ist dies nur eine leere Box , in der andere Widgets untergebracht werden können. Als Nächstes finde ich ein Text-Widget hier oben unter dem gemeinsamen Abschnitt. Und ich könnte dies auf meine horizontale Box ziehen und ablegen , um dies auf diese Weise darin enthalten zu haben . Oder ich kann es einfach so hier in meinem horizontalen Feld ziehen und ablegen , du kannst diese kleine Einrückung hier sehen , die diese Beziehung zeigt. Derzeit ist dieses Text-Widget also in unserem horizontalen Feld enthalten . Ich ändere die SMS hier. dies im Detailbedienfeld ausgewählt ist, ändere ich diesen Text, der Textblock sagt, in einfach gesund. Ich gebe ihm dort ein paar Plätze, weil ich , falls ja, direkt rechts davon ein Gesundheitsmessgerät hinzufügen werde. Wenn Sie also Enter drücken, wird Boom dies in Gesundheit ändern. Als nächstes möchte ich, dass ein Meter hier direkt nach rechts geht. Sie können dies hinzufügen, indem Sie ein Fortschrittsbalkenwidget hinzufügen. Also werde ich das noch einmal in meine horizontale Box ziehen und ablegen . In dem Moment, in dem ich das mache wird es als diese gräuliche kleine Platte erscheinen, wenn du willst, die überhaupt nicht wie ein Meter aussieht. So können wir dies ändern, wenn dieses Fortschrittsbalkenwidget im Detailbedienfeld ausgewählt wurde, können wir die Größe in eine Füllung ändern. Boom, los geht's. Um dies tatsächlich zu füllen, haben wir diese Füllfarbe und Deckkraft, die derzeit auf Blau eingestellt ist. Sie könnten darauf klicken , um die Farbe zu ändern. Ich werde grün, etwas Grünton. Klar, das ist gut. Aber dieser Prozentsatz hier wird bestimmen, wie Fill das derzeit ist. Es ist 0% gefüllt. Also klicke ich mit der linken Maustaste und ziehe und du kannst sehen, wie das zwischen 01 verlaufen kann. Im Wesentlichen geht dies von einer Skala von 0 zu 1, 0 auf 100%. Und Sie können Ihren Balkenfülltyp wählen, links nach rechts, oben und unten, von rechts nach links. Wie auch immer du es willst, ich lasse den Standardwert dort. Das wird gut für mich funktionieren. Also was das geschaffen hat, kompiliere ich das einfach. Wir werden es retten. Großartig. Wir haben diesen Widget-Blueprint alle erstellt. Als Nächstes werden wir hier ein Skript erstellen , das dieses Widget erstellen wird . Und dann erstellen wir einen Verweis darauf. Wir werden es unserem Ansichtsfenster hinzufügen, was bedeutet, dass es in unserem Spiel angezeigt wird. Und dann fügen wir ein bisschen Skript hinzu , damit wir, sobald wir diesen Verweis auf unser HUD haben, die Sichtbarkeit dieses HUD ein- und ausschalten können. Ich werde dafür den ThirdPersonCharacter Blueprint verwenden . Wenn Sie jetzt etwas wie HUD erstellen, verwenden Sie normalerweise den Charakter-Blueprint nicht , um das HUD ein- oder auszublenden. Da dies jedoch eine Blaupause ist , die wir bis zu diesem Zeitpunkt verwendet haben, verwende ich ihn nur , um zu zeigen wie man einen Verweis auf einen Widget-Blueprint erstellt. Öffnen Sie also Ihren ThirdPersonCharacter Blueprint. Wenn Sie vergessen haben, wo sich das in Ihrem Content-Browser befindet, finden Sie es hier unter Blueprints für Dritte. Sie hier drin Springen Sie hier drin zum Ereignisdiagramm. Und wir wollen etwas außerhalb des Ereignisbeginns machen. Also klicke ich mit der rechten Maustaste auf Tippen, beginne mit dem Spielen und beginne sogar mit der Planung. Boom. Und oft ziehen wir das Kabel heraus und geben Widget erstellen ein . Dies wird derzeit nicht konstruiert sagen, da wir hier kein Widget eingerichtet haben, in dem wir erstellen möchten. Wenn Sie jedoch diese Klasse auswählen, ein kleines Dropdown-Menü dort, finden wir unseren Widget-Blueprint , den wir gerade erstellt haben. Sobald wir dies ausgewählt haben, legen wir das fest. Es wird sagen, okay, das ist der Widget-Blueprint , den Sie erstellen möchten. Großartig. Aber wir haben dies noch nicht zu einer Referenz gespeichert. wir also hier mit der rechten Maustaste auf diesen Rückgabewert. Um dies auf eine Variable zu fördern. Wir machen das. Es wird diese Variable in meinen Blueprints-Bereich erstellen . Es wird vom Typ WB P HUD sein. Und ich nenne das angemessen. Wir BP HUD. Wie ich es zuvor getan habe, klicke ich mit der rechten Maustaste darauf. Und im Knotenkommentarbereich werde ich das einfach als beworben belassen. So haben wir diesen Verweis auf unser Widget-HUD erstellt. Und was wir dann tun werden , ist hier wegzuziehen und zum Ansichtsfenster hinzufügen einzugeben. Im Wesentlichen machen wir hier zu Beginn des Spiels, sobald unser Charakter im Spiel hervorgebracht wird, beginnt dieses Ereignis, das Spiel abfeuert. Wir werden diesen Widget-Blueprint erstellen. Wir werden einen Verweis auf diesen Widget-Blueprint innerhalb dieser Variablen erstellen . Also wird es es hier drinnen festhalten . Dann fügen wir es dem Ansichtsfenster hinzu, was bedeutet, dass es in unserem Spiel erscheinen sollte. Kompilieren wir das, um sicherzustellen , dass unser Skript gut ist und es ist. Und dann spiele ich nur um zu überprüfen, ob wir dieses HUD im Spiel sehen. Und da gehst du. In der oberen linken Ecke des Bildschirms sehen Sie, dass wir unsere nicht funktionierende Health Bar haben . Okay, da wir einen Verweis darauf haben, erstellen wir ein kleines Skript, um das ein- oder auszublenden. Drinnen von hier. Ich klicke mit der rechten Maustaste und etwas leeres Leerzeichen. Ich bringe rein, lass uns die fünf Schlüssel machen - nichts. Und lassen Sie uns einen Verweis auf unseren Widget-Blueprint einbringen, ziehen Sie diesen per Drag & Drop. Wir werden es da runterkriegen. Ich ziehe mich ab und suche nach einer Funktion namens Sichtbarkeit einstellen. Und ich drücke Control C und Control V, um ein Duplikat, eine Kopie davon und dann eine Einfügung davon zu erstellen . Dies wird unser Ziel sein. Wenn wir dies drücken, wollen wir, dass dies versteckt wird. Stellen Sie also fest, dass die Sichtbarkeit hier ausgeblendet wird. Und wenn wir es dann veröffentlichen, werden wir sagen, dass dieses Widget wieder sichtbar ist. Woher wusste ich überhaupt , dass mir diese Funktion zur Verfügung steht? Nun, oft, hier in unserem Widget-Blueprint, wenn Sie sich die verschiedenen Widgets ansehen , die Sie Ihrer Hierarchie hinzugefügt haben, können Sie alle Ihre Eigenschaften in der rechten Hand sehen Panel hier drüben, das Detailbedienfeld. Und einer von ihnen für dieses bestimmte Widget ist die Möglichkeit, es ein- oder auszublenden. Wie Sie gerade sehen können, habe ich diesen Fortschrittsbalken, sichtbar oder nicht sichtbar. Diese ganze Sache kann gezeigt werden oder nicht gezeigt werden. Die Sichtbarkeit davon kann sichtbar oder nicht sichtbar sein. Hier drüben sage ich, Hey WPP, wenn ich die Fünf-Taste drücke, möchte ich dich verstecken. Wenn ich es veröffentliche, möchte ich, dass es noch einmal angezeigt wird, und wir können dies tun, weil wir einen Verweis auf unser Widget Blueprint-Kompilierung erfasst haben . Dies wird überprüft, um sicherzustellen , dass Ihr Skript gut aussieht. Sagen wir das. Ich spiele weiter. Es gibt. Du kannst es sehen. Ich drücke die Fünf-Taste und halte sie gedrückt. Es ist jetzt versteckt. Und wenn ich es veröffentliche, zeigt es sich wieder. Also da haben Leute es. Dies war kein Video darüber wie man wieder einen Widget-Blueprint erstellt, das ist ein ganz anderer Kurs. Aber wie erstellt man einen Verweis auf ein Widget Blueprint-Notizen. Sie können Verweise auf Widget-Blueprints aus Klassen-Blueprints oder einem Level - oder Unterplan-Blueprint erstellen. Verweise auf Widget-Blueprints werden normalerweise zur Laufzeit erstellt, vielleicht außerhalb eines Spiels oder vielleicht außerhalb einer Triggerlautstärke, wenn Sie Dinge wie eine Waffe für irgendeine Art von Abholung überlappen Dinge wie eine Waffe für irgendeine Art von Abholung Benachrichtigung oder AML-Abholbenachrichtigung , so etwas. Das wird alles für dieses Video machen, Leute. Wir sehen uns im nächsten. 24. Tag: Willkommen zurück alle. In diesem Video lernen wir, wie Tags, die zu Akteuren hinzugefügt wurden, verwendet werden können, um Objekte zu finden, Verweise auf Objekte zu erstellen und dann auf diese referenzierten Objekte zu wirken. Also ein Tag, worüber sprechen wir hier? Nun, ein Tag ist im Wesentlichen ein Label oder ein Schlüsselwort , das wir einem bestimmten Akteur einen Mitarbeiter zuweisen. Und wenn ein Schauspieler ein bestimmtes Tag hat, können wir es so beeinflussen , dass wir einen Verweis auf dieses Objekt erstellen können. Wir können eine Funktion darauf aufrufen, alle möglichen coolen Dinge tun. Also werden wir das hier demonstrieren. Bevor wir es tun, wenn du zu Hause mitspielen willst, habe ich drei verschiedene Schauspieler in meinem Level eingerichtet. Die Blueprints Deckenleuchte befindet sich an diesem Standort. Wenn du den Starter-Inhalt hast, habe ich einen von denen hier draußen. Dieser Feuerstrahler befindet sich diesem Speicherort im Starter-Inhaltsordner. Und dann habe ich diesen Zylinder gerade von hier oben gepackt. Boom, ein Zylinder, wenn du zu Hause mitspielen willst. Okay, also werden wir allen drei dieser Akteure ein gemeinsames Tag hinzufügen, das eine Art Schlüsselwort ist . Und ich werde dieses Tag im Detailbedienfeld finden, bei dem mein Zylinder ausgewählt wurde, indem ich nach einem Tag suche. Und ich werde es auf Komponenten-Tags oder Schauspieler-Tags reduzieren . Wir möchten ein Schauspieler-Tag hinzufügen, das mit diesem gesamten Schauspieler verbunden ist. Auch hier können verschiedene Akteure verschiedene Komponenten mit ihnen einrichten. Wir wollen nur einen mit dem Schauspieler insgesamt in Verbindung bringen. also unter Advanced Tags für Schauspieler Klicken Sie also unter Advanced Tags für Schauspieler auf diesen kleinen Plus-Button und wir werden das Tag benennen und ich nenne mein Ding. Und nur um sicherzustellen, dass ich hier keine Rechtschreibfehler habe, markiere ich es, drücke Control C, um es zu kopieren, weil ich auch genau das gleiche Tag hinzufügen werde. Mein Feuerstrahler hier. Also habe ich das Etikett hier unten geknackt , um mein Schauspieler-Tag zu finden. Lasst uns das hinzufügen. Das werden wir hier hinzufügen. Und dann filtern wir auch für meine Blueprint-Deckenleuchte nach dem Worttag. Wir werden das zu unserem Actor Advanced Tag hinzufügen. Und lasst uns diesen Namen auch hier eintragen. Großartig, als nächstes, während wir hier dabei sind, warum nehmen wir dies nicht auch hier drüben in unser BPS ein, unser Beispiel Construction Script, sowie unsere Pickups. Also gehe ich hier in meinen Ordnern dahin, wo sich diese befinden . Bp Beispiel Abholung. Lass uns hier rein gehen. Wenn Sie diesem Blueprint ein Tag hinzufügen möchten, möchten Sie unter Ihre Klasseneinstellungen nach einem Tag suchen. Da ist es, Schauspieler-Tags. Lasst uns auch hier Dinge hinzufügen. Machen Sie weiter und kompilieren Sie, speichern Sie das. Wir können das schließen und dann werden wir das aus dem letzten Video los. Lassen Sie uns auch unsere Konstruktionsskript-Wand direkt hier in den Standardeinstellungen der Unterklasse abrufen , stellen Sie sicher, dass Sie das ausgewählte Tag erhalten haben. Lass uns ein Tag für diesen Kerl hinzufügen. Und da sind wir los. Ich wollte also nur zeigen , wo Sie das in einer Blaupause selbst hinzufügen würden . Es ist wichtig zu beachten, dass ich es hier zum Blueprint selbst hinzufüge. Für diesen speziellen Decken-Blueprint füge ich ihn nur zu dieser Instanz des Objekts innerhalb der Ebene hinzu. Ich habe das nicht wirklich innerhalb der Decken-Blaupause hier in meiner Decke hinzugefügt der Decken-Blaupause hier Blueprint Class Standard. Wenn ich nach einem Tag suche, sehe ich es hier nicht weil ich es nicht zum Blueprint selbst hinzugefügt habe. Nur diese spezielle Instanz des Blueprints in meinem Level. Beginnen wir also damit, einen Verweis auf all diese markierten Schauspieler zu erstellen , dass ich dies innerhalb des Level Blueprint machen werde . also gleich hier runter kommen, Level Blueprints öffnen, haben wir eine Reihe von Skripten , für die ich derzeit alle Ereignisse deaktiviert habe . Ich werde das wahrscheinlich zwischen den Videos aufräumen und einige dieser alten Sachen hier loswerden. Lasst uns in unserem Eventgrafik unter einen leeren Raum kommen. Und ich gehe mit der rechten Maustaste und suche nach der T-Taste, T-Eingaben und Eingaben. Lasst uns unter eine Tastatur kommen. Tastatur-Ereignisse. Wirklich, jedes Tastaturereignis reicht aus. Ich möchte nur mit T gehen , weil T für Tag steht. Es gibt ein Tiki. Und oft ziehen wir das ein Quadrat heraus und wir werden ein Gets alle Akteure mit Tag-Knoten einbringen . Es überrascht also nicht, dass diese Funktion genau das tun wird , was sie sagt. Es wird alle Schauspieler mit einem bestimmten Tag bekommen. Hier ist der Name des Tags, das wir finden möchten. Alles, was mit dem Tag denkt und mit diesem Out-Schauspieler Pin hat diese Art von Waffelsymbol, das uns eine Reihe von Schauspielern geben wird , die dieses Tag haben. Das bedeutet eine Liste von Akteuren, die dieses Tag haben. Klicken wir mit der rechten Maustaste darauf, In Variable bewerben. Und nennen wir das einfach unser Thingy-Array. Sie können sehen, dass es diese Variable hier erstellt hat. Also wenn ich die T-Taste drücke. Wir werden alle Verweise auf Schauspieler speichern , die dieses Ding haben, das Sie in diesem Array markieren. Und dieses Array wird eine Auflistung aller Schauspieler sein , die dieses Tag haben. Okay, das passiert also, wenn wir die T-Taste drücken. Lasst uns dann all diesen Schauspielern etwas antun. Jetzt, da wir einen Hinweis auf all diese Schauspieler haben, was wollen wir damit machen? Nun, ich klicke mit der rechten Maustaste und etwas leeres Leerzeichen. Noch einmal werde ich das Tastaturereignis nach oben einholen. Und ich hielt das für angemessen weil wir diese Akteure in der Z-Koordinate aufsteigen werden . Ich ziehe mein Dingy-Array ein, das kriegen wir. Und dann ziehe ich einen Draht heraus und bringe eine für jede Schleife ein. Auch hier werden wir für jede Loops darüber sprechen , diese Flow Control Nodes später im Kurs. Was Sie im Moment alle wissen müssen, ist, dass für jedes Element in dieser Liste, jedes Element in diesem Array, wir für jedes Element in dieser Liste, für jedes Element in diesem Array, etwas damit tun werden. Und was wir tun wollen, ist, dass wir für jeden Gegenstand hier drin, für jedes Element lokale Offsets hinzufügen möchten. Und wir enden, wir werden es in eine bestimmte Richtung bewegen , in einem Offset dazu. Und wir werden den Delta-Standort ändern. Das heißt, wie sehr wollen wir es von seinem ursprünglichen Standort aus ändern , anstatt wo es das nächste Mal ist, wenn wir die Aufwärtstaste drücken, 50 unwirkliche Einheiten in Z-Richtung. Tiki wird also einen Hinweis auf alle Schauspieler mit diesem Tag bekommen . Der Up-Schlüssel wird sich alle Elemente in diesem Array ansehen , alle Elemente in dieser Liste, die hier gespeichert sind. Und für jeden Gegenstand hier fügen wir hier einen Offset hinzu, der ihn an der Z-Position nach oben verschieben soll. Jetzt kompiliere ich dieses Skript. Alles wird gut aussehen. Wie auch immer ich weiß, lass mich das auch speichern. Wenn ich das irrtümlich spiele, wird es passieren. Ich lasse das zu, aber lasst uns weitermachen und das spielen. Okay, also habe ich das Tag hinzugefügt. Sie sind Zylinder, die Flammen, die Deckenleuchten, die sich kreuzen und die Wand im Hintergrund. Lass mich in F1 wechseln. Also kann ich das minimieren. Ich möchte, dass du dieses Skript auch hier abfeuern siehst. Also schrumpfe ich das ein wenig. Und ich drücke die T-Taste. Also habe ich jetzt einen Hinweis auf all diese Schauspieler, die das Ding tragen, das du kennzeichnest. Jetzt drücke ich die Aufwärtstaste, also die Pfeiltaste nach oben. Und nun, manche Dinge steigen. Aber dieser Zylinder nicht. Und das ist die Ära, von der gesprochen wurde. Lass mich gehen und fliehen. Und die Luft wird zeigen, was hier passiert. Es wird erwähnt haben, dass diese statische Netzkomponente auf beweglich eingestellt werden muss, wenn wir sie verschieben möchten. Statische Netze werden sich also nicht einfach bewegen, ohne dass wir eine ihrer Einstellungen in beweglich ändern. Das ist also leicht zu beheben, indem Sie hier in unser Testniveau zurückkehren und unseren Zylinder auswählen. Genau hier. Es geht um die Mobilitätseinstellung des Zylinders ändert diesen in beweglich. Wenn wir das also noch einmal spielen würden , lassen Sie mich dieses Skript hier ein wenig verkleinern. Hier oben, indem wir die T-Taste drücken, haben wir eine Reihe aller Schauspieler mit einem Tag des Denkens. Und jetzt, sobald ich die Pfeiltaste nach oben drücke, werden alle 50 unwirkliche Einheiten nach oben steigen. Wir werden jedes Mal 50 als Offset hinzufügen , wenn wir die Up-Taste drücken. Denken wir also einfach über alle möglichen Anwendungsfälle Referenzen auf diese Weise mit einem Tag erstellt werden. Nun, vielleicht spawnen Sie einige verschiedene Feinde und Ihr Level im Laufe der Zeit während eines Spiels, sagen wir alle 20 Sekunden. Und so kannst du nie sicher sein wie viele Feinde gleichzeitig in deiner Karte existieren . Sagen Sie nun, Sie möchten alle Feinde in vielleicht einigen Umweltobjekten zerstören . Immer wenn der Spieler Superduper sammelt , zerstöre alle Gegenstände. Wir könnten alle Schauspieler dazu bringen, ein bestimmtes Etikett zu haben, sagen wir, wenn sie diesen Superduper überlappen, alle Gegenstände zerstören und dann zerstören, anpassen. Also alle Arten von guten, nützlichen Anwendungsfällen dafür. Eine weitere Randnotiz, die ich hier geben wollte , bevor ich dieses Video beendet können wir überprüfen, ob ein einzelner Schauspieler ein Tag hat. Wie würden wir das machen? Nun, ich habe meinen Zylinder hier in meinem Level ausgewählt, zurück in meinem Level Blueprint ich mit der rechten Maustaste. Ich werde einen Verweis auf diesen Zylinder erstellen. Und von jeder Referenz hier kann ich einfach nach der Funktion „Schauspieler hat Tag“ suchen. Dann könnte ich das an einen Zweigknoten anschließen , damit ich hier suchen kann , um zu sehen, hey, hat dieser Zylinder das Tag der Sache? Und wenn es stimmt, können wir eines tun. Wenn es falsch ist, könnten wir noch einen machen. Ich wollte das auch hier hinweisen. Alles klar Leute, so können Sie Referenzen mit Tags erstellen. Das wird reichen, um diesen anzubieten. Wir sehen uns im nächsten. 25. Event Beginnen Spielen: Willkommen zurück alle. In diesem Abschnitt des Kurses werden wir die Ereignisse genauer untersuchen. Wir werden einige der am häufigsten verwendeten Ereignisse in Unreal untersuchen , beginnend mit Event, Begin Play. Unser Ziel in diesem Video ist es nun, ein Verständnis dafür zu gewinnen, was das begin at play-Ereignis ist, wo Sie es finden und wie wir es im Irrealen nutzen können. Nun, springe in unsere Leveltestkarte, unseren Level-Blueprint hier. Sie finden das, indem Sie hier Level Blueprint öffnen. Sie können sehen, dass ich vor der Aufnahme dieses Videos ein Drehbuch erstellt habe. Ich werde das alles aus dem Event heraus laufen lassen. Beginne zu spielen. Jetzt sieht es ein bisschen einschüchternd aus, aber ich werde dich durch die verschiedenen Dinge führen, die ich mache und warum ich es tue. Jetzt. Zunächst einmal, wie bekommt man eine Veranstaltung? Fangen Sie an, hier zu spielen? Nun, ein paar Methoden. Sie können mit der rechten Maustaste klicken und einfach „ start play like cell“ eingeben start play like cell So finden Sie es. Alternativ verwende ich gerne die Tastenkombination, die darin besteht, einfach die P-Taste gedrückt zu halten und mit der linken Maustaste zu klicken. Jetzt, Eine lustige Sache, hier zu beachten bevor wir das überhaupt anschließen, ist, dass Sie pro Blaupause nur ein Event starten können . Und es spielt keine Rolle, wie viele Grafiken Sie haben. Wenn Sie sich an einen früheren Zeitpunkt in diesem Kurs erinnern, habe ich ein zweites Diagramm namens Knotentypen erstellt. Wenn ich jetzt zu meinem Knotentyp-Graph übergehe, bin ich gerade in meinem Event Graph, Graph. Und ich halte die P-Taste gedrückt und klicke mit der linken Maustaste. Ich kann es nicht finden. Wenn ich alternativ eine Suchleiste eintippe , indem ich mit der rechten Maustaste klicke und Begin Play“ eintippe und darauf klicke, gehe ich zu meiner Registerkarte Event Graph. Das ist also eine Sache zu beachten. Pro Blaupause kann nur ein Event gespielt werden. Das wirft also die Frage auf, was ist, wenn ich mehrere Dinge außerhalb der Veranstaltung tun möchte? Beginne zu spielen? Brauche ich nur einen langen Skriptstrang , um mehrere Dinge zu verwirklichen? Nun, nein, das tust du nicht. An dieser Stelle ist dieser Sequenzknoten praktisch. Wir werden später im Kurs mehr über den Sequenzknoten sprechen . Aber wissen Sie nur, dass der Sequenzknoten etwas ist, mit dem Sie Ihr Signal im Wesentlichen aufteilen können . Also durch das Einstecken von Ereignis begin play in einen Sequenzknoten. Sie können weitere Ausgangspins hinzufügen und dann eine Sache ausführen, dann eine andere, dann eine andere und eine andere, alles in sequentieller Reihenfolge. Lassen Sie uns also untersuchen, was ich hier machen werde. Off of Event B im Spiel in meinem Level Blueprint. Nun, als Erstes spiele ich ein Klangereignis. Das Spiel beginnen ist eine großartige Veranstaltung, wenn Sie möchten , dass Musik einfach am Anfang Ihres Levels beginnt. Das zweite, was ich hier unten tun werde , ist, meinen Spielercharakter auf meinen ThirdPersonCharacter zu übertragen und dann meinen ThirdPerson-Charakter in dieser Variablen zu speichern , damit wir es können nutze es. Also in unseren ThirdPersonCharacter umwandeln und ihn dann in diese Variable kapseln. Unten sehen Sie, wo wir diese Variable, die wir gerade hier gespeichert haben, tatsächlich verwenden werden . Wir holen uns unsere Charakterreferenz , die wir hier gespeichert haben. Wir werden die Position unserer Schauspieler ermitteln und das dann innerhalb dieser Vektorvariablen festlegen. Etwas, das oft auch außerhalb von event begin play durchgeführt wird, ist etwas, das als Initialisierungsvariablen bezeichnet wird, das heißt, ihm einen Anfangswert zu geben. Zu Beginn dieses Kurses, und wenn ich nur über die verschiedenen Variablenknotentypen spreche , erstelle ich eine Variable einer Vektorvariablen, die Standardwerte von 000 hatte und sie wären 000 wenn ich ihnen keinen anderen Wert gegeben hätte. In diesem Fall initialisiere ich es. Das gibt ihm einen Anfangswert, der auf dem Standort meines Charakters basiert . Also wird es die Position unserer Charaktere darin einspeisen und sie in dieser Vektorvariablen speichern. Das Initialisieren von Variablen erfolgt üblicherweise außerhalb des Startspiels. Und ich werde die Ergebnisse auch auf den Bildschirm drucken , damit wir die Position unserer Zeichenreferenz sehen können die Position unserer Zeichenreferenz sehen , wenn diese eingestellt ist. Drei Dinge, die wir hier außerhalb des Events tun, beginnen zu spielen. Wir werden ein bisschen Musik spielen. Wir werden einen Verweis auf unseren Charakter erstellen. Und dann werden wir unsere Zeichenreferenz verwenden , um diese Vektorvariable zu initialisieren. Los geht's. Sie können also sehen, dass eine Initialisierung unserer Vektorvariablen hier auf dem Bildschirm ausgedruckt wird. Man kann die Musik hören. Und natürlich bezieht sich dieser Charakter darauf, wie gesagt. Das ist überhaupt nicht sehr visuell, aber das wird außerhalb der Veranstaltung beginnen zu spielen. Lassen Sie uns als Nächstes darüber sprechen, wo Sie Event Begin Play finden können und wo nicht. Wie Sie sehen können, ist es hier in meinem Level Blueprint. Was ist mit meinem Sub Level Blueprint der dort auch nicht verfügbar ist? Ja, das ist es. Und ich klicke gleich hier, um den Level Blueprint der Unterebene zu öffnen . Und ich habe vor diesem Video einige Skripte erstellt , in denen ich drei Sekunden verzögern und dann einen Explosionston abspielen werde drei Sekunden verzögern und dann einen Explosionston abspielen . Ich werde debuggen, damit wir sehen können, wie es losgeht. Aber Sie werden feststellen, dass, wenn ich einmal gespielt habe , drei Sekunden warte und nichts zu passieren scheint. Der Grund dafür ist, dass ich diesen Blueprint auf Subnetzebene nicht lade. Und was ich damit meine. Wenn ich zur Registerkarte „Levels“ zurückkehre, muss ich mit der rechten Maustaste auf die Unterebene die Streaming-Methode von Blueprints auf Immer geladen ändern . Und jetzt, wenn ich zurück in meine Unterebene gehe, kann ich auf Spielen klicken. Sie sehen, dass dieses Ereignis den verzögerten Countdown auslöst, und das wird Event Begin spielen lassen, das Zeug zu spielen, das danach kommt. Daher ist es sowohl in einer niedrigen Blaupause als auch in einer Unterebene verfügbar . Das Event begin play finden Sie auch in Blaupausen der Schauspielerklasse wie unserem Beispiel-Pickup hier. Ich habe das wieder hinzugefügt, bevor ich dieses Video gedreht habe. Sie finden es auch in Bauplänen für Third-Person-Charaktere. Sie können sehen, dass wir es hier verwenden, um unser HUD zu erstellen und es auf dem Bildschirm anzuzeigen. Sie werden dies jedoch nicht in unseren Widget-Blueprints finden. Hier ist unser Gesundheitsmesser, der Widget-Blueprint. Und wenn ich zur Registerkarte Grafik gehe und mit der rechten Maustaste klicke und ein leeres Feld eintippe und mit dem Spielen beginne. Du wirst es nicht finden. Event Construct ist im Wesentlichen das Event Begin Play, wenn Sie so wollen, innerhalb eines Widget-Blueprints finden Sie es auch nicht in einem Spielinstanz-Blueprint, sondern in so ziemlich jedem andere Blueprint-Klassen finden Sie Event Begin Play. Und schließlich wurde noch eine sehr wichtige Sache, die über Event Begin erwähnt werden sollte, gespielt, bevor wir dieses Video abschließen. Es stimmt zwar, dass dieses Ereignis zu Beginn des Spiels ausgelöst wird, aber Beginn des Spiels ausgelöst wird, was tun wir für verschiedene Schauspieler, die an anderen Stellen während des Spiels auftauchen? Wann beginnt Event Begin Play für sie? Nun, das Event begann für diese Blaupausen zu spielen. In dem Moment, in dem diese Dinge Spaß machen. Und nur um das zu zeigen, werde ich hier ein bisschen nach unten in meiner Level-Testmap scrollen bisschen nach unten in meiner Level-Testmap und ein bisschen mehr Skript von Event Begin Play eingerichtet , wo ich spawnen werde eine Blaupause, Deckenleuchte, die nach drei Sekunden MI Sterninhalt gefunden wurde . Lassen Sie mich das hier ein bisschen näher erläutern. Sie können also sehen, dass es ein bisschen besser ist. Nach drei Sekunden in unserer niedrigen Blaupause werden wir diese Blaupausen-Deckenleuchte bei einer bestimmten Transformation spawnen Blaupausen-Deckenleuchte bei , ohne dass wir sie mit einem Transformator versorgen müssen. Das wird scheitern. Lass mich hier reingehen und ich füge alle Klassen hinzu, auf die ich hier geklickt habe. Alle Klassen finden eine Notiz. Finden wir einen Notendarsteller um uns einen Platz im Raum zu geben, auf den wir uns beziehen können. Ich werde es heben, so in die Luft heben. das ausgewählt ist, gehe ich zurück zu meinem Level-Blueprint, halte die R-Taste gedrückt und klicke mit der linken Maustaste auf „Da ist mein Notenaktor“. Ich werde dafür sorgen, dass sich die Schauspieler verwandeln. Wir werden diese Deckenleuchte spawnen. Was ich vor diesem Video in meiner Blaupause, Deckenleuchte und noch einmal gemacht habe , konnte in meinen Blaupausen mit Sterneninhalten gefunden werden. Mit dieser Deckenleuchte hier habe ich dieses Drehbuch erstellt, in dem ich anfange zu spielen. Wir verzögern weitere drei Sekunden. Ich stelle den Dämpfungsradius für meine Punktlichter ein. So weit kann sich ein Bereichs- oder Punktlicht im Wesentlichen auswirken. Wir werden auch seine helle Farbe auf diese rosafarbene Farbe einstellen . Dieses Event beginnt zu spielen sobald es in unserem Level erscheint. Und wieder spawne ich in unserem Level hier in meiner Level-Testkarte außerhalb des Eventbeginns zu spielen. Lassen Sie uns diese Einstellung in diesem See debuggen. Also haben wir versucht, das so zu verdeutlichen. Okay, kompiliere das, stell sicher, dass unser Skript in Ordnung ist. Und hier drin gehen wir nach rechts. Nach drei Sekunden. Das Licht geht tatsächlich auf. Also wieder einmal, hier in meinen Blaupausen, Deckenleuchte, begann dieses Ereignis abgefeuert zu werden, sobald dieser Schauspieler in das Level spawnte. Um zu überprüfen, ob das Spiel beginnt, eignet es sich hervorragend, um das Drehbuch zu Beginn des Spiels auszuführen. In diesem Fall eignet sich das Abspielen von Musik hervorragend zum Erstellen von Objektreferenzen. In diesem Fall eignet sich das Erstellen unserer ThirdPersonCharacter-Referenz hervorragend zum Initialisieren von Variablen. In diesem Fall verwende ich es, um unsere Vektorvariable hier zu initialisieren. Es ist auch gut, um Schauspieler nach einer bestimmten Zeit zu spawnen . Viele Dinge, die Sie außerhalb der Veranstaltung tun können. Beginne zu spielen. Nun Leute, das wird es oft machen. In diesem Video sehen wir uns im nächsten. 26. Event: Willkommen zurück alle. In diesem Video wollen wir verstehen, was Event tick ist, wo wir es finden und wie es verwendet werden kann. Da es sich um ein Ereignis handelt , das bei jedem Frame ausgelöst wird, müssen Sie dieses Ereignis vorsichtig einsetzen , da Sie sonst Leistung Ihres Spiels vollständig zerstören. Das heißt, Ihre Bildrate kann in großem Maße darunter leiden. Verwenden Sie dieses Ereignis also mit Vorsicht. Ereignisse Es kann also in fast jedem Blueprint innerhalb von Unreal gefunden werden , der Level-Blueprints, Unterebenen-Blueprints und die meisten Klassen-Blueprints enthält . Eine Ausnahme davon, aber ich weiß es mit Sicherheit, ist die Blaupause der Spielinstanz. Wir werden später im Kurs mehr über diesen wichtigen Blaupausentyp sprechen . Ich werde einfach mit der rechten Maustaste auf eine leere Stelle klicken. Ich werde eine neue Blueprint-Klasse des Schauspielertyps erstellen . Ich könnte eines davon wählen. Ich wähle den Schauspieler. Ich werde es als Standardnamen belassen und einfach darauf doppelklicken, um es zu öffnen. Und Sie können sehen, wenn wir zum Ereignisdiagramm übergehen, dass dieses Ereignis-Tick eines der Standardereignisse ist, das Ihnen sofort zur Verfügung steht. Wenn Sie das jetzt löschen würden, lassen Sie mich das tun. Ich könnte mit der rechten Maustaste klicken und Tick eingeben, und ich kann es dort wieder hinzufügen. Jetzt können Sie nur noch einen dieser Absätze haben. Also, wenn ich mit der rechten Maustaste klicken und Tick erneut eingeben würde, wird es einfach so sein wie yep, da ist es. Es wird dich direkt zur Sache bringen. Jetzt werde ich diesen Blueprint hier löschen und zu meinem Level-Blueprint springen , um einige Dinge mit Event-Ticks zu tun. Öffnen Sie also Level Blueprint. Da ist mein Event-Tick. Beachten Sie auch , dass Sie nur einen Ereignis-Tick pro Blueprint haben können , nicht pro Diagramm. Das ist mein Level Blueprint. In, in meinem Level Blueprint, habe ich derzeit zwei Graphen, meinen Event Graph Graph und meinen bekannten Typen Graph , den ich erstellt habe. Ich habe mein Video erstellt, in dem ich über die verschiedenen Knotentypen in Unreal sprach . Also, wenn ich in meinem Event Graph war, klicken Sie mit der rechten Maustaste und geben Sie das Wort tick ein und klicken Sie darauf. Es wird mich rüber zu meiner Knotentypen-Diagrammmahlzeit springen. Ja, da ist dein Event-Tick. Da ist es. Jetzt tickt das Ereignis, wie wir bereits sagten, es löst jeden Frame aus. Beachten Sie jetzt, dass Sie Ihre Bildrate in den Level-Editoren anzeigen können . Wir werden das jetzt tun, bevor wir hier weiter über Ereignisse sprechen, Sie zu Ihrem Level-Editor zurück. Und hier haben Sie dieses dreizeilige Hamburger-Symbol Wenn Sie so wollen, klicken Sie mit der linken Maustaste darauf. Genau hier, zeige Bilder pro Sekunde Control Shift und h, dadurch wird deine Bildrate auf dem Bildschirm ausgegeben , der 120 Bilder pro Sekunde beträgt, auf dem ich sie gerade ausführe. Das sind 8,33 Millisekunden. In Ordnung, also etwas anderes, das es wert ist, hier erwähnt zu ist, dass Sie eine feste Bildrate festlegen können. Das ist eine Art Tangente hier, aber es ist auch erwähnenswert. Wenn du in deine Einstellungen und Projekteinstellungen gehst und Frameraten eingibst, fülle ich diese Videos gerne mit allerlei Wissen. Ich könnte eine feste Bildrate gebrauchen. Im Moment ist es auf 30 eingestellt. Es gibt hier keinen Speichern-Button oder so. Und jetzt, wenn ich zurück zu meinem Level-Editor springen würde, zeigen sie, dass ich gerade mit 30 Bildern pro 2,33rd, 33 Millisekunden laufe 30 Bildern pro 2,33rd, , um das rückgängig zu machen, was ich gerade getan habe. Event-Tick wird also bei jedem Frame ausgelöst. Lassen Sie uns etwas mit unseren Veranstaltungen in unserem Level Blueprint anfangen. Also lass es mich einfach hier oben weitermachen. Und ich füge hinzu, wir werden unserem Level einen Feind hinzufügen. Natürlich kein schicker Feind, aber hier in meinem Inhaltsbrowser komme ich unter meinen Mannequins-Ordner, meinen Meshs-Ordner. Du kannst hier alles in deinem Level platzieren. Es wird einen einfachen, dummen, nicht funktionierenden Feind darstellen . Ich werde diesen Quinn einfach per Drag & Drop in mein Level ziehen. Und wenn das ausgewählt ist, werde ich zurück zu meinem Level-Blueprint springen. Ich werde die R-Taste mit einem Linksklick gedrückt halten , um einen Verweis auf unseren einfachen Quinn-Feind dort zu erstellen , wenn Sie so wollen. Und außerhalb des Ereignis-Ticks werde ich davon wegziehen und ich werde eingeben ist gültig. Ich will diese Fragezeichen-Version. Ich werde überprüfen, ob meine eingegebenen Objekte hier, mein Feind, gültig sind. Das heißt, gibt es sie? Und wenn es nicht existiert, bedeutet das, dass es zerstört wurde. Das machen wir einmal. Was machen wir einmal? Nun, wir spielen einen Ton ab anzeigt, dass er weg ist, tschüss. Wir spielen einen 2D-Ton ab, und wir spielen einen VR-bestätigten Ton ab. Nun, wenn wir mit dieser Überprüfung fortfahren , ob er gültig ist oder nicht. Wir brauchen Mittel, um diesen Schauspieler zu vernichten. Wir müssen es vernichten, damit es dann überprüft wird, ob es nicht gültig ist. Denken Sie daran, dass dieser Event-Tick jede Sekunde ausgelöst wird. Also klicke ich mit der rechten Maustaste und etwas Platz hier unten und wir machen die vier Tasten. Abgesehen von den vier Tasten ziehe ich unseren Linksklick nach unten, ziehe ich unseren Linksklick nach unten um einen weiteren Verweis auf unseren Quinn simple einzufügen. Und ich ziehe das in die Länge und tippe Destroy Actor ein. Richtig? Die Idee hier ist also , dass jedes Bild, das wir überprüfen werden, um zu sehen ob unser feindliches Quinn-Symbol hier gültig ist oder nicht. Wenn es gültig ist, was bedeutet, dass es existiert, werden wir nichts tun. Wenn es nicht gültig ist, bedeutet das, dass es zerstört ist. Einmal spielen wir diesen Sound und so werden wir den Schauspieler zerstören. Also das evaluiert ist nicht gültig. Okay, lass uns loslegen und spielen. Und Sie können sehen, dass der Ereignis-Tick von jedem Frame ausgelöst wird, aber es geht nicht darüber hinaus, dass dies gültig ist weil er ständig überprüft, ob er gültig ist, ja, er existiert in unserem Level. Sobald ich jedoch die Taste F4 drücke, können wir loslegen. Es wurde zerstört. Und du kannst sehen, wie wir diesen Sound einmal gespielt haben. Das ist also ein absolut legitimes Beispiel für die Verwendung von Event Tick. Eine Sache, auf die ich hier hinweisen möchte, ist, dass Sie die Tick-Rate ändern können. Wenn unser Spiel es jetzt mit 120 Bildern pro Sekunde ausführt, wird der Event-Tick 120 Mal pro Sekunde ausgelöst. Wenn ich jetzt hier oben auf die Schaltfläche für meine Klassenstandardwerte klicke , kann ich das Tick-Intervall ändern. Und wieder heißt es in Sekunden, Häufigkeit in Sekunden welcher Häufigkeit in Sekunden die Tick-Funktion ausgeführt wird. Es muss also nicht jedes Bild abfeuern. Ich kann das alle zwei Sekunden abfeuern, alle drei Sekunden, ich gehe alle fünf Sekunden. Das wird ein etwas extremes Beispiel sein. Aber jetzt, sobald ich meinen Schauspieler zerstört habe, wird er diesen Sound nicht sofort abspielen. Lass uns das mal ausprobieren. Ich klicke auf „Spielen“. Ich drücke die Taste F4, um unseren Schauspieler hier zu zerstören. Und dann spielte es endlich den Sound ab, der danach etwas zurückblieb. Und das liegt daran, dass es nur tickt, es feuert diesen Event-Tick nur alle fünf Sekunden aus. Auf diese Weise können Sie Ihren Event-Tick ändern. Hier ist ein weiterer praktischer Anwendungsfall für Event tick. Etwas dreht sich während eines Spiels, um sich einer anderen Sache zu stellen während eines Spiels, um sich einer anderen Sache , wie diesem Stuhl, weil offensichtlich ein Stuhl das Gesicht des Spielers ständig dreht. Stellen Sie sich nun vor, das wäre eine Sicherheitskamera oder ein Turm, in den der Spieler geschossen wurde, und Sie wollten den Spieler anziehen. Sie könnten das bei jedem Frame tun, bei dem es seine Rotation des Re-Frames ändert. Wenn du jetzt zu Hause mitspielen und sehen willst , wie ich das gemacht habe, habe ich einfach einen statischen Mesh-Stuhl in mein Level gestellt. Sie können feststellen, dass ich die Mobilität für diesen ausgewählten Stuhl im Bereich Details auf einen beweglichen Stuhl geändert habe, wenn sie sich in diesem Verzeichnis befinden ich die Mobilität für diesen ausgewählten Stuhl im Bereich Details auf einen beweglichen Stuhl geändert habe . Und dann ist das in meinem Level Blueprint mein Drehbuch dafür, dass ich das zusammengestellt habe. Sie erhalten einen Bezug zu Ihrem Stuhl indem Sie Ihren Stuhl auswählen, die Alt-Taste gedrückt halten und mit der linken Maustaste klicken. Und was ich hier im Wesentlichen mache , ist, dass ich hasse teilen. Ich möchte, dass du dir diesen Player ansiehst und die Drehung jedes Frames aktualisierst. Jetzt haben wir hier nicht einmal über Deltas-Sekunden gesprochen. Also lass mich, ich werde das zuerst auf den Bildschirm bringen, wir ziehen uns hier raus, gehen String drucken. Delta-Sekunden ist die Zeit zwischen Frames. zu meinem Level-Editor zurückkehren Wenn wir hier zu meinem Level-Editor zurückkehren, laufen wir 120 Bildern pro Sekunde, was 8,33 Millisekunden entspricht. Wenn ich das also spiele, sollte es zeigen, dass die Zeit zwischen den Frames 0,0083 Sekunden beträgt , da wir 120 Bildern pro Sekunde laufen. Eine 120-fache Zahl entspricht einer vollen Sekunde. Da hast du es also. Vielleicht merkst du auch, dass in der oberen rechten meine Frames pro Sekunde nicht angezeigt werden , während ich spiele, obwohl es das im Level-Editor tut, so wie wir unsere Frames pro Sekunde bekommen können Um in unserem Spielfenster zu erscheinen, tippen Sie einfach auf die Tilda-Taste. Das ist die links neben der einen Taste auf den meisten Tastaturen oben links. Das wird, wenn Sie so wollen, unten eine kleine Konsolenleiste aufrufen , wenn ich stat FPS eintippe und die Eingabetaste drücke. Zeigen Sie jetzt Ihre Bildrate oben rechts an. Gut zu wissen. Jetzt können Sie die Ausgabe von Delta-Sekunden in Berechnungen verwenden , die bestimmen, wie stark ein bestimmter Akteur wie eine Plattform jedes Bild bewegen soll. Auf diese Weise können Sie diese Delta-Sekundenausgaben verwenden, um eine Plattform unabhängig von der Bildrate um den gleichen Betrag zu bewegen. Das ist ein bisschen weiter fortgeschritten. Ich werde nicht darauf eingehen, aber ich gebe Ihnen nur eine kurze Einführung, welche Delta-Sekunden für die meisten Zeiten verwendet werden könnten , in denen Sie sie nicht brauchen werden. Und schließlich, ganz am Anfang dieses Videos, habe ich erwähnt, wie vorsichtig man mit authentischem umgehen muss . Denn wenn Sie es nicht gut verwenden, können Sie die Bildraten Ihres Spiels zerstören. Also werde ich demonstrieren, was in meinem BP ThirdPersonCharacter nicht zu tun ist. Sie finden diesen Charakter-Blueprint hier in diesem Verzeichnis in Ihrem Inhaltsbrowser. Hier habe ich ein Drehbuch vorbereitet. Wir sind vom Event-Tick weg. Ich bringe einfach meine Schauspieler dazu, mich zu verwandeln. Dort wird sich dieser ThirdPersonCharacter innerhalb der Welt befinden und rotieren. Ich werde dann ein Feuer mit Blaupauseneffekt erzeugen , das ich genau hier gelegt habe. Dies ist ein Spawn-Schauspieler aus dem Klassenknoten. Und aus diesem Grund habe ich einfach Drogen daraus gemacht und ich hole die Fire-Audiokomponente aus dieser Blaupause heraus. Ich zeichne diese Komponente nur, sobald ich sie in jedem Tick hier, in jedem Frame erzeugt habe. Denn sonst wird das Audio dafür richtig nervig, sehr schnell. Beachten Sie also, dass meine Bildrate zerstört wird, sobald ich auf „ Hier spielen“ klicke . Es wird ziemlich schnell von 120 Bildern pro Sekunde auf 20 sinken. Also los geht's. Schau hier oben rechts nach. Beachten Sie, dass es überall dort, wo sich mein Charakter befindet, in jedem Frame einen Feuereffekt erzeugt. Und Sie können sehen, wie schädlich das für die Bildrate ist. Und noch einmal, wenn ich hier in meinen Klassenstandard gehe und meine Tickrate so einstelle, oh, lass uns, lass uns sie auf alle drei Sekunden einstellen. Das könnte akzeptabel sein. Anstatt also jedes Bild in den Standardeinstellungen meiner Klasse abzufeuern , sage ich, hey, authentisch nur alle drei Sekunden abfeuern. Und auf diese Weise können Sie sehen, dass meine Bildrate zumindest für eine Weile ziemlich konstant bleiben wird , da ich diesen Partikeleffekt nur alle drei Sekunden spawne . Wenn du also Ereignisse verwenden willst tick und du musst wirklich nichts spawnen, etwas drehen oder etwas tun. Jeder Frame fällt unter die Klassenstandardwerte und setzt Ihr Tick-Intervall auf eine bestimmte Zahl. Nun Leute, das wird alles für diesen Event Tick tun . Wir sehen uns im nächsten. 27. Event Input: In diesem Video möchten wir zeigen, wie wir Eingabeereignisse nutzen können. Eines der häufigsten Ereignisse, bei denen Spiele verwendet werden, um ein bisschen Skript auszulösen. Wenn wir jetzt über Eingabeereignisse sprechen, sprechen wir über Dinge wie das Drücken von Tasten auf der Tastatur. Es können Tastendrücke wie die A- oder B-Taste eines herkömmlichen Controllers sein. Oder es könnte so etwas wie das Berühren eines Geräts, eines Mobiltelefons oder eines iPads sein, so etwas. Äh, normalerweise registrieren sich diese Eingabeereignisse einfach. Hast du es gedrückt oder hast du es losgelassen? Eingabeereignisse dürfen nicht mit Zugriffsereignissen verwechselt werden, die in einer Reihe von Werten lesen können , wie z. B. die linken oder rechten Thumbsticks auf einem herkömmlichen Steuerkreuz erkennen können, ob sich Ihr Charakter nur wenig oder wenn du versuchst, mit ihnen zu rennen. Zugriffsereignisse unterscheiden sich also von Eingabeereignissen. In dem Beispiel, das ich Ihnen zeigen werde, werden wir es jetzt so gestalten, dass unser Spielercharakter durch Drücken einer Taste sprintet. Und wenn wir dann diesen Knopf loslassen, kehren wir zu unserer normalen Fortbewegungsgeschwindigkeit zurück. Ich werde unseren ThirdPersonCharacter für dieses Video verwenden . Wenn Sie also zu Hause mitspielen möchten, es sich im Ordner „Content Third-Person-Blueprints“. Dort finden Sie diese Blaupause. Doppelklicken Sie darauf, um es zu öffnen. Und hier können Sie sehen, dass wir bereits einige Eingabeereignisse verwendet haben. Insbesondere verwende ich die Pfeiltaste auf meiner Tastatur, um eine Linienspur in die Welt zu senden. Und hier oben verwende ich die fünf Tasten, um meinen HUD-Widget-Blueprint, den ich zu Beginn des Spiels erstelle , ein - oder auszublenden meinen HUD-Widget-Blueprint, den ich zu Beginn des Spiels erstelle , ein - oder . Wenn ich hier ein bisschen nach links gehe, gibt es einige andere Eingabeereignisse , die standardmäßig hier waren. Wir haben einen Input-Aktionssprung, in Ihren Projekteinstellungen festgelegt ist und ich zeige Ihnen, wie das geht, und nur ein bisschen. Und wir haben auch eine Berührungseingabe. Beide lassen unseren Charakter springen oder aufhören zu springen. Ordnung, ich werde dieses Sprint-Skript direkt rechts neben unseren Spring-Skripten hinzufügen dieses Sprint-Skript direkt . also mit der rechten Maustaste in eine leere Stelle klicke, tippe ich das Wort Tastatur ein, um all unsere verschiedenen Tastaturereignisse zu finden. Und du kannst das an einen beliebigen Schlüssel binden, so wie ich es mit der L-Taste machen werde. Und ich werde auch eine weitere Veranstaltung einberufen. Ich werde mit der rechten Maustaste klicken und etwas Leerraum. Und ich suche nach einem Gamepad, Face Button, unten. Wie Sie wissen, die PlayStation- und Xbox-Controller sind die PlayStation- und Xbox-Controller ziemlich identisch. Unterseite des Gamepad-Face-Buttons entspricht also der x-Taste auf dem PlayStation-Controller, oder ich glaube, es ist die A-Taste auf dem Xbox-Controller. Sie kennen die Diamantkonfiguration auf der rechten Seite. Deshalb nannten sie sie eher agnostisch, um nicht den einen oder anderen Controller auszurufen . Okay, was wollen wir passieren, wenn wir die L-Taste auf einer Tastatur drücken oder das Gamepad an Ihren Computer anschließen. Nun, wir werden uns hier unsere Charakterbewegungskomponente ansehen, denn wenn wir unsere Charakterbewegungskomponente auswählen, können Sie sehen, dass wir viele verschiedene Eigenschaften haben , die wir ändern können dass, einschließlich unserer maximalen Gehgeschwindigkeit , dieser Parameter genau hier ist. Dies bestimmt, wie schnell sich unser Charakter auf der ganzen Welt bewegt. Also werde ich unseren Charakter-Bewegungs-Controller oder die Charakterbewegungskomponente ziehen , nicht den Controller. Dafür werde ich mich herausziehen und ich werde sagen, dass die maximale Gehgeschwindigkeit eingestellt ist . wird es uns erneut ermöglichen, unsere maximale Gehgeschwindigkeit zu ändern. Und ich drücke Control C und kopiere das Control V, um es einzufügen. So wie. Wenn ich also die L-Taste drücke und die L-Taste loslasse, möchten alle , dass unsere maximale Gehgeschwindigkeit beträgt. Nun, du kannst sehen , dass ich momentan meine maximale Gehgeschwindigkeit auf 500 eingestellt habe . Ich werde sagen, wenn ich es veröffentliche, möchte ich, dass es wieder auf 500 gesetzt wird. Aber wenn ich sprinten will, werde ich das auf etwa dreitausend etwas Verrücktes einstellen . Jetzt habe ich momentan auch meinen Gamepad-Face-Button nicht mehr daran angeschlossen. Aber ich kann, ich kann es so machen, dass ich entweder durch Drücken der L-Taste oder der Gesichtstaste unten auf einem Gamepad der L-Taste oder der Gesichtstaste unten auf einem Gamepad unsere maximale Gehgeschwindigkeit auf dreitausend einstellen kann. Oder wenn ich das Alken loslasse oder Gesichtsknopf loslasse, kann ich unsere maximale Gehgeschwindigkeit wieder auf das einstellen, was sie war. Klicken Sie mit der linken Maustaste, ziehen Sie und tippen Sie auf die C-Taste. Das ist mein Sprint-Skript. Kompilieren Sie dies, um sicherzustellen , dass das Skript gut aussieht. Und dann lassen Sie uns weitermachen und klicken Sie auf Spielen. Und ich werde unsere Debug-Option hier oben als ThirdPersonCharacter festlegen unsere Debug-Option hier oben . Lassen Sie mich das Spielfenster noch einmal reinbringen. Okay, Sie können also sehen, dass wir in F1 die Umschalttaste drücken , um das ein bisschen nach unten zu verschieben. Jetzt können Sie sehen, wie ich die L-Taste drücke, dass das Skript abgefeuert wird. Und wenn ich es dann loslasse, wird es meine maximale Gehgeschwindigkeit wieder einstellen . Also WFISD, um sich zu bewegen, die L-Taste gedrückt zu halten, sich viel schneller zu bewegen und sie loszulassen. Geht viel langsamer. Okay, das ist jetzt nicht ideal. Ich habe zwei separate Eingabeereignisse die im Wesentlichen dasselbe tun. Und sie sind auch nicht sehr beschreibend. Ich habe L, einen Schlüssel und einen Gamepad-Face-Button unten bekommen, im Wesentlichen dasselbe tut . Gibt es eine Möglichkeit, das zu vereinfachen? Und die Antwort lautet: Ja, das können Sie. Was wir tun werden, ist zurück zu unserem Haupt-Level-Editor zu gehen. Und drüben in den Einstellungen, den Projekteinstellungen, kommen wir unter die linke Seite und wählen die Eingabekategorie aus. Und hier können wir unser eigenes Action-Mapping erstellen , Eingabeereignisse. Wir haben Zugriffs-Mappings oder Aktions-Mappings. Es ist sehr wichtig , dass Sie dies unter den Aktions-Mappings tun. Wenn ich jetzt dieses Dreieck hier erweitere, können wir sehen, dass bereits ein Action-Mapping-Eingabeereignis namens jump existiert. Und das ist interessant, denn wenn wir zu unserem Third-Person-Charakter zurückkehren, zu unserem Sprunggriff zurückkehren, haben wir einen Ereignisknoten namens Input Action Jump. Der Grund dafür ist , dass wir in unseren Projekteinstellungen ein Jump-Aktions-Mapping erstellt haben , bei dem es sich um einen Event-Knoten namens jump handelt. Und wenn ich das jetzt erweitere, kann ich sehen, dass zwei Eingaben diese Eingabeaktion erfordern. Eine Leertaste auf deiner Tastatur oder die Gamepad-Gesichtstaste unten. Also werden wir hier ein neues Action-Mapping hinzufügen. Klicken Sie auf diese Plus-Schaltfläche, um ein neues Aktions-Mapping hinzuzufügen. Und wir werden es nennen, wie wir wollen. Ich nenne meine Sprints. Und ich sage, das wird an den L-Schlüssel gebunden sein. Oder klicken Sie auf. Ich kann so viele hinzufügen, wie ich möchte. Ich werde es so machen das Gamepad, Lass uns Face Button machen, richtig? Sicher. Gamepad-Face-Taste, richtig? Wenn Sie entweder die L-Taste oder die Rechte der Gamepad-Gesichtstasten drücken , kann unser Charakter sprinten. Jetzt gibt es hier keinen Speichern-Button oder irgendwas. Mit dieser Erstellung kann ich zu unserem ThirdPersonCharacter Blueprint zurückkehren . Ich kann jetzt mit der rechten Maustaste in eine leere Stelle klicken und das Wort Sprint eingeben. Und es wird unser neues Action-Event finden , das wir gerade ins Leben gerufen haben, Sprint. Um den Node-Input-Aktionssprint zu benennen, kann ich diese beiden Knoten jetzt löschen sie so anschließen. Und wenn ich einspringen und noch einmal spielen würde, bewegen sich W, a, S und D bei gedrückter L-Taste. Und Sie können sehen, dass ich sprinte Willen allmählich loslasse, langsam wieder nach unten. Die nächste sehr wichtige Sache , die bei Eingabeereignissen beachten sollten, ist , dass Sie sie zwar zu einer ganzen Reihe von Blueprint-Typen hinzufügen können , aber nicht alle standardmäßig auslösen. Einige werden es jedoch tun. Wenn Sie Ihrem Level-Blueprint Eingabeereignisse hinzufügen, wird dies wie erwartet ausgeführt. Wenn Sie die Z-Taste drücken, wird diese Saitenebene auf dem Bildschirm ausgegeben. Es ist auch für Charakter- und Pfand-Blaupausen geeignet. Wenn ich also die X-Taste in meinem ThirdPersonCharacter Blueprint drücke , wird das auch ausgedruckt. Es wird es auch für Player-Controller-Blueprints tun. Und jetzt wird das etwas sein, worüber wir später im Kurs mehr sprechen . Aber in meinen Projekteinstellungen hier, unter Maps und Modi Player Controller, ist das der Blaupausen-Typ , von dem ich spreche. Sie können Eingabeereignisse innerhalb des Player-Controller-Blueprints ohne spezielle Einstellungen verwenden. In so etwas wie einem Schauspieler-Klassen-Blueprint wie BP-Beispiel, nehmen Sie hier auf. Wenn ich die C-Taste drücken würde, eine davon in meinem Level, wird das nicht auf dem Bildschirm ausgegeben. Um das zu demonstrieren, lass mich weitermachen und auf Play klicken, hier auf mein Fenster klicken, um das zu aktivieren Ich drücke die Z-Taste. Sie sehen, dass die Textebene oben links angezeigt wird. Wenn ich die X-Taste mehrmals drücke, siehst du, dass Texte ausgedruckt sind. Wenn ich jedoch die C-Taste drücke, die Texte, die hier oben links Pickup sagen sollen , nicht gedruckt. Und das liegt daran, dass Blueprints der Schauspieler-Klasse nicht zum Registrieren von Eingabeereignissen eingerichtet sind . Standardmäßig können Sie dies jedoch innerhalb der Klassenstandardeinstellung dieses Blueprints ändern . Wenn ich also meine Klassenstandardwerte hier auf der rechten Seite auswähle , habe ich eine Kategorie namens input. Und da die automatische Empfangseingabe hier derzeit deaktiviert ist. Wenn ich dies jedoch auf Spieler 0 ändere , weil ich derzeit ein Einzelspieler-Spiel habe. Das macht es so, dass jetzt, wenn ich die C-Taste drücke, das auf dem Bildschirm ausgedruckt wird. Lass uns das versuchen. Wenn ich jetzt die C-Taste drücke, können Sie sehen, dass die Textaufnahme jetzt auf dem Bildschirm ausgedruckt wird. Nun, es ist erwähnenswert , dass ich hier in meinen Klassenstandards dies innerhalb meines Schauspielerklassen-Blueprints ändern musste . Damit die automatische Empfangseingabe Spieler 0 ist. Wenn Sie in etwas wie schauen, sagen Ihre ThirdPersonCharacter Class Standard und Sie gehen zum Eingabebereich. Derzeit heißt es auch, dass die automatische Empfangseingabe ebenfalls deaktiviert ist. Aber wieder einmal, Blaupausen auf Charakter- und Klassenebene und Blaupausen eines Spieler-Controllers. Sie werden diese standardmäßig registrieren, obwohl dies hier ein wenig irreführend ist sagt, dass die automatische Empfangseingabe deaktiviert ist. Als Nächstes müssen wir darüber sprechen, wie unreal dasselbe Eingabeereignis priorisiert , wenn es in mehreren Blaupausen verwendet wird. Und um dies in meinem Level Blueprint zu demonstrieren, verwende ich die X-Taste, um eine Zeichenfolge zu drucken. Ich verwende jetzt auch den x-Eingang in meinem Third-Person-Charakter. Und ich verwende es auch in meinem BP-Beispiel-Tonabnehmer. Nun, es ist in drei Bereiche unterteilt. Wenn ich also auf Play klicke und die X-Taste drücke, welche wird es priorisieren? Und Sie können sehen, dass mein Schauspieler bei der Klassenplanung genau hier Priorität einräumt , weil ich in meinen Klassenstandardwerten aktiviert habe , dass ich Eingaben von Spieler 0, mir, dem Leihspieler, erhalte . Die Priorisierung läuft also wie folgt ab. Wenn Sie ein Setup wie dieses haben, das nach dem Unterricht dieselbe Eingabe verwendet , werden BPs zuerst priorisiert, gefolgt von Control- oder Player-Controller-Blueprints als Level-Controller-Blueprints und dann Character Controller Blueprints. Was passiert nun, wenn zwei Blaupausen des gleichen Typs Eingaben erhalten? Nun, in diesem Fall würden wir diese höhere Eingabepriorität übernehmen. Um das zu demonstrieren, werde ich nur um es klar zu machen, die X-Taste in meinem ThirdPersonCharacter und innerhalb meiner Testmap aushaken die X-Taste in . Und jetzt habe ich meinen Beispiel-Tonabnehmer an die x-Taste angeschlossen. Und ich verwende hier auch mein BP-Beispiel-Bauskript. Ich werde auch meine X-Taste anschließen , um diese Zeichenfolge auszudrucken. Beachten Sie auch hier innerhalb meiner Klassenstandardwerte. Ich habe unter dem Eingabebereich für Spieler 0 eingerichtet, das heißt, ich soll hier Eingaben erhalten. Derzeit sind beide auf die Eingangspriorität 0 gesetzt. Eingangspriorität 0, da ist sie. Also welches wird es zeigen? Zeigt er diesen Tonabnehmer oder zeigt er das Konstruktionsskript? Nun, wenn ich es in Press X spiele, wird es dem Vorrang geben, zu dem ich diesen x-Eingang hinzugefügt habe. Zuletzt. Wie auch immer? Wenn ich in meinen Beispiel-Pickup gehen und die Priorität auf eine größere Zahl ändern würde, etwas höher als im Konstruktionsskript. Es könnte eins sein, es könnten 100 sein, es könnten fünftausend sein. Klar, lass uns einfach fünftausend gehen. Es sollte jetzt die Abholung ausdrucken , sobald ich die X-Taste drücke. Da haben wir's. Und schließlich wollte ich noch etwas zu Eingabe-Events in Ihren Diagrammen hinzufügen Eingabe-Events in Ihren Diagrammen , dass, wenn Sie diesen Knoten ausgewählt haben, im Bereich Details einige Optionen gibt, im Bereich Details einige Optionen gibt mit denen Sie herumspielen können. diese Weise können Sie die Eingabetaste schnell hier ändern. Sie können auch einen Modifikator hinzufügen. Anstatt in diesem Fall die X-Taste zu drücken, könnten Sie gezwungen sein, die Alt- und X-Tasten gleichzeitig zu drücken X-Tasten gleichzeitig um etwas zu bewirken. Aber die, über die ich wirklich sprechen wollte und die ich durch Ausprobieren gelernt habe , war diese Ausführung beim Pausieren von Optionen. vielen Spielen haben Sie es so eingerichtet, dass Sie das Spiel anhalten können, wenn Sie eine bestimmte Taste drücken . Und wenn Sie die Pause fortsetzen möchten, drücken Sie dieselbe Taste. Wir werden uns dieses Setup ansehen. Ich muss hier los. Ich habe es gerade so eingerichtet, dass ich das Spiel pausiere, wenn ich die X-Taste drücke . Und dann, als ich die X-Taste losließ, sollte ich sie und das Spiel unterbrechen, aber schau dir an, was hier passiert. Ich gehe weiter und klicke auf „Spielen“. Du kannst diesen sich drehenden Gesundheits-Pickup hier sehen , der wirklich zeigt, dass das Spiel angehalten wurde oder nicht. Ich drücke die X-Taste und alles wird angehalten. Ich habe die X-Taste losgelassen und alles bleibt pausieren. Und der Grund dafür ist, dass ich nicht zulasse , dass dieses Ereignis weiterhin ausgeführt wird, wenn das Spiel angehalten wird Das ist derzeit auf false gesetzt. Wenn ich also sicherstellen möchte, dass dies auch während der Pause des Spiels weiterhin ausgeführt wird, werde ich dieses Kästchen ankreuzen. Und wenn ich jetzt die X-Taste drücke, wird das Spiel angehalten. Wenn ich jedoch die X-Taste losließ, wird das Spiel angehalten, da dies auch bei einer Pause ausgeführt wird. Los geht's, halte x gedrückt, es pausiert es und jetzt werde ich ECS veröffentlichen. Und es hat auch das Drücken oder in diesem Fall das Loslassen der X-Taste ausgelöst . Da hast du es also Leute, die alles für diesen über Eingabeereignisse tun werden, wir sehen uns im nächsten. 28. Event: Willkommen zurück alle. In diesem Video wollen wir lernen, welche Zugriffsereignisse unwirklich sind, wie wir sie erstellen wie wir sie nutzen können. In Wirklichkeit enthält unser Charakter-Blueprint bereits einige Zugriffsereignisse und funktioniert. Schauen wir uns die an. Zuerst finden Sie Ihren BP ThirdPerson-Charakter, wenn Sie in den Blueprints-Ordner für Inhalte gelangen. Doppelklicken Sie darauf, um es zu öffnen. Und hier haben wir aufgehört, unser Sprint-Input-Event zu erstellen, diese Action-Input-Events. Und dies hatte bereits ein übersprungenes Input-Action-Event , das die guten Leute Epic Games bereits mit aufgenommen hatten. Jetzt oben finden Sie einige Achsenereignisse und es steht sogar im Namen. Wir haben ein Eingabeachsen-Event für die Vorwärts- und Rückwärtsbewegung, eines für die Bewegung nach links und rechts. Dies steuert die Bewegung unseres Charakters. Und dann haben wir hier oben einige Achsenereignisse für die Kameraeingabe, eines für das Gamepad und dann eines hier auf dem PC für Sie, ein Mausvolk. Und dies bestimmt die Bewegung unserer Kamera nach links und rechts sowie auf und ab, während wir sie überall bewegen. Woher kamen diese Achsenereignisse überhaupt? Nun, wenn Sie sich an unser letztes Video in unseren Projekteinstellungen erinnern , können wir nicht nur Eingabeaktionsereignisse, sondern auch diese Eingabeachsenereignisse erstellen nicht nur Eingabeaktionsereignisse, . Also komme ich unter meinen Bearbeiten-Button ganz oben links im Editor. diese Weise können Sie auf die Projekteinstellungen zugreifen. In Ihren Projekteinstellungen finden die Eingabeoption ganz links. Und wie Sie sehen können, haben wir Action-Mappings, mit denen wir uns im letzten Video befasst haben. Und hier haben wir Zugriffszuordnungen alle Namen für die verschiedenen Achsenereignisse , die derzeit in unserem Editor existieren. Wenn ich jetzt eines unserer Achsenereignisse hier erweitere, kann ich sehen, dass ich nicht nur Tastaturtasten an ein bestimmtes benanntes Zugriffsereignis binden kann . Ich kann auch einige Controller-Eingänge kaufen , die den Eingabeaktions-Mappings ähneln den Eingabeaktions-Mappings , die wir im letzten Video hatten, wie unser Sprung und unser Sprint. Jetzt werden wir etwas später hier darüber sprechen, was diese Skalenwerte bedeuten. Aber bevor wir dazu kommen, definieren wir, was ein Achsenereignis auch in ist, wie unterscheidet sich dieses von einem Eingabeereignis, einem dieser Action-Eingabeereignisse, nun, der Hauptunterschied ist Zugriff Ereignisse sind Ereignisse, die kontinuierlich ausgelöst werden, dh einmal pro Frame, um diesen Punkt wirklich nach Hause zu bringen Lassen Sie uns zu unserem Third-Person-Charakter-Blueprint übergehen. Und wenn ich hier nur ein bisschen herauszoome und auf Play klicke, kannst du sehen, dass meine verschiedenen Zugriffsereignisse ohne Unterbrechung ausgelöst werden. Und das muss es, denn wenn es unsere Charakterbewegung per se handhaben soll, muss es unsere Bewegung jedes einzelne Bild vor und zurück, links und rechts sowie die Kamera aktualisieren jedes einzelne Bild vor und zurück, . bewegung nach rechts. Eine weitere definierende Eigenschaft von Zugriffsereignissen ist, dass sie in Achsenwerten ausgeben können, und dies hängt damit zusammen. Wenn ich zu unseren Projekteinstellungen zurückkehre, diese Skalenwerte auf der rechten Seite der verschiedenen Eingaben angezeigt . Für w haben wir eine Skala von eins und für S eine negative Skala. Um diese nun im Spiel zu sehen, möchte ich zurück zu meinem BP ThirdPersonCharacter springen. Und ich werde dieses Skript hier nur geringfügig modifizieren . Ich klicke mit der rechten Maustaste und etwas Leerraum und tippe die Druckzeichenfolge ein. Und ich nehme unsere Eingangsachse, bewege mich vorwärts und rückwärts und leite sie direkt hier durch. Und ich gebe den Achsenwert aus. Es wird diesen Float in einen String umwandeln und auf dem Bildschirm ausgeben. Lass uns weitermachen und das jetzt tun. Und Sie können noch einmal sehen, dass dies jedes Bild auf der linken Seite abfeuert. Sie sehen einen Wert von 0, weil ich weder W noch S herunterdrücke Wenn ich jetzt die W-Taste drücke, um vorwärts zu gehen, schau auf der linken Seite meines Spielfensters nach. Sie sehen, dass sich all diese Werte in einen ändern. Mein Achsenwert ist eins. Wenn ich die Esc-Taste drücke, ändert sich alles in eine negative. Nun, auf einer Tastatur ist alles oder nichts, oder? Es gibt keinen Farbverlauf, wie man es mit einem Analogstick bekommen kann , bei dem man ihn nur ein bisschen anstupsen kann. Auf einer Tastatur. Es ist nur einer. Gib mir das alles in Zukunft, oder das Gegenteil von einem, was negativ ist. Wir verwenden die Werte Eins und negative Eins , um eine Sache zu bedeuten, die vorwärts geht, oder das Gegenteil von der Sache in diesem Fall, die rückwärts geht. Wenn das alles etwas verwirrend ist, können Sie mit der Maus über diesen Skalenwert auf diesem Funktionsknoten fahren, um Bewegungseingaben hinzuzufügen. Und sie können Ihnen sagen, dass es auch für den analogen Eingang verwendet werden kann . Es muss nicht nur eine oder eine negative sein. Diese Maßstabseinstellungen bestimmen nur den Bereich. Und Sie können einen Bereich mit einem Analogstick haben, während Sie dies bei Tastaturereignissen nicht tun können. Derzeit habe ich einen Controller an meinen Computer angeschlossen, um dies zu demonstrieren. Lass mich wieder hier rein springen. Klicke auf Abspielen. Und jetzt benutze ich meinen Xbox-Controller und drücke mit dem linken Thumbstick ganz leicht nach vorne. Und Sie können sehen, dass der Wert 0,08 ist. Und wenn ich es immer weiter vorwärts schiebe, bringt es mich gut, mich einem näher zu bringen. Wenn ich den Thumbstick ganz leicht nach unten ziehe , und dann immer mehr und mehr, bringt es mich näher an meine anderen Grenzen, die negativ sind. Der Analogstick erlaubt mir also, irgendwo zwischen negativ 11 zu gehen . Um diesen Punkt weiter nach Hause zu bringen, habe ich hier eine Grafik für dich. Betrachtet man unsere Figur aus der Vogelperspektive, von oben nach unten. Das ist unser linker Thumbstick. In den Projekteinstellungen unter unseren Zugriffszuordnungen haben wir für unser w einen Skalenwert von eins festgelegt . Das ist so weit wie möglich, das bedeutet, dass Sie so schnell wie möglich vorwärts gehen. Am anderen Ende. Unser S-Schlüssel hat einen Wert, einen Skalenwert von negativ Eins, was das Gegenteil von eins bedeutet, in diesem Fall in umgekehrter Richtung. Nun wieder, auf einer Tastatur, wenn Sie W drücken, gibt es hier kein, kein Dazwischen. Du gehst entweder von 0. Ich bewege mich nicht ganz zu einem, ich gehe vorwärts und auf Hochtouren. Wenn ich auf die S-Taste tippe, bedeutet das, dass ich mit voller Geschwindigkeit rückwärts gehe. Es gibt jedoch kein Dazwischen, aber mit dem linken Thumbstick können Sie es so machen, dass Sie es einfach ein wenig nach vorne schieben und auf halbem Weg zu Ihren Grenzen von eins oder negativ kommen halbem Weg zu Ihren Grenzen von eins oder negativ 0,5 zu Ihren negativen Grenzen , die in die entgegengesetzte Richtung gehen. Beachten Sie hier, dass Ihre Skalenwerte nicht von eins zu negativ verlaufen müssen . Sie könnten einige andere Skalenwerte festlegen, aber oft ist dies der eingestellte Bereich. Okay, als Nächstes erstellen wir ein paar Zugriffsereignisse, die wir nutzen können. Also klicke ich auf diese Plus-Schaltfläche unter Zugriffszuordnungen, stelle sicher, dass du das nicht unter Aktionszuordnungen tust. Lassen Sie mich außerdem meine Bewegung vor und zurück zusammenbrechen. Ich nenne diesen ersten Begleiter. Horizontal bewegen. Und ich setze das auf meine L-Taste. Wir werden einige Keyboard-Events machen, die L, die L-Taste machen. Und die Skala dafür wird noch elf Mal sein. Ich werde das Gegenteil davon als J-Taste festlegen. Und das wird eine negative Skala haben. Dann füge ich hier eine weitere Mapping-Achse hinzu. Das wird Begleiter genannt, bewege dich vertikal. Und wir werden das so einstellen, dass es eklig ist, wenn die Waage auf eins eingestellt ist. Und das Gegenteil davon wird die K-Taste sein und die Skala dafür auf negativ setzen. Nun wollen wir hier eine Komponente zu unserem ThirdPersonCharacter hinzufügen. Und mit diesen Access-Mappings können wir das Objekt bewegen. Es wird eine einfache Sphäre sein. Also Begleiter, horizontal bewegen, Begleiter und vertikal bewegen. Das haben wir in unseren Projekteinstellungen in der Eingabekategorie eingerichtet in der Eingabekategorie Springen wir zurück zu unserem ThirdPersonCharacter. Und das Erste, was wir tun werden, bevor wir uns überhaupt mit den Zugriffsereignissen befassen , die wir gerade erstellt haben. Wir werden Komponenten hinzufügen. Klicken Sie also unter Komponenten, wir fügen eine Komponente hinzu. Wir werden eine einfache Kugelkomponente hinzufügen. , Gehen wir jetzt drüben im Detail-Panel zuerst zum Sichtfenster damit wir diese Kugel sehen können, das ist eine riesige, riesige Kugel. Ich werde zuerst die Waage herunterstellen. Ich möchte einheitlich nach unten setzen. Gehen wir also weiter und klicken Sie auf diese Sperrschaltfläche, damit alle drei Werte geändert werden, wenn ich einen dieser Werte , 2.5, ändere. Das ist es, was das Schlosssymbol bewirkt. Ich werde auch die Position auf 20 in der X-Achse festlegen . Stellen Sie es auch ein bisschen vor unserem Charakter heraus . Jetzt werde ich auch zwei Variablen erstellen , die uns bei unserem Skript helfen , das wir hier schreiben werden. Die erste wird unter Variablen fallen und horizontale Begleitraten bezeichnet werden. Und das wird eine Float-Variable sein weil es ein Dezimalkommawert sein wird. Ich werde mit der rechten Maustaste darauf klicken. Ich werde das duplizieren und das wird Companion heißen. Vertikale Raten, Mips sind dort ein bisschen falsch geschrieben. Und wenn ich kompiliere, kann ich hier einige Standardwerte festlegen. Also setze ich meine horizontalen Zinssätze auf zehn fest. Und ich werde auch dieses Kästchen ankreuzen, zum Beispiel editierbar, das etwas später hier ins Spiel kommen wird. Und ich mache dasselbe für meinen Begleiter Vertical Rate. Ich setze das auch auf zehn. Aktivieren Sie dieses Kontrollkästchen auch, z. B. bearbeitbar. Und lass uns weitermachen und das speichern. Lassen Sie uns als Nächstes ein Skript in unserem Ereignisdiagramm erstellen in unserem Ereignisdiagramm die Achsenereignisse verwenden , die wir gerade erstellt haben. Wenn ich hier ein bisschen nach links gehe, mit der rechten Maustaste klicke und etwas leeren Raum, tippe ein und bewege mich horizontal. Und da ist mein Achsen-Event für Begleiter, horizontal bewegen. Lassen Sie sich jetzt nicht zwischen den Achsenwerten und den Achsenereignissen verwechseln . Wir möchten, dass sich der Begleiter horizontal mit einem kleinen Pfeilsymbol bewegt . Bumm. Jetzt klicke ich mit der rechten Maustaste und wir tippen Bewegung vertikal, vertikal ein. Das kleine Rechtspfeilsymbol zeigt auch in Ereignissen an. Okay, und was wir tun wollen ist, dass wir unsere Sphäre in jedem Frame ein bisschen hierher bewegen wollen. Also mach weiter und ziehe das per Drag & Drop in unser Diagramm. Genau hier und hier unten. Und ich ziehe mich aus unserer Kugel heraus und tippe relative Position hinzufügen ein. Deshalb wollen wir die Position dieser Kugel aktualisieren , jedes einzelne Bild. Ich schließe das sofort an. Die Delta-Lage gibt an, um wie viel wir unseren relativen Standort ändern möchten . Um dies zu tun, ziehe ich den Wert unserer Achsen heraus und suche nach einem Multiplizierknoten. Ich möchte das hier mit unseren unterschiedlichen Raten multiplizieren. Ich hätte hier wirklich nur eine Variable machen können und das nur Begleitpreis nennen können. Aber nur um hier nett zu spielen, werde ich unseren Begleiter und die horizontale Rate direkt dort anschließen . Und dann ziehe ich mich rückwärts von dieser Delta-Position ab und tippe make vector ein. Wir suchen nach einem Make-Vector-Knoten. Dieser Vektorwert sucht nun wieder nach einem X, Y und Z. Wir wollen nur die Position für diese Achsenereignisse ändern. In der Y-Achse werden wir es horizontal bewegen. Also die Y-Achse, die Y-Achse, dieser grüne Pfeil. Das werden also die Drehbücher sein. Und wir werden es hier unten ähnlich machen. Ich werde diese drei Knoten hier kopieren und einfügen, 123 hebt alle drei hervor, Kontrolle C, Kontrolle V. Räumen Sie ein wenig auf. Die Sphäre ist das, was wir tun, um uns zu bewegen. Und wir müssen sicherstellen, dass wir unseren Achsenwert hier drin haben, in unserem Begleiter, in diesem Fall vertikale Rate genau hier. Auch hier hätten wir einfach eine Variable namens Begleitrate erstellen können, da sie den gleichen Wert haben. Aber ich möchte, dass es diese editierbare Instanzfunktion hier in nur ein bisschen zeigt . In Ordnung, wir werden das zusammenstellen. Wir werden das speichern. Wenn wir nun in unseren Projekteinstellungen zurückblicken, können Sie sehen, dass wir, wenn wir die L- und die J-Taste bewegen, diesen Begleiter horizontal bewegen, wenn Sie so wollen. Und wenn wir I oder KCI drücken , bewegen wir es vertikal. Wenn ich also hier zurück in unseren Level-Editor gehe, klicke ich auf Plättchen. Lassen Sie uns das eigentlich von unserem ThirdPersonCharacter abfeuern . Ich will sehen, wie das Drehbuch abgefeuert wird. Also klick hier spielen. Sie können wieder sehen, diese ununterbrochen abgefeuert werden. Ich sollte die Druckzeichenfolge wirklich aushaken . Lassen Sie mich das jetzt tun. Ich werde diesen Druckstring von vorhin aushaken , weil das nur verwirrend sein wird. Okay, ich klicke auf „Abspielen“. Diese Ereignisse feuern ab. Du kannst die kleine Kugel vor mir sehen. Ich mache die Eingabeachse, bewege mich horizontal. Also J, K, L Schlüssel, so. Icky und KCI bewegen es auch horizontal. Und der Grund dafür ist , dass ich den Fehler gemacht habe, einfach beide die y-Position ändern zu lassen. Ich halte die Strg-Taste gedrückt, klicke mit der linken Maustaste und schließe das die z-Position an, und das sollte das Problem beheben. Jetzt. J und L und ich und k. Ja, du kannst es durch den Boden legen. Ein lustiges Feature hier ist , dass wir hier einige Multiplikationen durchführen , um letztendlich die Geschwindigkeit zu bestimmen , mit der wir die Position unserer Kugel ändern. Ich kann zu meinem Leveleditor zurückkehren. Ich ändere meine Ortseinstellungen, indem ich auf diese drei Punkte hier zum ausgewählten Ansichtsfenster klicke. Sobald ich das getan habe, spiele ich das Spiel und wähle das Darstellungsfenster aus. Mein ThirdPersonCharacter , der hier im Level gespawnt ist, taucht jetzt in meinem Outliner auf. Das ist es, was diese gelbliche Farbe darauf hindeutet, dass sie ins Leben gerufen wurde. Und wenn ich das auswähle, kann ich nach einem Begleiter suchen. Und ich kann diese beiden Variablen, die ich dem Editor hier von meinem BP ThirdPersonCharacter zur Verfügung gestellt habe, sehen dem Editor hier von meinem BP ThirdPersonCharacter zur Verfügung gestellt , indem ich das editierbare Kästchen für jede dieser Variablen ankreuze . Das erlaubt mir jetzt, wenn ich die R- oder die J- und L-Taste oder die I- und K-Tasten drücke . Das ist großartig. Aber wenn ich die F12-Verstärkungsregelung verschiebe, kann ich diese Werte jetzt im Editor nach unten ändern, kann ich diese Werte jetzt im Editor nach unten ändern, also ändere ich die horizontale Rate so, dass sie ziemlich langsam und die vertikale Geschwindigkeit ziemlich schnell ist. Dann klicke ich mit der rechten Maustaste zurück, mein Viewport, J und L, es wird langsam aktualisiert, aber auf und ab geht ziemlich schnell. Das ist also nur ein lustiges Feature, von dem ich dachte, ich würde es auch rauswerfen. Sobald ich hier rauskomme, ist es erwähnenswert, dass diese Variablenwerte auf ihre Standardeinstellungen zurückkehren. Das ist nur, um mit verschiedenen Werten im Spiel herumzuspielen . Noch ein paar wichtige Punkte, bevor wir dieses Video abschließen, wie bei den Zuordnungen der Eingabeaktionen , die im letzten Video gefunden wurden, können Sie diese Ereignisse auswählen. Und drüben auf der rechten Seite im Detailbereich können Sie ein paar Dinge über sie ändern, einschließlich Ausführen, wenn Pause, ich fiel, um darüber zu sprechen, Eingabe zu konsumieren, eine, die auch ist verfügbar für die Zuordnungen der Eingabeaktionen mit this, wenn sie auf true gesetzt ist, dann funktioniert diese Eingabe nur für den Blueprint, die höchste Standardpriorität hat, die sie implementiert. In Ordnung? Das finden Sie wieder in den Standardeinstellungen Ihrer Klasse. Denken Sie daran, dass unter Ihrer Eingabe diese Eingabepriorität angegeben wird, sodass die Eingabe verbrauchen nur für diejenige funktioniert , die die höchste Standardpriorität hat. Nun, eine andere Sache, die man hier beachten sollte, das feuert jeden Frame ab, richtig? Sie fragen sich vielleicht, ob ich die Tick-Rate in meinen Klassenstandardwerten ändere , wird sich das auch darauf auswirken? Nein, das wird es nicht. Eine Beeinflussung der Tickrate wirkt sich nur auf dieses Ereignis aus. Tick-Ereignis, es hat keinen Einfluss auf die Geschwindigkeit, mit der dies abläuft. Das wird bei jedem Frame verschwinden, egal ob du das änderst oder nicht. Okay Leute, das wird alles für dieses Video machen, wir sehen uns im nächsten Video. 29. Event Beginnen Sie mit der Überlappung: Hast du jemals ein Spiel gespielt und gefragt, wie ein Zombie genau zur richtigen Zeit herausspringt, wenn dein Charakter in einem Horror-Themenspiel diesen dunklen Flur entlang geht , um dich zu erschrecken? Oder vielleicht spielst du ein Spiel wie Uncharted. Und während Nathan Drake am Rand einer felsigen Klippe entlang schimmert , bricht die felsige Klippe zufällig zusammen, als er an einer prekär aussehenden Gegend vorbeikommt. Das wird in Spielen jetzt über sogenannte Trigger-Volumes gemacht . Und genauer gesagt, wenn Sie anfangen, eine Trigger-Lautstärke zu überlappen, wird Dieses Video soll zeigen, wie wir Trigger-Volumes verwenden können, um ein Actor begin overlap Event zu initiieren. Dies ist eines der häufigsten Ereignisse, die bei allen Spielen ausgelöst werden, und daher ist dies ein wichtiges Ereignis, über das Sie Bescheid wissen sollten. Okay, wir werden hier oben links in unserem Editor anfangen , genau hier unter dem, äh, schnell zum Projekt-Button hinzufügen, wenn du so willst. Wir können Volumen finden, Lautstärke auslösen. Du kannst einen auf diese Weise in dein Level platzieren. Alternativ könnten Sie unter das Feld „Schauspieler platzieren“ gehen , dem Sie Ihrem Level-Editor ein Feld für Ortsakteure hinzufügen. Hier finden Sie verschiedene Registerkarten mit verschiedenen Akteuren, einschließlich einer Registerkarte Volumes. Und hier sind diese alle alphabetisch aufgelistet. Sie können eine Trigger-Lautstärke finden. Lassen Sie mich eine davon platzieren. Alternativ finden Sie auf der Registerkarte Grundlagen hier verschiedene Formen von Volumes, finden Sie auf der Registerkarte Grundlagen hier verschiedene Formen von um eine Triggerbox oder eine Triggerkugel hinzuzufügen. Es gibt ein paar subtile Unterschiede zwischen den beiden, obwohl das, was wir mit diesen erreichen wollen , ähnlich sein wird. Es ist nicht wirklich wichtig, welcher Add. Ich werde diese Trigger-Box hinzufügen um ein paar Unterschiede zwischen dieser und meiner Trigger-Lautstärke aufzuzeigen . Wenn jetzt das Auslöserfeld im Bereich Details ausgewählt ist, habe ich Zugriff auf eine Option für die Linienstärke unter der Kategorie Form. Also setze ich das sofort auf zehn. Und dann für die Box-Ausdehnung werde ich das so einstellen wie, naja, lass uns 300 mal 300 mal 300 gehen, etwas Nettes und Großes. Ich möchte, dass dies irgendwo vor meinen Spielern platziert wird. Starte den Schauspieler, aber nicht zu nah, also überschneide ich es nicht sofort. Wir werden so was machen. Es ist in Ordnung, wenn es ein bisschen durch den Boden dringt. Jetzt können Sie hier auch eine Formfarbe festlegen. Wenn Sie also die Auswahl aufheben, wird die Formfarbe Grün angezeigt. Andernfalls hat es, wenn Sie es auswählen, eine gelbe Markierung. Das ist nur eine Show, ein kleiner Unterschied zwischen unserer Triggerbox und unserer Trigger-Lautstärke. Wenn ich meine Trigger-Lautstärke ausgewählt habe, können Sie die Form davon tatsächlich ändern. Diese muss keine kubische Form haben. Und um das zu tun, kommst du unter deine Pinseleinstellungen. Und unter deiner Pinselform könntest du das in einen Kegel verwandeln. Sie könnten das in eine Treppe ändern , wenn Sie möchten, ein Zylinder. Und dann gibt es verschiedene Eigenschaften, die je nach Pinselform geändert werden können. Aber für die Zwecke dieses Videos werde ich das los und rolle einfach mit dieser Triggerbox. Die Funktionalität wird jedoch zwischen diesen gleich sein. Okay, wir haben diese Schauspielerin in unserem Level ausgewählt. Ich werde hier in unseren Level-Blueprints einige Skripte schreiben. Lass uns weitermachen und das öffnen. Und ich füge das in meinen Event Graph, Graph, ein. Und in einem leeren Bereich klicke ich einfach mit der rechten Maustaste. Und wenn Sie mit der rechten Maustaste ein in Ihrem Level ausgewähltes Objekt klicken, können Sie ein Ereignis für dieses Objekt hinzufügen. In diesem Fall wird die fünfte Trigger-Box genannt. Und unter dem Kollisionsbereich würde ich einen Add-on-Schauspieler machen wollen, beginne Überlappung. Wenn sich etwas mit dieser Triggerbox überschneidet. Wir können etwas tun und herausfinden, wer der andere Schauspieler war. Dies wird ausgegeben, es wird uns wissen lassen , wer der andere Schauspieler war. Um das zu visualisieren, ziehe ich hier meinen Ausführungs-Pin weg hier meinen Ausführungs-Pin und bringe eine Print-String-Funktion ein. Und ich werde diesen anderen Schauspieler direkt damit verbinden den Anzeigenamen von dem zu bekommen , was auch immer sich überschneidet, wenn ich das kompilieren und spielen würde, führe meinen Charakter durch und schaue in der oberen linken Ecke meines Wiedergabefensters, wenn ich diese Trigger-Lautstärke überlappe, wird mir angezeigt, dass es einen ThirdPersonCharacter handelt, der dies überlappt. Jetzt können Sie diese Trigger-Lautstärke derzeit nicht mehr im Pegel sehen . Lassen Sie uns das beheben, bevor wir hier weitermachen. Also gehe ich zurück in meinen Level-Editor, wobei meine Triggerbox ausgewählt ist. Ich habe das Kontrollkästchen „Schauspieler im Spiel versteckt“ aktiviert, was bedeutet, dass er im Spiel versteckt wird. Wenn ich das deaktiviere, dann spiel weiter. Ich kann jetzt das Auslösevolumen in seiner ganzen hässlichen Pracht sehen. In Ordnung, lassen Sie uns etwas bewirken wenn wir diese Trigger-Volumes überlappen. Also zurück zu meinem Level-Blueprint. Ich kann das jetzt loswerden, linken Maustaste klicken und dorthin ziehen , damit ich den anderen Schauspieler hinstelle. Nun, lassen Sie uns das rausziehen und dieses Casting für unseren ThirdPerson-Charakter durchführen , nur um sicherzustellen, dass wir nur wollen, dass etwas passiert , wenn unser ThirdPersonCharacter es auch überlappt um sicherzustellen, dass wir nur wollen, dass etwas passiert, wenn unser ThirdPersonCharacter es auch überlappt. wird sich auch hier direkt auf unseren ThirdPersonCharacter auswirken. Es ist also ein doppelter Zweck, warum wir das tun. Also, wenn der andere Schauspieler die ThirdPersonCharakter ist, was wollen wir tun? Nun, wir können hier auf unseren ThirdPersonCharacter zugreifen um etwas daran zu ändern. Einschließlich, wenn ich meinen ThirdPersonCharacter Blueprint öffne. Einschließlich können wir einige Eigenschaften in diesen Charakterbewegungskomponenten modifizieren . Also lass uns das machen. Und wir erinnern uns, dass die Charakterbewegungskomponente Dinge steuern kann, wie schnell sich ein Charakter bewegt. Das ist die Eigenschaft mit maximaler Gehgeschwindigkeit hier drüben. Also zurück hier in meinem Level-Blueprint werde ich mich aus meinem BP ThirdPersonCharacter ziehen und Charakter tippen, Hoppla, Charakterbewegungen. Wir können das ganz unten finden, holen Sie sich die Charakterbewegungskomponente. Und was wollen wir innerhalb dieser Charakterbewegungskomponente modifizieren? Nun, ich wollte diese maximale Gehgeschwindigkeit ändern. Also gehe ich zurück zu meinem Level Blueprint hier. Wir ziehen uns heraus und geben eingestelltes Maximum, Gehen, Geschwindigkeit ein. Jetzt siehst du, wie solche Dinge ganze Zeit in Spielen gemacht werden. Tatsächlich habe ich vor kurzem Remake von Final Fantasy Seven gespielt. Es gibt Bereiche in diesem Spiel, in denen Cloud Strife voranschreitet und seine Bewegungsgeschwindigkeit langsamer wird . Was dort passiert, ist, dass die Wolke eine Triggerbox überlappt und die maximale Geschwindigkeit des Charakters auf ein Schritttempo reduziert wird , um zu verhindern, dass ich durch ein Gebiet renne. Vielleicht gehe ich durch einen engen Raum oder so etwas. Ich werde die maximale Gehgeschwindigkeit hier auf 200 reduzieren , wenn ich diese Triggerbox überlappe Lassen Sie uns kompilieren, stellen Sie sicher, dass unser Skript hier gut aussieht. Und dann lass uns spielen. Lassen Sie mich jetzt meine Debug-Option hier oben auf meine Level-Testmap setzen , damit Sie sehen können, wie dieses Ereignis ausgelöst wird. Zieh das hoch. In Ordnung? Und Sie können sehen, dass ich in einem anständigen Tempo renne. Aber wenn ich diese Trigger-Lautstärke überlappe, werde ich langsamer. Jetzt können Sie sehen, dass ich nicht schneller werde, wenn ich diese Trigger-Lautstärke verlasse. Und das liegt daran, dass dies ein Überlappungsereignis für den Schauspieler ist . Es wirkt sich darauf aus, dass meine Charaktere meine maximale Gehgeschwindigkeit einstellen , wenn ich sie überlappe, aber ich sage ihr nicht, dass sie zu einer normalen maximalen Gehgeschwindigkeit zurückkehren soll , wenn ich diese Überlappung beende. Das ist ein sehr einfaches Beispiel, aber lassen Sie uns ein paar lächerliche Schritte weiter gehen, nur um Ihnen zu zeigen die Bandbreite der Dinge, die Sie bei einem Schauspieler tun können , überschneiden. Nun, eine Sache, die Sie tun könnten , ist, dass Sie davon wegziehen und Sound vor Ort abspielen können. Welcher Ort? Wir könnten sagen, wo sich unsere Auslösebox befindet. Klicken wir mit der rechten Maustaste und etwas Leerraum. Ich habe immer noch meine Triggerbox im Level ausgewählt. Erstellen wir also einen Verweis auf eine Trigger-Box. Ziehen Sie dies weg und sagen Sie Standort abrufen , Schauspieler abrufen, Standort. Ich muss das nicht wirklich an einem bestimmten Ort machen, aber ich werde an einem bestimmten Ort Musik abspielen. Sicher. Richtig. Das könnten wir tun. Etwas anderes, was wir tun könnten, ist , dass wir das abtrocknen und Schauspieler aus dem Unterricht hervorbringen könnten . Was wollen wir spawnen? Nun, zuerst müssen wir uns sagen, wo wir spawnen sollen. also noch einmal unsere Trigger-Box benutze, kann ich davon wegziehen und noch sagen, dass Schauspieler transformieren. Was wollen wir also bei dieser Standortrotation spawnen? Lass uns sicher spawnen, etwas Rauch zeigt sich. Dann können wir auch so etwas tun, wie das wegziehen und das Spawn-System an Ort und Stelle eingeben . Jetzt wird das System jedes Niagara-Partikelsystem spawnen. So unwirklich war dieses Ding , wo sie jedes Partikelsystem namens Kaskade verwendeten jedes Partikelsystem namens , und das war das ältere System. Einige der Explosionen und Feuereffekte, die ich bisher gesehen habe. Das ist das ältere Partikelsystem, aber das Rollen mit dem Niagara-Partikelsystem von Huron. Wenn Sie also ein Niagara-Partikelsystem hinzufügen möchten, können Sie zum Epic Games Store gehen und auf dem Marktplatz unter Unreal Engine Five könnten Sie unter visuelle Effekte stoßen. Sie können den Höchstpreis auf kostenlos festlegen. Und Sie können versuchen, Ihrem Projekt einige dieser Niagara-Partikeleffekte hinzuzufügen . Das ist ziemlich einfach. werde ich jetzt nicht machen , weil es ein bisschen Zeit in Anspruch nehmen wird. Wenn Sie jedoch eines davon auswählen, könnten Sie das Projekt erweitern. Wählen Sie aus, zu welchen Projekten wir es hinzufügen möchten. Was zur Hölle? Ich werde das wahrscheinlich nach diesem Video beim Projekt hinzufügen . Und so würdest du das machen. Sobald Sie auf diese Schaltfläche klicken, wieder hier in Ihrem Leveleditor, die entsprechenden Ordner angezeigt , die diese Partikeleffekte enthalten würden. Und das würde es Ihnen dann ermöglichen, ein geeignetes System einzubauen. Natürlich müsstest du hier sagen, wo du es spawnen willst. Okay, also nur um das zu demonstrieren, lass uns weitermachen und noch einmal auf „ Spielen“ klicken. Und wenn wir das überlappen, langsamer werden, Musik spielen und unser Blaupause-Effekt etwas Rauch ausstrahlt, oder? Klatsch in die Mitte. Bogenschiessen. Schließlich ist es wichtig zu wissen, dass diese Überlappungsereignisse nicht nur auf diese Triggervolumina beschränkt sind nur auf diese Triggervolumina beschränkt , die Sie hier in Ihrem Actor-Panel finden. Im Gegenteil, ich wage zu sagen, dass die meisten Begin Overlap-Ereignisse , die ich beim Scripting verwende innerhalb der Blueprint-Klassen selbst zu finden sind. Um dies zu demonstrieren, gehen wir zurück zu unserem bp Beispiel-Pickup. Doppelklicken Sie darauf, um es zu öffnen. Und wenn Sie sich vom Anfang des Kurses an erinnern, haben wir einen Sphere Collider verwendet, eine Trigger-Lautstärke, um zu überprüfen, ob unser Third-Person-Charakter diesen überlappt, um ihn zu sammeln. Wenn ich jetzt unter dieses Komponentenfeld komme und auf Hinzufügen klicke, wenn ich nach unten scrolle, gibt es verschiedene Arten von Trigger-Lautstärken unter der Kollisionskategorie, aber es gibt Box Kollision, Kapselformkollision und Kugelkollision. nun eines dieser Elemente zu einem Blueprint hinzugefügt Wenn Sie nun eines dieser Elemente zu einem Blueprint hinzugefügt haben und es auf der rechten Seite auswählen, können Sie sehen, dass ein beginn-Überlappungsereignis damit verknüpft ist. Das ist ganz unten. Wenn ich mit der rechten Maustaste darauf klicken und unter Ereignisse hinzufügen komme , ist dieselbe Veranstaltung auch hier verfügbar. Nur zur Erinnerung hier, mein Event-Diagramm. Hier verwende ich eine ungerade Komponente, beginne überlappend. Dies ist eine Art Trigger-Lautstärke. Es ist nur eine merkwürdige Komponente. Es ist ein Komponenten-Trigger-Volumen, das derzeit eine sphärische Form hat. Und es listet hier immer den Namen der Komponente in Klammern auf, genau wie im Level Blueprint, es listet auch den Namen des Trigger-Volumes in Klammern auf. Dies ist nur eine Überlappung des Schauspielers in meinem BP-Beispiel, es ist eine Überlappung der Komponenten. Beides sind überlappende Ereignisse , bei denen Sie ein Skript auslösen können. Nun Leute, das wird alles für diesen machen. Im nächsten Video werden wir über die Endüberlappungsereignisse sprechen . Wir sehen uns dort. 30. Überlappung des Event: Willkommen zurück alle. In diesem Video möchten wir zeigen, wie Trigger-Volumes auch dazu verwendet werden können , Ereignisse auszulösen und zu überlappen. Jetzt möchten Sie manchmal, dass etwas passiert, wenn Sie ein Gebiet betreten , und manchmal möchten Sie, dass Dinge passieren, wenn Sie einen Bereich verlassen. Das Endüberlappungsereignis ist für die Zeiten gedacht, in denen beim Verlassen eines Bereichs etwas passieren soll. Jetzt haben wir das letzte Video aufgehört, in dem wenn ich diese Lautstärke eingegeben habe, diese Trigger-Lautstärke genau hier, meinen Charakter verlangsamen würde. Jetzt habe ich noch ein paar lächerliche Dinge gemacht, wie Musik zu spielen und einen Partikeleffekt zu erzeugen, so etwas. Aber ich beschleunige meinen Charakter nicht wirklich wieder, wenn ich diese Lautstärke verlassen habe. Also werden wir hier untersuchen, wie wir genau das machen können. Bevor wir dazu kommen, werde ich gleich hier zu meinem Level-Blueprint zurückkehren . Und ganz am Ende habe ich hier ein Niagara-Partikelsystem hinzugefügt . Und ich wollte im letzten Video nur darauf hinweisen, ich dich zum Epic Game Store geleitet habe. Und während wir hier sind, bin ich auf den Markt gegangen und wir haben nach visuellen Effekten gesucht. Du E5, ich ging unter ein UE fünf visuelle Effekte und ich glaube, ich habe unter den kostenlosen Paketen darauf hingewiesen. Dieser hier, das ist das alte Kaskadensystem. Wenn Sie einige Niagara-Effekte wünschen, wählen Sie hier einen mit der Aufschrift Niagara. Jetzt habe ich das zwischen den Videos aufgenommen. Und wenn ich es jetzt spiele, wirst du sehen, dass ich eine Königin beim Duschen habe , die auch dort laichen wird. Ich wollte nur darauf hinweisen, um das letzte Stück abzuschließen. Okay, lass uns mit der Endüberlappung weitermachen. So können Sie am Anfang sehen, wo sich unser Charakter verlangsamt. Nun, lassen Sie uns sie wieder beschleunigen. Nun, genau wie wir im letzten Video gezeigt haben, unserem Level-Blueprint hinzufügen möchten müssen Sie sicherstellen, dass Sie diesen Schauspieler in Ihrem Level ausgewählt haben , wenn wir dieses Event zu . Also lasst uns weitermachen und sicherstellen, dass wir Trigger-Volumes ausgewählt haben . Sie können es hier oder erneut in Ihrem Outliner auswählen. So oder so werden wir das tun. Und zurück in deinem Level Blueprint. So kommst du zurück in den Liebesentwurf. Machen Sie weiter und klicken Sie mit der rechten Maustaste und auf etwas leeren Platz, wir können ein Ereignis dafür hinzufügen das für mich als Trigger Box Five bekannt ist. Seien Sie nicht beunruhigt, wenn es etwas anderes für Sie sagt. Triggerbox 27 oder was auch immer. Hängt wirklich davon ab, wie viele Triggerboxen Sie bisher hinzugefügt haben. Hier wollen wir uns überschneiden. In Ordnung? Wir werden auch ein Casting für unseren ThirdPersonCharacter machen . Wir wollen herausfinden, ob das Ding, das die Überlappung Cast to ThirdPersonCharacter beendet hat, der Charakter der dritten Person war. Nun, wenn es der ThirdPersonCharacter war, sich überlappte, diese Trigger-Lautstärke, wollen wir eingreifen unsere Charakterbewegungskomponente aus diesem ThirdPersonCharacter herausholen. Und dann können wir uns herausziehen und Set Max, Walk, Speed eingeben . Und wieder weiß ich, dass diese Eigenschaft existiert weil innerhalb der Charakterbewegungskomponente, innerhalb meines Third-Person-Charakters, ein Parameter für die maximale Gehgeschwindigkeit vorhanden ist. Also waren es vorher 500. Lassen Sie mich einfach zu meinem Third-Person-Blueprint zurückkehren um diese Charakterbewegungskomponente für das Fahren nach Hause zu zeigen Charakterbewegungskomponente für das Fahren nach Hause Die maximale Gehgeschwindigkeit ist derzeit auf 500 eingestellt. Also werde ich hier in meinem Level-Blueprint die maximale Gehgeschwindigkeit wieder auf 500 setzen. Wenn wir also die Überlappung dieser Auslöserlautstärke beenden , sollten wir wieder zu unserer normalen Geschwindigkeit zurückkehren. Und ich möchte nur zeigen, dass diese Ereignisse hier ausgelöst werden . Also lass mich meine Debug-Option genau dort setzen. Bring meinen Charakter wieder an. In Ordnung. Sie können sehen, dass er bei 500 gelaufen ist. Innerhalb des Auslöservolumens. Wenn ich aussteige und bis zu 500 überschneide, konnte man genau hier unten sehen , wie diese Ereignisse ausgelöst werden. In Ordnung. Überlegen Sie sich also die anderen möglichen Verwendungsmöglichkeiten für eine Endüberlappung. Wir könnten es schaffen, dass wir, wenn wir und uns überlappen aufhören können, Musik zu spielen, die wir spawnen, dass wir diese Musik nicht stoppen können weil dies ein Feuer ist und vergessen. Aber wenn du dich in Musik verwandelst, könnten wir das in einer Variablen speichern und dann aufhören, ihre Musik abzuspielen. Vielleicht könnten Sie eine Endüberlappung verwenden , um zu verhindern, dass der Spieler verletzt wird. Vielleicht befand sich der Spieler in einer Giftgaszone, die seine Gesundheit beeinträchtigte, sobald er sich überlappte. Aber als sie sich überschnitten, verlieren sie keine Gesundheit mehr. Oder vielleicht könnte es etwas sein, wie Sie in Uncharted oder Final Fantasy Seven sehen, dass Sie, wenn Sie anfangen, das Volumen zu überlappen, Waffe ziehen können, aber wenn Sie damit enden, dieses Volumen zu überlappen, du kannst die Waffe ziehen. Dies kann durch boolesche Variablen geschehen in Ihrem ThirdPersonCharacter festgelegt sind. Nun Leute, das wird alles für dieses Video machen, wir sehen uns im nächsten. 31. Event Beginnen Sie mit dem Cursor: Willkommen zurück alle. In diesem Video werden wir ein paar Blaupausen erstellen und auch eine Projekteinstellung ändern, um ein paar Blaupausen erstellen und auch eine Projekteinstellung ändern zu zeigen wie cool Mouseover-Events sind. Dies sind großartige Ereignisse um zu wissen, ob Sie etwas bewirken möchten , wenn Sie mit der Maus über ein Objekt fahren, z. B. ein Objekt mit wechselnder Farbe, wie eine Art Highlight-Effekt, oder eine Artikelbeschreibung erscheinen vielleicht der Name des Objekts, über das Sie ein flüchtiger Kater sind. Oder vielleicht ein paar Texte , in denen steht, drücke X um zu interagieren oder dieses Objekt aufzunehmen, so etwas. Nun wird es sich vorwiegend um eine PC-Veranstaltung handeln, aber es ist gut zu wissen , auf welcher Plattform Sie entwickeln. Nur um zu sehen, was alles hier in Unreal gemacht werden kann. Okay, um das zu zeigen, werden wir einen genauen Klassen-Blueprint erstellen . Und Sie können dies in jeden beliebigen Ordner legen. Aber ich werde in meinen Ordner mit der Skripting-Übersicht gelangen und mit der rechten Maustaste in einen leeren Bereich klicken, um unter die Blueprint-Klasse zu kommen. Nach dem Unterricht ist der, nach dem wir suchen, und ich werde diesen BP-Unterstrich Mausereignisse nennen . Dann doppelklicken wir auf diesen Typen, um ihn zu öffnen. Wir sehen unsere Standard-Szenenwurzel genau hier. Wir werden eine einzelne Komponente hinzufügen. Gehen Sie also unter das Bedienfeld „Komponenten“ und klicken Sie auf Hinzufügen. Wir werden eine Kugelkomponente hinzufügen. Großartig, und lassen Sie uns das direkt auf unser Level fallen lassen. Wahrscheinlich eine gute Idee, es direkt vor die Stelle zu platzieren, an der Ihr Charakter erscheinen wird , damit der Spieler mit dem Schauspieler beginnt. Wir können das also sofort sehen und dann zurück zu Ihren p.sit-Maus-Events springen und zum Ereignisdiagramm übergehen . Jetzt wollen wir etwas bewirken, wenn wir hier mit der Maus über unsere Sphäre fahren. Welche Veranstaltungen haben wir dafür zur Verfügung? Nun, da unsere Kugelkomponenten ganz unten im Bereich Details ausgewählt sind, finden Sie alle Ereignisse, die Ihnen für diese bestimmte Komponente zugeordnet und zur Verfügung stehen, einschließlich On begin Mauszeiger über. Wenn ich also auf diesen Plus-Button klicke, kann ich dieses Ereignis zu unserem Diagramm hinzufügen und es wird mich direkt darauf zugreifen. Jetzt können Sie diese Ereignisse auch hinzufügen, wenn Sie dies tun würden, klicken Sie mit der rechten Maustaste auf diese Komponente. Und dann das kleine Ereignis zum Hinzufügen des Fly-Out-Menüs, Sie in dieser Liste finden würden. Der Grund, warum es nicht diese Liste ist ist, dass sie bereits zu unserer Grafik hinzugefügt wurde. Aber wenn es nicht zu unserer Grafik hinzugefügt wurde, können wir es auch hier finden. Okay, wir wollen also, dass wir unser Material ändern, wenn wir den Mauszeiger über die Kugel bewegen . Nehmen wir also einen Hinweis auf unsere Sphäre. Klicken Sie mit der linken Maustaste und ziehen Sie dies in das Diagramm Und wir werden uns aus unserer Sphäre ziehen , um mit ihr zu sprechen etwas daran zu ändern. Ich tippe das Set-Material ein. Und wieder einmal wusste ich, dass dies eine Eigenschaft ist, die ich an dieser Komponente ändern könnte an dieser Komponente ändern denn wenn ich meine Kugel auswähle, ist eines der verfügbaren Details das Material. Das ist also ein guter Hinweis, wenn Sie sich jemals fragen, hey, was kann ich an einer bestimmten Komponente ändern , während ich einfach diese Komponente auswähle. Und schauen Sie sich im Detail all die verschiedenen Dinge an, die möglicherweise daran geändert werden könnten . Jetzt werde ich mein Material hier so einstellen, dass es etwas ziemlich Widerliches ist. Ich werde Vertex Green eintippen , das ist es, wonach ich suche. Und der Grund, warum ich es nicht finde, ist, dass ich, wenn ich auf dieses kleine Zahnradsymbol klicke, nicht nur meinen normalen Inhalt, sondern auch meinen Motorinhalt durchsuchen möchte . Und ist Vertex Green nicht hier drin? Lass mich einfach grün tippen, da es ist. Vertex-Farbansichtsmodus, nur grün, das ist der, nach dem ich suche. Wenn ich das kompiliere, kann ich sehen, dass meine Skripte hier bereit sind. Ich hebe es auch auf. Du denkst vielleicht, okay, wenn ich ins Spiel springe und den Mauszeiger über diese Angst setze , dass das funktionieren wird. Nun. Es wird eigentlich noch nicht funktionieren. Wir müssen in den Blaupausen eines Player-Controllers etwas arbeiten , um diese Mouseover-Ereignisse tatsächlich zu aktivieren. jetzt viel mehr über Player-Controller-Blueprints Wir werden jetzt viel mehr über Player-Controller-Blueprints sprechen , wenn wir über Framework-Blueprints sprechen. Aber um diesem speziellen Video gerecht zu werden, muss ich in diese Gewässer waten. Für die Zwecke dieses Videos müssen Sie lediglich über den Player-Controller-Blueprint wissen den Player-Controller-Blueprint , dass der Player-Controller zusammen mit einem Charakter oder einem Baudenklassen-Blueprint arbeitet mit einem Charakter oder einem Baudenklassen-Blueprint , um zu beeinflussen dein Spielerlebnis. Der Player-Controller besteht im Wesentlichen aus den Puppet-Strings. Der Charakter ist die Marionette. Du bist die Marionette. Übermäßig vereinfachte Analogie, ich weiß, aber der Player-Controller-Blueprint enthält einige Mauseinstellungen , die wir festlegen müssen , damit dieser beginnende Cursor über das Ereignis tatsächlich stattfindet. Lassen Sie uns weitermachen und diese Player-Controller-Blaupausen erstellen . Also zurück hier in unserem Level-Editor werde ich einen ganz neuen Ordner erstellen, um diese Player-Controller-Blueprints unterzubringen. Also klicke ich mit der rechten Maustaste auf meinen Scripting-Ordner. Wir werden einen neuen Ordner erstellen. Und ich werde dieses Framework nennen weil wir später im Kurs-Framework einige Framework-Typ-Blueprints hinzufügen werden einige Framework-Typ-Blueprints . Blueprints sind einige übergeordnete Blaupausen, mit denen Sie die Dinge über Ihr gesamtes Projekt bestimmen können. Und hier klicke ich mit der rechten Maustaste auf die Blueprint-Klasse. Und einer der häufigsten ist ein Player-Controller-Blueprint. Es kontrolliert einen Bauern der vom Spieler benutzt wird. Das ist die Beschreibung dort. Und lass uns weitermachen und das schaffen. Ich nenne diesen BP-Unterstrich-Spieler-Controller. Wir doppelklicken auf diesen Typen, um ihn zu öffnen. Hier gibt es jedoch nicht viel in der Klasse Die Klassenstandardschaltfläche mit der im Bereich Details ausgewählten Schaltfläche befindet sich unter diesem Abschnitt für die Mausschnittstelle. Das ist der wirklich wichtige Teil. Eine Sache, die Sie sicherstellen möchten, ist einen Mauszeiger zu zeigen, indem Sie dieses Kästchen ankreuzen Wir werden sicherstellen , dass unser Mauszeiger , um den ich gerade winke, vorhanden ist der Bildschirm. Und das andere große Problem, das Sie hier festlegen müssen, ist Aktivieren von Mouse-Over-Ereignissen. Das ist entscheidend, damit dieser Cursor über Ereignisse hinweggeht. Stellen Sie sicher, dass Sie kompilieren und uns speichern. Wir können weitermachen und hier schließen, aber wir sind noch nicht fertig. Wir haben diesen Player-Controller-Blueprint erstellt, aber wir haben unserem Projekt nicht angewiesen diesen Player-Controller-Blueprint zu verwenden. Verlassen Sie also hier Sie zu Ihrem Haupteditor zurück. Sie können unter Einstellungen, Projekteinstellungen und im Abschnitt Maps und Modi diese Player-Controller-Klasse finden. Wir möchten dies auf unseren Kunden-BP-Player-Controller einstellen , den wir gerade erstellt haben. Dabei teilen wir unserem Projekt hier mit, dass wir für die Verwendung dieser Player-Controller-Klasse erstellt haben . Und diese Player-Controller-Klasse. Denken Sie daran, sind diese Mouseover-Ereignisse aktiviert? Großartig. Jetzt können wir wieder in unser Level springen . Lass uns loslegen und spielen. Und Sie können sehen, dass mein Cursor auf dem Bildschirm angezeigt wird und hier fast sofort grün wurde. Lass mich weitermachen und spielen. Okay, es ist nicht grün. Ich muss sofort meine Maus darüber gewogen haben. Also lass mich einfach mit der rechten Maustaste klicken und etwas Platz hier. Diese Kugel hat diese weißliche Farbe und sobald ich mit der Maus darüber fahre, wird der Boom grün. nun zu unserem bp-Maus-Events-Blueprint zurückkehren, können Sie sehen, wie ich diese Funktionalität erweitern kann , um einen 2D-Sound abzuspielen, eine Art Bestätigungssound wenn ich mit der Maus über die Kugel fahre. Aber ich mache nichts, als ich die Überlappung der Sphäre beendet habe. Wir werden uns im nächsten Video mit diesen Ereignissen befassen. Okay, ich möchte hier ein weiteres Beispiel zeigen , bevor wir dieses Video fertigstellen Wir werden dieses nächste Beispiel in unserem bp machen , einem ThirdPersonCharacter Blueprint. Also springe ich wieder da rüber. Das finden Sie in Blaupausen für Dritte. Innerhalb unseres ThirdPersonCharacter. Wir werden das Material für unseren Charakter festlegen , wenn wir anfangen, mit der Maus darüber zu fahren. Der Grund, warum ich das zeigen werde, ist , einen Parameter zu zeigen, den Sie hier gesetzt haben müssen, damit diese Cursor über Ereignisse funktionieren. Was ich also tun möchte, ist, wenn ich mit der Maus über diese Kapselkomponente fliege, das ist diese unsichtbare Kapsel unseren Charakter verkörpert. Möchte, dass etwas passiert. Wir werden das Netz ändern, das ist das Material, wenn Sie so wollen, die Farbe, das Netz der Farbe unserer, unserer Schaufensterpuppe hier. Gehen wir zum Event Graph über. Und wenn diese Kapselkomponente ausgewählt ist, klicke ich mit der rechten Maustaste. Wir werden Ereignisse hinzufügen, beginnen bei Cursor-Over. Es wird dieses Ereignis zu meinem Event Graph hinzufügen. Dann ziehe ich mein Netz hinein , das diese ganze Schaufensterpuppe ist Wenn Sie so wollen, ziehen Sie das hinein. Und dann ziehe ich das weg und tippe ein Set-Material ein. Und ich werde es so machen , dass sich unser Material ändert, ich werde es auch in grün ändern , diese widerliche Farbe. Sehr nett. Jetzt werde ich weitermachen und das kompilieren, speichern und spielen. Und jetzt können Sie sehen, wenn ich mit der Maus über meine Kugel fahre, ja, das ändert sich grün. Sie würden dasselbe erwarten, wenn ich auch hier mit der Maus über meine Schaufensterpuppe fahre, aber scheint nicht zu funktionieren, was hier los ist? Nun, wenn Sie so etwas tun möchten, müssen wir nur noch auf unsere Kapselkomponenten zurückkommen . Und in den Kollisionseinstellungen wollen wir hier unsere Kollisions-Voreinstellungen erweitern. Kollisions-Presets genau dort, es ist momentan auf pawn eingestellt. Wir ändern das in „Brauch“. Und wir werden zulassen, dass unser Sichtbarkeitskanal hier blockiert wird. Im Wesentlichen überprüfen diese Mouseover-Ereignisse , ob die Sichtbarkeit blockiert wird und ob sie blockiert wird. Dies wird jetzt ausgelöst, wir ignorieren dies. diese Weise erkennen wir, ob dieses Mouseover-Ereignis überhaupt stattfindet. Es ist eine Sichtbarkeit, die in die Welt zurückverfolgt wird. Jetzt sofort. Es ignoriert nur, dass, wenn wir dies auf blockieren setzen, es erkennt, dass ja, Spur etwas getroffen hat, in diesem Fall die Capsule-Komponente. Lass uns weitermachen und das Material ändern. Okay, lassen Sie uns das kompilieren und noch einmal speichern Klicken Sie hier auf „Spielen“ bei Kugel wird grün“ und sehen Sie sich das an. Mein Netz wird auch grün. Warum nicht die ganze Sache? Nun, der Grund, warum das Ganze nicht grün wird, ist, dass wenn wir unser Mesh hier im Bedienfeld Komponenten auswählen unser Mesh hier im und unter Materialien kommen, ändere ich nur, dass dieses Element 0 ist. Ich ändere nicht das Element eins, das die Farbe anderer Teile unserer Schaufensterpuppe bestimmt . Wenn ich das also in Elementindex eins ändern würde, würde es diese Teile im Gegensatz zu diesen Teilen ändern . Gut zu wissen. Was sind mögliche Einsatzmöglichkeiten für diese Art von Veranstaltung? Nun, wieder können Sie Tastenaufforderung anzeigen, interagieren, zerstören , interagieren. Sie können einen Element-Highlight-Effekt haben. Es könnte ein Geräusch sein, es könnte ein Partikel sein , das eine wesentliche Veränderung sein könnte , wie wir es hier getan haben. Nun Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 32. Event End Cursor: Unser Ziel in diesem Video ist es, unsere Erkundung von Mauszeigerereignissen fortzusetzen , indem Ereignis auslösen, wenn wir den Mauszeiger über ein Objekt beenden. Dies ist äußerst nützlich, um ein Objekt in seinen normalen Zustand zurückzuversetzen , wenn wir es ausgecheckt haben, genau wie im letzten Video, in dem wir die Maus über diese Kugel bewegt haben, wurde es grün, aber als wir fahren Sie nicht mehr mit der Maus darüber, wir beenden das Bewegen. Es kehrt nicht in seinen normalen Zustand zurück , genauso wie bei unserem Charakter. Fügen wir also einige End-Cursor-Ereignisse hinzu, um diese Dinge wieder in ihren normalen Zustand zu versetzen. Sir, in meinem ThirdPerson-Character Blueprint. Und vom letzten Video hier an, alles was wir tun, ist, wenn wir hier mit der Maus über unsere Kapselkomponente fahren , wir machen es so, dass das Material auf unserem Netz zumindest grün wird element 0 NICHT Element eins. Lass uns weitermachen und das zurückstellen. Jetzt können wir das rückgängig machen , indem wir einfach rechten Maustaste auf unsere Kapselkomponente klicken. Bei der Veranstaltung haben wir diesen End-Cursor vorbei. Fügen wir das zu unserer Grafik hinzu. Und ich kann einfach diesen Knoten hier kopieren, Kontrolle C, Kontrolle V. Wir können dieselbe Mesh-Referenz hier verwenden , um das als unser Ziel festzulegen. Und wir beeinflussen Element ist 0 genau hier. Wir werden Element 0 hier unten beeinflussen. Wir müssen das Material jedoch wieder in das ändern , was es war. Und was war das für ein Material noch einmal, nun, es war als MI Quinn. Und wir können zu diesem Punkt springen, indem wir hier klicken und im Content Browser zu diesem navigieren. Da steht MI Queen. Es befindet sich in dieser Reihe von Ordnern mit den Materialinstanz-Assets, die hier in unserem ThirdPersonCharacter ausgewählt wurden . Und stellen Sie sicher, dass Sie dies ausgewählt haben. Wir können einfach auf diesen Pfeil klicken, um ihn unter das Material zu stecken. Kompilieren wir. Das Drehbuch sieht ganz gut aus. Speichere es auch. Klicke auf Abspielen. Und jetzt, wenn ich mit der Maus darüber , wird unser Charakter grün, zumindest in den Bereichen, in denen Elemente 0 unser Netz hier beeinflussen. Und wenn ich die Maus davon abziehe, wird es zurückgestellt. Cool Lassen Sie uns das auch mit unserer BP-Maus-Event-Sphäre machen. hier zu unserem Ereignisgraphen springen, tun wir etwas, wenn wir anfangen flüchtig über diese Sphäre zu sein. Wählen wir also unsere Sphäre aus. Klicken wir mit der rechten Maustaste hier und etwas Leerraum bei Ereignissen, um den Cursor zu beenden. Und ich mache das Gleiche hier. Steuerung C zum Kopieren, Steuerung V zum Einfügen. Wir können dieselbe Kugelreferenz verwenden, oder Sie könnten eine neue Kugelreferenz hinzufügen, nur verschiedene Möglichkeiten aufzuzeigen, wie Sie etwas tun können. Beide zielen auf denselben Elementindex ab. Dieser hat nur einen Elementindex für die Materialelemente 0. Und es verwendet dieses Grundformmaterial. Ich kann hier danach suchen, oder ich könnte es wie vor dieser Zeit tun. Suchen wir einfach danach, indem auf diesen Dropdown-Pfeil klicken. Geben Sie die Grundformen und das Material der Grundform ein. Und versuchen wir das, kompilieren, speichern und spielen. Und ich bin auch über die Kugel wird grün. In der Tat, lassen Sie uns dieses Drehbuch hier vorführen. Es wird grün, weiß, grün wird weiß, und Sie können sehen, wie diese Ereignisse ebenfalls ausgelöst werden. Ziemlich einfaches Zeug. Verwenden Sie es zusammen mit dem beginnen-Cursor über dem Ereignis. Und noch einmal, um eines dieser Cursorüberereignisse überhaupt passieren zu lassen oder diese Cursorüberereignisse zu beenden. müsst diese Einstellungen in euren Player-Controller-Blueprints um diese Mouseover-Events zu akzeptieren, Leute, ich mache das alles für diesen. Wir sehen uns im nächsten. 33. Event Auf Geklickt: Willkommen zurück alle. In den letzten beiden Videos haben wir gezeigt, wie man einen Player-Controller-Blueprint einrichtet, um zu erkennen, wann wir mit der Maus über etwas fahren. Und dann das Gegenteil davon, das endet, mit der Maus über etwas zu fahren. Wir werden in den nächsten beiden Videos noch einen Schritt weiter gehen , um festzustellen, wann wir auf etwas geklickt haben wann wir eine Veröffentlichung haben, die klickt. Lassen Sie uns hier innerhalb unserer BP-Maus-Events loslegen. Und wir wollen erkennen, wann wir auf diese Sphäre geklickt haben. Um das zu tun, können wir hier mit der rechten Maustaste auf unsere Sphere-Komponente klicken. Und in unserem kleinen Flyout-Menü Add Event hier kann ich ein On-Click Event hinzufügen. Das ist eine Möglichkeit, das zu tun. Oder alternativ mit ausgewählten Komponenten. Ganz unten im Bereich „Details“ befindet sich unsere Liste der verfügbaren Ereignisse für diese Komponente. Ich klicke hier auf diesen Plus-Button für das OnClick-Ereignis. Dadurch gelangen wir zum Ereignisdiagramm und fügen dieses Ereignis zu unserem Diagramm hinzu. Also werden wir hier ein sehr einfaches Skript einrichten. Ich möchte mit unseren Sphärenkomponenten sprechen, damit ich das reinziehen oder hier nach unten ziehen kann. Beides reicht, ich hole es. Und ich möchte die Weltskala dieses Objekts festlegen , wenn ich darauf klicke. Ich möchte dies jedoch nicht auf eine feste und schnelle Zahl festlegen . Ich möchte ein bisschen eine sehr einfache Mathematik machen. Also was ich tun werde, ist da raus zu ziehen. Ich werde hier die aktuelle Weltskala durch Eingabe abrufen und einfach Weltmaßstab abrufen. Das gibt mir die aktuelle Weltskala, die, wenn ich meine Sphäre hier auswähle, Die Weltskala davon ist derzeit 111. Und ich möchte es so gestalten, dass ich jedes Mal, wenn ich darauf klicke , einfach ein bisschen hinzufüge. Ziehen Sie den Rückgabewert hier heraus und verwenden Sie diese Plus-Schaltfläche , um einen Knoten hinzuzufügen. Und wir fügen einfach 0,1 in den x-, y- und z-Dimensionen hinzu, sodass diese immer etwas größer werden , wenn Sie darauf klicken. Wenn Sie also das erste Mal darauf klicken, zielen wir auf unsere Sphäre ab. Wir werden unsere Weltmaßstäbe setzen. Es wird auf der ganzen Linie von eins auf 1.1 gehen und dann erneut darauf klicken, es wird auf 1.2 gesetzt und so weiter. Kompilieren wir das Skript und speichern es. Und das alles sieht gut aus, aber Sie werden sehen, dass ich, wenn ich hier oben auf Play klicke und dieses Mausereignisobjekt hier debugge. Ich kann es hervorheben und es wird grün. Wenn ich jedoch darauf klicke, scheint nichts zu passieren. Der Grund, warum hier nichts passiert, ist, dass ich zurück in meinen Player-Controller gehen und ein Kästchen ankreuzen muss in meinen Player-Controller gehen und , das Klickereignisse aktiviert. Wenn Sie also vergessen haben, was Ihr Player-Controller-Blueprint war, hatten wir ihn in unserem Framework-Ordner. Doppelklicken Sie darauf, um es zu öffnen. Und innerhalb von hier mit einer ausgewählten Klassenstandardschaltfläche kommen Sie unter den Abschnitt Mausschnittstelle. Und genau wie zuvor, wo wir Mouseover-Ereignisse aktiviert haben, müssen wir Klickereignisse aktivieren. Sobald wir das getan haben, notieren Sie sich das hier unten, die Klick-Ereignis-Tasten. Also überprüfen wir das. Ja, wir können Klickereignisse erkennen. Und unten können wir festlegen, was als Klickereignis registriert wird. Standardmäßig wird die linke Maustaste gesetzt, aber Sie können hier klicken. Sie können dort mehrmals klicken , um verschiedene Schlüssel hinzuzufügen. Also werde ich das löschen, weil ich nur die linke Maustaste will. Das wird also funktionieren. Es wird die linke Maustaste aktiviert. Es wird registriert, das ist ein Klickereignis. Dies ist auch erwähnenswert , dass wir unten einen Standard-Klick-Trace-Kanal haben , der entlang des Sichtbarkeitskanals festgelegt ist . Kehren wir zu unseren BP-Maus-Events zurück. Und wenn ich hier meine Kugel auswähle und im Detail-Panel rüberschaue, gehe unter den Kollisionsbereich. Sie können das sehen, wenn ich unter Kollisions-Voreinstellungen komme, die alle Dynamiken für diese bestimmte Komponente blockieren . Unten ist mein Trace-Kanal für den benannten Sichtbarkeitskanal oder den Trace-Kanal mit dem Namen visibility auf block gesetzt. Dies ist wichtig, da Klickereignis erkannt werden kann, solange dies auf „Blockieren“ gesetzt ist . auch zu meinem BP-Spieler-Controller zurückgehe, zeigt es, dass die Spurentfernung dafür 100.000 unwirkliche Einheiten beträgt. So funktioniert es also, wenn ich hier in meiner Welt klicke, ist dieses Objekt weniger als 100.000 unwirkliche Einheiten von der Stelle entfernt, an der ich auf dem Bildschirm klicke. Das wird also als Klickereignis registriert. Wenn es weiter geht, wird es nicht registriert. Also lass uns das hier spielen. Ich werde zu den BP-Maus-Events zurückkehren damit wir sehen können, wie das abgefeuert wird, indem wir auf „Spielen“ klicken und das hier unten verstecken. Also erkennt man sie mit der Maus. Sobald ich darauf klicke, wird es ein bisschen größer. Noch einmal klicken, ein bisschen größer, ein bisschen größer, ein bisschen größer, ein bisschen größer. Da hast du es also. Damit dieses onclick-Ereignis in Ihrem BP-Player-Controller funktioniert, müssen Sie Klickereignisse aktiviert haben. Und dann sagte auch mindestens ein Klick-Ereignisschlüssel. Leute, das macht alles für diesen. Wir sehen uns im nächsten. 34. Event auf dem veröffentlichten: Willkommen zurück alle. Nun, das ist der Begleiter zum vorherigen Video. Wir haben es im letzten Video geschafft, dass wir, sobald wir hier auf unseren bp-Maus-Event-Blueprint geklickt haben, die Kugel, ihn schrittweise vergrößern. Wir werden unser Skript ein wenig ändern und etwas bewirken, wenn wir unseren Mausklick loslassen. Wir machen also etwas , wenn wir der linken Maustaste nach unten klicken. Aber wenn wir darauf eingehen, wollen wir, dass etwas anderes passiert. Kehren wir zu unseren BP-Maus-Events zurück. Momentan habe ich es so, dass sobald ich auf die Kugel klicke, sie ein bisschen größer wird. Ich werde diese beiden Knoten löschen und dieses Skript hier ein wenig vereinfachen . Ich drücke Control C und Control V, um das zu duplizieren. Und ich will auch die Sphäre ins Visier nehmen. Ich möchte jedoch ein unveröffentlichtes Ereignis hinzufügen, sodass ich bei einem Ereignis mit der rechten Maustaste auf meine Sphäre klicken. Und bei der Veröffentlichung wird dies wieder ausgelöst. Sobald ich meine linke Maustaste hochgehoben habe, klicke hier. Wir werden es so machen, dass wir, wenn wir auf unsere Kugel klicken , die Größe auf zwei setzen , doppelt so groß. Und wenn wir es veröffentlichen, wird es auf der ganzen Linie eins sein. Und ich verschiebe das hier nach oben links und wir werden das kompilieren. Stellen Sie sicher, dass das Drehbuch gut aussieht. Lass uns das spielen. Und du kannst sehen, dass wenn ich einmal darauf klicke, es groß wird. Sobald ich loslasse, nimmt es wieder seine normale Größe an. Groß, klein, klicken, loslassen. Ziemlich einfaches Zeug. Die eine andere Sache, die ich hier reinwerfen werde ist in deinem BP-Spieler-Controller. Solange Sie unter den Klassenstandardwerten Klickereignisse aktiviert haben, solange dies aktiviert ist und Sie einen Klick-Ereignisschlüssel haben , der alle das Onclick-Ereignis ermöglicht, sowie das Release-Event zur Arbeit. Also eine Art Zwei-für-Eins da. Okay Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 35. Event Hit: Willkommen zurück alle. Event-Hit ist das Thema dieses Videos und dies ist ein sehr wichtiges Ereignis, über das Sie Bescheid wissen sollten, da es in allen Arten von Spielen ständig zu Kollisionen zwischen Schauspielern kommt. Stellen Sie sich vor, Sie schießen in einem Schießspiel eine Kugel und stoßen gegen eine Wand. Sie sehen ein bisschen Staub hochfliegen und an diesem Punkt des Aufpralls sehen Sie eine Kugel D cal. Oder stell dir vor, du planst ein Rennspiel. Du schlägst in ein anderes Auto und siehst Funken hochfliegen. Das ist ein Hinweis auf ein Ereignis, das hinter den Kulissen losgeht und diese Funken hochfliegen lässt. Diese Kugelabziehbilder erschienen an dieser Stelle in der Wand. In Ordnung, lassen Sie uns untersuchen, wie dieses Ereignis genutzt werden kann. Jetzt werde ich diesen Cube-Schauspieler-Platz in meinem Level verwenden , er heißt cube. Es ist ein statischer Mesh-Akteur. Du kannst jeden statischen Mesh-Akteur in deinem Level platzieren , um zu sehen, was wir gleich überprüfen werden. Aber wenn du zu Hause mitspielen willst, bin ich direkt hierher gegangen, bin unter Formen geraten und habe meinen Würfel genau dort. das ausgewählt ist, werde ich zu meinem Level-Blueprint springen . Und in einem leeren Bereich klicke ich mit der rechten Maustaste und wir fügen eine Veranstaltung für diesen Schauspieler hinzu. Wir haben ausgewählt, unter den Kollisionsbereich zu kommen. Und hier haben wir einen zusätzlichen Schauspieler-Hit. Genau wie unsere überlappenden Ereignisse. Es kann uns sagen, wer der andere Schauspieler war , der uns in diesem Fall getroffen hat. Wir werden in diesem Fall überprüfen, ob es der Spielercharakter ist, der uns getroffen hat. Also lass uns mit der rechten Maustaste klicken und ein leeres Feld eingeben, Spielercharakter holen. Wir werden sehen, ob der andere Schauspieler dem Spielercharakter entspricht. Das heißt, sind sie dasselbe? Ist es der Spielercharakter, der uns getroffen hat? Dies ist eine Möglichkeit, diese Überprüfung durchzuführen, um den Spielercharakter zu sehen, der andere Schauspieler, der uns getroffen hat. Wenn sie gleich sind, ziehen wir uns hier raus bringen einen Zweigknoten ein. Und wenn es tatsächlich stimmt , dass der Spielercharakter der andere Schauspieler war, der uns getroffen hat. Wenn das stimmt, ziehen wir uns von hier weg und geben Plays-Sound in D ein. Das ist ein nicht lokalisierbarer Sound, und ich mache meine gute alte Explosion. F, denn das ist sehr unterschiedlich. Das ist etwas passiert. Außerdem werde ich das Netz zerstören. Also werde ich mit der rechten Maustaste klicken und etwas Platz hier. Wir werden hier einen Verweis auf unsere Warteschlange erstellen. Ziehen Sie es heraus und geben Sie Destroy Actor ein. Okay, lassen Sie uns das kompilieren , um sicherzustellen, dass unser Skript gut aussieht. Ein grünes Häkchen sagt ja es ist. Und dann klicke ich auf „Hier spielen“. Und so können Sie sehen, wie das Skript oben ausgelöst wird. Lass uns unseren Spieler in den Würfel stürzen. Los geht's. Bam. An dieser Stelle lohnt es sich, nur ein bisschen langsamer um zu erklären, wie diese Kollision überhaupt erkannt wurde. Wie hat das überhaupt funktioniert? Warum ist mein Charakter nicht einfach durch diesen Würfel gegangen? wir uns für den Anfang Schauen wir uns für den Anfang unseren Third-Person-Charakter-Blueprint an. Ich hab das hier offen. Und ich habe die Kapselkomponente ausgewählt. Alle anderen Komponenten sind daran befestigt. Das ist die unsichtbare Komponente meinen Charakter hier umgibt. Und wenn ich im Bereich „Details“ unter dem Kollisionsbereich nachschaue , sind meine Kollisionsvoreinstellungen derzeit auf Benutzerdefiniert eingestellt. Und Sie können sehen, wie die Kollision hier so eingerichtet ist, dass sie alles blockiert, alle Arten von Objekten. Welche Art von Objekten gibt es nun? Nun, dieser spezielle Third-Person-Charakter ist ein Bauer-Objekttyp, der unter dem Objekttyp aufgeführt ist. Und dieser Teich wurde eingerichtet, um statische Objekte der Welt, dynamische Objekte, andere Teiche und all diese anderen Dinge hier zu blockieren Welt, dynamische Objekte, . Vergleichen wir das jetzt mit dem, was wir auf unserem Würfel sehen. Jetzt habe ich meinen Würfel hier im Level selbst ausgewählt , der eine Würfelinstanz ist. Diese Würfelinstanz besteht aus einer statischen Netzkomponente, und das ist Static Mesh Component. Wenn Sie das auswählen, wird dort das eigentliche Rohrnetz geschlitzt. Scrollen Sie hier nach unten und sehen Sie sich die Kollisionseinstellungen an. Sind Kollisionen hier voreingestellt, ist derzeit die Standardeinstellung, sodass ich nicht wirklich einen Drilldown durchführen und all diese anderen Einstellungen sehen kann. Wenn ich dies jedoch nur für einen Moment in „Benutzerdefiniert“ ändern würde, wird der aktuelle Aufbau der Kollision für diesen Würfel angezeigt. Sie können sehen, dass es sich bei dem für diesen Würfel aufgelisteten Objekttyp um einen statischen World-Objekttyp handelt. Nun ist dies so eingestellt, dass ein Bauer blockiert wird, ebenso wie unser ThirdPersonCharacter are pawn ist eingerichtet, um auch ein statisches Weltobjekt zu blockieren. es kurz zu machen, sie sollen miteinander kollidieren. Eine Sache wird nicht durch eine andere gehen. Nun, wenn ich meinen Würfel hier ändern würde. Kollisionen mit einem Bauern ignorieren. Denken Sie daran, dass mein ThirdPersonCharacter als Pfandobjekttyp eingerichtet ist . Lassen Sie uns das für einen Moment so einstellen, dass Teiche ignoriert werden. Schau dir an, was jetzt passiert. Versuche meinen Bauern, meinen Charakter durch das zu bringen und nichts passiert. Mit der Kamera wird es ein bisschen wackelig. Aber um es kurz zu machen, dass ein Schauspieler-Hit-Event nie auftritt. Lassen Sie mich weitermachen und das hier wieder in Block ändern. Und es ändert die Kollision und stellt sie wieder auf den Standard zurück. In Ordnung, jetzt lassen Sie uns hier etwas tiefer eintauchen , denn es gibt einige Nuancen, die Sie über die Holzbearbeitung bei dieser Veranstaltung wissen sollten . Wir werden mit der rechten Maustaste in einen leeren Bereich klicken, hier bin ich in meinem Inhaltsskriptübersichtsordner. Und ich möchte einen genauen Klassen-Blueprint-Schauspieler erstellen, BP Underscore Events. Hit nenne ich das. Und ich doppelklicke darauf, um es zu öffnen. Und ich werde hier drei Komponenten hinzufügen. Ich füge einen Würfel hinzu. Ich werde hier hinten zoomen. Ich füge eine Kugel hinzu und verschiebe sie auch hier ein bisschen nach rechts . Und ich werde das Scrollen nach unten hinzufügen. Wir fügen Sure hinzu, einen Zylinder. In Ordnung, jetzt ist es nicht wirklich wichtig, welche Schauspieler Sie haben. Sie haben sich an andere gebunden. Ob sie angehängt sind oder nicht. Das spielt für die Zwecke dieses Videos keine Rolle, worauf ich jedoch eingehen möchte, ist das Event Graph wird diese Ereignisse löschen und dann wird ein leerer Raum zeigen, wie Sie können Event-Hit hinzufügen. Der erste Weg, Rechtsklick, gibt Ereignis-Treffer ein. Das wird dich zum Event-Hit bringen. Alternativ. Sie können auch überprüfen, welche Ereignisse in einem bestimmten Blueprint verfügbar sind im Bedienfeld „Mein Blueprint“ im Abschnitt „Funktionen“. Wenn Sie unter die Außerkraftsetzung geraten , wählen Sie diese Option aus. Es gibt eine ganze Liste von Ereignissen, die Ihnen für diesen Blueprint-Schauspieler zur Verfügung stehen , einschließlich Event-Hit. Das ist alles ein bisschen irreführend, zumindest fand ich es verwirrend, als ich zum ersten Mal mit Blueprints Scripting begann, denn unter dem Funktionsbereich findet man verschiedene Ereignisse, ich denke mit ihrer Bedeutung ist hier alles, was Sie über diese verschiedenen Ereignisse hinaus hinzufügen. Das ist die Funktionalität, die Sie im Wesentlichen hinzufügen, wenn Sie in diesem Blueprint auf etwas stoßen. In Ordnung? Was ich hier zeigen möchte, ist Drag-Off-Typ-Eingeben der Druckzeichenfolge. Und wir wollen die andere Sache finden, die uns getroffen hat. Also ziehe ich mich hier raus und tippe get display name ein. Der Grund, warum ich das tue, ist zu zeigen, dass diese speziellen Event-Hits ausgelöst werden , wenn wir Komponenten treffen, die wir hinzugefügt haben, es spielt keine Rolle, welche. Also lass uns weitermachen und hier spielen. Ich setze auch meine Debug-Objekte. Nun, zuerst muss ich das meinem Levelspender hinzufügen . Das wäre hilfreich. Ich füge das zu meinem Level hinzu, ziehe es hier hinein und drehe es ein bisschen herum . Da haben wir's. Mach weiter und spiel. Unser Debug-Objekt ist sets. Und jetzt, wenn ich auf eine dieser Komponenten treffe , die abgefeuert werden, wird das abgefeuert. Und dann feuere ich ab. Es war egal, welche Komponente ich getroffen habe, der Ereignistreffer ausgelöst hat, und Sie können sehen er mehrmals abgefeuert wird. Was Sie beachten sollten, da Sie in vielen Fällen nicht möchten, dass es so mehrmals abgefeuert wird. Um Abhilfe zu schaffen, könnten Sie hier einen fälligen Knoten dazwischen hinzufügen , sodass er beim ersten Auftreffen nur einmal , sodass er beim ersten Auftreffen ausgeführt wird. Um jedoch zu unserem nächsten Punkt zu gelangen, können Sie einen Ereignistreffer hinzufügen, wenn Sie auf eine bestimmte Komponente treffen. Ich wähle hier meinen Würfel aus. Und wenn ich mit der rechten Maustaste klicke, kann ich ein Ereignis hinzufügen und Komponentenköpfe hinzufügen. Das bei Treffer ist also spezifisch dafür, nur diesen Würfel zu treffen. Lassen Sie mich von hier wegziehen und einfach die Druckzeichenfolge eingeben. Und ich werde es einfach in die Wortwarteschlange stellen , wenn wir das Q drücken. also mein Skript so einrichte, klicke ich noch einmal auf „Abspielen“. Jetzt können Sie sehen, dass beide Ereignisse ausgelöst werden, wenn ich diesen Würfel treffe . Wenn ich jedoch auf „Kugel anpassen“ klicke, wird nur dieser Top-Event-Treffer ausgelöst. Nicht dass seltsame Komponenten getroffen werden , da der Treffer bei Komponenten spezifisch für diesen Würfel ist. Eine sehr wichtige Nuance, um über Event-Treffer zu verstehen , ist, was passiert, wenn Sie physikalische Objekte in Ihrem Level haben. Und damit spreche ich von einem Objekt, das herumgestoßen werden kann oder das Schwerkraft-Dropdown respektiert, und so weiter. Lassen Sie mich weitermachen und auf „Hier spielen“ klicken und Ihnen zeigen, was ich meine. Sie sehen, wie der Stuhl auf den Boden fällt, das ist ein Physikobjekt. Diese sind jetzt ganz einfach einzurichten. Wenn Sie einen Stuhl haben, anderes statisches Netz in Ihrem Level, reicht jedes statische Netz aus. Hier habe ich den Stuhl in meinem Starter-Inhalt im Details-Bereich gefunden . Wenn ich meine Stuhlinstanz auswähle, gehe unter die statische Mesh-Komponente, aber komm in den Physik-Bereich. Ich habe das eingestellt, um Physik zu simulieren. Jetzt gibt es eine ganze Reihe von Eigenschaften, die Sie einrichten können , wenn ein Objekt Physik simuliert. Aber sobald Sie dieses Kästchen ankreuzen, wird dies als Physikobjekt betrachtet. Wenn ich in meinen BP-Event-Hit gehe, hast du gesehen, dass der Stuhl diesen Plan der Schauspielerklasse getroffen hat. Beachten Sie, dass keines dieser Ereignisse ausgelöst wird, wenn ich auf „Abspielen“ klicke . Kit-Events werden immer ausgelöst wenn die Bewegung des Charakters den Treffer auslöst. Diese Trefferereignisse werden nicht ausgelöst, Diese Trefferereignisse werden nicht wenn ein Physikobjekt darauf trifft. Es sei denn, der Schauspieler oder der einen Treffer erkennen möchte , hat ein bestimmtes Kontrollkästchen aktiviert. Also lass uns weitermachen und das tun. Ich werde unter meine Komponenten kommen, meine Cube-Komponente innerhalb des BP-Ereignis-Hip und im Detail-Panel unter dem Kollisionsbereich. Was ich suche, ist, dass Simulation Trefferereignisse generiert. Wenn ich dieses Kästchen ankreuze und dann auf Spielen klicke. Sie können jetzt sehen, dass diese beiden Ereignisse ausgelöst wurden. Was passiert nun, wenn ich diesen Stuhl nach oben ziehe, sagen wir den Zylinder, und dann schaut er über den Zylinder. Und dann klicken Sie auf Abspielen. Diese Ereignisse werden nicht ausgelöst. Und das liegt daran, dass ich meinen Zylinder auswählen und hier dasselbe tun müsste. Ich müsste dieses Kästchen für Simulation ankreuzen und Trefferereignisse generieren. Also sehr wichtig ein bisschen Nuance, um ihre zu verstehen, Ihre Nase Jungs Event traf. Eines der beliebtesten Ereignisse in all unseren Blueprint-Skripten verwendet werden. Das reicht aus, um diesen anzubieten. Wir sehen uns im nächsten. 36. Ereignis jeglichen Schaden: Hallo, hallo. Unser Ziel in diesem Video ist es, einige der in unreal verfügbaren Schadensereignisse zu untersuchen . Nun ist Schaden offensichtlich ein großer Teil vieler Spiele, und es ist gut zu wissen, dass unreal bereits über Funktionen und Ereignisse innerhalb von Blueprints Scripting verfügt Ereignisse innerhalb von Blueprints Scripting um diese Konzepte zu implementieren. Wir werden zuerst das Ereignis untersuchen, das beschädigt wurde , und dann von dort aus verzweigen. In Ordnung, der ThirdPersonCharacter wird der Star dieses Videos sein. Finden Sie also den Weg zu diesem Verzeichnis im Content Browser oder Content Drawer. Doppelklicken Sie darauf, um es zu öffnen. Wir beginnen mit dem Hinzufügen einer Variablen. Wir fügen eine Gesundheitsvariable hinzu. Also komm unter Variablen plus. Und wir werden eine neue Variable hinzufügen einfach Gesundheit genannt wird. Wir lassen es vom Float-Typ. Es könnte sich um eine Ganzzahl handeln, da Gesundheit manchmal in ganzen Zahlen und nicht in Dezimalzahlen dargestellt werden kann in ganzen Zahlen und nicht in Dezimalzahlen dargestellt . Aber wir werden dort mit einem Float-Typ gehen. Wir kompilieren es und geben ihm dann einen Standardwert von 100. Das ist ein netter runder Wert. Nun, während unreal einige schadensbezogene Konzepte und Ereignisse im Zusammenhang mit Schäden darin eingebettet sind. Es gibt kein Konzept von Gesundheit. Zumindest seit der heutigen Aufnahme in das Unwirkliche eingebettet. Du musst eine Gesundheitsvariable innerhalb deines Charakter-Blueprints erstellen , und dann kannst du von dort aus mit den verschiedenen Schadensereignissen damit umgehen . In Ordnung, nachdem das erstellt wurde, fügen wir ein Ereignis hinzu, irgendeinen Schaden. Es gibt mehrere Möglichkeiten, dies zu tun. Sie können mit der rechten Maustaste einen beliebigen Schaden eingeben. Sie finden es dort. Alternativ finden Sie es im Funktionsbereich des Bedienfelds „Mein Blueprint“ in der Dropdown-Liste „Überschreiben “. Es gibt Ereignisse, Schäden. Ordnung, da diese Ereignisse hinzugefügt wurden, möchten wir unsere Gesundheitsvariable auf irgendeine Weise ändern. So funktioniert das also. Lassen Sie uns weitermachen und unsere Gesundheitsvariable in das Diagramm ziehen . Wir kriegen es. Wenn dieses Ereignis ausgelöst wird, kann es ausgeben, wie viel Schaden angerichtet wurde. Jetzt wollen wir hier unsere Gesundheitsvariable nehmen. Wir ziehen hier ein, geben das Minussymbol ein, das wir subtrahieren möchten. Also nehmen wir die Gesundheit unseres Charakters und subtrahieren unsere Gesundheit um die Menge des verursachten Schadens. Sobald diese Berechnung abgeschlossen ist, werden wir unsere Gesundheitsvariable aktualisieren. Die Art und Weise, wie wir dies tun können, ist es per Drag & Drop direkt auf den Ausgangspin zu ziehen und diesen festzulegen. Also nehmen wir unsere Gesundheit, ziehen den Schadensbetrag davon ab und legen dann fest, dass dies unser neuer Gesundheitswert ist. Ziemlich einfach und unkompliziert. Dann ziehen wir das in die Länge und bringen ein kleineres oder gleichwertiges Zeichen ein. Wir werden sagen, wenn das kleiner oder gleich 0 ist, dann werden wir verzweigen. Wenn es stimmt, dass wir kleiner oder gleich 0 sind, wird unsere Gesundheit auf 0 oder darunter gesenkt, dann werden wir den Schauspieler zerstören. In diesem Fall sind wir selbst das Ziel. Wir werden die ganze Sache zerstören. Bevor ich das jetzt verbinde, schleiche ich mich hier einfach in einen Print-String-Knoten ein. Wir können also sehen, wie unser Gesundheitswert hier rauszieht. Wir geben die Druckzeichenfolge ein. Und wir werden so gehen. Und wenn wir unsere Gesundheit in diesen String stecken, wird dieser Float-Wert in einen String umgewandelt. Das ist es also, was das genau hier macht. Es konvertiert einen Float in einen String. Und lassen Sie uns das kompilieren , stellen Sie sicher, dass dieses Skript einsatzbereit ist und so aussieht, wie es ist. Beachten Sie nun, dass dieses Ereignis noch nichts bewirken wird, da wir diesem Akteur nicht gesagt haben , dass er in irgendeiner Weise vom Konzept der Beschädigung betroffen sein soll . Das machen wir nächstes Jahr wieder hier in unserem Leveleditor. Und lass uns weitermachen und eine Trigger-Lautstärke hinzufügen. Ich mache das, indem ich hier runterkomme und Schauspieler-Panel aufstelle. Ich füge eine Triggerbox hinzu und platziere sie irgendwo vor meinen Spielern. Starte den Schauspieler. Wenn das ausgewählt ist. Ich stelle die Linienstärke auf etwas dicker ein , damit ich sie im Level sehen kann. Ich werde auch das Box-Extent auf 200 mal 200 mal 200 setzen. Und ich scrolle auch weiter nach unten und deaktiviere das versteckte Spiel des Schauspielers, damit wir es sehen können. Okay, nachdem das alles erledigt ist, springen wir rüber zu unserem Level. Blaupause. Ich klicke mit der rechten Maustaste und etwas Leerraum. Wir werden ein Ereignis Bei Kollision bei beginnender Überlappung hinzufügen . Wir werden überprüfen, ob der andere Schauspieler, der uns überlappt, der Third-Person-Charakter war, nicht der Spielmodus. Der Charakter. Wenn ja, was wir hier tun werden, wird hier rausgezerrt und Apply Damage, a-ha, applizierter Schaden eintippen . Dieser Grundschaden hier wird es uns ermöglichen , einzugeben, wie viel Schaden wir unserem ThirdPersonCharacter zugefügt hätten . Also funktioniert das so. Du entscheidest, wie viel Schaden du es nennen möchtest. Lassen Sie uns eine Reihe von sagen wir 25,5 einbringen, etwas Lächerliches wie das. Es wird hier gesetzt und dann hier, wenn dieses Ereignis, irgendein Schaden aufgerufen wird, es das hier ausgibt. Also gibst du den Schaden weiter. Okay, nachdem das alles erledigt ist, klicken wir weiter und klicken hier auf „Spielen“. Und ich möchte mein ThirdPersonCharacter Blueprint sein. Damit wir sehen können, wie dieses Skript abgefeuert wird oder nicht, wenn wir alles vermasselt haben , lass uns weitermachen und auf Play klicken. Und wir sollten sehen, dass der beschädigte Wert hier oben links aktualisiert wird, weil wir dies auf dem Bildschirm drucken. Lassen Sie uns das überlappen. Und ich sehe es nicht. Und der Grund, warum ich es nicht sehe, ist, dass ich hier in meinem Level Blueprint einen Schritt zurück vergessen habe. Ich habe vergessen, dass dieser Schadensdarsteller als Third-Person-Charakter eingesetzt wird. Also wenn wir das tun, sagen wir: Hey, ThirdPersonCharacter, diese ganze angewandte Schadensfunktion, feuere das ab und stelle sicher, dass du dieses Ereignis jeglichen Schaden abfeuern lässt. Also rufe ich diese Funktion auf, wenn Sie den Schadensaktor in diesem Fall auf ThirdPersonCharacter setzen , wird dieses Ereignis dazu führen, dass jeder Schaden ausgelöst wird. Lass uns das noch einmal versuchen. Sie sollten also sehen, dass der Schadenswert hier aktualisiert wird, sobald sich dieser mit diesem Auslöservolumen überschneidet. Und los geht's, er sah Feuer aus. Wenn ich es noch einmal mache, werden Sie die Gesundheit erneut aktualisieren bis ich irgendwann über diese Schwelle hinausgehe und boomt, ich bin tot. Nun, nur ein paar Anmerkungen hier zurück in meinem Level Blueprint. Diese Schadensklasse. Es gibt die Möglichkeit, Feuerschaden, Blitzschaden, Wasserschaden und all diese Dinge hinzuzufügen . In Unreal. Es muss nicht eingestellt werden und es würde den Rahmen dieses Videos sprengen , wie man solche Sachen einstellt. Dieses Serversymbol, dieser Knoten zeigt an, dass diese Funktion nur auf dem Server für Einzelspieler-Spiele ausgeführt wird. Der lokale Client gilt als der Server, wird. Der lokale Client von dem ich dachte, ich würde diese Notizen einwerfen. Etwas anderes, das hier erwähnt werden sollte, ist, dass ich es getan habe, wenn ich zu meinem ThirdPersonCharacter Blueprint zurückkehre und hier nicht subtrahiere. Ziehen Sie sich heraus und geben Sie Anzeige ein. Sie müssen das eigentlich nicht als negativ behandeln. Man könnte dieses ganze Konzept des Schadens tatsächlich als Heilmittel verwenden . Anstatt also zu subtrahieren, könnten Sie so etwas tun und diesen Betrag addieren. Wenn Sie also eine Art Heilteich haben möchten, könnten Sie das auch tun. Ein letzter Hinweis zu Schäden ist , dass sie für allgemeine Schäden verwendet werden sollen, z. B. für Schäden in Ihrer Umgebung, sicher vor Feuer oder Gift , solche Dinge. Okay Leute, das reicht aus, um diesen anzubieten. Wir sehen uns im nächsten. 37. Schäden an der Ereignisse, die: Willkommen zurück alle. Nun, wir sind beim zweiten unserer drei Schadensereignisse. In der letzten haben wir über das Ereignis irgendeinen Schaden gesprochen. Das ist Ihr Allzweck-Schadenereignis , das Sie für Dinge wie Umweltschäden verwenden können. Und in diesem werden wir über Schaden an Ereignispunkten sprechen . Jetzt ist Punktschaden beschädigt, der durch Projektilwaffen, getroffene Scan-Waffen und sogar Nahkampfwaffen verursacht werden soll durch Projektilwaffen, getroffene Scan-Waffen und sogar Nahkampfwaffen verursacht werden . Und ich füge hier sogar eine vierte hinzu. Wir werden eine Physikbox auf die Köpfe unserer Spieler werfen , damit sie auch für so etwas verwendet werden kann . Obwohl Funktionen ähnlich sind, um Schäden zu verhindern, gibt es einige zusätzliche Informationen , die weitergegeben werden können, was es ideal für Schadensanwendungen im Projektilstil macht . Im Interesse der Zeit habe ich vor dem Dreh dieses Videos eine Menge Dinge vorbereitet, aber ich zeige Ihnen genau, was ich getan habe, damit Sie zu Hause mitspielen können , wenn Sie mitmachen möchten dieses Beispiel. Zunächst platzieren Sie einen statischen Mesh-Schauspieler in Ihrem Level und platzieren ihn direkt über der Stelle, an der Ihre Spieler in diesem Player Start-Schauspieler spawnen. Ich benutze einfach einen würfelförmigen Static Mesh-Schauspieler, aber alles wird reichen und Sie können einen Würfel greifen , indem Sie hier unter Formwürfel kommen. Und dann, als dieser Würfel im Bereich Details ausgewählt war, habe ich meine statische Netzkomponente ausgewählt. Und es gibt zwei Checkboxen, die ich sicher ankreuzen würde. Eine besteht darin, Physik zu simulieren, um sicherzustellen, dass diese Box auf den Kopf meines Charakters fällt. Und auch unten im Kollisionsbereich habe ich darauf geachtet, Trefferereignisse zu simulieren . Setze das auch auf true, weil ich möchte, dass dies ein Trefferereignis generiert. Jetzt, wo dies in meinem Level-Blueprint ausgewählt wurde, können Sie feststellen, dass Sie hier unter Level Blueprints öffnen. Ich klicke dann mit der rechten Maustaste mit dem ausgewählten Würfel in der Ebene, klicke mit der rechten Maustaste und füge dafür ein Ereignis hinzu. Und ich habe einen Schauspieler-Hit hinzugefügt und es zeigt , dass das der Name meines Würfels ist. Was ich jetzt tun möchte, ist, wenn ich etwas getroffen habe, möchte ich diese Funktion apply point damaged aufrufen. Jetzt hast du gesehen, wie ich im letzten Video Schaden angerichtet habe. Also etwas Ähnliches hier. Dies war der Schaden aus dem vorherigen Video. Wir machen hier etwas Ähnliches. Wir werden einen Punktschaden anrichten. Und genau wie zuvor müssen wir diesen Schauspieler mit einem beschädigten Schauspieler füttern , bevor es ein Third-Person-Charakter war. Hier gehen wir einen etwas anderen Weg. Wir werden unser Treffergebnis aus unseren Treffern herausziehen , wenn unser Würfel etwas trifft. Und alles, was Sie tun müssen, ist hier rauszuziehen und break einzugeben und dann das Treffergebnis zu brechen. Sie können alle möglichen Informationen über den Treffer extrahieren, der zwischen diesem Würfel und dem, was auch immer er getroffen hat, aufgetreten ist. Eines dieser Dinge, die Sie extrahieren können , sind die erfolgreichen Schauspieler. Wenn du also deinen Hauptdarsteller mit dem Schadensaktor verbindest, können wir dieses Punktschaden-Ereignis auf der Hit-Actor-Bluepause nennen . Wir werden gleich zur Sache kommen. Wir können auch weitergeben, woher dieser Treffer kam. Was ich hier mache, ist aus seinem Kopf, wir brechen das Treffergebnis und ich sage: Hey, wo ist das passiert, die X-, Y- und Z-Position. Und wir geben das an den Treffer aus Richtung weiter und liefern im Wesentlichen die Koordinaten x, y und z, wo dieser Treffer stattfindet. Etwas anderes, was Sie hier tun müssen bevor Sie kompilieren, ist, dass Sie diese Trefferinformationen aus diesen Trefferereignissen in die Trefferinformationen Ihrer Apply Point Damage Funktion weitergeben müssen diese Trefferinformationen aus diesen Trefferereignissen in die Trefferinformationen Ihrer Apply Point Damage Funktion weitergeben . das alles erledigt ist, können Sie das kompilieren und speichern. Und das ist alles gut und gut. Aber das nächste, was Sie tun müssen, ist zu unserem ThirdPersonCharacter Blueprint überzugehen . Auch hier drüben im Content Browser findest du deinen ThirdPersonCharacter direkt an dieser Stelle. Hier habe ich diesen Ereignispunktschaden und all die Dinge, die ich passieren wollte, eingerichtet diesen Ereignispunktschaden und . Also zuerst, wo bekommt man diese Eventpunkte beschädigt? Nun, es gibt zwei Möglichkeiten, mit der rechten Maustaste zu klicken und Punktschaden einzugeben. Sie finden es in Ihrem Rechtsklick-Menü. Wenn Sie dies nicht bereits zu Ihrem Diagramm hinzugefügt haben, könnten Sie auch dies nicht bereits zu Ihrem Diagramm hinzugefügt haben, unter Funktionen und dann in den Override-Abschnitt gelangen und dann in den Override-Abschnitt finden Sie die Funktion Punkt . Hier finden Sie die Funktion Punkt beschädigt als gut. Es ist hier nicht aufgeführt, da es bereits zu meinem Diagramm hinzugefügt wurde. Sobald der Treffer wieder in unserem Level-Blueprint auftritt , geben wir erneut den Hit Actor weiter und wir wissen, geben wir erneut den Hit Actor weiter und wir dass er uns einen ThirdPersonCharacter treffen wird. Es wird diese Funktion point damaged aufrufen, was dann dazu führt , dass dieses Ereignis ausgelöst wird. Und was wir hier sagen, ist, dass wir dies nur ein einziges Mal tun wollen , weil dies ein Ereignis ist , das dieser Würfel umschließen kann, wenn es Dinge in unserem Level trifft . Es könnte unseren Charakter mehrfach treffen. Wir wollten nur einen Treffer registrieren, also werden wir nur über dieses 0,1-fache hinausgehen. Was ich hier mache, ist, dass ich die Schadensmenge weitergebe , die ich hier in meiner Funktion zum Anwenden von Punktschaden angegeben habe . Hier sage ich nur 50,5, nur weil diese Zahl hier aus unserem Eventpunktschaden weitergegeben wird . Also subtrahiere ich das von unserer Gesundheitsvariablen hier drüben und setze es als unsere neue Gesundheit. Ich drucke das nur auf dem Bildschirm aus. Dann, dann ist das Letzte, was ich hier mache, ich werde im Emitter am Standort spawnen. Dies ist das alte Partikelsystem hier, das Kaskadenpartikelsystem. Ich benutze hier nur eine Explosion. Und was ich außerhalb des Event-Punkt-Schadens mache , ist genau hier drüben. Dies traf aus der Richtung. Ich gebe diese Informationen weiter und komme hier raus, um den Ort anzugeben , an dem diese Explosion stattfinden soll. Was ist das für ein Ergebnis? Jetzt hast du gesehen, dass der Ablauf der Ausführung ganz oben ist. Und hier bin ich in meinem ThirdPersonCharacter. Lass uns das nochmal machen. Aus meinem Level Blueprint. Zoomen Sie ein bisschen heraus. Behalten Sie also noch einmal im Auge, wie dieses Skript abgefeuert wird. Bam. Sie können sehen, dass es dort mehrmals abgefeuert wird, weil es zusätzlich zu meinem Charakter auf den Boden trifft. Wenn Sie nun das neuere Partikelsystem anstelle dieses Spawn-Emitters am Standort verwenden das neuere Partikelsystem anstelle möchten, können Sie das löschen. Und wenn Sie Niagara-Partikel in Ihrem Projekt haben, können Sie hier einfach eines davon angeben. Ich habe eine Münzdusche , die nicht so cool aussieht wie die Explosion, aber sieh dir das gleich hier an. Eine Sache, die ich noch nicht erwähnt habe, aber wenn Sie diesen Punktschaden in einer Instanz verwenden , wie ich ihn verwende, möchten Sie sicher sein, dass Sie nur diesen Ereignispunkt verwenden beschädigt? Schau, was ich oben gemacht habe. Ich habe mein Ereignis von jeglichen Schäden getrennt. Nun, wenn ich das auch anschließe und merke, dass ich diese Gesundheitsänderung hier vornehme, Nun, es wird dazu führen, dass beide Ereignisse ausgelöst werden. Und Sie können sehen, dass mein Gesundheitszustand dort tatsächlich unter einen negativen sinkt. Wenn du anrufst. Wenn ich Punktschaden anwende, nennst du auch nicht nur Event-Punktschaden, sondern auch Event-Schaden , da der Punktschaden technisch gesehen jeder Schaden ist. Seien Sie sich also auch dieser Instanz bewusst. Beachten Sie nun, dass diese Ereignisse zwar ähnlich sind, der Vorteil des Ereignispunktschadens jedoch darin besteht , dass der Ort weitergegeben werden kann. Sie haben auch einige andere Dinge, die Sie hier weitergeben können , aber dieser Ort ist der wichtigste unter ihnen. Okay Leute, das wird alles für diesen machen. Wir sehen uns im nächsten. 38. Event: Da kümmerst du dich um deine eigenen Angelegenheiten und dann trittst du auf eine Landmine, du erleidest großen Schaden. Du fliegst auf halbem Weg über den Bildschirm und stürzt dich in den Tod. Ereignis. Radiale Schäden sind die Ursache für solche Fälle und Unreal Engine-Spiele. Und was dieses Ereignis im Vergleich zu den beiden vorherigen Schadensereignissen einzigartig macht , ist, dass es perfekt für Flächenschaden ist. Mit radialer Eventschädigung können Sie einen Anfangspunkt angeben, können Sie einen Anfangspunkt angeben dem der maximale Schaden verursacht wird, sowie einen Radius, auf den Falloff angewendet werden kann. Je weiter du also vom Ursprung entfernt bist, desto weniger Schaden erleidet dein Charakter. In Ordnung, also habe ich ein Beispiel dafür erstellt, bevor ich dieses Video gedreht habe, und ich werde dir genau erklären , was hier vor sich geht. Folgen Sie uns, wenn Sie zu Hause spielen möchten. Also, was ich hier gemacht habe, ist, dass ich eine einfache Triggerkugel in mein Level gelegt habe. Sie finden das, indem Sie unter das Panel Schauspieler gehen. Und in meinem Basis-Tab lege ich einfach den Finger eines Triers in mein Level. Hier habe ich einfach meinen Kugelradius auf 1.000 gesetzt. Und ich lasse das auch erscheinen, indem ich einfach unter das Wo ist es gehe? Noch einmal der Renderbereich, Rendern , Rendern, Rendern. Da ist es. Ich entscheide mich dafür, dieses versteckte Spiel nicht zu haben. Ich stelle auch die Billboard-Skala des Editors ein. Das ist dieses Symbol bis zu fünf, nur um das sehr deutlich zu machen, als nächstes zu sehen, was ich getan habe, ist die Breite, die diese Schauspielerin ausgewählt hat, ich bin zu meinem Level-Blueprint übergegangen. Und hier habe ich einen Hinweis darauf erstellt, dass Angst ausgelöst wird, indem RT gedrückt hält und mit der linken Maustaste klickt, solange man das im Level ausgewählt hat. Und dann habe ich das rausgeholt und den Standort des Schauspielers ermittelt. Was ich jetzt hier mache, ist, wenn Sie die E-Taste drücken, können Sie eine beliebige Tastenkombination Ihrer Wahl haben. Auch hier erkennt Level Blueprints Eingabeereignisse. Ich spawne und emittiere dann an dieser Stelle, dem Mittelpunkt meiner Sphäre. Ich skaliere die Explosion nur so, dass sie extra groß ist. Nochmals, wenn Sie die Kaskadenstrahler der alten Schule nicht verwenden möchten , können Sie vor Ort ein Spawnsystem für die Niagara-Partikeleffekte einrichten. Und dann ist dies der Hauptknoten, über den wir hier sprechen, nämlich radialen Schaden beim Herunterfallen zuzufügen. Beachten Sie nun, wenn ich mit der rechten Maustaste und etwas Leerzeichen mache und Radial anwenden eintippe, können Sie einen radialen Schaden zufügen und auch radialen Schaden mit Fall off anwenden. Beides nennen wir das radiale Schadensereignis, das wir gleich nutzen werden. Mir gefällt dieser jedoch etwas besser, weil er die Möglichkeit hat einen inneren Radius und einen Außenradius sowie einen Basisschaden und dann einen minimalen Schaden anzugeben Außenradius sowie einen . Auf diese Weise können Sie einen Falloff-Bereich angeben. Also das, was ich hier sage, lassen Sie mich das einfach loswerden, ist mein innerer Radius. Meine Sphäre hat wieder einmal eine Größe von 1.000 unwirklichen Einheiten. Das ist genau hier. Der Kugelradius beträgt 1.000. Zurück hier sage ich, dass der innere Radius 200 unwirkliche Einheiten beträgt, der äußere Radius 1.000 Einheiten. Der Schaden im Epizentrum des Ursprungs und innerhalb dieses inneren Radius wird 100 betragen. Also alles innerhalb dieses inneren Radius wird so viel Schaden erleiden , dass ich im äußeren Radius, an der äußersten Grenze, an der äußersten Grenze, mindestens einen Schaden anrichten werde. Jetzt habe ich es eingegeben, da der beschädigte Wert abgenommen hat. Dies bestimmt, wie schnell der Schaden vom Mittelpunkt abfällt Der Ursprung zeigt zu den Kanten. Sie können mit dieser Zahl herumspielen, um einen mehr oder weniger extremen Abfall zu erzielen. Und dann sind die restlichen Eingaben alle optional. jedoch aus, um das System Dies reicht jedoch aus, um das System zum Laufen zu bringen. Jetzt komme ich zu meinem ThirdPerson-Charakter-Blueprint und richte die Dinge ein. Somit habe ich mein Ereignis radial beschädigt bekommen, was Sie erneut erhalten können, indem Sie mit der rechten Maustaste klicken und radial beschädigt eingeben, radial beschädigt eingeben, da ist das Ereignis radialer Schaden. Eine andere Möglichkeit, dieses Ereignis abzurufen, ist im Abschnitt Functions Overrides. Sie finden es hier, falls Sie es nicht bereits zu Ihrem Diagramm hinzugefügt haben. Und hier gebe ich diesen beschädigten Empfang weiter. Ich subtrahiere das von meiner Gesundheitsvariablen und lege das als meinen neuen Gesundheitswert fest. Nun, welche Menge Schaden an einer Wand weitergegeben wird , hängt wirklich davon ab , wie stark mein Charakter im Zentrum dieses Schadens war, als dieser eintrat. Jetzt zurück hier drucke ich diesen Gesundheitswert auch auf den Bildschirm aus , damit ich sehen kann , wie viel Lebenspunkte tatsächlich von meinem Basislevel 100 dort abgezogen wurden. Was ich dann auch hier mache ist ein bisschen zusätzliches Zeug. Das ist nicht wirklich notwendig, um zu sehen, wie das überhaupt passiert. Aber was ich hier gemacht habe, ist, dass ich mir meine Kapselkomponente schnappe. Ich habe gerade einen Hinweis darauf eingefügt. Und ich habe hier eine Funktion zum Simulieren von Physik gemacht. Kreuzen Sie das Kästchen an. Das wird meinen Charakter dazu bringen , durch die Luft zu fliegen. Und das ist es, was ihn dazu bringen wird, einen radialen Impuls durch die Luft zu fliegen , einen Impuls am Aufprallpunkt. Ich gebe hier nur den Ursprung, den Mittelpunkt meines radialen Schadens, weiter, ich gebe die Trigger weiter, die Position der Kugel als Ursprung. Und hier sage ich, dass ich einen Impuls aussende, stell dir vor wie eine unsichtbare Pulswelle. Der Radius dieses Impulses wird also 1.000 sein. Und ich habe die Stärke, mit der Sie mit diesen Werten herumspielen können, auf eine halbe Million festgelegt . Jetzt, zurück in unserem Level hier, kannst du sehen, dass mein Spieler-Startdarsteller etwas außerhalb dieses Radius starten wird. Also, wenn ich auf Play klicken würde und meinen ThirdPerson-Charakter-Blueprint jetzt geöffnet habe und ich die E-Taste drücke. Du kannst sehen, dass ich keinen radialen Schaden weil sich mein Charakter nicht in diesem Radius befindet. Sobald ich jedoch in Reichweite bin, beachten Sie jetzt, dass ich gerade noch einen Fuß in diesen Radius trete. Schau hier oben links nach oben. Es wird zeigen, wie viel Lebenspunkte von meinem Anfangswert von 100 abgezogen wurden. Also werde ich, ich schätze , ich werde am Ende einen Wert von 89 oder so , weil ich gerade noch hier bin, also drücke ich die E-Taste, am Ende ist es 87. Somit wurden fast 13 Lebenspunkte durch einen knappen Schritt abgezogen . Und lass uns das versuchen. Noch einmal. Das, ich gehe direkt in die Mitte. Das sollte also maximalen Schaden anrichten. Und wenn wir zu unserer Testkarte zurückkehren, können Sie sehen, dass der zugefügte radiale Schaden abfällt. Es zeigt, dass ich innerhalb dieses inneren Radius von 200 die vollen 100 beschädigt haben sollte. Mal sehen, ob das tatsächlich der Fall ist. Lassen Sie mich meinen ThirdPerson-Charakter-Blueprint öffnen. Tippe noch einmal auf das Ike und oben links sollte es 0,0 anzeigen. Und das tut es. Man kann also, wie gesagt, die Physik und den Radialimpuls des Kopfes simulieren. Es ist alles für Spaß und Spiel. Nun, eine letzte Information, die wir hier weitergeben müssen, genau wie der Punktschaden. Wenn Sie auch Schäden angeschlossen haben. Wenn du radialen Schaden verursachst , löst jedes Ereignis zwei aus. Also jetzt sollte ich meinem Charakter etwas Schaden zufügen und auch diesen Text Hallo hier oben sehen , sobald ich hier drinnen die E-Taste drücke. Sie können also sehen, dass Hello angezeigt wurde und einige Lebenspunkte abgezogen wurden. Okay Leute, es gibt einen radialen Schaden. Lassen Sie uns kurz die verschiedenen Schadensereignisse zusammenfassen. Jeder Schaden ist also gut für Umweltschäden. Wenn du an keiner bestimmten Stelle Schaden erlitten hast. Das ist toll, um durch Feuer oder giftiges Gas zu treten , so etwas. Punktschaden ist gut, um einen bestimmten Ort anzugeben , an dem der Schaden aufgetreten ist. Ideal für Projektile, die den Spieler treffen. Radiale Schäden eignen sich gut für Explosionen und die Angabe einer Stelle im Ursprung, an der der maximale Schaden eingetreten ist. Und diese Art von Schaden kann abnehmen , je weiter sie vom Ursprung entfernt ist. Das wird das Ganze beenden. Wir sehen uns im nächsten Video. 39. Ereignis zerstört: Willkommen zurück, alle zusammen. Events Destroyed ist das Thema dieses Videos und unser Ziel ist es, zu erfahren, warum Event Destroyed für einen Schauspieler ausgelöst und wie wir das in einem Drehbuch verwenden können. Für dieses Video verwende ich hier unseren Level Blueprint. Sie finden das hier, öffnen Sie Level Blueprint. Und ich werde auch unsere Charakter-Blueprints für die dritte Person verwenden . Das findest du hier in diesem Verzeichnis. Ich habe auch einige Einrichtungsarbeiten im Voraus erledigt. Wenn Sie es zusammen mit den vorherigen Videos für verschiedene Knoten vom Typ Apply Damage verfolgen , wird Ihnen das alles sehr vertraut vorkommen. Wenn Sie jedoch einfach zu diesem Video übergegangen sind, lassen Sie mich Ihnen zeigen, was ich im Voraus getan habe um das zerstörte Ereignis vorzuführen. Für den Anfang habe ich eine Triggerbox in meinem Level platziert und alles, was ich hier getan habe, ist, die Größe der Box auf 200 mal habe ich eine Triggerbox in meinem Level platziert und alles, was ich hier getan habe, ist , die Größe 200 mal 200 mal 200 zu erhöhen und meine Linienstärke auf zehn einzustellen. Und ich habe es auch so gemacht, dass im Renderbereich, wo es dieser Renderbereich ist, noch einmal da ist. Ich sagte, Actor Hidden Game soll deaktiviert werden. Dann, als dieses Trigger-Feld in meinem Level ausgewählt war, drüben im Level-Blueprint, habe ich mit der rechten Maustaste geklickt. Ich habe eine Anzeige auf Actor Begin Overlap für das Triggerfeld erstellt Overlap für das Triggerfeld aus dem anderen Schauspieler, den wir übertragen, auf unseren ThirdPersonCharacter gezogen wurde, um sicherzustellen , dass es sich um den ThirdPersonCharacter handelt, der uns überlappt. Und wenn ja, fügen wir unserem ThirdPerson-Charakter Schaden zu Ich füge hier 25 Schadenspunkte zu. Dann sollte dir das auch im ThirdPersonCharacter Blueprint bekannt vorkommen, sollte dir das auch im ThirdPersonCharacter Blueprint bekannt vorkommen wenn du ihn zusammen mit den vorherigen Videos verfolgst. Eventuell wird jeder Schaden gemeldet. Und wieder einmal wird es aufgerufen, wenn diese angewendete beschädigte Funktion hier in unserem Level-Blueprint ausgelöst wird. Das geht dann los. Alles was ich hier mache ist, dass ich unseren aktuellen Gesundheitszustand nehme , der bei 100 beginnt. Wir ziehen die Menge an Schaden ab, die direkt hier in unserer angewendeten Funktion „Beschädigt“ im Level-Blueprint 25 verursacht wurde. Wir werden das von unserer Gesundheit abziehen und das als neue Gesundheit festlegen. Und wenn unsere Gesundheit kleiner oder gleich Null ist, werden wir den Schauspieler zerstören. Nun, das ist die wichtige Funktion hier. Denn wenn diese Destroy Actor-Funktion aufgerufen wird, auch das zerstörte Ereignis ausgelöst. Also, wenn ich einfach weitermachen und sofort spielen würde, hätte ich das getan. Ich klicke hier auf Play. Lass mich meinen Charakter als Debug-Objekte festlegen, mein Spielfenster noch einmal öffnen, hier oben links wirst du sehen, wie der Gesundheitswert sinkt. Zur Erinnerung, mein Gesundheitssystem ist hier überhaupt nicht an mein Messgerät angeschlossen. könnten wir später ändern. Vielleicht werden wir 75, 50. Du siehst, wie das Ereignis oben losgeht und dann Bumm, unser Charakter ist zerstört, aber zerstörte Ereignisse können wir weiter nutzen, um etwas anderes geschehen zu lassen. Lassen Sie uns also das zerstörte Ereignis hinzufügen, und es gibt mehrere Möglichkeiten , dieses hinzuzufügen. Wir könnten mit der rechten Maustaste klicken und etwas leeres Feld, Tipping-Ereignisse wurden zerstört. Das ist eine Möglichkeit. Die zweite Möglichkeit ist natürlich im Mein Blueprint unter dem Funktionsbereich Sie können Ereignisse überschreiben, das Ziel zerstören, hier wird ein Akteur sein. Und wie ihr sehen könnt, unser Destroy Actor, ist das Ziel inaktiv. Also in diesem Fall, unserem ThirdPerson-Charakter, sagen wir: Hey, zerstöre uns selbst. Es gibt hier also keine Ausgänge. Wir zerstören uns selbst. Sobald dies angerufen wurde, werden wir diese Veranstaltung anrufen, um sie zu starten. In Ordnung, also lass uns dafür sorgen, dass hier etwas passiert. Lass uns hier rausziehen und den Spawn-Emitter an der Stelle eingeben . Auch hier könntest du ein Spawnsystem an einem Ort erstellen, der das Niagara-Partikelsystem ist. Ich werde einfach die Explosion der alten Schule benutzen. Da haben wir's. Und dafür müssen wir natürlich einen Standort angeben. Also klicken wir einfach mit der rechten Maustaste und geben etwas leeres Feld ein und geben get actor location ein. Das Ziel ist unser ThirdPersonCharacter ist der Standort. Und lass uns etwas anderes machen, das trocknet ab. Und lass uns Schauspieler aus der Klasse spawnen. Lass uns in etwas Feuer spawnen, unserem Blueprint-Effekt, Feuer. Wir müssen eine Spawn-Transformation liefern. Also werde ich mit der rechten Maustaste klicken. Wir werden den Schauspieler transformieren lassen. Noch einmal. Das Ziel ist unser Selbst. Du bist ein Third-Person-Charakter. Und dann lassen Sie uns einfach von hier wegziehen und die Zeichenfolge drucken. Und statt des String-Dings, hallo, sagen wir einfach etwas wie zerstörtes D-Steroid, wenn ich das richtig buchstabieren kann. In Ordnung, also wenn wir uns mit der Triggerlautstärke überschneiden , fügen wir unserem ThirdPerson-Charakter Schaden zu. Dieser Schaden wird sich genau hier auf unseren Gesundheitswert auswirken, sobald unsere Gesundheit weniger als oder gleich Null ist, und das stimmt. Wir werden diesen Schauspieler zerstören. Dies wird dazu führen, dass das zerstörte Ereignis ausgelöst wird. Und dann wird es all das Zeug hier erledigen. Es ist immer eine gute Idee, zu kompilieren. Stellen Sie sicher, dass Ihr Drehbuch einsatzbereit ist. Speichern wir das und lassen Sie uns weiterspielen. Und lassen Sie mich das tatsächlich erhöhen , damit Sie sehen können, wie es brennt. Los geht's. 12, diese Gesundheit nimmt ab. Drei jetzt, schauen Sie direkt über dem Play Windows nach oben. Nun, für das Event wurde zerstört, um abzufeuern. Bumm. Da hast du es. Wir haben diese Explosion ausgelöst und wir haben auch das Feuer mit dem Blueprint-Effekt erzeugt. Jetzt möchte ich weitermachen und noch ein Beispiel zeigen , bevor wir dieses Video abschließen. Und nur um dir zu zeigen, was ich hier in meinem Level gemacht habe , habe ich hier drüben einen Kegel hinzugefügt , etwas außerhalb der Grenzen meiner Triggerlautstärke. Sie finden das Schauspielerpanel bei Ihnen vor Ort hier. Aber jedes statische Netz reicht aus, wenn du mit dem ausgewählten Typ mitspielen willst . Was ich in meinem Level-Blueprint gemacht habe, ist, wenn ich nach rechts scrolle, wo du das vorher nicht nach rechts sehen konntest. Ich werde nur die Funktionalität erweitern. Wir schaden unserem Spieler. Was ich hier machen will, ist das anzuziehen. Also füge ich unserem Charakter nicht nur etwas Schaden zu, sondern warte 3 Sekunden, wenn ich diese Triggerbox zum ersten Mal überlappe , und ich werde unseren Kegel zerstören. Ich habe hier einen Verweis auf meinen Kegel bekommen, da ich, wenn ich die Alt-Taste gedrückt halte, mit wenn ich die Alt-Taste gedrückt halte, linken Maustaste klicken und einen Verweis auf meinen Kegel einfügen kann. Also ich sage, hey, komm, du bist der Zieldarsteller, den ich zerstören möchte. Jetzt unten. dieser Kegel ebenfalls ausgewählt ist, kannst du mit der rechten Maustaste auf einen leeren Bereich klicken und sagen: Hey, wenn du zerstört bist. Ich zeige dir noch einmal, wie ich das auf Destroy bekommen habe. Hier habe ich den Kegel ausgewählt. Ich kann Ereignisse hinzufügen und unter dem Spielbereich kannst du zerstörte hinzufügen. Und wenn ich es jetzt auswähle, wird es mich einfach überspringen und sagen, hey, ich habe dich. Dann kann ich einige Informationen von meinem zerstörten Schauspieler extrahieren. Ich stelle den Schauspieler hier zur Verfügung. Ich sage, hey, ich möchte deine Transformation bekommen. Lass uns einen BP-Beispiel-Pick-up spawnen und dann lass uns einen Sound abspielen. Das wird also passieren, wenn wir diese Triggerbox zum ersten Mal überlappen. also all diesen Schaden ignorieren der dem ThirdPerson-Charakter jetzt in 3 s zugefügt wird, werden einige unseren Kegel zerstören, und dann wird dieses zerstörte Ereignis abgespielt und wir werden diesen Spawn haben. Lass uns weitermachen und es spielen. Lassen Sie uns das zuerst kompilieren. Achte darauf, dass es gut aussieht. weitermachen und hier planen, lassen Sie mich mein Debug-Objekt als meine Testmap festlegen und mein Wiedergabefenster erneut öffnen. ich das jetzt zum ersten Mal in 3 s überschneide , wird dieser Kegel zum Tonabnehmer. Da hast du es. Also ein paar Nutzungen für das Ereignis wurden zerstört. Du hast gesehen, wie ich gerade ein paar demonstriert habe. Nummer eins wäre, ein Partikel oder ein Geräusch an einem Ort der Zerstörung zu spawnen . Nummer zwei wäre das Spawnen und andere Akteure wie ein Kloabwurf beim Töten eines Feindes. Okay Leute, das wird alles für diesen Fall tun. Wir sehen uns im nächsten. 40. Individuelle Veranstaltungen: Benutzerdefinierte Ereignisse sind das Thema dieses Videos, und dies ist ein sehr wichtiges Thema, da benutzerdefinierte Ereignisse und dies ist ein sehr wichtiges Thema, da benutzerdefinierte Ereignisse zu den am häufigsten verwendeten Ereignissen in allen Blueprint-Skripten gehören . Unser Ziel in diesem Video ist es also, zu erfahren, was sie sind, wie sie hinzugefügt werden und warum sie nützlich sind. Jetzt ist ein benutzerdefiniertes Ereignis ein Ereignis, das Sie benennen und aufrufen können, damit es ausgelöst wird, wann immer Sie möchten. Okay, sehen heißt glauben, ich werde in diesem Video hauptsächlich den ThirdPerson-Charakter-Blueprint verwenden hauptsächlich den ThirdPerson-Charakter-Blueprint , aber ich werde mich ein bisschen mit dem Level-Blueprint beschäftigen. Also mach weiter und öffne sie. Ich fange mit dem ThirdPerson-Character Blueprint an. Und zuerst müssen wir eines dieser benutzerdefinierten Ereignisse hinzufügen. Nun, wie machen wir das? rechten Maustaste und geben Sie ein Leerzeichen ein. Und unter der Kategorie Ereignis hinzufügen haben wir ein benutzerdefiniertes Ereignis hinzugefügt. In dem Moment, in dem ich das mache , werden meinem Diagramm Ereignisse hinzugefügt, aber ich werde aufgefordert, ihm einen Namen zu geben. Ich nenne das Gesundheit hinzufügen. Wenn Sie nun zu einem beliebigen Zeitpunkt den Namen Ihres benutzerdefinierten Events ändern möchten , haben Sie zwei Möglichkeiten, dies zu tun. Sie können einfach darauf doppelklicken und es gibt Ihnen die Möglichkeit, es hier zu ändern. Oder mit diesem Eventknoten wurde dieser Kundenanbieter hinzugefügt und im Detailbereich hinzugefügt. Sie können den Namen auch hier ändern. Okay, also Gesundheit hinzufügen, Lass uns weitermachen und dafür sorgen, dass dieses Ereignis tatsächlich etwas Gesundheit hinzufügt, wann immer es aufgerufen wird. Jetzt nicht jetzt. Wir haben nichts, was wir dieses Ereignis eigentlich nennen könnten. Wir werden uns in Kürze darum kümmern. Aber damit das tatsächlich etwas bewirkt, ziehen wir unsere Gesundheitsvariable hinzu. Ich werde mir das holen. Ich möchte diesen Typ in die Plus-Schaltfläche ziehen. Wir werden einen gewissen Betrag hinzufügen. Fügen wir 010 hinzu. Hört sich gut an. Dann ziehe ich meine Gesundheit per Drag & Drop auf diese Ausgabe, damit wir unsere Gesundheit festlegen können. Wir bekommen also unsere Gesundheit, wir fügen zehn hinzu und dann stellen wir sie ein. Hört sich soweit gut an. Lassen Sie uns weitermachen und das auch auf dem Bildschirm ausdrucken. Also drucke die Zeichenfolge. Wenn ich diese Ausgabe von meinem Sit-Health nehme und sie in die Zeichenfolge stecke, erhalte ich einen kleinen Konvertierungsknoten, um Datentyp in einen anderen zu konvertieren, ein Float in eine Zeichenfolge, die ihn auf meinem Bildschirm ausdruckt. Und dann lassen Sie uns auch hier losziehen und Spawn-Emitter an Ort und Stelle eingeben. Wieder einmal kannst du ein System spawnen , das Niagara-Partikelsystem. Ich werde einfach die Old-School-Explosion verwenden , weil ich sie gerne für so ziemlich alles verwende. Es ist sehr visuell, oder? Also wo werden wir spawnen und explodieren? Nun, lassen Sie uns den Standort unserer Schauspieler hier herausfinden. Berücksichtigen Sie jedoch den Standort. Das Ziel sind wir selbst, der Third-Person-Charakter. Lass uns das hier einstecken. Und dann lassen Sie uns auch einfach einen Sound abspielen. Ziehe ein paar Play-Sounds ab. 2d. 2D-Sound ist ein Sound, der sich nicht an einem bestimmten Gebietsschema befindet. Es eignet sich einfach hervorragend für Menü-Sounds. Übrigens, ich werde kompilieren, kompilieren, erfolgreich machen. Eines davon wird reichen, in Ordnung, das kompilieren und speichern. Das sieht nach einem guten Drehbuch aus. Ordnung, wir brauchen also etwas, das tatsächlich dazu führt, dass dieses Ereignis stattfindet. Das wird also ein ziemlich akademisches Beispiel sein, aber nur um es hier einfacher zu machen, werde ich mit der rechten Maustaste in eine leere Stelle klicken. Sie können den einen Schlüssel eingeben. Und ich sage, wenn wir die eine Taste drücken, werden wir das in die Länge ziehen. Und wenn ich jetzt Add Health eintippe, schau dir das an. Ich habe einen Knoten, den ich hinzufügen kann, einen Aufruffunktionsknoten namens AddHealth. Was ich hier also im Wesentlichen tun werde ist, wenn ich die eine Taste drücke, dass dieses benutzerdefinierte Ereignis namens AddHealth ausgelöst wird. Dies ist eine drahtlose Verbindung und das ist einer der Vorteile , wenn benutzerdefinierte Ereignisse verwendet und diese drahtlosen Verbindungen geheim gehalten werden. Jetzt könnte es ganz einfach sagen: Hey, der einen Taste, mach das alles. Manchmal hat man jedoch sehr komplizierte Skripte und möchte die Dinge schön, sauber und einfach halten. Dies ist eine gute Möglichkeit, ein drahtloses, drahtloses Abfeuern, einen drahtlosen Aufruf dieses Ereignisses, zu erstellen . Also das ruft das auf, was all dieses Skript ermöglichen wird. Lass uns weitermachen und kompilieren und speichern. Mach weiter und spiel hier. Und ich werde versuchen, das alles in Ordnung zu bringen. Also schau zu. Sobald ich die eine Taste gedrückt habe, wird das alles geschehen. Du wirst sehen , wie der Emitter auftritt. Du wirst ein Geräusch hören und so weiter. Los geht's. Und ich kann das einfach immer wieder und immer wieder machen . Diese drahtlosen Verbindungen sind also cool und alles, aber das sind nicht wirklich alle Vorteile, die Sie von benutzerdefinierten Ereignissen erhalten. Bei benutzerdefinierten Ereignissen können Sie dieses Ereignis auch von einem anderen Blueprints aus aufrufen . Lassen Sie uns also weitermachen und dieses Event aus unserem Level Blueprint heraus aufrufen . Falls du also vergessen hast, wie du ab sofort in deinen Level-Blueprint kommst , da bist du zum 100. Mal. Und ich klicke mit der rechten Maustaste und etwas Leerzeichen und ich werde einfach das, lass uns die Sieben-Tasten oder irgendein anderes Tastatur-Event reinbringen . Dann gehe ich mit der rechten Maustaste und etwas leerem Raum. Wir werden den Spielercharakter bekommen. Wir werden das in die Länge ziehen. Wir benötigen das, um auf ThirdPersonCharacter zu übertragen. Weil wir unser Casting des ThirdPersonCharacters mit einem Objekt versorgen müssen ThirdPersonCharacters mit einem Objekt und das reicht, um den Spielercharakter zu bekommen. Dabei überprüfen wir also, hey, ist unser Spielercharakter der ThirdPerson-Charakter? Und wenn ja, können wir auf irgendeine Weise, Form oder Form mit unserem ThirdPersonCharacter sprechen . Dazu gehört das Aufrufen benutzerdefinierter Ereignisse. Damit das funktioniert, musst du sicherstellen, dass du deinen ThirdPersonCharacter Blueprint kompiliert hast . Sehr wichtig hier. Sobald Sie dies kompiliert haben, können Sie dieses AddHealth nun in unserem Level-Blueprint finden . Lass uns hierher zurückkehren, deinen ThirdPersonCharacter herausziehen und Gesundheit hinzufügen eingeben. Und schauen Sie noch einmal, wir haben diesen Aufruf der Funktion bei Gesundheit. Das ist dieselbe Art von Knoten, den wir in unserem ThirdPersonCharacter hatten. Das Ziel „Gesundheit hinzufügen“ ist der Charakter einer dritten Person. In unserem Level-Blueprint ist das AddHealth-Ziel ThirdPersonCharacter. Ordnung, kompiliere das, speichere und spiele und schüttle es aus. Ich kann die eine Taste drücken. Und der eine Schlüssel ist wieder das Hinzufügen. Einige rufen dieses benutzerdefinierte Ereignis innerhalb von ThirdPersonCharacter auf. Aber jetzt drücke ich die Sieben-Taste. Und ich habe hier mein Level als meine Debug-Option festgelegt. Also wirst du sehen, wie das Feuer ausgeht. Los geht's sieben. Das kann es auch nennen. Das ist also einer der Hauptvorteile eines benutzerdefinierten Events, wenn Sie einen Verweis auf diesen bestimmten Blueprint haben , in diesem Fall unseren ThirdPersonCharacter. Sie können das dann ausführen und das benutzerdefinierte Ereignis finden. Sie können diese Kundenveranstaltung anrufen. Okay, damit das erledigt ist, lassen Sie uns zu einigen Nuancen kommen, einigen anderen Dingen, die Sie mit diesen benutzerdefinierten Ereignissen tun können . Ich werde hier zu meinem ThirdPerson-Charakter-Blueprint zurückkehren . Und was ich tun werde, ist, ich werde hier von dieser kleinen roten Box herunterziehen . Was ist das? Dies ist ein Ausgangsdelegierter. Also wofür kann ich das verwenden? Nun, lassen Sie uns ein Beispiel aufstellen. Ich klicke mit der rechten Maustaste und etwas Leerzeichen hier und tippe Ereignisse ein. Fangen Sie an zu spielen. Ich hatte das mit meiner Erstellung des Widgets, meinen HUD-Widgets, verbunden . Olivia trennt das, indem sie die Alt-Taste gedrückt hält. Linksklick, ich werde das Event stehlen und schnell mit dem Spielen beginnen. Ich werde das ganz nach unten bringen, indem ich ein benutzerdefiniertes Gesundheitsereignis hinzufüge. Dann ziehe ich das in die Länge und gebe Timer für Ereignis einstellen“ ein. Zu Beginn des Spiels. Das ist unser ThirdPerson-Charakter , der im Spiel spawnt. Wir können ein Ereignis auslösen lassen, egal welches Ereignis wir daran anschließen. Nun, das funktioniert nicht nur für ein benutzerdefiniertes Ereignis, sondern ich zeige es hier mit einem benutzerdefinierten Ereignis. Dies könnte auch für andere Veranstaltungen funktionieren. Du kannst Event B im Spiel sehen und auch andere Events haben einen solchen Delegierten. Also nehme ich das, stecke es hier ein und ich stelle meine Zeit auf 5 s ein. Und ich werde es auch so einstellen, dass es sich wiederholt. Lassen Sie uns nun verstehen, was ich hier mit diesen benutzerdefinierten Ereignissen vor sich habe. Ich sage, ein Teich fängt an zu spielen. Wir werden diese Funktion aufrufen, diesen Timer für jedes Ereignis so einstellen, dass es passiert. Was hier passieren wird, ist, dass alle 5 Sekunden dieses Ereignis, das an diese eingestellte Timer-Funktion angeschlossen ist, ausgelöst wird. Und es wird alle 5 Sekunden passieren weil wir dieses Looping-Kontrollkästchen aktiviert haben. Also sieh dir das an. Also lass uns das kompilieren und spielen. Es ist also noch kein Event B-Mitarbeiter eingetreten. Alle 5 s. Kann weitere 5 s warten. Das Spiel mit Beginn des Events wurde also gleich zu Beginn abgefeuert. Sobald ich mein Spiel gestartet habe, reagiert mein Charakter. Von dort. Du wirst dieses Feuer nicht mehr ausgehen sehen, aber es wird weiterhin alle 5 Sekunden laufen, bam, bam, bam, bam, bam. In Ordnung, jetzt wissen Sie, dass der Erstellung des Kundenereignisses und dem Hinzufügen zu Ihrem Diagramm an Ihnen liegt, es nach der Erstellung des Kundenereignisses und dem Hinzufügen zu Ihrem Diagramm an Ihnen liegt, sicherzustellen, dass Sie dafür sorgen , dass dieser Kundenentzug ausgelöst wird. Manchmal kann das etwas nervig sein , wenn Sie Dinge testen, weil die Bedingungen, die Sie eingerichtet haben, um dieses benutzerdefinierte Ereignis aufzurufen, vielleicht etwas komplex sind. Gibt es etwas , das Sie zu Testzwecken tun können , um das Auslösen der Kundenveranstaltung zu vereinfachen? Nun, da dieses benutzerdefinierte Ereignis im Detailbereich ausgewählt ist , haben Sie ein Kontrollkästchen für den Call-In-Editor. Mach weiter und überprüfe das. Dies ist hier ein sehr wichtiger Schritt, wenn dies aktiviert Fahren Sie fort und klicken Sie auf diese Kompilierungsoption. Sobald Sie das getan haben, stellen Sie fest, dass dieses Symbol hier in Ihrem benutzerdefinierten Ereignis von diesem Pfeilsymbol zu diesem kleinen Ding im Diamanten wechselt. Was das jetzt tun wird, ist , wenn wir zu unserem Leveleditor zurückkehren Sobald ich gespielt habe, wird unser ThirdPerson-Charakter erscheinen. Es wird in unserem Outliner präsent sein. kann ich dann auswählen. Und drüben im Detailbereich. In AddHealth gibt es eine Schaltfläche, auf die ich klicken kann , um manuell ein benutzerdefiniertes Ereignis auszulösen. Ich mache das möglich. Ich brauche ein bisschen Seitenfenster. Ich werde auf Abspielen klicken. Ordnung, da drüben ist mein Spielfenster. Jetzt drüben, mein Hauptredakteur. Ich werde das ein bisschen abziehen müssen, tut mir leid für diesen Platzmangel. Da ist mein ThirdPersonCharacter in Gelb, ich werde weitermachen und das darin gespawnte auswählen, sodass die gelbe Färbung angezeigt wird. Und hier unten im Detailbereich. Wenn ich nach AddHealth suche, kann ich jetzt in AddHealth Buttons finden, also habe ich es gerade gemacht, ich habe es gerade eingerichtet. Also hier im Editor kann ich dieses benutzerdefinierte Ereignis manuell aufrufen. Beachten Sie also, dass, sobald ich darauf klicke , alle folgenden Skripte ausgeführt werden, was zu einer Explosion in OneNote führen wird. Wenn du also hier drüben schaust, während ich auf Gesundheit hinzufügen klicke, wird dieses benutzerdefinierte Ereignis aufgerufen, bam, bam, bam. Du siehst auch, wie sich die Gesundheit verbessert. Aber das ist natürlich nicht alles Checkout. Was wir sonst noch mit einem benutzerdefinierten Ereignis machen können wenn dieses im Detailbereich ausgewählt ist, ich habe diesen Eingabebereich. Wofür können wir das verwenden? Nun, lassen Sie mich hier auf diese Plus-Schaltfläche klicken und ein kurzes Beispiel zeigen. Wir können einen Input erstellen. Beachten Sie, dass dies gerade bei einer neuen Parametereingabe aufgetaucht ist, und da ist der Name. Also lass uns weitermachen und es benennen. Nennen wir das Health to add. Und Sie können den Typ ändern. Beachten Sie, dass ich den Namen aktualisiert habe und einen hier aktualisiert habe. Ich möchte nicht, dass das ein boolescher Wert ist, also werde ich es in einen Float ändern. Und ich werde mein Skript einfach wie folgt ändern. Lass mich einfach weitermachen und es so machen , dass unsere Gesundheit hinzukommt, Lass uns nicht die Kabel überqueren, oder? Wir werden AddHealth anrufen. Wenn wir AddHealth aufrufen, werden wir herausfinden, wie viel Gesundheit wir hinzufügen möchten, sie zu unserer bestehenden Gesundheit hinzufügen und diese als unsere neue Gesundheit festlegen. Beachten Sie nun, dass dies alles ein wenig verwirrend ist, zumindest in dieser Phase da dies als Eingabe bezeichnet wird. Und das ist auf der rechten Seite eines Knotens. Und wie ich bereits erwähnt habe, befinden sich die Ausgänge auf der rechten Seite eines Knotens. Eingänge befinden sich auf der linken Seite eines Knotens. Das ist hier alles ein bisschen irreführend, aber es macht Sinn, wenn Sie hier nach unten scrollen und beachten, dass dieser AddHealth-Aufruf dieses benutzerdefinierten Ereignisses genau hier eine Eingabe hinzugefügt hat , health to add. Indem Sie diese Eingabe zu unserem benutzerdefinierten Ereignis hinzugefügt haben, haben Sie sie als Eingabe für den Aufruf dieser benutzerdefinierten Ereignisse hinzugefügt. Also lass uns das ändern auf, lass uns 25 gehen. Und wenn ich jetzt weitermache, kompiliere, speichere, spiele. Beachten Sie, dass jedes Mal, wenn ich eine Taste drücke , dieses benutzerdefinierte Ereignis ausgelöst wird. Jedes Mal, wenn ich das tue, heißt es, hey, füge 25 Gesundheit zu unserer bestehenden Gesundheit hinzu und lege das als unsere neue Gesundheit fest. Also los geht's. Sie können sehen, dass es jedes Mal um 25 steigt. Also, nur um es kurz zusammenzufassen, warum benutzerdefinierte Ereignisse verwenden? Nun, Nummer eins, wenn Sie ein benutzerdefiniertes Ereignis in dem von Ihnen erstellten Blueprint aufrufen , dieses benutzerdefinierte Ereignis, können Sie diese drahtlosen Verbindungen erstellen, die dafür sorgen, dass diese drahtlosen Verbindungen erstellen, die alles schön, übersichtlich und sauber. Der Hauptvorteil eines benutzerdefinierten Ereignisses besteht jedoch darin, dass es in einem Blueprint erstellt wird. Solange Sie einen Verweis darauf haben , wenn Sie einen Blueprint haben, wie wir es hier in unserem Level-Blueprint tun, können Sie dieses benutzerdefinierte Ereignis aufrufen, was das Mächtigste an ihnen ist. Oder Leute, die alles für dieses Video tun werden, wir sehen uns im nächsten Video. 41. Variablen Übersicht: Okay, mit den Ereignissen im Rückspiegel werden wir unsere Aufmerksamkeit auf das Thema Variablen richten und unser das Thema Variablen richten und Ziel in diesen speziellen Videos zu lernen und Variablen sind, wenn es um das Programmieren geht, oder in unserem Fall Blueprints Scripting. In Ordnung, also was ist überhaupt eine Variable? Nun, Sie können sich Variablen als Container vorstellen , die eine bestimmte Art von Informationen enthalten. Und ich liebe die Tatsache , dass in Unreal, diese Behälter, diese Variablen quasi kapselförmig sind. Wenn Sie sich vorstellen, dass eine Kapsel etwas aufnehmen kann , bekommen Sie eine Vorstellung davon, worum es bei Variablen geht. Sie enthalten etwas, in diesem Fall enthalten sie einige Daten und tatsächlich bestimmte Datentypen, abhängig von ihrem Typ. Nun, diese Container, diese Variablen existieren in einem bestimmten Blueprint. Also gerade bin ich in meinem Level-Blueprint. Diese Variablen, die in meinem Bedienfeld „ Mein Blueprint“ erstellt wurden, existieren nur in diesem speziellen Blueprint. Wenn ich zu meinem BP-Beispiel-Pickup übergehe , war das ein Plan für die Schauspielerklasse. Ich habe hier ein paar Variablen, dieser Tonabnehmer ist eine davon. Ich habe auch eine Delta-Sekunden-Variable. Diese gibt es nur in meinem BP-Beispiel-Pickup. Schauen wir uns unseren ThirdPersonCharacter an. Es gibt Variablen , die direkt in meinem ThirdPersonCharacter existieren . Jetzt können diese Container, diese Variablen erstellt werden. Diesen Containern, diesen Variablen kann ein Standardwert zugewiesen werden, oder sie könnten leer sein. Und wenn ich mir nur unseren Third-Person-Charakter hier ansehe , ich habe diese Gesundheitsvariable und sie hat derzeit einen Standardwert von 100. Und der Inhalt dieser Container kann sich im Laufe der Zeit ändern. Ihr Inhalt kann variiert werden. Wie wir hier sehen können, beginnt ein Charakter aus der dritten Person mit einem Gesundheitswert von 100. Sie haben jedoch in früheren Videos gesehen diese Gesundheitsvariable geändert haben, um sie zu ändern. Es muss nicht bei 100 bleiben. Wenn ich Schaden erleide, könnte er auf 75, 60 usw. sinken. Oder ich kann wieder gesund werden und meinen Weg zurück mit voller Gesundheit und 100 finden. Also, wo können Sie diese Variablen erstellen? Nun, es gibt verschiedene Möglichkeiten, dies im Bereich Mein Blueprint zu tun . Möglichkeit Nummer eins ist, dass Sie einfach hier drüben auf diese Schaltfläche Hinzufügen klicken. Dort können Sie eine Variable erstellen. Eine andere Möglichkeit besteht darin, im Bereich Mein Blueprint den Abschnitt Variablen zu suchen und hier auf diese Plus-Schaltfläche zu klicken. Es ist also erwähnenswert, dass einige Blueprints möglicherweise vererbte Variablen haben. Das heißt, Variablen, die zusammen mit der übergeordneten Klasse geliefert wurden , von der Ihr aktueller Blueprint erbt. Sie werden jedoch standardmäßig nicht hier in meinem Blueprints-Panel angezeigt . Du kannst sie entlarven. Wir könnten das also tun, indem wir auf dieses Zahnradsymbol klicken und Sie erhalten dieses kleine Flyout-Menü, das vererbte Variablen anzeigt. weitermachen und auf dieses Häkchen klicken , wird diese Kategorie angezeigt. Und jetzt sehen Sie, dass in Ihrem Variablenbereich eine ganze Reihe verschiedener Kategorien gefüllt werden. Und Sie können diese erweitern, indem Sie einfach auf eines dieser Dreiecke klicken. Lassen Sie mich diese Bauernkategorie hier einfach erweitern. Und jetzt können Sie all Ihre verschiedenen Variablen im Mauszeiger des My Blueprint-Bedienfelds sehen. Es ist ziemlich nervig, sie alle einzeln so anzuklicken, um zu sehen, was ihr Standardwert ist. Gibt es einen einfacheren Weg? Nun, natürlich gibt es einen. Wenn ich ganz oben in meinem Blueprint auf die Schaltfläche „Klassenstandardwerte“ klicke auf die Schaltfläche „Klassenstandardwerte“ , kann ich sehen, dass all die verschiedenen Variablen, die für diese übergeordnete Klasse existieren, Charakter sind, das ist spezifisch für BP , Charakter aus dritter Person. Beachten Sie, dass ich eine Kategorie von Variablen habe. Und drüben auf der rechten Seite werden all diese Variablen und alle ihre Standardwerte angezeigt. Das ist ziemlich praktisch. Standardschaltfläche dieser Klasse. Beachten Sie auch, dass die Variablen , die wir zu Beginn des Kurses erstellt haben, die Gesundheitsvariable haben und so weiter. Sie gehören zu einer Kategorie, die als Standardwerte bezeichnet wird. Und WPP HUD fiel unter die Kategorie Standard. Wenn wir also wieder zu unseren Klassenstandardwerten kommen, können wir sehen, dass wir eine Standardkategorie haben und diese derzeit darunter existieren. Beachten Sie nun, dass verschiedene übergeordnete Klassen unterschiedliche Mengen an vererbten Variablen haben. Wenn Sie jedoch auf die Standardwerte dieser Klasse klicken, werden alle Variablen angezeigt, die Sie an einem bestimmten Blueprint ändern können , einschließlich der Variablen, die Sie erstellt haben, und Sie erhalten alle ihre Standardwerte auch, ziemlich praktisch. Nun noch etwas Bemerkenswertes, dass einer bestimmten Klasse zwar einer bestimmten Klasse zwar eine ganze Reihe von Variablen zugeordnet sein können. Also um Komponenten zu tun, also wenn ich meine Charakterbewegungskomponente drüben im Komponentenfenster auswählen meine Charakterbewegungskomponente drüben im Komponentenfenster würde. Du kannst sehen, dass dieser Bewegungskomponente, dieser Charakterbewegungskomponente, eine ganze Menge Variablen zugeordnet sind. Dies sind alles Variablen, da ihr Inhalt geändert werden kann. Beachten Sie nun, dass ein allgemeiner Jargon , den Sie oder hören, wenn es um Variablen geht , ist, dass Sie die Variable erhalten oder die Variable setzen können. Lassen Sie mich jetzt schnell zu meinem Event-Diagramm übergehen. Und ich werde einfach mein gesünderes verwenden. Wenn ich mit der linken Maustaste klicke und das in das Diagramm ziehe , ich einfach mit der linken Maustaste und ziehe es. Und ich habe veröffentlicht. Es wird sagen, möchten Sie Ihren Gesundheitswert ermitteln oder möchten Sie Ihren Gesundheitswert festlegen? Lassen Sie uns diese also untersuchen. Indem ich es bekomme. Wir können sagen, Hallo. Wie viel ist hier drin? Und lassen Sie uns das in einen anderen Knoten stecken. In diesem Fall sagen wir, wie viel Gesundheit in dieser Kapsel steckt, oder? Umgekehrt kann ich mit der linken Maustaste klicken und ziehen und sagen: Lass uns die Gesundheit einstellen. Mit diesem Knotentyp, einem Setter, können Sie nun festlegen, auf wie viel Gesundheit dieser geändert werden soll. Auch hier kann eine Variable geändert werden. Hier bekommen wir den aktuellen Inhalt. Hier legen wir den Inhalt auf den Wert dieser Variablen fest. Wenn ich also den Wert unserer Gesundheit ändern möchte, könnte ich sagen, weißt du welche Gesundheit, ich möchte, dass du 50 wirst. Jetzt habe ich das einfach fest codiert, indem ich eine Zahl eingegeben habe. Aber es könnte eine weitere Variable haben, die dazu beitragen könnte , dass es sich um eine neue Gesundheitsmenge handelt. Beachten Sie jedoch, dass Sie mit einem Getter diese Daten einfach aus dieser Variablen extrahieren. Mit einem Setter. Du musst ein Hinrichtungskabel einhängen. Und Execution Wire muss das einstellen. Also muss ein Ereignis oder ein anderer Knoten , der dazu führt, in ihn einfließen. Und du könntest auch etwas daraus herausfließen lassen , wenn du mit deinem Skript weitermachen willst, aber du musst etwas in diesen Ausführungs-Pin genau hier einfließen lassen, damit es gesetzt wird, das heißt ändere den Wert dieser Variablen. Nun ein paar Tastenkombinationen , die Sie verwenden können wenn Sie versuchen, einen Knoten abzurufen oder festzulegen. Du hast mich gesehen, es klickt mit der linken Maustaste und zieht und du bekommst dort das kleine Menü , um es zu bekommen oder einzustellen. Eine Abkürzung hier ist, wenn Sie die Strg-Taste gedrückt halten und mit der linken Maustaste klicken und das so einfügen, erhalten Sie diese Variable. Umgekehrt, wenn Sie die Alt-Taste gedrückt halten, mit der linken Maustaste klicken, ziehen und ablegen, erhalten Sie einen Setter für diese Variable. Also sehr wichtiger Jargon, den Sie dort verstehen sollten. Sie erhalten den Wert einer Variablen oder setzen diese Variable auf einen neuen Wert. Und schließlich ist eine sehr wichtige Sache, an die Sie sich erinnern sollten, dass Sie einen Blueprint kompilieren müssen, um einen Standardwert festzulegen. Also werde ich hier zu meinem BP-Beispiel springen , das ist dieser Typ. Und sagen wir einfach, ich wollte eine Variable hinzufügen , die angibt , wie viel Lebenspunkte unser Charakter heilen soll, sobald wir ihn überschneiden. Also könnte ich eine Variable erstellen , indem ich auf diesen Plus-Button klicke. Das nennen wir Heilungsbeträge. Drüben im Detailbereich heißt es jedoch, dass ich keinen Standardwert geben kann, es sei denn, ich kompiliere ihn. Wenn ich also oben links bei dem gelben Fragezeichen drüber klicke , heißt kompilieren, fertig. Ich kann dem jetzt einen Standardwert geben. Ich sage 25. Großartig. Das ist auch wichtig, denn wenn Sie versuchen, einem anderen Blueprint aus auf diese Variable zuzugreifen, ist dies ein notwendiger Schritt. Und nur um das zu demonstrieren, lass mich dir zeigen, dass ich eine Instanz dieses Blueprints habe , meinen BP-Beispiel-Pickup in meinem Level Ich werde zu meinem Level-Blueprint springen , Level öffnen Bauplan. Ich halte die R-Taste gedrückt und klicke mit der linken Maustaste um einen Verweis auf diesen Beispiel-Pickup zu erstellen. Und wenn ich das jetzt hinter mir lassen und eintippen würde, was ich das nenne, würde Heilung bedeuten. Ich könnte jetzt die Menge zum Heilen bekommen, wenn ich sie finden und auf dem Bildschirm ausdrucken müsste oder so. Oder ich könnte das rausziehen und die Menge eingeben, um zu heilen. Und Hoppla, noch nicht. Es läuft darauf hinaus, zu heilen. Wir könnten diesen Betrag festlegen. Wenn ich also den Standardwert hier in einen anderen wertvollen Wert ändern möchte den Standardwert hier in einen anderen wertvollen , können Sie mit Variablen den Inhalt dieses Containers ändern. Ich kann sagen, weißt du was, ich möchte nicht, dass du 25 heilst. Ich möchte, dass du stattdessen nur fünf heilst. könnte ich auch machen. Ordnung Leute, es wird alles für diesen kurzen Überblick über Variablen abgeschlossen. Wir sehen uns im nächsten Video. 42. Boolean: Willkommen zurück, alle zusammen. In diesem Video wollen wir lernen, was eine boolesche Variable ist und wie man eine erstellt, damit sie beim Blueprint-Skripten verwendet werden kann . Also zunächst, was ist eine boolesche Variable? Nun, eine boolesche Variable ist eine Variable, die wahre oder falsche Informationen enthält. Und wir haben im letzten Video darüber gesprochen, Variablen im Wesentlichen Container sind dass Variablen im Wesentlichen Container sind, die irgendwelche Daten enthalten. Eine boolesche Variable ist ein Container, einfach wahre oder falsche Informationen enthält. Stellen Sie sich also eine Kapsel vor und darin befindet sich ein Stück Papier. Und auf diesem Blatt Papier steht entweder wahr oder falsch. Das ist alles, was es sein kann, entweder wahr oder falsch. Und je nach Inhalt können Sie es mit so etwas wie einem Zweigknoten verbinden um einen verzweigten Ausführungspfad zu erstellen. Wenn es wahr ist, tu das. Wenn es falsch ist, tu das. Also hier bin ich in meinem Charakter-Blueprint für die dritte Person, und wir werden hier ein Beispiel zeigen. Lassen Sie uns damit beginnen, eine boolesche Variable zu erstellen, indem unter die Variablen des Bedienfelds Mein Blueprint Diese kleine Plus-Schaltfläche finden Sie hier. Und wir werden eine Variable namens can jump erstellen. Und normalerweise setze ich gerne ein Fragezeichen danach. Ich drücke hier die Eingabetaste. Ich persönlich, und das ist meine persönliche Präferenz. möchte meine booleschen Variablen mit einem Fragezeichen benennen. Stimmt das im Wesentlichen oder ist es falsch? Jetzt kann ich den Variablentyp ändern , indem ich entweder hier rechts klicke, und Sie können sehen, dass es für mich standardmäßig boolesch ist Ich kann direkt dort klicken und es ändern, oder würde diese Variable im Bereich „Details“ ausgewählt? Ich kann den Variablentyp auch hier ändern. Nur eine lustige Tatsache für dich hier. Wenn Sie eine neue Variable erstellen, wird der Typ der Variablen so festgelegt, dass er der letzte Variablentyp ist, den Sie erstellt haben. Also, was machen wir mit diesem Can Jump? Nun, zunächst müssen wir ihm einen Standardwert geben. Dazu müssen wir den Blueprint kompilieren. Also lasst uns weitermachen und es kompilieren. Und wenn das erledigt ist, können wir einen Standardwert festlegen. Ich sage ja, wir können standardmäßig springen, kreuzen Sie das Kästchen an. Geprüft bedeutet wahr, nicht geprüft bedeutet falsch. Lass uns weitermachen und das Kästchen ankreuzen. Lassen Sie uns nun weitermachen und diese boolesche Variable verwenden. Um das zu tun, werde ich hier etwas Abstand zwischen unserer Eingabeaktion Jump schaffen , die ausgelöst wird, wenn wir die Leertaste drücken, und unserer Sprungfunktion genau hier. Mit unserer Variablen können wir also im Bereich Mein Blueprint nach unten klicken, klicken wir mit der linken Maustaste und ziehen sie in unser Event-Diagramm. Wollen wir es bekommen oder einstellen? In diesem Fall wollen wir den Inhalt davon erhalten. Wir wollen herausfinden, ob wir springen können. Was ich als Nächstes tun werde, ist, daraus einen Branch-Knoten zu ziehen , einen der häufigsten Knoten im gesamten Blueprint-Skripting. Sie können sehen, dass dieser Zweigknoten einen roten Variablentyp annehmen kann , der ein boolescher Variablentyp ist. Das ist die Bedingung hier, die es uns ermöglicht etwas hinzuzufügen, um zu bewerten : Hey, was ist der Inhalt dieser Variablen? Jetzt sind es nur lustige Fakten hier. Wenn ich mit der linken Maustaste klicke und dieses Kabel unterbreche, könnten wir diese Bedingung auf wahr oder falsch, wahr, falsch festlegen . Aber ich möchte den Inhalt dieser Variablen einlesen. Also stelle ich das als meine Eingabe für den Zweigknoten ein. Lass uns das jetzt hier dazwischen schieben. Hier werde ich diesen Draht durchtrennen, indem ich die Alt-Taste gedrückt halte und mit der linken Maustaste klicke. Und ich werde mein Skript so einstellen, dass es so ist, sobald ich die Leertaste drücke, wodurch dieses Ereignis ausgelöst wird, werden wir auswerten, ob diese Variable wahr oder falsch ist? Wenn es wahr ist, werden wir springen. Wenn es falsch ist, werden wir nichts tun. Jetzt ist derzeit auf „Wahr“ gesetzt. Sie würden also erwarten, dass wir in der Tat springen werden. Lass uns weitermachen und kompilieren. Und lass uns spielen. Und wenn ich mein Debug-Objekt hier als meinen ThirdPersonCharacter setze. Lassen Sie mich weitermachen und das zur Sprache bringen. Jetzt wirst du sehen, wie das Drehbuch genau hier abgefeuert wird. Wenn ich die Leertaste drücke. Du wirst sehen, dass ich tatsächlich springen kann, sobald ich es loslasse. Übrigens, dieser Stop-Jumping wird schießen. Aber weil das als wahr bewertet wird, kann ich weitermachen und springen. Wenn ich das jetzt ändern sollte, ich die Strg-Taste gedrückt, klicke mit der linken Maustaste und wechselt zu falsch. Jetzt werden wir sehen, hey, ist Ken Jump auf falsch eingestellt? Nun, ist es nicht. Wenn ich also weiterspielen sollte, wirst du sehen, dass ich jetzt die Leertaste drücke. Aber es geht nie wirklich darüber hinaus, dass dieser Zweigknoten genau hier stirbt , weil der Inhalt dieser Variablen springen kann. Boolesche Variablen, die auf true gesetzt sind, sind nicht auf falsch gesetzt, also machen sie zu unserem Charakter, sie können nicht springen. Okay, zugegebenermaßen war das ein ziemlich akademisches Beispiel, aber lassen Sie uns mit etwas etwas Lebensgetreuerem beginnen. Lass uns mit diesem Szenario fortfahren, in dem deine Charaktere gerade ein überfülltes Gebäude betreten haben. Und in Spielen wirst du oft feststellen, dass dein Charakter nicht rennen kann, wenn du dich in einem überfüllten Gebäude befindest. Sie hindern deinen Charakter daran, eine Waffe zu ziehen. Und in unserem Fall sagen wir, dass unser Charakter nicht springen kann. Jetzt stürzt mein Computer hier zwischen kleinen Schnitten ab. Stellen Sie also sicher, dass Sie Ihr Input-Action-Jumpe-Skript wie folgt eingestellt haben . Wir möchten sagen, dass kann springen, was standardmäßig auf true gesetzt ist. Wir werden es verzweigen und sicherstellen, dass wir bei true ja sagen, du kannst springen. Was wir hier tun werden ist in unserem Level-Blueprint, den Inhalt dieser Variablen zu ändern. Wenn wir uns also innerhalb einer Triggerlautstärke befinden, verhindern wir, dass unser Charakter springt. Und wenn wir draußen sind, drehen wir es zurück, damit es springen kann. Lass uns weitermachen und das tun. Jetzt müssen wir auf unser Niveau zurückkehren. Drinnen von hier. Wir werden eine Triggerbox platzieren. Und das kannst du wieder tun, indem du untergehst. Hier. Mit diesem einfachen Tab findest du deine Triggerbox, in der du dein Spielfeld aufrufen kannst. Platziere das vor deinen Spielern. Starte Schauspieler. Ich werde es schnell auf 100, 200, 200 skalieren. Lassen Sie mich die Linienstärke auf etwa zehn festlegen. Etwas Nettes und Dickes. Ich werde mir nicht allzu viele Sorgen um den Polizisten machen. Und unten werde ich das Rendern so ändern , dass Actor Hidden End Game nicht aktiviert ist. Das wird es schaffen, damit wir das sehen können. Jetzt wurde dieses Triggerfeld ausgewählt. Gehen wir zu unserem Level-Blueprint. Du kannst deinen Level-Blueprint aufrufen, indem hier und hier mit der rechten Maustaste klickst. Und wir haben diese Triggerbox in unseren Levels ausgewählt. Wir können eine Veranstaltung dafür hinzufügen. Fügen wir eine hinzu, um die Überlappung zu beginnen. Und wir werden auch eine für die Endüberlappung hinzufügen. Wir wollen nur überprüfen, wer der andere Schauspieler war. Wir wollen überprüfen, ob es Charakter aus der dritten Person war. Also werde ich hier rausziehen und die dritte Person eingeben, die wir in unseren ThirdPersonCharacter übertragen können. So wie. Wenn es der ThirdPerson-Charakter , der uns überlappt hat, rate mal was? Wir können innerhalb unseres ThirdPersonCharacter Blueprint darauf zugreifen. Und wir können auf die Variablen zugreifen , die darin enthalten sind, einschließlich solcher, die eine boolesche Variable, die wir gerade erstellt haben, springen können . Also wirklich, ich werde meinen Zehnersprung einstellen, ich werde Can Jump so eingeben. Und da ist meine Variable. Ich kann es entweder bekommen oder einstellen. In diesem Fall möchte ich es einstellen. Also ich sage, wenn unser Charakter diese Triggerbox überlappt, können wir nicht springen. Wir werden das als falsch belassen. Ziehen Sie mit der linken Maustaste, um diese beiden Knoten zu markieren, drücken Sie C zum Kopieren, Strg V zum Einfügen. Ich werde das so und so einbinden. Und wir werden sagen, wenn wir aufhören diese Triggerbox zu überlappen, sagen wir ja, du kannst wieder springen. Also in der Triggerbox sagen wir: Nein, du kannst nicht aus ihr herausspringen. Wir werden sagen, ja, du kannst dich daran erinnern, dass wir hier in unserem ThirdPersonCharacter Blueprint überprüfen, wenn wir die Leertaste drücken, wir überprüfen standardmäßig den Inhalt dieser Variablen auf true. Aber in unserem Level-Blueprint ändern wir, wenn wir diese Triggerbox überlappen, auf falsch. Wenn wir es beenden, ändern wir es wieder in wahr. Machen Sie weiter und kompilieren Sie das schnell. Stellen Sie sicher, dass unser Drehbuch gut aussieht. Speichere es. Lass uns weitermachen und spielen und das ausdrücken. Lassen Sie mich das hier nur ein bisschen nach oben verschieben. Eigentlich nicht, ich kann das nicht bewegen, während wir spielen. Lassen Sie mich das einfach hier oben notieren. Spiel noch einmal. In Ordnung, los geht's. Ich befinde mich außerhalb der Leertaste der Triggerbox. Ja, ich kann springen. Wir werden meinen Charakter darin hineinbewegen. Sie sehen, es ändert diese Variable jetzt auf falsch und fährt mit der Maus darüber. kann ich mir auch vorstellen. Lassen Sie mich weitermachen und die Leertaste drücken. Ich kann nicht springen. Sobald ich dies jedoch verlasse, wird diese Variable wieder auf true umgestellt und ich kann springen. Okay, lassen Sie uns einige mögliche boolesche Anwendungsfälle besprechen einige mögliche boolesche Anwendungsfälle , die Sie in Spielen häufig sehen. Eine könnte sein, ist das Türgrundstück wahr oder falsch? Hast du die Schlüsselkarte, z. B. wie wäre es, wenn du eine Waffe abfeuern kannst? Hast du noch ein Tier übrig, wahr oder falsch? Was ist mit können Sie einen Artikel abholen? Bist du nah genug dran, wahr oder falsch? Was ist mit der Möglichkeit, einen Gegenstand auszurüsten? Bist du ein ausreichend hohes Level, wahr oder falsch? Was ist mit kannst du einen Artikel kaufen? Hast du genug Geld, wahr oder falsch? Die sind alle möglich. Beispielhafte Anwendungsfälle einer booleschen Variablen. Okay Leute, das reicht aus, um diesen anzubieten. Wir sehen uns im nächsten. 43. Ganzzahl: In diesem Video möchten wir herausfinden, was eine Integer-Variable ist und wie sie in Ihren eigenen Spieleprojekten verwendet werden kann. Wir beginnen mit unserem ThirdPerson-Charakter-Blueprint. Dort finden Sie es also in Ihrem Inhaltsbrowser oder in der Inhaltsschublade. Doppelklicken Sie darauf, um es zu öffnen. Und bevor wir hier überhaupt eine Integer-Variable erstellen, lassen Sie uns darüber sprechen, was eine Ganzzahl überhaupt ist. Nun, das ist ein Container. Dieser Variablentyp ist ein Container, der ganze Zahleninformationen enthält. Das heißt, Zahlen ohne Dezimalpunkt. Dies können positive oder negative Zahlen sein. Nun können Sie sich einige Anwendungsfälle vorstellen , bei denen ganze Zahlen verwendet werden. Dinge wie Punktewerte werden oft in ganzen Zahlen ausgedruckt. Geldwerte, wie viel Gold oder Silber , solche Sachen hast du. Oder was ist mit dem Level eines Charakters? Level eins bis 100? Das sind normalerweise ganze Zahlen. Heutzutage werden Ganzzahlen auch oft verwendet, um die Logik zu steuern, z. B. könnten Sie überprüfen, ob der angegebene Wert einer Ganzzahl, die Save-Erfahrungspunkte einen bestimmten Schwellenwert erreicht hat. Und wenn ja, steigt der Spieler auf, okay, lass uns eine Integer-Variable erstellen. Hier ist mein Blueprints-Panel. Dieses Mal erstelle ich eine, indem direkt hier unter der Schaltfläche Hinzufügen klicke. Lassen Sie uns eine Variable erstellen. Und standardmäßig wird der Typ derselbe sein wie Ihre zuletzt erstellte Variable. Es beginnt also mit Boolean. Ich nenne das insgesamt verdiente XP. Und Sie können den Variablentyp entweder hier ändern , was ich tun werde. Wir möchten dies auf Integer und nicht auf Integer 64 setzen, aber wir werden etwas später in diesem Video über diese Unterschiede sprechen aber wir werden etwas später in diesem Video über diese Unterschiede sprechen. Sie können es also hier am Variablentyp oder im Detailbereich ändern. Sie können den Variablentyp auch hier ändern. Wir werden später im Kurs über diese Unterschiede sprechen . Aber vorerst sollten Sie wissen, dass sich der Variablentyp, den Sie ändern möchten, in diesem Drop-down-Menü befindet. Etwas mehr Nuance zur Erklärung, während wir hier sind, können wir einen Schiebereglerbereich für diese Variable sowie einen Wertebereich festlegen . Nun, was heißt das überhaupt? Nun, um diesen Punkt wirklich zu verdeutlichen, lassen Sie uns unseren Blueprint kompilieren , damit wir einen Standardwert festlegen können. Und wenn wir jetzt einen Schiebereglerbereich festlegen und es von Null bis versuchen , gehen wir auf 50.000. So wie. Und unser Wertebereich liegt, sagen wir, zwischen 0 und 100 Tausend. Wir haben im Wesentlichen einige Obergrenzen dafür festgelegt wie weit wir diesen Wert bringen können. Jetzt kommt der Schiebereglerbereich zustande, wenn Sie mit der linken Maustaste darauf klicken. Sehen Sie, wie das Pfeilsymbol von meinem Mauszeiger zum Links- und Rechtspfeil übergegangen meinem Mauszeiger zum Links- und ist, ich kann mit der linken Maustaste klicken. Und wenn ich das nach links verschiebe, kann ich nicht unter Null gehen. Wenn ich ihn jedoch nach rechts verschiebe, kann ich bis zu einer Obergrenze von 50.000 gehen, das ist der Schiebereglerbereich. Wenn ich jedoch darauf klicken und eine Zahl eingeben würde, versuche ich es mit 200.000. ist schwierig, es einzugeben und die Eingabetaste zu drücken. Es wird es auf meinen Wertebereich begrenzen hier heißt es, mein Wertebereich liegt zwischen 0 und 100 Tausend. Das ist der höchste Wert , den ich einstellen kann. Der Wert des Schiebereglers bestimmt wie viel, wenn Sie hier mit der linken Maustaste klicken und ihn ziehen, wie viel es kostet, wenn Sie einfach mit der linken Maustaste klicken und ihn ziehen. Der Wertebereich ist, wenn Sie darauf klicken, was sind die maximalen und minimalen Zahlen? Sie können hart eingeben. Ich setze das vorerst wieder auf Null. Lassen Sie uns als Nächstes zu unserem Ereignisdiagramm springen und ein einfaches Skript erstellen , um diese Integer-Variable zu verwenden . Ich gehe mit der rechten Maustaste und etwas leerem Raum. Ich gebe die Tastatur ein und suche nach dem Keyboard-Event. Jedes davon wird gut funktionieren. Aber ich werde nach x suchen, weil wir hier etwas tun werden , das unsere Erfahrungspunkte wert ist. Also, wenn wir die X-Taste drücken, was wollen wir tun? Nun, wir nehmen unsere gesamten Erfahrungspunkte. Ich halte die Strg-Taste gedrückt, klicke mit der linken Maustaste und ziehe, um die Variable zu erhalten, deren Inhalt derzeit Null ist. Und dann werde ich das in die Länge ziehen. Wenn Sie die Plus-Schaltfläche „Operator hinzufügen“ verwenden, gelangen Sie dorthin. Wir werden 100 hinzufügen. Ich werde es einfach hart festlegen. Dann lege ich einen neuen verdienten XP-Wert fest. Also werde ich die Taste gedrückt halten, ich klicke einfach mit der linken Maustaste und ziehe es per Drag & Drop direkt hier ab. Ich halte einfach die Alt-Taste gedrückt, klicke mit der linken Maustaste und ziehe. Aber wenn ich diese Variable einfach hier in dieser Ausgabe ablege , geben sie mir einen Setter. Okay? Nun, wir werden von hier aus das Ganze in die Länge ziehen. Lass uns diese Zeichenfolge drucken. Lassen Sie uns die Menge davon auf unseren Bildschirm drucken. Bringt eine kleine Konvertierung mit sich, indem ein Integer-Datentyp in einen String-Datentyp umgewandelt wird. Ich werde dann von hier wegziehen. Und wir werden nach einem Knoten suchen , der größer als oder gleich ist. Wir sagen, wenn unser gesamter Erfahrungspunkte-Verdienst größer oder gleich ist, sagen wir 500. Und ich mache mich einfach auf den Weg. Diese, auf dem Knoten selbst, könnte ich diese Unvariablen selbst enthalten, aber lassen Sie uns einfach mit dem harten Wert 500 fortfahren. Ziehen Sie davon ab, bringen Sie einen Zweigknoten hinein. Wir werden das so einbinden. Und wir werden sagen, wenn das stimmt, wenn wir insgesamt mehr als oder gleich 500 Erfahrungspunkte haben, dann ziehen wir uns von hier ab. Machen Sie einen weiteren Druck, Bildschirm, Bildschirm drucken, Zeichenfolge drucken. Und unsere Zeichenfolge hier wird einfach auf Gratz dein zweites Level lauten. Und lassen Sie uns hier einfach die Textfarbe ändern, sodass sie etwas schädliche Farbe wie Hot Pink Shore hat. Und lass es für 5 s auf dem Bildschirm erscheinen. Das sind also unsere Skripte hier. Wir können mit der linken Maustaste klicken und ziehen, um ein Kommentarfeld um diesen Linksklick zu legen , und ziehen markieren Sie alle, tippen Sie auf CQI. Und wir nennen das R mit einem Integer-Skript, um das Level zu erhöhen. Ich werde das Kommentarfeld hier drüben im Detailbereich auf schwarz ändern . Ordnung, kompiliere das, um sicherzustellen, dass dein Skript einsatzbereit ist. Das ist es, was wir hier vor uns haben. Lass uns weitermachen und nachschauen, dass wir diese Integer-Variable verwenden. Okay, also jedes Mal, wenn ich die X-Taste drücke, lass mich meine Debug-Objekte hier auf meinen ThirdPersonCharacter setzen . Jedes Mal, wenn ich die X-Taste drücke, wirst du sehen, wie das Feuer ausgeht. Oben links. Ich habe 100 XB. Wir beginnen mit Null und fügen 100 hinzu. Unsere neue Gesamtzahl ist 100. Nochmals, 200300400500 Glückwunsch, du bist Level zwei. Das ist also ein Beispiel für einen Anwendungsfall einer Integer-Variablen. Okay, lassen Sie uns dieses Mal ein weiteres Beispiel versuchen, auf diese Variable von einem anderen Blueprint aus zuzugreifen diese Variable von einem anderen Blueprint aus , unserem Level-Blueprint. Ich werde hier auf unser Level zurückkehren. Stellen wir sicher, dass in unserem Level eine Triggerbox platziert ist. Du hast mich das schon mehrmals machen sehen. Ich werde eine Triggerbox in meinem Level platzieren. Ich werde es nur ein bisschen verkleinern. Gehen wir 200 mal 200 mal 200, haben die Linienstärke auf zehn geändert. Du wirst inzwischen gut darin, ich gehe zum Abschnitt Rendern. Stellen Sie sicher, dass das korrekte versteckte Spiel nicht überprüft wurde. Mit dieser Auswahl. Ich werde zu unserem Level-Blueprint übergehen. In jedem leeren Raum, in jedem Diagramm, das Sie wählen. Ich klicke mit der rechten Maustaste. Wir werden ein Ereignis für diese Triggerbox hinzufügen. Wenn wir anfangen, es zu überschneiden, ziehen wir uns aus dem anderen Schauspieler heraus und schauen, ob das der ThirdPerson-Charakter ist. Und wenn ja, können wir jetzt einige Informationen aus unserem ThirdPersonCharacter extrahieren . Das heißt, wir können auf alle Variablen zugreifen, die sich in unserem ThirdPersonCharacter Blueprint befinden. Noch einmal, sobald Sie irgendeine Art von Verweis auf ein bestimmtes Objekt haben , in diesem Fall unseren Charakter aus dritter Person. Sie können darin auf die Variablen zugreifen , die als Funktionen bezeichnet werden. Es ist so weiter. Also werde ich die insgesamt verdienten XP eingeben. Holen wir uns den Betrag. Und lass uns von hier abhauen. Mach dasselbe. Wir werden 100 hinzufügen. Und dann lassen Sie uns weitermachen und den variablen Widerstand von hier einstellen , insgesamt XB. Wir können es einstellen. müssen Sie bei Mitten Rohre einleiten und Kabel ausführen. Und lass uns das als den neuen XP-Betrag festlegen. Also lasst uns diesen Save kompilieren. Und was wir jetzt hier vor sich haben ist, dass wir jedes Mal, wenn wir uns überschneiden, unsere Gesamt-EP auf diese Weise erhöhen werden. Los geht's. Wenn ich also nach oben links schaue, überlappe ich es einmal und habe es nicht auf dem Bildschirm ausgedruckt. Das wäre also wahrscheinlich hilfreich. Ziehen Sie dieses Typs in die Druckzeichenfolge. Ich werde keinen Levelaufstieg machen und hoffe nur, zeigen zu können , dass dies diese Variable tatsächlich erhöht. Okay, da sind unsere Skripte, kompilieren, speichern, abspielen. Wenn wir diese Triggerbox, 100, überlappen, überlappen wir sie erneut, 200, 300 usw. Stell dir vor, du könntest deinem Charakter Erfahrungspunkte geben , wenn er den Gipfel des Berges erreicht , so etwas. Schließlich habe ich zu Beginn dieses Videos gesagt, dass ich ein wenig beschreiben würde , was der Unterschied zwischen Integer- oder Integer-64-Variablen ist . Lassen Sie mich einfach zu meinem ThirdPersonCharacter Blueprint zurückkehren . Ich werde vorübergehend eine Integer-64-Variable erstellen. Lass uns weitermachen und das tun. Außerdem nenne ich das Int 64. Wir ändern dies in eine Ganzzahl von 64, variablem Typ, Compilierung, Speichern. Der Unterschied ist der Bereich möglicher Werte. Mit einer Ganzzahl 64 können Sie also einen breiteren Wertebereich haben. Auch das ist positiv und negativ. Klicken Sie mit der linken Maustaste und ziehen Sie es ganz nach oben. Es könnte dort sogar vom Bildschirm laufen. Das tut es nicht. Sie können online nach dem Bereich suchen, aber im Wesentlichen erhalten Sie mit der Ganzzahl 64 einen viel größeren Bereich möglicher Zahlen. Es ist nicht ganz unendlich. In 64 benötigen sie zwar etwas mehr Speicher, aber in den meisten Fällen ist es nicht so viel. Und fast jeder Fall in Integer sollte in Ordnung sein. Lassen Sie mich zu meiner regulären Ganzzahl zurückkehren und Ihnen den Bereich zeigen. Hoppla, ich muss hier meine Kappe abnehmen, löscht meine Kappe, löscht. Lass mich das einfach auf keine setzen und so. Bumm, das ist die Grenze für eine ganzzahlige variable Zahl, die in 64 positiv und negativ ist, unendlich neun. Und das ist der Bereich für den Int 64. Auch das geht in die positive und negative Richtung. Leute, das wird alles für unsere Diskussion über die Integer-Variable tun. Sehr nützlich, sehr praktisch zu wissen, dass es ausreicht , um diesen anzubieten. Wir sehen uns im nächsten. 44. Schweben: In Ordnung, willkommen zurück an alle. In diesem Video wollen wir lernen, was eine Float-Variable ist, wie man eine erstellt und wie sie beim Blueprint-Skripten verwendet werden kann . Also zuerst, bevor wir hier anfangen, was ist ein Float? Ein Float ist eine Variable, die einen Dezimalkommawert enthält. Auch hier kann es positiv oder negativ sein. In Unreal wird diese Variable nun oft verwendet, um einen Zeitwert zu speichern oder um einen Prozentsatz wie Null bis 100% zu bestimmen. Und das wird normalerweise mit 0,0 dargestellt, was 0% bedeutet, und 1,0 entspricht 100%. Lassen Sie uns hier ein paar verschiedene Anwendungsfälle vorstellen. Ich werde in meinem BP ThirdPersonCharacter sein. Und ich werde das Skript, das ich im vorherigen Video verwendet habe, huckepack nehmen , als wir eine Ganzzahl gezeigt haben. Lass uns weitermachen und eine Variable erstellen. Ich mache es, indem du gleich hier klickst. Und nennen wir das Verzögerung. Wir legen hier eine Zeitverzögerung fest, bevor unsere Zeichenfolge auf dem Bildschirm angezeigt wird. Auch hier möchten wir eine Float-Variable machen , damit Sie sie hier ändern können. es dort ändern, oder umgekehrt, können Sie den Variablentyp ändern , indem können Sie den Variablentyp ändern Sie die Variable im Detailbereich auswählen . Sobald wir das erstellt haben, können wir kompilieren, um einen Wert festzulegen. Auch hier haben Fließkommazahlen einen Dezimalkommawert, also versuchen wir es mit 1,5. Das wird unsere Zeit sein , dass wir den Druck unserer Saite verzögern. Lassen Sie uns unsere Flow-Variable hinzufügen, indem Sie die Strg-Taste gedrückt halten, linken Maustaste klicken und ziehen der linken Maustaste klicken und ziehen, um diese Variable zu erhalten. Und Sie können sehen, dass die Floats diese limonengrüne Farbe haben. Und dann lassen Sie uns einfach einen Delay-Node hinzufügen, damit ich mit der rechten Maustaste darauf klicken kann. Etwas leerer Raum. Geben Sie die Verzögerung ein. Da ist unser Delay-Node. Und lass mich das einfach hier reinschleichen. So wie. Also noch einmal, dieser Delay-Funktionsknoten, könnte es schwierig sein, eine Verzögerung einzustellen , die derzeit standardmäßig auf 0,2 s liegt . Oder wir können wieder einen Float-Wert eingeben, auf der linken Seite fragt er nach einer Eingabe. Und die Eingabe, nach der gesucht wird, ist ein Float. Sie könnten es also fest codieren, oder Sie könnten es in einer Variablen speichern. Also speichern wir es hier. Unsere aktuelle Verzögerung ist auf 1,5 s festgelegt. Wenn wir also die X-Taste drücken, werden wir herausfinden, wie viele Erfahrungspunkte wir insgesamt verdient haben. Wir werden einen hinzufügen. Und wir werden das als unsere neue Variable für die Summe festlegen , die XB diese Ganzzahl verdient hat. Sobald dieser Wert 500 erreicht oder überschritten hat. Sobald das stimmt, werden wir um diesen Betrag 1,5 s verzögern und dann die Nachricht ausdrucken , dass Glückwunsch, du bist Level zwei. Lassen Sie uns unser Skript kompilieren. Stellen Sie sicher, dass es fertig ist, und speichern Sie es. Los geht's. Abspielen. Lass mich das einfach hier drüben verstauen damit du sehen kannst, wie das alles funktioniert. Okay, also wenn Sie die X-Taste drücken, haben wir diesen Schwellenwert auch noch nicht überschritten. Sie können den Betrag direkt hier oben sehen. Und wir geben einen seltsamen Wert für x p verdient weil ich vergessen habe, den XP-Gewinn vom letzten Video wieder auf Null zu setzen . Also muss ich das reparieren. Setzen wir das wieder auf Null. Das wird alles vermasseln. Kompilieren, speichern, noch einmal spielen. X Ich habe 100, 200.300.400.500 XP verzögert bekommen und dann herzlichen Glückwunsch zu deinem zweiten Level. Jetzt können Sie sehen, dass, sobald wir das überschritten haben, dieser verzögerte Countdown-Countdown hier im Skript heruntergezählt wird, was ziemlich praktisch ist. Sie können sehen, wenn ich es erneut drücke weil wir diesen Schwellenwert überschreiten, dass es ziemlich praktisch ist, herunterzuzählen. Als Nächstes, warum springst du nicht zu diesem kleinen Skript zurück in deinem BP ThirdPersonCharacter Blueprint, wo wir unser HUD erstellt und zum Viewport hinzugefügt haben. Ich habe das vor ein paar Videos zerstört. Also, was ich hier tun werde, ist, mich entlüften und mit dem Spielen zu beginnen. Es wird mich hier ganz schön überholen. Lassen Sie mich einfach dieses Ereignis B im Spiel auf Position bringen. Und wenn du das ein bisschen Drehbuch zerstört hast, kannst du es auf diese Weise zurückbekommen. Event Beginnt mit dem Spielen. Wir werden ein Widget erstellen. Dies ist ein Knoten „Widget erstellen“. Sie können Ihr WB P HUD hier wieder einrichten , um diesen Widget-Blueprint zu erstellen. Dann habe ich auf diesen Pin mit der rechten Maustaste darauf geklickt und ihn zu einer Variablen hochgestuft , um ihn mit einer beliebigen Variablen zu kapseln. Und dann haben wir das zum Viewport hinzugefügt. Wenn all dies erledigt ist, klicken wir auf Play. Wir können hier sehen, dass dieser Gesundheitsmesser wieder zu unserem Bildschirm hinzugefügt wurde. Nun, das ist alles relevant, weil wir eine Float-Variable verwenden werden, um zu bestimmen, wie viel Gesundheit in diesem Gesundheitsmesser angezeigt wird . Also. In deinem Kopf Blueprint-Panel deines ThirdPerson-Charakters. Vor einiger Zeit haben wir eine Gesundheitsvariable erstellt. Wenn Sie es nicht getan haben, können Sie weitermachen und das tun. Jetzt. Derzeit ist es auf einen Standardwert von 100 festgelegt. Jetzt habe ich erwähnt, dass Float-Werte oft verwendet werden, um einen Wert zwischen 0,0 und 1,0 zu haben , um einen Prozentsatz von 0% bis zu 100% zu bestimmen . Also setzen wir diesen Float-Wert auf 1,0, was volle Gesundheit bedeutet. Und dann unten hatte ich ein Skript, um die Sichtbarkeit dieses HUD einzustellen . Schalten Sie es ein und aus. Ich werde stattdessen einfach diesen zerstören, ich werde es tun, wenn ich die Fünf-Taste drücke, werde ich unsere Gesundheit ein wenig erhöhen , sodass wir sehen können, dass sie abnimmt. Also halte ich die Strg-Taste gedrückt, klicke mit der linken Maustaste und ziehe das hinein. Und dann ziehe ich hier raus und füge die Minus-Taste, die Subtrahiertaste, ein. Und ich sage einfach, verringere es um 0,1, das sind 10%. Und dann ziehen wir es per Drag & Drop auf die Ausgabe , um den Zustand einzustellen. Okay, wir haben gerade dieses kleine Skript in unserem ThirdPersonCharacter. Wir können das kompilieren und speichern. Wenn ich jetzt seine Fünf-Taste drücke, wirst du sehen, dass mit dem eigentlichen Messgerät selbst nichts passiert ist . Und nur um das zu beweisen, drücke ich F5 und es scheint, okay, die Gesundheitsmesser fallen nicht aus. liegt daran, dass wir diese Variable an dieses Messgerät binden müssen . Das bedeutet also, dass wir zum WPP-HUD-Asset übergehen zum WPP-HUD-Asset dort einige Arbeiten erledigen. Wir können dieses Asset also finden , indem wir zu diesem Knoten kommen und genau hier klicken, um dieses Asset im Inhaltsbrowser zu durchsuchen . Da ist es. Und mach weiter und öffne das. Okay, hier drinnen wollen wir auf unseren Fortschrittsbalken klicken. Wir können das entweder direkt hier im visuellen Layout oder drüben in der Hierarchie tun . Sie können dieses Fortschrittsbalken-Widget auswählen. Und dann drüben im Detailbereich, im Fortschrittsbereich, können Sie sehen, dass wir diesen aktuellen Wert haben und derzeit bei 1,0% liegt. Auch dieses Messgerät geht von 0,0 auf 1,0. Wenn ich also mit der linken Maustaste klicke und es ziehe und nach links verschiebe, schaue ich mir das Messgerät drüben auf der linken Seite an, dieser grüne Balken fällt nach unten, wenn ich ihn von 1,0 auf 0,0 verringere. Also das ist alles gut und gut. Aber wie verbinden wir unseren Gesundheitswert über in unserem bp ThirdPersonCharacter, dieses Recht, das, wie verknüpfen wir das mit diesem speziellen Widget? Nun, wir müssen hier eine Bindung erstellen. Und das können wir tun, wenn dieser Fortschrittsbalken ausgewählt ist , genau dort, wo dieser gegenwärtige Wert liegt. Du hast diese kleine Bind-Option. Fahren Sie fort und klicken Sie darauf. Wir wollen eine Bindung schaffen. Es wird uns von unserem Designer-Tab zu unserem Diagramm-Tab weiterleiten. Sobald wir das getan haben, machen wir das. Erstellen Sie eine Bindung. Und jetzt haben wir eine Funktion erstellt, hier oben einen Diagramm-Tab mit dem Namen Prozent abrufen. Wir können das umbenennen. Das mache ich jetzt. Und es hat uns diese beiden Knoten gegeben. Lassen Sie uns das zunächst umbenennen. Ich klicke darauf, drücke F2 und nenne das Ganze dann Get Player Health. Und dann die Strg-Taste gedrückt halten und die Maus bewegen. Und lassen Sie uns das ein wenig vergrößern. Was wir tun wollen, ist mit der rechten Maustaste in ein leeres Feld zu klicken und den Spielercharakter abrufen einzugeben . Wir können das in die Länge ziehen und auf ThirdPersonCharacter übertragen. Du hast mich das schon mehrmals machen sehen. Lass uns diese Bucht sehen, also warum ist die Szene so? Sobald wir das getan haben, haben wir Zugriff auf alle Variablen oder Funktionen, oder wir können benutzerdefinierte Ereignisse in unserem ThirdPersonCharacter aufrufen . Nun, wir wollen diese Gesundheitsvariable extrahieren. Also lass uns hier rausziehen, eintippen, gesund werden. Da ist diese Float-Gesundheitsvariable. Und sieh mal, das sucht nach Float-Eingängen. Wir können unsere Gesundheit, wie sie aus unserem ThirdPersonCharacter entnommen wurde, einfügen und zurückgeben. Also können wir das kompilieren und speichern. Alles, was wir jetzt tun ist, ThirdPersonCharacter ist eine Gesundheitsvariable mit diesem Messgerät zu verknüpfen . Und das wird diesen Prozentsatz erhöhen. Vielleicht sollte ich die Farbe von Limettengrün ändern. Macht etwas Dunkleres. Lass uns dunkelblau werden, so etwas. Machen Sie es hier etwas visueller und kompilieren Sie, speichern Sie. Wir können von hier aus auf Play klicken. Lass uns das eigentlich von unserem ThirdPersonCharacter aus machen. Wir können sehen, dass dieses Skript funktioniert. Klicken Sie von hier aus auf Abspielen. Okay? Und wir haben Beginn des Spiels unser Gesundheits-Widget erstellt. Und wenn ich jetzt die Fünf-Taste drücke , oder die Gesundheit wird jedes Mal um 10% sinken , sollten wir sehen, dass sich das auch in unserem Gesundheitsmesser hier oben widerspiegelt. Also los geht's. 555-55-5555 um fünf, ganz unten. Und jetzt sieh dir das an. Jetzt haben wir eine Health Float-Variable unserem ThirdPersonCharacter zugeordnet ist. Und jetzt, da wir diese Variable in unserem WPP-HUD an dieses Messgerät gebunden haben. Wir können zum allerersten Teil des Kurses zurückkehren , in dem wir diesen BP-Beispiel-Pickup erstellt haben , und ihn so gestalten , dass, wenn unser Charakter ihn tatsächlich aufnimmt, ein Teil der Gesundheit unseres Charakters ist restauriert. Falls Sie also vergessen haben , wo dieser Blueprint war, hatten wir in diesem Verzeichnis eine Übersicht über das Content-Scripting. Ich werde darauf doppelklicken, um es zu öffnen. Hier drinnen werden wir einen kleinen Abstand zwischen unserem ThirdPersonCharacter-Knoten hier und diesem Abspielen des Sounds schaffen zwischen unserem ThirdPersonCharacter-Knoten , sodass du ihn nach rechts schieben kannst. Nun, das werden wir hier machen. Lass uns versuchen, das alles so zu gestalten, dass du es sehen kannst. Wir ziehen uns aus unserem ThirdPerson-Charakter zurück. Wir werden seine Gesundheit bekommen. Diese Float-Variable. Nun, dann werden wir jedes Mal, wenn wir diesen Bauplan überschneiden , die Menge an Gesundheit hinzufügen , die wir heilen wollen . Also werden wir hier eine weitere Variable hinzufügen. Nennen wir es Gesundheit zum Hinzufügen. Dies wird auch eine Float-Variable sein. Wir müssen das kompilieren, um ihm einen Standardwert zu geben. Lassen Sie uns also 20% der Lebenspunkte unseres Charakters herausholen, das wäre ein Punkt, an den Sie sich erinnern sollten Unsere Gesundheit bewegt sich von einer Skala, die unserem Gesundheitsmesser zugeordnet ist , von 0,0 bis 1,0. 0,2 wären also 20% Gesundheit. Wir ziehen das per Drag & Drop in unser Diagramm. Das werden wir bekommen. Wir addieren diese beiden Zahlen , ziehen sie hier heraus und geben die Plus-Schaltfläche ein, um einen Anzeigenknoten anzuzeigen, wie folgt. Und dann ziehen wir unseren ThirdPersonCharacter raus und stellen diese Gesundheit ein. Also hier bekommen wir die Gesundheit. Wir fügen diese Menge an Lebenspunkten wenn wir uns mit seinem Pickup überschneiden. Und wir werden das als neue Gesundheitsvariable festlegen. Auch bei Variablen können Sie ihre Werte aktualisieren. In Ordnung, das wird also unser Drehbuch sein, oder? Es gibt aktualisierte Skripte. Lassen Sie uns das hier als kleinen Bonus zusammenstellen . Ich möchte unserer Gesundheit hinzufügen, fahren Sie fort und wählen Sie diese Variable aus. Wenn Sie dieses Feld mit dem Namen Instanz editierbar ankreuzen, wird es so gemacht , dass wir in unserem Leveleditor tatsächlich ändern können, wir in unserem Leveleditor tatsächlich ändern können wie viel Integrität dieser spezielle Blueprint bieten kann. Und wir können es für jede Instanz ändern. Also lasst uns kompilieren und das noch einmal sagen. Und ich werde das in die Länge ziehen und ich habe derzeit eine Instanz davon in meinem Level. Lassen Sie mich weitermachen und Alt gedrückt halten, mit der linken Maustaste klicken und ziehen. Also habe ich zwei davon. Und da der zweite im Detailbereich ausgewählt ist, muss ich diesen Zustand hinzufügen, der jetzt verfügbar ist. Sobald wir das Kästchen mit im Detailbereich ausgewählt ist, muss ich diesen Zustand hinzufügen, der jetzt verfügbar ist. Sobald wir das dem Namen Instanz editierbar aktiviert haben, ändere ich den Zustand, um ihn hinzuzufügen dieses eins zu eins. Wir werden sagen, dass das die volle Gesundheit ist. Ich kann die Skala auch hier ändern. Lass uns es auf 22.2 ändern, nur um deutlich zu machen, dass das der vollständige Heiler sein wird. Ordnung, also damit wird dieser hier der kleine Heiler sein. Das erhöht die Lebenspunkte um 20%. In diesem Fall fügen wir 100% Lebenspunkte hinzu. Lass uns weitermachen und das spielen. Und wenn Sie sich erinnern, wenn ich die Fünf-Taste drücke, kann ich meine Gesundheit verringern. Oder ich überschneide den ersten hier. Wir werden 20% Gesundheit zurückbekommen. Fünf Schlüssel, ein bisschen mehr ganz runter und überlappen sich und der große Kerl, und wir sind wieder bei voller Gesundheit. Und da hast du es also. Fließkommazahlen enthalten Dezimalkommawerte , die positiv oder negativ sein können. Und oft werden sie verwendet, um Zeitwerte zu speichern oder um einen Prozentsatz zwischen 0,0 und 1,0 zu speichern. Leute, das reicht, um dieses Video anzubieten, wir sehen uns im nächsten. 45. Name: Willkommen zurück, alle zusammen. Unser Ziel ist es, zu lernen, was eine benannte Variable ist, wie man eine erstellt und wie sie beim Blueprint-Skripting verwendet werden kann . Daher herrscht in Unreal oft große Verwirrung , ob ein Name, eine Zeichenfolge oder eine Textvariable verwendet werden sollte oder nicht . Im Laufe der nächsten drei Videos werden wir hier über einige der subtilen Unterschiede zwischen diesen drei sprechen . Beginnend mit der Namensvariablen ist Name ein Text, der verwendet wird, um etwas innerhalb eines Spiels zu identifizieren. Jetzt werden wir in diesem Video ein paar Namensvariablen verwenden . Identifizieren Sie ein Level, zu dem Sie wechseln möchten. Wir werden von diesem Level auf ein anderes übergehen . Wir werden auch einen Namen verwenden, um einen Socket zu identifizieren , an den wir eine Requisite anhängen möchten. Das könnte so etwas wie ein Schwert in der Hand sein, so etwas. Nun, ein Name ist eine Variable, die nicht zwischen Groß- und Kleinschreibung unterscheidet, und das bedeutet, dass Groß- oder Kleinbuchstaben keine Rolle spielen. In einer benannten Variable wird für alphanumerische Zeichen verwendet, das sind alles Buchstaben und Zahlen. Okay, wir werden hier in unserem Level-Blueprint anfangen . Wenn du das noch nicht geöffnet hast, kannst du hierher kommen und deinen Level-Blueprint öffnen. Und lassen Sie uns ein paar Namensvariablen erstellen. Im Bereich Mein Blueprint fügen wir also eine Variable hinzu. Ich nenne die erste Stufe Unterstrich 01. Ich habe es derzeit als Namensvariable. Wenn Sie es jedoch ändern möchten, können Sie dies genau dort tun. Da ist der Name. Alternativ können Sie den Typ auch hier ändern, wenn Sie die Option im Detailbereich ausgewählt den Typ auch hier ändern, wenn Sie die Option im Detailbereich haben. Jetzt möchte ich ein Duplikat dieser Variablen erstellen und sie Level zwei nennen. Also ein paar Möglichkeiten, wie ich das machen könnte. Erstens könnte ich mit der rechten Maustaste darauf klicken und es auf diese Weise duplizieren. Ich könnte aber auch Control plus D machen , wenn das hervorgehoben ist. Um ein doppeltes Level zu erstellen, möchte ich es O2 nennen. Lassen Sie uns weitermachen und kompilieren, damit wir diesen einige Standardwerte geben können . Beginnend mit Level eins gebe ich meine erste Stufe als Startermap ein. Und beachte, wie ich das alles in Kleinbuchstaben buchstabiere. Fahren Sie als Nächstes mit Level zwei fort. Stellen Sie damit den Standardwert auf Minimum , Underscore Standard ein. Und ich mache das in Großbuchstaben. Sie müssen sicherstellen, dass Sie es richtig buchstabieren. Wenn du dich nun fragst, warum ich diese als Standardwerte eingebe, liegt das daran, dass ich hier in unserem Leveleditor, meinem Story-Content-Maps-Ordner, zwei Maps habe, die in diesem Stern existieren Ordner mit Inhaltskarten. Ein sogenannter Minimalstandard. Beachten Sie, wie es buchstabiert ist, nur das M und das D werden groß geschrieben und dann ein Starter-Map-Level. Und beachten Sie, dass das S und das M beim Tierarzt unser Großbuchstaben sind. Also verwende ich absichtlich nicht genau dieselbe Groß- und Kleinschreibung mit Namensvariablen. Sie müssen nicht genau das gleiche Gehäuse haben. Sie unterscheiden nicht zwischen Groß- und Kleinschreibung. Okay, gehe zurück zu deiner Level-Test-Map, mach weiter und kompiliere und speichere sie. Und dann könnte es in einem Diagramm Ihrer Wahl das Standard-Ereignisdiagramm oder ein anderes Diagramm sein , das Sie erstellt haben. Lass uns weitermachen und ein einfaches Skript erstellen. Ich werde mit der rechten Maustaste klicken und etwas Leerzeichen in die Tastatur eingeben , damit ich Tastaturereignisse habe. Ich werde die L-Taste verwenden, weil das für den Übergang zu einer anderen Ebene sinnvoll wäre . Ich bin hier stark herausgezoomt, wenn ich die Strg-Taste gedrückt halte und die Maus hochfährt. Lassen Sie mich das L-Key-Ereignis näher betrachten. Was ich tun werde, ist von hier wegzuziehen einen Abzweigknoten reinzubringen. Und wenn das stimmt, wollen wir ein Level mit Namen öffnen. Und ich werde dieses Control C, Control V duplizieren. Und wenn es falsch ist, wollen wir einen anderen Levelnamen öffnen . Welches Level wurde genannt? Nun, sieh dir das an. Es sucht nach einer Namenseingabe. Jetzt hätte ich das fest codieren können, indem ich es einfach eingegeben hätte. Ich speichere diese Levelnamen jedoch innerhalb dieser Variablen. Also ziehe ich Level eins hierher und Level zwei hierher und Level zwei hierher. Wenn sich unsere Bedingung hier also als wahr herausstellt, werden wir auf unsere Starterkartenebene wechseln. Und wenn sich herausstellt, dass unser Zustand beim Drücken der L-Taste falsch ist, gehen wir auf Stufe zwei über. Das ist die Mindeststandardeinstellung. Derzeit ist unser Zustand schwer zu bestätigen. Wenn ich jedoch mit der rechten Maustaste und etwas Leerzeichen klicken und zufällig bool eingeben würde. Dieser praktische Knoten gibt einfach eine zufällige Kugel aus, die jedes Mal, wenn wir die L-Taste drücken, zufällig ausgewählt wird jedes Mal, wenn wir die L-Taste drücken, zufällig ausgewählt , wenn wir die L-Taste drücken, was ziemlich praktisch ist. Los geht's. Lass uns das kompilieren und speichern und spielen. In Ordnung, also wenn wir hier die L-Taste drücken, sollten wir zu einer dieser beiden Stufen wechseln. Los geht's. Und ich habe einen Reisefehler. Und das muss daran liegen, dass ich einen der Namen nicht korrekt kopiert haben muss . Also Level zwei hier, lass uns die Mindeststandardeinstellung überprüfen. Und wenn ich wieder einchecke, sind meine Minimalwerte hoch. Wir müssen es richtig buchstabieren. Ich habe es falsch buchstabiert. Lassen Sie mich weitermachen und das in Ordnung bringen. Es ist gut, aus unseren Fehlern zu lernen. Minimale Standardwerte. Bein. Also kompiliere und sage, lass uns das noch einmal versuchen. Auch hier wird nicht zwischen Groß- und Kleinschreibung unterschieden. Es spielt keine Rolle, ob diese Buchstaben, diese Zeichen groß geschrieben sind oder nicht. Aber du musst es buchstabieren lassen, oder? Also drückten wir die L-Taste und wählten Level zu diesem Zeitpunkt. Also haben wir hier dieses komische Level, das wir hier verlassen werden . Das wurde also an die Auserwählten weitergegeben. Lass uns sicherstellen, dass Level eins korrekt funktioniert. Stoppen Sie die Wiedergabe erneut, drücken Sie die L-Taste, eine wurde ausgewählt, und los geht's. Als Nächstes verwenden wir eine benannte Variable, um eine Eingabeaufforderung an unseren ThirdPersonCharacter anzuhängen. Wenn Sie also Ihr ThirdPersonCharacter-Asset noch nicht geöffnet haben , finden Sie unter Inhalt Third-Person-Blueprints doppelklicken Sie darauf, um es zu öffnen. Und hier findest du deine Mesh-Komponente. Wir müssen ein wenig Einrichtungsarbeiten erledigen, bevor wir überhaupt eine Namensvariable verwenden können. Wir werden unserem Skelettnetz eine Buchse hinzufügen. Wählen Sie also Ihr Netz aus und klicken Sie im Detailbereich unter Skeletal Mesh. Klicken Sie hier, um im Inhaltsbrowser zu diesem Asset zu navigieren . Dann wirst du auf diesen SK M Quinn doppelklicken wollen , ganz einfach. Und dann oben rechts hast du verschiedene Tabs. Klicke auf diesen Skeleton-Tab und wir wollen der Hand unseres Charakters einen Sockel hinzufügen. Das ist also unser Skelettbaum, all die verschiedenen Knochen innerhalb des Skeletts unseres Charakters. Also werde ich das nach einer Hand suchen . Und lasst uns unseren Charakteren auf der rechten Hand eine Buchse hinzufügen. Ich werde mit der rechten Maustaste auf diese Hand klicken. Und wenn wir mit der rechten Maustaste auf diesen Handknochen klicken, können wir einen Sockel hinzufügen. Und wir haben gerade einen Socket hinzugefügt. Das ist das kleine Symbol, ich werde darauf klicken und es hier umbenennen. Also der Socket-Name, den ich so einstellen werde, ist wie folgt: Handbuchse. Eine lustige Tatsache ist, dass Sie eine Vorschau-Requisite hinzufügen können , damit Sie sehen können, wie das aussieht. Wenn hier etwas an der Buchse befestigt ist, klicke ich mit der rechten Maustaste auf diese Handbuchse. Wir werden ein Vorschau-Mesh hinzufügen. Und lassen Sie uns eine Lampe hinzufügen, eine Vorschau des Netzes wie bei einer Deckenlampe anzeigen. Natürlich wäre etwas wie ein Schwert oder ein Dolch hier besser, aber wir werden nicht zu spezifisch damit umgehen. Ich klicke einfach mit der rechten Maustaste rein und drücke die Leertaste. Sie können sehen, wie das so positioniert werden könnte , dass Sie es so hierher verschieben könnten. Ich werde mir keine Sorgen machen, damit sehr vorsichtig zu sein . Du kannst es drehen, so etwas. Und auch hier könnten Sie viel Zeit damit verbringen, dort herumzuspielen, wo dieser Socket existiert. Wir verrechnen das im Verhältnis zu unserer Hand. Sie können hier also einige Zahlen für den Standort und die Rotation usw. eingeben . Oder du kannst auch hier im Vorschaufenster daran herumspielen . Auch hier werde ich nicht besonders spezifisch sein. Vorerst. Lass uns weitermachen und das speichern. Und als Nächstes kehren wir zu unserem ThirdPersonCharacter zurück unserem ThirdPersonCharacter und erstellen ein paar Variablen. wir also zurück zu unserem ThirdPersonCharacter und erstellen eine Variable, indem wir auf diese Plus-Schaltfläche klicken. Dieser wird Sockets-Name heißen. Ich werde das in eine Namensvariable ändern. Und ich werde den Standardwert hier ändern. Wenn ich kompiliere, wie haben wir das Handbuchsen genannt, werde ich deine Handbuchsen einfach klein schreiben. Und beachte , dass das nicht genau das gleiche Gehäuse sein wird , wie wir es hier drüben in unserem Skelett gemacht haben . Wir nennen es Handbuchse mit den Großbuchstaben H und S. Zurück in unserem ThirdPersonCharacter verwenden wir nur Kleinbuchstaben. Jetzt füge ich hier eine weitere Komponente als Requisite hinzu, um sie an unseren Socket anzuschließen. Also tun wir so, als hätten wir eine Art Quelle. Ich werde eine statische Mesh-Komponente hinzufügen. Und wir werden es unser Schwert nennen, auch wenn es wie eine Lampe aussehen wird. Und wenn diese Schwert-Komponenten ausgewählt sind, ist diese statische Mesh-Komponente drüben im Detailbereich. Lassen Sie uns als statisches Netz oder als Lampe, Deckenlampe einsetzen. Ich werde es sehr, sehr schlecht positionieren. Lass mich einfach die Bewegung ausschalten, Snapping gleich hier oben. Und ich werde überhaupt nicht lange damit verbringen. Wir werden einfach so etwas Verrücktes machen. Sicher. So wie das. Sieht aus, als ob der Buster aus Final Fantasy sortiert ist. Sicher. Und dann gehen wir zu unserem Ereignisdiagramm und wir klicken mit der rechten Maustaste und etwas leerem Raum, ich brauche einen Ereignisschlüssel. Lass uns die R-Eingänge machen, oder lass uns die Tastatur machen. Mal sehen, was wir für verfügbare Keyboard-Events bekommen haben. Gehen wir zur Nulltaste. Klar, das wird funktionieren. Wir werden das in die Länge ziehen und anhängen. Und was wir suchen, ist das Anhängen einer Komponente an eine andere. Ich habe hier mehrere Möglichkeiten. Lass uns Komponente anhängen, zwei Komponenten, Schwert. Das Schwert. Hoppla. Das ist eine Sache, die wir anhängen wollen. Der Elternteil ist das, an das wir es anhängen wollen. In diesem Fall ist es unser Netz. Und denken Sie daran, das Netz ist das Ding, dem ein Socket zugeordnet ist. Lassen Sie uns also unseren Socket-Namen direkt dort ablegen. Ein paar Dinge, die wir hier korrigieren müssen , sind unsere Standort - und Rotationsregeln. Wir wollen das so einstellen, dass es auf das Ziel ausgerichtet wird, also so. Das sollte also unser Drehbuch sein. Wir wollen unser Schwert anbringen, das ist das Ziel. Das wollen wir an unser übergeordnetes Netz anhängen. Und wo genau, nun ja, heißen Socket und wir geben unseren Socket-Namen als Handbuchse an. Also kompiliere. Sagen wir, lass uns spielen. Nun, sieh dir das feine Schwert an der Tasche meines Charakters an. Es sieht zwar schrecklich aus, lass mich eine Null-Taste drücken und bumm, es ist jetzt an unserer Handsteckdose befestigt. Alles dank dieses Namens, der Variablen, des Saccad-Namens. Lassen Sie uns nun zusammenfassen. Eine Namensvariable ist ein Text , der verwendet wird, um etwas in einem Spiel zu identifizieren. Namensvariablen bestehen aus alphanumerischen Zeichen , also ausschließlich Buchstaben und Zahlen. Und sie unterscheiden nicht zwischen Groß- und Kleinschreibung, was bedeutet, Groß - und Kleinschreibung keine Rolle spielen. Leute, das wäre alles für dieses Video, wir sehen uns im nächsten Video. 46. Schnur: In Ordnung, willkommen zurück an alle. In diesem Video wollen wir lernen, was eine Zeichenkettenvariable ist, wie man sie erstellt und wie sie beim Blueprint-Skripting verwendet werden kann . Für dieses Video arbeiten wir in unserem bp, arbeiten wir in unserem bp einem ThirdPersonCharacter, das ist das Verzeichnis, in dem du das finden kannst. Also lass uns weitermachen und das sofort öffnen. Wie zu erwarten, können Sie diese String-Variable hier im My Blueprint-Bedienfeld erstellen , indem Sie entweder auf Variable hinzufügen klicken oder im Variablenbereich auf diese Plus-Schaltfläche klicken. Und ich werde hier von Anfang an unsere ersten beiden String-Variablen erstellen . Den ersten werde ich Vorname nennen. Und noch einmal, Sie können den Typ der Variablen entweder über diese Dropdown-Zeichenfolge ändern der Variablen entweder über diese Dropdown-Zeichenfolge , was wir hier tun wollen, oder würde diese Variable im Detailbereich unter Variablentyp ausgewählt oder würde diese Variable im Detailbereich unter Variablentyp ausgewählt? Und ich werde das sofort duplizieren. Ich kann mit der rechten Maustaste klicken und es duplizieren. Oder wenn das ausgewählt ist, kann ich dort den Hotkey verwenden , der Control plus D ist. Und ich werde diesen in LastName ändern. Dann werde ich weitermachen und das kompilieren, damit wir ihm einige Standardwerte geben können. Also für den Vornamen gehe ich in den Abschnitt Details und gebe mr ein. Mit einer Periode. Und dann füge ich direkt danach ein Leerzeichen hinzu. Nachname, ich füge einen Tropfen hinzu. In Ordnung? Lassen Sie uns nun darüber sprechen, was eine Zeichenkettenvariable ist? Nun, eine Zeichenkettenvariable ist eine Variable, die beliebige Buchstaben, Zahlen oder Symbole enthalten kann . Oder Zeichenketten sind nützlich um Text während der Laufzeit mithilfe einiger vorgefertigter Funktionen dynamisch zu bearbeiten Laufzeit mithilfe einiger vorgefertigter Funktionen Einige davon werden wir später in diesem Video untersuchen. Zeichenketten können durchsucht, geändert und mit anderen Zeichenketten verglichen werden. Beachten Sie, dass Zeichenketten aus diesem Grund besser sind als Namensvariablen, wenn Sie Text auf irgendeine Weise manipulieren möchten , während das Spiel läuft. Zeichenketten sind also etwas teurer als Namensvariablen. Aber ich meine, wenn du ein kleineres oder sogar ein größeres Spiel spielst, meine ich, die Kosten sind nicht viel höher. Okay, lassen Sie uns also unser erstes Skript erstellen, das einige dieser Zeichenkettenvariablen verwenden wird . Also hier ist ein leerer Raum in einem Ereignisdiagramm. Ich klicke mit der rechten Maustaste. Ich werde reinbringen, lass uns die Sieben-Taste ausprobieren. Jedes Keyboard-Event ist ausreichend. Lass mich das vergrößern. Und du hast gesehen, wie ich diese Funktion oft benutzt indem ich von hier weggezogen habe, Zeichenfolge drucken. Dieser Knoten kann also eine Zeichenkettenvariable aufnehmen . Jetzt gibt es viele Dinge, die in eine Zeichenfolge umgewandelt werden können , aber dieser pinke Stift genau dort, wenn Sie den Mauszeiger darüber bewegen, heißt es, einer Zeichenkettenvariablen gesucht wird. Wenn ich unseren Socket-Namen eingeben würde, wird er in eine Zeichenfolge umgewandelt Wenn ich so vorgehe und hierher ziehe und toString sage, kann ich das in eine Zeichenkettenvariable konvertieren. Viele andere Variablen können ebenfalls in Zeichenketten umgewandelt werden . Aber lassen Sie uns unsere beiden String-Variablen zeigen und zeigen, wie wir sie anhängen können. Das heißt, eins mit dem anderen zu verbinden. Also halte ich die Strg-Taste gedrückt, klicke mit der linken Maustaste und ziehe meinen Vornamen und halte die Strg-Taste gedrückt. Und ich werde auch meinen Nachnamen bekommen. so viele Namen vorgestellt. Es ist Vorname gefolgt von Nachname. Wir können diese beiden separaten Zeichenketten also manipulieren , indem wir sie anhängen. Wenn ich also mit der rechten Maustaste in eine leere Stelle klicke und ich unter den Abschnitt Utilities ganz unten komme den Abschnitt Utilities , weil alles in alphabetischer Reihenfolge ist . Versorgungsunternehmen. Wir können unter die Zeichenfolge Utilities kommen. Und ganz oben gibt es eine Funktion namens append, die zwei Zeichenketten miteinander verkettet, um sie zu kombinieren. Wir können also unseren Vornamen nehmen und den Nachnamen daran anhängen. Und das wird uns das Endergebnis geben. So wie. Wenn ich das kompiliere, stelle sicher, dass mein Skript hier gut aussieht. Speichern, lass uns weitermachen und spielen. Wenn ich jetzt die Sieben-Taste drücke, sollten Sie hier oben meinen Vor- und Nachnamen zusammen sehen. Los geht's. Sieben, Sie sehen Mr. Wander zusammen wandern. In diesem Abschnitt mit den Hilfsprogrammen gibt es nun viele Funktionen , mit denen Zeichenketten bearbeitet werden können. Lass mich hier einfach einen anderen finden. Ich ziehe meinen Nachnamen einfach weg. Und ich gebe zwei obere ein, es wird sie im Abschnitt mit der Zeichenfolge der Hilfsprogramme finden . Ich werde so vorgehen und das auch in den B-Bereich einbinden. Wenn ich nun kompilieren, speichern und abspielen sollte, werden Sie oben links sehen, wenn ich diese Siebentaste drücke, wie die gesamte Nachnamenzeichenfolge in Großbuchstaben geändert wurde. Das ist also auch ziemlich praktisch. Es gibt viele Möglichkeiten, Zeichenketten zu manipulieren. Das ist einer der Hauptvorteile, wenn man etwas zu einer Zeichenfolge macht einer Zeichenfolge macht all die verschiedenen Funktionen , um sie zu manipulieren. Ich werde einige der anderen Manipulationsfunktionen im Level Blueprint vorstellen, da ich einige vor diesem Video vorbereitet habe . Also werde ich aus meinem ThirdPerson-Charakter springen und noch einmal in meinen Level-Blueprint gehen . So kannst du das machen, indem du genau dort klickst und Level-Blueprints öffnest. Hier habe ich verschiedene Funktionen. Es gibt noch viele weitere, die wir hier erkunden werden. Auch dies können Sie finden, indem Sie mit der rechten Maustaste klicken und unter dem Abschnitt mit der Zeichenfolge der Hilfsprogramme etwas leeres Feld verwenden. Hier werden alle String-Manipulator-Funktionen, die Sie gesehen haben, angehängt. Wenn ich also würde, ziehe ich jedes davon per Drag & Drop in meine vorgefertigte Funktion hier, mein Print-String-Funktionsskript , das hier mit der S-Taste ausgelöst werden kann. Wenn ich das also ausprobieren sollte, können Sie sehen, wie ich durch Drücken der S-Taste diesen können Sie sehen, wie ich durch Drücken der S-Taste Dollarbetrag nach den Geldtexten anhängen kann. Ziemlich praktisch. Okay, lass mich den Kerl loswerden und wir werden die Zeit in Sekunden verschieben. Das ist ein weiterer, den ich wirklich mag. Was das bewirken wird, und ich bereite es im Voraus vor, ist, dass ich diese Float-Variable so geändert habe, dass sie einen Wert von 500 hat. Also, wenn ich das in Sekunden ändern würde, wie viele Sekunden sind das? Nun, das wird die Arbeit für dich erledigen. Wenn ich also jetzt die S-Taste drücke , kannst du sehen, wie das in einer schönen Zeitform ausgedruckt wird. Lass uns das löschen. Lass uns versuchen, eine Zeichenfolge zu teilen. Also wenn das meine Quellzeichenfolge vom 4. Juli mit einem Komma 17, 76 ist und ich sie an dieser Stelle in STR aufteilen möchte , ist das ein bisschen in Ordnung. Hier, links davon, erhalte ich den 4. Juli. Rechts davon würde ich 17 76 bekommen. Also lass uns weitermachen und es schnell ausprobieren. Eine Zeichenfolge teilen. Ich gehe einfach links vom Komma drücke die S-Taste. 4. Juli. Und wenn ich die Kontrolle gedrückt halten und nach rechts davon gehen würde, würde ich jetzt verstehen, dass es tatsächlich ein Leerzeichen in 17 76 wäre , aber du kannst das Leerzeichen nicht sehen, es wird einfach zeige eine 17 76 Etwas Cooles, das Sie hier tun könnten, ist, dass wir diese in Variablen umwandeln diese in Variablen umwandeln könnten, die wir ändern könnten. Sie könnten also mit der rechten Maustaste darauf klicken, das zu einer Variablen hochstufen und dieses Unabhängigkeitsdatum sowieso als unabhängigen Staat für die Vereinigten Staaten bezeichnen dieses Unabhängigkeitsdatum sowieso als unabhängigen Staat , die international, das wäre ein anderes Datum, hoffentlich für deine Unabhängigkeit, solltest du diesen Luxus genießen? Beim Kompilieren können Sie sehen, wie wir die Variable auf diese Weise erstellt haben, indem Sie mit der rechten Maustaste klicken und sie zur Variablen hochgestuft haben. Beachten Sie, dass automatisch die Informationen, die Sie fest codiert haben ihre Funktion an dieser Stelle verwendet und diese Zeichenkettenvariable automatisch gefüllt wird. Also dachte ich nur, ich würde das auch da rauswerfen. Schauen wir uns hier eine andere an, diese Ersetzungsfunktion. Sie finden es auch im Abschnitt Utilities Strings und klicken Sie mit der rechten Maustaste auf das Menü. Super praktisch, weil Sie sich ein solches Szenario vorstellen könnten. Und wieder, wo Sie eine Quellzeichenfolge haben, die besagt, dass die Tür verschlossen ist. Sie können einige von Ihnen angegebene Texte ändern, in diesem Fall jedoch auf den geöffneten Text beschränkt. Das ist also ein weiterer Vorteil dieser Zeichenkettenfunktionen. Sie haben all diese verschiedenen Möglichkeiten die Texte zu manipulieren. Also los geht's. Das sollte heißen, dass die Tür verschlossen ist, ich sage, verriegelt , um zu öffnen. Wenn Sie also die S-Taste drücken, ist die Tür geöffnet. Und da hast du es also. Eine Zeichenkettenvariable ist eine Variable, die beliebige Buchstaben, Zahlen oder Symbole enthalten kann . Sie sind nützlich , weil sie zur Laufzeit dynamisch manipuliert werden können . Und noch einmal, um all diese Funktionen zu finden rechten Maustaste und Sie möchten unter Dienstprogramme gelangen. Ganz unten hier, Utilities string und Sie haben eine ganze Reihe von Funktionen, um diese Zeichenketten zu manipulieren. Nun, das wird alles für diesen einen tun, Leute, wir sehen uns im nächsten. 47. Text: Willkommen zurück, alle zusammen. In diesem Video lernen wir , was eine Textvariable ist, wie man eine erstellt und wie sie beim Blueprints-Skripten verwendet werden kann . Dies ist also die dritte Variablenkategorie dieser Kategorie, nämlich die Namensvariable, die Zeichenkettenvariable und die Textvariable. Was ist die Textvariable und wann sollte sie verwendet werden? Nun, Textvariablen sollten für alle Texte verwendet werden , die ein Benutzer während eines Spiels sehen kann. Texte, die du vielleicht auf einem HUD im Spiel siehst, oder vielleicht einige Texte, die du in Menüs oder vielleicht auf einem Highscore-Bildschirm siehst, so etwas. Verwenden Sie diesen Typ Texte, die Sie lokalisieren möchten. Also, wenn du dein Spiel und den ganzen Text, der dazu gehört , ins Deutsche, Französische, Spanische übersetzen den ganzen Text, der dazu gehört , ins Deutsche, willst , all diese Dinge. Sie sollten sicherstellen, dass dieser Text im Textvariablentyp enthalten ist. Nun wird bei Textvariablen zwischen Groß- und Kleinschreibung unterschieden, wohingegen benannte Variablen nicht zwischen Groß- und Kleinschreibung unterschieden wurde. Sie unterschieden nicht zwischen Groß- und Kleinschreibung. Steuervariablen wird zwischen Groß- und Kleinschreibung unterschieden. Ordnung, wir werden ein bisschen in unserem WB P HUD arbeiten In Ordnung, wir werden ein bisschen in unserem WB P HUD arbeiten. Dort findest du also, dass wir diese Videos vor ein paar Videos erstellt haben. Wir werden auch ein bisschen an unserem ThirdPerson-Charakter-Blueprint arbeiten . Sie können das also auch im Blueprints-Ordner für Dritte finden . Also mach die beiden Typen auf. Ich fange in meinem W BP HUD an. Vielleicht erinnern Sie sich, als wir das vor einiger Zeit gemacht haben. Wir haben lediglich eine horizontale Box erstellt. Und in diesem horizontalen Feld haben wir ein Text-Widget sowie einen Fortschrittsbalken hinzugefügt. Nun, ich habe das Ding vorerst in Ordnung, aber ich werde das im Detailbereich ändern. Sagst du einfach den Charakternamen? Name des Charakters. Dies ist vom Variablentyp text. Wenn ich hier den Mauszeiger über diese Flagge bewege, können Sie sogar sehen, dass dies einige Texte sind, die lokalisiert werden können , wenn das Kontrollkästchen aktiviert ist. Ich werde auch den Namen dieser speziellen Widgets in Charakternamen oder Zeichentexte ändern den Namen dieser speziellen Widgets . Wie wär's damit? Wir sprechen hier von Textvariablen. Nur um das ein bisschen klarer zu machen. Was wir jetzt tun werden, ist E in unserem ThirdPersonCharacter, ich bin bereit, eine Textvariable zu erstellen. Und ich gebe ihm den Namen, den ich unseren ThirdPersonCharacter nennen möchte . Also steige ich da drüben ein. Wir werden hier in Kürze einen Verein gründen . Aber geh zu deinem ThirdPerson-Charakter. Und wir werden eine neue Variable erstellen. Und wir werden das unsere Charaktertexte nennen , nur um es noch klarer zu machen. Und wir werden das in einen Textvariablentyp ändern . Wir werden das kompilieren. Und ich nenne das meinen Superhelden. Das klingt nach einem schönen Namen. Jetzt, wo diese Textvariable erstellt wurde, werde ich hier kompilieren und speichern. Und jetzt werden wir diese Variable unserem W, B P HUD zuordnen, damit wir diese Superhelden-Texte tatsächlich einlesen können . Gehen Sie also zu Ihrem WPP-HUD. Wählen Sie aus, wo der Charaktername steht. Und drüben im Detailbereich , wo der Textzeichenname steht, müssen wir eine Bindung erstellen. Ich mache das, indem ich auf Bindung klicke. Bindung erstellen. Und das bringt uns vom Designer-Tab zum Diagramm-Tab. Genau das ist dort passiert. Der Designer-Tab führt Sie zurück zu diesem visuellen Layout. Auf der Registerkarte „Grafik“ können Sie ein Skript erstellen. Und genauer gesagt, es hat uns dazu gebracht , eine brandneue Funktion zu entwickeln. Im Moment heißt unsere Funktion also get character texts. Texte ist Null, was ein schrecklicher Name ist. Was es getan hat, ist , dass hier ein brandneuer Tab geöffnet wurde. Und hier ist der Name der Funktion, die wir zusammenstellen. Ich werde es umbenennen, indem ich den Mauszeiger darüber bewege. Und wir werden es umbenennen. F2 wird auch lügen, um es umzubenennen, und ich nenne, das bekommt Zeichentexte. Also, was wir jetzt von hier aus machen wollen ist ähnlich wie mit unserem Get Player-Health. Ich springe einfach sehr schnell zu dieser Funktion, indem ich darauf doppelklicke. Wir bekamen unseren Spielercharakter und wir haben auf unseren ThirdPersonCharacter gecastet , damit wir diese variablen Informationen erhalten konnten . Ich werde diese beiden Knoten markieren, linken Maustaste klicke und ziehe. Ich mache Control C. Und dann doppelklicke auf die Funktion, von der ich gerade gekommen bin . Ich erhalte Charaktertexte. Und dann mache ich hier Control V, um das einzufügen. Ich werde das so verkabeln. Und noch einmal, sobald Sie einen Verweis auf Ihren ThirdPersonCharacter haben , können Sie einige Informationen daraus extrahieren, einschließlich aller darin enthaltenen Variablen . Also habe ich diese Variable in meinem Charakter aus der dritten Person erstellt , hier Charaktertexte genannt. Also zurück zu meinem WB P HUD, in dieser Funktion ziehe ich es hierher und ich kann nach Charaktertexten suchen . Ich möchte es bekommen und mir den Rückgabewert ansehen , nach dem diese Funktion sucht. Ich habe erwähnt, dass drüben im Designer-Tab dieses spezielle Text-Widget, wir binden es an einige tatsächliche Texte. Das ist die Ausgabe, nach der wir hier in unserem Grafiktab suchen . Das sucht nach dem Rückgabewert einer Textvariablen. Also werden wir diese Texte direkt hier einfügen. So wie. Und wenn ich kompiliere und speichere und jetzt spiele, wirst du feststellen, dass oben links jetzt Superheld steht, der Name unseres Charakters, wie wir ihn in der Charaktertextvariablen angegeben haben . Okay, etwas anderes, das ich hier mit einer Textvariablen zeigen wollte , ist die Art und Weise, wie Sie einige Texte formatieren können, weil ich denke, dass viele von Ihnen das auch nützlich finden werden. Um das zu tun, was ich zeigen möchte, wir zu unserem ThirdPerson-Charakter zurück. Und dann springen wir zurück zu unserem WPP Hudson. Schließ das nicht einfach noch ab. Gehen wir zurück zu unserem ThirdPerson-Charakter. So wie. Lassen Sie uns brandneue Textvariablen erstellen. Ich werde unter Variablen klicken Sie auf Plus. Und ich nenne das einen Gesundheitsstatus Bein. Also werde ich den Standardwert für den Gesundheitsstatus ändern Standardwert für den Gesundheitsstatus , um etwas Interessantes zu sein. Also werden wir hier kompilieren und schauen, was ich hier eintippe. Lassen Sie mich das etwas ausweiten. Ich werde dich haben, und das wird ein lockiger Bruder sein, tut mir leid, lockige Klammer, keine gerade Klammer die die Schicht gedrückt hält, linke lockige Klammer, Gesundheit. Rechte geschwungene Klammer bei gedrückter Shift-Taste und Drücken der Klammertaste, HP bleiben übrig. Jetzt währenddessen. Nun, warum ich das getan habe, ist , dass wir mit unserer Textvariablen hier die Möglichkeit haben, unsere Texte zu formatieren und diese Inhalte zu ändern, damit sie gelesen Sie haben noch 100 HP übrig, du hast noch 50 PS übrig , so etwas. Das können wir nun über einen Format-Textknoten tun . Also möchte ich das formatieren. Ich werde hier ein paar Skripte machen und dann wird es wieder an unser WPP-HUD gebunden. Also hier sind ThirdPersonCharacter Event Graph. Ich klicke mit der rechten Maustaste und lass uns die Neuntaste ausprobieren. Jede Eingabetaste reicht aus. Nike wird vorerst gut funktionieren. Und ich werde mich von hier abziehen. Lassen Sie uns eigentlich noch nicht von hier wegziehen. Ich will unseren Gesundheitszustand mitbringen, den ziehen und wir werden ihn bekommen. Und dann werde ich von hier wegziehen und Text im Format eingeben. Okay, aktuelle Blätter haben also nur einen Pin, aber wir werden hier einen Pin hinzufügen. Und derzeit ist es als Null gekennzeichnet. Wenn ich jedoch diesen Knoten für Textformate auswähle, kann ich hier oben das Argument ändern , das dieser Eingabe-Pin sein wird. Oft sollte dies genau so geschrieben werden , wie wir es in unserem Gesundheitszustand geschrieben haben . Ich habe also Großbuchstaben H E, H E a L T H, Gesundheit. Einfach so. Bei Ihrem Format ändern die ausgewählten Textknoten das Argument dort so, dass es genau dasselbe ist, und das wird als Eingabe-Pin auf diesem Format-Textknoten angezeigt . Als Nächstes werde ich unsere Gesundheitsvariable hier nehmen , quasi so. Das ist derzeit ein Float und steck ihn hier unten ein. Jetzt ist es derzeit grau, was bedeutet, dass es alles aufnehmen kann. Also füge ich eine Float-Variable ein und sie wird sagen: Okay, du willst afloat einstecken, das ist jetzt ein Float-Eingang. Es wird es auf jede Art von Eingaben ändern , die Sie so eingeben. Und das Ergebnis hier, ich werde es zu einer Variablen heraufstufen. Rechtsklick auf Heraufstufen. Und es hat diese neue Textvariable hier erstellt , die Ergebnisse genannt wird. Ich werde das ändern , um das Ergebnis zu verbessern. Ich denke, das wird etwas aussagekräftiger sein. Also, was wir hier tun, ist, wenn wir die Neuntaste drücken, wir nehmen unseren aktuellen Gesundheitszustand hier, diesen Satz, wenn Sie so wollen, werden wir das, was wir hier angegeben haben, austauschen diese Gesundheit und der Grund, warum wir genau diese Gesundheit in den geschweiften Klammern haben genau diese Gesundheit in den geschweiften Klammern hier in den Argumenten genau derselbe, sodass angezeigt wird , dass es die Textur ist, die wir austauschen möchten. Und dann ist das Ergebnis hier das Ergebnis dieser Zeile, bei der die Gesundheit gegen einen beliebigen Float-Wert ausgetauscht wird . Jetzt wurde mir klar, dass dies in einer Dezimalpunktform ist. Also bekommen wir hier einen Wert, 0-1. Und normalerweise würde man 100 Gesundheit lesen wollen , so etwas. Aber das wird zu Demonstrationszwecken in Ordnung sein. Ich werde das letzte Bit kompilieren, das ich hier tun muss, ist, dass ich diese Gesundheitsergebnisse über Nacht binden muss , WB ist HUD. Also, um das zu tun, werde ich hier wieder einsteigen. Lass mich zu meinem Designer-Tab zurückkehren. Ich werde schnell ein Text-Widget irgendwo in der Nähe ziehen und dort ablegen. Es wird nicht darum gebeten, sehr präzise zu sein. Das wird einfach hier rumhängen. Ich werde es nicht ein- oder ausblenden oder so etwas. Ich nenne das einfach meinen Gesundheitszustand. Und wenn ich gerade spielen würde, wird uns das nur den Gesundheitszustand auf dem Bildschirm anzeigen. So, Gesundheitszustand. Ich möchte dies jedoch an unsere Variable binden, unsere Gesundheitsstatusvariable in unserem ThirdPersonCharacter. Also müssen wir diese Bindung erstellen, indem wir hier gehen , binden, binden. Und als wir zum Diagramm-Tab übergegangen sind, werden wir den Namen dieser Funktion ändern, indem wir hier F2 drücken, um den Gesundheitszustand wie folgt abzurufen. Wir machen es wie mit unseren anderen Funktionen hier, ich doppelklicke auf diese andere Funktion. Wir schnappen uns diese beiden Knoten, Steuerung C. Springt zurück zu unserer Gesundheitsstatus-Funktion, an der wir gerade arbeiten, Steuerung v. So. Und jetzt können wir in unserem ThirdPersonCharacter nachschauen, ob du das kompiliert hast. Wir wollen diese Variable für das Gesundheitsergebnis nutzen. Ich sollte das nicht in Help Desk ändern , ich nenne das Gesundheit, gute Gesundheitsergebnisse. Lassen Sie uns ein bisschen genauer sein. Sie ziehen sich bei den Gesundheitsergebnissen aus unserem Charaktertyp der dritten Person zurück. Wir wollen das Gesundheitsergebnis erhalten, nicht den Gesundheitszustand von Gesundheitsergebnissen. Es gibt zwei ähnlich benannte. Und jetzt, wenn ich kompilieren, speichern und feststellen sollte, dass unser ThirdPersonCharacter, sobald wir die Neun-Taste gedrückt haben, das ist, was wir hier unser Gesundheitsergebnis aktualisieren werden. Also drücke ich die Wiedergabetaste. Und sobald ich die Neuntaste drücke, hast du noch eine HP übrig. Irgendwo hier in diesem Third-Person-Charakter habe ich unsere Gesundheit beeinträchtigt. Nun, das war mit den Kranken, die Fünf-Schlüssel, oder? Also, indem du wieder hier reinspringst. Und ich drücke die Fünf-Taste, um meine Gesundheit zu senken. Wenn ich jetzt die Neuntaste drücke, sollte dies aktualisiert werden. Jetzt habe ich 50% Lebenspunkte, die fünf wichtigsten Senken, Senken, Senken. Ich sollte nicht 20 Prozent gesund sein. Also drücke ich die Taste F9. Auch hier hast du 20% Lebenspunkte. Und ich könnte das sinnvoller formatieren, aber du verstehst, worum es geht. Und schließlich habe ich erwähnt, dass alle Texte , die Benutzern angezeigt werden, sei es im HUD oder in den Menüs , Dinge, die Sie lokalisieren möchten. Es sollte sich in einer Textvariablen befinden, in dieser Art von Texten. Es sollte sich in einer Textvariablen befinden, wenn ein Benutzer es in verschiedenen Sprachen lesen möchte. Nun, wie gehen Sie mit diesem ganzen Prozess , der den Rahmen dieses Videos weit sprengen würde. Ich werde Sie jedoch auf diese spezielle Dokumentation hinweisen . In der offiziellen Dokumentation der Unreal Engine Five findest du unter Docs dot Unreal engine.com. Sie können die Adresse direkt hier oben sehen. Eine Menge Informationen darüber, wie man Texte lokalisieren kann, haben diese Leute zusammengestellt. Das wird alles für diesen Fall tun. Wir sehen uns im nächsten. 48. Vektor: Willkommen zurück, alle zusammen. Die Vektorvariable ist das Thema dieses Videos. Lassen Sie uns also lernen, wie man eine erstellt und wie man sie in einigen Blueprints-Skripten verwendet. Also zunächst, was ist eine Vektorvariable? Nun, eine Vektorvariable ist eine, die drei Fließkommawerte enthält , also Zahlen mit einem Dezimalpunkt. Sie werden normalerweise verwendet, um X-, Y- und Z-3D-Koordinatendaten zu spezifizieren . Sie können jedoch verwendet werden, um R -, G- und B-Farbdaten zu enthalten , also rote , grüne und blaue Farbdaten. Okay, um hier ein paar Beispiele zu zeigen, ich möchte unseren Level-Blueprint verwenden, aber bevor du überhaupt hineinspringst, lass uns sicherstellen, dass du eine Triggerbox in deinem Level hast , denn wir Ich werde das nutzen, um zu zeigen , wie Vektorvariablen verwendet werden. Wenn Sie dies noch nicht getan haben, hier unter dem Bereich Schauspieler platzieren die Registerkarte „Basic“ ausgewählt haben, finden Sie eine Triggerbox. Mach weiter und platziere eine davon in deinem Level. Und dann habe ich hier nur festgelegt, dass meine Box auf 200, 200, 200 verlängert wird , eine Strichstärke von zehn. Und unter dem Rendering-Bereich habe ich gerade Actor Hidden und Games ausgeschaltet, damit ich beim Spielen die Trigger-Lautstärke sehen kann . Ordnung, wenn diese Triggerbox ausgewählt ist, springen Sie dann zu Ihrem Level-Blueprint. Sofort. Was wir tun werden, ist mit der rechten Maustaste zu klicken. Du hast mich das 1 Million Mal machen sehen. Jetzt. Wir werden das Ereignis „ Actor Begin Overlap“ hinzufügen. Wir wollen, dass etwas passiert, wenn wir diese Triggerbox überlappen, und wir wollen, dass es nur passiert, wenn der ThirdPersonCharacter der andere Akteur ist. Das überlappt uns, um dort die Eingabe von Cast to ThirdPersonCharacter herauszuziehen . Das Erste, was ich hier machen möchte, ist einfach zu einem anderen Ort zu wechseln. Um nun zu bestimmen, an welchem Ort wir auch arbeiten möchten, könnten wir das in einer Vektorvariablen speichern. Kommen wir also zu unserem Variablenbereich. Klicken Sie auf die Plus-Schaltfläche und nennen wir das unseren Warp, too locale. Und um dies erneut in eine Vektorvariable zu ändern, können Sie hier klicken und sie als Vektorvariable festlegen. Oder wenn Sie diese Option im Detailbereich ausgewählt haben, können Sie den Variablentyp auch in einen Vektor ändern. Ich werde hier kompilieren. Und wir können sehen, dass, sobald wir dies getan haben, der Standardwert auf 00.0 gesetzt ist und dies Dezimalwerte sind. Dies sind drei Float-Werte. Und Sie können sehen, wie ich diese hervorhebe, dies normalerweise X -, Y- und Z-Koordinaten sind . Du kannst auch auf diesen kleinen Abwärtspfeil klicken, um das zu erweitern und X, Y und Z anzuzeigen . Was ich hier tun werde ist, diesen Wert auf einen Wert zu setzen , der über, oben in der Luft, über meiner Triggerbox liegt. Was ich hier also im Wesentlichen anstrebe , ist, dass ich das überschneiden möchte. Ich werde gleich hier spawnen. Ich überschneide das und dann möchte ich zu einer Position wechseln , die sich direkt darüber befindet, mit der Idee , dass ich irgendwo in der Nähe davon fallen werde . Und dann kann ich es immer wieder wiederholen. Also kopiere ich die Position dieses Triggerfeldes, wenn es im Detailbereich ausgewählt ist. Ich klicke mit im Detailbereich ausgewählt der rechten Maustaste hier und kopiere diese Koordinaten. Dann gehe ich zurück zu meiner Level-Test-Map, Level Blueprint, komm unter meinen Warp zum Gebietsschema. Und genau hier klicke ich mit der rechten Maustaste und füge es ein, um dieselben Werte einzufügen. Ich möchte meinen Z-Wert jedoch höher setzen , damit ich nicht gleich wieder in dieselbe Box zurückkehre. Also setze ich meinen z-Wert hier auf 2000. Beachten Sie, dass Ihre Werte hier unterschiedlich sein werden, je nachdem, wo Sie Ihre Triggerbox platzieren . Sie müssen nur wissen, dass Ihr X und Y dasselbe bedeuten können wie Ihre Triggerbox. Das Z, das Sie festlegen möchten , ist eine größere Zahl, sodass Sie sich am Ende über die Grenzen dieses Feldes hinausziehen. Was wir hier nun tun wollen, ist, wenn wir dieses Feld mit einem Charakter aus der dritten Person überschneiden , wir wollen es aus unserem ThirdPersonCharacter ziehen und Darstellerstandort einfügen. Dies ist ein Funktionsknoten , der Ihr Ziel bewegen kann. In diesem Fall geht unser Third-Person-Charakter an einen neuen Ort. Und was weißt du, wir speichern diese Position innerhalb dieser Vektorvariablen. Also kann ich mit der linken Maustaste klicken und es per Drag & Drop direkt über unseren neuen Standort ziehen. Und ich werde das kompilieren, um sicherzustellen, dass unser Skript hier gut aussieht und es auch so ist Speichern wir es und lassen Sie uns weitermachen und weiterspielen. Sobald ich das überschneide, sollte ich zu einer Stelle wechseln , die sich irgendwo darüber befindet. Los geht's. Da haben wir's. Du kannst sehen, dass ich einfach immer wieder und immer wieder hinunterfalle. Lassen Sie mich versuchen, mich von dort wegzubewegen. Unendliche Schleife. Aber du hast die Idee. Jetzt können Sie sehen, wie Sie dieses Skript hier um einen Soundeffekt erweitern könnten , vielleicht einen kleineren Partikeleffekt an der Stelle, an der wir diese Triggerbox überlappen, und am Warp zum Gebietsschema. Aber die Position der Triggerbox, das ist ein Beispiel für die Verwendung einer Vektorvariablen. Lassen Sie uns nun noch einmal eine Vektorvariable verwenden und sie verwenden, um eine Farbe zu spezifizieren. Dazu klicke ich mit der linken Maustaste auf diesen Warp to Locale Control D, um ihn zu duplizieren. Es wird diese Variable duplizieren und ich nenne sie einfach neue Farbe. Ich füge hier einfach einen Eingabeschlüssel hinzu. Lass uns das ausprobieren, ich kenne die Neuntaste nicht und schauen, ob das verfügbar ist. Die neun Tasten, Sicher, jedes Eingabeereignis reicht aus. Und ich ziehe das ab und tippe die Druckzeichenfolge ein. Und es wird den Text Hello ausdrucken. Wenn ich dies jedoch nach unten erweitere, kann ich eine Textfarbe angeben. Wenn ich nun den Mauszeiger über diesen Eingangspin bewege, heißt es, dass es sich bei diesem Variablentyp eine lineare Farbstruktur handelt. Das ist die Art von Variable, nach der es sucht. Und wir können eine davon erstellen, indem rechten Maustaste darauf klicken und zu einer Variablen hochstufen. Aber die Idee hier ist, dass ich zeigen möchte , wie eine Vektorvariable verwendet werden könnte, um eine Farbe zu spezifizieren. Wenn ich nun meine neue Farbvariable hier auswähle und kompiliere, kann ich hier einen Wert hinzufügen. Es kopiert die Daten , die von meinem Warp kamen, in das Gebietsschema. Lassen Sie mich das einfach wieder auf 00.0 setzen . Wenn Sie nun eine Vektorvariable verwenden, um eine RGB-Farbe anzugeben, müssen Sie wissen, dass diese Werte im Wesentlichen zwischen 0,0 und 1,0 liegen würden . Sie geben im Wesentlichen an, wie viel Rot oder wie viel Prozent Sie von Grün und welchen Prozentsatz Blau haben möchten. Ich setze meine neue Farbe hier auf 1,0 für den R-Wert, das b und das g, ich belasse es bei Null. Ich sage also im Wesentlichen, gib mir 100% Rot, kein Grün und kein Blau. Wenn ich nun versuche, das per Drag & Drop über meine Textfarbe zu ziehen, liegt das daran, dass sie Nein, das können sie nicht. Wenn ich es jedoch per Drag & Drop reinziehe, verstehe ich es. Und dann ziehe ich das in die Textfarbeneingabe. Es wird meinen Vektor in einen linearen Farbstrukturtyp konvertieren . Jetzt kann ich das kompilieren, speichern und sicherstellen, dass mein Skript einsatzbereit ist . Lass uns weitermachen und spielen. Wenn ich jetzt die Neuntaste drücke, wirst du sehen, dass der Text Hello rot angezeigt wird und das von meiner Vektorvariablen gesteuert wird von meiner Vektorvariablen gesteuert mit der ich einen R-, G- und B-Farbwert spezifiziere . Und da hast du es. üblichen Anwendungen von Vektorvariablen gehört Verwendung für Spawn - oder Antwortpunkte oder vielleicht für Start- und Endpunkte einer sich bewegenden Plattform. Und darauf werden wir später eingehen, wenn wir eine Lektion über Verwendung von Timeline-Nodes im Blueprints-Skripting machen. Leute, das wird alles für diesen Fall tun. Wir sehen uns im nächsten. 49. Rotator: Willkommen zurück, alle zusammen. Die Rotatorvariable ist der Star dieses Videos. Lassen Sie uns also lernen, wie Sie eines erstellen und wie es in einem Blueprint-Skript verwendet werden kann . Zuallererst, was ist ein Rotator? Nun, der Rotator ist eine Variable , die Rotationsinformationen enthält. Nun können Objekte um drei verschiedene Achsen gedreht werden, die X-, Y- und Z-Achsen. Dies kann darüber informieren, wie stark ein bestimmtes Objekt gedreht werden soll, es in diesen Rotatorvariablen gespeichert wird. Bevor wir zu all diesen Dingen kommen, möchte ich hier bei allen in Ihrem Level ausgewählten Objekten darauf hinweisen allen in Ihrem Level ausgewählten Objekten wie sich die Rotation um eine bestimmte Achse dreht. Moment kannst du sehen, dass ich hier meine Trigger-Lautstärke ausgewählt habe , meine Triggerbox, und ich befinde mich gerade in meinem Bewegungsmodus, durch das Widget mit Pfeilen angezeigt wird. Wenn ich das jetzt in den Rotationsmodus umschalten würde, können wir sehen, dass, wenn wir uns um die X-Achse drehen , ein roter Pfeil hier angezeigt wird. Dazu gehört, sich so zu bewegen. Es bewegt sich um diese Achse. Beachten Sie ebenfalls, dass unsere Y-Achse hier in diese Richtung zeigt. Wenn wir das auf Rotation umstellen würden, würden wir es um diese Achse bewegen. Ebenso, wenn unsere Z-Achse hier nach oben und unten wir uns um diese Achse drehen, bewegen wir sie im Wesentlichen so. Drehe es so. Ich muss grammatikalisch korrekt sein. Okay, damit habe ich auch noch eine Änderung zwischen den Videos vorgenommen , indem ich hier einen brandneuen Ordner erstellt habe und unser Scripting-Ordner einfach mit der rechten Maustaste geklickt, einen neuen Ordner erstellt und ihn Schauspieler genannt habe. Bps. Was ich hier gemacht habe, ist, dass ich alle meine Blueprints verschoben habe , die sich in meinem Übersichtsordner befanden. Ich ziehe sie einfach per Drag & Drop, klicke mit der linken Maustaste und ziehe sie in Ordner meines neuen Schauspielers BP. Weil das einfach ein aussagekräftigerer Name zu sein schien. Übersichtsordner. Es hat seine Nutzungsdauer irgendwie überlebt. Also werde ich hier in den Ordnern meines neuen Schauspielers BP einen neuen Blueprint erstellen . mit der rechten Maustaste klicken, erstellen wir eine neue Blueprint-Klasse. Dies wird ein Entwurf der Schauspielerklasse sein. Also wähle Schauspieler. Und ich werde dieser BP Underscore Rotating Door einen Namen geben. Wir werden einige Rotatorvariablen in diesem Blueprint erstellen . Lassen Sie uns zunächst darauf doppelklicken, um es zu öffnen. Und ich möchte nicht ein paar Komponenten hinzufügen. Die erste Komponente, die ich hinzufügen werde , indem ich in meinen Komponentenbereich gehe, wird eine Box, Box, Box Box sein. Lass mich einfach nach Box suchen. Da ist es. Box-Kollision. Und wenn das ausgewählt ist, habe ich einige Details, die ich dafür im Detailbereich festlegen möchte . Ich möchte die Position auf minus 45 und die Z-Position auf 110 setzen . Sie werden gleich sehen, warum. Lass uns irgendwie so hoch in die Luft gehen. Außerdem ändere ich die Ausdehnung der Box auf 170 im X, 60, im Y, in 110, im Z. Also ist sie ziemlich groß, ungefähr so. Ordnung, wenn das erledigt ist, werden wir eine statische Mesh-Komponente hinzufügen. Ich werde das hinzufügen. Wir suchen nach einem statischen Netz. Und derzeit ist dieses Static Mesh an unserer Box angebracht. Wir werden das in ein bisschen beheben. Ich nenne das mein Türgitter. Ordnung, wenn dies im Detailbereich ausgewählt ist, möchte ich unser statisches Netz so einstellen, dass es so ist, klicken Sie auf diese kleine Dropdown-Tür mit S M-Unterstrich. Dies ist nun ein Asset, das sich im Ordner Starter Content Prompts befindet. Ehrlich gesagt, Sie können jede Art von Tür wie Mesh verwenden, aber diese funktioniert gut. Also lass uns weitermachen und es benutzen. Randnotiz hier, dieses Netz weist keine Kollision auf. Ich weiß, du kannst es einfach durchgehen, aber es wird in Ordnung sein, um die Rotation eines Türgitters zu zeigen . Lass uns weitermachen und das platzieren. Nun, ich habe erwähnt, dass dies derzeit an unserer Box angebracht ist. Ich ziehe es einfach per Drag & Drop auf unsere Box, damit es nicht angehängt ist. Es sollte keine allzu große Sache sein, aber einfach, um zu Hause mit mir mitzuspielen. In Ordnung? Als Nächstes werden wir ein paar Variablen erstellen . also im Abschnitt Mein Blueprint unter dem Variablenbereich auf die Plus-Schaltfläche. Wir werden das erste nennen, Startrotation, Startrotation, nicht Standortrotation. Wir werden den Typ hier in einen Rotator ändern. Dann wähle ich das noch einmal aus und mache Strg und D, um es zu duplizieren. Das wird Kunst und Rotation sein. Damit kompilieren wir , sodass wir hier einige Werte festlegen können, starten die Rotation, stellen Sie sicher, dass Sie diese auswählen. Wir wollen, dass es 00.0 ist. Dann fahren Sie fort und wählen Sie Ihre Endrotation aus. Wir wollen nur, dass unsere Drehung entlang der Z-Achse 90 beträgt. Also, weißt du, wenn du eine Tür bei 90 Grad öffnest, fängst du im Grunde damit an, als ob das eine Vogelperspektive ist. Und dann wird das Ende irgendwie so sein, oder? Es wird es einfach öffnen. Schwinge das von hier aus so mit meiner Maus nach oben. Das ist nett, Mr. Waldroup. Ordnung, lassen Sie uns als Nächstes weitermachen und ein bisschen Scripting in unserem Ereignisdiagramm durchführen. Wir haben hier standardmäßig einige Ereignisknoten, wir können mit der linken Maustaste klicken und diese entfernen. Und jetzt wollen wir, dass etwas passiert, wenn wir anfangen, diese Box zu überschneiden. Und als wir dann aufhören, dieses Feld zu überlappen, und das ist dieses Feld hier drüben, bin ich zu meinem Viewport-Tab gesprungen. Gehen wir also zurück zu meinem Ereignisdiagramm. Ich klicke mit der rechten Maustaste auf meine Box-Komponente. Wir werden ein Ereignis hinzufügen, wenn wir beginnen, es zu überschneiden. Und dann klicken wir erneut mit der rechten Maustaste darauf um die Überlappung zu beenden. Jetzt wollen wir angeben, dass es der Spielercharakter ist , der uns überlappt. Jetzt könnte ich zu meinem ThirdPerson-Charakter wechseln. Es gibt jedoch eine andere Möglichkeit , dies zu tun. Deshalb möchte ich verschiedene Techniken vorstellen. Ich werde mit der rechten Maustaste klicken und „Spielercharakter abrufen“ eingeben . Und was ich hier tun werde, ist zu überprüfen, ob der andere Schauspieler ebenbürtig ist. Ich gebe einfach das Gleichheitszeichen ein. Wenn das meinem Spielercharakter entspricht. Wenn sie gleich sind, ich die B-Taste gedrückt und bringe einen Verzweigungsknoten wie diesen. Ein anderer Schauspieler ist meinem Spielercharakter ebenbürtig. Ich möchte die Tür aufdrehen. Um dies zu tun, verwenden wir nun einen Timeline-Knoten. Jetzt habe ich später im Kurs ein ganzes Video , das dem gewidmet sein wird. Also werden wir hier ein bisschen überspringen . In diesem Video geht es nicht darum, eine Zeitleiste zu erstellen. Wenn Sie also nicht einmal ganz verstehen, was hier passiert, einfach Geduld mit mir. Obwohl ich mein Bestes tun werde, um es so schnell wie möglich zu erklären, klicke mit der rechten Maustaste und etwas Leerzeichen und suche nach einem Zeitlinienknoten. Sobald Sie das Wort Timeline eingegeben haben, wird es hier unten gewogen , um eine Zeitleiste hinzuzufügen. Und das ist ein ganz besonderer Knoten. Und eines der Dinge, die dir ermöglichen werden, ist, ihm einen Namen zu geben. Ich nenne das meine Türrotation. Sie können sehen, dass es viele Eingangspins hat, viele Ausführungseingänge, auf denen wir es abspielen können. Wir können an diesem Knoten anhalten, auf den doppelgeklickt werden kann, um eine Animation zu spezifizieren, wenn es sich um eine Zeitleiste handelt. Wir werden unsere Tür über einen bestimmten Zeitraum animieren. Wenn wir darauf doppelklicken, können wir unserem Fenster hier eine Zeitleiste hinzufügen, also habe ich einfach darauf doppelgeklickt. Wir haben unseren Timeline-Knoten für die Türrotation ganz oben. Wir wollen einen Track hinzufügen. Wir wollen speziell eine Float-Tracks hinzufügen. Wenn ich gleich hier in den Track gehe, klicke auf die Plus-Schaltfläche. Wir wollen eine Float-Track hinzufügen. Ein Float Track ermöglicht es uns, eine Float-Variable im Laufe der Zeit zu ändern. Also fügen wir einen Float Track hinzu. Wir können diesen Track umbenennen und ich nenne das Rotation. Nun möchte ich einige Zeitpunkte angeben. Ich kann diesem Diagramm also einen Punkt hinzufügen, indem ich mit der rechten Maustaste klicke und einen Schlüssel hinzufüge. Das ist eine Möglichkeit, es hinzuzufügen. Und mit diesem ersten Punkt, dieser erste Keyframe, wie er genannt wird, hinzugefügt wurde , gebe ich einen Zeitpunkt von Null an. Ein Wert von Null. Drücken Sie die Eingabetaste. Und das wird es genau hier in meinem Track platzieren. Als Nächstes klicke ich erneut mit der rechten Maustaste auf eine andere Taste. So könnte ich das machen, oder ich kann die Umschalttaste gedrückt halten und mit der linken Maustaste klicken. Das ist eine weitere Möglichkeit, einen Schlüssel hinzuzufügen. Ich werde diesen Schlüssel wählen. Und ich setze die Zeit auf eins, also 1 s, und den Wert auf eins. Jetzt wird es hier vom oberen Bildschirmrand springen. Aber wenn Sie auf diese Pfeile klicken, können Sie es so einrahmen. Jetzt möchte ich auch die Länge meines Tracks hier so ändern , dass sie derzeit 1 s statt 5 s beträgt. Das gibt im Wesentlichen an, wie lang dieser Track sein soll. Ich möchte, dass das so lang ist wie mein letzter Keyframe hier, ich möchte, dass es 1 s ist. Was ich hier also im Wesentlichen tun werde, ist den Wert einer Float-Variablen namens rotation von zu ändern Null, ein Wert von Null bei 0 s auf einen Wert von eins 1 s später wird es langsam sein, wobei sich das 0-1 im Laufe von 1 s allmählich ändert . Nun ist diese Rotation variabel, wenn ich zu meinem Event zurückspringe Graph hier, beachten Sie, dass dies Rotation genannt wird. Sie können jetzt sehen, dass meine Zeitleiste für die Türdrehung eine Ausgabe hat, und diese Ausgabe ist ein Float-Wert. Es wird diesen Float-Wert ausgeben. Und wieder, wenn ich zurück in diese Timeline springe , indem ich darauf doppelklicke und darauf doppelklicke. Ich werde den Wert von 0-1 schrittweise über 1 s ändern . Das ist jetzt nützlich, weil wir damit einen sogenannten Loop steuern können . Wenn ich also mit der rechten Maustaste und etwas leerem Raum klicke, kann ich nach einem Knoten namens Rotator suchen. Das wird zunächst verwirrend sein, aber ich werde beschreiben, wie das funktioniert. Alert-Knoten ermöglicht es uns , über einen bestimmten Zeitraum von einem Wert zum anderen zu wechseln . Und wenn wir uns drehen oder mit der Maus über den oberen Rand dieses Knotens fahren, heißt es, dass wir basierend auf dem Alpha-Wert, den wir ihm geben, linear zwischen a und b interpolieren werden. Also wird es so funktionieren. Eine Rotation wird 0-1 sein. Das ist der Wert. Es wird im Laufe von 1 s zwischen 0-1 liegen. Wenn Alpha Null ist, wird der Wert dieses Knotens eingelesen, der mit der Rotation beginnt. Beachten Sie, dass unsere Startrotation im Grunde 00.0 ist. Jetzt, wo unser Rotationswert hier bei 0-1 liegt, bewegen wir uns allmählich von unserem a-Wert, unserem b-Wert. Da unsere Rotation hier also so abläuft, 0-1 über 1 s, wird sie sich kontinuierlich von a nach B bewegen, über 1 s von 01 wird uns von a nach b bewegen. Unsere Endrotation wird also spezifizieren Sie unsere Endrotation. Wir beginnen mit dieser Rotation. Wir enden mit dieser Rotation. Nun, das ist alles schön und gut, aber der Rückgabewert hier muss in die eingestellte relative Rotationsfunktion gesteckt werden . Oder wir sagen hier, hey Door Mesh, das ist die Komponente, die wir drehen wollen, ziehen und sie in unser Diagramm ziehen und dort ablegen wollen. Dann zieh dich da raus. Wir möchten Ihre relative Rotation festlegen. Das ändert deine Rotation im Verhältnis zu dem, wo du angefangen hast. Unser finales Setup wird also so aussehen. Lassen Sie uns das durchgehen, um das etwas gründlicher zu verstehen. wir nun diese Triggerlautstärke überlappen, werden wir herausfinden, ob der Spielercharakter der Gesamtfaktor war, der andere Akteur , der uns überlappt hat. Wenn das stimmt, werden wir diese Timeline spielen, abspielen. Es wird 0-1 sein, ein Rotationswert wenn der Float-Wert über 1 s liegt. Und dabei ändern wir den Wert dieser Variablen 0-1, wir gehen von unserer Startrotation zu unsere Endrotation im Laufe von 1 s. Das ist es, was das macht. Und wenn das wieder von A nach B geht, wird unser Türnetz angewiesen, sich in dieser einen Sekunde zu drehen. Lass uns weitermachen und uns einen Stamm geben. Wir werden uns vorerst nicht einmal Gedanken über unsere Endüberlappung machen. Aber um das zu tun, müssen wir das per Drag-and-Drop auf unser Level ziehen. Lass uns das per Drag & Drop in unser Level ziehen. Ich platziere es gleich hier drüben. Wir werden weitermachen und auf Play klicken. Und weißt du was? Um dies zu tun, sollte ich sicherstellen, dass wir dies in einem neuen Editorfenster wie diesem tun. Und außerdem werde ich das von unserem, unserem Blueprint hier aus machen, damit Sie das Drehbuch bei der Arbeit sehen können. Also lass mich das hier einfach irgendwie verstecken. Wir werden hier auf Play klicken. Wir haben unser Debug-Setup auf eine rotierende Tür gesetzt. Bring es hier in unser Spielfenster. Und wenn ich das überschneide, kannst du sehen, dass es um 90 Grad gedreht wurde . Wie Sie sehen können, wird, sobald ich von der Trigger-Lautstärke wegkomme, sie nicht zurückgesetzt oder so etwas. Und es hat die Rotation bereits so eingestellt, dass sie offen ist. Es ist also offen. Jetzt möchte ich das abschließen. Wir müssen nur auf ein ähnliches Setup zurückgreifen, wie wir es hier haben. Also, was ich tun werde, ist, einen hier rauszuziehen. Geben Sie das Gleichheitszeichen ein. Wir werden erneut herausfinden, ob ein anderer Schauspieler unserem Spielercharakter ebenbürtig ist. Noch einmal, wir kopieren unsere Zweigkontrolle C, Kontrolle V. Und wenn das stimmt , dass der andere Akteur unsere Überschneidung beendet hat, falls das stimmt, werden wir diesen Zeitplan umkehren. Wir werden die Drehung der Tür rückgängig machen. Also lasst uns das kompilieren. Im Spiel speichern. Ich werde das hier wegnehmen, damit du sehen kannst, wie das Drehbuch losgeht. In Ordnung, also die Timeline wird abgespielt. Dann beenden wir unsere Überschneidung. Achte darauf, dass das Drehbuch losgeht. Öffne Sesame. Tiefs, einfach so. Und da hast du es also. In diesem Video verwenden wir die Rotatorvariable, um eine Startposition für unser Türnetz sowie eine Endrotation für unser Türgitter anzugeben . Es ist so einfach wie die Jungs, die alles für dieses Video tun werden. Wir sehen uns im nächsten. 50. Transformation: Willkommen zurück, alle zusammen. Die Transformationsvariable ist die , mit der wir es in diesem Video zu tun haben. Wir werden zeigen, wie man eine erstellt und wie sie beim Blueprint-Scripting verwendet werden kann . Nun eignet sich die Transformationsvariable hervorragend , wenn Sie einen Punkt innerhalb einer Ebene angeben , an dem Sie möglicherweise antworten möchten. Transformationsvariable ist nun eine Variable, die Positions-, Rotations- und Skalierungsdaten enthält . Wenn du im rechten Bereich, im Detailbereich , nach einem Akteur suchst, den du in deinem Level ausgewählt hast, kannst du sogar einige Transformationsinformationen dazu sehen. Wenn ich hier den Startdarsteller meines Spielers auswähle, kannst du den angegebenen Ort, seine Drehung und die Skala sehen . Dies ist also im Wesentlichen eine Variable, die aus neun Float-Werten besteht, jeweils drei in Position, Rotation und Skala neun insgesamt. Jetzt, im Interesse der Zeit, habe ich eine Menge Dinge eingerichtet, bevor ich dieses Video gedreht habe. Lassen Sie mich Ihnen zeigen, was ich getan habe, und ich werde Sie Schritt für Schritt durch das Ganze führen. Für den Anfang habe ich meinen Player-Startdarsteller genau dort. Wie bei vielen anderen Videos habe ich zu meinem Level eine Triggerbox hinzugefügt. Und solange du dein Player, dein Place Actors Panel zur Verfügung hast , das du direkt dort aufrufen kannst. Du kannst dir direkt dort eine Trigger-Box schnappen. Und dann habe ich auch drei Zielpunktakteure, 12.3. Und du kannst diese Leute finden, wenn du im Bereich Schauspieler suchen und nur nach Ziel suchst, du wirst einen Zielpunkt-Schauspieler finden. Diese eignen sich im Wesentlichen hervorragend , um einen Punkt im Raum zu spezifizieren. Diese Symbole werden nicht angezeigt , während du spielst. Wenn Sie sie jedoch auswählen, können Sie ihren Standort sehen. Verwenden Sie auch ihren Standort oder ihre Rotationsdaten. Und ich verwende sie gerne für diese Zwecke. nun zu unserem Level-Blueprint springen Lassen Sie mich nun zu unserem Level-Blueprint springen und Ihnen das Skript zeigen , das ich hier zusammengestellt habe. Schauen wir also unter unserem Level-Blueprint nach und beginnen damit, dass wir zufällige Spawnpunkte setzen. In diesem ganzen Video werden wir also eine transformierte Variable verwenden . Was Sie hier tun möchten, finden Sie im Bereich Mein Blueprint unter dem Abschnitt Variablen Klicken Sie auf die Plus-Schaltfläche und erstellen Sie eine brandneue Variable. Es sollte genau dort von der Sorte Transformation sein, und ich nenne es Antwortpunkt. Wenn Sie es nun kompilieren, werden Sie feststellen, dass Ihre Standardwerte Nullen, Nullen, Nullen sind und die Skala 111 ist, im Wesentlichen die wahren Standardwerte ist. Was wir hier tun werden, ist, wenn das Spiel beginnt. Wenn unser Spiel beginnt, kannst du es finden, indem du mit der rechten Maustaste klickst und nach Event Begin Play suchst. Wir wollen unseren Antwortpunkt festlegen, das heißt, ihn mit einigen Daten füllen weil wir den Standort und die Rotation nicht beibehalten wollen , all diese Dinge auf Nullen, Nullen, Null. Also, was werden wir diesen Wert wieder darauf setzen, Variablen, deren Inhalt kann geändert werden, sie können gesetzt werden. Also, was ich hier gemacht habe, habe mir einen Verweis auf alle drei Zielpunkte geholt. Jetzt benenne ich diese Zielpunkte, Ziel 0.0, Ziel 0.1 und Zielpunkt to. Und dann ist das, was Sie in Verweise darauf einbringen können , wieder auf Ihrem Niveau. Sie können es auswählen und dann nacheinander, wenn es ausgewählt ist, können Sie die R-Taste gedrückt halten und so mit der linken Maustaste klicken. Lustiger, kniffliger. Wenn ich dort alle drei Zielpunkte auswählen würde, sind sie alle ausgewählt und dann auf RT drücken und mit der linken Maustaste klicken, kann ich sofort Verweise auf alle drei Punkte einfügen. Netter Trick. Das gefällt mir sehr gut. Dann habe ich jedes davon in die Länge gezogen. Und ich sagte, gib mir, dass sich Schauspieler verändern. Ich sage, gib mir, gib mir diese Daten gleich hier drüben für jeden dieser angegebenen Zielpunkte. Dann bin ich hier rausgefahren und habe make array eingegeben. Also erstelle ich im Wesentlichen eine Liste verschiedener Transformationen, verschiedener Transformationsdaten von Ziel 0.0, Zielpunkt und Ziel 0.2. Ich habe also eine Liste von drei möglichen Transformationen. Was ich dann gemacht habe, ist, ich habe Drogen von hier rausgekriegt und ich wollte eine Referenz bekommen , der Typ genau da. Und dann ziehe ich es rückwärts heraus und habe eine zufällige Ganzzahl im Bereich eingegeben. Ich sage, gib mir eine dieser Transformationen aus dieser Liste und mache sie 0-2. Möglicherweise müssen Sie diese Zahlen anpassen, je nachdem wie viele verschiedene Zielpunkte Sie in dieses Array gesteckt haben. Also ich sage, gib mir entweder 01 oder zwei, das ist mein Bereich, Null bis zwei. Und das Ergebnis werde ich als meinen Antwortpunkt angeben. Es wird sich also zu Beginn des Spiels ändern. Wir werden unsere Antwortpunkte für einen bestimmten Standort aktualisieren . Eins von diesen dreien wird nach dem Zufallsprinzip ausgewählt. Nun, das ist nur das Setzen dieser Antwortpunkte, diese Transformationsvariable, aber wir haben diese Antwortpunkttransformation nicht wirklich erhalten und verwendet . Also unten habe ich ein zusätzliches Skript. Und es sollte wie folgt sein. Was ich hier getan habe, ist, als ich angefangen , diese Triggerbox zu überlappen, und wenn diese Triggerbox erneut in deinem Level-Blueprint ausgewählt ist, kannst du dafür mit der rechten Maustaste auf ein Ereignis klicken und in einem Schauspieler beginnen sich zu überschneiden. Wir können hier rausziehen und dann ein Casting für unseren ThirdPersonCharacter machen . Wir wollen etwas tun, wenn unser ThirdPersonCharacter diese Triggerbox überlappt. Und was wir hier tun ist, dass wir ein paar Dinge tun und da kommt ein Sequenzknoten ins Spiel, wo sie den anderen sequenziert haben. Wir können sagen, tu das, dann tu das. Und wir können tatsächlich zusätzliche Dinge hinzufügen wenn wir hier unten auf diesen Plus-Button klicken. Aber es ist im Grunde eine nette, aufgeräumte Art zu sagen, tu das, dann das, dann alles, was danach kommt. Das Erste, was wir tun wollen, nachdem unser ThirdPersonCharacter überlappt, ist die Triggerbox dass wir unseren aktuellen Spielercharakter, unseren aktuellen ThirdPersonCharacter, zerstören wollen unseren aktuellen Spielercharakter, unseren aktuellen . Wir wollten ihn vernichten. Was wir dann unmittelbar danach tun werden , ist, einen Schauspieler aus dem Unterricht zu holen. Beachten Sie nun, dass dies ein Spawn-Akteur aus dem Klassenknoten ist. Sobald Sie die Klasse jedoch mit unserem ThirdPersonCharacter gefüllt haben, wird der Name hier aktualisiert, aber dies ist ein Spawn-Akteur aus dem Klassenknoten. Jetzt müssen Sie hier eine Spawn-Transformation angeben. Und hier verwenden wir unsere Transformationsvariable, die wir erstellt haben und die wir füllen. Wir sind wieder da, wenn wir mit dem Spielen beginnen. Ohne das. Wenn Sie kompilieren, wird ein Fehler ausgegeben und ich kann das einfach tun. Ich mache das kaputt, halte die Alt-Taste gedrückt und klicke mit der linken Maustaste. Wenn ich also kompilieren sollte, heißt es: Hey, du musst eine Spawn-Transformation angeschlossen haben , damit wir weitermachen und das einstecken können. Und dann, was wir hier draußen machen, ist, mit der rechten Maustaste in ein leeres Feld um den Player-Controller abzurufen. Und da raus, und es muss raus sein. Wenn Sie sich daraus zurückziehen , weil das Ziel ein Controller ist, können Sie nach diesem Besitzknoten suchen. Durch Besitzen, indem du dort herausziehst und dir einen Besitzknoten schnappst, kannst du dir einen Bauern aussuchen, den du besitzen möchtest. Hier bringen wir einen neuen ThirdPerson-Charakter hervor. Hier sagen wir: Hey, wir wollen spawnen oder wir wollen diesen ThirdPerson-Charakter mit unserem Player-Controller besitzen . Wir werden später im Kurs mehr über Player-Controller sprechen . Lass uns weitermachen und hier kompilieren. Und das ist unser Drehbuch, um den Spieler zu zerstören und dann auf einen anderen zu antworten , ihn nicht mehr zu besitzen. Also, das ist hier alles geklärt. Wenn du das Video hier pausieren und dir das genau ansehen willst, los geht's. Okay, lass uns weitermachen und nochmal spielen. Und sehen wir uns das in Aktion an. Das wird hier ein bisschen klein sein. Aber hoffentlich können Sie sehen, wie einige dieser Drähte abfeuern. Lass uns weitermachen und spielen. Und wir haben bereits einen Antwortpunkt festgelegt. Lassen Sie mich weitermachen und mein Debug-Objekt dort auf mein Level setzen . Sobald ich die Triggerbox überlappe, wirst du sehen, wie wir den Schauspieler zerstören. Und dann unmittelbar nach dem Lawnen eines neuen ThirdPerson-Characters und dessen Besitz. Los geht's. Und es zeigt diesen Punkt hinter dem Level. Und es wählt gerade wieder dasselbe , denn erst zu Beginn des Spiels setzen wir unsere Transformationsvariable auf unsere Transformationsvariable auf einen dieser drei Zielpunkte. Wenn Sie jedoch so etwas tun würden, ziehen Sie es von hier weg, ziehen Sie es direkt wieder hier nach oben. Jedes Mal, wenn ich diese Triggerbox überlappe und zurücksetze, wähle ich nach dem Zufallsprinzip einen dieser drei Zielpunkte aus, auf die ich meine Antwortvariable setzen möchte . Also lass uns das versuchen. So überlappend. Ich spawne dahinter. Lass uns noch einmal darauf stoßen. Ab nach links, dieses Mal dahinter. Auch hier wird es nach dem Zufallsprinzip ausgewählt. Es gibt noch etwas, mit dem ich hier zeigen möchte. Die Transformationsvariable ist, dass Sie diese eindeutigen Positions-, Rotations- und Skalierungsdaten tatsächlich extrahieren können. Nun enthält diese Transformationsvariable all diese Daten. Wenn Sie jedoch nur einen Teil dieser Daten extrahieren möchten, könnten Sie das tun. Und du könntest das tun, indem du diesen Pin hier herausziehst und Zwischenabschnitte eintippst. Lass mich einfach diesen Draht hier durchbrechen. lieber mit der rechten Maustaste darauf , wird der Struct Pin geteilt. tut mir leid. Hier können wir die Punkte unserer Befragten , transformiert in die Standort-, Rotations- und Skalendaten aufteilen . Und wie Sie sehen, eine transformierte Variable im Wesentlichen besteht eine transformierte Variable im Wesentlichen aus Vektordaten, Rotatordaten und Vektordaten. Ebenso könnte ich von dieser Spawn-Transformation hier in unserem Spawn-Akteur vom Klassenknoten hier in unserem Spawn-Akteur vom Klassenknoten mit der rechten Maustaste darauf klicken und diesen Pin gut in die Standort-, Rotations- und Skalierungsdaten aufteilen diesen Pin gut in die Standort-, . Wenn Ihnen diese Granularität nicht gefällt, können Sie mit der rechten Maustaste auf diese Pins klicken und sie wieder zu einer einzigen Transformation kombinieren . Rekombinierter, gestanzter Stift heißt das. Also dachte ich nur, ich würde das auch da rauswerfen. Da hast du es also. Eine Transformation, eine variable Note für so etwas wie die Angabe eines Antwortpunkts. Das reicht, um diesen einen zu bieten, Leute, sehen uns im nächsten. 51. Schauspieler (Objekt): Willkommen. In diesem Video wollen wir herausfinden, was ein Akteur, eine Variable ist, wie man eine Variable erstellt und wie sie beim Blueprint-Skripting verwendet werden kann . Jetzt vollständige Offenlegung hier Dieses Video wird in hohem Maße ein Überblick über unser Video mit den Objektreferenzen der Klasse BP sein unser Video mit den Objektreferenzen der Klasse BP , das wir zu Beginn des Kurses gemacht haben. Wenn ich jetzt reinspringe und hier spiele, dient das als kleine Erinnerung. Wenn wir die Pfeiltaste drücken, haben wir in diesem Video ein Skript geschrieben. Wenn wir eine Null-Taste drücken, haben wir auf diese Weise eine Linienspur in die Welt gesendet . Und wenn oben links ein verstecktes Objekt erscheint, wird der Name des Dings angezeigt, auf das wir treffen. Und sobald wir diesem Akteur eine Variable gesetzt haben, können wir die Neuntaste drücken, damit er verschwindet. Dabei setzen wir, während wir das getan haben wenn unser Line Trace einen Treffer erkannt hat, eine Aktorvariable. Gehen wir nun zurück zu unserem bp ThirdPersonCharacter in unserem Third-Person-Blueprints-Ordner und sehen die Skripte an, die wir dort zusammengestellt haben. Also, was wir hier machen, ist, als ich eine Eingabetaste gedrückt habe, habe ich die Pfeiltaste benutzt. Wir haben eine Linienbahn gesendet, die am Standort unseres Schauspielers begann und an unserem Endpunkt der Linienverfolgung endete war eine Variable, die wir in unserem Komponentenbereich hier erstellt hatten. Es ist in unserem Viewport gleich hier drüben. Dies ist eine Fehlerkomponente , die auch als Variable unter dem Zeilenverfolgungsendpunkt Ihrer Komponente aufgeführt ist . So haben wir diese Pfeilkomponente genannt. Du startest also eine Line Trace am Standort unseres Schauspielers. Wir beenden es mit diesem Pfeil. Und wir schicken diese Linie, diese Spur entlang des Sichtbarkeitskanals in die Welt hinaus . Wir haben auch diesen Draw-Debug-Typ auf eine Dauer von vier eingestellt. Wir können also diese Linienspur sehen. Und wenn wir feststellen, dass wir etwas getroffen haben, falls dies tatsächlich etwas getroffen hat, stellt sich heraus, dass dieser Rückgabewert wahr ist. Wir werden einen Sound abspielen. Und dann werden wir die Hits auch hier veröffentlichen. Das ist es, was das alles tut. Wir haben uns von hier rausgezögert und wir brechen die Treffer aus. Und wir haben herausgefunden, was wir getroffen haben. Und wir legen das in einen Aktor-Variablentyp fest. Nun, wir könnten dies erstellen, indem wir entweder mit der rechten Maustaste hier klicken und in diesem Rechtsklick-Menü zwei Variablen auswählen . Oder die Art und Weise, wie Sie eine Aktorvariable erstellen können , finden Sie im Variablenbereich Sie könnten auf die Plus-Schaltfläche klicken und einfach actor var eingeben. Und dann wird es hier sofort auf Schauspieler gesetzt , weil das die letzte Variable ist, die ich gesagt habe. Aber du könntest nach einem Schauspieler suchen. Und in den Objekttypen möchten Sie Akteur-Objektreferenz wählen. Lassen Sie uns nun darüber sprechen, was gültige Objektreferenzen sind. Nun, Beispielobjekte könnten Lichter enthalten, es könnten statische Netze, Kameras, akustische Hinweise oder andere Blueprint-Akteure enthalten . Hier erkennen wir nur, was wir getroffen haben, und stellen das als unseren Schauspieler fest. Es spielt keine Rolle, ob es sich um einen statischen Netzstuhl handelt , im Vergleich zu was auch immer dieses Ding ist. Was auch immer das Netz ist, es ist eigentlich egal. Mit was auch immer unsere Linienspur kollidiert. Es wird das als unsere Akteurvariable festlegen. Dann drucken wir einfach den Namen auf den Bildschirm aus. Nun, der Grund, warum wir das in einer Aktor-Variablen gespeichert haben , ist, dass, sobald unser Line Trace auf etwas trifft und es uns festlegt, wollen wir, dass er es zerstören kann. Und genau das hat dieses Drehbuch hier unten gemacht. Nachdem wir die Neuntaste gedrückt hatten, fanden wir heraus, hey, was ist der Inhalt dieser Hit Actor-Variablen, dieser Schauspieler-Variablen? Wenn das gültig ist, das heißt, da ist etwas drin. Wenn das gültig ist, wollen wir ihn vernichten. Der Inhalt dieses Hit Actors könnte sich also ändern. Lass mich einfach zeigen, dass ich hier auf Play klicke. Und wieder drücke ich die, lass mich einfach mein Debug-Objekt setzen. Hier ist mein b, mein ThirdPerson-Charakter. Bring meinen Charakter noch einmal auf. Also werde ich diese Leitungsbahn in die Welt schicken, indem ich die V Null-Taste drücke. Und dann siehst du hier oben links den Namen des Dings, auf das ich treffe. Null-Taste. Ich bin nicht nah genug. Ich muss ein bisschen näher kommen. Da haben wir's. Statistik, Vorschau, Netz, was auch immer das ist. Also, wenn ich auf die Nike treffe, wird das offensichtlich verschwinden. Aber wenn ich sagen würde , dass ich das Szenario wiederholen und irgendwie dasselbe tun soll, werde ich damit beginnen, die Nulltaste zu drücken, um das einzustellen. Ich kann den Inhalt dort jedoch zurücksetzen, indem ich zu diesem Stuhl komme und die Nulltaste drücke. Also nun, wenn das mein Erfolgsdarsteller hier ist . Also, wenn ich jetzt auf Nike drücke, wird es das nicht zerstören. Es wird meinen Stuhl zerstören , weil das der letzte Set von Hit Actor war. Hier ist der Nike, Boom By Chair. Nun, nur um zu zeigen, dass bei dieser Aktorvariable nicht um ein statisches Netz handeln muss. Es könnte so etwas wie ein Licht sein. Ich werde das anhand eines anderen Blueprints festlegen. Und auch nur um zu zeigen, dass Sie dies von einem anderen Blueprint aus einstellen können. Also werde ich hier auf mein Level zurückkehren und ein Licht in mein Level bringen. Du könntest platzieren, wenn du an deiner Stelle bist, Schauspielerpanel. Hier findest du die Lichter. Oder alternativ kannst du hier unterkommen und dann blühen die Lichter. Auf diese Weise können Sie ein Licht hinzufügen, Punktlicht reicht aus. Lass uns einfach eines davon in unser Level ziehen und dort ablegen. Ich mache einfach diese Summe aus schädlichen Farben wie Rosa. Und dann werde ich in meinen Level-Blueprint springen und Level Blueprint öffnen. Und das werden wir sagen, wenn ich hier eine Taste drücke und mal sehen, welche Tasten hier verfügbar sind. Ich habe nur die eine Taste in der Nähe benutzt, also lass uns die beiden Schlüssel benutzen, oder? Ich bin in meinem Ereignisdiagramm genau hier Wir klicken mit der rechten Maustaste und geben die beiden Schlüssel ein. Lass uns nach der Tastatur suchen. So können Sie diese Keyboard-Events ganz einfach finden . Drücken Sie die beiden Tasten. Und wenn wir das tun, wir mit der rechten Maustaste, um den Spielercharakter zu erhalten. Wenn wir uns dann zurückziehen, können wir zu unserem ThirdPersonCharacter übergehen. Schon wieder. Sobald du Zugriff auf deinen ThirdPerson-Charakter hast. Und ja, mir ist klar, dass ich hier links eine Charakterreferenz gespeichert habe. könnte ich auch gebrauchen. Aber sobald ich das habe, kann ich es hier rausziehen und ich kann diese Hit Actor-Variablen finden , solange sie erstellt und kompiliert wurden. Also versuchen wir erneut, diesen Akteur oder eine Variable zu extrahieren und ihn aus unserem Level-Blueprint festzulegen. Lass uns hier raus, gib Hits Actor ein. Wir werden den Hit Actor einstellen. Und auf was wollen wir den Hit Actor einstellen? Nun, wenn ich die R-Taste gedrückt halte und mit der linken Maustaste klicke, kann ich es als mein Punktlicht einstellen. Lass uns verstehen, was ich hier vor mir habe. Lassen Sie mich das schnell kompilieren und sicherstellen, dass die Skripte einsatzbereit sind. Vom Level-Blueprint aus greife ich also immer zu meinem Charakter-Blueprint über , wenn ich die beiden Tasten drücke, und ich setze die Aktor-Variable in meinem ThirdPersonCharacter als Punkt leicht. Und dann drücke ich in meinem ThirdPersonCharacter Blueprint die Neuntaste, um den Inhalt dieser Hit Actor-Variablen zu löschen , mit der sie in diesem Fall gefüllt würde dieses Punktlicht. Also lass uns weitermachen und uns ein Spiel geben. Ich habe nicht wirklich ein gutes Mittel, um beide vorzuführen , eigentlich kann ich beide zeigen. Macht nichts. Ich werde hier spielen. Also beginnen wir hier mit unserer Level-Test-Map. Ich werde meine Debug-Option als Test-Map festlegen. Okay, also lass uns Licht herausfinden. Sie können das Lichtsymbol nicht sehen, aber Sie können das Licht auf dem Boden sehen, sodass Sie wissen, dass es da ist. Ich drücke die beiden Tasten. Das wird also diese Akteurvariable mit dem Punktlicht füllen . Ordnung, das ist jetzt festgelegt. Lass mich jetzt zu meinem ThirdPersonCharacter springen. Und noch einmal muss ich dieses Fenster wieder einschalten. Hoppla, sieh mal, los geht's. Also, wenn ich jetzt die Neuntaste drücke, sieh zu, wie dieses Licht verschwindet, und da ist es. In diesem Video haben Sie also gelernt, wie man eine Akteurvariable erstellt und wie sie auf irgendeine Weise gesetzt und manipuliert werden kann. Und wir haben sogar Blueprint-übergreifende Kommunikation durchgeführt. Wofür könntest du so etwas verwenden? Nun, stell dir ein Handwerkssystem in einem Spiel vor, bei dem du vielleicht mit einigen erntbaren Gegenständen in deiner Welt interagieren musst . Und dein Objekt, dein erntebares Objekt, könnte das sein, was auch immer dein Charakter einer Blume am nächsten kommt, ein Stück Holz, so etwas kann immer als erntebare Schauspieler dargestellt werden mit dem du zu interagieren versuchst. Okay Leute, das wird alles für dieses Video tun, wir sehen uns im nächsten. 52. Variable Dinge zu wissen (Teil #1): In Ordnung, willkommen zurück. In diesem Video möchten wir einige wichtige Dinge lernen, die Sie wissen sollten, wenn mit Variablen in Unreal arbeiten. Nun, das sind nicht wirklich Tipps und Tricks an sich. Sie sind eher eine Erklärung einiger wichtiger Konzepte in Variablenoptionen. Sie sollten wissen, Sie sollten wissen wie man eine Variable initialisiert, wie man eine Variable auf öffentlich oder privat setzt und sogar was das heißt. Und wie man die Variable für Filmsequenzen oder wenn sie erzeugt wird, verfügbar macht. Zunächst werden wir über die Initialisierung von Variablen sprechen. Und um das zu demonstrieren, werde ich an meinen ThirdPersonCharacter-Blueprints arbeiten . Wenn du vergessen hast, wo der Typ ist, greife ich in unserem Blueprints-Ordner für Dritte darauf Dort ist dein BP, Third-Person-Charakter. Was bedeutet es also, eine Variable zu initialisieren? Nun, das bedeutet, ihm irgendwie einen Anfangswert zu geben. Jetzt geben wir einer Variablen oft einen Standardwert, wenn wir die Variable erstellen, aber nicht immer können wir eine Variable initialisieren und andernfalls leere Variable erstellen, wenn ein Ereignis eintritt Dies könnte ein Überlappungsereignis, es könnte ein Eingabeereignis sein, etwas Ähnliches. Betrachten Sie dieses Beispiel , das ich vor diesem Video in meinem ThirdPersonCharacter eingerichtet habe . Also habe ich zunächst im Bereich Mein Blueprint eine Variable namens Warp to Locale erstellt . Und es ist vom Typ der Vektorvariablen. Was ich jetzt hier mache, ist, dass ich das Event gestartet habe. Denken Sie daran, dass in einer Grafik hier nur ein Event mit dem Spielen beginnen kann. habe ich hinzugefügt. Und was ich mache, ist, sobald wir mit dem Spielen beginnen , wird dieser Charakter in meinem Level an der Startzone meines Spielers spawnt . Wenn es erscheint, bekommen wir nur den Standort unseres Schauspielers. In diesem Fall unser ThirdPersonCharacter. Und wir legen diese Position als Koordinaten innerhalb dieser Vektorvariablen fest. Standardmäßig sind meine Werte für diese Warp-to-Locale-Variable hier also 00.0. Sobald ich jedoch mit dem Spielen beginne, wird der Inhalt initialisiert. Sie werden an den Ort meines Schauspielers ausgetauscht, wo mein Third-Person-Charakter auftaucht. Dann füge ich hier einfach ein bisschen Skript hinzu, um diese jetzt initialisierte Variable, diese aufgefüllte Variable, zu verwenden . Sobald ich die Zifferntaste auf meiner Tastatur gedrückt habe, lege ich den Standort meines Schauspielers fest. Das ist dieser Blueprint, das ist der Zielakteur selbst zu diesem bestimmten Ort, der Warp to Locale-Standort. Also schau dir das hier auf meiner Karte an. Ich habe diesen Stuhl genau in die Nähe der Stelle gestellt, an der ich laichen werde. Denn denk dran, wir sind ein Charakter der genau an diesem Ort spawnt. Zu Beginn des Spiels, bei dem unser Charakter reagiert, legen wir den Standort unseres Schauspielers als den Ort fest, an dem wir zum Standort unseres neuen Schauspielers wechseln möchten, oder, naja, unser Charakter in der dritten Person ist der genaue Standort. Also im Wesentlichen , was hier im Spiel ist. Nun, diese Variable wurde bereits initialisiert noch bevor ich mein Debug-Objekt hier gesetzt habe, also ist das schon passiert. Und wenn ich das jetzt wieder in Ordnung gebracht habe, wirst du sehen, ich werde diesen Punkt verlassen. Aber dieser Warp zum Gebietsschema wurde an der Stelle gesetzt, an der ich gespawnt habe. Also, wann immer ich die Zifferntaste drücke, die A-Plus-Nummer-Taste auf meiner Tastatur, das Plus-Symbol. Es wird sofort zu dieser Stelle zurückkehren, weil das der Ort der Initialisierung ist. Plus-Taste, spielt keine Rolle. Plus-Taste. Sehr Angewohnheit, eine Variable zu initialisieren , um ihr einen Anfangswert zuzuweisen. Lassen Sie uns als Nächstes über öffentliche und private Variablen sprechen und darüber, was das überhaupt bedeutet. Und für dieses Beispiel verwende ich meinen BP-Beispiel-Tonabnehmer. Ich habe eine davon, die mein Level platziert, und dann habe ich darauf doppelgeklickt, um sie zu öffnen, hier oben. Wenn Sie sich also an ein früheres Video erinnern, haben wir eine Health erstellt, um eine Float-Variable hinzuzufügen. Und hier drüben auf der rechten Seite, wo wir ein enges Auge für einige dieser anderen Variablen für die Gesundheit haben, klicken wir einfach darauf, um das Augapfelsymbol anzuzeigen. Und dabei hat dieses Feld, das die Instanz editierbar gemacht hat, dieses Kontrollkästchen haben. Dieses Kontrollkästchen entspricht also unbelichtetem Augapfel hier drüben. Es spielt also keine Rolle, ob ich zum Schließen darauf klicke. Es wird das Kontrollkästchen für die editierbare Instanz auf falsch setzen . Und wenn ich darauf klicke, wird es aktiviert. Es spielt keine Rolle, welche davon Sie umschalten, Sie schalten dieselbe Eigenschaft ein. Jetzt, wo das an ist. Und Sie können dem Tooltip hier entnehmen, dass es sich um eine öffentlich bearbeitbare Variable handelt. Was bedeutet das überhaupt? Sobald du das eingestellt hast, kompilierst du es und kommst zurück zu deinem Leveleditor. jedem Fall, das gilt für jede Kopie dieses Blueprints, der zu deinem Level hinzugefügt wurde. Variable, die Sie als öffentlich bearbeitbar festgelegt haben , ist jetzt verfügbar, sobald Sie das Objekt in Ihrem Detailbereich ausgewählt haben . Schauen Sie es sich an. Diese gesunde Add-Variable kann jetzt für jede Instanz dieses Blueprints geändert werden . Wenn ich Alt gedrückt halten, linken Maustaste klicken und ziehen würde, habe ich jetzt eine zweite Instanz dieses Blueprints, MI-Level. Für diese Instanz des Blueprints könnte ich also meinen Gesundheitszustand so ändern , dass er 0,5 ist. Bei dieser Instanz des Blueprints könnte ich ihn so einstellen, dass er 20% beträgt und diese Heilung 50% beträgt. So hatten wir das Setup. Das ist also eine öffentliche Variable. Es entspricht diesem editierbaren Instanzfeld hier. Nun, ein bisschen weiter von dieser Instanz entfernt, ist das bearbeitbare Feld diese private Option. Wenn wir dieses Kästchen bei einer bestimmten Variablen ankreuzen, haben wir es so gemacht, dass diese Variable nicht anhand externer Blueprints geändert werden kann. Also, was ich hier machen werde, ist , das zu kompilieren. Ich werde speichern, dann gehe ich hier zu meinem Level-Blueprint. Beachten Sie, dass ich meine BP-Beispielabholung ausgewählt habe, eine davon ausgewählt, es ist in Ordnung. Eines davon wird ausreichen. Ich habe hier Nummer zwei ausgewählt, aber beide reichen aus. Ich werde zu meinem Level-Blueprint springen. Ich halte die R-Taste gedrückt und klicke mit der linken Maustaste, um einen Verweis auf dieses Beispiel einzufügen. Nimm es auf. Und jetzt suche ich Variablen namens Health , um sie hinzuzufügen. Und los geht's. Ich werde das herausziehen und Gesundheit eingeben, um es hinzuzufügen. Und du siehst, ich kann es hier nicht einmal finden. Es wird nicht angezeigt, weil es auf privat gesetzt ist, was bedeutet, dass ich diese Variable von einem externen Blueprint wie dem Level-Blueprint aus nicht ändern oder darauf zugreifen Variable von einem externen Blueprint wie dem Level-Blueprint aus kann. Wenn ich hier jedoch zu meiner BP-Beispielabholung zurückkehren sollte, deaktiviere ich das Häkchen. Ich kompiliere, speichere und gehe zurück zu meinem Level Blueprint. Ich ziehe es hier raus und gebe Gesundheit ein, um es hinzuzufügen, und dort kann ich es bekommen oder einstellen. Das Seltsame ist also, dass Sie eine Variable haben können , die auf öffentlich gesetzt ist. Das heißt, Sie können auf den Editor zugreifen und ihn bearbeiten. Sie können es auch als privat festlegen. Das ist weder das eine noch das andere. Sie können es auf beide einstellen. Das verwirrt viele Leute, aber es könnte so eingestellt werden, dass es öffentlich ist, was bedeutet, dass Sie es im Editor bearbeiten können. Und es kann auch auf privat gesetzt werden, was bedeutet, dass, wenn es einmal auf privat gesetzt wurde und Sie versucht haben , es aus einem anderen Blueprints zu ziehen. Sie können diese Variable nicht finden oder darauf zugreifen. Warum würdest du das tun wollen? Nun, es könnte einfach eine Ausfallsicherheit sein, um sicherzustellen, dass Sie nichts ändern , was Sie nicht wollten. Lassen Sie uns als Nächstes diese Option untersuchen, die beim Spawn verfügbar ist, die Sie in Variablen finden . Was macht das? Dafür? Ich werde unsere BP-Drehtür benutzen. Wir haben diesen Schauspielerklassen-Blueprint erstellt, als wir den Rotatorvariablentyp untersucht haben. Und falls du vergessen hast, wo das ist, das ist in unserem Darsteller ein BPS-Ordner. Wir haben alles verschoben. Wir haben all diese Blueprints nach dem Unterricht aus unserem Übersichtsordner in den Ordner unseres Schauspielers BP verschoben. Fahren Sie hier fort und wählen Sie Ihre Rotatorvariable für die Enddrehung aus. Und im Detailbereich wollen wir festlegen, dass dies beim Spawn angezeigt wird. Wenn du das jetzt kompilierst, wird es dich anschreien. Und wenn es soweit ist, wird es sagen, hey, das ist großartig. Du hast es beim Spawn als exponiert markiert. Dafür müssen wir dies aber auch als Instanz editierbar markieren. Also mach weiter und mach das auch. Beide müssen angekreuzt werden, damit sie angezeigt Sie werden hier in der Spawn-Funktion angezeigt. Sobald beide überprüft sind, kompilieren Sie es erneut. Und dann werden wir zu unserem Level-Blueprint übergehen . Also, falls du das noch nicht geöffnet hast, komm her, öffne Level Blueprint. Und wir werden ein einfaches Skript einrichten. Ich werde mit der rechten Maustaste in eine leere Stelle klicken. Jedes Eingabeereignis reicht aus. Ich bringe einfach F h , weil das ein guter Input von m zu sein scheint. Wir ziehen uns von hier ab und machen Spawn-Schauspieler aus dem Unterricht. Denken Sie jetzt daran, dass Sie mit diesen Knoten eine Spawn-Transformation einspeisen müssen. Also nehme ich einfach die Transformation. Lass uns die Transformation unseres Spielers schnappen . Hier habe ich das in meinem Level ausgewählt. das ausgewählt ist, gehe ich zurück zu meinem Level-Blueprint und halte die linke Maustaste gedrückt , um einen Verweis darauf zu erhalten. dieser noch hervorgezogenen Schauspieler-Transformation herausgezogen. Wir schließen das an. Und was wollen wir an diesem Ort spawnen? Nun, wir werden eine unserer bp-rotierenden Doris spawnen. Ich werde hier weiter nach unten scrollen. Wo ist diese Drehtür, da ist die BP-Drehtür. In dem Moment, in dem ich das gemacht habe, habe ich das als die Klasse festgelegt, in der ich spawnen wollte. Schau dir das an. Meine Endrotationsvariable wurde bei dieser Spawn-Funktion verfügbar gemacht. Hier können wir also die Rotation auf etwas anderes als den Standardwert setzen . Jetzt hatte ich so eingestellt, dass sich die Tür um 90 Grad öffnen würde. Das heißt, es würde sich öffnen. Normalerweise öffnet sich eine Tür, aber ich kann sie hier noch mehr öffnen. Also lass uns weitermachen und das versuchen. Und ich setze das auf 135. Wenn ich jetzt weitermachen und das spielen sollte, klicke hier oben auf Abspielen. Und ich werde hier nicht einmal meine Debug-Option einstellen , um zu zeigen, dass dieses Skript startet . Vertraue einfach darauf, gut, ich werde diesen Player-Star genau hier verlassen. Wenn ich das abnehme, drücke ich F8. Bumm, diese Doris-Bindung, wenn auch etwas höher als perfekt auf dem Boden platziert zu sein , und das ist völlig in Ordnung, dass sie in der Luft schwebt. Ich werde die Triggerlautstärke überlappen . Denken Sie daran, dass eine Auslöserlautstärke erkennt, wenn meine Charaktere überlappen, und wenn ich sie überlappe, öffnet sie sich um mehr als 90 Grad, sie öffnet sich 135 Grad. Da hast du es also. Beim Spawn verfügbar machen, du musst das aktiviert und Instanz editierbar aktiviert haben, damit es angezeigt wird. Wenn du einen Schauspieler aus der Klasse spawnt. 53. Variable Dinge zu wissen (Teil #2): Und zu guter Letzt wollte ich dieses Kästchen zeigen, das im Kino sichtbar ist, das man bei einigen Variablen findet , nicht bei allen. Und welche du finden kannst und welche nicht, erkläre ich dir später in diesem Video. Für dieses Beispiel bin ich also wieder in meinem BP-Beispiel-Pickup. Im Bereich Mein Blueprint habe ich eine neue Vektorvariable erstellt. Ich habe es Scale genannt. Und nachdem ich kompiliert habe, habe ich meine Skala auf 11,1 gesetzt. Lassen Sie uns weitermachen und auch dieses Kontrollkästchen für Filmaufnahmen aktivieren. Dann mach weiter und kompiliere. Nun, um zu zeigen, was wir zeigen wollen, wenn Sie diese Variable einer Filmsequenz aussetzen. Wir müssen unserem Level einen Film hinzufügen. Um das nicht zu tun, springen wir zurück zu unserem Level hier oben in der Werkzeugleiste, du hast dieses kleine Zwischenablage-Icon. Fahren Sie fort und klicken Sie darauf, und wir möchten eine Levelsequenz hinzufügen , die ein Film ist. Lass uns weitermachen und das tun. Und sobald wir darauf klicken, heißt es, wo möchten wir dieses Asset speichern? Lass es uns in einen neuen Ordner legen. Ich habe hier Scripting ausgewählt. Ich klicke mit der rechten Maustaste. Ich werde einen neuen Ordner erstellen, nenne ihn Sequenz. Eigentlich nenne ich es einfach Cinematics. Und ich belasse es bei der neuen Level-Sequenz, das wird mein Name Shore sein. Und sobald ich das getan habe, klicke ich auf Speichern. Ich habe jetzt einen neuen Schauspieler zu meinem Level hinzugefügt. Es heißt New Level Sequence. Es ist vom Typ eines Level-Sequenz-Aktors. Und auch neben meinem Inhaltsbrowser habe ich hier ein neues Fenster namens Sequencer geöffnet. Nun, was Sie in diesem ganzen Fenster tun können, um im Laufe der Zeit etwas zu ändern , um eine Art Filmsequenz zu erstellen. Um das zu tun, müssen wir einen Track hinzufügen. Wenn ich also hier unten auf diesen Track-Button klicke, möchte ich einen Schauspieler zu meinem Sequenzer hinzufügen Im kleinen Blumenmenü kann ich einen Schauspieler in meinem Level auswählen. Beachten Sie, dass alle Schauspieler hier auch in meinem Outliner vorhanden sind und ganz oben rechts hier möchte ich meinen BP-Beispiel-Pickup hinzufügen. Ich habe es derzeit auf nur eins in meinem Level reduziert. Also werde ich das hinzufügen. Und jetzt kann ich hier auf diese Plus-Schaltfläche klicken, um das Innere meines BP-Beispiel-Pickups weiter zu untersuchen und mir den unteren Bereich anzusehen. Ich habe eine Skaleneigenschaft, die jetzt einer Filmsequenz ausgesetzt wurde. Dieser Sequenzer ist filmisch. Jetzt sehe ich bei diesem kleinen Auszug, dass es sich um einen Vektor handelt und ich kann ihn modifizieren. Ich kann x, y oder z wählen. Es spielt keine Rolle, welches davon du wählst. Ich werde hier x wählen. Es wird diese Variable nun dieser Zeitleiste, dieser Filmsequenz zugänglich machen. Und wenn ich auf dieses kleine Drop-down-Menü klicke, können Sie sehen, dass ich jetzt das X, Y oder Z dieser Vektorvariablen im Laufe der Zeit ändern kann . Jetzt wird diese Skala derzeit in Bildern pro Sekunde angezeigt. Das ist es, was diese 30 FPS bedeuten. Wir können das entweder Frames ändern oder was ich gerne mache, ist darauf zu klicken. Und ich ändere das stattdessen gerne als Zeit. Also Showtime als Sekunden, quasi so. Und jetzt ist das für mich ein bisschen sinnvoller. Ich kann Dinge von 0 s derzeit auf 5 s ändern . Ich kann das auch erweitern, aber wir werden keine erstellen. Das ist ziemlich lang. In Ordnung, also was will ich hier machen? Ich möchte eine dieser Skaleneigenschaften über einen Zeitraum von 5 s ändern. Also werde ich nur die Z-Skala modifizieren. Ich könnte sie alle ändern, aber ich werde hier einen Keyframe bei 0,0 s hinzufügen , indem ich auf diese Plus-Schaltfläche klicke. Wir sagen also, dass der Skalenwert für diese Vektorvariable eins im Z bei 0 s sein soll. Dann verschiebe ich meinen Timeline-Schieberegler ganz nach draußen auf 5 s. Und dann klicke ich erneut auf die Plus-Schaltfläche. Nur dieses Mal werde ich sagen, dass ich an dieser Stelle in der Timeline einen weiteren Keyframe hinzugefügt habe. Das ist es, was der rote Punkt bedeutet. Ich sage an dieser Stelle, ich möchte, dass die Z-Skala fünf ist, also gehen wir von 1-5. Und wenn ich diesen Schieberegler bewege, stelle ich fest, dass sich der Wert der Z-Skala im Laufe der Zeit ändert. Das ist alles gut und gut, außer dass wir diese Variable nicht wirklich in unserem BP-Beispiel-Pickup verwenden , wir haben sie verfügbar gemacht, wir haben die Skalenvektorvariable für unsere Filmsequenz hier verfügbar gemacht . Und wir werden es hier über diesen Film anpassen . Aber wir haben noch kein Drehbuch , das das wirklich ausnutzen wird. Also lass uns das als nächstes machen. Dafür fügen wir unserem Level eine Triggerbox hinzu. Und ich werde das hier relativ schnell machen. Ich werde es vergrößern , um die Größe der Box wieder auf 200 um 200 zu ändern, 200 mehr im Detailbereich. Ich werde die Linienstärke noch einmal auf zehn ändern , einfach so. Dieser Level-Sequenzer, Schauspieler , Schauspieler genau da, es spielt übrigens keine Rolle, wo man das im Level platziert. Und dann mache ich das, damit wir es sehen können. Das versteckte Spiel des Rendering-Schauspielers auf „Falsch“. Und wenn dieser Schauspieler ausgewählt ist, gehe ich zu meinem Level-Blueprint über und klicke mit der rechten Maustaste. Ich werde etwas tun, wenn wir anfangen, es zu überschneiden. Das Erste, was wir tun werden, ist, die Besetzung auf eine dritte Person zu übertragen. Wir werden etwas mit unseren ThirdPerson-Character-Überschneidungen bei machen. Was wir dann tun wollen, ist, uns hier einen Verweis auf unsere Levelsequenz zu holen . Also mach weiter und klicke in deinem Level-Blueprint darauf. Halten Sie die R-Taste gedrückt und klicken Sie mit der linken Maustaste, um eine Referenz darauf anzuzeigen. Und dann ziehe ich es raus und tippe das Wortspiel ein. Wir wollen unseren Sequenzplayer spielen. Das ist die Option, nach der wir suchen. Wir sagen im Grunde, Hey, spiel diesen Film, also sollte er so angeschlossen sein. Das wird die Filmsequenz abspielen. Es wird also diese Eigenschaft tatsächlich ändern. Aber es wird diese Skaleneigenschaft über einen Zeitraum von 5 s ändern. Aber wir erstellen noch kein Skript, um zu zeigen, dass dieses Wachstum tatsächlich stattfindet. Damit das passiert, ist das hier ein sehr komplizierter Aufbau. Ich klicke mit der rechten Maustaste und setze ein Event-Häkchen ein. Jeder Frame. wollen wir. Wähle dein Beispiel aus und mache dort im Level weiter. Zurück in unserem Level-Blueprint halten wir die Archae mit der linken Maustaste gedrückt , um einen Verweis darauf einzufügen. Wir ziehen uns von hier weg. Wir werden eine Weltskala von drei D für die Kugelkollision festlegen . Weil unsere Sphäre kollidiert, hängt alles damit zusammen. Und beweg es so. Und dann ziehen wir auch unserem Beispiel-Pickup heraus und finden diese Skalierungsvariable. Ich muss ganz nach unten scrollen, um unsere Waage zu bekommen. So wie es ist. Beachten Sie also, dass unsere Skala standardmäßig 11,1 ist. Also in jedem Frame wird es das einlesen. Es wird unsere Sphärenkollision hier auslösen, was die wurzelste Komponente in allem ist , was mit diesem 2111 verbunden ist. Sobald ich diese Triggerbox jedoch überlappe, sagen wir diese Sequenz oder spielen sie ab, die als Zeitleiste dient, um den Wert dieser Variablen zu ändern, 1-5 über 5 s. sagen wir diese Sequenz oder spielen sie ab, die als Zeitleiste dient, um den Wert dieser Variablen zu ändern, 1-5 über 5 s. ist unser Film. Also kannst du das Video hier pausieren, dir das ansehen, wenn du zu Hause mitspielen willst, ich kompiliere es. Lass uns weitermachen und es spielen. Schieb das hier ein bisschen zur Seite. Sie können also unseren Beispiel-Pickup dort hinten sehen. Die Skala bleibt konstant. Lassen Sie mich mein Debug-Objekt genau dort platzieren, damit Sie sehen können, wie ein Event-Tick bei jedem Frame ausgelöst Debug-Objekt genau dort platzieren, damit Sie sehen können wird. Bring es noch einmal in mein Spielfenster. Sobald ich mich also über 5 s überlappt habe, sollten Sie sehen, dass dies an Größe zunimmt. Los geht's. Ziemlich süß. Und das ist tatsächlich passiert. Das ist also eine sehr langatmige Art, zu zeigen, was genau diese Option, die dem Kino ausgesetzt ist, macht. dies wieder zu dem für Kinematik exponierten Kontrollkästchen zu bringen , können Sie es auf Boolean, Integer, Float, String, Vector Transform und Actor-Variablen finden . Das finden Sie nicht für Namen, Texte oder Rotatorvariablen. Okay Leute, das reicht, um dieses Video anzubieten, wir sehen uns im nächsten. 54. Variable Tipps und Tricks: Willkommen. In diesem Video werden wir wichtige Tipps und Tricks besprechen, die Sie unbedingt kennen sollten, um mit Variablen so effizient wie möglich arbeiten zu können. Wir werden über die verschiedenen Möglichkeiten sprechen Variablen abzurufen und zu setzen. Wir werden überprüfen, wie eine Variable beworben werden kann. Wir werden darüber sprechen, wie man Variablen kategorisiert und ihnen Tooltips gibt. Und zum Schluss werden wir darüber sprechen, wie man Variablentypen ändert. Lassen Sie uns mit unserem bp ThirdPersonCharacter Blueprint beginnen , um Ihnen bei dieser Diskussion zu helfen. Wenn Sie das also nicht geöffnet haben, können Sie es in Blueprints für Dritte finden. Dort findest du den ThirdPerson-Charakter. Und sobald wir hier sind, wollen wir untersuchen, wie Variablen auf drei verschiedene Arten abgerufen und gesetzt Variablen auf drei verschiedene Arten über die wir hier sprechen werden. Lassen Sie uns zunächst die drei verschiedenen Möglichkeiten untersuchen , um eine Variable zu erhalten, um herauszufinden, welche Inhalte in dieser Variablen vorhanden sind. Und dafür werden wir dieses Health-GET-Array hier loswerden dieses Health-GET-Array hier , weil wir das untersuchen werden. Die erste Möglichkeit ist also , mit der linken Maustaste zu klicken und zu ziehen. Und dann könnten wir in unserem kleinen Dialogfeld hier, wenn wir unseren Linksklick loslassen, wenn wir unseren Linksklick loslassen, die Gesundheit abrufen. Das ist Weg Nummer eins. Weg Nummer zwei: Ich kann die Strg-Taste gedrückt halten , mit der linken Maustaste klicken, ziehen, loslassen, Linksklick klicken, das kann auch ein bisschen besser werden. Und die dritte Möglichkeit, weniger gebräuchlich, aber sehr effektiv, besteht darin, einfach mit der linken Maustaste zu klicken und diesen auf einen Eingabe-Pin für einen bestimmten Knoten zu ziehen . Sobald wir es also per Drag & Drop darauf ziehen, wird der Inhalt dieser Variablen in der Tat sehr praktisch sein. In Ordnung, lassen Sie uns über das Setzen einer Variablen sprechen. Also genau hier oben haben wir ein Zentrum eingerichtet. Ich lasse es vorerst dort. Aber was wir hier tun werden, ist mit der linken Maustaste zu ziehen wenn die Nummer eins darin besteht, einfach Gesundheit einstellen“ aus diesem Menü auszuwählen. Wenn Sie mit der linken Maustaste klicken, ziehen, loslassen, Linksklick. Die zweite Möglichkeit besteht darin, die Alt-Taste gedrückt zu halten. Linksklick, Ziehen, Loslassen, Linksklick. Das ist der zweite Weg, um das in den Mittelpunkt zu stellen. Und die dritte Möglichkeit, den Inhalt einer Variablen festzulegen. Also werde ich diesen Typen vorerst einfach auslöschen , einfach Drag & Drop auf den Ausgangspin eines, eines bestimmten Knotens ziehe und das bringt auch eine Mitte hinein. also noch einmal einstellen, können Sie den Inhalt dieser Variablen ändern. Lassen Sie uns als Nächstes über das Heraufstufen zu einer Variablen sprechen, von der Sie bereits wissen, dass Sie Variablen erstellen können , indem Sie hier klicken , eine Variable hinzufügen oder indem Sie unter diese Variable gehen und auf die Plus-Schaltfläche klicken. Förderung einer Variablen ist jedoch die dritte Möglichkeit, eine Variable zu erstellen und sie ist hier aus mehreren Gründen sehr praktisch. Erstens kann es Ihnen von Anfang an den Variablentyp geben, den Sie benötigen. Verwenden Sie diesen Knoten hier als Beispiel. Nehmen wir an, wir haben unsere Gesundheitsvariable und wollen einen gewissen Betrag hinzufügen. Nun, wir können einfach mit der rechten Maustaste auf diesen Pin klicken und das gibt uns den Variablentyp , den wir bereits benötigen, in diesem Fall ein Float, damit es mit der rechten Maustaste klicken, promoten und ich klicke, ich kann nenne diese Gesundheit zum Hinzufügen. Der zweite Vorteil beim Heraufstufen zu einer Variablen besteht darin, dass wir sehen können, dass sie automatisch den Wert erfasst, der sich innerhalb dieses Knotens befand, wenn wir sie kompilieren sehen können, dass sie automatisch den Wert erfasst, der sich innerhalb dieses Knotens befand, wenn wir . Wenn Sie dort bereits einen Wert platziert haben und diesen in eine Variable hochgestuft haben und ihn dann kompilieren, wird diese Variable automatisch mit dem Wert gefüllt , der darin enthalten war . Das ist also super praktisch. Es lohnt sich, hier darauf hinzuweisen, dass Sie eine Variable auf jedem Knoten hochstufen können , nicht nur von der Eingabeseite, sondern auch von der Ausgangsseite. Also Ausgangsseite dieses Gesundheitszentrums, ich könnte mit der rechten Maustaste darauf klicken , es zu variabel machen und es wieder meine Gesundheitsvariable nennen. Ich weiß nicht, warum du danach deine, eine neue Variable setzen möchtest , aber vielleicht möchtest du so etwas tun. Bewerben einer Variablen ist also eine sehr praktische Möglichkeit , den Variablentyp zu erhalten , nach dem Sie tatsächlich suchen, und ihn auf die Inhalte einzustellen , die dort bereits fest festgelegt waren. Was mir an der Beförderung zu einer Variablen wirklich gefällt, lassen Sie mich einfach zu meinem BP-Beispiel übergehen, ist, dass wir hier über einige sehr gebräuchliche Variablentypen gesprochen haben, aber es gibt auch einige obskurere. ZB habe ich diesen Play-Sound-2D-Node hier ist ein IBP-Beispiel-Tonabnehmer. Und ich habe etwas namens Parallelitätseinstellungen. Sie fragen sich vielleicht, ich habe keine Ahnung, was das überhaupt ist, aber ich möchte daran herumspielen und sehen, was ich ändern kann. Nun, du könntest mit der rechten Maustaste auf diesen Pin klicken. Sie könnten das in eine Variable hochstufen, kompilieren. Und dann können Sie im Detailbereich sehen welche Dinge Sie an dieser Variablen festlegen können. Und du kannst vielleicht nichts sehen, vielleicht ergibt es für dich keinen Sinn. Aber das ist eine großartige Möglichkeit, um zu erfahren, was diese verschiedenen Pintypen sind, was diese verschiedenen Variablen alle auf der Eingangsseite eines Knotens oder auf der Ausgangsseite des Pins sind . Tolle Möglichkeit, diese Dinge zu lernen. Ordnung, lassen Sie uns als Nächstes über das Erstellen von Kategorien für Ihre Variablen sprechen , in denen Sie leben können. Jetzt, da Sie mit Ihren Skripten immer komplizierter werden, haben Sie möglicherweise immer mehr Variablen auf der linken Seite und möchten sie irgendwie kategorisieren können . Nun, Sie können Kategorien erstellen, in denen sie leben können. Lassen Sie mich einfach nach Gesundheit auswählen , um es hier hinzuzufügen. Und drüben im Detailbereich haben wir eine Kategorie und derzeit gehören alle meiner Standardkategorie, von Tonabnehmern bis hin zu Parallelitätseinstellungen. Ich könnte eines erstellen, indem einfach dieses Kategorienfeld hier auswähle. Ich übersetze es und nenne es meine Gesundheitskategorie. Ordnung, jetzt sehen Sie im Bereich Mein Blueprint, ich eine Gesundheitskategorie erstellt habe und dass ich eine Gesundheitskategorie erstellt habe und meine Gesundheit zum Hinzufügen darin existiert. Jetzt kann ich dieser Kategorie weitere Variablen hinzufügen. Ich könnte sagen, Hey, waage, ich möchte, dass du auch in dieser Kategorie lebst , indem du sie einfach auswählst. Und wenn ich jetzt auf dieses Drop-down-Menü klicke, werde ich in der Lage sein, Gesundheit in diesem Drop-down-Menü zu finden . Sie können also eine neue Kategorie erstellen, indem Sie diese einfach überschreiben und einen neuen Kategorienamen eingeben . Sobald Sie jedoch eine Kategorie erstellt haben, können Sie wählen, ob Sie eine Variable innerhalb dieser Kategorie festlegen eine Variable innerhalb dieser möchten , indem Sie diese entweder hier auswählen. Oder ich kann einfach eine Variable in diese Kategorie ziehen. Fünf ist also, zu versuchen, diesen Tonabnehmer zu ziehen und ihn genau hier oben auf der Skala zu platzieren. Schau zu, dass es hier passieren wird. Es wird neu angeordnet , sodass es automatisch in diese Gesundheitskategorie aufgenommen wird. Dies ist nun auch nützlich, um diese Kategorien zu erstellen. Denn schauen wir uns das gleich hier an. Meine Gesundheit noch dazu. Es hat diesen kleinen Augapfel überprüft, sodass diese Instanz bearbeitet werden kann. Jede Variable, die so eingestellt ist, dass sie instanzbearbeitet werden kann. Nochmals, um das hier zu kompilieren , nur um sicherzugehen, dass ich das habe, springe zurück zu meiner Test-Map. Ich habe einen dieser BP-Beispiel-Pickups hier in meinem Level drüben im Detailbereich, wenn dieser ausgewählt Ich kann meine verschiedenen Kategorien sehen , die ich diesbezüglich ändern kann. Nun, eine der Kategorien, die ich ändern kann, ist meine Gesundheit, um das hinzuzufügen und zu überprüfen. Es ist nicht mehr in einer Kategorie namens Standard aufgeführt. Es ist jetzt in einer Kategorie namens Gesundheit zum Hinzufügen aufgeführt. Lass uns weitermachen und versuchen, hier in unserem BP-Beispiel-Pickup eine weitere Kategorie zu erstellen . Lass mich meine Waage ändern. Ich meine, es macht nicht wirklich Sinn, das in einer Gesundheitskategorie an sich zu haben . Zweitens, lassen Sie uns es in eine Kategorie namens Skala ändern. Und ich stelle das so ein, dass es von der Instanz bearbeitet werden kann. Wir müssen kompilieren, nachdem wir dies auf die Instanz editierbar gesetzt haben , damit wir diese Variable dann in unserem Editor verfügbar machen können. Wenn dies ausgewählt ist, habe ich jetzt eine Gesundheitskategorie mit Gesundheit, die ich hinzufügen kann. Und skalieren Sie eine Kategorie mit einer darin enthaltenen Skalenvariablen. Nun, wofür würdest du diese Kategorien erstellen wollen? Nun, in so etwas wie deinem BP ThirdPersonCharacter hast du vielleicht einige Variablen, die sich alle auf den Namen deines Charakters beziehen, Vornamen, den Nachnamen, den zweiten Vornamen. Es könnten einige Charakterattribute sein , die ihr alle kategorisieren wollt. Das wäre eine übliche Sache. könnten Dinge sein, die mit Gesundheit oder Schaden zu tun haben. Du könntest eine Gesundheits - und Schadenskategorie erstellen , so etwas. Lassen Sie uns als Nächstes das Hinzufügen von Tooltips, zwei Variablen, untersuchen. Dann gehe ich zurück zu meiner BP-Beispielabholung. Also kann ich für jede meiner Variablen eine Beschreibung, einen Tooltip hinzufügen. Beachten Sie, dass, wenn ich gerade mit der Maus über meine Variablen fahre, angezeigt wird, dass meine Gesundheit zum Hinzufügen einfach ein Float-by-Pickup-Sound ist, das ist die Basisbeschreibungsskala sagt einfach, dass es sich um eine Vektorvariable aber du kannst den Inhalt ändern, die Tooltip-Texte, wenn du willst. Mit der Option „Meine Gesundheit zum Hinzufügen im Feld „Details“, Feld „ Meine Beschreibung“. Ich kann das so ändern, dass dies die Menge an Gesundheit ist , um Enter hinzuzufügen. Und wenn ich jetzt mit der Maus über diesen Zustand fahre, um eine Variable hinzuzufügen, heißt es nicht mehr Float Double-Precision oder was auch immer zuvor gesagt wurde, verwendet um Float Double-Precision zu sagen. Es heißt jetzt, dass dies die Menge an Gesundheit ist, um die Texte hinzuzufügen, die ich direkt dort eingegeben habe. Und zum Schluss wollte ich nur darauf hinweisen, dass Sie, wenn Sie Variablentypen wirklich ändern möchten , und Sie wissen schon, Sie können den Variablentyp entweder hier ändern , indem Sie darauf klicken, Wenn Sie ein neues aus dem Popup-Feld hier oder im Detailbereich auswählen , können Sie es auch hier ändern. Wenn Sie dies jedoch tun, gibt es einige Dinge, über die Sie Bescheid wissen müssen. ich also die Möglichkeit habe, eine Float-Variable hinzuzufügen , die im Bedienfeld Mein Blueprint ausgewählt wurde , ändere ich den Variablentyp in eine Ganzzahl. Sobald du das getan hast, bekommst du ein kleines Popup-Fenster mit der Aufschrift: Hey, du könntest hier einige Verbindungen unterbrechen. Bist du dir wirklich sicher , dass du es tun willst? Lassen Sie uns also weitermachen und diesen Variablentyp ändern. Aber Sie werden feststellen , dass Sie, wenn Sie das tun, dieses Sprichwort bekommen, Ordnung, wir haben es genau hier in der Grafik gefunden. Deine BP-Beispielabholung füge deine Gesundheit hinzu. Da war es. Jetzt gehe ich raus. Und du wirst sehen, dass das genau hier so ist wie: Nun, es war ein Float, es ist jetzt eine Ganzzahl. Also, was machst du hier? Nun, Sie können das beheben, indem mit der rechten Maustaste auf diesen Knoten klicken und ihn aktualisieren. Es erkennt jetzt, hey, du änderst das in eine Ganzzahl. Aber jetzt hast du hier etwas zu tun. Wir haben diesen Link kaputt gemacht und ich könnte ihn auch hier einstecken. Und in diesem Fall wird es eine einbringen, es wird das einfach sehr gut umwandeln. Aber in anderen Fällen wird das nicht so gut funktionieren. Sie müssen also wirklich vorsichtig sein, wenn Sie Ihre Verbindungen unterbrechen , wenn Sie Ihre Variablen ändern. Jetzt wurde nur diese eine Instanz dieser Variablen hier hinzugefügt. Wenn Sie jedoch jeden Ort finden möchten , an dem dies möglicherweise existieren könnte , um all diese Referenzen dieser Variablen zu korrigieren . Sie können mit der rechten Maustaste darauf klicken, um Referenzen zu finden. Weise können Sie herausfinden, wo diese Variable beliebigen Stelle in diesem Diagramm existiert. Und Sie können sogar hinter diesem Diagramm feststellen, dass Sie, wenn Sie diese Variable verwendet haben, diese Variable aus einem anderen Blueprint aufrufen. Sie können hier auf diese kleine Schaltfläche klicken , um herauszufinden, woher diese Variable in einem anderen Blueprint abgerufen oder gesetzt wurde. Das ist also wirklich praktisch, wenn man mit der rechten Maustaste klickt und Referenzen findet. Du wirst dieses kleine Pop-up aufrufen. Sie können darauf doppelklicken, um direkt dorthin zu springen. Und wenn Sie dann auch herausfinden möchten, wo diese Variable auf andere Blueprints verweist, können Sie genau hier klicken, um das zu tun. In Ordnung Leute. Damit ist es für dieses Video abgeschlossen. Das wird alles für Variablen tun. Wir sehen uns im nächsten. 55. Funktionen Übersicht: Ordnung, willkommen zurück alle. In diesem Abschnitt des Kurses werden wir unseren Fokus offiziell auf das Thema Funktionen verlagern. Und obwohl Sie gesehen haben, dass ich in unseren Diskussionen über andere Dinge im Zusammenhang mit Blueprint-Scripting eine Reihe von Funktionen verwendet unseren Diskussionen über andere Dinge im Zusammenhang mit Blueprint-Scripting eine Reihe von habe. Hier teilen wir sie vollständig auf sprechen über alle Nuancen von Funktionen. Unser Ziel in diesem Video ist es also , schnell zu erläutern, welche Funktionen es gibt. Nennen Sie einige Beispiele dafür , wie sie in Unreal eingesetzt werden. Und schließlich sprechen Sie darüber, wo Sie sie finden können. Was ist also zunächst eine Funktion? Nun, um diese Diskussion zu erleichtern, befinde ich mich in meinem Level Blueprint und habe einige Funktionsknoten abgelegt. Eine Funktion ist ein Blueprint-Knoten , der einfach etwas tut, er führt eine bestimmte Operation aus. Also, welche Art von Dingen habe ich platziert, bevor du hörst, nun, du könntest spawnen und Schauspieler werden. Das heißt, ein Objekt in Ihrem Spiel zu spawnen , das für Sie nützlich sein könnte. Du kannst einen Partikeleffekt erzeugen. Dies ist das alte VFX-System, das Kaskadensystem für visuelle Effekte oder ein neueres Partikelsystem, das als Niagara bekannt ist. Sie könnten ein Widget erstellen , das einen Widget-Blueprint , der häufig im Endgame-HUD verwendet wird, oder Menüs anzeigen soll . Du kannst einen Sound abspielen. Sie könnten den Standort eines Schauspielers ändern, alles Mögliche, was mit Funktionen erledigt werden kann. Jetzt können Funktionen Eingaben annehmen und Alberts zurückgeben. Nur zur Erinnerung: Eingaben befinden sich auf der linken Seite eines Knotens. Die Ausgänge befinden sich auf der rechten Seite des Knotens. Unreal bietet bereits eine ganze Reihe von Funktionen. Wenn ich mit der rechten Maustaste und etwas leeren Bereich klicken und in einer dieser Kategorien einen Drilldown durchführen würde, sehen Sie all diese ausgefallenen S Hier. Sie sind entweder blau oder grün. Dies sind alles vorgefertigte Funktionsknoten , auf die Sie Zugriff haben. Jetzt können Sie Ihre eigenen Funktionen in einem Blueprint erstellen und diese bei Bedarf aufrufen. Wir werden hier in ein paar Videos darüber sprechen. Ein paar Dinge, die in dieser verallgemeinerten Funktionsübersicht beachtet werden sollten dieser verallgemeinerten Funktionsübersicht beachtet , dass Sie bei der Arbeit mit Funktionen in Unreal feststellen werden, dass sie in zwei verschiedenen Geschmacksrichtungen erhältlich sind. Sie haben blaue Funktionen, die als unreine Funktionen bekannt sind, und sie haben diesen blauen Header. Und wenn ich hier nach rechts gehe, haben Sie grüne Funktionen und diese werden als reine Funktionen bezeichnet. Der Hauptunterschied zwischen diesen besteht nun darin, dass diese grünen und reinen Funktionen keine Ausführungspins auf der Eingangs- oder Ausgangsseite haben, während die blauen unreinen Funktionen dies tun. Jetzt haben wir ein ganzes Video, das unreinen und reinen Funktionen gewidmet ist. Also werden wir später mehr darüber sprechen, wollten aber nur darauf hinweisen, während wir hier sind. Ein weiterer Unterschied, auf den ich zwischen verschiedenen Funktionsknoten hinweisen wollte , ist, dass der Header für sie manchmal etwas beschreibender ist als andere. Und was meine ich damit? Wenn wir uns einige unserer Funktionsknoten hier unten ansehen , da sie an diesem Ort ein Spawn-System sind, ist das alles, was dieser Funktionsknoten sagt, dass es sich um ein Spawn-System am Standort handelt Vergleichen Sie das nun mit diesem Knoten hier oben, legen Sie den Standort des Schauspielers fest. Und dann direkt darunter steht Ziel ist Schauspieler. Dieser fragt nach einem Ziel, dessen Standort wir ändern möchten. Dieser hat keinen Unterüberschriften-Subdeskriptor darunter. Beachten Sie nun, dass dieses festgelegte Materialziel auch eine primitive Komponente ist. Ich kann ein Netz liefern, Material wir ändern wollen. Wenn ich zu meinem ThirdPersonCharacter Blueprint springe, platziere ich auch einige Funktionsknoten hier unten. Diese alle sagen, Ziel ist Charakter, Ziel ist Charakter, Ziel ist Charakter und so weiter. Verschiedene Funktionen haben also unterschiedliche Ziele. In diesem Fall sind alle diese Funktionsknoten spezifisch für eine Zeichenklasse. Während in unserer Level-Testkarte einige dieser Funktionsknoten nicht spezifisch für eine bestimmte Klasse oder eine bestimmte Komponente sind . Funktionen können unterschiedliche Ziele haben. Es könnte ein Komponentenziel haben, es könnte ein Schauspielerziel, ein Charakterziel, Dinge dieser Art haben. Und darauf werden wir gleich näher eingehen. Und schließlich wollte ich darüber sprechen, wo man Funktionen in einem Graphen finden kann . Nun, ein paar verschiedene Möglichkeiten, das zu tun. Am häufigsten klicken Sie mit der rechten Maustaste auf einen leeren Bereich. Hier drin. Wenn ich hier auf mein Schauspieler-Dropdown klicke, findest du hier viele verschiedene Funktionen. Auch hier kommen sie in den unreinen Funktionen des blauen Geschmacks oder im grünen Geschmack vor, das sind reine Funktionen. Und diese sind in jeder Kategorie verfügbar. Sie werden eine ganze Menge davon finden , die bereits für Sie vorgefertigt sind. Jetzt können Sie auch nach einer bestimmten Funktion suchen. Auch hier ist der Spawn-Schauspieler aus dem Unterricht weit verbreitet. Wenn du also weißt, wonach du suchst, kannst du es einfach dort eingeben Schauspieler aus dem Unterricht spawnen. Etwas anderes, auf das ich hier hinweisen möchte , ist, dass Funktionen kontextsensitiv oder nicht kontextsensitiv sein können . Und das ist diese Checkbox hier oben. Es ist standardmäßig aktiviert. Und lassen Sie mich Ihnen hier nur zeigen, wie dies die Ergebnisse ändern kann. Ich habe also diesen Spawn-Schauspieler von Class Blueprint und ich habe hier bereits einen BP-Beispiel-Pickup in der Klasse platziert . Wenn ich das herausziehen sollte, schauen Sie sich jetzt an, dass mein kontextsensitives Kontrollkästchen aktiviert ist und ganz oben ist Schauspieler meine oberste Kategorie. Das ist mit kontextsensitiver Option. Ein Schauspieler ist die oberste Kategorie. Lassen Sie mich nun gleich hier zu dieser Funktion Widget erstellen kommen . Lass mich hier raus ziehen. Hinweis: Kontextabhängig ist aktiviert. Allerdings sehe ich diese Schauspielerkategorie hier nicht einmal ganz oben, da diese zwei verschiedene Arten von Dingen zurückgeben werden . Dieser gibt ein Widget-Objekt zurück. Dieser wird meinen BP-Beispiel-Tonabnehmer zurückgeben meinen BP-Beispiel-Tonabnehmer , weil das die Klasse ist , die ich hier aufgenommen habe. Wenn Sie nun in diesem Rechtsklickmenü den Mauszeiger über dieses kontextsensitive Kontrollkästchen bewegen. Und du klickst auf dieses kleine Fly-Out-Menü. Sie können entscheiden , in welchen Kontexten bestimmte verfügbare Funktionen gefunden werden sollen. Dieser Blueprint als Tooltip besagt, dass er Funktionen und Variablen enthalten wird Funktionen und Variablen enthalten , die zu diesem Blueprint gehören. Wenn Komponenten aktiviert sind, werden sie Funktionen enthalten, die zu Komponenten dieses Blueprints und/oder anderer Zielklassen gehören Komponenten dieses Blueprints und/oder . Und dann Bibliotheken , die alle anderen Funktionen enthalten sollen , auf die global zugegriffen werden kann. Und wieder einmal haben wir in kurzer Zeit ein ganzes Video, das den Funktionsbibliotheken gewidmet ist. Wenn Sie nun über bestimmte Funktionen verfügen , die Sie erstellen möchten, können Sie im Bedienfeld Mein Blueprint unter der Kategorie Funktionen Ihre eigenen Funktionen Sie können Ihre eigenen Funktionen erstellen genau hier. Du kannst sie nennen, wie du willst. Sie können die Funktionalität erstellen, die sich innerhalb dieses Funktionsknotens befindet. Und dann ist es so einfach wie das Ziehen und Ablegen dieses Funktionsknotens von Ihrem Tab Meine Blaupausen hier in Ihr Diagramm. Aber wir werden später auch mehr darüber sprechen. Okay Leute, es gibt einen Überblick über Funktionen in Unreal Engine-Blueprints. Wir sehen uns im nächsten Video. 56. Actor: Willkommen! In diesem Video ist es unser Ziel, zu lernen, was Schauspielerfunktionen sind, herauszufinden, wie man sie findet, und einige zu demonstrieren. Jetzt haben wir im letzten Video aufgehört, nur einen allgemeinen Überblick über die Funktionen in unserem Level Blueprint zu werfen einen allgemeinen Überblick über die . Und ich sprach darüber, wie einige Funktionen diese Unterüberschrift unter sich hatten, einschließlich dieser für Standort des festgelegten Schauspielers, die besagt, dass Ziel Schauspieler ist. Das ist es, worüber wir in diesem Video sprechen. Wir sprechen über Schauspielerfunktion. Was ist eine Schauspielerfunktion? Nun, es ist einfach eine Funktion, die darauf abzielt, einen bestimmten Akteur zu beeinflussen, den Sie ihm bereitstellen. Jetzt könnte das Ziel sie selbst sein, aber im Fall eines Level-Blueprints ist self nicht sehr hilfreich. Wir müssen wirklich sagen: Hey, was ist die Sache, die wir bewirken wollen? Und in diesem Fall, welchen neuen Standort werden wir versuchen, ihm zu geben? Jetzt kehre ich hier zu meinem Level zurück und habe meinem Level ein statisches Mesh hinzugefügt. Wenn du zu Hause mitspielen willst. Dies ist in meinem Ordner mit Inhaltsaufforderungen gestartet. Ich setze einen dieser Typen in mein Level ein. Und damit habe ich auch die Mobilität hier geändert, um beweglich zu sein. Und das wird wichtig für die Funktion sein, die wir versuchen werden, darauf zu setzen. also sicher, dass Sie diese Static Mesh-Schauspieler in Ihrem Level ausgewählt haben . Und ich werde in meinen Level Blueprint springen und ihn schon hier offen haben. Aber wieder einmal, so können Sie auf Ihren Level-Blueprint zugreifen. Jetzt spielt es keine Rolle, in welcher Grafik Sie sich befinden. Ich habe hier zwei Graphen, meine Knotentypen graph und mein Event Graph. Mein Event Graph ist etwas sauberer, also gehe ich da rein. Ich habe bereits einen Hinweis darauf in meiner Grafik. Jetzt können Sie einen Verweis darauf erhalten, indem Sie einfach die R-Taste gedrückt halten und mit der linken Maustaste oder in Ihr Rechtsklickmenü klicken. Wenn Sie es ausgewählt haben, sollten Sie in der Lage sein, einen Verweis darauf zu finden und zu erstellen , indem Sie mit der rechten Maustaste klicken und direkt dort auswählen. Beide Optionen reichen für Sie aus. Das ist also der Schauspieler , den wir ins Visier nehmen wollen. Wenn wir also hier rausziehen und veröffentlichen, haben wir hier kontextsensitiv überprüft, was bedeutet, dass wir, wenn wir einen Drilldown in dieser Kategorien durchführen, Funktionen finden können, die spezifisch sind wird für diesen bestimmten Schauspieler arbeiten, einschließlich etwas wie Destroy Actor. Beachten Sie, dass das Ziel der Schauspieler ist. Ich könnte ein Eingabeereignis einleiten und wenn wir dieses Eingabeereignis drücken, könnten wir den Akteur zerstören, der unser Ziel ist. Wir sprechen über Schauspielerfunktionen. Also lasst uns hier ein paar ausprobieren. Wir haben den Destroy Actor schon oft gesehen. Lassen Sie uns noch ein paar mehr einbringen. Also ziehe ich mich hier raus. Und ich gebe den festgelegten Schauspielerstandort ein. Und ich kann sehen, dass dies in der Kategorie Transformation ist . So können Sie sehen, wo es ist. Nun, das ist der Grund, warum wir unser Netz hier so einstellen mussten, dass es beweglich ist. Denn wenn wir das nicht wirklich beweglich machen, werden wir uns beschweren. Wenn wir kompilieren. Ich werde meinen neuen Standort festlegen. Anstatt eine Variable einzustecken, setze ich sie hier einfach auf, sagen wir 1.000. Und es wird es einfach irgendwo in die Luft bringen. Ziehen wir uns noch einmal hier hin, wir können mehrere Dinge tun. Ich werde eine Set-Darsteller-Rotation machen, das ist auch in der Kategorie Transformation. Okay? Also gehen wir so vor und stellen fest, dass wir dieselbe Referenz wie das Ziel für mehrere Akteurfunktionen verwenden das Ziel für mehrere Akteurfunktionen , was völlig akzeptabel ist. Ich werde das herausziehen und lass uns einen Satz Schauspieler im Maßstab 3D machen . Dies ist auch in der Kategorie Transformation. Und zum Schluss werde ich mich noch einmal zurückziehen und wir werden die Lebensdauer festlegen. Dies ist in der Kategorie Schauspieler, sodass verschiedene Funktionen in verschiedenen Kategorien leben können Wenn Sie jedoch den Namen kennen, können Sie ihn einfach oben eingeben. Jetzt habe ich hier draußen keine Eingabe, also lasst uns mit der rechten Maustaste klicken, zoomen, leeren Platz hinein. Lass uns machen, welchen Schlüssel habe ich noch nicht benutzt, die Sieben-Taste. Lass uns den Sieben-Schlüssel machen. Klar, das wird gut funktionieren. Wenn wir also die Sieben-Taste drücken, wollen wir den Standort unseres Schauspielers so einstellen , dass er irgendwo in der Luft liegt. Der 001000-Standort auf der Welt. Dann werden wir den Hinrichtungsfluss am Laufen halten und unsere Schauspieler in Rotation versetzen. Ich habe hier keine Drehung eingestellt, also setzen wir sie auf 45,45, nur um sie ein wenig zu winkeln, damit wir etwas anderes sehen können als das, was es derzeit ist. Dann lassen wir den Hinrichtungsfluss hier rein. Wir wollen dafür einen neuen Maßstab setzen. Lass uns 44.4 machen, etwas ziemlich Großes. Und dann lassen Sie uns hier auf die Lebensdauer zurückgreifen. So lange wird dies also leben, bis es weniger zerstört wird als unsere Lebensdauer. Lass uns gehen 5 s. In Ordnung, also beachte, dass all diese Funktionen in einem Schauspielerziel übernommen werden. Wir können dieselbe Referenz verwenden und sie in die Zieleingangsnote aller dieser Elemente einstecken . Also kompiliere ich hier verschiebe das nach links. Wir spielen, lass mich mein Debug-Objekt als meine Test-Map festlegen . Und da ist mein Schauspieler. Sobald ich die Sieben-Taste drücke, siehst du Bang, Bang, Bang, Bang. Los geht's. Sieben. Irgendwo in der Luft. Es ist rotiert, es ist groß. Und nach 5 s Boom geht es auf Wiedersehen. Sie können also sehen, dass es diese Funktion für diesen bestimmten Schauspieler aufgerufen hat . Und all diese Dinge haben den Standort verändert, die Rotation geändert, die Skala eingestellt und die Lebensdauer festgelegt. Da hast du es also. Funktionen des Schauspielers. Sie können sie finden, indem Sie sie aus einem bestimmten Schauspieler ziehen , danach suchen oder einfach hier suchen, oder einfach hier suchen um zu sehen, welche Funktionen Ihnen zur Verfügung stehen. Ordnung, das wird alles für diesen einen Typen tun, wir sehen uns im nächsten. 57. Class: Ordnung, willkommen zurück. In diesem Video ist es unser Ziel, zu lernen, was Klassenfunktionen sind, zu untersuchen, wie man sie findet, und dann einige zu demonstrieren. Also erstens, was ist eine Klassenfunktion? Nun, es ist einfach eine Funktion , die nur von einem bestimmten Typ verwendet werden kann , der eine bestimmte Klasse ist. Also, worüber reden wir hier? Nun, wenn wir zu unserem Inhaltsbrowser zurückkehren und er gesehen hat, dass ich früher im Kurs mit der rechten Maustaste auf eine leere Stelle in meinem Inhaltsbrowser geklickt habe, wenn ich unter die Blueprint-Klasse komme, sind dies die verschiedenen Klassen über die wir sprechen, die verschiedenen Blueprint-Klassen. Jetzt haben wir Funktionen, die für jede Klasse spezifisch sind. Und das wird am offensichtlichsten sein , wenn man über unsere Charakterklasse spricht, denn so ziemlich jedes Spiel, das du erschaffen wirst , wird einen Charakter haben oder vielleicht sogar Klasse, aber lasst uns einen Charakter demonstrieren. Also mach weiter und öffne deinen BP ThirdPersonCharacter. Dort habe ich dieses Video mit ihm angefangen. Und beachten Sie, dass ich in meinem Graphen hier mehrere Funktionsknoten habe. Und beachten Sie, dass direkt unter der Kopfzeile hier der Unterüberschrift steht, dass Ziel Charakter ist, die Sprungfunktion Ziel ist Charakter, die Startcharakterfunktion, Ziel ist Charakter, das Hocken in und Hocker-Funktionen. Ziel ist Charakter. Diese Funktionen sind spezifisch für diese Klasse, diese Zeichenklasse. Und ich kann diese finden, indem rechten Maustaste in einen leeren Bereich klicke. Und wenn ich dann nach dem Namen der übergeordneten Klasse suche, suchen wir genau hier oben nach dem Charakter. Scrollen wir weiter nach unten. Und wenn wir dort den C H-Charakter finden , ist er genau hier unten. Sie können diese Ereignisse finden. Wir haben die Hocke, wir haben den Launch-Charakter auf die Hocke gesprungen und so weiter. Diese sind also sehr spezifisch für diese gegebene Klasse von Blueprint. Lassen Sie uns diese nun demonstrieren. Und ich möchte hier darauf hinweisen bevor wir das tun, wenn Sie diese Funktionen zum Hocken und Ducken finden und nutzen möchten , müssen Sie Ihre Charakterbewegungskomponente und darüber in der Detailfenster unter der Kategorie Nav-Bewegung, stellt sicher, dass Sie überprüfen können, ob Sie sich ducken können. Es ist standardmäßig nicht aktiviert. Ordnung, also lasst uns weitermachen und diese ausprobieren. Ich klicke hier auf Spielen und setze mein Debug-Objekt so, dass von einem Third-Person-Charakter stammt. Und ich werde diese ein bisschen so minimieren. Du kannst natürlich sehen, wenn ich meine Leertaste drücke, das meinen Charakter dazu bringt, loszulassen, er aufhört zu springen. Wenn ich die L-Taste drücke, habe ich diese Startcharakterfunktion, bei der die Startgeschwindigkeit auf 2000er und z festgelegt wurde, was ein bisschen wie ein Supersprung ist, wenn man so will. Sie können dies jedoch immer noch tun, während Sie in der Luft sind. Das macht also irgendwie Spaß. Und dann habe ich den C-Eingang zum Hocken und Hocken eingestellt , als ich den CQI losließ. Wenn ich das mache, wirst du etwas bemerken. Ich drücke die C-Taste und hoops, lass mich das machen. Noch einmal. Ich drücke die C-Taste und die Kamera geht runter und sie steigt wieder hoch. Wenn ich mich ducke, geht mein Charakter nicht in eine hockende Animation. Ich müsste noch etwas arbeiten, um das in Ordnung zu bringen. Aber wir werden nicht auf Statements eingehen, Käse machen und unsere Animationen ändern, all diese Dinge. Aber du wirst feststellen, dass dies tatsächlich unter der Haube ist meinen Charakter hockt, was bedeutet, dass es meine Kamera senkt Bewegungsgeschwindigkeit meiner Spieler verlangsamt. Und als ich mich duckte, kehrte ich zur normalen Kamerahöhe zurück , zu normaler Bewegungsgeschwindigkeit. Nun, ein paar Dinge, auf die man hier für all diese Funktionen hinweisen sollte hier für all diese Funktionen hinweisen Das Ziel ist Charakter, und wir haben nichts an dieses Ziel angeschlossen. Das Ziel ist einfach auf self gesetzt, was in dieser Situation gültig ist, weil das heißt, unser Selbst ist eine Charakterklasse sodass wir nichts daran anschließen müssen. Selbst ist eine absolut gültige Sache, die man hier gesagt haben muss. Das Ziel sind wir selbst, was ein ThirdPerson-Charakter ist. Nun ist es auch erwähnenswert, dass Sie Zugriff finden und diese Funktionen in einem anderen Blueprint nutzen können. Lassen Sie mich das schnell demonstrieren, indem in meinen Level-Blueprint einsteige. Sie werden feststellen, dass hier etwas leerer Raum ist. Wenn ich einfach mit der rechten Maustaste klicke und nach dem Start suche, hatten wir diese Startfunktion in unserem ThirdPersonCharacter. Ich kann es nicht finden. Ich kann einige andere Funktionen mit dem Wort launch it finden, aber nicht meinen Startcharakter. Kontextabhängig wird hier geprüft. Dies ist kein Charakterklassen-Blueprint. Du wirst es nicht finden. Wenn ich das Häkchen deaktiviere, kann ich jetzt sehen, dass wir nicht über Kontextempfindlichkeit suchen. Und jetzt finden wir unter unserem Charakter unsere Launch-Charakter-Funktion. Dies gehört unter die Charakterklasse der Funktionen. Lass uns weitermachen und das zu unserer Grafik hinzufügen. Und es heißt, okay, du willst diese Funktion als großartig bezeichnen. Das Ziel ist Zelle, also gib mir ein Ziel. Nun, wenn ich einfach einen Würfel in meinem Level haben einen Würfel in sollte, wie ich ihn hier im Voraus platziert habe. Beachten Sie, dass diese Option ausgewählt ist. Lassen Sie mich einen Hinweis darauf einbringen, indem die archäische Linksklicke gedrückt halte. Wenn ich versuche, das als Ziel anzuschließen, heißt es: Nein, das ist kein gültiges Ziel. Du kannst es nicht tun. Das Ziel, nach dem wir suchen, ist ein Charakter. Wir könnten also einen Verweis auf unseren ThirdPersonCharacter bekommen einen Verweis auf unseren ThirdPersonCharacter und ihn einbinden. Und dann würde das funktionieren. Um dies zu tun, müssen wir einen Hinweis auf unseren Charakter erhalten. Ich habe diese Zeichenreferenzvariable , die ich früher im Kurs erstellt habe. Aber wenn ich mit der rechten Maustaste darauf klicke und Referenzen finde, muss ich den Inhalt dieser Variablen zerstört haben, also ist dies derzeit auf nichts gesetzt. Okay? Wir können immer noch auf andere Weise einen Verweis auf unseren Third-Person-Charakter erhalten. Und du hast mich das schon mal machen sehen. Rechtsklick Debt Player-Charakter. Wir haben diese reine Funktion, die einen Spielercharakter zurückgibt. Aber es weiß nicht, nach welchem Charakter wir hier suchen wollen. Lassen Sie uns also eine ThirdPersonCharacter Cast to ThirdPersonCharacter durchführen. Ich werde sagen, okay, dein Spielercharakter, ist das ein Third-Person-Charakter? Und wenn ja, können wir einige Funktionen aufrufen, die sich auf diesen Charakter beziehen. Und der ThirdPersonCharacter kann diese Start-Charakterfunktion nutzen diese Start-Charakterfunktion nutzen da der Third-Person-Charakter eine Charakterklasse ist, die ein gültiges Ziel ist. Ich muss hier nur die Eingabe eingeben. Klicken wir mit der rechten Maustaste, um nach dem Achterschlüssel zu suchen. Ich glaube nicht, dass wir den Achterschlüssel und unser Gras hier nur in unserer Eventgrafik hier verwenden den Achterschlüssel und . Okay, lass uns weitermachen und das einstecken. Kompilieren, speichern wir es. Und wenn ich jetzt spielen sollte, setzen wir unser Debug-Objekt darauf , damit wir das feurig sehen können. Und wenn ich jetzt die Taste drücke, wow, versucht es tatsächlich, es zu nennen, aber ich habe keine Startgeschwindigkeit gesetzt, also wäre das ein Problem. Das ist es oder die Startgeschwindigkeit soll 2000 sein. Ja, das ist genau dort ein wichtiges Detail. Und wenn wir die Alt-Taste drücken, können wir diese Startfunktion jetzt aufrufen. Also noch einmal, solange Sie einen Verweis auf diese gegebene Klasse haben , können Sie Funktionen aufrufen, die für diese Klasse spezifisch sind. Okay Leute, das wird alles für dieses Video machen, wir sehen uns im nächsten. 58. Komponentenfunktionen: Ordnung, also haben wir in den letzten Videos den Schauspieler von Funktionen und Klassenfunktionen untersucht. In diesem Video werden wir die Funktionen von Komponenten untersuchen. Wir werden untersuchen, wie man sie findet und einige davon demonstrieren. Nun, das wirft die Frage auf, nun, was zum Teufel ist eine Komponentenfunktion? Nun, es ist einfach eine Funktion , die darauf abzielt, eine bestimmte Komponente innerhalb eines Blueprints zu beeinflussen. Um das zu zeigen, werden wir unseren bp ThirdPersonCharacter Blueprint verwenden . Dort kannst du es finden. Doppelklicken Sie also darauf, um es zu öffnen. Bevor ich dieses Video gedreht habe, habe ich einige Drehbücher erstellt , um es zeitlich etwas kürzer zu machen. Und über dem Ereignisdiagramm habe ich die drei verschiedenen Komponenten in meinem Diagramm platziert . Nun, dies sind jeweils meine Zitat-Unquote-Schwert-Komponente, das ist eine statische Mesh-Komponente. Die nächste Komponente, mit der wir hier arbeiten werden , ist unsere Mesh-Komponente. Und das ist ein Sprung zurück zum Viewport hier. Dieses Skelettnetz, das unseren Charakter repräsentiert, diese Mannequin-Frau, wenn man so will. Und dann ist die letzte Komponente, die wir haben, unsere Follow-Kamera. Und einfach zurück zum Ansichtsfenster zu springen oder der Kamera zu folgen ist diese Komponente genau da, diese Kamera. Wie fügen wir diese also zu unserem Diagramm hinzu? Nun, wie Sie aus Variablen wissen, können Sie diese einfach per Drag & Drop in Ihr Diagramm einfügen. Dann erhalten Sie einen Verweis auf die angegebene Komponente. Und wenn Sie diese herausziehen, können Sie Funktionen finden, die für diese Komponente spezifisch sind und kontextsensitiv sind und mit dieser Komponente funktionieren. Was ich hier habe, ist aus meinem Schwert, ich habe einfach Drogen genommen und ich habe nach festgelegtem statischem Netz gesucht. Wenn Sie sich jedoch fragen, wo das existiert, wenn Sie ein statisches Netz festlegen, können Sie sehen, dass es sich in der Kategorie statisches Bild der Komponenten befindet . Und ich liste das direkt über dem statischen Netz Ihrer Komponenten auf. Wenn wir das also einfach verlassen und unter Komponenten geraten und unter ein statisches Netz geraten würden. Sie können sehen, dass wir diese Funktion haben, die wir hinzufügen können oder wir können die reine Funktion hinzufügen, um lokale Grenzen zu erhalten. Aber dieser ist viel visueller. Jetzt unten hier unten, für diese Netzkomponenten, habe ich einfach eine Suche unter der Kategorie Komponenten, Komponenten, Skinned Mesh durchgeführt . Sie können sehen, dass wir dafür viele verschiedene Funktionen haben. Aber für diesen wollte ich einfach das damit verbundene Skelettnetz austauschen. Und damit, worüber ich hier spreche ist, dass wir mit unseren ausgewählten Netzkomponenten das damit verbundene Skelettnetz austauschen werden . Es ist sehr visuell. Sie können also sehen, eine Skinned Mesh-Komponente dass das Ziel hier eine Skinned Mesh-Komponente ist, die hier darüber spricht. Zu guter Letzt haben wir die Follow-Kamera. Wir haben also einige Funktionen, die für eine Kamerakomponente spezifisch sind . Und diese finden Sie im Rechtsklick-Menü unter der Kategorie Kamera. also auch viele Funktionen Hier gibt es also auch viele Funktionen, mit denen man herumspielen kann. Dieser ist sehr visuell, die Umgebung, das Sichtfeld. Die Unterüberschrift darunter zeigt also noch einmal , auf welche spezifische Komponente abzielen kann. Ordnung, also wenn Sie dieses Supervisual hier spielen, stellen wir unsere Debug-Option so ein, dass Sie sehen können, wie es losgeht. Wenn ich also die F-Taste drücke, tauschen wir unser Schwert dort gegen diesen Ball aus . Das ist das neue Netz , das ich da reingesteckt habe, als ich die G-Taste drücke, unser Netz hier, diese Mannequin-Frau und nicht Aaron wird auch getauscht. Das stimmt, nur ein Würfel. Und dieser Skelettwürfel hier ist im Motorinhalt , der Skelettwürfel ist. Beachten Sie abschließend, dass das Sichtfeld hier, wenn ich auf das Alter drücke , ein wenig verschieben wird. Ordnung, also los geht's, Drücken Sie und die H-Taste zoomt es ein bisschen so heraus. Und da hast du es. Sie können alle Arten von Komponenten hier oben im Bedienfeld „Komponenten“ hinzufügen . Es gibt Unmengen von ihnen. Beachten Sie also, dass für jede Komponente, die Sie hinzufügen können, Funktionen vorhanden sein können, die mit dieser bestimmten Komponente verknüpft sind , diese Komponente spezifisch sind. Erkunden Sie sie, spielen Sie damit herum, lernen Sie, indem Sie es tun, in Ordnung, das wird alles für dieses Video tun, wir sehen uns im nächsten. 59. Funktionen erstellen: Ordnung, willkommen zurück alle. In den letzten Videos haben wir gezeigt, wie man verschiedene Funktionen findet, die es in Unreal bereits gibt. In diesem Video wollen wir zeigen, wie wir unsere eigenen Funktionen erstellen können . Dies ist ein äußerst mächtiges Konzept innerhalb des Blueprint-Scripting. Darin können Sie im Wesentlichen jede Funktionalität erstellen , die Sie möchten. Für den Großteil dieses Videos werden wir etwas in unserem BP-Third-Person-Charakter arbeiten . Also schlage ich vor, dass du den Kerl aufmachst. Ich habe auch meinen Level Blueprint oben geöffnet. Zunächst ist es wichtig zu beachten, dass Funktionen innerhalb eines Klassen-Blueprints oder eines Level-Blueprints erstellt werden können . Also nur um anzugeben, beginnend mit meinem Level-Blueprint oder im My Blueprint-Panel. Du hast einen Bereich für Funktionen. So können hier Funktionen innerhalb eines Level-Blueprints erstellt werden. Zusätzlich finden Sie in einem Klassen-Blueprint wie unserem ThirdPersonCharacter einem Klassen-Blueprint wie unserem ThirdPersonCharacter denselben Funktionsbereich , sodass Sie auch hier einen erstellen können. Ordnung, jetzt sprechen wir über verschiedene Möglichkeiten , Funktionen zu erstellen. Nun, wir haben diesen Hinzufügen-Button genau hier oben. Sie können darauf klicken und auf diese Weise eine Funktion erstellen. Eine andere Möglichkeit ist mit dem Funktions-Header hier, Sie können auf diese Schaltfläche klicken , um eine Funktion zu erstellen. Und der dritte und weniger offensichtliche Weg ist eine dieser Überschriften, Grafiken, Funktionen, Makros, Variablen usw. Sie können einfach mit der rechten Maustaste klicken und mich hier mit der rechten Maustaste auf diesen Diagrammkopf klicken. Und es wird dasselbe Menü angezeigt , das Sie erhalten, wenn Sie hier klicken. Sie können hier also eine Funktion hinzufügen. Und wenn ich wann auf diese Weise erstelle, wird es zu meiner Funktionskategorie hinzugefügt. Ich gebe dem sofort einen Namen und nenne das modifizieren Health, weil ich eine Funktion erstellen werde, die die Gesundheit unserer Spieler verändert. Und beachten Sie, dass wir, wenn wir geklickt haben, um eine Funktion hinzuzufügen, sei es hier, hier oder hier , auch einen neuen Tab ganz oben geöffnet haben . Was Sie also vor sich haben, ist einfach ein Einstiegsknoten, im Einstiegsknoten zu Ihrer Funktion. Und hier im Rest des Diagramms können Sie erstellen, welche Funktionalität diese Funktion haben soll , ganz am Ende müssen Sie eine Rückgabenotiz hinzufügen, müssen Sie eine Rückgabenotiz hinzufügen ich werde mit der rechten Maustaste klicken und einige leeren Speicherplatz und fügen Sie sofort einen Rückgabeknoten hinzu. einfach mit der rechten Maustaste und geben ganz unten die Rückgabe Sie können einen Rückgabeknoten hinzufügen. Nun, wieder, hier werden wir herausfinden, was dieser Funktionsknoten tatsächlich tut. Aber während ich das ausbaue, denke ich, dass es hilfreich wäre, wenn ich im Event-Graphen diesen Funktionsknoten einfach in meinen Graphen gezogen und dort abgelegt habe. Also los geht's, ziehen und lassen es fallen. Jetzt ist es blau. Das Ziel zu sehen ist ein Third-Person-Charakter, weil wir es hier in unserem ThirdPersonCharacter aufbauen . Das wird also das Standardziel sein. Und beachten Sie, dass alles, was wir hier haben, eine Ausführung in Stift und eine Ausführung aus Pin und ein Ziel ist . Wir können jedoch mehr Pins hinzufügen, mehr Datenpins auf der Eingangs - oder Ausgangsseite. Und das werden wir hier in diesem Video ein bisschen zeigen . So sieht der Funktionsknoten derzeit aus. Und in diesem Video werden wir es ein wenig modifizieren. Kehren wir zu unserer Funktion „Gesundheit modifizieren“ zurück unserer Funktion „Gesundheit modifizieren und bauen einige Funktionen aus. Das erste , was ich dieser Funktion hinzufügen möchte , ist eine Eingabe. Ich möchte in der Lage sein, einzugeben wie viel Gesundheit oder Schaden , wie viel Gesundheit oder Schaden unser Charakter erleiden wird. Um dies zu tun, muss ich hier meinen Eintragsknoten auswählen, meinen Status ändern, und drüben im Detailbereich, wo Eingaben stehen. Klicken wir auf diese Plus-Schaltfläche, um eine Eingabe hinzuzufügen. Jetzt können wir es sofort benennen. Standardmäßig sollte es als boolescher Wert angezeigt werden. Sie können den Typ jedoch ändern. Es wird für mich als Float gezeigt, weil ich vor diesem Video einige Vorbereitungsarbeiten gemacht habe. Also ändere es in einen Float. Und wieder können Sie das tun, indem Sie hier klicken. Und lasst uns den Namen dieser Eingabe in Heil- oder Schadensbetrag ändern . Beachten Sie nun, dass, wenn ich hier zu meinem Ereignisdiagramm zurückkehre, wo wir unsere Funktion zum Ändern der Gesundheit platzieren, ich jetzt auf der Eingabeseite unserer Funktion die Möglichkeit sehe , eine Float-Variable, eine Gesundheitsheilung oder Höhe des Schadens. Es ist also ein wenig irreführend, wenn Sie hier Ihre Funktionen ausbauen. Sie wählen diesen Eintragsknoten hier und fügen dann eine Eingabe hinzu. Und der Grund, warum es ein wenig irreführend ist, ist, dass sich Eingaben auf der linken Seite eines Nein-Nein befinden. Aber hier in diesem Eintrag wird es auf der rechten Seite des Knotens angezeigt. Als ich das alles zum ersten Mal gelernt habe, fühlte ich mich ziemlich verwirrend. In der endgültigen resultierenden Funktion, die wir in unserem Ereignisdiagramm sehen können, wird diese Funktion jedoch die wir in unserem Ereignisdiagramm sehen können, als Eingabe auf der linken Seite eines Knotens angezeigt, wenn Sie diese Funktion per Drag & Drop als Eingabe auf der linken Seite eines Knotens angezeigt, wenn Sie diese Funktion per Drag & Drop in den Graphen selbst ziehen. Sie können also einen Float-Wert für Gesundheit oder Schaden eingeben , der erlitten werden soll. Ordnung, lass uns weitermachen. Was ich tun möchte, ist , dass ich unsere Gesundheit oder unseren beschädigten Betrag, den wir erleiden werden, in die Länge ziehen möchte. Ich bringe ein Größer-als-Zeichen ein. Wir wollen etwas tun, wenn unsere Lebenspunkte oder unser Schaden größer als Null ist, oder wir ziehen uns von hier ab bringen einen Verzweigungsknoten ein. Wir müssen diesen Hinrichtungsfluss hier am Laufen halten. Also werden wir bewerten, ob der heilende oder beschädigte Berg größer als Null ist. Und wenn ja, ziehen wir uns hier raus und spielen Sound auf D ab. Tatsächlich drücke ich Control C und Control V, um das zu kopieren, weil wir einen Sound abspielen wollen, ob das wahr oder falsch. Wenn es stimmt, wird der Sound, den ich spielen möchte , Laser-Push genannt . Wenn es falsch ist, heißt der Sound, den ich spielen möchte , Laser Poll. jetzt einfach mit der Maus über diesen Laserstab fahren, können Sie sehen, dass sich der Pfad dafür in den Inhaltsordnern der Engine befindet . Wenn Sie also zu Hause mitspielen, sehen Sie keinen Laser-Pushing-Laserpool. Genau hier. Du hast dieses Zahnradsymbol. Stellen Sie sicher, dass der Inhalt der Show Engine deaktiviert ist, dann haben Sie Zugriff auf diese beiden. Ordnung, also Laser-Umfrage dafür. Je nachdem, ob der eingehende Betrag größer als Null ist, spielen wir einen Sound ab. Wenn es nicht größer als Null ist, spielen wir einen anderen Sound ab. Das sind eher positive oder negative Effekte. Okay, dann wird das, was wir hier auch tun wollen, aus diesem Betrag herausgezogen , den wir eingeben werden. Und ich drücke das Plus-Symbol. Wir werden etwas hinzufügen. Wir möchten hinzufügen, dass dies unsere Gesundheit genau hier sein wird. Also werden wir unsere Gesundheit mit der Drag & Drop ganz oben drauf ziehen. Das wird uns sofort einen Getter geben. Also werden wir das hinzufügen, den Betrag der unserer Gesundheit zugute kommt. Und dann werden wir das so einstellen, dass wir unsere Gesundheit einfach per Drag & Drop auf den Output ziehen können , um ein Zentrum zu schaffen. Was ich jetzt tun will ist, dass ich das hier her bringen will, damit ich es so tragen kann. Und so, wenn ich hier im Wesentlichen sage, ist, dass ich, egal was passiert, ob der eingehende Betrag größer als Null ist oder nicht, ob der eingehende Betrag größer als Null ist oder nicht, das zu meinem aktuellen Gesundheitszustand hinzufügen möchte. Ich werde einen Sound spielen, egal ob er größer als Null ist oder nicht, ein positives oder ein negatives Geräusch, dann legen wir das als unseren neuen Gesundheitswert fest. Dann stecke ich das in unsere Rücksendung ein. Aber zu guter Letzt kann ich dies per Drag & Drop auf den zurückgegebenen Knoten ziehen, um unserer Rückkehr einen Pin hinzuzufügen. Um zu beachten, dass ich das gemacht habe, es einfach per Drag & Drop dort ab. Es wird gleich hier oben eine Ausgabe hinzufügen. Aber wir wollen uns wahrscheinlich einen besseren Namen geben , als nur Output bekommt. Also nenne ich diese aktuelle Gesundheit. So. Etwas anderes, was ich hier tun möchte ist, dass ich in der Lage sein möchte, diese Gesundheit einzudämmen denn sagen wir einfach, wir sind bereits bei voller Gesundheit und der eingehende Betrag wird zu unserer Gesundheit beitragen als wir könnte technisch gesehen mehr als 1,0 Gesundheit haben. Wir können mehr als 100% Gesundheit haben. Also die Art und Weise, wie Sie sicherstellen können , dass dies an einen bestimmten Wert geklemmt wird , um einen Klammerknoten einzubringen. Also könnte ich mich hier rausziehen. Klemme eintippen. Wir wollen unseren Schwimmer klemmen und wir wollen sicherstellen, dass er 0-1 ist. Das ist irgendwie nett. Also werde ich das einfach so überweisen, um sicherzustellen, dass selbst wenn wir eine gesunde Menge erhalten, dies zu unserer Gesundheit beiträgt und sie über 1,0 bringt. Egal, was es bei 1,0 bleiben wird, kann das nicht überschreiten, also stellen Sie sicher, dass Sie das auch tun. Jetzt wirf einen Blick darauf. Das ist unsere, das ist unsere Funktion genau hier. Dies ist eine Funktionalität , die wir in unserem Entlüftungsdiagramm hinzufügen , wobei seine Funktion zum Ändern der Gesundheit zu unserem Diagramm hinzugefügt Wir haben diesen Eingabe-Heilerschadensbetrag und auf der Ausgangsseite wurde. Wir haben diesen Eingabe-Heilerschadensbetrag und auf der Ausgangsseite kann unsere aktuelle Gesundheit ausgeben. Nun einige wichtige Details, bevor wir dieses Video im Bereich Details mit Ihren ausgewählten Funktionen abschließen , werfen Sie einen Blick auf unsere Eingaben hier. Wir haben diese Ferse oder beschädigen sie. Und wir haben diesen kleinen Dropdown-Pfeil. Wenn Sie darauf klicken, können Sie dafür einen Standardwert festlegen. Derzeit ist es 0,0, was Sie im Funktionsknoten selbst sehen können. Wenn ich das auf 0.5 ändern würde, kannst du sehen, dass es schwierig wird, wenn ich die Eingabetaste drücke. Stell das da rein. Okay. Ich will das vorerst nicht, aber ich dachte nur, ich weise darauf hin, dass man dort einen Standardwert setzen kann. Lass mich das wieder auf Null setzen. Und Sie haben auch diese Option „ Pass-by-Referenz“. Was heißt das überhaupt? Nun, es wird von einer Ref übergeben oder als Referenz übergeben, ermöglicht es Ihnen, der Funktion mitzuteilen, dass die Variable, die Sie in diese Variable einfügen, die Variable ist, die Sie ändern möchten. Es ermöglicht Ihnen im Wesentlichen, eine Variable gleichzeitig abzurufen und zu setzen. Jetzt werden wir im nächsten Video etwas näher darauf eingehen . Aber ich möchte hier nur darauf hinweisen , dass, wenn ich dieses Kästchen ankreuzen würde, beachten Sie, dass sich dieser Pin auch von dieser Art von Kreisform ändern wird. Ein bisschen mehr von dieser Diamantform. Ordnung, ich werde es vorerst deaktivieren. Und das werden wir im nächsten Video noch einmal ein bisschen genauer zeigen . Ein paar weitere Dinge, die Sie hier wissen müssen, sind, dass ich mich in meinem Event Graph befinde, wenn ich auf diese Funktionsnotiz doppelklicken würde. Schau, was passiert. Doppelklicken. Ich bin von meinem Event-Graphen in meinen Funktionsgraphen gesprungen. Also hier, das ist eine schnelle und einfache Möglichkeit zu sehen, was diese Funktion tut. Und das bringt Sie direkt zu Ihrem Funktionsdiagramm. Wirklich praktischer Tipp. Ein paar weitere Hinweise zu Funktionen, die Sie erstellen. Sie können keine latenten Knoten wie einen Delay-Knoten oder eine Zeitleiste in Ihrer Funktion haben. Das ist eine Einschränkung der Funktionen. Und noch etwas zu den Funktionen zu beachten. Bei Funktionen erhalten Sie nur eine Ausführung in und einen Ausführungs-Out-Pin, das heißt eine Ausführung in, eine Ausführung raus. Wenn Sie mehr benötigen , sind Makros jetzt der richtige Weg In Zukunft werden wir einige Videos hinzufügen, in denen es um Makros geht. Aber Leute, das wird dieses eine Follow-up im nächsten Video bieten , in dem wir über Aufruffunktionen sprechen werden. Wir sehen uns dort. 60. Funktionen aufrufen: Ordnung, im letzten Video haben wir die Erstellung einer Funktion innerhalb unseres bp ThirdPersonCharacter abgeschlossen . Und so haben wir es zum Ziel gemacht, wo immer Sie Ihre Funktion erstellen , die das Ziel sein wird. In diesem Video erfahren wir , wie wir diese Funktion sowohl von einem Klassen-Blueprint hier in unserem ThirdPersonCharacter als auch aus einem Level-Blueprint aufrufen können diese Funktion sowohl von einem Klassen-Blueprint hier in unserem ThirdPersonCharacter als auch aus einem Level-Blueprint aufrufen sowohl von einem Klassen-Blueprint hier in unserem ThirdPersonCharacter . also gleich wieder in Ihren ThirdPersonCharacter Blueprint zurück. Und wenn du vergessen hast, wo das war, hast du irgendwo unter einem Felsen gelebt. Hier ist der Weg für diesen Doppelklick auf den Kerl , um ihn zu öffnen. Jetzt habe ich das zu meiner Grafik im letzten Video hinzugefügt. Lassen Sie mich das einfach löschen und hier eine Aktualisierung durchführen wie wir das zu unserem Diagramm hinzufügen können Ich klicke mit der rechten Maustaste und etwas leeres Feld. Also auf der Suche nach einem Event-Knoten, weil wir mit einem Event F3 beginnen wollen. F3, ich weiß es nicht, weil ich dachte, dass es nicht benutzt wird. Nun ein paar Möglichkeiten, wie wir diese Funktion zu unserem Graphen hinzufügen können . Eine Möglichkeit ist, dass wir hier mit der rechten Maustaste auf einen leeren Bereich klicken und danach suchen können. Ändern Sie die Gesundheit, das ist eine Möglichkeit, sie hinzuzufügen. Die andere Möglichkeit, lassen Sie mich das einfach löschen, es einfach per Drag & Drop aus unserem Funktionsbereich hier drüben ziehen. Ziehen. Und wenn Sie es hier im Ausführungsfenster fallen lassen, wird es sofort angeschlossen. Dann ziehen wir es einfach heraus und bringen einen Print-String-Knoten ein. Stimmt's? Und lassen Sie uns dies in unserem aktuellen Zustand nur als Auffrischung in die Zeichenfolge einhängen , wenn Sie hier auf Ihren Funktionsknoten doppelklicken. Nun, wir nehmen eine Lebenspunkte oder einen Schadensbetrag auf. Wir werden das zu unserer aktuellen Gesundheit hinzufügen. Wir werden es zwischen diesen beiden Zahlen eingrenzen und das als unseren neuen Gesundheitswert festlegen. Und dann werden wir das auf der anderen Seite unserer Funktion hier weitergeben . In diesem Fall werden wir es aus diesem Knoten weitergeben. Beachten Sie den aktuellen Zustand, das ist der Ausgangspin unserer Funktion hier. Und das drucken wir einfach auf dem Bildschirm aus. Außerdem müssen wir Heil- oder Schadensbeträge fest codieren . Also fangen wir mit wie viel Gesundheit an? Nun, innerhalb unserer modifizierten Gesundheit, genau hier, unsere Gesundheitsvariable. Das ist es, was wir mit 1.0 Gesundheit beginnen werden. Das ist dasselbe wie das, was wir im Bedienfeld Mein Blueprint sehen , wobei die Gesundheitsvariable 1.0 ausgewählt ist. Womit wollen wir das ändern? Auch hier können wir heilen oder beschädigt werden. Also was ich tun werde, ist es auf eine schädliche Menge zu setzen . Also lass uns 0,5 gehen. Und weil wir wollen , dass das Schaden anrichtet, machen wir negative 0,5. Negative Zahlen werden also Schaden anrichten. In diesem Fall werden positive Zahlen heilen. Ordnung, kompilieren wir, stellen Sie sicher, dass unser Skript gut aussieht. abspielen. Lass mich hier mein Debug auf meinen ThirdPersonCharacter setzen. Wenn ich hier F3 drücke, können Sie sehen, dass es unsere Gesundheit halbiert. Und Sie haben hier auch 0,5 in der oberen linken Ecke gesehen. Denken Sie daran, dass unsere Gesundheitsvariable auch hier an unseren Gesundheitsmesser gebunden ist . Wenn ich also noch einmal darauf drücke, siehst du 0,0 und jetzt sind unsere Gesundheitsmesser weg. Wenn ich jetzt erneut F3 drücke, wird weiterhin 0,0 Gesundheit angezeigt. Und das liegt daran, dass wir bei oder bei der Änderung der Gesundheitsfunktion diese Veränderung unserer Gesundheit zwischen diesen Werten klemmen . Ordnung, nur um zu zeigen, dass diese Funktion sowohl heilen als auch Schaden verursachen kann, lassen Sie uns unser ursprüngliches gesünderes modifizieren. Lassen Sie uns den ursprünglichen Gesundheitswert so ändern, dass er, wir sagen, Punkte beträgt. Wir beginnen also mit nur 20% Gesundheit. Und dann werden wir in unserem Ereignisdiagramm unseren Heilungs- oder Schadens-MT ändern. Sagen wir einfach, jedes Mal, wenn wir das nennen , werden wir um 10%, 0,1 heilen. Ordnung, das kann also in beide Richtungen funktionieren. So wie wir das eingerichtet haben, klickst du auf Spielen. Wir können also sehen, dass wir mit 20% Gesundheit beginnen. Ich drücke F 3,3, 40%, 50%, 6070809100. Und wenn ich versuche, das durchzugehen, kann ich das natürlich nicht, denn wenn ich hier auf unsere Funktion „Gesundheit ändern“ doppelklicke , werde ich zu diesem Diagramm weitergeleitet. Wir halten unseren Gesundheitswert auf 0-1 fest. Ordnung, wir haben also bewiesen , dass Sie diese Funktion aus dem Blueprint heraus aufrufen können diese Funktion aus dem Blueprint heraus , in dem sie erstellt wurde. Aber können Sie es aus einem anderen Entwurf heraus nennen? Und die Antwort darauf lautet natürlich: Ja, das können Sie. Solange Sie in einem anderen Blueprint einen Verweis auf Ihren ThirdPersonCharacter haben , können Sie diese Funktion aufrufen. Und um das zu beweisen, werden wir unseren Level-Blueprint verwenden. hier wieder auf dein Level gesprungen. Und ich habe ein kleines Setup, das du replizieren kannst. Wieder einmal habe ich eine Triggerbox in meinem Level platziert. Und wie Sie in anderen Videos gesehen haben, habe ich die Kastenausdehnung auf 200, 200, 200 und die Linienstärke auf zehn festgelegt . Und ich habe den Schauspieler einfach versteckt und das Spiel ausgeschaltet. Innerhalb des Rendering-Bereichs, damit ich diese Triggerlautstärke sehen kann. Und dann platziere ich einfach ein Feuerpartikel. Dies befindet sich in meinem gestarteten Inhalt, im gestarteten Kontext. Wo ist der Partikelordner, genau dort. Ein Ort in der Mitte, nur um die ganze Zone gefährlich aussehen zu lassen? Und dann habe ich es einfach zehnmal vergrößert. Das wird also meine Gefahrenzone sein. Und die Idee hier ist , dass mein Charakter beschädigt wird, wenn er das überlappt. Wählen wir also Ihre Triggerbox aus und springen Sie in Ihren Level-Blueprint. Das erste, was wir tun wollen, ist, dass etwas passiert ist, als wir das überschnitten haben . wir also mit der rechten Maustaste auf Event hinzufügen, wenn wir das überschneiden Und natürlich brauchen wir einen Hinweis auf unseren Third-Person-Charakter. Wenn Sie mit der rechten Maustaste klicken und einen Spieler-Charakter erstellen, versuchen Sie, ihn hier rauszuziehen und versuchen zu finden, ändern Sie die Gesundheitsfunktion. Du wirst sagen, warum kann ich es nicht finden? Wenn du kontextsensitiv abwählst, wirst du sagen, oh, da ist es. Unter der Klasse BP, ThirdPersonCharacter. Oh, da ist es. Aber das Problem ist, dass Sie sich nicht einfach anschließen können, Spielercharakter hier reinbringen. Das ist also ein Problem. Die Art und Weise, wie Sie diese Funktion zum Ändern der Gesundheit erhalten können, lassen Sie mich hier löschen, ist durch Casting. Oder wenn unsere Charakterreferenzvariable genau hier ist. Wenn dies tatsächlich gefüllt wäre und wir mit unserem Third-Person-Charakter initialisiert hätten , könnten wir die Funktion Gesundheit ändern finden indem wir sie ebenfalls dort herausziehen. Wir werden hier jedoch das Konzept des Castings verwenden. Auf diese Weise kann überprüft werden , ob in diesem Fall der andere Schauspieler das Ding war , das diese Triggerbox überlappte. Ziehen wir also einen Charakter aus einer hier gewordenen Zwei-Drittel-Person heraus. Und wenn wir das tun, wenn wir überprüfen, ob der andere Akteur das Objekt war, das das Triggerfeld überlappte, dann können wir uns hier zurückziehen und die Funktion zum Ändern der Gesundheit finden . Und wenn Sie kontextsensitiv überprüfen, wie ich es dort getan habe, und plötzlich verschwindet es, löschen Sie einfach die gezogene Suche erneut, geben Sie Modify health und Sie werden sie finden. Noch einmal. Sobald Sie einen Verweis auf Ihren ThirdPersonCharacter haben, können Sie alle Funktionen aufrufen , die sich darin befinden. Sie können auf alle Variablen verweisen , die sich darin befinden, sie abrufen oder setzen. Sie können sogar jede der Komponenten in einer ihrer Eigenschaften ändern , die sich innerhalb dieses ThirdPersonCharacters befinden. ist also riesig, einen Hinweis auf etwas zu bekommen. Okay, in diesem Fall, wollen wir unseren Charakter heilen oder beschädigen? Ich würde sagen, es hat sie beschädigt. Gehen wir also negativ 0.1. Und das sollte gut genug sein , denn wir werden sehen, dass unser Gesundheitsmesser sinken wird. Lassen Sie uns das zusammenstellen. Lass mich zurück in meinen ThirdPersonCharacter gehen. Stellen Sie sicher, dass ich meine Gesundheit auf einen Wert von 11,0, 100% zurücksetze . Und lass uns spielen. Ich werde mein Debug-Objekt hier als Map festlegen. Ich rufe meinen Charakter wieder an. Also fangen wir bei 100% Gesundheit an. Ich überschneide, dass sie hier die Triggerlautstärke haben, dort auch ein bisschen Audio. Jedes Mal. Noch eine Sache, bevor wir dieses Video abschließen. Im letzten Video haben wir über eine Pass-by-Referenzoption innerhalb unserer Funktion gesprochen . Und darauf muss ich zurückkommen. Um also wieder in unsere Funktion zu springen, bin ich hier in meinem Level-Blueprint. Ich kann zurück in diese Funktion springen , indem ich darauf doppelklicke. Und beachten Sie, dass ich, sobald ich das getan habe, von unserem Level-Blueprint übergehe. Doppelklicken Sie auf unseren ThirdPersonCharacter Blueprint , in dem sich diese Funktion zum Ändern der Gesundheit befindet. Und es hat uns die Registerkarte Gesundheitsfunktion ändern geöffnet . Fahren Sie fort und wählen Sie entweder Ihre Funktion zum Ändern der Gesundheit auf der linken Seite aus, oder Sie können auch auf den Knoten Integritätseintrag ändern klicken. Und drüben im Details-Bereich können Sie sehen, dass wir einen Fersen- oder Damage-MT-Eingang hinzugefügt haben . Und das entspricht dieser Eingabe, die Sie auf dem Funktionsknoten selbst sehen, Sie sind am und mein Event Graph springen zurück zur Funktionsregisterkarte selbst. Nun, dieser Pass als Referenz, über den wir im letzten Video gesprochen haben, was zum Teufel macht das? Nun, visuell gesehen, was Sie hier sehen werden , ist , dass, sobald ich dieses Kästchen angekreuzt habe, dieser kreisförmige Stift jetzt durch rautenförmige Stifte ersetzt wird . Also los geht's. Es ist jetzt ein diamantförmiger Stift. Außerdem ging der Standardwert auf Wiedersehen. Wenn ich diesen Blueprint kompiliere, werden Sie auch feststellen, dass etwas anderes kompiliert wird, wir erhalten einen Fehler und es wird sagen, dass dies ungültig ist, dass wir einen Eingang einbinden sollten. Worüber spricht man hier? Lassen Sie mich zu meinem Event Graph zurückkehren hier über diesen Bereich gesprochen wird und sagt, hey, du brauchst etwas, das darin verdrahtet ist. Nun, wenn ich in meiner Modifikation wäre, wie funktioniert ich, warum ich keine Ahnung habe, wovon das spricht. Das ist ein Link. Sie können einfach darauf klicken. Und es bringt dich direkt dorthin. Es heißt also: Hey, stecke eine Variable ein. Um das zu zeigen, was zum Teufel tut, geht als Referenz vorbei. Muss ich unsere Funktion „ Gesundheit modifizieren“ nur ein wenig modifizieren. Und auf diese Weise ändere ich unseren Wert. Anstatt auf die Skala 0-1 zu gehen, werde ich vorübergehend unseren Gesundheitsmesser durchbrechen , wenn Sie so wollen. Ich sage, wir beginnen mit einer Gesundheit von zehn. wir uns vor, wir hätten eine Gesundheitsskala von 0,02 bis 100,0. Ordnung, dann werde ich etwas Gesundheit hinzufügen. Und wieder werde ich mit einer Skala von Null bis 100 anstelle von 01 gehen . Sagen wir einfach unsere Gesundheit, um hinzuzufügen, wir werden uns ändern, lassen Sie uns eine Gesundheit hinzufügen. Ordnung, lass mich weitermachen und das hier reinstecken . Jetzt fliege ich. Ich verfolge gewissermaßen unsere modifizierte Hilfefunktion. Lassen Sie mich darauf doppelklicken. Wieder einmal sagen wir im Grunde: Hey, wir stecken einen hier rein. Dann fügen wir das zu unserer bestehenden Gesundheit hinzu, die zehn ist, und diese zwischen Null klatschen und lassen Sie uns sie auf 100 klemmen. Wir könnten dann 11 haben. Und wenn wir erneut F3 drücken, würden wir erwarten, dass es auf 12 usw. geht. Aber wir werden noch eine Sache hier in unserer Funktion „Gesundheit modifizieren“ modifizieren. Was wir tun werden, ist dass wir dem einen inkrementellen Knoten hinzufügen, ihn hier rausziehen und Schritte eingeben. Wir werden diesen Float erhöhen. Und ich werde die Dinge hier nur ein bisschen neu verkabeln, die Strg-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen, wo Dinge wie diese hier nur ein bisschen neu verkabeln, die Strg-Taste gedrückt halten, sind. Wir nehmen das Ergebnis davon und stecken es dort ein. Und stecke das da rein. Hoppla, ich habe es verpasst, wie Cell. Und jetzt sieht unsere Funktion so aus. Also, wenn ich hier kompiliere, was haben wir los? Nun, im Grunde ist das, was wir vor sich haben, etwas , bei dem wir eine Gesundheit hinzufügen werden. Dies wird an unsere Funktion angeschlossen. Indem wir eine Gesundheit hinzufügen, erhöhen wir diese Zahl genau hier. Und wenn wir den Mauszeiger darüber bewegen, heißt es, dass es dem angegebenen Wert einen hinzufügen wird, und dann wird es festgelegt. Anstatt also das nächste Mal, dass AS unsere Gesundheit erhöht, es ist eins, dann werden es zwei sein. Und dann werden es das nächste Mal drei sein, und so weiter und so fort. Wenn wir zu unserem Event-Diagramm zurückkehren, sollten wir sehen, dass sich dies in unserer Druckzeichenfolge widerspiegelt. Wieder einmal wird dieses Messgerät wertlos sein. Lassen Sie uns also weitermachen und sagen, dass wir diese Atmosphäre auch in unserem Level-Blueprint haben . Gehen Sie weiter und klicken Sie auf diese Level-Testkarte. Worüber wir sprechen, wenn Sie darauf klicken , ist , dass wir hier nichts angeschlossen haben, ich werde das vorübergehend unterbrechen. Ja. Überall wo du das hast, wird es dich anschreien und sagen: Hey, du brauchst etwas, das an diesen Eingang angeschlossen ist. Okay, lass uns das spielen. Wenn wir also die F3-Taste drücken, haben wir jetzt 12 Gesundheit, 15, Gesundheit, 19, Gesundheit, 24, Gesundheit. Und Sie können sehen, dass es jedes Mal einen zu dem Betrag hinzufügt, den es hinzufügt. Nun, der Grund, warum das mit 12 angefangen hat, lass mich noch einmal spielen gehen. Schon wieder. Wir beginnen bei zehn Gesundheit als beim Hinzufügen einer oder wir glauben, dass wir eine hinzufügen, außer dass wir 10-12 gehen. Und der Grund dafür ist, dass wir genau hier drin diesen Wert nehmen und ihn sofort erhöhen. dabei Da es sich dabei um eine Pass-by-Referenz handelt, inkrementieren wir auch diese Variable. Denken Sie daran, dass im letzten Video, das ich gesagt habe , als Referenz weitergegeben wurde, wo immer Sie diesen Pass als Referenz angeschlossen haben. Und Sie erhalten diesen Wert nicht nur, Sie legen ihn auch sofort fest. Obwohl es als eins beginnt, jedes Mal, wenn Sie hier vorbeikommen es jedes Mal, wenn Sie hier vorbeikommen, eins erhöht. Also 234, und so weiter, und so weiter. Ein bisschen Nuance, mit der ich viel zu viel Zeit verbracht habe . Ordnung, da habt ihr es, Leute. Das ist das Aufrufen von Funktionen. Sie können sie aus dem Blueprint heraus aufrufen , in dem Sie sie erstellt haben, oder Sie können sie von anderen Blueprints aus aufrufen. Solange Sie einen Verweis auf den Blueprint haben , in dem sie erstellt wurden. Leute, ich biete das an. Wir sehen uns im nächsten. 61. Zusammenbruch zur Funktion: Ordnung, willkommen zurück alle. In diesem Video lernen wir , wie man ein vorhandenes Netzwerk von Knoten innerhalb eines beliebigen Blueprints in eine Funktion umwandelt. Dies wird als Kollabieren zu einer Funktion bezeichnet. Das ist ein super praktischer Trick. Immer wenn Sie eine Auswahl von Knoten in verschiedenen Teilen Ihres Diagramms duplizieren . Anstatt das zu tun , könnten wir diese Noten einfach in eine Funktion verwandeln und diese Funktion dann aufrufen, wann und wo immer Sie möchten. Momentan befinde ich mich also in meinem BP-Beispiel-Pickup. Und sagen wir einfach, ich klicke mit der linken Maustaste und ziehe das. Wir duplizieren dieses Skript aus immer wieder in verschiedenen Teilen unseres irgendeinem Grund immer wieder in verschiedenen Teilen unseres Diagramms. Anstatt diese Knoten zu kopieren und einzufügen, können wir sie alle hervorheben, genau wie ich es hier getan habe. Und dann können Sie mit der rechten Maustaste auf einen Ihrer markierten Knoten und dann mit der rechten Maustaste auf das Menü klicken, das Sie reduzieren können, um zu funktionieren Darum geht es in diesem Video. Ich werde das hier kurz demonstrieren , auch wenn ich mit diesem Video nicht beabsichtige, dorthin zu gehen. Also werde ich das zu einer Funktion zusammenfassen. Beachten Sie, dass ich in diesem Fall alle diese Knoten in einer einzigen Funktion zusammengefasst habe. In drüben auf der rechten Seite steht, wie möchten Sie diese Funktion benennen? Ich werde es nur vorübergehend unter diesem Namen belassen. Also drücke ich hier die Eingabetaste. Und wenn ich in diese Funktion eintauche, gibt es alle Knoten, die aus all diesen Knoten eine Funktion erstellt haben. Und der Vorteil davon ist, dass wir dann einfach per Drag & Drop in andere Teile unseres Diagramms ziehen und es genauso verwenden können wie wir es tun würden, wenn wir alle diese Knoten kopieren und einfügen würden. Das ist also der Vorteil davon. Nun wieder einmal, das ist nicht genau der Punkt , an dem ich das machen wollte. Also lass mich Z hier ein paar Mal kontrollieren und es wieder in seinen ursprünglichen Zustand bringen. Ich werde kompilieren und das noch einmal sagen. Und lassen Sie uns hier eine brandneue Blueprint-Klasse erstellen . Um dies zu demonstrieren, klicke ich mit der rechten Maustaste und etwas leeren Bereich hier in einem Blueprints-Ordner. Ich benenne diesen Ordner zwischen Videos von Schauspieler-BPs in Blueprints um, da dies kein Schauspieler-Blueprint sein wird. Rechtsklicken wir auf Blueprint-Klasse. Und die Blueprint-Klasse, die wir hier erstellen werden, ist eine Kameraverwackelungssuche im Abschnitt Alle Klassen unter Kameraverwacklungen. Und wir suchen nach einer Kameraverschüttelungsbasis. Und dann klicken wir hier unten auf Auswählen , um das zu erstellen. Geben wir dem einen Namen. Ich nenne das BP-Unterstrich, Kameraverwacklung. Ordnung, dann doppelklicken wir darauf, um es zu öffnen. kurz zu machen, Um es kurz zu machen, diese übergeordnete Klasse der Kameraverwackelungsbasis ermöglicht es uns einige Verwacklungsparameter der Kamera anzugeben. Mir ist klar, dass es hier ein Diagramm mit meiner Blaupause gibt. Es gibt ein Event-Diagramm und all diese Art von Jazz stimmt mit anderen Blaupausen überein. Das Herzstück einer übergeordneten Kameraverwackelungsklasse ist jedoch , dass Sie einige Verwacklungsparameter für Kameras angeben können, und dann können wir diese Kameraverwackelungsparameter abspielen Was wir hier im Detailbereich tun werden, ist unter root, shake, param, klicken Sie auf dieses kleine Drop-down-Menü, und wir möchten dies auf das Verwacklungsmuster der Wellenoszillator-Kamera einstellen . Sobald wir das getan haben, können wir dies als Drop-down-Menü anklicken. Und ich habe einige Parameter aus Zeitgründen im Voraus eingerichtet. Gehen Sie unter diese F0 v-Sichtfeld-Einstellungen. Mach das ein paar Mal auf. Wir wollen unsere Amplitude auf fünf und unsere Frequenz auf fünf setzen . Und der anfängliche Offset-Typ wird auf random gesetzt. Später können Sie mit diesen Parametern herumspielen, aber ich schlage vor, Sie spielen einfach herum oder spielen einfach zu Hause mit. Sie können also sehen, wie viel das bringt. Und später können Sie zurückgehen und damit herumspielen und sehen, wie sehr verschiedene Werte die Dinge durcheinander bringen. In der Kategorie Timing legen wir eine Dauer von 0,5 einer halben Sekunde fest. Aaron sind Mischung Time in und Blend Time Out. Wir werden auf 0,2, 5,0, 0,25 setzen. Großartig. Mach weiter, speichere das aus und wir werden als nächstes in unseren Third-Person-Charakter springen . Kehren wir also zu unserem Content Browser zurück. Blaupausen von Charakteren der dritten Person. Doppelklicken Sie auf Ihren ThirdPersonCharacter, um ihn zu öffnen. Jetzt springen wir zu unserem Event-Diagramm. Wir brauchen diese Funktion zur Änderung der Gesundheit also nicht mehr. Und in unserer Veranstaltung finden Graphlets etwas leeren Platz. Wir brauchen hier einen Event-Input. Also ein Eingabeereignis, Lass uns F machen. Nun, sicher, F2 scheint ein gutes zufälliges Eingabeereignis zu sein. Und bieten Sie das an, wir ziehen es heraus und geben einen Funktionsknoten namens Play World Camera Shake ein. Hier mit diesem Funktionsknoten, sieh dir das an. Es ist blau gemerkt, dass es sich um einen Funktionsknoten handelt. Wir können eine Klasse spezifizieren. Und hier kommt unser B P-Kameraverwackeln ins Spiel, denn wenn wir auf dieses Drop-down-Menü klicken. Wir können die Kameraverwackelungsparameter eingeben, die wir gerade in unserem Kameraverwackelungs-Blueprint eingerichtet haben, ziemlich praktisch. Jetzt müssen wir ein Epizentrum angeben. Das heißt, wo wollen wir diese Kameraschüttelung aufbauen, was ist das Epizentrum? Wissen Sie, wie Erdbeben ein Epizentrum haben? Nun, Kamera-Shakes benötigen auch ein für sie definiertes Epizentrum. Dafür sagen wir: Hey, lassen auf die Kapselkomponenten basieren. Das heißt, diese Kapselkomponenten , die unseren Charakter umgeben. Lass es uns um die Mitte davon herum gründen, richtig? Wir haben also eine Kapselkomponente. wir das per Drag & Drop in das Diagramm, um einen Verweis auf sie zu erhalten. Lassen Sie uns das herausziehen, indem wir noch den Standort der Welt eingeben. Dadurch werden die X-, Y- und Z-Koordinatenwerte zurückgegeben . Wir sagen also, dass dies unser Epizentrum im Wesentlichen genau in der Mitte unserer Kapitalkomponente ist. Nun müssen wir hier einen Außenradius angeben, im Wesentlichen vom Epizentrum, wie weit reicht sein Kameraverwackeln ins Spiel? Setzen wir uns hin. 500 ist unser äußerer Radius. Nur solange sich unsere Kamera innerhalb dieses Radius befindet, sollte dies standardmäßig der Fall sein , wenn Sie Ihre Kameraeinstellungen verlassen , wenn Sie Ihre Kameraeinstellungen verlassen haben. Aber du kannst damit spielen, du kannst erweitern, wenn du noch ein bisschen weiter willst. Dann ziehen wir das in die Länge. Und ich werde einen Node namens Spawn Sound Attach einbringen . Jetzt könnten wir hier einfach einen Sound spawnen, aber nur um einige andere Funktionen zu demonstrieren, werden wir einen Sound spawnen und ihn dann anhängen. Wo hängen Sie es an? Nun, wir werden es hier an unserer Kapselkomponente befestigen . Wieder einmal weiß ich, dass wir das nicht tun müssen. Wir könnten einfach einen Sound abspielen, aber lass uns einfach weitermachen und diesen Sound anhängen. Welchen Sound wollen wir hier? Gehen wir mit einer Explosion, geben Sie Explosion a bis zur Explosion Q ein. Obwohl alle davon wirklich gut funktionieren. Und zoomt hier nur ein bisschen raus. Ziehen wir das ab und machen einen Spawn-Emitter am Standort. Dies ist das alte Partikelsystem. Wenn du ein Niagara-Partikelsystem verwenden möchtest, kannst du vor Ort ein Spawnsystem erstellen. Der Grund, warum ich Spawn-Emitter mache ist, dass ich weiß, dass ich den Explosionspartikeleffekt genau hier drin habe. Aber auch hier können Sie das Niagara-Partikelsystem verwenden . Und eigentlich wollte ich keinen Spawn-Emitter am Ort machen , mein Fehler, lass uns einen Spawn-Emitter anbringen. Noch einmal, nur um das Spawning Mid oder Attack zu zeigen , dass wir hier verschiedene Funktionsknoten verwenden können. Slot in diese Explosion ein. Da ist es. Wo wollen wir diese Explosion anbringen? Nun, ich kann das so von meiner Kapselkomponente aus erweitern . Doppelklicken Sie auf diesen Draht , um einen Umleitungsknoten einzufügen. Und das sollte fast reichen. Nun, diese drei Funktionsknoten würde ich in eine eigene Funktion verwandeln. Ich würde diese in eine Funktion zusammenfassen. Ja, Funktionen können eine andere Funktion bilden lassen. Und der Grund, warum ich sagen würde, dass diese drei gültig sind, um in ihre eigene Funktion zu gelangen. Weil es genau dort eine Reihe von Effekten gibt. Im Wesentlichen wie bei einem Spieler Schadenseffekte. Du spielst einen Kameraverwackeln ab. Du wirst ein Explosionsgeräusch haben und du wirst Explosionspartikeleffekte abspielen. Also gehören sie alle zusammen. Es ist sinnvoll, diese in einem einzigen Knoten zusammenzufassen. Wenn wir jetzt in eine Funktion zusammenbrechen, werde ich diese beiden weglassen und Sie werden hier kurz sehen, warum . Also klicke ich mit der linken Maustaste markiere nur diese drei Knoten. Dann klicke ich mit der rechten Maustaste auf einen von ihnen und werde ihn reduzieren, um zu funktionieren. Das wird also einen Funktionsknoten wie diesen als neue Funktion einbringen . Und geben wir dem einen neuen Namen. Also drüben in dem Funktionsbereich dem es das für uns erstellt hat, lass uns F2 darauf drücken, und ich nenne das einfach Spielerschaden. Spieler hat f x beschädigt. Das scheint ziemlich gut zu sein. Jetzt können Sie auf der rechten Seite sehen, dass bereits unsere Eingaben für diesen Funktionsknoten erstellt wurden, aber wir haben hier ein paar, die redundant sind. Also kann ich das eigentlich ein bisschen vereinfachen. Lassen Sie mich hier einfach mein Detailfenster ein wenig erweitern . Ich habe an die Komponente angehängt und auch eine Komponente angehängt. Aber sie werden an denselben Komponenten befestigt. Also kann ich tatsächlich eines davon eliminieren. Das wird gut funktionieren. Jetzt kriegst du diesen roten Draht und das wird abscheulich aussehen. Also klicke einfach mit der rechten Maustaste darauf, aktualisiere den Knoten, das wird los. Wir können den Kerl gleich hier loswerden. Wenn du willst, könntest du deine Eingaben umbenennen aber epizentrum und an die Komponente angehängt oder ganz gut, ich könnte das löschen, weißt du das ein bisschen mehr vereinfachen, das ein bisschen aussehen lassen Reiniger. Etwas wie das hier. Wenn ich in diesen Funktionsknoten eintauche, beachte, was wir vor sich haben. Ich habe meine Kapselbestandteile. Die Weltposition der katholischen Komponente und das Einstecken in die Eingangsseite meiner Funktion. Innerhalb meiner Funktion. Diese werden als Epizentrum und die beigefügten zwei Komponenten für diesen Sound und den Emitter weitergegeben die beigefügten zwei Komponenten für . Jetzt wurde es tatsächlich los, weil ich den unteren Eingang gelöscht habe, die angehängten zwei Komponenten müssen dieses Backup tatsächlich verkabeln. Aber auch hier funktioniert die gleiche Komponente für beide. Sie können hier also einige Umleitungsknoten einsetzen, um das irgendwie zu bereinigen. Und eigentlich gehe ich so, halte Alt gedrückt und klicke mit der linken Maustaste. Dies ist ein gültiges Setup wie dieses. Ordnung, kompiliere und speichere das. Zurück zu meinem Event-Diagramm, das schön und sauber aussieht Lass uns reinspringen und spielen und sehen, wie das aussieht. Also kann ich genau hier rumlaufen. Lass mich dort meine Debug-Option auf meinen Charakter setzen , damit du sehen kannst, wie das abgefeuert wird. Ordnung, also wenn Sie F2 drücken, Bum haben Sie gesehen, wie die Kamera nur ein bisschen wackelt , ein bisschen wie ein Zoomeffekt. Also kann ich mich bewegen und F2 drücken. Und jetzt könnten Sie, wenn Sie möchten, in Ihre Funktion zurückkehren die Sie gerade hier erstellt haben. Du könntest deinen Sound ändern, du könntest deine Explosion ändern . Lass uns vorerst einfach mit Flamme gehen, richtig? Flamme, Flammenwerfer. Eigentlich kein Flammenwerfer. Ich will Feuer machen. Die, die ich mit so etwas wie einem Feuer statt einer Explosion gehen möchte , klicke hier auf Spielen. Wenn Sie F2 drücken. Der Grund, warum ich Feuer gewählt habe, weil ich mich daran erinnere, was wir mit diesem speziellen Funktionsknoten gemacht haben, ist, dass wir auf diesen Emitter reagiert haben und ihn angeschlossen haben. Das ist also der Unterschied zwischen dem bloßen Spawnen eines Sounds und dem Spawnen eines Sounds und dem Anhängen. Ich wollte das zeigen, nur um ein kleines Extra zu zeigen. Ordnung, zurück in unserem Event-Diagramm hier, was Sie tun könnten, wenn Sie diese nicht alle zu einer Funktion zusammenfassen wollten und wollten . Sie können mit der rechten Maustaste darauf klicken und den Knoten wie folgt erweitern. Und dann bringt es dich dahin zurück , wo du Dinge hattest. Du wolltest sehen, was alles da drin ist. Ich drücke einfach Control Z, um es rückgängig zu machen, weil mir gefällt, dass alles zu einer Funktion zusammengebrochen ist. Nun, nur ein paar Dinge, die ich erwähnen wollte , bevor wir dieses Video abschließen Lassen Sie mich hier wieder auf meine vom Player beschädigte Funktion eingehen . Ich werde diese Knoten auswählen, Control C und Control V. Sie können nicht, Sie können keinen latenten Knoten haben, um die Funktion zu kollabieren. Was passieren wird, ist unwirklich, ich werde dich anschreien. Also, wenn ich einen Delay-Knoten bringe, halte den Linksklick gedrückt. Sagen wir einfach, ich wollte alle vier in eine Funktion zusammenfassen . Ich werde sie mit der rechten Maustaste markieren, Ausblenden, um zu funktionieren. Es wird mich anschreien und sagen: Wir können das nicht tun. Zeigt das Nachrichtenprotokoll an. Lassen Sie uns die Nachricht lang anzeigen und es heißt: Hey, Verzögerung kann nicht in den Funktionsgraphen platziert werden. Wenn ich die Verzögerung loswerde, bringen wir einen Event-Knoten hinzu. Lass uns F acht machen. Klar. Versuchen Sie, ein Eingabeereignis oder ein beliebiges Ereignis in Ihre Funktion einzufügen, wie diesen Rechtsklick, In Funktion reduzieren. Du bekommst auch eine weitere Nachricht, die besagt: Hey, du kannst dort auch keinen Event-Knoten haben. Also nur zu Ihrer Information, wenn Sie versuchen, zusammenzubrechen, um zu funktionieren. Also Leute, da habt ihr es. Reduzieren auf Funktion, sehr empfehlenswert, wenn es sich um eine Sammlung von Knoten handelt, die zusammenpassen und es sich nur um ein Skript handelt, das Sie in verschiedenen Teilen Ihres Diagramms immer wieder wiederholen in verschiedenen Teilen Ihres Diagramms immer wieder denn das reicht aus, um dieses anzubieten, wir sehen uns im nächsten. 62. Reine und undurchsichtige Funktionen: Hallo und willkommen zurück. In diesem Video ist es unser Ziel, Unterschiede zwischen reinen und unreinen Funktionen zu erkennen und zu verstehen . Wir zeigen auch, wie Sie festlegen können, dass eine Funktion entweder rein oder unrein gemacht werden soll . Um diese Diskussion zu erleichtern, werde ich innerhalb meines Third-Person-Charakters arbeiten. Wenn Sie also zu Hause mitspielen möchten, schlage ich vor, dass Sie dies getan haben. Und wieder kannst du in deinen ThirdPersonCharacter gelangen , indem du unter dieses Verzeichnis gehst und auf deinen ThirdPerson-Charakter doppelklickst. Okay, lassen Sie uns einige Unterschiede zwischen unseren reinen und unreinen Funktionen sprechen . Nun, für den Anfang sprechen wir über die reinen Funktionen. Dies sind die grün gefärbten Funktionen und hier sind einige Beispiele hier drüben. Diese werden im Allgemeinen als Getter-Funktionen verwendet , die nur einige Daten ausgeben. Das ist also einer der Schlüssel mit reinen Funktionen. Sie haben keine Ausführungs-In- oder Out-Pins. Wenn Sie also unsere Schulden mal Sekunden bemerken, geben wir einfach unsere Zeit in Sekunden tatsächlichen Standort zu erhalten, gibt nur die Summe der X-, Y- und Z-Koordinaten aus. Es ist keine Ausführung in oder Out-Pins erforderlich, um den Wert unseres tatsächlichen Standorts oder unserer tatsächlichen Zeit in Sekunden zu ermitteln. Also, wann laufen diese? Da wir keine Ausführungs-Pins haben, die auf der Eingangs - oder Ausgangsseite durch diese fließen . Wann laufen sie? Nun, sie werden ausgeführt, wenn der Rückgabewert verwendet wird. Nur um das zu demonstrieren, habe ich einen Event-Tick bekommen, der jedes Bild abheben wird . Wir haben das in einen unreinen Print-String-Funktionsknoten eingehängt . Stecken wir das hier rein. Ein Float-Wert in einen String. Es wird diesen Float in einen String umwandeln. Und was hier passieren wird, ist jedes Bild, es wird bis zu dieser Druckzeichenfolge abgefeuert , um etwas auf den Bildschirm zu drucken. Wenn es soweit ist, wird es hier ankommen , um unsere Zeit in Sekunden zu bekommen. Dies wird ausgeführt, es wird ausgeführt, wenn sein Rückgabewert aufgerufen wird. Also lass mich einfach weitermachen und hier spielen. Sie können sehen, wie dies unsere Spielzeit in Sekunden zurückgibt und ab dem Zeitpunkt, an dem wir mit dem Spielen begonnen haben, steigt. Bei reinen Funktionen ist noch zu beachten , dass sie versprechen den Status oder die Mitglieder einer Zielklasse in keiner Weise zu modifizieren . In unserem Beispiel wird hier unser Get Actor-Standort sein. Das Ziel hier ist ein Schauspieler. Und weil wir uns innerhalb unseres Third-Person-Charakter-Entwurfs befinden, das Ziel, hier Selbst zu sein, wäre das Ziel, hier Selbst zu sein, unser ThirdPerson-Charakter. Was Sie bei diesem reinen Funktionsknoten bemerken würden , ist dass er den Zustand dieses Aktors überhaupt nicht ändern wird. Es wird einfach den Standort unseres ThirdPersonCharacter zurückgeben . Vergleichen Sie dies mit unserer unreinen Funktion für den Standort des Schauspielers. Nein, dieser blaue. Dieser kann hier den Zustand unseres Ziels, unseres Schauspielers oder der Third-Person-Figur ändern . Und es kann den Zustand ändern, indem es seinen Standort ändert. Das ist also auch einer der Hauptunterschiede. Bei einer reinen Funktion stellen Sie also eine Frage, was der Standort eines Schauspielers ist, z. B. und Sie erhalten in diesem Fall eine Antwort und einen XYZ-Standort. Nun, nur um einige dieser reinen Funktionen zu demonstrieren, die einige angeforderte Daten ausgeben. Sie haben bereits gesehen, dass die Benutzer Zeit in Sekunden erhalten. Lassen Sie mich das einfach einstecken, um den tatsächlichen Standort zu ermitteln. Auch dies wird jedes Bild abfeuern. Und weil ich mich bewegen werde , wirst du dieses Update sehen. Den Standort meines Schauspielers ermitteln, der ThirdPerson-Charakter. Dies sind die Koordinaten, an denen der ThirdPersonCharacter derzeit innerhalb der Welt steht. Dann könnte ich einfach den Anzeigenamen unseres Player-Controllers ausgeben. So. Wieder einmal ist unser Player-Controller so etwas wie die Marionettensaiten, die unsere Schaufensterpuppe hier steuern. Der Player-Controller ist, genau als Auffrischung hier, in Ihren Projekteinstellungen eingerichtet. Dies ist eine kleine Tangente unter Karten und Modi. Der Player-Controller, den wir in unseren Karten und Modi sowie in den Projekteinstellungen eingerichtet haben, ist also in unseren Karten und Modi sowie in den Projekteinstellungen eingerichtet haben , ist dieser BP-Player-Controller. Also gab es nur diesen Namen aus. Wieder einmal mit einer reinen Funktion stellst du eine Frage. Was ein Schauspieler ist, ist Standort, z. B. und Sie erhalten eine Antwort. Und jetzt richten wir unsere Aufmerksamkeit auf die unreinen Funktionen, das sind die blau gefärbten Funktionen. Eine Sache, die Sie an ihnen beachten werden, ist, dass sie in Pins und Pins ausgeführt werden. Und das heißt, weil sie eine Ausführung in Pin haben, müssen Sie sie explizit ausführen indem Sie einen Draht daran anschließen. ob auf der anderen Seite etwas herauskommt oder nicht, das ist völlig optional. Aber damit das jemals etwas bewirken kann, muss etwas Draht hineinfließen. Ein weiterer Unterschied zwischen einer unreinen Funktion und einer reinen Funktion. Und ich bin gerade darauf gestoßen, dass eine unreine Funktion den Zustand einer Klasse ändern kann, aber nicht muss. Im Fall unseres Setactor-Standorts hier könnte dies den Zustand verändern. Von unserem Ziel sind wir selbst hier ThirdPersonCharacter, und es würde unseren Staat verändern, indem ihm einen neuen Standort geben. Auch diese Funktion ist unrein, weil sie den Status ändert, in dem sich die Klasse befindet. In diesem Fall unser Third-Person-Charakter innerhalb der Welt. Jetzt stellt sich die Frage mit geschaffenen Funktionen, wie macht man sie rein oder unrein? Wie bezeichnet man das? Nun, mit der Funktion wähle sie hier aus und ich wähle unsere Player Damage FX-Funktion aus. Wenn Sie es im Detailfenster auswählen, haben Sie ein Kontrollkästchen, das angibt, ob es sich standardmäßig um eine unreine Funktion oder um eine reine Funktion Wenn ich sie per Drag & Drop hineinziehe, können Sie sie als blaue Farbe. Es ist eine unreine Funktion. Wenn ich dieses Kästchen jedoch ankreuzen würde, könnte ich es in eine reine Funktion verwandeln. Das ist also die unreine Version. Lass mich das schnell duplizieren damit ich mit der rechten Maustaste auf diesen Player klicke. Schäden beeinträchtigen die Funktion. Ich werde es duplizieren. Control D ist der Hotkey dafür. Und ich nenne diesen Spieler Damaged FX. Und ich werde hier ein Leerzeichen setzen und das einfach rein nennen. Okay, und Sie können sehen, dass hier ein brandneuer Tab geöffnet wurde . Was ich tun werde, ist, wenn diese Funktion ausgewählt ist, werde ich hier die reine Option auswählen. Okay? Es scheint also, dass hier in unserem Funktionsgraphen selbst nichts passiert ist. Könnte das schließen, aber ich werde hier zu unserem Event-Diagramm zurückkehren und diesen Kerl per Drag & Drop in die Grafik ziehen. Wieder einmal sind reine Funktionen grün, während unsere unreinen Funktionen blau sind. Beachten Sie, dass dieser auf beiden Seiten keine Ausführungsstifte hat, während die unreine Funktion dies tut. Nun, diese Funktion hier oben nützt uns so, wie wir sie entworfen haben, weil wir sie nicht aufrufen können. Und es gibt keinerlei Daten aus. Das ist also keine großartige Funktion um sie in eine reine Funktion zu verwandeln. In diesem Forum hat man keinen Zweck. Also werde ich das löschen. Tatsächlich werde ich diese Funktion löschen , brauche sie nicht. Und ich werde versuchen, ein Beispiel zu nennen, wo dies Sinn machen könnte. Damit dies demonstriert und demonstriert werden kann, werde ich unsere Funktion zur Änderung der Gesundheit hier duplizieren . Der Grund, warum wir hier unsere Gesundheitsfunktion ändern werden, ist, dass Sie sich an hier erinnern, lassen Sie mich einfach darauf doppelklicken. Wir haben einen Wert zurückgegeben. Dies könnte also ein Kandidat sein, bei dem wir dies vielleicht in eine reine Funktion verwandeln möchten. Aber ich werde diesen nicht zerstören. Ich klicke einfach mit der rechten Maustaste darauf. Und wir werden das duplizieren und ich nenne das meine Modify-Gesundheit weniger. Und was ich dann hier machen werde , ist drüben im Details-Bereich, Sie das Kästchen an, um es rein zu machen. Ich werde auch ein paar Dinge daran ändern. Jetzt habe ich dieses Setup, um dies als Referenz im vorherigen Video zu übergeben. Ich werde das Häkchen entfernen und dieses Diagramm hier ein wenig vereinfachen. Also werde ich diesen Inkrementknoten so loswerden. Ich stecke das in unsere Filiale ein. Wir nehmen unsere Ferse oder den beschädigten Berg und stecken das hier rein. Das sieht alles gut aus. Genau hier. Wir werden das hier einstecken und wir setzen uns irgendwie wieder so zurück, wie wir es ursprünglich hatten. Das wird also unsere reine Funktion sein. Sieht gut zusammengestellt aus. Kehren wir zu unserem Event-Diagramm zurück. Und lass uns reinbringen, ich habe meinen F2-Schlüssel genau hier. Ich werde einfach diesen Event-Knoten hier stehlen. Was ich tun werde, ist, dass ich unsere modifizierte Gesundheit reine, reine Funktion wie diese einbringen unsere modifizierte Gesundheit reine, reine werde. Und beachte, dass es keine Eingabe-Pins, Ausführungs-In- oder Ausführungs-Out-Pins Und ich werde eine Zeichenfolge drucken. Also werde ich diesen Print-String-Knoten stehlen. Es ist schon da. Wenn ich F2 drücke, drucke ich etwas auf den Bildschirm. Ich werde das einstecken und meine aktuelle Gesundheit in eine Zeichenfolge umwandeln. Und es wird etwas Gesundheit verändern. Ich muss dem etwas Lebenspunkte oder Schaden um den wir es modifizieren wollen. Also lasst uns helfen, hinzuzufügen. Dies ist derzeit auf eins eingestellt. Wie sieht unsere Gesundheit derzeit aus? Es ist um zehn. Das ist also in Ordnung. Lassen Sie mich meine Gesundheit hinzufügen. Ich werde es in ihre Kompilierung einbinden. Hoppla, das wollte ich nicht tun. Lass uns weitermachen und hier spielen. Und ich trage das Messgerät momentan überhaupt nicht mit mir herum, das ist mir überhaupt egal. Also trage ich den Ausdruck mit mir , den wir auf dem Bildschirm sehen werden. Wenn Sie also F2 drücken, schauen Sie genau wo sich mein Mauszeiger befindet, 11121314. Auch dies ist so eingerichtet, dass es einfach unsere aktuelle Gesundheit ausgeben soll. Wir müssen die Ausführung nicht rein oder raus überweisen. Es vereinfacht also unser Diagramm etwas. Und in der Tat ist das einer der Gründe , warum Sie eine reine Funktion verwenden möchten. Es macht ein Diagramm einfach einfacher und sauberer zu lesen. Sie müssen weniger Ausführungskabel anschließen. Außerdem geben sie immer die gleichen vorhersehbaren Ergebnisse zurück , solange alle Eingaben, in diesem Fall unsere Gesundheit, die hinzugefügt werden muss, gleich sind und Sie dasselbe vorhersehbare Ergebnis erhalten . Aber der größte Grund, eine reine Funktion gegenüber einer unreinen zu verwenden . Der Hauptgrund, warum Sie eine Funktion in eine reine Funktion konvertieren möchten in eine reine Funktion konvertieren Vorteile des Compilers, die einen optimierten Code hinter den Kulissen gewährleisten . Ich werde dich nicht mit den Details langweilen, aber du kannst das online nachschlagen, wenn du die saftigen, langweiligen Details willst . Okay Leute, das reicht aus, um dieses anzubieten, der Unterschied besteht zwischen reinen und unreinen Funktionen. Wir sehen uns im nächsten Video. 63. Funktionsbibliothek: Hallo und willkommen zurück alle. Nun, bis zu diesem Punkt in unserer Diskussion über Funktionen haben wir gelernt, wie man einige Funktionen innerhalb eines Blueprints erstellt . Und das ist alles schön und gut, wenn Sie einen Verweis auf den Entwurf haben , in dem die Funktion erstellt wurde. Was tun Sie jedoch, wenn Sie eine Funktion erstellen und auf sie in all Ihren Blueprints zugreifen möchten? Was kannst du dann tun? Sie möchten keinen spezifischen Verweis auf einen Blueprint haben. Sie möchten nur eine allgemeine Verwendungsfunktion schaffen , die überall verfügbar ist. Nun, in diesem Fall möchten Sie etwas erstellen, das als Funktionsbibliothek bekannt ist. Unser Ziel in diesem Fall ist es zu lernen, wie man das was eine Funktionsbibliothek überhaupt ist. Funktionsbibliothek ist ein Ort zum Speichern von Funktionen , auf die von jedem anderen Blueprint aus zugegriffen werden kann. Ordnung, zurück hier in unserem Inhaltsbrowser, lass uns weitermachen und unsere Funktionsbibliothek erstellen. Und ich denke, ein Blueprints-Ordner unter der Kategorie Scripting wäre für uns sinnvoll. wir also mit der rechten Maustaste auf einen leeren Bereich. In der Kategorie Blaupausen haben wir diesen Fly-Out im Flyout-Menü. Es heißt Blueprint-Funktionsbibliothek. Das ist der, den wir weitermachen und darauf klicken wollen. Geben wir dem einen Namen. Ich nenne das meine Unterstrichfunktionen und ich werde es in Großbuchstaben setzen, nur um es sehr widerlich zu machen. Und dann doppelklicke ich darauf, um es zu öffnen. Sobald wir das getan haben , werden wir aufgefordert, sofort eine Funktion zu erstellen. Und es hat sofort eine Registerkarte mit diesem passenden Namen. Für uns nenne ich diese Funktion, wir sind dabei, Change-Mesh-Material zu erstellen. Und diese Funktion wird genau so funktionieren, wie der Name schon sagt. Jetzt füge ich hier ein paar Eingaben zu unserem Eingangsknoten damit wir das auswählen können, oder die Funktion selbst auswählen, können Sie sie ausführen. Der erste Input, den ich hinzufügen werde , wird Actor heißen. Und wir werden den Eingabetyp hier ändern um einfach ein Schauspieler zu sein. Also habe ich unter Objekttypen einfach nach Schauspieler gesucht. Unter Objekttypen, actor, wollen wir eine Actor-Objektreferenz. Und dann wird unser zweiter Input, den wir hier wollen, nämlich einen weiteren zu schaffen, Material genannt. Und wir werden diesen Typ so ändern einfach nur Material eintippen kann. Und unter dem Objekttypenmaterial im Flyout-Menü ändern wir es in eine Objektreferenz. Ordnung, das werden also unsere beiden Inputs sein. Wir werden hier eine Ausgabe haben. Also klicke ich auf diesen Plus-Button. Dabei fügen wir sofort einen Rückkehrknoten hinzu. Nennen wir diese Ausgabe als erfolgreiches Änderungsfragezeichen. Und dann geben wir dem eine Art Boolean. Wir werden also am anderen Ende dieses Funktionsknotens ausgeben , ob wir das Material unseres Netzes erfolgreich geändert haben oder nicht . Schaffen Sie hier also ein bisschen Platz , wir werden dazwischen einige Knoten hinzufügen. Das erste, was wir tun werden, ist dass wir weitermachen und den Draht hier durchbrechen können. Ich halte die Alt-Taste gedrückt und klicke mit der linken Maustaste. Wir werden unseren Schauspieler-Input in die Länge ziehen und herausfinden, ob unser Schauspieler ein statischer Mesh-Schauspieler ist. Also werden wir zu Static Mesh Schauspieler wechseln. Also stellen Sie im Wesentlichen die Frage, hey Schauspieler, den wir an diesen Funktionsknoten anschließen, sind Sie ein statischer Mesh-Akteur? Und wenn ja, wollen wir etwas tun und wenn nicht, wollen wir etwas anderes tun. Was wir nun zuerst tun wollen, ist, dass wir eine Variable umschalten wollen , ob sie wahr oder falsch ist oder nicht, je nachdem, ob diese Besetzung fehlschlägt oder wahr ist, dass es sich um falsch ist oder nicht, je nachdem, ob diese Besetzung einen statischen Mesh-Akteur handelt. Also müssen wir hier eine Variable erstellen. Wir haben einen Abschnitt namens lokale Variablen. Jetzt werden wir im nächsten Video darüber sprechen, was eine lokale Variable mehr ist, im nächsten Video viel mehr. Spielen Sie also jetzt einfach mit und dann kommen wir zu den Unterschieden zwischen lokalen und Klassenvariablen. Im nächsten Video werden wir hier eine Variable erstellen , eine lokale Variable. Dieser wird Erfolg heißen. Volles, änderes Fragezeichen. Und ich habe dort die falsche Taste gedrückt. Also lass mich das noch einmal versuchen. Erfolgreich. Ich nenne es einfach Erfolgsänderungs-Fragezeichen , das ist gut genug. Und ich werde das per Drag & Drop darüber ziehen, ich setze Ausführungspin, Drag & Drop auf die Besetzung fehlgeschlagen. Wir wollen es zweimal. Wenn es sich also tatsächlich um einen statischen Mesh-Schauspieler handelt, wird es aus diesem Draht zur Ausstellungsausführung herausschießen. Und wir werden sagen, ja, der Erfolg, wir haben ihn erfolgreich geändert. Und wenn es gescheitert ist, sagen wir nein, wir haben es nicht erfolgreich geändert. Das wird also auf „false“ gesetzt. Als nächstes ziehen wir einfach hier raus und geben Play Sound 2D ein. Wir spielen einen Soundbestätigungs-Soundeffekt oder einen Fail-Soundeffekt ab. Denn hier oben, wenn es erfolgreich ist, sich zu ändern, nennen wir den Sound Compile Erfolg. Das ist eine, nach der wir suchen. Das ist in den Engine-Ordnern. Wenn Sie also nicht sehen, dass Sie mitspielen, können Sie dort auf das kleine Zahnrad klicken Ihren Engine-Inhalt einschalten. Also spielen wir den Sound ab und drücken Control C, Control V, um ihn hier unten einzufügen . Wenn dieses Casting fehlschlägt, werden wir fehlschlagen, Kompilierung fehlgeschlagen. Beides wird gut funktionieren. Dann müssen wir hier unten ein bisschen arbeiten. Was wir hier draußen tun wollen, ist unseren Static Mesh-Schauspieler herauszuholen und wir suchen nach den statischen Mesh-Komponenten. Statische Mesh-Aktoren bestehen also aus einer statischen Netzkomponente. Das macht ihn zu einem statischen Netz. Und daraus ziehen wir das festgelegte Material heraus und tippen es ein. Es gibt einen Knoten, nach dem wir suchen. Und das Material, in das wir es ändern wollen, wird das sein, was wir in diese Funktion eingeben. Also ziehen wir genau hierher, ich stecke es hier rein, aber ich werde auf diesen Draht doppelklicken, um einen erneuten Route-Knoten einzufügen . Okay, wir sind fast fertig, wir sind fast fertig. Was wir als Nächstes hier tun werden , ist, dass wir diese Ausgabe nehmen. Wir werden das in unser Setmaterial einbinden , denn wenn wir festgestellt haben, dass es sich um einen statischen Mesh-Schauspieler handelt, wollen wir das durchspielen und das Material tatsächlich ändern. Wir werden dieses Backup hier einstecken, wenn die Übertragung fehlschlägt. Es ist kein statischer Mesh-Schauspieler. Wir kommen gleich hier durch und gehen einfach zurück zum zurückgegebenen Knoten. In diesem Fall wollen wir das Material nicht ändern. Nun, für diese erfolgreiche Änderung der booleschen Variablen, nun, wir können einfach das Ergebnis davon einstecken. Wir stellen es entweder hier oder hier ein. Das Ergebnis davon ist, dass wir es bekommen und es einfach dort einstecken können . Das wird also unsere Funktion sein, unsere Leihfunktion, die existieren wird und meine Funktionsbibliothek ist. Lassen Sie mich das zusammenstellen und sofort speichern. Als nächstes gehen wir zu unserem ThirdPersonCharacter Blueprint über , da wir dort noch einiges zu tun um diese Funktion zu präsentieren. Wenn Sie also vergessen haben, wo sich das befindet, doppelklicken Sie darauf, um sie in unserem ThirdPersonCharacter zu öffnen. Sobald Sie zum Ereignisdiagramm gelangen, klicken Sie mit der rechten Maustaste in eine leere Stelle und geben Sie einfach meine Funktionen ein. Und Sie können sehen, wenn wir anfangen, es einzugeben, es zeigt unsere Funktionsbibliothek unter dem Klassenbereich. Unter der Klasse, meinen Funktionen, Funktionsbibliothek haben wir jetzt Zugriff auf die Funktion, die wir erstellt haben. Es ist in diesem Blueprint und jedem anderen Blueprint verfügbar . Fossa, klicken Sie darauf, wir können sehen wie unsere Funktion derzeit aussieht. Es nimmt auf der Eingangsseite einen Ausführungsdraht auf, er kann einen ausgeben. Es kann einen Schauspieler brauchen, es kann ein Material benötigen, und es kann ausgeben, ob wir das Material eines Eingangsakteurs erfolgreich geändert haben oder nicht das Material eines Eingangsakteurs wird in Kürze darauf zurückkommen. Aber löschen Sie das vorerst. Wir gehen zu unserer Registerkarte „Ansichtsfenster und fügen hier eine neue Komponente hinzu. Also lass uns weitermachen und unsere Kapselkomponente auswählen. Und darunter werden wir eine Komponente hinzufügen. Und wir fügen einen Sphere Collider hinzu, Sphere Collider . Nun wird das wie eine Art unsichtbare Hand wirken , wenn du so willst. Also gebe ich dem einen Namen und nenne es simulierte Hand. Und ich werde es hier ein bisschen vor unserem Charakter platzieren . Also werde ich die x-Position auf 60 ändern . Und ich werde die Skala allgemein in X, Y und Z 2.5 ändern , etwas, das etwas kleiner ist, weil sie an unsere katholische Komponente gebunden ist. Wenn wir unseren Charakter drehen, wird sich auch dieser drehen. Was wir tun werden, ist, zu überprüfen, ob sich das etwas überschneidet, und dann werden zu überprüfen, ob sich das etwas überschneidet wir ändern, was auch immer es sich überschneidet, das wird, wenn es sich überschneidet, ein Stuhl, wir werden dieses statische Netz in einen Goldanteil verwandeln. Wir werden das Material dieses statischen Netzes ändern. Eine weitere Eigenschaft, die ich hier einrichten möchte , befindet sich im Rendering-Bereich Ich möchte die Option Versteckt in Spielen deaktivieren, damit wir sehen können , wo sich das auf der Welt befindet. Ordnung, also wenn das alles eingerichtet ist, können wir das retten und hier auf dein Level zurückkehren. Wir werden einige statische Netze in unserem Level platzieren. Jetzt habe ich einige spezielle im Inhaltsordner des Rührers im Sinn. Wirklich alle statischen Maßnahmen reichen aus. Aber unter dem Props-Ordner werde ich einen Stuhl platzieren, der ein bisschen in der Nähe ist. Ich werde einen dieser Typen ein bisschen herumrollen und ich werde platzieren, wie wäre es mit einem Basiszylinder C. Wir können einen davon hier unten finden, oder die Registerkarte Schauspieler platzieren, aber ich bin wird hier genau unter Formen kommen. Lass uns einen Zylinder machen. Und ich werde es einfach ein bisschen vergrößern. Wenn alle drei ausgewählt sind, ich die Strg-Taste gedrückt und klicke mit der linken Maustaste. Also sind alle drei ausgewählt. Ich möchte in jedem von ihnen etwas festlegen , um sicherzustellen, dass sie Überlappungsereignisse erzeugen , sodass wir erkennen können, dass wir sie mit unserer simulierten Hand ohne Zitat überlappen. Bei all diesen ausgewählten kann ich hier einfach die Suchleiste eingeben. Sackleinen. Was ich suche, ist Überlappungsereignisse zu generieren. Also mach weiter und überprüfe das noch einmal, stelle sicher, dass du alle drei ausgewählt hast. Und dann springen wir in unseren Third-Person-Charakter-Blueprint . Also geh da hinten. ThirdPerson-Charakter, gehe zum Event Graph. Und wir wollen etwas tun, aber unsere simulierte Hand überlappt sich, also finde etwas leeren Raum. Und mit Ihrer hier ausgewählten simulierten Hand können Sie mit der rechten Maustaste darauf klicken. Wir fügen ein Ereignis hinzu, wenn wir anfangen, diese Komponente zu überlappen. Ich gehe in unsere Grafik hier unten , weil es will, das ist in Ordnung. Was wir also tun werden, ist aus unserem anderen Schauspieler heraus, wir ziehen uns in die Länge und wir werden das Netzmaterial wechseln. Und ich kann einfach Änderungen eingeben oder anfangen, Änderungen einzugeben. Und es ist klug genug zu wissen, hey, versuchen Sie, die Funktion des Änderungsnetzmaterials zu finden , die sich in Ihrer Funktionsbibliothek befindet. Ja, das tut es. Beachten Sie nun, dass dies ausgeben kann, diese simulierte Hand war etwas überlappt, das sie und andere Schauspieler ausgeben kann. Und in diesem Fall wird eine Actor-Objektreferenz ausgegeben . Diese Aktoreingabe für das Änderungsnetzmaterial versucht , eine Aktorobjektreferenz aufzunehmen. Ist das nicht praktisch. Wir werden also herausfinden, ob es sich anderen Schauspieler überschneidet. Und dann werden wir das Material ändern. Ich werde das Material so ändern, dass es einfach Gold ist. Gold lebt im R-Stern-Inhalt. Und was wir hier tun werden, ist, dass wir einen Branch-Knoten einbauen. Ich tippe eine Filiale ein. Wenn Sie das löschen und hier herausziehen, handelt es sich alternativ das löschen und hier herausziehen, um eine boolesche Ausgabe. Wenn ich hier einen Zweig eintippe, werden beide Drähte an einem angeschlossen. Es ist ziemlich praktisch. Dann drucken wir einfach einen String. Ich bringe ein paar von Control C, Control V. Und das werden unsere Skripte sein. Also hier oben, wenn das erfolgreich ist, drucken wir Cold In aus. Hier. Wir geben keine Änderung ein. Ordnung, kompilieren und speichern Sie das. Lass uns einen Dramatiker verraten. also auf die Schaltfläche R plus klicke, setze ich unser Debug-Objekt als unseren ThirdPersonCharacter , der in gespawnt ist, und erweitert es nur geringfügig. In Ordnung, wenn ich vor meinen Charakter schaue, ist da diese rote Kugel, das ist meine simulierte Hand. Du kannst sehen, wie es sich dreht, sich zusammen mit meinem Charakter dreht. Wenn ich also den Stuhl überschneide, sieht man, dass es das Material ziemlich süß verändert hat. Dort wurde das Material geändert, und unser Zylinder ändert es auch dort. Das ist eine gute globale Funktion, wenn man so will. Wir können es hier in unserem ThirdPersonCharacter verwenden. Aber lassen Sie uns auch zeigen, wie Sie dies in Ihrem Level Blueprint verwenden können. Denn was bringt es , eine Funktionsbibliothek zu erstellen , wenn Sie von nirgendwo auf die darin enthaltenen Funktionen zugreifen können . Gehen Sie zurück zu unserer Registerkarte „ Leveltests-Karte“ hier drüben. Öffnen wir den Level-Blueprint und ich bringe einfach den Schlüssel ein. Jede Eingabetaste tut dies. Ich klicke mit der rechten Maustaste in einen leeren Bereich. Versuchen wir es mit der Sieben-Taste. Und es wird denken, dass ich die Sieben-Taste für etwas anderes verwende , weiß ich? Übrigens, wenn Sie hier unter Ihr Gras klicken und Gras ausdehnen, zeigt es Ihnen, welche verschiedenen Ereignisse Sie dort haben. Also für die Sieben-Taste werde ich hier rausziehen und nach Change-Mesh-Material suchen. Und noch einmal, weil diese Funktion in unserer erstellten Funktionsbibliothek existiert und wir sie im Level Blueprint finden können. Klar. Und ich muss hier einen Schauspieler zur Verfügung stellen. Wählen wir also einen unserer Schauspieler aus. Ich werde sicherstellen, dass ich meinen Zylinder hier ausgewählt habe . springe zurück in meinen Level-Blueprint halte die linke Maustaste gedrückt. Stecken wir das da rein. Und ich ändere das Material hier. Gehen wir mit Kopfsteinpflaster. Etwas Kopfsteinpflaster. Ordnung, kompilieren, speichern. Lass uns spielen. Setze unser Debug-Objekt auf unser Level. Bring unsere Karte zurück. Und natürlich kann ich diese beiden anfassen. Sie werden immer noch das Gold wechseln. Wenn ich jetzt den Zylinder hier berühre, würde das zu Gold werden, denn das ist alles, was in meinem Character Blueprint eingerichtet ist . Aber wenn ich hier die Sieben-Taste drücke, können wir sehen, dass wir daraus Kopfsteinpflaster machen. Also eine großartige globale Funktion , die wir dort geschaffen haben. Ordnung, lassen Sie uns dieses Video beenden und über die Vor- und Nachteile von Funktionen in einer Funktionsbibliothek sprechen . Nun, zu den Profis gehört, dass Sie von jedem Entwurf aus auf diese Funktion zugreifen können . Es ist eine große Zeitersparnis. Wenn es sich um eine Funktion handelt, die Sie an vielen Stellen verwenden können, müssen Sie nicht dasselbe Skript an mehreren Stellen schreiben an mehreren Stellen , mehrmals , so etwas. den Nachteilen gehört nun, dass es schwieriger ist, auf Blueprint-spezifische Daten zu verweisen, z. B. meinen Charakter-Blueprint für Dritte. Wenn ich eine Funktion wie sagen wir vielleicht eine Modify Health Funktion hinzufüge , die sehr abhängig von einigen Variablen war sehr abhängig von einigen Variablen und darin lebte. Nun, diese Art von Funktion wird innerhalb dieser speziellen Blaupause besser dran sein. Oder wenn ich eine Funktion hätte, die stark von einigen Komponenten innerhalb eines bestimmten Entwurfs abhängig war stark von einigen Komponenten innerhalb eines bestimmten Entwurfs abhängig . Diese Funktion wäre in einer Blueprint-Klasse selbst besser dran einer Blueprint-Klasse selbst als in einer Funktionsbibliothek. Okay Leute, das wird alles für diesen in dieser Diskussion über Funktionsbibliotheken erledigen. Wir sehen uns alle im nächsten Video. 64. Lokale Variablen: Willkommen! In diesem Video ist es unser Ziel, uns mit dem Konzept der lokalen Variablen vertraut zu machen. In diesem Video werden wir nun aufschlüsseln, was lokale Variablen sind, wie sie sich von Klassenvariablen unterscheiden, wie wir sie erstellen und verwenden können und welche Art von Dingen Sie wissen müssen ihre Zugänglichkeit innerhalb von Bauplänen. Im letzten Video verwenden wir eine lokale Variable, eine namens Success change, eine boolesche lokale Variable. Und ich erwähnte, dass wir in einem zukünftigen Video darauf zurückkommen werden, das ist dieses zukünftige Video. Beachten Sie nun etwas über lokale Variablen. Wir können hier nur lokale Variablen innerhalb von Funktionen erstellen , innerhalb der Funktionsbibliothek, der Blueprint-Funktionsbibliothek. Wir können keine Klassenvariablen erstellen. Wir haben nur einen lokalen Variablenbereich. Also, wovon zum Teufel reden wir hier? Klassenvariablen versus lokale Variablen? Nun, um diese Diskussion zu erleichtern, habe ich meinen ThirdPersonCharacter Blueprint geöffnet. Spring rüber nach hier. Und wenn wir in unserem ThirdPersonCharacter Blueprint-Bedienfeld nachschauen , haben wir einen Variablenbereich. Dies sind Variablen, die zu unserer Charakterklasse gehören, also können wir diese Klassenvariablen aufrufen. Aber Sie werden hier im My Blueprint-Panel etwas bemerken . Wir sehen hier in der Funktionsbibliothek keine lokalen Variablen, wir sehen eine Kategorie namens lokale Variablen. Wo ist es in einem Class Blueprint, wir sehen nur einen Variablenabschnitt. Nun, um lokale Variablen sehen zu können, müssen Sie eine Funktion oder auch Ihr Konstruktionsskript ausgewählt haben. Wenn ich also hier meine Funktion Gesundheit ändern auswähle, doppelklicken wir darauf , um sie zu öffnen. Sie haben vielleicht bemerkt, dass ich, sobald ich das getan habe, jetzt Zugriff auf einen lokalen Variablenbereich hier unten habe. Wenn ich hier rausspringe, gehe zurück zu meinem Event Graph. Beachten Sie, dass die lokalen Variablen verschwinden. Es ist nicht mehr da. Ordnung, also lasst uns wieder in unsere Funktion „Gesundheit modifizieren“ eintauchen . Ordnung, lassen Sie uns nun einige der Unterschiede zwischen Klassenvariablen und lokalen Variablen besprechen . Nun, für den Anfang, wenn Sie hier im Bedienfeld „Mein Blueprint“ eine Variable erstellen , erstellen Sie eine Klassenvariable, eine, die zu dieser übergeordneten Klasse gehört. Jetzt sollte jede Variable, die Sie von einem anderen Blueprint abrufen oder festlegen möchten , eine Klassenvariable sein. Um nur ein Beispiel dafür zu geben, sagen wir in Ihrem Level-Blueprint, hatten Sie einen Verweis auf Ihren ThirdPersonCharacter und wollten Gesundheitsvariable Ihres Third-Person-Charakters ändern. Vielleicht gibt es eine Zone innerhalb des Levels, die Schaden anrichtet oder vielleicht den ThirdPersonCharacter heilt. Nun, in diesem Fall ist für den Zugriff auf unseren ThirdPersonCharacter eine Gesundheitsvariable aus dem Level-Blueprint heraus. Sie sollten sicherstellen , dass diese Gesundheitsvariable als Klassenvariable existiert. Nun können lokale Variablen innerhalb eines Funktionsgraphen erstellt werden. Lokale Variablen sind nur für die Funktion sichtbar , in der sie erstellt wurden , und nicht für andere Funktionen oder das Ereignisdiagramm. Lassen Sie uns nun weitermachen und hier in unserer Funktion „Gesundheit modifizieren“ eine erstellen . Jetzt könnte ich eine erstellen, indem ich auf diesen Plus-Button direkt hier unter der Kategorie Lokale Variablen klicke. Ich erstelle jedoch einen, indem ich mit der rechten Maustaste auf einen Pin klicke. Solange Sie versuchen, innerhalb einer Funktion zu einer Variablen heraufzustufen, haben Sie die Möglichkeit, zu einer lokalen Variablen heraufzustufen. Also klicke ich mit der rechten Maustaste hier unter meinem Klammerschwimmer Tmax. Und wenn wir mit der rechten Maustaste klicken, werden wir zu einer lokalen Variablen hochstufen, die diese Variable hier erstellt. Nennen wir das meine maximale Gesundheit. Und was Sie jetzt feststellen werden, ist, dass diese lokale Variable in keinem anderen Funktionsgraphen hier existiert, wenn ich in meine vom Spieler beschädigte FX-Funktion gehe darauf doppelklicke, diese lokale Variable kann nicht gefunden werden. Ebenso, wenn ich mit der rechten Maustaste in diese vom Spieler beschädigte Funktion klicken und nach maximaler Gesundheit suche. Es ist hier nicht verfügbar. Wenn ich zu meinem Ereignisdiagramm gehe und danach suche, sehe ich hier unten keine lokalen Variablen und entweder mit der rechten Maustaste, max, Gesundheit ist auch nicht hier. In der Tat, wenn ich kontextsensitiv deaktiviere, wird es nicht angezeigt. Diese Variable für maximale Gesundheit innerhalb der Maya-Gesundheitsfunktion ist nur für diese Funktion lokal. Und wenn Sie es hier nicht mehr sehen, können Sie auf diesen kleinen Dropdown-Pfeil klicken und es wird Ihnen zeigen, wo es sich befindet. Noch einmal. An dieser Stelle fragen Sie sich vielleicht, was der Sinn lokaler Variablen ist. Warum brauche ich sie überhaupt? Warum kann ich alle Klassenvariablen erstellen und diese lokalen Variablen verwenden um die Unordnung für Dinge zu reduzieren, die nur im Kontext einer Funktion relevant sind . Sie möchten hier keine große Liste von Klassenvariablen füllen , wenn einige tatsächlich nur innerhalb einer bestimmten Funktion benötigt werden. Aus diesem Grund ist es aus organisatorischen Gründen eine gute Idee, einfach eine lokale Variable zu erstellen , um die Dinge sauber und ordentlich zu halten. Zweitens hilft es auch, sich vor eigenen Fehlern zu schützen. Ich habe hier zwei Variablen. Ich habe Gesundheit und maximale Gesundheit, die sehr ähnlich sind. Jetzt möchte ich vielleicht sicherstellen, dass ich meine maximale Gesundheit niemals ändern kann. Es wird nur von dieser Funktion aus zugänglich sein . Nun, das ist ein guter Kandidat, um daraus eine lokale Variable zu machen, um sicherzustellen, dass ich diese Variable nicht versehentlich aus einem anderen Blueprint heraus ändere . In Ordnung, lassen Sie uns das ein bisschen weiter zeigen , indem eine brandneue Funktion für den Anfang hier in unserem ThirdPersonCharacter eine brandneue Funktion für den Anfang erstellen. In der Kategorie Funktionen fügen wir also eine neue Funktion hinzu. Ich nenne das Turbolauf, der genau das tun wird , was du denkst, dass er tun wird. Jetzt hier drin werden wir irgendeinen Verweis auf unsere Charakterbewegungskomponente bringen . Innerhalb unserer Charakterbewegungskomponente haben wir Zugriff auf einen Parameter, der als maximale Gehgeschwindigkeit bezeichnet wird. Wir wollen etwas mit unserer maximalen Gehgeschwindigkeit machen. Also trocknet es hier oben aus und bringt einen Hinweis auf unsere maximale Gehgeschwindigkeit. Wir erhalten diesen Wert, der hier standardmäßig bei 500 beginnt. Dann ziehen wir ein Hier heraus, den Plus-Knopf, wir fügen etwas hinzu. Dann stellen wir unsere maximale Gehgeschwindigkeit ein. Ziehen Sie sich also erneut aus unserer Charakterbewegung heraus stellen Sie die maximale Gehgeschwindigkeit ein. Wir werden so gehen und so. Jetzt wollen wir eine lokale Variable hinzufügen, um zu bestimmen, wie viel Geschwindigkeitsschub wir unserem Charakter geben wollen, wenn wir schrecklich laufen. Das ist es also, was ich tun werde. Ich werde den Wert gleich hier hinzufügen, 2000er. Und dann klicke ich mit der rechten Maustaste auf diesen Pin. Wir werden daraus eine lokale Variable machen, also werden wir das fördern. Und wir werden sehen, wie das hier unten bevölkert ist. Geben wir ihm einen Namen namens Turbo Speed Boost. Und jetzt können Sie sehen, weil wir es mit dem bereits festgelegten Wert beworben haben , wird es diesen Wert auch genau dort festlegen. Das ist also ein praktischer kleiner Trick, den ich sehr mag. Ordnung, kompilieren wir das. Stellen Sie sicher, dass das alles nach Skippy aussieht. Dann lasst uns in unser Event-Diagramm springen. Und ich werde hier etwas leeren Platz finden. Und wir werden Input-Ereignisse einleiten. Mal sehen, was wir hier zur Verfügung haben. Jetzt haben wir Zugang zu vielen verschiedenen Dingen. Ich klicke mit der rechten Maustaste. Wir machen die beiden Schlüssel. Klar. Lassen Sie uns die Eingabe vornehmen oder die Tastatur eingeben, um genau dort zu sein. Ich bringe zwei Schlüssel mit. Daraus ziehen wir unseren Terminallauf per Drag & Drop. Und wenn wir den Schlüssel loslassen, wollen wir unsere Charakterbewegungskomponente so einbringen . Und dann ziehen wir los machen eine weitere Einstellung, maximale Gehgeschwindigkeit. Denken Sie daran, dass der Standardwert 500 war Setzen wir ihn also auf 500 zurück , sobald wir die beiden Schlüssel loslassen. Das wird also unser Turbo-Run-Skript sein. Beachten Sie also, dass hier schreckliche Run-Funktionen vorhanden sind. Es hat diese lokale Variable in sich. Wir können darauf doppelklicken, das wird in diese Funktion springen. Wir haben diese Turbogeschwindigkeit, Boost, lokale Variable. Ordnung, jetzt lass uns weitermachen und das mal spielen. Ich werde hier kompilieren, speichern und spielen, unser Debug setzen. Widersprechen Sie unserem ThirdPersonCharacter. Wir können gut herumlaufen und gut aussehen. Wenn ich jedoch die beiden Tasten drücke, zoomen wir einwandfrei. Wir laufen schrecklich und ich lasse es los und ich werde langsamer. Um es hier zusammenzufassen, können Sie innerhalb des Diagramms nach lokalen Variablen suchen und diese finden , dass sie erstellt wurden. Dies ist ein schrecklicher Lauf hier konnten wir nach dieser lokalen Variablen suchen und sie finden. Sie können im Ereignisdiagramm des Blueprints, in dem sie erstellt wurden, nicht nach lokalen Variablen suchen und diese finden Ereignisdiagramm des Blueprints, in dem . In der Ereignisgrafik hier können wir diese lokale Variable also nicht finden. Sie können hier auch nicht nach dieser lokalen Variablen suchen und diese finden , wenn es sich um eine lokale Variable handelt. Sie können nicht finden, dass Sie, wenn Sie in einer anderen Schleife, einer anderen Blaupause, danach suchen , auch wenn Sie hier einen Verweis auf unseren ThirdPersonCharacter haben Sie hier einen Verweis auf unseren ThirdPersonCharacter keinen Verweis darauf finden können. Nun noch ein letzter Hinweis zu Klassenvariablen. Dies ist erwähnenswert, wenn Sie in einem Blueprint auf diese Klassenstandardschaltfläche klicken. Auf jede Blueprint-Klasse haben Sie Zugriff, leider nicht auf Klasseneinstellungen, Klassenstandard. Sie haben Zugriff auf alle Ihre verschiedenen Klassenvariablen. Hier sind sie direkt drüben im Bereich „Mein Blueprint“. Gesundheit kann springen und so weiter. Drüben in unserem Details-Bereich finden wir sie auch hier. Beachten Sie, dass, wenn Sie es hier ändern würden, sagen wir, dass wir unsere Gesundheit von zehn auf 100 ändern würden, Enter. Und jetzt sollte ich hier meine Gesundheitsvariable auswählen. Es wird diesen Standardwert aktualisieren. Es spielt also keine Rolle , wo Sie es ändern. Sie können Ihre Variablenwerte von hier aus ändern oder der Abschnitt Klassenstandardwerte dachte, ich würde auch darauf hinweisen, oder? Das macht alles für dieses Video. Wir sehen uns im nächsten. 65. Funktionen Dinge zu wissen: Willkommen zurück. In diesem Video ist es unser Ziel, einige wirklich gute Dinge über die Arbeit mit Funktionen zu behandeln . Nun, das sind Dinge, die nicht unbedingt ein vollständiges Video rechtfertigten, aber bei der Diskussion des Themas Funktionen auf jeden Fall angesprochen werden sollten . Für dieses Video werde ich eine Vielzahl von Blaupausen öffnen , ThirdPersonCharacter Level Blueprint wie. Also beginne ich mit meinem ThirdPersonCharacter Blueprint-Inhalt, Third-Person-Blueprints. Das erste, worauf wir hier eingehen werden , ist das Debuggen einer Funktion. Nun, das wird etwas sein , dem ich später im Kurs ein ganzes Modul widmen werde, aber es ist auch hier erwähnenswert. Also hier habe ich ein sehr einfaches Skript. Wenn ich die zwei Tasten drücke, lasse ich meinen Charakter furchtbar laufen. Und wenn ich es loslasse, kehre ich zu meiner normalen Bewegungsgeschwindigkeit zurück. Jetzt können Sie sehen, dass ich einen Kommentar zu diesem Knoten hinzugefügt habe, indem rechten Maustaste klicken und einen Knotenkommentar hinzufügen Sie mit der rechten Maustaste klicken und einen Knotenkommentar hinzufügen. Wenn ich F9 drücke, fungiert F9 hier als Umschalter und Sie können sehen, wie es diesen Tooltip ändert. Ich kann einen sogenannten Breakpoint hinzufügen, der es dem Code ermöglicht , genau hier an dieser Stelle zu stoppen, sobald wir diesen Punkt in der Ausführungskette erreicht haben. Sie können sich also vorstellen, wenn Sie eine ganze Reihe von Knoten miteinander verkabelt hätten , würde dies das Spiel einfrieren, sobald Sie diesen Punkt erreichen. Warum würdest du das jemals tun wollen? Nun, manchmal können unerwartete Konsequenzen in Ihren Skripten auftreten. Es passiert etwas , von dem du nicht beabsichtigt hast, was auch immer zu passieren. Und Sie müssen das Spiel einfrieren, den Code durchgehen und Ihr Skript durchgehen, um herauszufinden, was passiert. Das ist die Verwendung eines Breakpoints. Und ich werde nur kurz zeigen , wie das dein Spiel einfrieren kann. Also drücke ich hier den Play-Button. Beachten Sie, dass ich meine Breakpoints hier habe. Sie können auch mit der rechten Maustaste klicken und einen Haltepunkt entfernen , einen Haltepunkt deaktivieren oder diesen Haltepunkt ein- oder ausschalten. Los geht's. Planet. Ich setze mein Debug-Objekt auf meinen ThirdPersonCharacter und bringe sie wieder in mein Spielfenster. Sobald ich die beiden Tasten drücke, springt es sofort zu diesem Skript und friert das Spiel hier ein. Von hier aus, wenn dieser Knoten ausgewählt ist, können Sie sehen, dass dieser riesige rote Pfeil so aussieht , ja, das ist der Typ, den wir auswählen wollen. Sie haben hier oben eine Reihe von Schaltflächen, mit denen Sie entscheiden können, was Sie tun möchten. Von hier aus können Sie den aktuell aktiven Knoten suchen , der derzeit ist. Wir können in diesen Knoten treten und was das bewirken wird , wird mich in die Funktion selbst eintauchen lassen. Lassen Sie mich einfach zurück zu meinem Event-Diagramm gehen. Ich könnte übertreten, was bedeutet, wenn ich hier noch ein paar Knoten hätte, könnte es mich davon abhalten, zum nächsten überzugehen. Und dann soll dieser hier diesen Knoten verlassen, um im übergeordneten Graphen ausgeführt zu werden. Also nochmal, ich habe einen ganzen Abschnitt von Videos in Kürze, über den wir sprechen werden, aber Breakpoints, du kannst sie zu jedem Knoten hinzufügen. Ich werde dieses Jahr aufhören, indem ich einfach auf den Knoten klicke und mit der F9-Taste ein - und ausschalte. Ordnung, als Nächstes haben Sie für jede Ihrer Funktionen , die Sie im Bereich Details erstellt haben, die Möglichkeit, einige Schlüsselwörter hinzuzufügen. Auf diese Weise können Sie, wenn Sie hier mit der rechten Maustaste auf eine leere Stelle Wenn Sie hier nach einem Ihrer Schlüsselwörter suchen, wird die Funktion gefunden , nach der Sie suchen. Also könnten wir hier etwas Verrücktes machen. Ich füge hier Schlüsselwörter wie lila hinzu. Und ich werde sie mit einem Komma-Affen-Komma-Geschirrspüler trennen . Und wenn du diesen Witz verstehst und woher er kommt, ist mein Hut weg von dir. Speichern kompilieren. Und jetzt, wenn Sie eine Suche nach Lila mit der rechten Maustaste durchführen, findet es die Funktion schrecklich laufen. Affe, finde diese Funktion genauso wie die Spülmaschine. Und ich tippe einfach ein Gericht ein und es findet es schon. Beachten Sie nun, dass dies nicht nur innerhalb des Blueprints funktioniert , in dem diese Funktion erstellt wurde, sondern wenn ich zu meinem Level-Test-Map-Level-Blueprint übergehe, solange Sie hier einen Verweis auf diesen Blueprint haben , Ich kann mit meinem ThirdPersonCharacter Blueprint sprechen. Ich kann mich hier rausziehen. Tippe lila ein, findet die Funktion Affe oder Spülmaschine. Also los geht's. Stichwörter. So können Sie eine Funktion mit einem oder mehreren Schlüsselwörtern Ihrer Wahl finden. Lassen Sie uns als Nächstes dieses kompakte Node-Titelfeld untersuchen , das Ihnen für alle von Ihnen erstellten Funktionen zur Verfügung steht . Dadurch können Sie Ihren Node ein wenig vereinfachen. Ich benutze das nicht oft, aber vielleicht arbeiten einige von Ihnen gerne so. Also werde ich meinen Node-Titel hier so ändern, dass er etwas anderes als vom Spieler beschädigte Effekte ist. Ich werde es vereinfachen und einfach Spieler-FX einsetzen. Und sobald ich die Eingabetaste drücke, wird dieser Titel auf Wiedersehen gehen, ebenso wie all diese Pin-Labels. Also los geht's und drücken die Eingabetaste. Sie können jetzt sehen, dass ich diesen Knoten in eine vereinfachte Version umgewandelt habe. Player-Effekte ist jetzt der kompakte Node-Titel dieses Knotens. Und all diese Anstecketiketten sind weg. Jetzt können Sie immer noch sehen, nach welchen Datentypen diese Pins suchen, indem Sie einfach mit der Maus zu ihnen fahren. Das wird nach einem Objekt, einem Vektor sowie nach einer Senkenkomponente suchen. Vielleicht werden einige von Ihnen es vorziehen, auf diese Weise zu arbeiten. Ich tue es jedoch nicht, aber ich dachte, es würde es sowieso rauswerfen. Als Nächstes möchte ich darüber sprechen, was dieses Zugriffsspezifiziererfeld für eine von uns erstellte Funktion bewirkt. Um dies zu tun, muss ich hier jedoch eine Child-Klasse unseres ThirdPersonCharacter erstellen eine Child-Klasse unseres ThirdPersonCharacter um dem wirklich gerecht zu werden. Nun, Klassenvererbung ist ein Thema, über das ich später im Kurs sprechen werde. Um diesen Zugriffsspezifizierer zu zeigen , muss ich dies jetzt tun. Zurück hier in meinem Inhaltsbrowser ich mit der rechten Maustaste auf meinen ThirdPersonCharacter und erstelle eine Child Blueprint-Klasse. Und ich lasse diesen Namen und drücke einfach die Eingabetaste. Und was ich dann tun werde , ist zurück zu meinem ThirdPersonCharacter zu gehen und über diesen Zugriffsspezifizierer zu sprechen . Wir haben hier also drei verschiedene Einstellungen: öffentlich, geschützt und privat. Dies bestimmt also , welche Blueprints Zugriff auf eine Funktion erhalten können. In diesem Fall ist unsere modifizierte Gesundheitsfunktion public eine Standardeinstellung. Jedes andere Objekt kann diese Funktion aufrufen , solange wir einen Verweis darauf haben, was bedeutet, dass ich diese Funktion zum Ändern der Gesundheit hier in diesem Blueprint verwenden kann , den wir mit ihm erstellt haben. Ich könnte auch wieder über unseren Level-Blueprint darauf zugreifen, solange du einen Verweis auf deinen ThirdPersonCharacter hast , kann ich meinen Gott finden, wenn Phi Health da ist. springe zurück zu meinem ThirdPerson-Charakter. Lassen Sie uns jetzt r ändern, Gesundheit von einer Öffentlichkeit modifizieren, die zu geschützt ist. Das bedeutet nun, dass die Funktion nur vom aktuellen Blueprint aufgerufen werden kann , also von unserem ThirdPersonCharacter Blueprint, sowie von allen Blueprints, die vom aktuellen Blueprint abgeleitet sind. Kann ich es hier finden? Ja, ich kann Drag & Drop ziehen. Ich kann dort darauf zugreifen. Nutze es dort. Wenn ich zu meinem Kind ThirdPersonCharacter springe und zum Ereignisdiagramm springe, klicke ich mit der rechten Maustaste und suche nach Gesundheit ändern. Da ist diese Funktion. Ich kann es auch hier finden. Dies zeigt, dass unsere übergeordnete Klasse hier unser bp ThirdPersonCharacter ist. Also ja, Sie können es innerhalb des ursprünglichen Blueprints verwenden , den Sie erstellt haben. Sie haben es in der oder der untergeordneten Klasse erstellt. Zum Schluss kehren wir zu unserem bp ThirdPersonCharacter zurück. Wählen Sie unsere modifizierende Gesundheit. Und lassen Sie uns das von geschützt zu privat ändern. Das bedeutet nun, dass die Funktion nur innerhalb des aktuellen Blueprints aufgerufen werden kann . Also ja, ich könnte das hier per Drag & Drop reinziehen. Ich könnte diese Funktion aufrufen. Wenn ich jedoch zu meiner Level-Testkarte gehen würde, die hier herausgezogen wurde , MOD wenn Phi Health suchen würde, kann ich nur diese reine Funktion finden. Denn wenn ich in meinem ThirdPersonCharacter zurückblicke, denke daran, dass ich derzeit zwei Versionen der Modify-Gesundheitsfunktion habe . Die Modify Health pure ist derzeit so eingestellt, dass sie auf den Spezifizierer public zugreift, was bedeutet, dass ich sie im Level Blueprint finden kann. Modify Health ist derzeit jedoch als privat gekennzeichnet, was bedeutet, dass ich es hier nicht finden kann. Gesundheit ändern? Nee. Wenn ich jetzt zu meinem Kinderentwurf gehe, können Sie sehen, dass dies immer noch da draußen ist und das liegt daran, dass es noch da draußen war , bevor ich diesen Zugriffsspezifizierer auf privat geändert habe. Wenn ich jedoch zu meinem Kind zurückkehren sollte, löschen Sie dies, klicken Sie mit der rechten Maustaste, suchen Sie nach Gesundheit ändern. Ich kann es nicht mehr finden. Also nur ein kleiner Tisch da auch. Der Zugriffsspezifizierer ist also öffentlich, geschützt und privat. Als Nächstes werde ich zeigen, was diese Checkbox für den Aufruf im Editor bewirkt. Aber um das zu tun, werde ich hier eine brandneue Funktion erstellen . Ich klicke auf diesen Plus-Button. Und ich nenne das meinen Supersprung. Innerhalb dieser Funktion , die ich erstelle. Ich werde einfach den Typ In Launch-Charakter abziehen. Und das einzige, was ich hier tun werde, ist unsere z-Geschwindigkeit auf 2000 zu ändern . Jetzt werden Sie feststellen, dass unsere Funktion hier nur mit dieser Startcharakterfunktion selbst identisch ist . Aber um diesen Anruf in der Checkbox des Editors zu zeigen, wollte ich etwas Supereinfaches machen. Wenn diese Funktion erstellt wurde, wählen Sie diese aus und klicken Sie auf dieses Kontrollkästchen für den Aufruf im Editor, was uns das ermöglicht, auch hier zu kompilieren und zu speichern. Kehren wir zu unserem Level-Editor zurück. Ich werde mich vergewissern, dass meine drei Punkte hier ausgewählt sind. Ich werde in einem ausgewählten Ansichtsfenster spielen. Ich klicke auf Play. Jetzt spiele ich in meinem ausgewählten Ansichtsfenster. Ich wähle meinen ThirdPersonCharacter aus. Und ich könnte nach Super Jump suchen. Und wir können unter der Standardkategorie sehen, dass ich diesen Super-Jump-Button habe. Wenn ich darauf klicke, wird diese Funktion einfach aufgerufen. Jetzt werden Sie feststellen, dass ich im BP ThirdPersonCharacter selbst nur diese Funktion erstellt habe. Ich habe keine Eingabetaste, um diese Funktion tatsächlich aufzurufen, aber das ist eine großartige Möglichkeit, die Funktionalität einfach ohne Eingabetasten oder ähnliches zu testen die Funktionalität einfach ohne Eingabetasten . Sie können einfach testen, was es tut, sofort. Jetzt gibt es hier ein kleines Problem, über das Sie Bescheid wissen sollten, und das ist es auch. Beachten Sie, dass mein Supersprung, lass mich hier aufhören zu spielen. Beachten Sie, dass meine Funktion hier keine Ein- oder Ausgänge hat. Wenn ich so etwas wie vom Spieler beschädigte Effekte auswählen sollte, kannst du sehen, dass ich hier einige Eingaben habe. Ich habe keine Ausgaben zu diesem, aber ich könnte etwas zurückgeben. Klicken wir darauf und kehren zurück. Und wir könnten den angehängten Spawn-Emitter zurückgeben. Wir ziehen das dort per Drag & Drop so. Wenn ich nun meine Player-Schadens-Affekt-Funktion übernehmen sollte, klicke ich auf diesen Aufruf in, Editor-Checkbox kompilieren, speichern. Lass uns wieder reinspringen und spielen. Wähle meinen ThirdPersonCharacter aus und scrolle weiter nach unten. Ich werde diese Knöpfe noch einmal finden, los geht's. Unter der Standardkategorie finde ich meinen Super Jump Call Editor Button. Ich finde jedoch nicht dieselbe Schaltfläche für die Schadenseffekte von Spielern obwohl ich dieses Kästchen aktiviert habe. Warum ist das jetzt so? Nun, ich kenne die genaue Antwort darauf nicht, aber ich nehme an, weil es ziemlich schwierig wäre , eine Funktion manuell aufzurufen , die auf einigen Daten angewiesen ist, die in die Funktion eingegeben werden müssen selbst , um richtig zu funktionieren. Als nächstes möchte ich darauf hinweisen, dass Sie für jede Ihrer erstellten Funktionen im Bedienfeld Mein Blueprint, wenn Sie mit der rechten Maustaste darauf klicken, die Möglichkeit haben, die Funktion in ein Ereignis zu konvertieren. Was zum Teufel heißt das überhaupt? Nun, lasst uns in unseren schrecklichen Lauf eintauchen , eine Veranstaltung hier. Und das kann ich tun, indem ich einfach darauf doppelklicke. Es öffnet das Funktionsdiagramm. Und beachte, dass diese Funktion einfach die maximale Gehgeschwindigkeit meiner Charaktere nimmt So schnell bewegen sie sich. Es wird dort einen kleinen Booster hinzufügen und diesen zusammenfügen , um unsere neue Walk Speed, unsere neue Bewegungsgeschwindigkeit, zu schaffen . Beachten Sie also dieses Setup genau hier. Ich gehe zurück zu meinem Event-Diagramm. Und was ich tun werde, ist, mit der rechten Maustaste auf mein Terminal zu klicken und eine Funktion auszuführen. Wir werden das in ein Ereignis umwandeln. Und wenn ich das tue, wird es im Grunde all den Code herausbrechen , der sich in dieser Funktion befand und meine Charaktere modifiziert hat, Max, Walk, Speed und an allen Stellen im Ereignisdiagramm selbst. Beachten Sie nun, dass unsere schreckliche Run-Funktion hier in unserem Funktionsbereich nicht mehr existiert. Stattdessen sehen wir ein benutzerdefiniertes Ereignis namens turbo run mit dem gleichen Namen. Jetzt muss dies aufgerufen werden damit dieses Skript ausgeführt werden kann. Also etwas, auf das Sie hier hinweisen sollten, Sie können dies nicht tun, wenn die Funktion Ausgänge hat. Und damit meine ich, lassen Sie uns hier auf unsere Funktion „Gesundheit ändern“ doppelklicken . Diese Funktion hat einen Ausgang. Wenn ich also versuche, mit der rechten Maustaste darauf diese Funktion in ein Ereignis zu konvertieren, erhalten Sie eine Warnung, dass Sie das nicht tun können. Also dachte ich, ich würde darauf hinweisen, während wir hier sind. Also, warum würdest du jemals so etwas tun? Warum würdest du jemals eine deiner Funktionen in ein Ereignis umwandeln ? Nun, vielleicht ist es einfacher für Sie, Ihr Drehbuch auf diese Art von ausgebrochener Weise zu lesen . Oder vielleicht haben Sie entschieden, dass dies besser als einmaliges Skript ist besser als einmaliges Skript als Funktion, von der Sie sich vorstellen könnten, dass Sie mehrere Stellen verwenden möchten. Jetzt noch ein paar Dinge hier. Bevor wir dieses Video abschließen. Denken Sie daran, dass Sie kompilieren müssen , um diesen Knopf hier oben zu drücken. Sie müssen kompilieren, um auf neue Funktionen aus anderen Blueprints zuzugreifen. Wenn Sie hier eine neue Funktion hinzugefügt haben, haben Sie eine neue erstellt und wollten beispielsweise über Ihren Level-Blueprint darauf zugreifen. Sie müssen zuerst kompilieren, bevor Sie das tun können. Eine weitere erwähnenswerte Sache ist, dass Sie Funktionen innerhalb anderer Funktionen haben können , die Sie erstellen. Also habe ich das hier gezeigt, indem ich eine von mir erstellte Funktion namens Super jump hatte und diese Funktion innerhalb dieser Funktion hatte. Und zu guter Letzt können Sie für Funktionen hier keine latenten Knoten haben. Und damit meine ich, ich spreche von Delay-Knoten, die mit der rechten Maustaste klicken. Und ich werde hier nur nach einer Verzögerung suchen. Kann hier anscheinend nicht einmal hinzugefügt werden. Im Ereignisdiagramm klicken Sie jedoch mit der rechten Maustaste auf Verzögerung. Sie können eine Verzögerung oder eine abrufbare Verzögerung finden. Sie können auch keinen Knoten hinzufügen, der als Timeline-Knoten bezeichnet wird. So wichtige Dinge, an die man sich für Funktionen erinnern sollte, richtig Leute, das wird alles für dieses Video tun. Gute Dinge, die man wissen sollte. Wir sehen uns im nächsten. 66. Makros Übersicht: Ordnung, in den nächsten Videos werden wir unsere Aufmerksamkeit auf das Thema Makros richten. Und speziell in diesem Video ist es unser Ziel, zu lernen, was Makros sind, und zu diskutieren, wie sie Funktionen ähneln oder sich unterscheiden. Wir werden auch einige gängige bereits existierende Makros untersuchen und wie sie aufgebaut sind. Und schließlich werden wir darüber sprechen, wo wir Makros in Blaupausen finden können . Also zuallererst, was ist ein Makro? Nun, ein Makro ist im Wesentlichen eine Sammlung von Knoten, die etwas tun, das in dieser Hinsicht einer Funktion ähnelt. Und ich habe ein paar Makros direkt vor mir, in meinem Level Blueprint. Jetzt bietet unreal eine ganze Reihe vorgefertigter Makros , die Sie verwenden können. Es geht um die Standardmakros im Engine-Inhalt, die ich Ihnen hier kurz zeigen werde. Sie können Ihre eigenen Makros innerhalb einer Blueprint-Klasse, eines Level-Blueprints oder eines Blueprint-Makros erstellen innerhalb einer Blueprint-Klasse, eines Bibliothek. Und in den nächsten Videos werden wir erneut zeigen, wie das alles geht. Lassen Sie uns zunächst einige gängige Makros untersuchen. Und wie Sie zuvor sehen, haben Sie ein paar Makroknoten. Eines ist das Compare-Float-Makro, das andere ist in, ist ein gültiges Makro. Vor einem Moment habe ich erwähnt, dass ein Makro im Wesentlichen eine Sammlung von Knoten ist , die etwas Ähnliches wie eine Funktion ausführen. Und wir können dies sehen, indem wir hier auf eines unserer Makros doppelklicken . Und ich doppelklicke hier einfach auf Compare Float. Dabei öffne ich eine neue Registerkarte namens Standard-Makros. Dies ist eine Makrobibliothek , die aus einer Reihe von Makros besteht , die hier in Unreal bereits vorhanden sind. Beachten Sie, dass wir in dieser Makrobibliothek auch eine Registerkarte Float vergleichen geöffnet haben. Und das zeigt alle Knoten, die miteinander verbunden sind, um dieses Vergleichs-Float-Makro zu erstellen. Auf der rechten Seite können wir sehen, dass, wenn wir hier unsere Eingabe auswählen, wir sehen können, dass dieser spezielle Makrovergleichs-Float zur mathematischen Float-Kategorie gehört. Wenn ich also hier in unserer Sammlung von Makros, Mathe Float, einen Drilldown durchführen in unserer Sammlung von Makros, Mathe Float, würde, können wir sehen, dass es unser Compare-Float-Makro gibt. Jetzt können Sie all dies erweitern, um all die verschiedenen Makros anzuzeigen , die in dieser Makrobibliothek vorhanden sind . Der Grund, warum ich darauf hinweise , ist, dass ich hier zu meinem Level-Blueprint oder einem anderen Entwurf zurückkehren würde . Und einfach mit der rechten Maustaste klicken und etwas leeres Feld und ich werde jetzt nach Compare Float suchen. Wir können sehen, dass dies die Kategorie ist , in der sich dieses spezielle Makro befindet, die mathematische Float-Kategorie, wie hier angegeben. Mathe schwebt. Lassen Sie uns nun schnell auf einige Makro- und Funktionsähnlichkeiten und Unterschiede stoßen einige Makro- und Funktionsähnlichkeiten . Ausgehend von den Ähnlichkeiten sind beide Makros in Funktionen zeitsparend, sind beide Makros in Funktionen da sie häufig verwendete Knotensequenzen mit Ein- und Ausgängen sowohl für die Ausführung als auch für die Datenübertragung speichern können Knotensequenzen mit Ein- und Ausgängen . Anstatt also zu sagen, diese Knotenfolge an mehreren Stellen in Ihrem Diagramm zu platzieren , können Sie einfach ein einzelnes Makro erstellen oder eine Funktion kann dies ähnlich tun. Und das spart Ihnen Zeit, weil Sie diese Knoten Ähnlichkeiten zusammenfassen. Sie können die Funktionalität eines Makros oder einer Funktion an einer zentralen Stelle, einem Graphen, bearbeiten . Genau hier haben wir unser eigenes Vergleichs-Float-Diagramm. Sie können die Funktionalität hier bearbeiten und diese Änderung wird auf jedes andere Makro übertragen , das Sie in einem anderen Blueprint platziert haben. Eine weitere Ähnlichkeit besteht darin , dass sie wiederverwendbar sind. Sie können dieses Makro in vielen anderen Blueprints wiederverwenden. Sie können es in mehreren Blaupausen haben. Sie können dasselbe Makro innerhalb desselben Blueprints verwenden. Außerdem erlauben Makros und Funktionen lokale Variablen und wir haben ein ganzes Video, in dem über lokale Variablen gesprochen wird. Aber im Wesentlichen ist eine lokale Variable eine Variable, die nur von dieser einzelnen Funktion referenziert und verwendet wird, oder in diesem Fall ein Makro. Jetzt besteht der Unterschied darin, dass Makros mehrere Eingangs- und Ausgabeausführungspins haben können Und das können wir hier in unserem Vergleichsfloat-Makro sehen. Wenn ich diesen Einstiegsknoten hier auswähle, check this out. Wir haben einen Ausführungseingang, aber wir haben drei Ausführungsausgangs-Pins. Und wenn das hier aus unseren Inputs und Outputs nicht klar genug ist, schauen wir zurück auf den letzten Knoten, zurück in unserem Level-Blueprint, schauen wir uns das an. Wir haben einen Ausführungseingang und drei Ausgänge. Jetzt können Sie diese übrigens benennen. Wenn ich also hier zu unseren Standardmakros zurückkehre, können Sie eingeben, wie dieser Name lautet, muss nicht genau sein. Sie können es als Symbol, Symbole und Buchstaben setzen , was auch immer Sie dort platzieren möchten. Ein weiterer Unterschied, und das ist der Schlüssel, das ist sehr viel Qi Makros können latente Knoten enthalten, während Funktionen dies nicht können. Wenn ich also hier noch einmal darüber spreche, zurück zu meinem Level-Blueprint zu springen, lass mich hier einfach nach rechts scrollen. Ich bin nur in meinem Event Graph, also befinde ich mich nicht in einem Makro - oder Funktionsgraphen selbst. Diese Arten von Knoten hier, latente Knoten, solche mit diesem kleinen Uhrsymbol. Wenn ich mit der Maus über diesen Knoten fahre, diese Verzögerungsfunktion, heißt es sogar im Tooltip ganz oben, dass es sich um einen latenten Knoten handelt. Das ist es, was dieses Uhrensymbol bedeutet. Das ist ein zeitkritischer Knoten. Jeder späte Knoten wie dieser oder ein Timeline-Knoten. Alles, was mit Zeit zu tun hat, kann man diese nicht in Funktionen platzieren. Makros sind jedoch in Ordnung. Schließlich können Makros nicht aus anderen Blueprints aufgerufen werden. So wie es eine Funktion kann. Nur um das schnell zu demonstrieren. Wenn ich hier auf meinen Third-Person-Charakter eingehen würde, erstelle ich einfach ein schnelles temporäres Makro. Ich nenne das meine Zeitarbeitskraft. Ich nenne es Makro-Temp. Wie wäre es mit der Makro-Temp? Ich werde das kompilieren. Und wenn ich dann in meinem Level-Blueprint finde, habe ich meine vier Schlüssel Wenn ich das herausziehen sollte und ich jetzt nach Makros suche, kann ich es nicht finden. Ich kann das nicht finden, wohingegen ich so etwas wie meine Supersprungfunktion finden könnte . Super Sprung. Da ist es. Sie können also keine Makros, die sich in einem anderen Blueprint befinden, aus einem anderen Blueprint aufrufen . Ordnung, also wo findet ihr alle Makros in unreal? Nun, hier gibt es eine existierende Makrobibliothek. Wir haben unsere Standardmakros. Nun, wo gibt es das in unserem Inhaltsbrowser? Wenn ich hier zu unserem Level-Tab zurückkehre, musst du sicherstellen, dass du deinen Show-Engine-Inhalt hier überprüft hast . Und ich ging gerade unter Einstellungen Engine-Inhalt anzeigen. Und hier ist der Pfad zum All-Engine-Content-Editor-Blueprint-Ressourcenordner All-Engine-Content-Editor-Blueprint-Ressourcenordner genau dort. Und hier sind Ihre Standardmakros. Und Sie können dem Tooltip entnehmen, dass der Blueprint-Typ eine Makrobibliothek ist. Sie darauf doppelklicken, springt es einfach zurück in diesen Tab. Hier finden Sie eine ganze Reihe verschiedener Makros, die in jedem Blueprint verfügbar sind. Wo sonst findet man einige Makros? Nun, ich habe einige hier in meinem Level-Blueprint verfügbar. Wenn ich zu meinem Knotentyp-Graph in den Augen überspringe , zoomen Sie hier auf meine Flusskontrollknoten. All dies sind Flusskontrollknoten. Wir werden einen ganzen Abschnitt des Kurses haben, der sich mit Krediten zur Flusskontrolle befasst, aber das sind alles Makros. Sie werden also feststellen, dass Makros diese graue Kopfzeile haben. Das ist ein einfacher Weg , ein Makro zu identifizieren. Es hat diesen grauen Header. Und nur um zu beweisen, dass es sich um Makros handelt, wenn ich auf eines davon doppelklicke, lass mich hier einfach auf mein Gate doppelklicken. Was weißt du? Es bringt mich zurück zu meinen Standardmakros. Das ist in der Tat ein Makro. Was können wir sonst noch Makros finden? Nun, du kannst deine eigenen Makros erstellen, und das kann ich hier in unserem ThirdPersonCharacter zeigen . Wir haben ein temporäres Makro erstellt. Natürlich ist das momentan leer, aber es gibt einen Abschnitt für Makros sind Level Blueprint. Es gibt einen Abschnitt für Makros sodass Sie sie hier erstellen können. Bei jedem anderen Blueprint können Sie Makros erstellen , in denen wir das nächste Video machen werden. Also Leute, das wird alles für dieses in unserer Übersicht über Makros erledigen , wir sehen uns im nächsten Video. 67. Makros erstellen: Willkommen! Unser Ziel in diesem Video ist es, zu lernen, wo und wie ein Makro erstellt wird , und diese Unterschiede zwischen Funktionen und Makros besser zu verdeutlichen. Wir werden unser Makro so erstellen , dass es für eine Funktion unmöglich ist , sie zu duplizieren, da wir einige späte Knoten in unser Makro aufnehmen und ein Vielfaches haben Ausführung Ausgangs-Pins, was wiederum eine Funktion nicht tun kann. Wir werden hier in unserem bp ThirdPersonCharacter etwas arbeiten . Es gibt also den Weg, um das zu finden, sowie unseren Level-Blueprint. Also halte die beiden griffbereit. Wir beginnen mit unserem ThirdPersonCharacter. nun einfach zum Bedienfeld Mein Blueprint und klicken Sie im Makrobereich auf die Schaltfläche Plus. Und wir werden ein Makro namens on fire erstellen. Was für ein großartiger Name , der dich für das , was kommen wird, begeistern wird. Ordnung, wählen Sie jetzt hier Ihren Eingabeknoten aus. Schaffen Sie hier einen kleinen Abstand zwischen den beiden. Und wenn beide ausgewählt sind, füge ich einige Eingaben hinzu, die unter dem Detailbereich erscheinen und auf die Plus-Schaltfläche klicken. Jetzt füge ich eine Reihe von Pins hinzu. Als Erstes rufe ich einfach an und drücke die Eingabetaste. Jetzt können wir den Pin-Typ einstellen , den wir für eine Eingabe benötigen. Wenn wir hier klicken, haben wir eine Reihe von Variablen , aus denen wir auswählen können, sowie einen Ausführungsstift. Sie hatten diese Option nicht innerhalb einer Funktion. Wir werden hier noch ein paar hinzufügen. Klicken Sie also erneut auf diesen Plus-Button. Wir nennen das einen Effekt, eine Verzögerung. Und das wird ein Float sein. Und wenn Sie erneut auf diesen Plus-Button klicken, wird sich dies verzögern. Und dann nochmal Plus-Knopf, und wir nennen diesen Effekt drei Delay. Das werden Festwagen sein. Dann werden wir hier einige Ausgaben hinzufügen. Wir werden drei davon hinzufügen. Der erste wird Spawn-Effekt Eins genannt, und dies wird eine Ausführungsausgangspin-Ausführungsausgabe sein. Endlich genommen, dass wir zwei weitere hinzufügen werden. Sie werden beide jetzt auch Pins ausführen. Und sie werden auch Control C, Control V, Spawn-Effekt heißen . Und Spawn-Effekt drei. Stimmt's? Nachdem wir uns darum gekümmert haben, setzen wir die Knoten ein, die dazwischen gehen werden, wir brauchen wirklich nicht so viel Platz. Also ziehen wir uns aus unserem Pin heraus und holen einen Sequenzknoten ein. Dieser Knoten wird nacheinander von diesen Pins ausgelöst . Wir können hier mehrere Pins hinzufügen. Ich muss nur ein Drittel hinzufügen. Sobald wir dazu kommen, werden wir als Erster, Zweiter und Dritter in einer so schnellen Folge feuern und Dritter in einer so schnellen Folge , dass es augenblicklich erscheinen wird. Wir werden auch drei Delay-Knoten hinzufügen. Wenn Sie also die D-Taste gedrückt halten und mit der linken Maustaste klicken, können Sie bei Knoten, die d gedrückt halten und mit der linken Maustaste klicken, eine Verzögerung erzielen. Und wir werden sie einbinden wie das hier, 12.3. Und die Menge an Verzögerung ist so gut, um von außerhalb unseres Makros hier zu kommen . Was auch immer an unser Delay angeschlossen wird, oder wir können es innerhalb des Nodes selbst hart einstellen . Also werden wir so gehen. Und dann werden wir diese nach diesen Fertigstellungen so in unsere Ausgänge einbinden. Also ein sehr einfaches Makro, wir nehmen es nur in ein paar Verzögerungen auf. Wir werden dann sequentiell 12,3 aus diesen Verzögerungen herausholen und dann gehen wir zur Ausgabe. Also nur um zu zeigen, wie dieses spezielle Makro im Event Graph aussehen wird. Platzieren wir eines davon hier draußen, ziehen Sie unser Makro per Drag & Drop. Das ist der letzte Blick. Das hier bedeutet also einen Makroknoten, einen Knoten mit grauem Kopf , der so aussieht. Wir haben unsere drei Ausgangspins. Sind für Eingabepins drei Floats in einer Ausführung im Stift. Nun, es lohnt sich, hier darauf hinzuweisen, dass unser Makro einige Latenzknoten enthält, dies unsere Delay-Knoten sind. Wir sehen dieses kleine Uhrensymbol , dieses latente Symbol genau hier im Makro selbst. Ich dachte, ich weise darauf hin. Ordnung, lassen Sie uns hier unser Skript erstellen und dabei unser Makro verwenden. Also beginne ich mit einem benutzerdefinierten Event. Also rechtsklicken. Wir bringen benutzerdefinierte Ereignisse ein, um nach benutzerdefinierten zu suchen, fügen ein benutzerdefiniertes Ereignis hinzu, das ich diesen Spieler nennen werde, fängt Feuer Ausrufezeichen. Und ich werde das direkt in unser On-Fire-Makro einstecken . Und jetzt könnte ich einige Float-Variablen dazu einbauen. Mir hat die Flexibilität dieses Makros auf diese Weise gefallen. Aus Zeitgründen gebe ich jedoch nur einige Zahlen ein. Ich werde das hart codieren , wenn du so willst. 0,2 wird also unsere Effektverzögerung eins sein. Unser nächster Effekt wird 4 s sein. In unserem nächsten werden 6 s sein. Also habe ich nur auf die Registerkarte geklickt, um Sie zum nächsten Feld dort zu springen. Als nächstes werden wir von jedem dieser Effekte, die wir spawnen werden, und Effekte entfernen . Ziehen Sie das ab und geben Sie den Spawn-Schauspieler aus der Klasse ein. Jetzt werden wir tatsächlich drei dieser Knoten verwenden. Also lass mich das alles hier ein bisschen runterbringen. Spawne also Schauspieler aus dem Klassenknoten Control C, Control V und Control V. Um das hier für euch alle zu gestalten. Und der erste Schauspieler, in dem wir spawnen werden, wird Rauch sein. Das ist Blaupauseneffekt-Rauch. Das finden wir im Starter-Inhaltspaket. Auch hier kannst du verwenden, was du willst, aber ich werde zuerst rauchen. Der zweite, ich werde Funken hinzufügen , der auch in diesem Starter Content Pack enthalten ist. Und das letzte wird Feuer sein. Also ja, Rauch, Funken und dann Feuer. Jetzt müssen wir eine Spawn-Transformation eingeben. Also schnappe ich mir unsere Kapselkomponente und springe einfach zu unserem Viewport hier, unsere Kapselkomponente ist eine Sache, die unseren Charakter umgibt, also wird sie hier genau in der Mitte spawnen. Kehren wir also zu unserem Event-Diagramm zurück. Ich werde einen Verweis auf Kunst Capsule Component Drag einbringen . Wir wollen die Welt verändern. Und wir können das in alle drei Spawn-Schauspieler aus den Klassennotizen einbinden. Ordnung, wir werden ein bisschen von etwas quer über den Draht haben , aber ich hoffe, dass wir es dir nicht so schlimm machen. Das reicht nicht aus, weil wir diese laichen, aber wir wollen sie an etwas anhängen . Also werde ich unseren Spawn-Schauspieler aus dem Unterricht zurückziehen. Notieren Sie hier den Rückgabewert und ich werde sagen An Schauspieler anhängen, sorry, zwei Komponenten angehängt. Die, nach der ich hier suche, verbunden mit Komponenten. Ordnung. Jetzt wird das Elternteil hier unsere Kapselkomponente sein. Also werde ich versuchen, mich für ein Setup wie dieses zu entscheiden . Ich werde diesen Weg hierher ziehen, aber ich werde auf diesen Draht doppelklicken , um so zu gehen. Jetzt sind die Regeln hier. Ich möchte diese so einstellen, dass sie an solchen Zielen einrasten, so und so. Ordnung, und ich gehe zu Control C und Control V, diese drei Knoten so. Also warum sind dieser Typ und dieser Typ so drin, Hoppla. Das geht ins Ziel, die Eltern da rein. Das geht dort hin, das geht dort hin. Und wir können das, die Kapselkomponente, nehmen und es genau dort runter schleichen. Also, was dieses ganze Skript im Wesentlichen tun soll, ist für diese, die beim Auslösen dieses benutzerdefinierten Ereignisses gegeben werden. Wir kommen hier rein und verzögern uns noch einmal um diese Beträge, indem auf dieses Makro doppelklicken. Wir werden jedes davon tun, wenn es sich um Verzögerungsaufforderungen handelt damit wir dann den angegebenen Effekt spawnen. Also spawnen wir im Rauch als in den Funken, als im Feuer, und wir werden es letztendlich an unseren Charakter binden. Kompilieren wir das und speichern. Ordnung, das ist der Großteil der Arbeit, aber wir haben noch ein bisschen mehr zu tun. Also lasst uns hier zu unserem Level zurückkehren. Und wir werden ein paar Dinge abstellen, damit es wie eine gefährliche Zone aussieht. Also setze ich einen Kugelauslöser. Also habe ich mein Platz-Schauspieler-Panel. Sie können dies finden, indem Sie direkt hier drunter kommen und Schauspieler-Panel platzieren können, damit Sie dieses Panel platzieren können. Und unsere Idee hier unter der Basiskategorie. Ich werde eine Trigger-Kugel in meinem Level platzieren. So. Ich setze den Kugelradius in meinem Detailbereich auf 200, etwas Großes. Und dann werde ich im Starter-Inhaltsordner hier unter Partikel geraten. Und ich ziehe einfach mein P-Feuer direkt auf die Angst des Auslösers hier in meinem Outliner, so dass es daran befestigt ist, nun, es wird es eigentlich nicht dort anbringen, aber Ich kann es hier per Drag & Drop ablegen. Und dann kann ich es per Drag & Drop auf meine Auslöser ziehen und dort Angst haben, es anzubringen. Und der Grund, warum es gut ist, es anzuhängen . Das ist nur ein FYI. Wenn ich die Kugel bewege, kommt das Feuer mit, aber ich kann das Feuer unabhängig bewegen , sodass es direkt über der Oberseite liegt. Ich suche nur nach etwas, das ein bisschen gefährlich aussieht. Lassen Sie uns das Ausmaß unseres Feuers hier so setzen, dass es, ich weiß nicht, dreimal so groß ist. Fünffach so viel Bucht. Ja. Etwas gefährliches, das aussieht. Ordnung. Gehen Sie zurück und wählen Sie Ihre Triggerkugel , da wir diese in unserem Level-Blueprint verwenden werden. Ich habe meinen Level Blueprint-Tab genau hier. Ich klicke mit der rechten Maustaste mit der ausgewählten Kugel beim Auslöser. Wir werden etwas tun, wenn wir anfangen, das zu überlappen. Du hast mich das mehrmals machen sehen. Was wir also tun werden, ist, dass wir uns aus dem anderen Schauspieler herausholen. Wir werden herausfinden, wer das ist. Also ziehen wir uns aus dieser Szene heraus machen Cast to ThirdPersonCharacter. Im Grunde stellen wir die Frage hier. Wenn sich etwas mit dieser Auslösersphäre überschneidet , sagen wir: Hey, lass uns herausfinden, was der andere Schauspieler ist. Wenn es ein ThirdPersonCharacter ist, dann lass uns etwas tun. Nun, was wir hier tun wollen, ist anrufen. Wir möchten dieses benutzerdefinierte Event nennen, bei dem Spieler Feuer fängt. Der Grund, warum wir dieses Setup haben, ist, dass wir dieses Makro nicht von unserem Level Blueprint aus aufrufen können , obwohl es kompiliert ist und unser Makro hier in unser ThirdPerson-Charakter. Ich kann nicht einfach brennen. Es macht eine Suche nach einem Spieler, der Feuer fängt. Dies sind unsere benutzerdefinierten Ereignisse, aber wir können dieses Makro nicht direkt aus einem anderen Blueprint aufrufen . Das ist also einer der Unterschiede zwischen Makros und Funktionen. Also hier ist unser Aufruf zu diesen benutzerdefinierten Veranstaltungen. Ich werde das kompilieren. Es sieht gut aus. Das wird also in unserem ThirdPersonCharacter zeigen, dies abgefeuert werden soll. Okay, lass uns das mal spielen, Moment der Wahrheit. Klicken Sie auf Abspielen. Ich werde nur versuchen, das ein wenig zu minimieren , damit Sie sehen können, wie diese Skripte hier abgefeuert werden. Wir lassen unseren ThirdPersonCharacter einfach reinspawnen, und das wird dort unser Debug-Objekt sein. Sobald wir uns überlappen, schneidet dieser Rauch ab, er haftet an uns. Wir zünden jetzt den Schrittbereich an und jetzt brennen wir. Also in der Tat, diese Arbeit ist entworfen. Es lohnt sich also, hier darauf hinzuweisen, dass wir ein Makro erstellt haben. Wir konnten dieses Makro nicht oder direkt von unserem Level-Blueprint aus aufrufen . Innerhalb dieses Makros konnten wir jedoch den Delay-Knoten verwenden, einige latente Knoten, die Ihnen zur Verwendung in einem Makro zur Verfügung stehen . Was dieses Makro von einer Funktion unterscheidet und besonders machte , ist dass wir mehrere Ausführungsausgabe-Out-Pins haben konnten. Sie könnten auch mehrere Ausführungen in Stiften haben. In diesem Fall hatten wir gerade mehrere Ausführungs-Pins, aber Sie können sie an beiden Enden des Makros haben. Okay Leute, das war's zum Erstellen eines Makros, wir sehen euch alle im nächsten Video. 68. Zusammenbruch zu Makro: Willkommen zurück. In diesem Video wollen wir lernen, wie wir unser Leben verbessern können, indem eine Sammlung von Knoten zu einem einzigen Makroknoten zusammenfassen . Dies ist eine dieser Aktionen vom Typ Lebensqualität, die Sie ausführen können , um ein bestimmtes Skript mithilfe eines Knotens auszuführen. Nicht viele. Zeigen wir das jetzt. Wir haben vor Ihnen ein Skript erstellt , das einen Münzwurf simulieren soll, was bedeutet, dass wir zwei mögliche Ergebnisse haben werden, Kopf oder Zahl. Und dann werden wir diese Funktionalität in ein Makro reduzieren, das überall in unserem ThirdPersonCharacter verwendet werden kann? Ja, ich bin wieder in meinem ThirdPersonCharacter Blueprint. Ich habe im Voraus ein Drehbuch vorbereitet, und dies ist mein Zitat, Münzwürf-Skript ohne Zitat. Im Wesentlichen starte ich meinen Charakter, um einen Münzwurf zu simulieren. Wir werden unseren Charakter in die Luft werfen, als würden wir eine Münze in die Luft werfen. Wir bringen sie gerade 850 in Z-Richtung. Dann spielen wir einen Sound ab, der mit dem Start unseres Charakters zusammenfällt. Dieser Soundeffekt ist in Ihrem Engine-Inhalt zu finden. Übrigens, wenn Sie nicht wissen, wie Sie Ihren Engine-Inhalt aktivieren sollen , stellen Sie diese Ordner für Sie zur Verfügung. Zurück hier im Katalog-Browser unter dem Abschnitt Einstellungen können Sie einfach sicherstellen, dass der Inhalt der Show Engine aktiviert ist. Sie sollten in der Lage sein, diesen Soundeffekt zu finden. Dann verzögern wir uns um 2 s. Das ist die Dauer unseres Münzwurfs hier. Dann haben wir einen Branch-Knoten eingeführt . Und was wir hier tun, ist eine Bedingung zu setzen, oder Bedingung ist, dass wir eine zufällige Ganzzahl haben, entweder eine oder zwei, das ist unser Bereich. Und wenn es eins ist, dann ist es gleich wahr. Und wir spielen den Erfolgssound wenn es eine Zwei wird. Und wieder können dies nur eins oder zwei sein, dann sind diese nicht gleich, weil zwei nicht gleich eins wären, dann wäre es falsch. Und wir würden den beim Kompilieren fehlgeschlagenen Sound abspielen, das wäre unser ausgefallenes S of x. Und beide Soundeffekte befinden sich in denselben Inhaltsordnern. Ordnung, also wollen wir das in ein Makro umwandeln und es in ein Makro reduzieren. Eine Sache, die Sie wissen sollten, ist, wenn Sie das versuchen, wir wollen nur diese Knoten genau hier haben, damit Sie mit der linken Maustaste klicken und ziehen können wenn Sie versehentlich versuchen, Ihre Eingabeereignisse einzubringen , wie ich es richtig gemacht habe hier, lass mich dir nur zeigen, was passiert. Linksklick und ziehe. Und jetzt, wenn ich hier mit der rechten Maustaste auf einen meiner ausgewählten Knoten klicke, haben wir die Möglichkeit, zu Makro zu reduzieren. also versuchen, diese Breite, diesen Ereignisschlüssel hier drin, zu machen , erhalten wir eine Warnung, dass Collapse to Macro fehlgeschlagen ist. Wenn wir das Nachrichtenprotokoll anzeigen, heißt es, dass Sie diese fünf nicht platzieren können gib hier ein, also werden wir es diesmal los . Wir klicken mit der linken Maustaste und ziehen sie um diese Knoten herum, wobei die fünf Eingaben nicht berücksichtigt werden. Rechtsklick. Wir werden zu einem Makro zusammenbrechen. Und wir können im Makrobereich sehen, wir haben jetzt die Möglichkeit, diesem Makro einen Namen zu geben. Also blättere ich meine Seite um und wir nennen das Münzwurf. Ja, zusammen mit meinen Banknoten, Münzwurf. Sie können sehen, dass dies angeschlossen ist, aber wir müssen ein wenig Arbeit in unserem Makro erledigen in unserem Makro damit wir hier darauf doppelklicken können. Und wie unser Makro derzeit aussieht. Aber wir wollen hier ein bisschen mehr arbeiten. Also haben wir unser Leben ein wenig vereinfacht , indem wir diese Knoten in unserem Ereignisdiagramm hier zu einem Knoten zusammengefasst haben. Aber ich möchte trotzdem einige Dinge modifizieren. Also wähle ich zuerst meinen Eingabeknoten hier aus. Und ich möchte meinen Eingabenamen hier anstelle von Executes einfach auf n setzen . Dann füge ich , mein Ausgabeknoten, ein paar Ausgaben hinzu. Außerdem nenne ich das Heads. Und wir werden das als Hinrichtungs-Pin festlegen. Dann klicken wir noch einmal auf die Plus-Schaltfläche. Wir nennen das „Schwänze“. Und das wird auch in der Ausführung PIM sein. Und noch einmal, wenn dies zu einem wahren Ergebnis führt, werden das im Wesentlichen unser Kopf sein. Also verbinden wir das mit unseren Köpfen. Und wenn das falsch ist, bekommen wir hier eine Zwei, sie ist nicht gleich eins. Das werden unsere Schwänze sein. Wenn wir jetzt zu unserem Event-Diagramm zurückkehren, können wir sehen, dass unser Münzwerf-Makro aktualisiert wurde. Beachten Sie, dass wir eine Ausführung in Pin und zwei Out haben. Ebenfalls. Wir haben dieses latente Symbol hier, um das in diesem Makro anzuzeigen. Und noch einmal können Sie darauf doppelklicken, um Ihr Makro zu öffnen. Wir haben hier einen latenten Knoten , ja, LinkedIn-Knoten wie Verzögerungen können innerhalb eines Makros existieren. Sie können nicht innerhalb einer Funktion existieren. Ordnung, gehen wir zurück zu unserem Event Graph-Tab hier. Und ich möchte unser Skript hier um jeden dieser Pins erweitern . Wir werden sagen, wenn unser Münzwurf hier Köpfe ist, werden wir die Gesundheit unseres Charakters auf volle Gesundheit einstellen . Vor diesen Videoaufnahmen habe ich hier unsere Gesundheitsvariable aufgenommen und erinnere mich, dass diese an unsere Motorhaube oder unser Gesundheitsmessgerät angeschlossen ist. Und ich habe es auf 0,1 gesetzt, was bedeutet, dass wir mit 10% Gesundheit beginnen werden. Ich halte die Alt-Taste gedrückt, klicke mit der linken Maustaste und ziehe , um einen Setter einzufügen. Und ich setze das auf 1.0. Wir werden gesund werden, wenn wir bessere Ergebnisse erzielen. Und was wir von Anfang an machen werden, wir werden ihren Charakter töten , weil das nach Spaß klingt. Also werden wir unser Mesh einbringen, ein Verweis auf unser Netz. Schnappen Sie sich hier Ihre Mesh-Komponente. Daraus werden wir uns zurückziehen, wir haben eine Option namens Set Simulate Physics. Das Ziel dafür wird unsere primitive Komponente sein, also unser Netz genau hier. Und alles was wir hier tun müssen, ist dies auf wahr zu stellen. Und ich lasse Sie gespannt , was das bewirken wird. Ordnung, kompilieren Sie hier und speichern Sie. Und wir werden das mal spielen. Lassen Sie mich also beim Spielen mein Debug-Objekt als unseren Charakter festlegen und unseren Charakter wieder zum Laufen bringen. Sie können also sehen, dass ich mit 10% gesünder anfange. Wenn ich die Fünf-Taste erneut drücke, wird unser Makro angezeigt und festgestellt, ob wir ein Kopf- oder ein Schwanzergebnis erhalten. Also los geht's, fünf Schlüssel. Ich bin gesund. Es brachte mich sofort zum Springen und brachte mich dann zu voller Gesundheit. Denn der Sprung, wenn man so will, der Start unseres Charakters, das ist unser Münzwurf der Anfang davon. Lass es mich noch einmal versuchen. Fünf Schlüssel, spring sofort zu Sekunden später haben wir wieder volle Gesundheit, lass uns weitermachen, bis wir hier das Schwanzergebnis bekommen. Springen Sie 2 Sekunden später, wir werden das Ergebnis herausfinden und die Physik simulieren. Er ging durch den Boden und ließ sein Schwert zurück. Und da hast du es. Wenn Sie eine Sammlung von Knoten haben, die Sie zu einem einzigen Knoten verdichten möchten. Und vielleicht hat es eine verspätete Notiz nicht drin. Oder Sie benötigen mehrere Eingangs- oder Ausgangspins für die Ausführung. Erwägen Sie, es in ein Makro zu konvertieren und es in ein Makro zu reduzieren. Möglicherweise müssen Sie ein bisschen Korrekturarbeit leisten , wie wir es hier mit unserem Eingabenamen machen mussten , und hier ein paar Ausgaben hinzufügen. Aber das ist eine wirklich praktische Methode , um deine Grafiken zu vereinfachen, Leute, das wird alles für dieses Video erledigen. Wir sehen uns im nächsten. 69. Macro: Hallo! In diesem Video möchten wir zeigen, wie wir Makros in unserer selbst erstellten Makrobibliothek erstellen und hinzufügen können . Was ist eine Makrobibliothek? Nun, es ähnelt einer Funktionsbibliothek, die wir im letzten Abschnitt von Videos erstellt haben , insofern, als es ein zentraler Ort ist, an erstellte Makros gespeichert werden , die wir erstellen. Was sind jedoch die großen Unterschiede zwischen einer Funktionsbibliothek und einer Makrobibliothek, zwischen einer Funktionsbibliothek und einer Makrobibliothek auf die Makros nur von Blueprints zugegriffen werden kann , die dieselbe übergeordnete Klasse, eine Makrobibliothek, verwenden. Nun, das scheint hier etwas verwirrend. Bleib einfach bei mir, während wir unsere Makrobibliothek erstellen. Ordnung, also hier bin ich in meinem Scripting-Blueprints-Ordner unten in meinem Inhaltsbrowser. Ich werde hier meine Makrobibliothek erstellen. Also lass uns weitermachen und mit der rechten Maustaste klicken. Und wir werden uns die Blaupausen ansehen, im kleinen Flyer-Menü. Wir haben die Blueprint-Makrobibliothek. Also werden wir weitermachen und uns das aussuchen. Und jetzt werden wir sehen, ob wir gebeten werden , eine Elternklasse auszuwählen. Also wählen wir eine Charakter-Elternklasse, die unserem Third-Person-Charakter ähnelt. Unser ThirdPersonCharacter gehört zur Charakterklasse. Ordnung, also klicken wir darauf. Und es wird uns bitten, das zu benennen, und ich nenne es meinen Unterstrichcharakter. Ich mache alle Großbuchstaben. Warum nicht Makros mit Zeichenunterstrichen? Und dann machen wir weiter und doppelklicken darauf, um es zu öffnen. Und jetzt werden Sie hier feststellen, dass in unserer Makrobibliothek auch hier unsere übergeordnete Klasse Charakter ist. Wir haben die Möglichkeit, auf alle Variablen zuzugreifen und diese zu verwenden, die in dieser Klasse nativ sind , und sie sind alle hier aufgeführt. Unter Charakter haben wir also vermascht, Charakterbewegungen usw., viele verschiedene Kategorien. Vergleichen wir dies nun mit unserem Third-Person-Charakter, der die übergeordnete Charakterklasse im Bedienfeld „ Mein Blueprint“ ist. Wenn wir unter Variablen kommen, stellen Sie sicher, dass Sie vererbte Variablen angezeigt haben, wenn Sie auf dieses Zahnradsymbol klicken . Schau dir das an. Unter der Charakterkategorie haben Sie Mesh, Charakterbewegung usw. Dies sind alles dieselben Variablen, die für diese Klasse, die Zeichenklasse, nativ sind . Sie finden sie also hier in unserem ThirdPersonCharacter und hier in unserer Makrobibliothek, unserer Zeichenmakrobibliothek, haben wir auch Zugriff auf sie. Okay, lass uns weitermachen und unser Makro hier in unserer Charaktermakro-Bibliothek erstellen . Nachdem wir diese Makrobibliothek geöffnet hatten, wurde hier ein Makro für uns erstellt. Du kannst den Tab gleich hier drüben sehen. Lass uns weitermachen und dem einen neuen Namen geben. Also klicke ich einfach darauf, drücke F2, und ich nenne diese Änderung maximale Geschwindigkeit. Und genau das wird dieses Makro tun, wir werden die maximalen Bewegungsgeschwindigkeiten unserer Charaktere ändern . Also werde ich hier einen kleinen Raum zwischen unserem Input und unserem Output-Knoten schaffen . Lassen Sie uns also weitermachen und einige Ein- und Ausgänge für dieses Makro erstellen einige Ein- und Ausgänge für dieses Makro Ich werde hier eine Eingabe erstellen und hier unten auf diesen Plus-Button klicken. Und der erste wird einfach angerufen. Das wird eine Hinrichtung mit dem Stift sein. Und dann erstelle ich noch einen. Und dieser wird New Speed heißen. Wir geben diesem einen neuen Geschwindigkeitswert, und dieser wird ein Float sein. Und für unsere Ergebnisse habe ich hier ein paar im Sinn. Wir klicken einmal darauf und nennen es Walking. Das wird in Ausführung sein. Und dann werden wir zwei weitere plus erstellen. Der nächste wird laufen und der nächste wird Sprinten heißen. Und das sind alles Hinrichtungs-Pins. Ordnung, was wir hier tun werden, ist, dass wir unsere Charakterbewegungskomponente erneut hineinziehen. Einer der Vorteile, wenn wir in diesem Fall eine Charaktermakrobibliothek erstellen , ist, dass wir Zugriff auf alle nativen Charaktervariablen, einschließlich unserer Character Movement Component. Wir ziehen das in unser Diagramm. kriegen wir. Jetzt wirst du hier etwas bemerken, wenn ich das hier rausziehe. Und ich habe gerade veröffentlicht, wir können hier nur Variablen in unserer Makrobibliothek bekommen . Und das gilt für jeden von ihnen. Wenn ich das machen sollte, bin ich gesprungen und habe versucht, das reinzuziehen. Wir können hier in unserer Makrobibliothek keine Variablen setzen . Eine wichtige Sache, die Sie bei einer Makrobibliothek beachten sollten, Sie nur diese Variablen abrufen können, Sie können sie nicht festlegen. Aber das ist okay. Nun, wir werden hier tun, um in unsere Charakterbewegungskomponente zu gelangen . Und wir geben Set Max, Walk, Speed ein. Jetzt lebt diese Variable innerhalb unserer Charakterbewegungskomponente. Und nur um das ein bisschen nach Hause zu fahren, habe ich meinen ThirdPersonCharacter genau hier. Wenn ich meine Charakterbewegungskomponente auswähle, habe ich eine Variable für die maximale Gehgeschwindigkeit, die sich innerhalb dieser Charakterbewegungskomponente befindet. Okay, also geben wir dem eine neue Geschwindigkeit. So. Dann ziehe ich das heraus und bringe einen Verzweigungsknoten ein. Und dann ziehe ich mich hier raus. Und ich habe mehrere Vergleichsknoten, die ich einbringen möchte. Also mache ich weniger als oder gleich eins. Ich werde wieder ein Hier herausziehen, und ich werde ein größeres als, nur größer als machen. Dann ziehe ich es noch einmal heraus und mache weniger als oder gleich kleine Loops, die kleiner oder gleich oder nur weniger gleich sind, wie es genannt wird. Für die Werte für diese werde ich 200 für dieses Plugin einstecken , ich werde es nur hart codieren. 200 dafür. Wir machen mehr als 200 dafür und 1.200 dafür. Und wir werden lesen, ich werde dir das alles gleich vorlesen. Wie wir das alles interpretieren werden. In nur einem Moment. Ich werde einen weiteren Verzweigungsknoten einbauen, indem ich die B-Taste gedrückt halte und mit der linken Maustaste klicke. Und ich werde das Wahre in unser Gehen einbinden, das falsche werde ich ziehen und so hörst du den Begriff, ich werde sie hierher ziehen und das Falsche werde ich hier hineinziehen. Und noch einmal, ich werde das alles gleich hier draußen für Sie interpretieren . Und ich werde hierher ziehen und es reinbringen und knoten, es wird ein AND Boolean sein. Und genau dort boolean. Steck das hier rein. Wir stecken das hier rein und das hier rein. Ordnung, Mr. Laundry, das haben Sie ziemlich schnell durchgemacht . Was bedeutet das alles? Ordnung, also wird es so funktionieren. Wir werden eine neue Geschwindigkeit in dieses Makro einspeisen. So können wir die maximale Bewegungsgeschwindigkeit unserer Charaktere ändern . Wenn es weniger als oder gleich 200 ist, wenn das stimmt, werden wir das Gehen ausgeben. Also werden wir weiter aus unserem Makro herausfahren und etwas tun wenn wir feststellen, dass wir gehen. Wenn wir nun feststellen, dass wir mit einer Geschwindigkeit von mehr als 200 und weniger als oder gleich diesem Wert fahren, genau hier 1.200. Wenn das stimmt, dann wird davon ausgegangen, dass wir laufen. Wenn sich herausstellt, dass dies falsch ist, werden wir als Sprinten betrachtet, was bedeutet, dass wir eine Geschwindigkeit von mehr als 1.200 erreichen. Lassen Sie uns nun weitermachen und dieses Makro in unserem ThirdPersonCharacter Blueprint verwenden . Ein kurzer Hinweis hier, es ist nicht nötig, hier zu kompilieren. Sie müssen nicht innerhalb einer Makrobibliothek kompilieren. In der Tat ist es ausgegraut, aber wir können weitermachen und das speichern. Und drüben in unserem bp ThirdPersonCharacter können wir weitermachen und mit der rechten Maustaste darauf klicken. Und wir können nach der maximalen Geschwindigkeit suchen. Und da ist es. Da ist unser Makro , das wir gerade in unserer Makrobibliothek erstellt haben. Und lassen Sie uns unsere Skripte erstellen , um dies zu nutzen. Wir werden also ganz vorne eine Eingabeschlüssel hinzufügen . Ich habe die Fünf-Taste verwendet und sie zwischen den Videos gelöscht. Es sieht so aus, als hätte ich es momentan nirgendwo in meinem Diagramm, lassen Sie uns die fünf Kishore-Fünf-Eingaben machen. Was wir hier tun werden, ist wenn wir die Fünf-Taste drücken, werden wir die maximale Bewegung und Geschwindigkeit unserer Charaktere ändern . was wollen wir es ändern? Nun, lass uns mit der rechten Maustaste in einen leeren Bereich klicken und ich werde Random Float in Reichweite machen . Damit wir diesen Kerl in unsere neue Geschwindigkeit einbinden können. Jedes Mal, wenn wir die Fünf-Taste drücken, können wir einen Wert auswählen, und ich wähle einen Wert, 1-2 Tausend. Jedes Mal, wenn Sie die Fünf-Taste drücken, erhalten wir einen Wert innerhalb dieses Bereichs. Wenn wir diese Taste loslassen, wollen wir die Bewegungsgeschwindigkeit unseres Charakters wieder auf das normale Niveau zurücksetzen . Wenn wir also unsere Charakterbewegungskomponente per Drag & Drop in unser Diagramm ziehen und wir sehen, dass die maximale Gehgeschwindigkeit unserer Charaktere derzeit 500 ist. Wenn wir also hierher ziehen, können wir die maximale Gehgeschwindigkeit festlegen. Wenn wir das veröffentlichen, werden wir unsere maximale Gehgeschwindigkeit wieder auf 500 setzen. Wenn Sie also drücken, wird es auf den neuen Wert gesetzt , wenn es freigegeben wird, wird es zurückgeworfen. Und alles, was wir aus jedem von diesen machen werden, könnten wir noch etwas weiter tun. Ich meine, ich könnte einen Partikeleffekt oder was auch immer spielen. Ich werde nur eine Zeichenfolge auf den Bildschirm drucken. Also machen wir mehrere Drucke. Strings ist zuallererst, es heißt nur Gehen und Drücken von Control C, Control V. Control V. Du kannst dir vorstellen, was ich in jedes dieser Felder einstecken werde . Das heißt „Laufen“. Und hier heißt Sprinten. Sprint, Sprint Ing. Nicht dass es so wichtig wäre. Lassen Sie uns das zusammenstellen. Lass uns speichern und lass uns weitermachen und diese Einstellung spielen, unser Debug-Objekt, riesigen oder Third-Person-Charakter, damit wir sehen können, wie dieses Skript hier auf der linken Seite abgefeuert wird. Ordnung, also gehe ich einfach, gehe, gehe. Wenn ich die Fünf-Taste drücke, schauen Sie oben links unter dem Wort Superhero nach. Also fünf, rennen. Ich schicke es zurück an fünf. Laufen scheint gar nicht viel schneller zu sein. Fünftens, sprinten. Fünf Sprints. Jetzt hat das Laufen die größte Reichweite, 200-1200. Ich wollte es zum Laufen bringen, also sprinten sie, drücken erneut F5 und rennen. Schon wieder. Laufen könnte dem Sprinten ziemlich nahe kommen. Sprinten, jetzt muss es kaum über 200 sein. Laufen, rennen. Gehen wir hier rein. Ich werde weitermachen, bis ich laufen kann. Da gehen wir spazieren. Wir können also sehen, dass dieses Makro tatsächlich funktioniert. Ordnung, jetzt ist es wichtig zu beachten, dass wir dieses Makro hier in unserem Third-Person-Charakter finden und verwenden konnten in , da beide ThirdPersonCharacter und unsere Makrobibliotheksfreigabe sind ThirdPersonCharacter und unsere Makrobibliotheksfreigabe dieselbe übergeordnete Klasse. Wenn natürlich, gehen Sie zu unserem Level Blueprint. Öffnen wir hier unseren Level-Blueprint. Und selbst wenn ich hier einen Hinweis auf unseren Charakter habe, lassen Sie uns auf jeden Fall ein Event beginnen. Beginne sogar zu spielen. Und wir sollten Spielercharakter bekommen. Und dann, weißt du, Cast to ThirdPersonCharacter, ungefähr so. Und wir sollten versuchen herauszufinden, dass die maximale Geschwindigkeit der Änderung hier herausgezogen wurde, Max geändert hat. Sie können dieses Makro hier in Ihrem Level-Blueprint nicht finden. Sie können nicht einfach mit der rechten Maustaste in leeren Bereich klicken und die maximale Geschwindigkeit für Änderungen finden , da diese keine übergeordnete Klasse hat, da dies ein Level-Blueprint ist, aber sogar innerhalb einer anderen Klasse aber eine Blaupause wie unser Beispiel-Pickup, das hat die übergeordnete Klasse von Schauspielern. Wenn ich also mit der rechten Maustaste hier reinklicken und Höchstgeschwindigkeit ändern sollte, die Höchstgeschwindigkeit ändern sollte, kann ich sie auch hier nicht finden. Das ist also wichtig zu beachten, da dieses Makro innerhalb einer Makrobibliothek mit der übergeordneten Zeichenklasse erstellt wurde . Wir können dies nur in anderen Blaupausen finden und verwenden , die dieselbe übergeordnete Klasse teilen. angesichts dieser Nuance hinter einer Makrobibliothek , bei der eine übergeordnete Klasse definiert werden muss, Was wären angesichts dieser Nuance hinter einer Makrobibliothek , bei der eine übergeordnete Klasse definiert werden muss, die Vorteile der Verwendung einer Makrobibliothek? Nun, bedenken Sie, dass Sie vielleicht ein Kampfspiel haben und eine ganze Reihe von Charakteren haben, die Sie spielen können, da Sie vielleicht einige Makros haben möchten , die alle Charaktere teilen und verwenden können. So etwas wie die Wahl zwischen einem zufälligen Tante oder vielleicht einem Outfitwechsel , so etwas. Ich meine, genau hier wähle ich nur einen zufälligen Float in Reichweite und dann entscheide ich, ob ich gehe , renne oder sprinte. Vielleicht könnten wir eine zufällige Ganzzahl basierend auf der ausgewählten Ganzzahl einspeisen . Wir könnten ein zufälliges Spiel spielen, das etwas dieser Art gelehrt hat. Wenn Sie diese Einschränkung der Makrobibliothek umgehen möchten , gibt es hier einen kleinen Hack, mit dem Sie sicherstellen können , dass Ihre Makros überall verfügbar sind. wird sichergestellt, dass Ihre übergeordnete Klasse für Ihre Makrobibliothek der Objektklasse angehört. Um diesen Punkt nach Hause zu bringen, lassen Sie mich einfach mit der rechten Maustaste auf einen leeren Bereich lassen Sie mich einfach mit der rechten Maustaste auf einen leeren Bereich klicken und ich werde beispielsweise einen Gate-Knoten hinzufügen. Und der Grund, warum ich das mache, ist, dass ich darauf doppelklicken kann und mich schnell zu unserer Standard-Makros-Bibliothek bringen kann. Wenn wir nur danach suchen, können wir in unserem Inhaltsbrowser herausfinden, wo sich dies befindet. Es befindet sich im Content-Editor-Blueprint-Ressourcenordner der Engine dies zu sehen, können Sie erneut sicherstellen, dass Sie den Inhalt der Show-Engine aktiviert haben. Und wenn wir zu unserer Standardmakros-Bibliothek gehen, können wir sehen, dass unsere übergeordnete Klasse hier ein Objekt ist. Gehen wir nun zurück zu unserem Inhaltsbrowser, wenn ich mit der rechten Maustaste auf einige leere Bereiche klicken würde, wenn wir eine neue Makrobibliothek, Blueprints, Blueprint-Makrobibliothek erstellen würden. Schau dir das hier unten im Abschnitt Alle Klassen an. Sie können sehen, dass jede andere Klasse vom Objekt erbt. Wenn Sie also eine Standardmakrobibliothek erstellen würden , die die übergeordnete Objektklasse enthält, kann jede andere Klasse sie verwenden. Deshalb können Sie Knoten wie Gate-Knoten in jedem anderen Blueprint finden . Okay Leute, ich werde alles für diesen machen. Wir sehen uns im nächsten Video. 70. Array: Willkommen zurück alle. In diesem Abschnitt des Kurses kehren wir zum Thema Variablen zurück, Kurses kehren wir zum Thema da wir bis zu diesem Zeitpunkt im Kurs nur über einen einzelnen Variablencontainer gesprochen haben. Und insbesondere, worüber wir hier sprechen, ist , dass Sie mit einem ausgewählten Variablentyp auf der rechten Seite die Möglichkeit haben , den Containertyp auszuwählen. Wir haben nur einzelne Variablen erstellt. Wir haben nicht über Arrays, Sets oder Maps gesprochen. Darum geht es in diesem Abschnitt des Kurses, in dem es um diese verschiedenen variablen Containertypen geht. Insbesondere in diesem Kurs lernen wir, was ein Array ist. Wir werden zeigen, wie man einige erstellt, und dann ein Beispiel dafür geben , wie sie verwendet werden können. Also erstens, was ist ein Array? Ein Array ist ein variabler Container, der eine Sammlung von Werten eines bestimmten Datentyps speichern kann . Praktischere Begriffe im Array sind jetzt eine Liste ähnlicher Dinge. Es könnte ein Array von Float-Werten sein, es könnte ein Array von Texten, Klängen, Objekten usw. Nun hat jeder Eintrag in der Liste einen zugehörigen Integer-Index oder einen sogenannten Schlüssel. damit verbunden. Das heißt, wir können einen bestimmten Eintrag in der Liste nachschlagen , wenn wir wollen oder müssen. Ordnung, hier bin ich in meinem ThirdPersonCharacter Blueprint. Erstellen wir also unser allererstes Array. Und wir beginnen damit, zum Panel My Blueprint zu kommen. Wir werden eine neue Variable erstellen auf diese Plus-Schaltfläche klicken Ich nenne diese eine Schlagworte. Und der Typ hier wird eine Textvariable sein. Und dann können wir im Bereich Details den Containertyp festlegen Ich klicke auf dieses Dropdown und wähle ein Array aus. Jetzt muss ich meinen Blueprint kompilieren. Und wenn ich das tue, kann ich X Elemente zu meiner Liste hinzufügen. Denken Sie daran, dass ein Array im Wesentlichen eine Liste ist und Sie feststellen können, wie viele Elemente in dieser Liste vorhanden sind. Ich klicke auf diesen Plus-Button hier unten, dreimal 12.3. Und mein erstes Schlagwort lautet: Hey, hey. Mein zweiter wird High Diddley Bow sein. Und mein nächster wird die Hounds freilassen. Beachten Sie nun, dass Array-Variablen oder Containertypen eher durch diese drei mal drei farbigen Gitter gekennzeichnet sind , was zeigt, dass es sich nicht um Standard-Einzelvariablen handelt . Und Sie können sehen, dass das nicht nur hier, sondern unten in Ihrem My Blueprint-Bedienfeld unter dem Variablenabschnitt dargestellt unten in Ihrem My Blueprint-Bedienfeld unter dem Variablenabschnitt Sie sehen das Drei-mal-Drei-Waffelsymbol , das anzeigt, dass diese Variable ein Array ist ein Array von Textvariablen. Erwähnenswert ist hier, dass Sie Ihre Werte innerhalb dieses Arrays neu anordnen können , indem Sie hier rechts klicken und einen darüber hier rechts klicken und einen darüber ziehen oder wie folgt nach unten ziehen. Auch hier rechts haben Sie die Möglichkeit, wenn Sie auf diesen kleinen Dropdown-Pfeil klicken, einen Eintrag einfügen, löschen oder duplizieren. Also werde ich nur einfügen, um das zu zeigen , und dann lass uns das schnell löschen. Ordnung, jetzt lasst uns weitermachen und dieses Array nutzen. Also bringe ich hier einen Event-Schlüssel mit. Rechtsklick. Ich mache die Fünf-Schlüssel. Und dann werde ich meine Schlagworte einbringen. Also möchte ich dazu kommen, also halte ich die Strg-Taste gedrückt , klicke mit der linken Maustaste und ziehe. Das gibt mir einen Getter. Und dann möchte ich hier raus ziehen und gets eingeben, ich möchte hier eine Referenz bekommen. Tut mir leid, ich möchte lieber eine Kopie haben. Und was will ich da rausholen? Nun, ich kann wählen, welcher Eintrag in diesem Array, 01 oder zwei. Und wieder ist dies eine auf Null basierende Liste. Es wird damit beginnen, bei Null zu zählen, welchen dieser Einträge ich zurückgeben möchte. Also welche Nummer ich hier eintippe, die dem Eintrag entspricht , den ich zurückgeben möchte. Und ich werde hier zufällig etwas wählen. Also ziehe ich mich rückwärts davon ab und zufällige Ganzzahlen in einem Bereich ein. Und ich sage 0-2, denn das ist mein Bereich, 0-2. Wenn wir oben sagen würden, dass wir es in einen Bereich von 0-3 setzen und die Zahl drei zurückgeben, würden wir nur ein Nullergebnis erhalten und kein Pfeil würde geworfen. Wir erhalten nur ein Null-Ergebnis. Ich ziehe mich hier raus und tippe Drucktext ein. Und wir werden das hier einstecken. Lassen Sie uns das also schnell ausprobieren. Lassen Sie mich das zusammenstellen, stellen Sie sicher, dass alles gut aussieht. Und ich klicke hier auf meine Spieloptionen. Ich möchte nicht simulieren, ich bin in einem Flugzeug und habe ein neues Editorfenster. Ich werde dies als meine Debug-Objekte festlegen , damit wir sehen können, wie dieses Skript ausgelöst wird. Und nicht zu OBS. Los geht's. Wenn ich die Fünf-Taste drücke. Hallo Diddly. Hallo. Hallo Diddly Hill, klingt wirklich. Sie können sehen, dass ich, wenn ich die fünf Schlüssel spamme, zufällig eine dieser verschiedenen Optionen erhalte. Jetzt sieh dir das an. Wir haben derzeit drei Schlagworte in unserem Array. Dies ist jedoch wiederum eine Variable. Wir müssen diese drei Elemente hier nicht behalten. Wir könnten sie austauschen. Lass uns so etwas versuchen. Ich bringe einen Vier-Schlüssel mit. Für Eingaben. Wir machen das für die Tastatur, da sind meine vier Tasten. Was ich tun werde, ist, dass ich mein Schlagwort setze. Ich halte die Alt-Taste gedrückt, klicke mit der linken Maustaste und ziehe. Wir werden das auf diese Stecknadel stecken, um einen Setter zu holen. Und was ich daraus machen werde , wird nach hinten gezogen und gebe make array ein. Also diesen Knoten, ich werde drei Pins hinzufügen. Was ich tun werde, ist, dass ich hart festlegen werde welche drei Elemente in diesem Rennen sein werden? Ich werde Teig hineinlegen. Und in meinem zweiten Eintrag hier werde ich es in Smithers schreiben. Und der dritte werden die Nelson-Monate sein. Haha. Schauen Sie sich an, was hier vor sich geht. Lass mich das ein bisschen verkleinern und es hier oben verstauen. die Wiedergabeeinstellung klicken , hat dies möglicherweise bereits mein Debug-Objekt. Das ist alles gut und gut. Wenn ich also anfange, die Fünf-Taste zu drücken und sie einfach zu spammen, sehen Sie die ursprünglichen Einträge in meinem Array. Jetzt drücke ich die Taste F4 und es wird diese Einträge überschreiben. Also werde ich es nur einmal drücken. Beobachten Sie das Feuer aus, Bumm. Das ist abgehauen. Wenn ich jetzt die Fünf-Taste drücke, die Einträge, wurden die Elemente in diesem Array geändert. Also wird es so lesen wie die neuen Einträge, die ich gerade hier eingegeben habe, ich habe sie ausgetauscht, ich ändere den Inhalt dieses Arrays. Ordnung, versuchen wir, ein paar andere Arrays zu erstellen. Lassen Sie uns hier im My Blueprint-Bedienfeld unter Variablen noch eine erstellen My Blueprint-Bedienfeld unter Variablen auf diese Plus-Schaltfläche klicken Ich nenne das mein Sound-Array. Jetzt werde ich den Variablentyp hier in Schallwellendateien, Schallwelle, ändern . Also wollen wir unter Objekttypen Schallwelle die Objektreferenz auswählen. Es ist bereits vom Array-Variablen-Containertyp. Das ist also alles gut und gut. Und ich werde hier eine weitere Variable erstellen, indem ich auf den Plus-Button klicke. Und dieser wird mein Schauspieler-Array sein. Und ich werde den Typ hier so ändern von der Actor-Varietät unter Objekttypen ist, Schauspieler die Objektreferenz. Okay, jetzt kompiliere ich beide. Und für mein Sound-Array werde ich drei davon hart eingeben, also 12.3. Und hier kann ich ein paar Sounds einspielen. Ich gehe mit irgendwelchen dreien. Ich habe ein doppeltes Fenster geschlossen, alle drei werden wir tun, das ist alles nur zB Sake. Var unterstreicht nah genug für meinen dritten, ich werde einfach schweben, UI Close. Sie können sich also vorstellen, sagen wir, dass ich eine Reihe von Hupengeräuschen hatte . Wenn du eine tolle Taste auf deiner Tastatur haben willst , wird deine Autohupe losgehen. Dies können drei verschiedene Variationen dieses Sounds sein. Vielleicht möchtest du einfach eine zufällig auswählen. Okay, also das ist alles gut und gut genug für mein eigentliches Array. Ich mache 12.3. Ich werde diese jedoch jetzt als leer lassen. Ich kompiliere das und speichere noch eine Sache. Ich habe vergessen, dieses Kontrollkästchen für editierbare Instanz zu aktivieren, also stellen Sie sicher, dass Sie dies auch aktivieren. Kompilieren Sie und sparen Sie noch einmal. Was ich tun werde, ist, sobald ich dieses Spiel gespielt habe, festzulegen, welche Objekte Teil dieses Schauspieler-Arrays sein werden. Beachten Sie also, dass dieses Array derzeit diese Liste leer ist. Also werde ich hier wieder auf mein Niveau zurückkehren. Ich füge drei Objekte hinzu. Ist wirklich egal. Ich mache einfach einen Würfel, eine Kugel und einen Zylinder. So. Okay, hab die drei hier drin. Kehren wir zu unserem Third-Person-Charakter zurück. Ich werde hier einfach unsere Arrays austauschen, einfach unsere Skripte hier ein bisschen modifizieren. Also hier unter Schlagworten werden wir diese vier oder fünf Schlüssel loswerden. Ich bringe mein Sound-Array ein und halte die Strg-Taste gedrückt , klicke mit der linken Maustaste und ziehe. Wir ziehen hier eine Eingabe heraus, holen, wir wollen eine Kopie haben, stecken sie ein. Also eigentlich möchte ich hier keinen Text drucken. Ich möchte einen Sound abspielen. Sound abspielen. Entschuldigung, ziehen wir lieber hier raus und geben Sound 2D abspielen ein, so. Und wenn ich meine vier Tasten drücke und sie hier lösche, hier lösche, schnappe ich mir meinen Schauspieler hebe die Strg-Taste gedrückt. Linksklick, um eine Referenz zu diesem Zweck zu bringen, ich werde diesen Typ in Gets herausziehen, wir bekommen eine Referenz. Kopie, eher keine Referenz. vermassele ich immer. Ich werde dafür eine zufällige Ganzzahl im Bereich machen. Also Control C, Control V. Was ich hier machen werde ist dass wir das hinziehen und wir werden einfach einen Schauspieler vernichten. Wenn ich also die Vier-Taste drücke, werde ich jetzt wieder eine davon zerstören, das ist momentan ein leeres Array. Also lasst uns das kompilieren. Das Drehbuch wird hier gut aussehen. Ich werde weitermachen und in mein Level springen. Wir werden nicht sehen, wie diese Drehbücher losgehen. Aber wenn Sie hierher zurückkommen und auf diese verweisen müssen, ist das alles gut und gut. Okay, los geht's. Ordnung, jetzt wo mein Charakter in meinem Level ist, kann ich sehen, wie er hier im Outliner bevölkert ist. Ich werde weitermachen und meinen ThirdPersonCharacter auswählen. Und jetzt muss ich die drei Elemente meines Schauspieler-Arrays festlegen . Also werde ich hier danach suchen wobei mein ThirdPersonCharacter ausgewählt ist. Suchen Sie nach einem Actor-Array. Und beachte, dass ich hier noch nichts eingerichtet habe. Also klicke ich auf diese Dropdown-Pfeile und setze sie als Würfel, Zylinder und Kugel ein. Also Würfelzylinder für den nächsten. Sphere ist irgendwo hier drin. Es gibt eine Sphäre. Okay? Und lass mich noch einmal mein Spielfenster öffnen. Ordnung, also wenn wir zuerst die Fünf-Taste drücken, hören wir einige Geräusche. Alles gut und gut. Ordnung, und jetzt verschwinden meine vier Schlüsseluhren, wenn sie ausgewählt werden. Quadrate sind Zylinder weg? Ich drücke die F4-Taste erneut, auch nichts verschwindet, muss dieses Element erneut ausgewählt haben . Kugel ist weg, und schließlich ist das Quadrat weg. Sie können also sehen, wie diese verschiedenen Arrays funktionieren. Der Grund, warum ich diesen Fehler erhalte, ist , dass versucht wurde, ein paar Schauspieler zu vernichten. Da habe ich hier meine vier Tasten gedrückt. Es wurde versucht, eine zufällige Ganzzahl und einen Bereich auszuwählen, nur versucht, eine dieser drei auszuwählen. Jetzt ist der erste, der zerstört wurde, der Zylinder, dem ich glaube, dass er auch Elemente war . Da könnte ich mich irren. Sobald das zerstört ist und es dieselbe Nummer wieder auswählt, wird es diesen Fehler auslösen, wenn ich aufhörte zu spielen und zu sagen: Hey, ich versuche dich zu zerstören Schauspieler, aber du hast es schon getan wurde zerstört. Aber auch dies ist alles für akademische Zwecke. Ordnung, nur noch ein bisschen mehr da. Bevor wir das abschließen, wollte ich darauf für jedes Array hinweisen, und lassen Sie uns hier unsere Schlagworte einbringen. Bei jedem dieser Optionen stehen Ihnen die gleichen Optionen zur Verfügung, wenn Sie daraus getrunken haben die gleichen Optionen zur Verfügung, wenn Sie daraus getrunken und unter den Abschnitt Dienstprogramme, Dienstprogramme Array, fallen . Sie haben eine Vielzahl verschiedener Optionen, die Sie kann zum Ändern verwenden , um Ihr Array zu bearbeiten. Du kannst noch etwas hinzufügen. Sie können dies herausziehen und übersichtlich eingeben. Sie können Ihr Array löschen. Also könnten wir hier ein weiteres Element zu unserem Array hinzufügen. Dieser würde das Array vollständig löschen. Sie können das Array anhängen , das ein Array von Schlagworten aufnehmen soll. Vielleicht hast du einen zweiten Strahl von Schlagworten und du könntest sie kombinieren. Du könntest, ich fing zufällig an. Sie könnten einen zufälligen Eintrag aus Ihrem Array auswählen und auch den Index zurückgeben. Das würde also einen zufälligen Eintrag auswählen , der den Index zurückgeben würde. Bei jedem Array haben Sie also eine Vielzahl von Optionen , mit denen Sie herumspielen können , um dieses Array auf irgendeine Weise, Form oder Form zu ändern . Und wieder finden Sie diese hier, Utilities-Array. Sie haben auch viel mehr davon zur Verfügung. Ordnung, dank dem Wissen, bevor wir das abschließen, Werte innerhalb eines Arrays wiederum sind Werte innerhalb eines Arrays wiederum nullbasierte Indexwerte, was bedeutet, dass der erste Index Null ist, nicht eins. Arrays sind eine hervorragende Möglichkeit, eine Liste derselben Art von Daten zu speichern . Wo würdest du das benutzen? Nun, ich hatte eine Reihe von Früchten, die ich in einem Spiel im Pac-Man-Stil spawne , das ich vor einiger Zeit in Unreal entwickelt habe. Eine weitere Sache, die Sie bei Arrays beachten sollten, ist, dass Sie einen bestimmten Eintrag aus einer Liste abrufen können , indem Sie eine Kopie erhalten, wie wir es hier tun. Oder du kannst Luft oder zufälligen Eintrag bekommen, wie wir es hier tun. Wenn Sie also eine bestimmte Kopie erhalten möchten, können Sie einfach diesen Draht durchbrechen und sagen: Hey, ich möchte Element Null. Der zufällige Ansatz würde so etwas bewirken. Wenn wir jetzt später über die Flusssteuerung sprechen, zeigen Knoten, wie man jeden Eintrag im Array mit einer for- oder einer while-Schleife durchsucht, um mit jedem Eintrag in der Liste etwas zu tun oder zu fahren eine Logik basierend auf while given, während ein bestimmter Eintrag in der Liste gefunden wird. Richtig Leute, das wird alles für diesen Fall tun. Wir sehen uns im nächsten Video. 71. Set: Willkommen! In diesem Video ist es unser Ziel zu lernen, was ein festgelegter variabler Container ist. Zeigen Sie, wie Sie eine erstellen, und geben Sie dann ein Beispiel dafür , wie sie verwendet werden können. zunächst definieren, Lassen Sie uns zunächst definieren, was ein Set überhaupt ist. Nun, ein Set ist insofern wie ein Array, als es ein variabler Container ist , der eine Sammlung von Werten desselben Datentyps speichern kann . Hier drüben in meinen Variablentypen. Rechts drüben habe ich verschiedene Containertypen, Single Array Set oder Map. Wir sprechen also über das Set in diesem Video, z. B. könnten wir eine Reihe versteckter Schätze haben, die du in einer Levelsammlung versteckter Schätze finden sollst. Eines der einzigartigen Dinge an einem Set ist, dass alle Einträge innerhalb eines Set-Containers eindeutig sein müssen, keine Duplikate. Wir werden hier in wenigen Schritten auf einige Unterschiede zwischen Arrays und Sets eingehen. Ich werde hier in meinem Level-Blueprint ein paar Variablen erstellen . Aber für dieses Beispiel könnten Sie dies auch in Ihrem ThirdPersonCharacter tun. Du hast vergessen, wie du deinen Level Blueprint genau dort öffnen kannst. Öffnen Sie Level Blueprint. Und lassen Sie uns unter unser My Blueprint-Panel gehen und ein paar Variablen erstellen. Klicken Sie auf diese Plus-Schaltfläche. Sobald ich einen namens Hidden Treasures erstellen werde, werde ich den Typ hier in einen Namen ändern. Wir werden paar Namen für versteckte Schätze eintragen. Und dann werde ich im Bereich Details den Containertyp hier von Single zu Set ändern . Als nächstes klicke ich mit der rechten Maustaste darauf und dupliziere es. Du kannst den Hotkey für dieses Steuerelement plus D sehen. Und das wird Hidden Treasures genannt. Gefunden. Und sobald ich kompiliert habe, kann ich hier einige Einträge hinzufügen, einige verschiedene Set-Elemente. Fangen wir also mit verborgenen Schätzen an. Ich klicke einmal auf diesen Plus-Button. Und wenn Sie ein zweites Mal versucht haben, darauf zu klicken , heißt es, dass Sie kein weiteres hinzufügen können bis Sie etwas hinzugefügt haben, einen Eintrag hier. Also nenne ich das Goldstatue. Wenn ich erneut auf den Plus-Button klicke, nenne ich diese eine Halskette. Der Grund, warum Sie keinen weiteren hinzufügen können, wenn dort keiner steht, ist dass versucht wird, einen doppelten Eintrag zu erstellen , der auch keiner besagt. Denken Sie daran, dass Sets keine Duplikate haben können. Klicken Sie erneut auf diesen Plus-Button. Wir nennen das alte Töpferei. Töpferei. Töpferei. Klar. Alte Töpferei. erneut auf den Plus-Button klicken, nennen wir dies eine Schriftrolle der Weisheit. Und wenn wir erneut auf den Plus-Button klicken, nennen wir dieses eine Kriegerwappen. Ordnung, jetzt werde ich paar versteckte Schätze hier finden. Und eigentlich weißt du was? Ich möchte hier tatsächlich ein paar doppelte Einträge haben. Also werde ich das hier löschen. Und ich sage Ihnen, warum wir das löschen werden, um sicherzustellen, dass unsere Namen genau gleich geschrieben sind. Also klicke ich mit der rechten Maustaste darauf. Wir werden das duplizieren . Noch einmal. Ich nenne das gefunden, und ich werde es kompilieren. Sobald ich es kompiliert habe, kann ich dieselben Einträge sehen. Lass uns hier einfach ein paar von mir löschen, also lösche ich die Halskette, indem ich hier klicke. Beim Löschen wird die Goldstatue beibehalten. Lass uns auch eine Schriftrolle der Weisheit behalten. Es spielt keine Rolle, welche wir behalten, aber behalten Sie einfach ein paar davon genau dort. Beachten Sie, dass bestimmte Variablentypen keine Sets verwenden können. Wenn ich meine, sagen wir, boolesche Variable hier auswählen und zu den Containertypen übergehen würde. Ich kann dafür kein Set festlegen. Ich kann es auch für eine Textvariablen-Technologie oder einen Rotator oder eine Transformation tun . Alle anderen können Sie als festgelegten Containertyp festlegen. Ich dachte nur , dass ich das auch hier reinwerfen würde. Wenn ich nun einen Verweis auf eines meiner Sets hierher ziehe und ihn dann herausziehen lasse, wird etwas leerer Speicherplatz unter dem Abschnitt des Dienstprogrammsatzes freigegeben . Sie sehen, dass mir eine ganze Reihe verschiedener Funktionen zur Verfügung stehen, um die Daten auf irgendeine Weise zu manipulieren, formen oder viele Funktionen zu formen, die für Sets spezifisch sind. Was ich hier tun werde, ist das Video schnell vorzuspulen , nachdem ich diese hinzugefügt habe, und kurz über einige der verschiedenen Optionen zu sprechen , die dir zur Verfügung stehen. Ordnung, und hier sind ein paar dieser Funktionen, über die ich gerade gesprochen habe und die spezifisch für das Set sind. Sie können ein Element hinzufügen. Sie können ein Element daraus entfernen. Sie haben einige Vergleiche zwischen zwei verschiedenen Sets, so etwas. Nun eine Sache, die hier erwähnenswert ist, wenn Sie nur mit der rechten Maustaste klicken und etwas leeren Bereich haben , wie ich es mit diesem Knoten getan habe es mit diesem Knoten getan hier nach einem Union-Knoten sucht. Es hat diese großartigen Eingangs- und Ausgangspins. Dies sind Platzhaltereingaben und -ausgänge, was bedeutet, dass der Datentyp, der zuerst an eine Eingabe oder Ausgabe angeschlossen wird , dies ist der Datentyp, den der Rest der Eingabe oder Ausgabe übernimmt. Und nur um das zu demonstrieren, diese sind momentan grau, wenn ich das einstecken würde , um dieses Top zu sagen, Sie können sehen, dass sie alle lila werden, um den Namen Variablentyp darzustellen. Da. Um das zu löschen und eines auf die Ausgabeseite zu legen, wird die Eingabeseite in dieselbe Farbe geändert , auch in denselben Typ. Ordnung, hier zu meinem Level Blueprint habe ich damit begonnen, ein Skript zu erstellen, das ein praktisches Beispiel dafür zeigt , wie Sets in einem Spiel verwendet werden können. Wenn ich also die Drei-Taste drücke, werde ich den Unterschied zwischen zwei verschiedenen Sets herausfinden . Mein Top-Set wird alle Schätze enthalten , die ich in einem bestimmten Level finden muss. Mein unterstes Set wird mir die Schätze geben , die ich bisher gefunden habe. Was diese Differenznote bewirken wird ist, dass sie alle ausgeben wird. Ich habe den Unterschied zwischen einem Set und einem anderen nicht gefunden . Also kann ich nicht einfach hier rausziehen und eine Druckzeichenfolge eingeben. Also ich kann nicht, das wird nicht die Namen aller Set-Elemente ausdrucken , die derzeit nicht gefunden werden. Was ich hier tun muss, wird hier rausgeschleift. Dies gibt mir den entstandenen Schatz, der nicht gefunden wurde. Und ich werde in zwei Arrays tippen. Dadurch kann ich ein Array all dieser verschiedenen Set-Elemente ausgeben . Der Unterschied zwischen diesen beiden. Und damit kann ich hier rausziehen und für jede Schleife eine einbauen. Jetzt haben wir noch nicht über Flusskontrollknoten gesprochen über Flusskontrollknoten , die im nächsten Abschnitt erscheinen werden. Aber dieser Flusskontrollknoten wird es mir ermöglichen jedes Element in diesem Array, jedes Element in dieser Liste, zu durchsuchen jedes Element in dieser Liste, und diese dann hier auf dem Bildschirm auszugeben. Und es wird diese über eine Druckzeichenfolge auf dem Bildschirm ausgeben. Also nehmen wir für jedes Element in diesem Array das und konvertieren Namen in eine Zeichenkette, damit wir ausgeben können. Kompilieren wir hier, stellen Sie sicher, dass unser Skript gut aussieht. Spar es. Wir werden spielen. Sie können dort Ihr Debug-Objekt auf Ihre Testmap setzen , falls Sie dies noch nicht getan haben. Und wenn ich jetzt diese drei Tasten drücke, können Sie sehen, dass dies die drei Gegenstände sind, die ich noch nicht gefunden habe. Ich spamme nur mit drei Schlüsseln. Das ist der Unterschied zwischen meinem All-Set und meinen Found Sets. Ordnung, versuchen wir es jetzt mit etwas anderem. Ich bringe die Tastatur VY, die V-Taste, ich weiß nicht. Und damit werde ich einen Hinweis auf meine gefundenen verborgenen Schätze einbringen . Ich ziehe mich hier ab und tippe AD ein. Stellen Sie sicher, dass Sie die Funktion Hinzufügen unter dieser Set-Kategorie hier auswählen. Und wir fügen eine Halskette hinzu. Wir sagen, wir haben die Halskette jetzt gefunden. Also werden wir das zu unserer Liste der gebundenen Schatzmeister hinzufügen . Im Wesentlichen wäre das also Gold, Statue, Schriftrolle der Weisheit und dann Halskette. Also kompilieren, speichern. Wenn ich jetzt spiele, wenn ich die Drei-Taste drücke, heißt es: Hey, du verpasst diese drei, aber jetzt drücke ich die V-Taste. Wir sagen, ja, wir haben die Halskette jetzt gefunden , V-Taste. Okay, das wurde also zu meiner Tausenderliste hinzugefügt. Wenn ich jetzt die Drei-Taste drücke, heißt es, dass deine beiden fehlen. Wir haben die Halskette gefunden. Ordnung, lassen Sie uns dieses Video beenden und über einige Ähnlichkeiten und Unterschiede zwischen Arrays und Sets sprechen , beginnend mit einigen Ähnlichkeiten. Nun, sowohl Arrays als auch Sets speichern eine Sammlung von Werten desselben Typs. Beide ermöglichen es dir, Elemente hinzuzufügen und zu entfernen, und du hast gesehen, wie ich das in den letzten beiden Videos gemacht habe. Unterschiede betrifft, so ist die Reihenfolge der Elemente Unterschied in Arrays, Sie haben eine geordnete Liste. Sets werden als unsortiert betrachtet . die Eindeutigkeit von Elementen betrifft, können Arrays nun doppelte Elemente enthalten. Sets dürfen keine Duplikate haben, und das ist einer der Hauptunterschiede zwischen Arrays und Sets. Sets dürfen keine Duplikate haben. Arrays können, wie bei funktionalen Unterschieden, nachschlagen und abrufen ein einzelnes Element über eine Indexsuche nachschlagen und abrufen, weil sie geordnet sind. Und nur um das schnell zu zeigen, habe ich eine Reihe von Pickup-Schauspielern hier. Wenn ich das per Drag & Drop ziehe und das bekomme, kann ich hier rausziehen und bekomme, ich kann ein einzelnes Element innerhalb dieses Arrays bekommen, beliebige Zahl hier, wieder, beginnend mit der Nullliste, ich momentan habe nichts in diesem Array. Aber ja, Sie können ein bestimmtes Element durch einen Index spezifizieren lassen. Jetzt können Sets nicht mehr nachschlagen oder ein einzelnes Element abrufen. Sets sind jedoch hervorragend darin, Vergleiche zwischen Listen durchzuführen, wie Sie mich gerade mit diesen versteckten Schätzen, allen Listen und meinen versteckten Schätzen, grenzenlosen Mengen oder einem Array gesehen allen Listen und meinen versteckten Schätzen, haben, was sollten Sie tun mit? Nun, ich würde mit einem Set gehen, wenn die Reihenfolge überhaupt nicht wichtig ist. Die Einzigartigkeit der Elemente ist eine Voraussetzung. Auf der anderen Seite, gehen Sie mit einem Array wenn die Reihenfolge wichtig ist, aber doppelte Elemente, keine große Sache, die darin möglich ist. Jetzt haben Sets auch den Vorteil sie etwas mehr Leistung als Arrays haben. Das kann also auch etwas sein, das Sie beachten sollten. Aber auch hier eignen sich Arrays hervorragend, wenn Sie in einzelnen Elementen in dieser Liste nachschlagen müssen . Sets sind großartig, wenn Sie einen Satz mit einem anderen vergleichen müssen , so etwas. Okay Leute, das reicht, biete dieses Video an. Wir sehen uns im nächsten. 72. Landkarte HiRez: Willkommen! In diesem Video ist es unser Ziel zu untersuchen, was Kartenvariable Container sind, wie sie erstellt werden und wie wir sie in einem Gaming-Projekt verwenden können . Sehen bedeutet nun zu glauben, dass dieser leichter demonstriert werden kann als darüber gesprochen. Also werden wir gleich mit der Erstellung eines beginnen. Jetzt werden wir diesen Map-Variablen-Container in unserem BP-Player-Controller erstellen . Dies ist ein Vermögenswert, den wir während unserer Veranstaltung geschaffen haben. Beginnen Sie mit dem Cursor über Video Wenn Sie zurückgehen und das überprüfen möchten, wenn Sie können. Wenn du nicht weißt, wie man einen Player-Controller erstellt, gebe ich dir hier eine kurze Einführung, eine kurze Auffrischung. Sie tun dies, indem Sie mit der rechten Maustaste unter Blueprint-Klasse einen Player-Controller erstellen möchten. Und dann würdest du es so etwas wie BP Player Controller nennen . Aber nachdem Sie das getan haben, müssen Sie das als aktiver Player-Controller für das Projekt verknüpfen aktiver Player-Controller für , in dem Sie arbeiten. Und das können Sie in Ihren Einstellungen tun. Projekteinstellungen unter Karten und Modi. Genau hier können Sie in diese Player-Controller-Klasse einsteigen. Jetzt werden wir später im Kurs einige Videos haben, in denen wir speziell über diese Blaupausen gesprochen haben , die als Framework-Blueprints bekannt sind. Aber es gibt einen bestimmten Grund, warum ich diesen Map-Variablen-Container mit einem BP-Player-Controller, meinem Player-Controller-Blueprint hier, präsentieren möchte diesen Map-Variablen-Container mit einem BP-Player-Controller, meinem Player-Controller-Blueprint . Und das liegt daran, dass ein Player-Controller-Blueprint in unserem Fall mit ThirdPersonCharacter verknüpft ist . In einem echten Spiel könnte dein Charakter sterben und wenn er eine Antwort erhält, alle Variablen in werden alle Variablen in diesem Spielercharakter-Blueprint auf ihre Standardwerte zurückgesetzt. Nun, so etwas wie in der Inventarvariablen, wo sie den Namen eines Gegenstands enthält und wie viele Sie von diesem Gegenstand haben, wäre besser in einem Player-Controller-Blueprint zu speichern einem Player-Controller-Blueprint denn wenn Dein Charakter stirbt, dein Charakter stirbt in diesen Variablen und werde in einem Spieler-Controller zurückgesetzt , der sozusagen am Leben bleibt, er bleibt sozusagen während deiner gesamten Gameplay-Sitzung bestehen. Wenn also dein Charakter sterben würde, würden diese Werte nicht in deinem Player-Controller gelöscht werden . Ordnung, also mit ihrem Player-Controller, der erstellt und in Ihren Projekteinstellungen unter Karten und Modi festgelegt wurde. Player-Controller-Klasse. Lass uns hier reintauchen. Und wenn du dieses kleine Fenster bekommst, steht : Hey, das sind nur Daten, nur Blaupause. Wir können hier klicken, um den vollständigen Blueprint-Editor zu öffnen und zu sehen, was wir sehen möchten. Ordnung, als Erstes müssen Sie eine Variable erstellen. Bevor ich das tue, möchte ich all diese vererbten Variablen löschen, nur um diesen Abschnitt des My Blueprint-Panels zu vereinfachen Diese werden alle von unserer übergeordneten Klasse des Players geerbt Controller-Vielfalt. Also kann ich diese herausholen, indem ich auf dieses Zahnradsymbol klicke. Wenn Sie das Kontrollkästchen „ Vererbte Variablen anzeigen wird das nur ein wenig vereinfacht. Also lass uns weitermachen und hier unsere gewünschte Variable hinzufügen. Ich werde dieses Inventar benennen, weil es eine gute Sache ist, es in einem Player-Controller-Blueprint zu speichern . Wieder einmal kann ein Spielercharakter sterben und reagieren und sterben, und die Reaktionsvariablen innerhalb eines Spieler-Controllers bleiben während Ihrer gesamten Spielsitzung bestehen, der Spieler-Controller stirbt nicht. Stellen Sie sich das wie die Marionettensaiten die die Marionette kontrollieren und die immer wieder von der Saite geschlagen werden können . Ordnung, wenn dies im Bereich Details ausgewählt ist, ändern wir hier unseren Variablentyp, boolescher Wert in String, und dann unseren Variablencontainer von einer Single in eine Map. Damit kann ich hier einen sekundären Datentyp hinzufügen. Also möchte ich eine Zeichenfolge für die Namen meiner Inventargegenstände haben. Und dann werde ich eine Ganzzahl haben, um zu sagen, wie viele von dem gegebenen Gegenstand ich habe. Also könnte ich Dinge wie Gesundheitstrank haben , drei davon, Mann einen Trank drei dieser Lederhelme, einer würde keinen abschirmen und so weiter. Um nun Elemente zu diesem Variablentyp hinzuzufügen, klicke ich hier auf Kompilieren. Und wir können in unserem Details-Bereich sehen, dass wir Elemente hinzufügen können. Ich klicke einmal auf diesen Plus-Button. Wenn ich erneut versuche, darauf zu klicken , wird mir das sagen, nein, das kannst du nicht tun. Jetzt mit einer Map-Variablen. Es ist ein Container, der eine Sammlung von Schlüsselwertpaaren speichert , wobei die Schlüssel und Werte unterschiedliche Datentypen haben können . In diesem Fall wird mein Schlüssel wieder die Saite sein. Der Name meiner Inventarobjektschlüssel muss eindeutig sein. Also für meinen ersten hier nenne ich das Gesundheitstrank. Und ich sage es. Ich habe standardmäßig drei davon. Also wird Gesundheitstrank mein Schlüssel sein, und hier drüben wird mein Wert durch eine Ganzzahl dargestellt. Diese müssen nicht eindeutig sein. Diese können die gleichen sein, und ich werde das hier darstellen, indem ich hier ein weiteres Element hinzufüge. Also müssen die Schlüssel, in meinem Fall die Strings, eindeutig sein. Ich nehme diesen Mann , einen Trank. Und ich setze drei als Standardwert dafür. Und lassen Sie uns hier einfach ein paar mehr hinzufügen , nur zum Spaß. Ich füge sicher hinzu. Helme aus Leder. Wir haben einen von denen. Und wenn ich hier plus klicke, habe ich einen Holzschild und ich habe einen davon. Ordnung, jetzt habe ich meine Sammlung von Schlüsselwertpaaren in diesem Kartencontainer. Jetzt sind Karten großartig, weil sie effiziente Suchvorgänge und das Abrufen dieser Werte mithilfe dieser zugehörigen Schlüssel unterstützen Abrufen dieser Werte mithilfe . Ordnung, jetzt möchte ich hier noch eine Variable erstellen, und das wird später etwas ins Spiel kommen. Also klicke ich auf diese Plus-Schaltfläche und nenne diesen Artikel, der verwendet werden soll. Und ich möchte, dass dies vom Variablentyp String ist. Bevor ich das tatsächlich als String-Variablentyp setze, werde ich dies vorübergehend auf einen booleschen Wert setzen. Hier ist zu beachten, dass Sie bestimmte Variablen nicht als Maps haben können . Also, wenn ich versuchen sollte zu sagen: Hey, Variablentyp Boolean, ich möchte dich in einer Karte haben. Du kannst es nicht tun. Daher können bestimmte Variablentypen keine Maps verwenden. Dazu gehören Boolesche Variablen, Texte, Rotator- und Transformationsvariablen. Also dachte ich, ich würde das sofort rauswerfen. Diese können nicht, können den Map-Variablen-Container nicht verwenden. Ordnung, jetzt möchte ich diesen Datentyp hier tatsächlich von boolean in eine Zeichenkette ändern . Und wir werden das kompilieren , damit wir einen Standardwert festlegen können. Und das wird Manna Ocean sein. Wie der Name schon sagt, wird dies unser Gegenstand sein, um einen Mann aus Trank zu verwenden , der hier später ins Spiel kommen wird . Gleich als Nächstes wollen wir einen neuen Entwurf für die Schauspielerklasse erstellen . Kehren Sie also zu Ihrem Inhaltsbrowser zurück. Ich werde das unter den Scripting-Blueprints-Ordner legen . Wir legen es da rein. Also klicke ich mit der rechten Maustaste in einen leeren Bereich, wir erstellen eine neue Blueprint-Klasse. Es wird von der Schauspielervariante sein und wir werden diesen BP-Unterstrich-Manier Trank nennen . Und dann doppelklicken wir auf diesen Kerl, um ihn zu öffnen. Und zuerst fügen wir ein paar Komponenten hinzu und legen dann einige Details fest. Die erste Komponente, die ich hinzufügen möchte, ist eine Kugelkomponente. Nicht diese Art von Kugel, sondern eher ein Sphere Collider, Sphäre Collider. Das ist es, wonach ich suche. Und ich setze den Kugelradius hier auf 70. Und dann, wenn Ihre Speerkomponenten darin ausgewählt sind, eher daran befestigt sind, werde ich einen Zylinder hinzufügen. Also tippe ich einfach Zylinder ein und wir finden einen Zylinder mit Grundformen. Und ich habe einige Einstellungen, die ich dafür vornehmen möchte. Ich werde die Skala ändern, um freigeschaltet zu werden, also schalte sie frei und wir setzen sie auf 0,25, 0,2, 5,0, 0,5. Dann kippe ich das. Wir drehen es ein bisschen. Also genau hier in den rotierenden Drähten ist das auf negativ 30. Und ich werde dieses Material auch so etwas wie einen Scheitelpunkt machen, etwas Rotes. Lass uns damit weitermachen. Jetzt sieht es irgendwie männerähnlich aus. Klar. Als Nächstes fügen wir eine Variable in unserem bp Blueprint hinzu. Klicken Sie also unter diesen Plus-Button für den Variablen-Bereich. Wir werden diesen Gegenstand auch zur Verwendung aufrufen. Wir ändern den Typ hier in einen String. Wir werden kompilieren, damit wir einen Standardwert festlegen können. Und dieses Mal tippe ich Amana-Trank ein. Ich werde das in Kleinbuchstaben machen, aber ich mache das nur, damit das anders ist, als wir es als Standardwert in unserem BP-Player-Controller bezeichnet haben Standardwert in unserem BP-Player-Controller bezeichnet . Dort verwenden wir Großbuchstaben für die Anfänge unserer Manna- und Trankwörter, nur um zu zeigen, dass wir es können, weil Hüllen unserer Manna- und Trankwörter, nur um zu zeigen, dass wir es können, für unsere Karte hier keine Rolle spielen werden . Also lass uns weitermachen und das sofort kompilieren und speichern. Bevor wir hier weiter gehen , wollte ich in unserem BP-Player-Controller zeigen , dass ich für unsere Kartenvariable hier die Control-Linksklick gedrückt halten und in unser Event-Diagramm ziehen werde . Wenn wir diese Version in die Länge ziehen, wenn ich unter Utilities map komme, haben wir Zugriff auf eine ganze Reihe von Funktionen, die unsere Kartendaten auf irgendeine Weise manipulieren können. In vielerlei Hinsicht ähnelt das unseren Arrays und festgelegten Containertypen. Und ich werde hier nur ein paar davon hinzufügen. Also werde ich eine Anzeige schalten, die es uns ermöglicht , sie zu unserer Karte hinzuzufügen. Wenn Sie sich davon abziehen, gibt es auch einen anderen , um den angegebenen Gegenstand zu finden. Ziehen Sie das ab, ich kann ein Element aus unserem Kartendrachen wieder entfernen , ich kann eines finden, das enthält, wieder kann ich es herausziehen. Ich kann nur nach den Schlüsseln suchen, in dieser Map existieren, also nach diesen Leuten, ich kann das abziehen und ich könnte eine Funktion einführen, die nur die Werte dieser Map findet . Es gibt also viele verschiedene Funktionen, die Sie hier manipulieren oder Ihnen Informationen über Ihre Karte geben können . Ordnung, als nächstes kehren wir zu unseren BP-Wechseljahren zurück , damit wir ein Skript hinzufügen können, das wir unserem Inventar hinzufügen können. Hier werden wir unserem Amanda-Trank-Inventar hinzufügen , wenn wir einem Mann einen Trank abholen. also in unserem BPMN of Motion zurückkommen, wollen wir etwas tun, wenn wir diese Sphäre überlappen. Gehen Sie also zu Ihrem Event-Diagramm, wir klicken mit der rechten Maustaste auf unseren Sphere Collider. Wir werden ein Ereignis hinzufügen, wenn wir anfangen, das zu überlappen. Und wir wollen nur, dass etwas passiert, wenn unsere anderen Schauspieler, die diese Sphäre überschneiden, der ThirdPersonCharacter sind. Also veröffentlichen wir eine Suche nach Cast to ThirdPersonCharacter. Und wenn es ein ThirdPersonCharacter ist, können wir unser Skript hier erweitern. Als nächstes wollen wir mit unserer Inventarvariablen hier in unserem BP-Spieler-Controller sprechen unserer Inventarvariablen hier in unserem . Wie können wir das machen? Nun, hier in unserem BP Man of Motion, werde ich mit der rechten Maustaste klicken und etwas leeren Bereich eingeben und Get Player Controller eingeben. Ein Fehler, den viele machen, ist, dass sie denken, nun habe ich diese Player-Controller-Funktion. Ich kann einfach hier rausziehen und nach Inventar suchen , um diese Variable zu finden. Und nein, das kannst du nicht, denn wir müssen herausfinden , mit welchem Player-Controller wir mit dir sprechen wollen. Das Projekt könnte viele Player-Controller haben. Dies ist also der Starter, um herauszufinden, mit welchem Player-Controller wir sprechen möchten. also von hier wegziehen, können wir zu unserem Player-Controller, unserem BP-Player-Controller, wechseln, um auf die darin enthaltenen Informationen zuzugreifen. Jetzt werde ich diesen Knoten hier ein wenig vereinfachen. Ich habe ein paar Hinrichtungs-Pins genau hier und hier. Wenn ich mit der rechten Maustaste auf diesen Knoten klicke, kann ich diesen Knoten auf einen sogenannten reinen Cast vereinfachen . Ich weiß, dass dies nicht scheitern wird, weil ich ein Einzelspieler-Projekt habe. Ich weiß, dass ich meinen BP-Player-Controller als Player-Controller eingestellt habe , den mein Projekt hier in meinen Projekteinstellungen verwendet. In diesem speziellen Fall ist es für mich in Ordnung, nicht zu überprüfen ob ich in dieser Kaste erfolgreich war oder nicht. Ich weiß, dass es gelingen wird. Ich klicke mit der rechten Maustaste auf Convert to Pure Cast. Es wird diese Ausführungsstifte eliminieren, aber ich kann immer noch so hineingreifen. Und greife auf mein Inventar zu, was ziemlich süß ist. Da ist also meine Karte. nächste, was ich tun möchte, ist, dass ich hier raus und nach einem Fund suchen möchte. Und dieser Knoten ermöglicht es mir , einen bestimmten Schlüssel mit einem bestimmten Wert bei gegebenem Eingabeschlüssel zu finden . Der Schlüssel, nach dem ich hier suchen möchte , ist der Mensch ein Trank. Also ziehe ich das per Drag & Drop auf meine Eingabe. Das ist der Schlüssel, nach dem ich in dieser Karte suchen werde . Und es wird den Wert davon ausgeben. Aber ich möchte das erhöhen. Ich möchte dies jedes Mal erhöhen, wenn wir das überschneiden. Also beginnen wir mit drei Amanda-Tränken. Wenn ich das überschneide, möchte ich, dass Sie diesen Betrag einfach erhöhen. Also ziehe ich mich von hier ab. Das wird meinen Wert von drei ausspucken. Wenn ich das in die Länge ziehe, tippe ich schrittweise ein. Also wird dieser Knoten hier automatisch diese 3-4 inkrementieren. In diesem Fall. Ich werde das hier so durchschicken. Aber es reicht nicht aus , dies zu erhöhen. Ich muss das alles noch hier zu meiner Map hinzufügen. Also, was ich tun werde, ist noch einmal aus meinem Inventar zu ziehen, Anzeige einzugeben, unter Dienstprogramme zu kommen, hinzuzufügen. Also werde ich so gehen. Wir wollen unsere Manna-Tränke ergänzen. Und was wollen wir hinzufügen , dieser Betrag wird aktualisiert. Der Betrag wird gleich hier unten angeschlossen. Das wird also einen neuen Betrag für unsere Manna-Tränke festlegen . Und dann ziehe ich mich hier raus. Wir wollen das auf dem Bildschirm ausdrucken , damit wir sehen können, wie es funktioniert. Und ich werde von diesem Typ rückwärts ziehen , anhängen. Wir werden einige Texte auf den Bildschirm drucken. Das erste, was wir ausdrucken werden , ist der Name des Artikels, in diesem Fall ein Mann, ein Trank. Dann setze ich ein Leerzeichen ein, das dem Raum entspricht. Und das dritte, was ich hier einbeziehen möchte, ist, dass es sich um aktualisierte Beträge handelt. Wenn ich dies von der Ausgabe unserer Inkremente nach unten ziehe, können wir diesen Betrag ausgeben. Das heißt also, wenn ein Trank der aktualisierten Menge entspricht. Und zu guter Letzt wollen wir diesen Schauspieler vernichten. also hier rausziehen, tippen wir Destroy Actor ein. Es. Kompilieren wir die Skripte und speichern wir. Jetzt. Das ist alles schön und gut, aber wir haben noch keine Mannzuteilungen zu unserem Level hinzugefügt . Also lasst uns weitermachen und das schnell machen, indem wir zurück zu unserem Level-Tab springen. Ziehen Sie nur ein paar davon hier raus und ziehen Sie sie per Drag & Drop. Und los geht's. noch einmal daran, dass wir bei einem Drei-Mann-Trank beginnen. Schauen Sie also oben links hier nach oben, und wir haben jetzt 45,6. Ich würde sagen, dass das gut funktioniert. Jetzt, im Interesse der Zeit, kehren wir zu unserem BP-Player-Controller zurück wo ich ein Skript eingerichtet habe , das aus unserem Inventar entfernt werden soll. Das ist fast das gleiche Setup, das ich in meinem Mann habe , ein Zaubertrank-Entwurf. Der einzige Unterschied besteht jedoch darin, dass ich von unserem Inventar abnehme, anstatt ihn zu erhöhen. Wieder einmal benutze ich hier meinen Schlüssel, meinen Amana-Trankschlüssel, obwohl ich ein großes M verwende, ein großes P, es spricht immer noch mit diesem Mann, ein Trankschlüssel genau hier. Das ist also der, den ich finde. Und dann dekrementiere ich einfach davon und füge dann hinzu, dass ein Berg wieder zu meinen aktualisierten Inventarmengen dekrementiert wurde. Also verwenden wir den Schlüssel , um den Wert anzupassen. Also zeig das einfach. Ich habe diesen BP-Controller hier als mein Debug-Objekt eingestellt. Also fange ich mit drei 456 an. Und ich sollte eine rote Schrift haben, um das zu dekrementieren , ich drücke 7543 und so weiter. Da hast du es also. Ein Map-Variablen-Container für einen Schlüssel, Wertepaare. Suchen Sie es anhand des Schlüssels nach, und dann können Sie den Wert erhöhen oder verringern. Es eignet sich hervorragend für so etwas wie Inventar. Okay Leute, das reicht , um dieses anzubieten. Wir sehen uns im nächsten. 73. Enum HiRez: Willkommen! In diesem Video ist es unser Ziel, etwas über Enums zu lernen, was die Abkürzung für eine Aufzählung ist. Dies ist eine weitere Art von Listen, die wir erstellen und verwenden können , um die Logik in unseren Blueprint-Skripten voranzutreiben. Es ist tatsächlich eine meiner Lieblingsvariablen, die ich erstellen und verwenden muss. Was ist eine Aufzählung? Enumeration ist ein Datentyp der aus einer Menge benannter Werte besteht. Es ist sozusagen eine Auflistung von Labels. Dies ist etwas , das wir hier in unserem Inhaltsbrowser erstellen werden. Und dann werden wir es in unserem ThirdPersonCharacter Blueprint verwenden . Kommen Sie also in Ihren Scripting-Blueprints-Ordner, dies wird ein sinnvoller Ort sein , um eine Aufzählung zu erstellen. Und wenn wir mit der rechten Maustaste klicken und etwas leeren Bereich haben, haben wir diese Blueprints-Kategorie. Und in unserem kleinen Fly-Out-Menü haben wir die Möglichkeit, eine Aufzählung zu erstellen, heißt es im Tooltip, und die Aufzählung ist eine Liste benannter Werte. Machen Sie weiter und klicken Sie darauf, und wir geben dem sofort einen Namen. Ich nenne das E Unterstreichungsgesundheitsstatus. Jetzt benenne ich meine kreativen Enumerationen immer gerne mit E-Unterstrich. Aber auch hier können Sie eine Namenskonvention Ihrer Wahl verwenden . Und dann mache ich einen Doppelklick darauf, um es zu öffnen. Jetzt hier drinnen klicken wir ein-, zweimal, dreimal auf diese Schaltfläche plus Enumerator hinzufügen Schaltfläche plus Enumerator hinzufügen, damit wir hier einige Labels hinzufügen können , die wir verwenden können. Also werde ich jedes davon überschreiben. Der erste wird Super heißen. Der zweite wird heißen, okay, du kannst diese Labels machen, was willst du? Und mein dritter hier wird schwer verletzt heißen. Dies werden also im Wesentlichen meine drei unterschiedlichen Gesundheitszustände sein , die ich verwenden werde , um eine gewisse Logik in meinem Third-Person-Charakterentwurf voranzutreiben . Ich werde weitermachen und das speichern und dann kann ich es schließen, brauche es nicht mehr. Und ich werde in meinen ThirdPersonCharacter Blueprint springen . Wenn Sie vergessen haben , wo sich das unter dem Ordner Blueprints für Dritte befindet, doppelklicken Sie auf diesen Typ, um ihn zu öffnen. Sobald wir hier drin sind, werden wir eine Variable erstellen. Also erstelle ich eine Variable, indem einfach auf diese Schaltfläche plus Hinzufügen klicke. Ich mache es gerne auf verschiedene Arten, um verschiedene Arten der Erstellung von Variablen zu zeigen . Und ich nenne das E Unterstrich des Gesundheitszustands. Ich nenne das genauso, wie ich meine Aufzählung benannt habe. Ich drücke hier die Eingabetaste. Jetzt drüben im Bereich Details werde ich den Variablentyp ändern. Während ich das genau so nannte wie meine Aufzählung, die ich gerade erstellt habe, hätte ich es beliebig benennen können. Ich möchte dies jedoch dem Variablentyp zuordnen. Mein E unterstreicht Gesundheit, whoops, E unterstreicht die Aufzählung des Gesundheitszustands. Da ist es, genau da. Also sage ich dieser Variablen, die ich erstelle, dass ich von diesem Typ sein möchte. Sobald ich jetzt hier auf Kompilieren klicke, kann ich sehen, dass ich meinen Standardwert für den Gesundheitszustand in Super, okay oder schlecht ändern meinen Standardwert für den Gesundheitszustand kann. Und weil das eine Variable ist, kann ich sie ändern. Ich kann es von Super Two ändern, okay, oder schlecht, und dann diesen Status verwenden, um etwas Logik zu steuern. Ordnung, also lasst uns hier unser erstes Skript erstellen . Ich beginne mit der Erstellung benutzerdefinierter Ereignisse. Ich klicke mit der rechten Maustaste in einen leeren Bereich, tippe Benutzerdefiniert ein, wir fügen ein benutzerdefiniertes Ereignis , das ein Ereignis ist, das wir benennen können, und es aufrufen, wann und wo wir wollen. Und ich zoome hier nach oben, weil ich sehr weit weg bin. Ich nenne das Updates Gesundheitsstatus. Und dann bringe ich hier meine Enumerationsvariable ein, halte die Strg-Taste gedrückt, klicke mit der linken Maustaste und ziehe. Und was wir mit diesem Typen machen können, ist, dass wir uns daraus ziehen und einen Switch-Knoten einbauen können . Wenn ich gerade anfange, switch einzugeben, ein Switch-Knoten eingefügt, wird ein Switch-Knoten eingefügt, mit dem ich basierend auf dem Wert dieser Enumeration wechseln kann. Also los geht's, schalten Sie den eHealth-Status ein. Sie können die Ausgangspins genau hier sehen, sagen Sie super, okay, oder schwer verletzt. Das sind die genauen Bezeichnungen, die ich hier in dieser Aufzählung habe, super okay. Oder sie schlecht, wenn ich hier eine andere Aufzählung einstecken würde, würde es sagen, schalte ein, was auch immer das war. Und es hätte Ausgangspins, die den Beschriftungen entsprechen , die sich in dieser Aufzählung befanden. Das ist großartig , denn abhängig vom Wert dieser Variablen wird sie hier von verschiedenen Pins ausgelöst. Und damit können wir etwas anpassen, in diesem Fall an unserem Charakter. Was ich tun werde, ist , die Bewegungsgeschwindigkeit unseres Charakters an unseren Gesundheitszustand anzupassen Bewegungsgeschwindigkeit unseres Charakters , egal ob es super okay ist oder schwer verletzt ist. Also werde ich meine Charakterbewegungskomponente einbringen. Ziehe es hier rein und lege es dort ab Innerhalb meiner Charakterbewegungskomponente habe ich diesen Parameter, der als maximale Gehgeschwindigkeit bezeichnet wird. Das steuert, wie schnell sich mein Charakter in dem Level bewegen kann , das ich hier herausziehen werde, und maximale Gehgeschwindigkeit eingeben kann. Ich möchte in der Lage sein, meine maximale Gehgeschwindigkeit einzustellen. Und ich werde dieses Control C, Control V, Control V duplizieren . Und ich kann dieselbe Character Movement Component an alle drei anschließen . Es spielt keine Rolle, ob Sie eine davon haben. Oder ich könnte meine Charakterbewegungskomponenten separat per Drag & Drop ziehen. Ich könnte drei davon haben und diese separat an jedes der Ziele anschließen, egal wie Sie es machen. Ich werde so vorgehen, und so, lass mich einfach darauf doppelklicken um einen Umleitungsknoten einzufügen. Und jetzt werde ich meine maximale Gehgeschwindigkeit hart einstellen , je nachdem , ob meine Gesundheit super in Ordnung ist oder schwer verletzt ist. Wenn es super ist, werde ich sagen, dass meine Gesundheit es mir ermöglicht , mit dieser Höchstgeschwindigkeit von 2000ern zu laufen? Das ist es. Okay. Ich sage, es ist wieder in meinem Standard von 500. Wenn ich schwer verletzt bin, setze ich es auf 100. Jetzt sofort. Das ist alles gut und gut. Aber wir nennen dieses benutzerdefinierte Ereignis nirgends. Wir brauchen eine Möglichkeit, dieses benutzerdefinierte Ereignis des Feuerns und Ausschaltens aufzurufen , damit wir unsere maximalen Wünsche so einstellen können , dass sie auf dem Wert dieser Aufzählung basieren . Wir brauchen jetzt eine Möglichkeit , diesen Einstellungsstatus zu ändern. So wird das nächste Drehbuch aussehen. Ordnung, also fange ich einfach mit einem Eingabeereignis an. Ich klicke mit der rechten Maustaste und etwas leeres Feld und suche nach Tastatur h, weil wir dieses Eingabeereignis verwenden werden , um unsere Gesundheit zu ändern. Und nur ein paar Anpassungen, die wir hier an Dingen vornehmen müssen , die wir in früheren Videos geändert haben. Wählen Sie hier Ihre Gesundheitsfloat-Variable aus. Wir werden diese wieder auf 1,0 ändern, was 100% entspricht. Und dann mit unserer modifizierten Gesundheitsfunktion, bereits in unserem Funktionsbereich des Kurses erstellt wurde , als wir uns daran machten , eine Funktion zu erstellen Wie wir das gemacht haben, können Sie dort herausfinden. Ich werde auch ein paar Änderungen daran vornehmen, da wir in diesem Abschnitt des Kurses unsere modifizierte Gesundheitsfunktion geändert haben. Ich klicke mit der linken Maustaste und ziehe das hier oben auf unsere Drucktaste. Wir hatten diesen Input als übergebene Referenz. Wir haben das als Pass-by-Referenz festgelegt. Irgendwann werden wir das rückgängig machen. Wenn dieser Knoten im Eingabebereich ausgewählt ist, können Sie das überprüfen, weil wir etwas eingeben möchten , das sozusagen fest codiert ist. Und ich muss auch einige Dinge über diese Funktion ändern. Also werde ich darauf doppelklicken, um es zu öffnen. Wir haben dieses Inkrement derzeit da drin. Ich werde das löschen. Was wir hier tun wollen, ist, dass wir einen gesundheitlichen Wert haben dass wir einen gesundheitlichen Wert haben den wir genau hier wieder auf unsere Funktion setzen werden. Wir werden sagen, dass wir jedes Mal, wenn wir darauf drücken , um null Punkte eins verringern werden, im Wesentlichen 10% Gesundheit. Das wird also unser Input sein , auf den wir hier doppelklicken werden. Wenn das passiert, werden wir das subtrahieren oder besser gesagt, wir addieren es zu unserem aktuellen Gesundheitswert. Obwohl das eine negative Zahl ist, werden wir diese negative Zahl zu unserem aktuellen Gesundheitszustand hinzufügen . Also nehmen wir das negative 0,1. Wir werden es zu diesem Wert addieren , der 0,9 oder 90% entspricht. Und das werden wir ausgeben. Wir werden das so einstecken. Wir können immer noch behaupten, dass wir einen positiven Soundeffekt erzielen werden, wenn dieser größer als Null ist . Wenn es kleiner als Null ist, spielen wir einen negativen Soundeffekt. Das ist also alles gut und gut. Stellen Sie also sicher, dass die Gesundheitsfunktion so aktualisiert wird , dass sie so aussieht. Ich kompiliere das sofort. Und zurück in unserem Event-Diagramm werden wir hier weitermachen. Wir werden also sagen, ob unser aktueller Gesundheitszustand, der sich hier herauszieht , größer oder gleich 0,75 ist . Wenn wir drei Viertel Gesundheit oder mehr haben, werden wir im Wesentlichen drei Viertel Gesundheit oder mehr haben, jede Branche hinzuziehen. Das stimmt. Wir werden hier unseren Gesundheitszustand festlegen. Also ziehen wir das per Drag & Drop auf den True, um ein beliebiges Zentrum zu bringen. Wir sagen, wenn Ihre Gesundheit drei Viertel oder mehr beträgt, wird Ihre Gesundheit jetzt als super eingestuft. Wenn das falsch ist, bringen wir einen weiteren Branch-Knoten hinzu. Und wir werden hier eine weitere Bewertung vornehmen. also hier rausziehen, werden wir nach einem anderen suchen , der größer oder gleich ist. Also wenn es größer oder gleich 0,26 sein soll. Also im Wesentlichen 26%. Wenn es zwischen diesen beiden Bereichen liegt, 26 bis 75%. Wenn das stimmt, gehen wir ein paar Mal zu Control C und Control V. Das stimmt also. Es liegt zwischen diesem Bereich von 26,75% Gesundheit. Wir sagen, dass deine Gesundheit in Ordnung ist. Und wenn es falsch ist, hast du 25% oder weniger Gesundheit. Wir sagen, dass du verletzt bist. Schlecht. Das ist also alles gut und gut. Offensichtlich sehen Sie, dass dies nicht zusammenhängt. Und der Grund, warum das noch nicht zusammenhängt , ist, dass ich hier einen Druckstring reinschleichen möchte . Wir werden Strings drucken, damit wir sehen können , wie unser aktueller Gesundheitszustand auf den Bildschirm gespuckt wird. Also werde ich diesen Float in einen String umwandeln , indem ich ihn so einstecke. Das ist alles gut und gut. Immer wenn ich hier den Wert meiner Gesundheitsstatusvariablen ändere, nutzen wir dies um unsere maximale Gehgeschwindigkeit zu erhöhen, aber wir nennen noch keine Kundenvorteile. Also müssen wir diesen Teil als ergriffen beenden indem wir anrufen, wo dieses benutzerdefinierte Ereignis ausgelöst werden soll. Und das können wir tun, indem wir mit der rechten Maustaste in ein leeres Feld und aktuelle Daten eingeben. Da ist es, rufen Sie die Funktionsaktualisierung des Gesundheitsstatus auf. Das ist der genaue Name davon. Wir werden das nennen. Dies wird dazu führen, dass dieses benutzerdefinierte Ereignis ausgelöst wird. Wir werden dann alles in Ordnung sehen. Auf was wurde dieser Gesundheitszustand aktualisiert? Super okay. Oder sie schlecht, je nachdem, worauf das jetzt eingestellt ist, werden wir die Bewegungsgeschwindigkeit unseres Charakters vorantreiben. Also lasst uns das kompilieren, stellen wir sicher, dass das alles gut ist. Vergiss es zu retten. Ich werde das irgendwie hier oben verstauen. Wir spielen dieses Debug-Objekt als unseren ThirdPersonCharacter und wählen tatsächlich meine Charakterbewegungskomponenten aus. Unsere Standard-Gehgeschwindigkeit wird also bei 500 beginnen. Obwohl unser Gesundheitszustand standardmäßig auf Super eingestellt ist, bewerten wir dies noch nicht, um unsere maximale Gehgeschwindigkeit zu ermitteln. Also wisse, wenn ich anfange , mich hier zu bewegen, werden wir uns in unserer Geschwindigkeit von 500ern bewegen. Okay, du kannst sehen , dass ich mich mit einer Geschwindigkeit von etwa 500 bewege . Ich drücke hier meine H-Taste. Jetzt bei 90% Gesundheit, was immer noch super ist, also wird meine maximale Gehgeschwindigkeit jetzt bei 2000 liegen. Du kannst sehen, wie ich mich viel schneller bewege. Ich drücke die H-Taste erneut auf 80% Gesundheit, 70% Gesundheit. Jetzt bin ich in diesem guten Bereich, also wird es wieder auf 500 reduziert. Ich bin immer noch nicht in Ordnung. Lassen Sie mich hier weiter die H-Taste drücken, um meine Gesundheit jetzt auf 20% Gesundheit zu verringern. Jetzt bin ich schwer verletzt. Das ist also sozusagen so schnell wie ich laufen kann. Das ist eine großartige Verwendung einer Aufzählungsvariablen, die Ihren Gesundheitszustand bestimmt, und dann können Sie etwas an Ihrem Charakter ändern. Also, was sind einige andere Verwendungsmöglichkeiten, die Sie sich vorstellen können? Nun, lass mich einfach ein paar davon rauswerfen. Wie wäre es, wenn Sie eine Aufzählung für verschiedene Waffen haben. Und je nachdem, welche Waffe Sie ausgerüstet haben, sagen wir ein Schwert, einen Dolch, einen Bot, Ihre Bewegungsgeschwindigkeit oder sogar Ihre verfügbaren Angriffe könnten sehr gut sein. Was ist mit einer NUM für eine andere Charakterklasse? Warrior made, the usw. und je nachdem, auf was deine Charakterklasse eingestellt ist, können dir bestimmte Waffen zur Verfügung stehen oder nicht. Oder wie wäre es mit einer Aufzählung für verschiedene Spielzustände oder Ereignisse? Denke an ein Spiel wie Rocket League. Sie könnten eine Aufzählung für Dinge wie Gameplay, geschossene Tore, Halbzeit usw. haben . Und je nachdem, worauf diese Aufzählung eingestellt ist, können Sie sie so gestalten, dass verschiedene Dinge passieren, z. B. Zwischensequenz eines Tores nach einem Tor zum Schießen. Okay Leute, das reicht aus, um dieses Video anzubieten, wir sehen uns im nächsten. 74. Struktur: Willkommen! In diesem Video ist es unser Ziel, die Verwendung des sehr nützlichen Strukturvariablentyps zu lernen und zu demonstrieren . Das ist eine Art Variable, die ich ständig in meinen eigenen Gaming-Projekten erstelle . Mit einem Strich können Sie viele Datentypen, die sich auf dasselbe Objekt beziehen, in einem einzigen Container speichern Datentypen, die sich auf dasselbe Objekt beziehen . Also lasst uns weitermachen und eine struct-Variable erstellen. Hier in meinem Skripting-Blueprints-Ordner werde ich mit der rechten Maustaste auf eine leere Stelle unter der Kategorie Blueprints im kleinen Fly-Out-Menü direkt unter der Enumeration klicken, wir haben die Struktur ebenfalls bekannt als Struct-Variablentyp , den wir erstellen können. Also lasst uns weitermachen und das schaffen. Ich nenne diese STR, Unterstriche Zaubersprüche. Und dann lass uns auf diesen Kerl doppelklicken, um ihn zu öffnen. Ordnung, definieren wir, was eine Strukturvariable überhaupt ist. Eine Struktur oder eine Strukturvariable ist also im Wesentlichen eine Variable, die viele andere Variablen enthalten kann . Strukturiert also im Wesentlichen gebündelte Daten zusammen. Sie können sich eine Struktur als ein riesiges Lagerfach vorstellen, in dem alle anderen Kisten in diesem Lagerraum als einzelne Variablen enthalten sind. Jede Box im Lagerraum hat ihren eigenen Inhalt. Wir können dann in den Lagerraum gehen. In diesem Fall strukturieren wir und nehmen den Inhalt einer Box heraus, in diesem Fall eine Variable nach Bedarf. Diese Striche eignen sich hervorragend zum Speichern von Variablen , die in irgendeiner Weise, Form oder Form zusammengehören. Wir haben also eine Struktur , die wir hier erstellen werden, die Zaubersprüche genannt wird. Denken Sie an all die verschiedenen Zaubereigenschaften, die wir in einer Art von 11 Containern enthalten könnten . Hier können wir den Namen des Zauberspruchs, die Art des Effekts und das Element hinzufügen , mit dem er verknüpft ist. Vielleicht ein kostbarer Mann, vielleicht eine Abkühlung. All diese Dinge sind mit einem bestimmten Zauber verbunden und es wäre großartig, wenn wir sie in einem Vermögenswert enthalten könnten . Nun, ein Schlaganfall ist ein großartiger Ort, um genau das zu tun. Ordnung, lass den Kerl vorerst offen. Wir werden zuerst zwei weitere Enums-Assets erstellen , bevor wir dann zu unserer Struktur zurückkehren. Kehren Sie also zurück zu Ihrem Haupteditor hier in Ihrem Scripting-Blueprints-Ordner. Und lasst uns diese beiden Enums erstellen. Kann mit der rechten Maustaste unter dem Blueprints-Flyout-Menü klicken Wir werden eine Aufzählung erstellen. Diesen nenne ich E unterstrichene Zauberelemente. Und dann kann ich sofort mit der rechten Maustaste darauf klicken und es duplizieren. Control D wird es ebenfalls duplizieren, weil es auch eine Aufzählung sein wird und ich diesen einen E-Unterstrich-Zaubertypen nennen werde . Und dann können wir auf jedes davon doppelklicken , um sie zu öffnen. Zauberelemente sind also offen. Lassen Sie uns auch Zaubertypen öffnen. Ordnung, also werde ich unter den Zaubertypen hier drei Einträge hinzufügen. Wir beginnen mit Zaubertypen, 1234 Zaubertypen. Ich werde direkten Schaden im Display Nummer zwei anrichten, hier wird der Wirkungsbereich sein. Der dritte wird, sagen wir, Heilung sein . Klar. Lass uns das retten und dann kannst du den Kerl schließen. Für Zauberelemente fügen wir hier drei Einträge hinzu, 123, und das werden keine sein. Feuer! Und mein nächster hier wird Wind sein. Und eigentlich fügen wir noch einen hinzu. Lass uns auch ein Wasser machen. Wasser. Welches Tablett? Töpfer. Lass uns weitermachen und das speichern und dann können wir das schließen. Nun, die erstellten, müssen wir zurück in unsere Struktur springen und wir werden dadurch einige neue Variablen hinzufügen. Stellen Sie sich erneut eine Struktur als einen Container vor, der viele Variablen enthalten kann. Ich schiebe das hier einfach nach links rüber. Also werde ich hinzufügen, mal sehen, 1234567, wenn ich richtig zähle, also fügen wir hinzu, ich glaube, das sind sieben genau dort, 0 bis sechs, **** ist gleich sieben. Also mein erster hier, ich nenne Spell, Name. Und das wird vom variablen Typ Text sein. Komm schon, SMS, los geht's. Der zweite hier wird als buchstabierter Typ bezeichnet. Und hier können wir den Raum einbauen , den wir gerade geschaffen haben. Wir können unter die EU kommen und es hier unten finden. Sie können zwar auch dort und da oben danach suchen, Sie können die geschriebenen Typen hier sehen. Als Nächstes werden wir Zauberelemente nennen. Und wenn wir in unsere neue Kategorie fallen, werden wir sie so einstellen, dass sie Elemente buchstabiert. Als Nächstes nennen wir es „Kosten verwalten“. Und hoops, das hat man hier oben nicht aufgenommen. Gehen wir gleich zurück zu unseren Zauberelementen hier. Unter Enums buchstabieren Sie Elemente. Los geht's, Mann der Kosten. Wir setzen das auf eine Ganzzahl. Als nächstes kühlen wir uns ab. Wir setzen das auf einen Float. Als Nächstes haben wir einen Zaubereffektwert, der beschädigt oder geheilt werden kann. Das ist es, was ich mit Spell Affect Value beziehe. Und es wird dies auf eine Ganzzahl setzen. Und zu guter Letzt habe ich S f x. Das wäre also der Soundeffekt, der mit dem Wirken eines Zauberspruchs verbunden ist. Also setze ich das als Schallwelle ein. Wird eine Schallwellen-Objektreferenz durchführen und dann noch etwas anderes. Nur um hier anzugeben, könnten wir dies als Array festlegen, sodass wir tatsächlich eine Reihe verschiedener Soundeffekte haben können , die wir spielen möchten. Also das ist irgendwie cool dort. Okay, lass uns weitermachen und das aufheben. Und ich sehe diese Warnung hier oben. Und wenn wir mit der Maus darüber fahren, heißt es, dass Sie diesen Wert nicht analysieren können. Du musst etwas anderes als keins da drin haben. Also lass uns das erweitern und lass uns weitermachen und ein paar Standardwerte dafür hinzufügen. Wir können diese Standardwerte hinzufügen, indem wir hier nicht darunter stehen. Hier haben wir diese Registerkarte mit Standardwerten , die s Effekte plus, plus, und lassen Sie mich diese einfach auf einstellen. Lass uns dunkler werden. Was haben wir Dr. Bowles Fenster geöffnet und wir fügen Datenbeschriftungen hinzu. Fenster schließen. Ja, es spielt keine Rolle, was Sie dort hinstellen, es gibt nur zwei verschiedene Soundeffekte. Da ist also unsere Struktur. Wir sehen, dass das bereit ist. Wir können weitermachen und dort auf Speichern klicken. Ordnung, wenn das alles erledigt ist, springe zu deinem ThirdPerson-Charakter. Und wenn Sie vergessen haben, wo sich der Typ wieder in Ihrem Third-Person-Blueprints-Ordner befindet, doppelklicken Sie auf diesen Typ, um ihn zu öffnen. Also hier drinnen werden wir von dieser Struktur Gebrauch machen. Wir müssen eine Variable erstellen. Sie also unter Ihren Abschnitt Meine Blueprint-Variablen, klicken Sie auf die Plus-Schaltfläche, und wir nennen diesen Abschnitt meine Zaubersprüche. Wir werden den Variablentyp hier unten von einem booleschen Wert in unsere Struktur, STR, Unterstrichzauber ändern hier unten von einem booleschen Wert . Und dort finden wir unsere Struktur. Es ist unter der Kategorie Struktur. Und wenn ich in das Detailfenster komme, kann ich das in einer Reihe von Strukturen machen. Also werde ich den Containertyp hier von Single zu Array ändern . Ich muss gleich hier kompilieren. Und wenn ich das tue, kann ich hier mehrere Einträge zu meinem Zauberarray hinzufügen. Also lasst uns ein- und zweimal klicken und jetzt schauen wir uns das an. Wenn ich diese erweitere, habe ich Zugriff, um all diese verschiedenen Eigenschaften zu ändern , die ich hier in meiner Struktur eingerichtet habe. Also hier in meiner Struktur habe ich Felder für die Eingabe eines Textnamens eingerichtet . Ich bin eingetreten. Ich habe Felder eingegeben um einen Zaubertyp, ein Zauberelement, einen Mann zu definieren , all diese Dinge und hier stehen sie mir jetzt in meinem BP ThirdPersonCharacter zur Verfügung. Lassen Sie uns also einige davon festlegen. Ich werde sagen, dass mein erster Zaubername hier Feuerball, Zaubertyp, direkter Schaden, sicher, Zauberelement heißen wird. Ich klicke auf dieses Drop-down-Menü und sehe mir all die Optionen an , die ich in meinem Emu definiert habe. Nochmals, für unseren Zaubertyp hier und das Zauberelement. Wir haben diese mit Enums verknüpft, benannten Listen, die wir zuvor erstellt haben. Also buchstabiere Element, wir setzen das in Brand. Man Acosta setzt sie auf fünf, abgekühlt auf 0,5 Shore Spell Effect Wert 25. In diesem Fall meine ich das als 25 als direkten Schaden. Für meinen nächsten Eintrag hier buchstabiere name. Ich setze das als Heilmittel ein. Dieser Glockentyp wird in Heilzauberelemente geändert . Nun, es wird nicht sein, dass eines dieser Elemente das als keines belassen wird . Verwaltete Kosten werden zehn, Abkühlung 3,8, Zaubereffektwert 50 sein. Und dann können wir auch die Soundeffekte für jeden von diesen einstellen . Ich habe vergessen, das für den Feuerball zu tun. Erweitern Sie also jedes davon. Ja, Sie können die Soundeffekte ändern , sodass Sie die Standardeinstellungen für Ihren Feuerball beibehalten können , aber vielleicht möchten Sie für Ihren Aushärtungs-Soundeffekt etwas anderes. Also versuche ich es mit einem namens Ship VR Shape Scale-Up. Und ich werde dasselbe für dieses andere Schiff tun, das Schiff auch hochskalieren. Diese befinden sich in den Inhaltsordnern der Engine. Übrigens, wenn Sie vergessen haben, wie Sie auf Ihre Engine-Inhaltsordner zugreifen können, können Sie auf das kleine Zahnradsymbol klicken, Engine-Inhalt anzuzeigen. Ordnung, das alles ist also ziemlich süß eingerichtet. Machen Sie weiter und kompilieren Sie das sofort. Ordnung, also wie nutzen wir bei all diesem Setup diese getroffene Variable? Wie erreichen wir diese Strike-Variable und extrahieren die Informationen , die wir extrahieren möchten? Nun, für den Anfang müssen wir das zu unserer Grafik hinzufügen. Also klicke ich mit der linken Maustaste und ziehe. Ich hole es mir. Und das gibt ein Array zurück weil wir hier zwei Elemente haben, einen Feuerball mit all diesen Eigenschaften. Und unser Index hier ist unser Q oder unser Spruch. Wir haben also Index 0, unsere Firewall und Index eins in unserem Array, den Heilungszauber. Also können wir darauf ziehen und gets eingeben, wir können hier eine Kopie bekommen. Und je nachdem, welchen Wert wir hier eingeben, wird nach einer Ganzzahl gesucht. Wir können entweder 0 eingeben, um unseren Feuerball-Index 0 zurückzugeben, oder wir könnten einen eingeben, um unseren merkwürdigen Gürtel zurückzugeben. Das ist Index eins. So funktioniert das also. Dann wollen wir hier mit der rechten Maustaste auf diesen Pin klicken. Wenn ich mit der rechten Maustaste darauf klicke, kann ich den Struct Pin teilen. Beobachten Sie jetzt, wie sich dieser Knoten transformiert, wenn ich das mache. Bam. Jetzt habe ich immer noch diese Integer-Eingaben, also kann ich immer noch definieren, ob ich hier nach Index suchen möchte, mein Feuerball oder Index eins hier zur Heilung. Aber jetzt kann ich all die verschiedenen Eigenschaften ausgeben , die sich auf diesen angegebenen Index beziehen. Also kann ich finden, dass Index 0 ist, der Name des Feuerball-Zauberspruchs, der direkte Schaden, Yada, Yada. Beachten Sie hier, dass Sie zurückgehen und alles nach unten reduzieren können , indem rechten Maustaste auf einen dieser Pins klicken. Und ich kann den Struct Pin neu kombinieren. Aber in diesem Fall wollen wir mit der rechten Maustaste darauf klicken und den getroffenen Stift teilen. Bemerkenswert ist hier, dass bei der Arbeit mit Blueprint-Scripting tatsächlich viele Striche zu finden sind der Arbeit mit Blueprint-Scripting tatsächlich viele Striche zu . Und das ist ein bisschen nebensächlich, aber es lohnt sich, hier darauf hinzuweisen. Ich klicke mit der rechten Maustaste und etwas leeres Feld und tippe einfach get actor transform ein. Dies würde die Transformation für unseren ThirdPersonCharacter erhalten . Wenn ich nun mit der rechten Maustaste auf diesen Pin hier oben klicken würde, kann ich den Struct-Pin teilen der aus Positions-, Rotations- und Maßstabsdaten besteht . Aber auch so etwas wie die Lage, oder? Das sind drei Werte in einem X -, Y - und Z-Vektor, die unsere endgültige Position bestimmen. Das sind drei Float-Werte. Wenn ich also mit der rechten Maustaste darauf klicken würde, könnte ich auch diesen getroffenen Stift teilen. Sie können also sehen, dass es in unreal tatsächlich zahlreiche, zahlreiche Knoten gibt , mit denen Sie diese ganze Aufteilung und Rekombination von Strukturstiften durchführen können, ungefähr so. Ein Vektor ist eine Struktur. Es besteht aus drei Float-Variablen. Also kann ich mit der rechten Maustaste darauf klicken. Ich kann es teilen und du kannst es rekombinieren. Und sogar unser Rotator hier, ebenfalls aus drei Float-Werten besteht, sodass wir das teilen können. Ja, erwähnenswert, Rechtsklick auf Rekombinieren, Rechtsklick. Hoppla, keine Werbung. Rechtsklicken, neu kombinieren, mit der rechten Maustaste rekombinieren. Okay, zurück zum Thema hier, nutzen wir unsere Struktur. Also werde ich das löschen. Ich bringe einen Event-Schlüssel mit. Also lasst uns mit der rechten Maustaste klicken und etwas leeren Platz Lass uns etwas mit dem Neunschlüssel versuchen. Sicher Warum nicht? Ich glaube nicht, dass ich die Neun-Taste irgendwo verwende. Wir ziehen uns von unserem Zaubertyp hier unten ab führen diese beiden Typen mit buchstabiertem Typ hierher. Und ich werde nach einem Schalter suchen. Auf der Seite des leichten Zaubers. Wir werden etwas tun, je nachdem welchen Zaubertyp wir hier spezifizieren. Dann ziehe ich meine Zauberelemente heraus und schalte geschriebene Elemente wie diese meine Zauberelemente heraus und ein. Und wir werden sagen, wenn wir direkten Schaden anrichten, werden wir herausfinden, was unsere Elemente hier sind. Und was wir dann tun werden , ist eine Zeichenfolge zu drucken. Wir werden hier unser Feuer löschen und ich fasse das noch einmal zusammen. Wenn ich hier fertig bin. das durchziehen, dann ziehen wir unseren Zaubereffekt-Wert ab. So viel Schaden werden wir hier anrichten. Spoiler-Alarm, ich werde das als die 0-Elemente hier belassen . Also werden wir sozusagen einen Feuerball werfen , ohne irgendwelche Auswirkungen. Aber wenn Sie Luftkurse einlösen, ziehen Sie sich hier ab. Und das werden wir dort eigentlich noch nicht einstecken. Ich ziehe mich zurück von hier und führe ein Append durch. Wir drucken etwas auf dem Bildschirm aus. Unser Raum wird Ihnen ausgeteilt. R, B wird der Zaubereffektwert sein der Zaubereffektwert der diese Ganzzahl in eine Zeichenkette konvertiert. Wir fügen hier einen weiteren Pin hinzu. Wir geben den Spruchnamen für C also hast du 25 Feuerball ausgeteilt. Und das letzte Wort hier, wir werden einen weiteren Pin hinzufügen, wird Schaden sein. Und davor füge ich ein Leerzeichen hinzu. Und das wird alles gut und gut. Zu guter Letzt ziehen wir uns hier ab. Wir werden abspielen, ein Sound, den wir machen werden, ist Sound 2D abzuspielen. Welchen Sound möchtest du spielen? Nun, lassen Sie uns hier einen unserer verschiedenen Kaskadeneffekte betrachten. Zieh dich davon ab. Wir holen uns eine Kopie. ziehen wir hier rein. Wie wir spezifizieren können, denken Sie an unseren Feuerball-Zauber hier, wir haben zwei mögliche Casting-Soundeffekte, Element 0 oder Element eins. Wählen wir also zufällig eine aus. Also ziehe ich mich von hier zurück und zufällige Ganzzahlen im Bereich ein. Wir gehen zwischen 01. Das wird also unser letzter Aufbau sein, indem wir unsere Strike hier nutzen. Ordnung, also richte das ziemlich gut ein. Ich glaube, das habe ich verstanden. Ordnung, lassen Sie uns weitermachen und kompilieren , um sicherzustellen, dass das Skript einsatzbereit ist. Speichern, Lass uns reinspringen und spielen und dann drücken, dass es neun Tasten gibt. Hey, setze unser Debug-Objekt, springe zurück. Los geht's. Und los geht's. Präzedenzfall Nike, Sie sollten einige Texte hier oben sehen. U del 25, Feuerballschaden. Ich weiß, dass zwischen Feuerball und Schaden kein Platz ist. Und wenn ich das noch einmal erweitere , sollten Sie hören, wie einer dieser beiden Soundeffekte zufällig abgespielt wird. Ordnung, ich weiß also, dass das ein sehr einfaches Setup war, aber ich werde Sie herausfordern, zu versuchen, diese Art von Setup zu erweitern. Ich möchte, dass du sie selbst ausprobierst und sicherstellst, dass du nur dann einen Zauber wirken kannst , wenn du genug Manier hast. Wir verwenden unsere Monocotyle hier nicht. Probieren Sie also etwas anderes aus. Stelle sicher, dass du nicht erneut casten es sei denn, du bist abgekühlt, die Dauer ist Versuche das, versuche, einem Zauber, den du hier wirkst, einen Emitter oder ein Partikelsystem hinzuzufügen . Versuchen Sie auch dies, versuchen Sie, eine Vektorposition anzugeben, an der dieser angegebene Zauberspruch das angegebene Partikelsystem spawnen soll. sind alles Dinge, denen einige Vorkenntnisse in diesem Kurs vorliegen. Ich möchte, dass Sie jetzt versuchen, das zu beenden Lassen Sie uns auch über eine andere mögliche Verwendung sprechen. Stell dir vor, du hattest ein Questsystem Du kannst einen Namen, einen Ort, Feinde angeben, die gespawnt oder besiegt werden sollen, und vielleicht Belohnungsarten und -mengen , die alle in einer Struktur enthalten sein könnten. Oder vielleicht könnten alle Charakterbasisattribute in einer Struktur enthalten sein. Und Sie können Dinge wie Name, Geschwindigkeit, Gesundheit, all diese Dinge angeben . Okay Leute, das reicht aus, um dieses Video über die sehr nützliche Struktur anzubieten . Wir sehen uns im nächsten. 75. Übersicht der Flow: Ordnung, wir sind endlich an dem Punkt im Kurs angekommen , an dem es höchste Zeit ist , über Flusskontrollknoten zu sprechen. Nun, ich weiß, dass Sie gesehen haben, dass ich bis zu diesem Zeitpunkt im Kurs viele dieser Flusskontrollknoten verwende. Wir haben jedoch noch keine offizielle Diskussion darüber geführt , da es viele Themen zu behandeln gibt. Das endet also jetzt. Hier beginnt unser Gespräch über Flow Control Node. Unser Ziel in diesem Video ist es also, einfach einen Überblick und ein Verständnis darüber zu erhalten , was Flow Control Nodes sind und Zweck sie in Skripten haben, ein tieferer Zweck. Wir werfen auch einen kurzen Blick auf häufig verwendete Ablaufsteuerungsknoten, die in Skripten verwendet werden. Beginnen wir damit, zu definieren, welche Flusskontrollknoten, auch unsere Flusskontrollknoten , Knoten sind, die es ermöglichen, den Ausführungsfluss basierend auf Bedingungen zu steuern . Sie bewerten einige Dateneingaben. Und abhängig von den Eingaben haben sie bestimmt, welcher Ausführungs-Out-Pin ausgelöst wird oder wann ein Ausführungs-Out-Pin ausgelöst wird, steuern beide im Wesentlichen den Ausführungsfluss. Zum Beispiel haben wir diesen Branch-Knoten hier oben. Wir können hineinfließen. Und dann können wir basierend auf einer Bedingungseingabe aus dem wahren Zweig herausfließen wenn die Bedingung wahr ist, oder wir können aus dem falschen Zweig herausfließen , wenn die Bedingung falsch ist. Jetzt haben Flusskontrollknoten oben eine graue Färbung. Und wie wir bereits in unserem Makroabschnitt erwähnt haben, sind Flusskontrollknoten Makros, und Sie können dies sehen, indem Sie einfach auf eines davon doppelklicken. Ich werde hier auf meinen Gate-Knoten doppelklicken. Und das wird meine Standard-Makros-Bibliothek öffnen. Dies sind Makros, Flow Control Nodes sind Makros. Nun, wo können wir ein paar dieser Flusskontrollknoten finden ? Und hier sind einige der häufigsten, die Sie in Skripten finden. Ich habe das alles in meinem Level Blueprint als kurzen Überblick über viele der gängigen. Wenn Sie nach einigen davon suchen, können Sie sie natürlich nach Namen durchsuchen, indem rechten Maustaste klicken und sie anhand des Titels hier suchen . befinden sich auch unter dem Rechtsklick-Menü, direkt hier unter Dienstprogramme. Und dann können Sie im Utility-Bereich unter Flusskontrolle geraten. Und dort befinden sich ein paar davon. Nun, es ist erwähnenswert, dass ich hier diesen ausgewählten Knoten werfen werde , der kein graues Banner hat. Es handelt sich offiziell nicht um eine Durchflusskontrolllast. Ich werde es auch in diesen Abschnitt aufnehmen weil es den Datenfluss steuert, der basierend auf Indexeingaben ausgegeben wird . In gewissem Sinne ist es also eine Art Flusskontrollknoten. Deshalb werde ich es auch aufnehmen. Super praktischer Knoten, um übrigens noch ein paar Dinge zu wissen , die Sie über Flusskontrollknoten wissen sollten. Viele von ihnen haben Hotkeys und ich habe diese in die Node-Kommentare hier aufgenommen. Und so können Sie bei einem Verzweigungsknoten sehen, dass Sie, wenn Sie die B-Taste gedrückt halten linken Maustaste klicken, einen Zweig einblenden. Das sind super praktische Tricks. Ich würde empfehlen , dass Sie sich kennenlernen , da Sie diese Knoten ständig verwenden werden. Außerdem sind Flusskontrollknoten nützlich, um Gating oder Einschränkungen zu erstellen , wenn ein Skriptbereich auftritt. Sie sind auch nützlich, um festzustellen , welches Bit des Skripts als nächstes passiert. Das ist also etwas, das Sie über Flusskontrollknoten wissen sollten , die Sie im Hinterkopf haben. Sie sind nützlich, um festzustellen, wann ein Skriptbereich auftritt, welches Skriptbit passiert. Weiter. Ein Beispiel dafür, welches Skript als nächstes passiert, wäre ein Zweig. Fließe ich aus dem Wahren oder Falschen heraus? Ein Beispiel dafür, wann ein Skriptbereich auftritt, wäre unser Gate-Knoten. Und dazu können Sie im Gate-Node-Video selbst mehr erfahren . Okay Leute, das wird für alle vier ausreichen, um die Übersicht über die Flusskontrolle zu haben. Wir sehen uns im nächsten Video. 76. Zweig: Willkommen! In diesem Video ist es unser Ziel zu lernen, wie man den Verzweigungsknoten anhand eines äußerst verbreiteten Szenarios mit verschlossenen Türen als Demonstration verwendet. Lassen Sie uns zunächst definieren, was ein Verzweigungsknoten ist. Sie haben gesehen, dass ich bis jetzt mehrere davon verwendet habe. Verzweigungen sind im Wesentlichen eine Wenn-Dann-Anweisung codiert. Sie dienen als einfache Möglichkeit, einen Entscheidungsbasisfluss aus einer einzigen wahren oder falschen Bedingung zu erstellen . Nach der Ausführung betrachtet der Branch-Knoten den eingehenden Wert des angehängten booleschen Werts. Sie können eine boolesche Variable daran anhängen oder Sie können einfach hartcodiert werden, indem Sie die Ausgaben aktivieren oder deaktivieren. Und dann wird dies einen Ausführungsimpuls über den entsprechenden Ausgang ausgeben. Wenn das stimmt und das ist es, was das Häkchen bedeutet, wird es hier herausfließen. Wenn dies falsch oder nicht aktiviert ist, fließt es hier raus. Der Hotkey zum Platzieren in Ihrem Diagramm besteht darin, einfach die B-Taste gedrückt zu halten und mit der linken Maustaste zu klicken. Nun ist es erwähnenswert, dass wir zuvor einen Branch-Knoten verwendet haben. Wir haben dies während der Einführung der booleschen Variablen getan. Und das haben wir in unserem ThirdPersonCharacter gemacht. Warum findest du also nicht deinen ThirdPersonCharacter? Sie finden das im Ordner Blueprints für Dritte. Doppelklicken Sie darauf, um es zu öffnen. Und was wir während des Boolean-Videos gemacht haben, ist, dass wir es gemacht haben. Als wir also die Eingabeaktion über die Leertaste gesprungen haben, haben wir den Zustand unserer booleschen Variable can jump ausgewertet . Und wenn es wahr war, was wir derzeit standardmäßig haben , dann können wir springen. Wenn es falsch ist, können wir nicht springen. Und wir können das sehen, indem wir einfach versuchen zu spielen, wenn ich mein Debug-Objekt dorthin schicke. Und wieder einmal, das ist wahr. Und das können Sie sehen, wenn Sie mit der Maus darüber fahren, während Sie spielen. Und wenn ich die Leertaste drücke, siehst du, dass ich tatsächlich einspringe. Sobald ich freilasse. Da haben wir's. Wenn ich mich jedoch ändern sollte, Ken auf falsch gesprungen, wir drücken die Leertaste. Dies wird als falsch bewertet und es wird nichts passieren. Also lasst uns weitermachen und das versuchen. die Leertaste drücken, können Sie genau hier sehen, wie der Ausführungsablauf stirbt , da dies als falsch ausgewertet wird, was wir in dem kleinen Tooltip sehen können. Es wurde nie über diesen Zweig hinausgekommen. Es stoppt genau dort den Hinrichtungsfluss. Ordnung, versuchen wir hier ein anderes Szenario zu zeigen. Also werde ich im Abschnitt My Blueprint des ThirdPersonCharacter Blueprint eine brandneue Variable erstellen Abschnitt My Blueprint des ThirdPersonCharacter Blueprint des ThirdPersonCharacter Blueprint hier ganz unten auf die Plus-Schaltfläche klicken Ich nenne das Hes Key Fragezeichen. Und das kompiliere ich nicht. Und nur um Sie hier wissen zu lassen, ich werde diesen Schlüssel als falsch belassen. Ich habe den Schlüssel nicht sofort. Eigentlich, weißt du was, ich werde es auf wahr überprüfen und ja sagen, unser Charakter hat den Schlüssel. Also kompilieren wir diesen Spielstand. Und dann springen wir zurück zu unserem Inhaltsbrowser hier, ich möchte in unseren Blueprint-Bereich gehen. Wir haben unsere rotierende Tür, die wir erstellt Diese Blaupause ist eine Blaupause für rotierende Türen, als wir über die Rotatorvariablen gesprochen haben . Du kannst das Video überprüfen, wenn du diese Tür nicht erstellt hast Ich klicke mit der linken Maustaste und ziehe sofort in mein Level. Dann doppelklicke ich darauf, um es zu öffnen. Wir werden unser Skript hier nur ein wenig modifizieren. Also was ich tun werde ist, dass ich unseren Get Player-Charakter hier und genau hier und genau hier töten werde unseren Get Player-Charakter hier und genau hier und genau hier töten . Das war eine Möglichkeit, die wir dort gerade eingerichtet hatten, um zu überprüfen, ob es unser ThirdPersonCharacter war, der diese Tür überlappte. Was ich jetzt tun werde, ist, dass wir uns diesen anderen Schauspieler-Pin schnappen. Wir werden auf unseren ThirdPersonCharacter übertragen. Das ist eine andere Art zu überprüfen, hey, wer ist das Ding, das uns überlappt hat? Und wieder aktivieren wir das Kästchen als die Komponente, die wir überprüfen, um die Box-Komponente genau dort zu überlappen. Wir werden das durchleiten. Wir werden nur etwas tun, wenn es ein ThirdPersonCharacter war , der uns überlappt. Wir werden diese Tür jedoch noch nicht öffnen, es sei denn wir finden heraus, dass unser ThirdPersonCharacter den Schlüssel hat Wenn du deinen ThirdPersonCharacter auf diese Weise wirfst, müssen wir uns noch offiziell unterhalten über Casting-Knoten. Wir können in unseren ThirdPersonCharacter gelangen und auf alle Funktionen oder Variablen oder ähnliches zugreifen alle Funktionen oder Variablen oder , das sich dort befindet. Wir könnten eine Funktion aufrufen Zugriffsvariablen usw. Insbesondere wollen wir hier austrocknen und herausfinden , dass r den Schlüssel hat. Wir kriegen, hat unser Spieler den Schlüssel? Wenn Sie das nicht sehen und versuchen, das zu tun, was ich gerade gemacht habe, stellen Sie sicher, dass Ihr Third-Person-Charakter kompiliert wurde , nachdem Sie ihn erstellt haben, der den Schlüssel Boolean Nun wieder einmal, das ist standardmäßig wahr, so haben wir es festgelegt. Also werden wir das als unsere Bedingung benutzen. Wenn es stimmt, dass unser Spieler einen Schlüssel hat, öffnen wir unsere Tür. Wenn das alles an Ort und Stelle ist. Ich werde mir jetzt keine Sorgen über diese Endüberschneidung machen. Ich mache mir nur Sorgen um die Eröffnung. Lass uns weitermachen und das zusammenstellen. Lass uns sparen und dann lass uns das mal spielen. Ordnung, damit wir überprüfen können, ob R-Skript funktioniert, hier können Sie Ihr Debug-Objekt setzen. Wenn Sie genau dort mehrere Türen haben, können Sie sagen, welche Tür Sie auschecken, um festzustellen, ob sie funktioniert. In Ordnung, los geht's. Wir sollten diesen Schlüssel haben, weil wir das standardmäßig als wahr bezeichnet haben, dieser boolesche Wert. Und los geht's, es wird sich öffnen. Lass mich jetzt einfach zurück zu meinem Third-Person-Charakter springen . Ich werde den Schlüssel auf false ändern, kompilieren speichern. Kehren wir zu einer rotierenden Tür zurück, klicken Sie hier auf Play. Und jetzt hat unser Charakter nicht den Schlüssel. Also lass uns weitermachen und du siehst, dass wir uns dieser Tür nähern. Sie können sehen, dass es zu Überschneidungen kommt, aber es stoppt den Hinrichtungsfluss genau hier in unserer Filiale. Ordnung, wir springen zurück zu unserem ThirdPersonCharacter Blueprint hier in diesem Sprungabschnitt des Skripts. Ich wollte darauf hinweisen, dass Ihre Konditionierung einer vierjährigen Filiale nicht nur eine einzige Variable wie diese sein muss. Und es muss auch nicht nur eine einzige harte Eingabe sein , die durch Aktivieren dieses Kontrollkästchens oder Deaktivieren dieses Kontrollkästchens bedingt durch Aktivieren dieses Kontrollkästchens oder Deaktivieren dieses Kontrollkästchens Sie können tatsächlich eine kompliziertere Bewertung durchführen , wenn Sie so wollen. Und wenn ich hier nach links gehe, zeige ich einige andere Knoten, bei denen oft festgestellt wird, dass sie an einen Zweig angeschlossen sind. Und das sind diese Typen hier. Wir haben einen Anti-Knoten, NAND-Knoten in oder ein NOR und ein X oder wenn Sie so wollen. Die Kommentare hier beschreiben also, wie diese funktionieren, aber wir können einige davon ausprobieren. Ich probiere das mal aus , weil es sehr häufig vorkommt. Sie können versuchen, eines davon direkt hier in Ihre Filiale zu stecken . Und wir können sogar unseren Ken-Sprung nutzen , ist eine der Bedingungen. Dies gibt nun true zurück, wenn alle Eingaben wahr sind. Lassen Sie mich einfach auf diesen Plus-Button klicken. Lass uns viermal gehen. Wir könnten immer mehr Eingangspins hinzufügen. Jetzt stecke ich meine Dose rein. Jetzt kann ich momentan springen. Das ist falsch, aber ich überprüfe alle anderen. Nun sollte dies nur true zurückgeben, wenn alle Eingaben wahr sind, diese drei sind wahr. Kann hier springen ist es aber nicht. Das sollte meinen Charakter daran hindern, zu springen , da nicht alle wahr sind. Kompiliere das und spiel. Drücke die Leertaste. Du kannst sehen, ich kann springen, mich umziehen, hier zur Wahrheit springen, reinspringen und spielen. Und jetzt kann ich springen, alle vier sind wahr. Als nächstes zeige ich, dass dieser NAND-Knoten, den ich springen kann, wie alle anderen auf true gesetzt ist. Dies wird zu false ausgewertet, da alle Eingaben wahr sind. So funktioniert das hier. Es wird also nur false zurückgegeben , wenn alle Eingaben wahr sind. Also drücke ich die Leertaste, kann nicht springen. Wenn ich jedoch eines dieser beiden falschen ändern würde und es eines davon sein könnte, das ich auswähle, dann wird es als wahr bewertet. Jetzt kann ich springen. Der OR-Knoten gibt true zurück, wenn eine Eingabe wahr ist. Ich habe also drei davon, die falsch sind, aber mein Sprung hier ist wahr. Wenn Sie also hier auf Play klicken und die Leertaste drücken, die Leertaste drücken, wird es als wahr bewertet, da nur eines, das alles ist, was ich brauche, wahr ist. Als nächstes haben wir den Neuronode. Dies wird nur dann zu true ausgewertet, wenn beide Eingaben hier falsch sind. Derzeit ist meine boolesche Variable falsch, ebenso wie dieser leere Slot hier. Wenn ich also auf Play klicke, siehst du, dass ich springen kann. Wenn ich jedoch auch nur eines davon auf wahr setzen sollte, springen Sie wieder rein und spielen Sie. Sie können sehen, dass dies als falsch bewertet wird. guter Letzt haben wir diesen XOR-Knoten und dieser wird als true ausgewertet, wenn die Eingaben nicht identisch sind. Also momentan ist mein Ken-Sprung auf false gesetzt. Dieses Kontrollkästchen ist auf true gesetzt, sodass sie nicht identisch sind. Dies sollte also das wahre Einspringen und Spielen bewerten. Ja, in der Tat, ich kann springen, wenn ich festlegen würde, dass beide gleich sind. Im Moment sind beide falsch. Springe ein und spiel. Es wird nicht als wahr bewertet. Da hast du es also. sind einige nützliche Knoten, einige komplementäre Knoten , die oft an den Bedingungseingang eines Verzweigungsknotens angeschlossen sind . Lassen Sie uns also über einige Verwendungsmöglichkeiten für Verzweigungsknoten sprechen. Nun, du könntest die Frage stellen, der Spieler genug, um einen Zauber zu sprechen? Hat der Spieler genug Manna, um einen Gegenstand zu kaufen? Sie könnten eine Bewertung des Geldes vornehmen, dass der Spieler einen ganzzahligen Wert des Geldbetrags im Vergleich zu dem Geldbetrag hat einen ganzzahligen Wert des Geldbetrags , der für den Kauf eines Gegenstands erforderlich ist. Ob das stimmt oder falsch ist. Sie können dies auswerten, um festzustellen, ob der Kauf abgeschlossen wird. Wie sieht es aus, ist ein Spieler am richtigen Ort , um einen Gegenstand zu benutzen? Oder vielleicht, hat der Spieler wenig Gesundheit, könntest du bewerten? Hat der Spieler fünfundzwanzig Prozent Gesundheit oder weniger? Wenn das stimmt, könntest du eine Sache tun , anstatt wenn es falsch ist, du könntest eine andere tun. Okay Leute, das reicht aus, um diese Diskussion auf Branch Nodes anzubieten , wir sehen uns im nächsten Video. 77. Sequenz: Willkommen! In diesem Video ist es unser Ziel zu erfahren, wie der Sequenzflusssteuerungsknoten in Skripten verwendet werden kann . Mit diesem Knoten können Sie jetzt mehrere Abschnitte von Skripten gleichzeitig und auf organisierte Weise abfeuern . In diesem Video werde ich jetzt in meinem Level Blueprint arbeiten. Wenn Sie also zu Hause mitspielen möchten und vergessen haben, wie Sie da reinkommen. In deinen Landkarten. Komm einfach hierher, öffne Level Blueprint und das bringt dich direkt dorthin. Ordnung, was ist ein Sequenzknoten? Es ist eines, das es ermöglicht, dass ein einzelner Ausführungsdrahteingang mehrere Ausführungsausgänge auslöst. Das ist großartig für Veranstaltungen. Sie können nur eine Kopie eines Ereignisses innerhalb eines Skripts haben , wie Start Play, Begin, Overlap usw. Jetzt können Sie hier mehrere Ausgabe-Pins hinzufügen , wenn es mehrere Dinge gibt, aus denen Sie heraus tun möchten, Sag, beginne das Spiel, indem du einfach auf diesen Plus-Button klick Wenn Sie nun einen dieser Ausgabeausführungs-Pins entfernen möchten , können Sie einfach mit der rechten Maustaste darauf klicken und sie auf diese Weise entfernen. Dies ist ideal , um Skripte zu organisieren und eines davon hinzuzufügen, da dies ein so häufig verwendeter Knoten ist, Sie einfach die S-Taste gedrückt halten dann mit der linken Maustaste klicken und das bringt einen für dich rein. Lassen Sie uns also eines davon in unseren Level-Blueprint verwenden , um die Dinge nicht zu beschleunigen. Ich habe ein kleines Skript, das ich im Voraus hier in meinem Level Blueprint eingerichtet habe. Aber das ist alles in Ordnung und gut, ich erkläre, was ich getan habe, damit du zu Hause mitspielen kannst. Deshalb möchte ich drei Dinge tun, wenn ich anfange, hier zu spielen. Lassen Sie mich also den Event-Knoten hereinbringen und mit dem Spielen beginnen. Ich kann die P-Taste gedrückt halten und linken Maustaste klicken, um Event Begin Play aufzurufen . Und nur um zu zeigen, dass nur eines dieser Ereignisse innerhalb eines Diagramms beginnen kann . Wenn ich versuche, mit der rechten Maustaste und etwas leeres Feld zu klicken, fange ich an, so zu spielen. Es bringt mich einfach direkt dazu. Oder wenn ich den PT gedrückt halte und erneut mit der linken Maustaste klicke , habe ich nichts bekommen. kann also nur einer von ihnen in ein Diagramm passen. Jetzt, Gehe zum Hookup-Event und beginne mit dem Spiel Dies wird ausgelöst, sobald wir anfangen, unser Spiel zu spielen. Und ich fließe das durch einen Sequenzknoten. Und der Grund, warum ich das mache, ist, dass ich drei Dinge außerhalb von Event machen wollte . Beginne zu spielen. Ich möchte einen Sound abspielen. Das wird ein bisschen begonnene Musik sein. Ich werde meinen Spielercharakter als das Casting auf meinen ThirdPersonCharacter bekommen. Und ich habe das hier zu einer Variablen heraufgestuft, damit ich einen Verweis auf meinen ThirdPersonCharacter speichern kann einen Verweis auf meinen ThirdPersonCharacter speichern falls ich später etwas mit meinem ThirdPersonCharacter machen wollte , müsste ich einfach ziehe eines davon per Drag & Drop in mein Diagramm. Dann ist die andere Sache, die ich hier machen wollte etwas Ausgefalleneres. Ich habe einen Zielpunkt innerhalb meines Levels platziert. Eine davon finden Sie im Panel Place Actors. Also bin ich hierher gegangen, habe ein Panel für Ortsdarsteller hinzugefügt, nach einem Zielpunkt gesucht, es fügt einfach ein Symbol zu Ihrem Editor hinzu und es definiert einen Punkt im Raum für Sie, den Sie in einem Diagramm verwenden können wie ich es benutze. Wenn die Zielpunkte ausgewählt sind, halte ich die R-Taste gedrückt, um in Referenz zu sein, und klicke mit der linken Maustaste, und so erhalte ich einen Verweis darauf. Dann habe ich einfach herausgezogen, den Standort des Schauspielers aus dieser Suche nach einem zufälligen Punkt im Begrenzungsrahmen gezogen , ich gebe eine Größe für einen Begrenzungsrahmen an, das ist im Wesentlichen ein Bereich innerhalb meines eben um, zentriert um meinen Zielpunkt. Dann mache ich das unter Drogen , um eine Transformation vorzunehmen. Alles was mir wirklich wichtig war, war die Lage. Die Rotationsskala war mir egal. Dann ziehe ich mich raus und habe nach einem Spawn-Schauspieler aus dem Klassenknoten gesucht . Hier spezifiziere ich meinen BPMN, einen Trank, den ich früher im Kurs erstellt habe. Sie können hier eine beliebige Klasse angeben, das ist nicht wirklich wichtig. Das sind also die drei Dinge, die ich von Anfang an tun möchte. Also Event Begin Play genau hier mit einem Sequenzknoten. Ich kann bam, bam, bam gehen. Und wenn Sie Ihr Skript etwas besser organisieren möchten , können Sie auf einen Draht doppelklicken um einen Umleitungsknoten einzufügen. Auch hier sind Sequenzknoten eine großartige Möglichkeit , Ihre Skripte zu organisieren. Also werde ich das kompilieren , um sicherzustellen, dass mein Skript gut aussieht. also mit dem Spielen beginnen, sollten wir etwas Musik hören. Wir werden einen Hinweis auf unseren Charakter haben und wir werden einen Mann hervorbringen, einen Trank. Jetzt kann ich das Spiel spielen und mir das ansehen, oder ich kann das Spiel simulieren und wir sollten diese Musik hören. Und wir sollten diesen Trank spawnen. Das alles wird hinter den Kulissen passieren. Also das, du wirst einfach darauf vertrauen, dass das passieren wird. Aber wir werden etwas hören und etwas sehen, damit ich das Spiel spielen kann. Und er sah, dass Emanzipation hier geboren wird. Ein bisschen Musik. Oder wenn du das testen möchtest, kannst du auch dein Spiel simulieren. Um dies zu tun, können Sie hier unter Ihre drei Punkte kommen und simulieren. Und Sie können den Hotkey dafür sehen. Wenn Sie jetzt Ihr Spiel simulieren, lassen Sie Ihr Spiel den gesamten Code ausführen, das gesamte Skript läuft auch. In wen auch immer du nicht springst und dein Spiel spielst. Wenn du also genau hier klickst, kannst du sehen, dass es auf eine Art und Weise Trank spawnt. Und ein bisschen Musik läuft auch. Ich kann das beenden. Alternativ. Das ist ein Civil, momentan bin ich im Simulationsmodus. Beachten Sie nur, dass alternativ, wenn Sie Alt plus S verwenden , dies auch den Simulationsmodus ausführt. Das ist großartig, um dein Spiel einfach zum Laufen zu bringen. Und du willst einfach so herumfliegen und die Dinge überprüfen. Bevor wir dieses Video abschließen, wollte ich nur beweisen, dass Sie keine Sequenzknoten verwenden müssen. Sie sind im Wesentlichen ein Knoten vom Typ Lebensqualität , um Ihre Skripte besser zu organisieren. Hier ist genau das gleiche Setup ohne den Sequenzknoten. Es wird genau die gleichen Dinge tun. Meine Verkabelung ist jedoch ein bisschen kreuz und quer. Und Sie können sich vorstellen, wenn ich 45610 Dinge hätte, die wirklich, sehr chaotisch werden könnten. Wenn ich also hier auf Spielen klicke, kannst du sehen, dass ich diesen Madam-Trank, Länder und Musik usw. habe . Oft kommen diese Sequenzknoten direkt nach einem Ereignis, um eine Sache zu tun, eine zweite Eine Sache, eine dritte Sache, und so weiter. Aber da muss es nicht hin. Sie können sie in Ihrem Drehbuch dort platzieren , wo sie sinnvoll sind. Auf etwas anderes wollte ich hier auch hinweisen. Auch hier können Sie nur eine Kopie eines Events mit dem Spiel beginnen lassen, Eventbeginn überschneidet sich mit solchen Dingen. Es gibt jedoch bestimmte Ereignisknoten, wie Eingabeereignisse wie unseren acht Schlüssel, denen Sie mehrere Kopien haben können. Ein Fall wie dieser. Sie würden keinen Sequenzknoten benötigen, da Sie ein Ereignis haben und drei Dinge tun können. Um das zu beweisen, klicken Sie einfach auf den Knopf. Hallo, bist du da? Hallo, bist du da? Brauche also keinen Sequenzknoten für so etwas. Obwohl das auch keine schlechte Idee wäre. Sequenzknoten, Art der Lebensqualität, beachten Sie, ich benutze sie ständig. Das reicht aus, um dieses Video anzubieten. Wir sehen uns im nächsten. 78. Mach mal: Willkommen! In diesem Video möchten wir lernen, wie wir den Do Once-Knoten in unseren Skripten verwenden können . Nun, dies ist ein ziemlich selbsterklärender Knoten , den Sie anscheinend nur ab und zu verwenden müssten . Es stellt sich heraus, dass dieser Knoten in allen möglichen Szenarien nützlich ist. Also, was will das Do nicht tun, nun, es löst einen Ausführungsimpuls aus, wenn es einmal herauskommt . Ab diesem Zeitpunkt wird es die gesamte ausgehende Ausführung einstellen. Es wird nicht wieder von hier aus in ein anderes Skript ausgelöst , das Sie hier haben, bis Sie hier einen Impuls in den Reset-Eingang gesendet haben. Sobald Sie das getan haben, kann es wieder einmal geschehen. Um diesen Knoten in Ihr Diagramm zu bringen, können Sie mit der rechten Maustaste klicken und eine Suche nach einmal durchführen oder die O-Taste gedrückt halten Sie können mit der linken Maustaste klicken und schon erhalten Sie Ihren. Lassen Sie uns das nun auf die Probe stellen , indem wir hier ein Beispiel durchgehen. Dafür werde ich in meinem Level Blueprint arbeiten , damit du hier darauf zugreifen kannst. Öffnen Sie Level Blueprint. Außerdem wollte ich hier darauf hinweisen, dass wir auf eine Variable innerhalb unseres Third-Person-Charakters zugreifen werden eine Variable innerhalb unseres Third-Person-Charakters zugreifen . Wenn Sie also gerade gekommen sind , um Video direkt zu besuchen, öffnen Sie Ihren ThirdPersonCharacter. Innerhalb dieses Pfades werden wir auf diese gesamte XP Earned Integer-Variable innerhalb unseres ThirdPersonCharacter zugreifen diese gesamte XP Earned . Wenn Sie das nicht haben, erstellen Sie eine ganzzahlige Variable, ich habe den Standardwert auf 0 gesetzt. Stellen Sie sicher, dass Sie es auch kompilieren, da wir in Kürze hier darauf zugreifen werden. Ordnung, gehen wir zurück zu unserem Level-Blueprint. Das erste, was wir brauchen, ist eine Veranstaltung. Und lassen Sie uns das tatsächlich mit einer Überlappung von Ereignissen machen. Lass uns einen Bereich innerhalb unseres Levels überlappen und dann unserem Charakter einige Erfahrungspunkte hinzufügen , um so fantastisch zu sein und zu diesem Punkt zu gelangen. Gehen wir also zurück zu unserer Testkarte und fügen eine Triggerkugel hinzu. Wenn Sie dieses Place Actress Panel nicht haben, finden Sie es hier. Platziere das Schauspieler-Panel, damit wir dazu kommen. Platzieren wir eine Trigger-Kugel innerhalb unseres Levels. das im Detailfenster ausgewählt ist, werde ich den Kugelradius vergrößern ihn etwas größer machen. Ich werde auch unter den Rendering-Bereich kommen, unkontrolliertes Schauspieler-verstecktes Spiel, damit wir diese Sphäre sehen können. Nachdem dies ausgewählt ist, springe ich zurück zu meinem Level-Blueprint. Wir klicken mit der rechten Maustaste auf Event hinzufügen dafür. Kommt unter, Kollision Ereignis hinzufügen. Wir werden bei Begin Overlaps etwas tun. Das erste, was wir tun wollen, ist zu überprüfen, ob es unser ThirdPersonCharacter ist, der uns überlappt. Also können wir hier einen Check machen indem wir uns diesen anderen Schauspieler-Pin schnappen einen Cast to ThirdPersonCharacter machen. Und wir werden später im Kurs offiziell über Casting sprechen , der bald veröffentlicht wird. Und wenn das alles erledigt ist, können wir in unseren ThirdPerson-Charakter gelangen und wir werden die gesamten verdienten EP erhalten. Und ziehen wir einfach ein Hier raus drücken den Plus-Knopf. Wir fügen hinzu, wir sagen, dass wir 100 Erfahrungspunkte hinzufügen werden, um diese Sphäre zu erreichen. Gute Arbeit, Typ. Dann ziehen wir uns aus unserem ThirdPersonCharacter heraus und suchen nach den gesamten XP. Wir richten es ein. Also kriegen wir es und fügen 100 hinzu. Wir werden das als neuen aktualisierten Wert festlegen. Wir wollen das jedoch nur ein Mal machen. Wir wollen es nicht schaffen, dass wir diese Sphäre immer wieder überlappen und 100 Erfahrungspunkte sammeln können diese Sphäre immer wieder . Wir wollen nur sagen: Hey, du hast es beim ersten Mal gemacht. Das ist großartig. Nie wieder wird hier durch den Arduino will Node fließen . Vergeben Sie dann die 100 Erfahrungspunkte. Zu guter Letzt müssen wir warten , um das zu überprüfen. Also ziehe ich mich von hier ab und mache einen Druckstring. Und wir werden das einfach auf den Bildschirm drucken , indem wir unsere gesamten verdienten XP in die Zeichenkette ziehen , es wird diese Ganzzahl in eine Zeichenkette konvertieren. Kompiliere das, spare. Lass uns weitermachen und spielen, um das zu testen. Ich setze mein Debug-Objekt dort auf meine Testmap. Und lassen Sie uns das überlappen und sehen wie großartig wir 100 Erfahrungspunkte gesammelt haben. Schauen Sie also direkt in dieser Ecke des Bildschirms nach. 100 Erfahrungspunkte. Das sollte nur einmal passieren. Also werde ich diese Überlappung beenden und dann werde ich mich wieder überlappen. Siehst du, dass es in die Do-Wünsche geflossen ist? Nein, aber es floss nicht darüber hinaus, weil dieser Knoten sagt, mach es einmal und nie wieder. Ordnung, jetzt versuchen wir dies mithilfe einer anderen Eingabe zurückzusetzen. Lass mich einfach mit der rechten Maustaste auf einen leeren Bereich klicken. Ich werde sicher nach der Tastatur suchen, die F-Taste. Wenn ich also die F-Taste drücke, setze ich das zurück. Und so geht's los. Ich werde das kompilieren. Ich werde spielen, ich werde das überlappen. Du siehst, dass ich meine 100 Erfahrungspunkte erhalte. Ich überschneide mich gerade wieder, ich kann hier nicht darüber hinausgehen. Wenn ich jedoch die F-Taste drücke, schauen Sie hier, wie wir die linke Taste drücken. Es wird es zurücksetzen. Also sollte es einmal gehen. Ich erhalte erneut 100 Erfahrungspunkte. Es hört auf, weil es erst macht , wenn ich die F-Taste drücke. Es wird mir erlauben, es noch einmal zu tun. Da haben wir's. So funktioniert die F-Taste, um das noch einmal zurückzusetzen. Beachten Sie nun, dass es auf diesem Do Once-Knoten eine boolesche Eingabe gibt , bei der Sie geschlossen beginnen können oder nicht. Derzeit fangen wir nicht in der Nähe an. Sie können eine boolesche Variable einfügen, wenn Sie bei close beginnen möchten oder nicht. Also lass mich dir das einfach zeigen. Wenn ich einen Abschluss beginne, habe ich das Kästchen angekreuzt und spiele jetzt. Ich werde diese Sphäre überlappen. Aber es geht hier nicht darüber hinaus. Ja, es heißt das Dual will nein, aber wir beginnen geschlossen, was bedeutet, dass wir es hier zuerst zurücksetzen müssen , damit es eines macht. Wenn ich jetzt F drücke, wird es zurückgesetzt. Und jetzt kann ich über ein einziges Mal hinausgehen. Nicht wieder, drücke F. Also wollte ich auch darauf hinweisen. Diese Startkleidung kann sicherstellen, dass wir sie beim ersten Mal in diesem Fall überlappen. Du machst es eigentlich nicht einmal, dass du es zuerst zurücksetzen musst. Lassen Sie uns darüber sprechen, was einige Verwendungsmöglichkeiten für die du once note sind , nun, denken Sie an eine Level-Up-Fanfare oder Benachrichtigung , wenn Sie einen bestimmten Schwellenwert für Erfahrungspunkte erreicht haben, wissen Sie, Sie haben 5 erreicht tausend Erfahrungspunkte. Du bist aufgestiegen. Sie möchten nur, dass das zum ersten Mal gespielt wird, wenn Sie 5.000 Gesamterfahrungspunkte überschreiten, nicht 5.005, nicht 5.010 usw. Oder wie wäre es, wenn du mit einer Schatztruhe interagierst? Du willst es öffnen, aber öffne es nur einmal. Das wäre eine weitere großartige Verwendung eines Do One Snowed. Oder wie wäre es mit einer Mineralernte? Du hast etwas Eisenerz in deinem Level und gehst darauf zu und du kannst es nur einmal ernten. Und dann vielleicht ein Timer oder könnte eingestellt werden, damit das geerntet werden kann. Nochmals, sagen wir nach einer Stunde, zwei Stunden usw. sind also alle möglichen Verwendungen des Dew wills-Knotens. Sehr üblich, es zu benutzen. Ich liebe es. Einer meiner Lieblings-Flusskontrollknoten, Leute , die diesen anbieten werden, wir sehen uns im nächsten. 79. Do N: Willkommen! In diesem Video ist es unser Ziel, dieses Wissen über den do n -Knoten, auch bekannt als Dawn-Knoten, zu erlangen und dessen praktische Verwendung zu demonstrieren . Dies ist eine großartige Notiz, um die Häufigkeit einzuschränken , mit der etwas getan werden kann. Also was tun und nein tun? Nun, es wird im Ausführungsimpuls n oft ausgelöst , wie durch diesen Integer-Eingang hier definiert, Sie können einen ganzzahligen Wert eingeben oder Sie können ihn hart einstellen, als hätte ich die Zahl 37 hier. Nachdem dieses Limit erreicht wurde, wird die gesamte ausgehende Ausführung bis ein Impuls zurück in den Reset-Eingang gesendet wird. Wenn wir also in diesem Fall eine Eingabetaste daran anschließen würden , sagen wir die F-Taste für Feuer. Wir würden aus diesem Ausgang heraus feuern, diese Ausführung wurde 30 Mal ausgegeben. Und nach 30 Mal müsste ich es zurücksetzen, damit ein weiterer Ausführungsimpuls ausgeführt werden kann. Jetzt gibt dieser Zähler aus, wie oft es gemacht wurde, und wir werden das hier gleich zeigen. Aber so funktioniert der do n -Knoten im Wesentlichen. Es ist dem Do Once-Knoten sehr ähnlich, nur du kannst einstellen, wie oft er das Ding macht. Es muss nicht einmalig sein. Sie könnten dies auf eins setzen, aber Sie können dies als 1102100 usw. festlegen. Um diesen Knoten hinzuzufügen, können Sie mit der rechten Maustaste klicken und einfach nach Don suchen. Es gibt den Knoten do n oder klicken Sie bei gedrückter linker Maustaste. kannst du auch hinzufügen. Lassen Sie uns das in die Praxis umsetzen. Ich bin in meinem ThirdPersonCharacter Blueprint. Dort kannst du es finden. Probieren wir hier ein Beispiel aus. Ich habe im Voraus eine eingerichtet. Und hier ist mein Beispiel. Ich werde mit der linken Maustaste drücken, machen wir dreimal. Ich gebe den Zähler hier auf dem Bildschirm aus. Dies könnte ein Drucktext sein, Notiz, es könnte eine Druckzeichenfolge sein. Hier wird alles gleich funktionieren. Und danach werde ich einen Schauspieler aus dem Unterricht hervorbringen. Das ist also ein Spawn-Schauspieler aus dem Klassenknoten, den ich gerade hier in das Blueprint-Effekt-Feuer gesteckt habe. Sie können wirklich alles einbauen, was Sie wollen. Du musst dem eine Spawn-Transformation geben . Ich hätte einfach eine GET-Welttransformation durchführen können. Ich wollte es machen. Ich hätte eine Get-Roll-Transformation durchführen können , eine Welttransformation für den Schauspieler oder eine meiner verschiedenen Komponenten, die ich hier für meine simulierte Hand gemacht habe, machen können. Dies ist eine, die ich früher im Kurs hinzugefügt habe. Wenn Sie sich also fragen, was meine simulierte Hand hier ist, ist es eine Kugelkollisionskomponente. Und nur um Ihnen zu zeigen , wo ich das in meinem Viewport platziere, da ist es. Das ist meine simulierte Hand dargestellt durch eine Kugelkollision. Also werden wir an dieser Stelle relativ zu unserem Charakter ein Feuer mit Blaupauseneffekt spawnen ein Feuer mit Blaupauseneffekt . Das ist also unser Setup genau dort. Lass uns weitermachen und uns hier ausprobieren. Lassen Sie mich das kompilieren, stellen Sie sicher, dass mein Skript einsatzbereit ist. Also sagen wir, dass wir das dreimal machen werden und wenn wir dann RT drücken , wird das zurückgesetzt und ich kann es noch dreimal tun. Klicken Sie erneut auf Abspielen. Lassen Sie mich das alles einrichten, um mein Debug-Objekt auf ThirdPersonCharacter zu setzen , damit Sie sehen können, wie dieses Skript ausgeführt wird. Ordnung, also drehe ich mich dort um, ist meine simulierte Hand. Sobald Sie oben links sehen können , wird ausgegeben, wie oft wir hier unseren Zähler ein zweites Mal gemacht haben , 21 weitere Male. Drei. Wenn ich es jetzt noch einmal versuche, geht es nicht über den fälligen Endknoten hinaus. Wenn ich jetzt jedoch auf den Archae-Empfänger drücke , werden wir ihn zurücksetzen. Und das wird mir erlauben, es noch dreimal zu machen. Also los geht's. 123, aber kein vierter. Also so etwas, das ist genau dort eingerichtet. Es könnte verwendet werden , um Fackeln anzuzünden, wie in einem Spiel im Legend of Zelda-Stil. Einige andere Verwendungsmöglichkeiten, wir könnten eine solche Einrichtung verwenden, um zu bestimmen, wie oft Sie einen Gegenstand ernten können, bevor Sie können. Das ist eine weitere gute Verwendung des n-Knotens. Vielleicht verwendest du es, um zu bestimmen, wie oft du eine bestimmte Waffe abfeuern kannst , bevor du nachladen musst. Oder vielleicht verwendest du es, um die Anzahl der Interaktionen zu bestimmen , die du mit einem NPC haben kannst , bevor du sie nicht mehr haben kannst. Sie wissen, wie viele Spiele es gibt, in denen Sie mit einem MPC interagieren können, sagen wir dreimal, er hat drei einzigartige Dinge zu sagen. Und dann war's das. In Ordnung, also da hast du es. Der Endknoten, es ist eine Art Cousin, ist, wenn Sie so wollen, ein Geschwister des Do One hat ein bisschen mehr Flexibilität mit dem Do N-Knoten geschneit ein bisschen mehr Flexibilität mit , den sie tun werden, um diesen anzubieten. Wir sehen uns im nächsten. 80. Flip-Flop: Willkommen! In diesem Video ist es unser Ziel, Kenntnisse über den Flipflop-Knoten zu erlangen und dessen Verwendung zu demonstrieren. Jetzt ist dies der Knoten , den Sie verwenden sollten, wenn Sie zwischen zwei Skriptbits wechseln möchten, wenn ein Ereignis Ihrer Wahl eintritt. Was ist also eine Flipflop-Note, die es in einer Ausführung wie folgt aufnimmt ? Und schaltet zwischen zwei Ausführungsausgaben um, a und B. Wenn Sie also zum ersten Mal darauf eingehen, werde ich a beim zweiten Mal aufrufen. Ausgabe b wird zum dritten Mal aufgerufen. Das vierte Mal b, etcetera. Es flippt zwischen den Aufnahmen aus einem damaligen B um. Jetzt hat es einen booleschen Ausgang, mit dem Sie verfolgen können, wann Ausgabe a aufgerufen wurde. Das wird oft verwendet, um sicherzustellen , dass Sie wissen, welcher dieser Namen genannt wird. Vielleicht möchten Sie Strings drucken, damit Sie sehen können , wann a vs, B usw. aufgerufen wird. Um ein Beispiel zu zeigen, verwende ich die Flipflop-Notiz, die ich in meinem ThirdPersonCharacter Blueprint machen werde . Wenn Sie also zu Hause mitspielen möchten, finden Sie unter Third-Person-Blaupausen, doppelklicken Sie auf diesen Kerl, um ihn zu öffnen. Und wir brauchen eine Veranstaltung, um hier loszulegen. Also klicke ich mit der rechten Maustaste und mache ein Klickereignis mit der linken Maustaste. Sie können alle gewünschten Eingaben verwenden. Ich gehe mit der linken Maustaste. Wenn wir also darauf drücken, werden wir jedes Mal, wenn wir darauf drücken, zwischen a als B und einem als B wechseln. Also was ich tun möchte, ist das in die Länge zu ziehen und ich werde einen Spawn-Schauspieler aus dem Klassenknoten holen . Und die Klasse, in der ich spawnen werde , wenn ich die linke Maustaste zum ersten Mal drücke , wird mein Blaupauseneffektfeuer sein . Jetzt können Sie dies finden, wenn Sie diese Starter-Inhaltsordner haben , und Sie können dorthin navigieren, wo sich dieser befindet, indem Sie direkt hier klicken . Das wirst du einfach tragen. Dies ist in Ihrem Inhaltsbrowser vorhanden. Ehrlich gesagt kannst du hier alles spawnen, was du willst. Ich werde im Grunde in etwas Feuer laichen und dann ein paar Funken hier unten, um zu simulieren, dass ich einen Zauber spreche. Also gehe ich zu Control C, kontrolliere V. Wenn wir also das zweite Mal unsere linke Maustaste drücken, werde ich anstelle von Feuer in Summen spawnen, bellt. Blueprint-Effekt funkelt. Jetzt muss ich dem eine Spawn-Transformation geben , damit ich von beiden rückwärts ziehen kann . Und ich werde sagen, mach transformieren. Der einzige Grund, warum ich diese Make-Transformation verwenden möchte , ist nur eine Verkleinerung der Auswirkungen jedes dieser Effekte. Ich werde das nur halb so groß wie 0,5 im X, Y und Z machen 0,5 im X, . Wir werden diese gespawnten Effekte hier gleich an unser Mesh anhängen . Dadurch wird jedoch die Größe jeder dieser halben Größen für jede dieser Halbgrößen verringert. Dann möchte ich das, was wir hier spawnen, in einer Variablen speichern . Und der Grund, warum wir diese verschiedenen Effekte speichern wollen , ist, dass wir, wenn wir einen spawnen , den anderen töten werden. Das ist also unsere Idee hinter den Flip-Flops. Also klicke ich mit der rechten Maustaste auf diesen Pin. Ich werde die Variable bewerben. Und ich gebe dem einen Namen für ausgerüsteten Spruch 01. Also habe ich das hier unten auf eine Variable hochgestuft. Und dann werde ich bei diesem Typen mit der rechten Maustaste darauf klicken, das in eine Variable umwandeln und ich nenne diesen ausgerüsteten Zauber 02. Und ich habe diesen Namen gleich da unten eingegeben , falls du ihn verpasst hast. Nun ziehe ich von jedem von diesen ab und tippe Attach ein. Ich suche einen Attach-Schauspieler, zwei Komponenten. Den Akteur an die Komponente anhängen. Das ist der, nach dem wir suchen. Das Ziel hier wird unser ausgerüsteter Zauberspruch sein. Das Elternteil, an das wir das anbringen wollen , wird unser Netz sein. Wenn wir also zu unserem Viewport gehen, ist unser Netz diese Schaufensterpuppe genau hier. Das wird also unser Netz sein, der Schauspieler. Wir wollen unseren Zaubereffekt hier an unser Mesh anhängen und können diesem einen Socket-Namen geben. Zurück in unserem Namensvariablenvideo haben wir einen Socket auf unserem Skelett erstellt, hier auf unserem Mesh. Und wir haben einen Namen für Socket erstellt. Jetzt haben wir das in einer Variablen gespeichert. Unser Socket-Name, den wir in unserem Namensvariablenvideo erstellt haben , hieß hand socket. Also ziehe ich das einfach per Drag & Drop, stecke es hier rein. Wenn Sie dieses Namenvariablenvideo nicht durchgegangen sind, funktioniert dies nicht für Sie, da Sie zuerst einen Socket einrichten müssen. Ich würde vorschlagen , dass Sie zu diesem Namen zurückkehren , um das zu tun, damit dies ordnungsgemäß funktioniert. Jetzt muss ich hier meine Standort-Rolle ändern , um zum Ziel gebracht zu werden. Die Rotationsregel muss auch am Ziel eingerastet werden, damit das funktioniert, in Ordnung , dann kopiere ich das einfach. Kopiere alle drei Knoten Control C, Control V. Wir werden sie hier unten einfügen, so. Und wir müssen sicherstellen, dass wir das so einhängen. Das ist also unser aktuelles Setup. Also, wenn du das Video hier pausieren musst , um zu sehen, was wir gerade haben, aber wir sind noch nicht ganz fertig. Wir wollen uns dann von diesem Typen in Troja abziehen. Schauspieler. Welchen Schauspieler wollen wir jetzt vernichten? Nun, wenn wir Effektfeuer spawnen, werden wir unseren Funkeneffekt zerstören wollen und umgekehrt , sodass wir jeweils nur eine dieser Bindungen haben . Um das zu tun, ziehe ich den ausgerüsteten Zauber O2 hinein und stecke ihn dort ein. Dies ist die, die wir hier unten gerade zu einer Variablen heraufgestuft haben, und umgekehrt. Ich gehe zu Control C, Control V mit diesem Destroy Actor hier. So. Und wir wollen dazu den ausgerüsteten Spell Number One anschließen. Jetzt weiß ich, dass wir, wenn wir das in einem Spiel ausführen , hier oben einen Fehler bekommen, aber ich lasse diesen Fehler passieren damit Sie sehen können, wie wir das gleich beheben. Nun, das ist R-Skript , das wir gerade machen. Wir werden unseren Flipflop-Knoten benutzen . Lassen Sie uns das zusammenstellen, um sicherzustellen, dass alles gut aussieht. Wir werden das retten. Um das durchzugehen, klicken wir mit der linken Maustaste , wenn wir das erste Mal einer Ausgabe heraus ausführen. Also wird dieses bisschen Skript laufen. Wir werden im Effektfeuer spawnen. Wir werden das Affektfeuer innerhalb einer Variablen speichern . Wir werden es unter dem von uns angegebenen Socketnamen an unser Netz anhängen . Dann vernichten wir auch den Schauspieler. Wenn wir das zum ersten Mal tun, wird dies einen Fehler auslösen, wenn wir hier exotisch sind weil wir noch nicht in der Tat gespawnt haben. Deshalb wird es einen Fehler geben. wir das zweite Mal die linke Maustaste drücken, schießen wir aus dem B-Ausgang des Flipflop-Knotens heraus. Es wird in der Wirkung unserer Funken spawnen. Wir werden das in Variable speichern . Wir werden es unter diesem angegebenen Socket-Namen an unser Netz anhängen . Und auf diese Weise wird es auch gleichzeitig diesen Effekt, unseren Feuereffekt , zunichte machen. Wenn wir das nächste Mal unsere linke Maustaste drücken, spawnen wir das dritte Mal in diesem viralen Effekt. Und wir werden Funken töten , wenn wir zum zweiten Mal dazu kommen, es wird keinen Fehler auslösen, weil wir diese Variable genau hier erstellt haben werden . Ordnung, lass uns weitermachen und uns spielen. Wir werden versuchen, das in die obere Ecke zu stecken. Klicken Sie auf Abspielen. Lass mich mein Debug setzen. Widersprechen Sie unserem ThirdPersonCharacter. Oh, los geht's. Ich werde hier rumlaufen. Also gehe ich mit der linken Maustaste. Beobachten Sie dabei diesen Ablauf der Ausführung. Los geht's, linke Maustaste. Sie sehen, dass Affekt Feuer hier drin eine Bindung hat. Es hängt es an meinen Charakter an, so. Ich drücke erneut die linke Maustaste. Es hat das Feuer vernichtet. Die Funken sind da drin. Und drücken Sie erneut die linke Maustaste. Wir haben die Funken vernichtet. Wir haben jetzt Feuer. Jetzt gehe ich hier raus. Hier ist der Fehler, über den ich gerade gesprochen habe. Es beschwert sich erneut, dass wir diesen Schauspieler hier oben nicht vernichten können. Zumindest das erste Mal konnten wir es nicht zerstören, als wir in unserem Feuereffekt gespawnt haben in unserem Feuereffekt gespawnt weil es nichts zu zerstören gab. Dies gab es noch nicht, weil wir zuerst die A-Ausgabe durchgeschossen haben. Ohne durch das b geschossen zu haben, hatten wir diese Variable noch nicht erstellt. Wie löst man diese Art von Problem? Nun, es ist eigentlich ganz einfach. Wenn wir mit der rechten Maustaste auf unseren ausgerüsteten Spell klicken, Nein, genau Und wir konvertieren es in ein noch validiertes. Es wird den Knoten so konvertieren , dass er so aussieht. Und wenn wir es so verbinden, können wir nur sagen, ob dies gültig ist, das heißt, nur wenn diese Variable etwas in sich hat, werden wir den Schauspieler zerstören. Wenn es nicht gültig ist, was bedeutet , dass nichts darin steckt, dann gibt es nichts zu zerstören, also wird nichts passieren. So können Sie das umgehen. Also kompilieren, speichern, spielen, Linksklick, Feuer Linksklick-Funken floppten jetzt a, b, a, b und wir sind entkommen. Wir bekommen diesen Fehler nicht mehr. Das ist also ein Beispiel für den Flipflop-Knoten. Was sind einige Einsatzmöglichkeiten davon? Nun, Sie könnten einen Flipflop-Knoten verwenden , um zwischen zwei Waffen zu wechseln. Vielleicht verwenden Sie einen Flipflop-Knoten, um den Lichtschalter ein- und auszuschalten. Dies sind einige beispielhafte Anwendungsfälle. Was sind die? Kannst du dir das einfallen lassen? Leute, das reicht, um diesen anzubieten? Wir sehen uns im nächsten. 81. Tor: Willkommen! In diesem Video ist es unser Ziel, Wissen zu gewinnen und die Verwendung des Gate-Knotens zu demonstrieren. Jetzt ist dies ein extrem selbstbeschreibender Knoten , in den Sie den Gate-Knoten eingeben können. Ob Sie jedoch aus dem Ausführungsausgangspin fließen oder nicht und alles tun, was danach kommt hängt davon ab, ob das Gate offen oder geschlossen ist oder nicht. Es beginnt hier in der Nähe mit Ihrem Gate-Knoten. Um nun einen dieser Knoten in Ihr Diagramm aufzunehmen, können Sie mit der rechten Maustaste klicken und nach Gate suchen. Sie können auch die G-Taste gedrückt halten und die linke Maustaste klicken, auch einen Gain-Knoten für Sie einbringt. Ich habe ein Beispiel, das ich Ihnen allen hier in Ihrem Level Blueprint demonstrieren möchte. Wenn Sie also mitspielen möchten , sollten Sie genau dorthin gehen. Was wir hier tun werden, ist mit einem Event-Tick zu beginnen . Ich klicke einfach mit der rechten Maustaste und suche nach Event-Tick. Und wir werden bei jedem Tick in unser Tor fließen. Also werden wir jedes Bild in unser Spiel einfließen lassen. Jetzt werden wir nicht darüber hinausgehen, bis unser Tor geöffnet ist. Denken Sie daran, unser Tor beginnt hier in der Nähe. Obwohl wir in diesen Knoten fließen, jeden Tick, in jeden Frame, werden wir nicht darüber hinaus fließen und alles tun, was nächstes kommt, bis wir unser Tor öffnen. Wie öffnen und schließen wir unser Tor? Nun, wir machen das über einen inneren Pegel der Triggerlautstärke. Also geh zurück zu deinem Level. Und wir kommen gleich hier runter. Ich werde unter Basic fallen. Wir fügen ein Triggerfeld hinzu, klicken Sie einfach mit der linken Maustaste und ziehen Sie eines davon hierher. Ich werde es hier einfach schnell anpassen. Gehen wir 150 mal eins fünfzig, vier fünfzig, eins fünfzig, eins fünfzig, eins fünfzig. Ich weiß nicht. Es ist die erste Zahl , die uns in den Sinn kam. Etwas Großes, die Linienstärke, das werden wir ändern, um es ein bisschen leichter zu erkennen zu machen . Wir werden es jedoch nicht sehen, es sei denn, wir kommen unter den Rendering-Bereich. Rendering-Bereich und wir deaktivieren das versteckte Spiel des Schauspielers. Ich hebe das hoch und drücke die Endtaste , um es auf den Boden zu schlagen. Wir werden überprüfen, ob es Überschneidungen gibt. Wenn diese Option ausgewählt ist, kehren wir zu unserem Level-Blueprint zurück. Wenn Sie das noch nicht geöffnet haben, öffnen Sie Level Blueprint. Und wir werden mit der rechten Maustaste in einen leeren Bereich klicken. Und wir fügen ein Ereignis für diesen Auslöser der Lautstärke unter der Kollision hinzu, wenn wir beginnen, sie zu überlappen, sowie eine Rechtsklickkollision wenn wir die Überlappung beenden. Wir wollen also nur dann etwas tun, wenn wir es sind, der ThirdPersonCharacter, der das Triggervolumen überlappt. Eine andere Möglichkeit, zu überprüfen, ob wir es sind. Ich könnte mich hier rausziehen und spielen. Ich werde jedoch nur eine andere Methode zeigen. Ich gebe nur den Spielercharakter holen ein. Wenn ich mich jetzt aus unserem anderen Schauspieler ziehe und einfach den Equals-Operator eintippe, können wir überprüfen, ob es der Spielercharakter ist , der uns überlappt. Jetzt müssen wir nicht mehr in unseren ThirdPersonCharacter greifen und irgendwelche Funktionen ausführen , die die Variablen so aufrufen . Wir müssen nur überprüfen, ob es unser generischer Player ist. uns egal , welcher Spielercharakter, irgendein Spielercharakter. In diesem Fall ist für ThirdPersonCharacter diejenige, die wir kontrollieren. Das ist also gut genug, kann die Alt-Taste gedrückt halten. Das wird unser Zustand genau hier sein. Wir werden diese Knoten gleich hier oben kopieren, Kontrolle C, Kontrolle V. Bring sie hierher. So. Wenn es also stimmt , dass wir diese Triggerbox überlappen, wenn das stimmt, öffnen wir die Tore. Wenn wir nun aufgehört haben, die Triggerbox mit unserem Spielercharakter zu überlappen , ist dies nachweislich der andere Schauspieler , der diese Überlappung beendet hat. Wenn das stimmt, schließen wir das Tor. Jetzt. Das ist alles schön und gut, aber was werden wir tun, wenn wir die Tore öffnen? Nun, wir werden hier einen weiteren Schauspieler zu unserem Level hinzufügen. Also warum schlägst du nicht da hinten rein. Und wir werden hier eine Art Tür hinzufügen , etwas hinter unserer Trigger-Box. Um also ein Zitat hinzuzufügen, ohne Zitat, komme ich gleich hier runter. Wir werden unter Formen kommen. Wir fügen einen Würfel hinzu. Und ich werde es nur ein bisschen ausdehnen. Wenn ich also die R-Taste drücke, werde ich es so skalieren. Ich werde nicht sehr präzise sein. Wir werden es in die Luft heben, ungefähr so. Vielleicht verdünnen Sie es ein bisschen so. Ich drücke die Ende-Taste, um sie auf den Boden zu schlagen. Und wenn diese Option ausgewählt ist, muss ich auch zum Bereich Details gehen und die Mobilität dieser beiden beweglichen Geräte ändern . Der Grund, warum ich das auf beweglich ändern muss , ist, dass ich das im nächsten Teil unseres Drehbuchs langsam aus dem Weg räumen werde. Okay, nachdem das erledigt ist, haben wir unseren Würfel hier ausgewählt. Stellen Sie sicher, dass Sie das ausgewählt haben. Kehren Sie zu Ihrem Level-Blueprint zurück. Sie können dort auch darauf zugreifen. Wenn Sie diese Registerkarte noch nicht geöffnet haben, halten Sie die R-Taste gedrückt und klicken Sie mit der linken Maustaste, um eine Referenz einzufügen. Und dann ziehen wir uns aus dem heraus und geben statische Netzkomponenten ein. Unser statischer Netzaktor besteht also aus einer statischen Netzkomponente. Und um diesen Punkt zu verbessern, wenn ich zu meinem Level zurückkehre und meinen Würfel auswähle, können wir sehen, dass R Cubed aus einer statischen Netzkomponente besteht , bei der es sich hier im Wesentlichen um diesen Würfel handelt. Aber wir müssen das tun, um daraus zu ziehen und den anzeigenrelativen Standortknoten einzufügen. An diesem Knoten können Sie sehen, dass unsere statische Netzkomponente des Würfels mit dem Ziel verbunden ist. Es sucht nach einer Komponentenobjektreferenz. Darauf werden wir hineinfließen , sobald unser Tor geöffnet ist. Diese Delta-Position ermöglicht es uns nun, die Position dieser Szenenkomponente, dieser Static Mesh-Komponente, zu ändern die Position dieser Szenenkomponente, dieser . Aber erst wenn das Tor geöffnet ist. Jetzt werde ich das ändern, indem ich unseren z-Standort ändere , um einen hinzuzufügen. Also werden wir in jedem Frame einen zu unserem Z-Standort hinzufügen , weil wir in jedes Bild hineinfließen werden , sobald unser Tor geöffnet ist. Also nur um zu überprüfen, jeden Tick, jeden Frame, den wir in dieses Tor fließen werden. Genau hier steht jedoch die Checkbox „ Wir fangen nah an“. Wir werden hier nicht darüber hinausgehen, um die relative Position unseres Würfels zu ändern . Sobald wir jedoch beginnen, eine Triggerbox mit unserem Spielercharakter zu überlappen , wird unser Spielercharakter als dem anderen Schauspieler gleichwertig angesehen . Es ist der andere Schauspieler , der uns überschneidet. Das stimmt. Dann öffnen wir das Tor und dann bewegen wir es in die Luft. Wenn wir jedoch am Ende diese Triggerlautstärke mit unserem Spielercharakter überlappen , werden wir, wenn das stimmt, die Tore schließen. Lass uns das besprechen, gleich hier oben. Ich klicke auf Play. Wenn Sie Ihr Debug-Objekt nicht festgelegt haben, können Sie hier oben klicken und es so einstellen , dass Sie den Ausführungsablauf sehen können. Lass mich einfach, los geht's. Stopp wird dort nur kurz gezeigt. Ordnung, jetzt werde ich versuchen , das ein bisschen besser zu gestalten. Bring meinen Charakter noch einmal mit. Ordnung, Sie sehen also, dass Event-Ticks in jedem Frame in dieses Tor flossen , aber wir kommen hier nicht darüber hinaus und beobachten Sie, was passiert, wenn ich das mit meinem Charakter überschneide. Du wirst sehen, wie das Tor geöffnet ist. Los geht's. Ich kann sehen, dass es sich in die Luft hebt. Und wenn ich meine Überlappung beende, hört sie auf, sie in die Luft zu heben , und beginnt mit der Überlappung. Es wird das Tor öffnen und es weiter anheben und überlappen und so weiter. Nun ein weiteres kurzes Beispiel, Anwendungsfall des Gate-Knotens, der einen Großteil des gleichen Setups verwendet , das wir bereits eingerichtet haben. Ich habe hier gerade ein paar Notizen ausgetauscht. Hier werfen wir auf unseren ThirdPersonCharacter, sowohl Ana beginnen sich zu überlappen als auch die Überlappung Und der Grund, warum ich mich für diesen Ansatz entscheiden wollte , ist , dass wir unseren ThirdPersonCharacter herausziehen und diese Funktion zum Ändern der Gesundheit aufrufen können unseren ThirdPersonCharacter herausziehen und diese Funktion zum Ändern der Gesundheit aufrufen , die wir erstellt haben, als wir über Funktionen gesprochen haben. Was wir mit diesem Setup machen werden , ist es so zu gestalten , dass wir, wenn unser Charakter diese Triggerbox überlappt, die Gesundheit unseres Charakters verringern , während er sich darin befindet. Sobald sie diese Triggerbox verlassen, werden wir sozusagen diese Blutung stoppen. Sie können sich also vorstellen, dass das wie eine giftige Gaskammer ist oder vielleicht, wissen Sie, vielleicht überqueren eine Feuerstelle, so etwas. Also los geht's. Sie können das bei der Arbeit sehen. Ich empfehle jedoch, wenn Sie dies tun , bei jedem Tick, Ihre Verschlechterung der Gesundheit auf einen sehr niedrigen Wert zu setzen . Sie werden dies tatsächlich in unserer Gesundheitsanzeige hier oben sehen , da wir unsere Gesundheit auch an dieses Messgerät oder HUD gebunden haben . Also los geht's und überlappen das. Ich weiß, dass der Sound momentan sehr spammig ist , aber du verstehst es. Wenn Sie diesen Bereich mit giftigen Gasen verlassen, hört die Blutung auf. Und da hast du es. Der Gate-Knoten nimmt Ausführungspfade auf. Aber ob Sie darüber hinausgehen und alles tun, was über diesen Hinrichtungs-Pin hinausgeht oder nicht, hängt davon ab, ob, ob das Tor offen oder geschlossen ist , was wir tun werden, um diesen Jungs anzubieten. Wir sehen uns im nächsten. 82. MultiGate: Willkommen! Wir werden hier in diesem Video über den Multi-Gate-Knoten sprechen . Und ich denke, der beste Weg, um zu demonstrieren, was das bewirkt, besteht darin, einfach ein Beispiel zusammenzustellen , anstatt darüber zu sprechen. Also werde ich dieses Beispiel hier in meinem Level Blueprint zusammenstellen . Wenn Sie mitspielen möchten und vergessen haben, wie Sie in Ihren Level-Blueprint gelangen, können Sie direkt hierher kommen und Level Blueprint öffnen. Und um einen Multi-Grade-Knoten hinzuzufügen, können Sie einfach mit der rechten Maustaste klicken und danach suchen oder die M-Taste mit der linken Maustaste gedrückt halten , um dort auch einen hinzuzufügen. Dieses erste Beispiel ist ein wenig akademischer Natur. Also habe ich das Drehbuch im Voraus eingerichtet , um uns etwas Zeit zu sparen, aber ich erkläre, was passiert. Also habe ich 34 Eingabetasten mitgebracht , um dies zu erleichtern. Ich habe ein Drücken der drei Tasten, die in meinen Multigrade-Knoten fließen. Auf der Ausgangsseite habe ich einen zusätzlichen Pin hinzugefügt. Und jedes davon ist an einen entsprechenden Funktionsknoten für Drucktexte angeschlossen . Und es wird einfach 012 ausgegeben , um der Ausgabe 012 zu entsprechen. Wenn ich nun die Drei-Taste drücke und wir in diesen Multigrade-Knoten fließen, beim ersten Drücken dieser drei Tasten wird beim ersten Drücken dieser drei Tasten diese Ausgabe 0 ausgegeben. Es wird die Zahl 0 auf dem Bildschirm ausgeben. Dies wird durch unseren Startindex bestimmt. Ein Startindex, der standardmäßig negativ ist , bedeutet im Wesentlichen, dass wir hier ganz oben auf unserer Liste beginnen. Im Gegensatz zu einem Sequenzknoten, der all dies in schneller Folge ausdrucken würde , wird er jedoch nur diese Zahl 0 ausgeben. Es werden nicht ein oder zwei ausgedruckt. Wenn ich jetzt die Drei-Taste ein zweites Mal drücke, fließt sie in den Multi-Gate-Knoten und druckt dann die Nummer eins aus. Es wird zuerst diese 1 auswählen. Wir haben das mit dem ersten Tastendruck gemacht. Wenn Sie es zum zweiten Mal drücken, fließt es hier. Wenn Sie es zum dritten Mal drücken, fließt es hier und so weiter. ich es zum vierten Mal drücke, Wenn ich es zum vierten Mal drücke, wird nichts passieren, bis ich es zurücksetze. Also los geht's. Das ist eine kurze Aufschlüsselung der Funktionsweise dieses Knotens. Ich klicke hier oben auf Abspielen setze mein Debug-Objekt als unsere Level-Testkarten. Sie können also sehen, dass dies alles auch in der Grafik fließt. Also los geht's. Ich drücke die Drei-Taste. Wir sehen, dass die Zahl 0 einfach dort fließt. Ich drücke die Drei-Taste ein zweites Mal. Wir sehen Nummer eins. Ich drücke es ein drittes Mal. Wir sehen Nummer zwei. Wenn ich es jetzt ein viertes Mal drücke, fließen wir darauf ein. Wir fließen jedoch nicht heraus und wir werden nicht herausfließen, bis wir uns zurücksetzen. Wenn Sie also in den Multi-Grade-Knoten fließen, wird sichergestellt, dass alle diese Ausgaben ausgeführt werden. Sobald alle ausgeführt wurden, müssen Sie sie zurücksetzen, damit dies wieder funktioniert. Wenn ich also die Taste F4 drücke, was ich jetzt mache, setze sie einfach zurück. Jetzt kann ich die Drei-Taste 0 drücken. Drücken Sie erneut die Drei-Taste. Erstens, drücken Sie erneut die Drei-Taste, um. Und wenn ich erneut versuche, die Drei-Taste zu drücken, fließe ich hinein, aber ich kann nicht herausfließen , bis ich sie zurückgesetzt habe. Und in welchen Punkten kann ich es nochmal machen, 012. Versuchen wir es jetzt nur dieses Mal noch einmal. Lass uns nachschauen. Dies ist ein zufälliges Kontrollkästchen. Vorher wurde dies nicht mit einem Startindex von negativem überprüft . Wir wollten aus unserer Spitze schießen. Ich setze Pin, dann unseren zweiten, dann unseren dritten in sequentieller Reihenfolge, garantiert mit wird zufällig ausgewählt. Wir werden jedoch alle drei durchfeuern , bevor wir sie zurücksetzen müssen. Es wird jedoch ein zufälliger Index ausgewählt , mit dem beim ersten Mal, beim zweiten Mal, als beim dritten Mal ausgelöst werden soll. Los geht's. Das Drücken der Drei-Taste entschied sich also für diese 1 erste, diese 1 Sekunde, diese 1 Drittel. Wenn ich es ein viertes Mal drücke, nichts. Ich muss die Taste F4 drücken, um es zurückzusetzen. Und dann haben wir zuerst hier unten angefangen, diese 1 Sekunde, diese 1 Drittel. Genau das tut die boolesche Checkbox is random. Nun, wenn Loop aktiviert ist und ich spiele, und ich drücke die Drei-Taste hier einmal, zweimal, ein drittes Mal, dann ein viertes Mal, fünfmal, sechsmal. Im Wesentlichen, wenn Sie hier einen Loop-Check haben , können Sie in unserem Fall die Drei-Taste immer wieder drücken. Ein Reset ist nicht erforderlich. Zu guter Letzt, nur um standardmäßig in unserem Startindex anzugeben , der auf einen negativen gesetzt ist. Ich deaktiviere einfach jedes davon. Setzen wir das auf zwei, nicht auf negative 22, und ich klicke auf Play. Wenn ich jetzt die Drei-Taste drücke, schießen wir zuerst aus den beiden Pins, dann 0, dann eins, oder drücken die Drei-Taste erneut, nichts. Wenn ich jedoch zurücksetze und dann die Drei-Taste drücke, wird es zuerst von 2 als 0 ausgelöst, als von eins. Also wieder, zugegebenermaßen, ein ziemlich akademisches Beispiel. Also lasst uns etwas versuchen, das einem Spiel etwas mehr entspricht. Und das werde ich auch hier im Level Blueprint demonstrieren . Kommen wir hier nach rechts, oder zu einem beliebigen offenen Bereich hier in Ihrem Diagramm. Wieder einmal habe ich einige Sachen im Voraus eingerichtet. Ich habe einen mehrtägigen Knoten. Halten Sie gedrückt und klicken Sie mit der linken Maustaste, er kann einen von denen reinbringen. Und von jedem meiner drei Ausgangspins habe ich hier einen hinzugefügt. Ich habe Spawn-Schauspieler von Klassenknoten mitgebracht und einfach meinen Blaupauseneffekt, Explosion, Feuer und Rauch in drei verschiedene Klassen eingeteilt. Und jetzt brauche ich etwas, um diesen mehrtägigen Tag abzufeuern. Lass mich hier zu meinem Level zurückkehren und ich werde gleich hier Basic hinzufügen. Lass uns eine Trigger-Box machen. Erhöhen Sie das ein wenig stellen Sie die Ausdehnung unserer Boxen auf etwa zweihundertzweihundertzweihundert Linienstärke von zehn ein. Ich sollte wirklich eine Triggerbox für all die verschiedenen Beispiele wie dieses hier draußen lassen und unter der Rendering-Kategorie angeben, den Schauspieler deaktivieren, der im Spiel versteckt ist, Ordnung, mit seinem Ereignisse ausgewählt. Hier in unserem Level, Blueprints. Level Blueprint, gedrückt halten oder besser gesagt ein Rechtsklick, nicht gedrückt halten, mit der rechten Maustaste Event-Kollision hinzufügen denn wenn wir anfangen, das zu überlappen , können wir überprüfen , ob unser anderer Akteur, wir kann sagen gleich. Dies ist eine weitere Art zu zeigen, um zu sehen ob das, was wir uns überschneiden wollen, das ist eine Sache, von der wir erwarten, dass gleich r den Spielercharakter bekommt. Wir versuchen nicht, Variablen zu extrahieren, die Funktionen innerhalb unseres ThirdPersonCharacter aufrufen. Das wird also gut genug sein. Halte die Alt-Taste gedrückt und klicke mit der linken Maustaste Wir sagen, wenn das stimmt, fließt in den Verzweigungsknoten, ein Flusssteuerungsknoten. Und wenn das stimmt, fließen wir in den Multi-Bit-Gates-Knoten. Und wenn das stimmt, werden wir eine dieser Kompilierungen erzeugen. Oh ja, wir müssen eine Spawn-Transformation angeben. Nun, wir haben unsere Trigger-Box bereits hier in unserem Level ausgewählt. Also lasst uns einfach spawnen. Es ist irgendwo in der Triggerbox, oder? die Alt-Taste gedrückt halten und mit der linken Maustaste klicken, um ein Triggerfeld für den Referenzspeicher einzufügen , das hier herausgezogen wurde , wird Wir können diese in 123 einstecken, also wählen wir zufällig einen dieser Spawns aus und kompilieren noch einmal. Lass uns weitermachen und spielen. Ich verstaue das gleich hier drüben. Wir haben unsere Testkarten ausgewählt und dort oben als unser Debug-Objekt geschrieben. Und los geht's. Das erste Mal, dass wir uns überschneiden, haben wir eine dieser zufälligen Explosionen ausgewählt , das zweite Mal Feuer , und beim dritten Mal ist dort auch etwas Rauch los . Beachten Sie, wenn ich das noch einmal überschneide, haben wir genau hier am Tor angehalten. Wir haben das überhaupt nicht zurückgesetzt. Das wäre also etwas , das du vielleicht tun möchtest , um etwas Laichen zu ermöglichen. Noch einmal. Jetzt kann ein solches Setup wie ein Loot-Drop verwendet werden. Vielleicht tötest du einen Feind und willst eine zufällige Sache vergeben, das wäre ein gutes Beispiel. Verwendung des Multispiels. Vielleicht benutzt du eine Multigrade , um Wellen von Feinden zu spawnen. Sie könnten also eine Welle von Feinden aus unseren Nullen auswählen, aus einer oder zwei. Oder vielleicht könntest du einen Multi-Grade-Knoten verwenden wenn du mit einem NPC sprichst. Wieder einmal haben es viele Spiele, sodass Sie mit einem MPC sprechen können, und in Ihrem MPC speisen Wölfe drei verschiedene einzigartige Dialoglinien. Sie können es so einrichten, dass Sie bei Verwendung eines Multi-Grade-Knotens, wenn Sie das Triggervolumen in Bezug auf diesen NPC überlappen, Triggerzeile des Dialogs 12 bzw. drei auslösen können . Leute, das wird alles für den Multiset-Knoten erledigen. Wir sehen uns im nächsten. 83. Für Schleifen: Willkommen! In diesem Video ist es unser Ziel, Wissen zu gewinnen und die Verwendung der For-Loop-Knoten zu demonstrieren . Nicht zu verwechseln mit den für jeden Loop-Knoten, über die wir im nächsten Video sprechen werden. Jetzt wiederholen diese Knoten einen Abschnitt des Skripts immer wieder. Und obwohl sie innerhalb von Eventgras verwendet werden können, glänzen sie wirklich, wenn sie prozedurale Inhalte mithilfe des Konstruktionsskripts skripten . Nun, um damit zu beginnen, was ist ein For-Loop? Nun, ein for-loop ist ein Knoten, der, wenn er aufgerufen wird, was bedeutet, dass hier ein Ausführungskabel an die linke Seite angeschlossen ist. Es feuert einen Impuls aus der Schleife ab, Körper X mehrmals, wobei die Häufigkeit durch den ersten und letzten Index bestimmt wird . Also zum Beispiel, wenn wir hier ein Ereignis in unseren for-Loop-Knoten eingesteckt hätten hier ein Ereignis in unseren for-Loop-Knoten eingesteckt und unser erster Index 0 wäre. In unserem letzten Index war neun, wir würden hier zehnmal aus unserem Schleifenkörper herausfließen, beginnend bei 0 bis neun. Jedes Mal, wenn wir aus unserem Schleifenkörper herausfließen, spuckten wir aus, bei welchem Index zwischen 09 wir uns befinden. Wieder, von 0 auf neun, würden Sie 0123456789 gehen. Wenn wir also bei der fünften Iteration waren, spuckten wir den Index aus, um wieder bei Nummer 0 zu beginnen. Sobald es alle zehn durchlaufen hat, würde diese abgeschlossene Ausführungsausgangsleitung abgefeuert. Der einzige Unterschied zwischen unserem for-Loop-Knoten hier in unserer for-Schleife mit Bread-Node ist einfach dieser Break-Input-Ausführungsstift. Mit diesem Knoten haben Sie die Möglichkeit, den Ausführungsfluss zu unterbrechen , bevor Sie zu Ihren letzten Indizes gelangen. Wenn zum Beispiel Ihr erster Index 0 und Ihr letzter Index 99 ist, bedeutet dies, dass hier 100 Schleifen durchlaufen werden. Du könntest es aus irgendeinem Grund früh brechen, damit du es nicht wirklich abschließt. Und wir werden später in diesem Video eine Demonstration davon zeigen . Ordnung, wie ich zu Beginn dieses Videos erwähnt habe, können Sie diese Knoten hier in einem Ereignisdiagramm verwenden, aber sie zeigen wirklich ihre Macht in einem Konstruktionsskript bauen prozedurale Inhalte auf. Und tatsächlich habe ich ganz am Anfang dieses Kurses, als ich über das Konstruktionsskript sprach, einen For-Loop-Knoten verwendet. Lassen Sie mich das einfach wieder hochbringen zu meiner Testkarte hier zurückkehren Ich habe tatsächlich einen Beispiel-Konstruktionsskript-Blueprint. Dies ist die Blaupause , die ich viel früher im Kurs erstellt habe , als über das Konstruktionsskript gesprochen habe. Ich habe eines davon in meinem Level, aber wenn du es nicht tust, findest du es in deinem Scripting-Blueprints-Ordner. Da ist Ihr BP-Beispiel-Konstruktionsskript. Ebenfalls. Du kannst hier in deinem Outliner dorthin navigieren, indem sie und deine Welt auswählst und direkt hier klickst. Jetzt habe ich hier in diesem Blueprint in meinem Event Graph nichts mehr , mein Ansichtsfenster zeigt, was das Konstruktionsskript erstellt hat. Also hier ist meine Registerkarte Konstruktionsskript. Wenn Sie dies nicht geöffnet haben, können Sie unten im Bereich Mein Blueprint darauf doppelklicken , um es zu öffnen. Und hier verwenden wir einen For-Loop-Knoten. Jetzt wurde dieses ganze Skript hier erstellt, um prozeduralen Inhalt zu generieren. Ich stelle diese Anzahl der Integer-Variablen für den Abschnitt dem Editor zur Verfügung. Indem wir also die Anzahl der Abschnitte anpassen, können wir diesen For-Loop-Knoten X oft durchlaufen , wobei wir von 0 auf r Anzahl der Abschnitte minus eins gehen. Und das ist nur ein bisschen Mathematik , um zu bestimmen, wo das statische Instanznetz dieses Wandstücks genau hier platziert werden soll. Jetzt habe ich hier ein paar zusätzliche Skripte , um das Material für diese Instanz festzulegen, static mesh, aber genau das macht dieses gesamte Konstruktionsskript. Die Stärke davon, wiederum mit der for-Schleife, besteht darin, dass Sie angeben können, wie oft Sie den Rest dieses Codes hier durchlaufen werden . Und in diesem Fall gehen wir von einem Index von 0 zu einer beliebigen Anzahl von Abschnitten über , die ich spezifiziere. Hier in meinem Level stelle ich diese Variable bereit, um instanzeditierbar zu sein , diese Checkbox genau dort. Dabei diese Variable im Bereich Details verfügbar , wenn ich diesen Blueprint ausgewählt habe. Sie können also sehen, ob ich die Anzahl der Abschnitte hier anpasse, ich kann diese Wand erweitern. Was das macht. Wieder einmal läuft es hier durch. Wie oft? Nun, ich habe momentan dieses Set auf einundzwanzig eingestellt. Einundzwanzig. Einundzwanzig minus eins ist 20. Also von 0 bis 20, das läuft hier all die Zeiten durch , um diese Wandabschnitte hinzuzufügen. Das ist also der Schleifenkörper, diesen Abschnitt des Skripts wiederholt, er jedoch oft vom ersten Index zum letzten Index wechselt. Nun ist es erwähnenswert, dass Loop-Iterationen zwischen Frames stattfinden, sodass große Loops zu Leistungseinbußen führen können. Wenn wir also unseren letzten Index hier auf einen ziemlich hohen Wert setzen würden, werden wir eine kleine Verzögerung feststellen. Also werde ich versuchen, das hier auf eine hohe Zahl zu setzen . In meinem Level. Ich habe es derzeit auf 21 gesetzt, was nicht so schlimm ist. Wenn ich versuche, dies auf 500 Tausend zu setzen und Enter zu drücken, beobachte, was passiert. Und in der Tat hat das ziemlich lange gedauert. Jetzt habe ich das Video genau dort geschnitten, damit es so aussieht, als ob es viel weniger Zeit gedauert hat, aber mein Computer hat wahrscheinlich ungefähr eine Minute gebraucht , um all diese Wandabschnitte zu zeigen. Wissen Sie also einfach, dass Sie wahrscheinlich nicht zu viele Loops durch Ihren For-Loop-Knoten haben möchten . Ordnung, lassen Sie uns einen praktischen Anwendungsfall für die for-Schleife zeigen . Beachten Sie hier in unserem Level, dass ich eine Triggerbox hinzufügen werde und die Box erweitert, um etwas Größeres zu sein. Wir gehen 300 im X, 300 im Y und 40 ist in Ordnung für das Z. Ich werde es nur ein bisschen vom Boden aufheben , so etwas. Lassen Sie mich die Strichstärke auf zehn setzen. Und genau wie du mich bis jetzt schon ein paar Mal gesehen hast , werde ich Actor Hidden und Games deaktivieren , damit wir es sehen können. Dann dupliziere ich das, halte die Alt-Taste gedrückt, klicke mit der linken Maustaste und ziehe. Und ich werde die Box-Ausdehnung für diesen Fall verringern, wir machen es 100 mal 100 mal 100, etwas Kleineres wie dieses, heben es in die Luft auf und drücken die Endtaste, um es darauf zu schlagen der Boden. Was versuche ich mit diesem Setup zu erreichen? Nun, im Grunde das, was ich hier machen werde, geschehen lassen. Unser Charakter wird genau hier beim Start unseres Spielers spawnen . Wir werden es so machen, dass wir, wenn unser Charakter diese Triggerbox überlappt, unser Charakter diese Triggerbox überlappt, einige Tränke innerhalb der Grenzen dieses Bandes spawnen werden , genau hier? Ja, du kannst eine Triggerbox verwenden Lautstärke auszulösen, um Dinge darin zu spawnen. Das werden wir dafür verwenden. Und wir werden auch einen for-Loop-Knoten verwenden , um drei Amanda-Tränke zu spawnen. Das Wichtigste zuerst Wir werden diese Triggerbox genau hier auswählen. Kehren Sie zu Ihrem Level Blueprint zurück. Und wir klicken mit der rechten Maustaste und etwas leeren Bereich. Wir werden ein Ereignis hinzufügen, wenn wir anfangen, das zu überlappen. Und wir ziehen uns einfach aus unserem anderen Schauspieler heraus und geben das Gleichheitszeichen ein. Und dies wird unsere Methode sein, um zu überprüfen, ob es sich um unseren Spielercharakter handelt. Wir klicken mit der rechten Maustaste auf Spielercharakter holen. Auch hier gibt es alle Arten von Methoden, die wir für diesen Abschnitt verwenden könnten , um zu überprüfen, ob es sich um unseren ThirdPersonCharacter handelt. Das wird gut funktionieren. Halten Sie die linke Taste gedrückt, um einen Zweig einzufügen. So. Als nächstes halte ich die O-Taste gedrückt und klicke mit der linken Maustaste, weil wir einmal etwas machen wollen. Was wollen wir haben? Nun, wir wollen hier rausziehen und eine for-Schleife einführen, nicht eine für jede Schleife, eine For-Schleife. Wir setzen unseren ersten Index auf 0, unseren letzten Index auf zwei. 012 werden also unsere drei Indizes sein. Und wir ziehen uns aus unserem Loop-Körper und wir werden Schauspieler aus dem Unterricht hervorbringen. Und hier werde ich unserem Mann einen Trank geben. Auch hier können Sie alles einfügen, eine Art Blueprint-Objekt ist, würde ich empfehlen. Also, wo werde ich dieses Ding spawnen? Ich muss diese Spawn-Transformation beschleunigen. Kehren wir also zu unserem Level zurück. Wir wählen dieses Trigger-Volume hier aus. Dann springen wir zurück zu unserem Level-Blueprint, halten die Archae wie in der Referenz gedrückt und klicken mit der linken Maustaste, um einen Verweis auf diese Triggerbox einzufügen . Wir ziehen uns hier raus. Get Actor Bounds ist der Knoten , nach dem wir suchen. Dann ziehen wir hier aus dem Ursprung heraus und geben zufällig einen Punkt in einen Begrenzungsrahmen ein. Das ist der Box-Umfang. Wir können das in die halbe Größe stecken. Und zu guter Letzt ziehen wir uns rückwärts von der Spawn-Transformation, wo wir make transform eingeben werden. Der einzige Aspekt der Transformation, um den wir uns dafür kümmern werden, ist der Standort. Nehmen Sie also den Standort unseres Begrenzungskastens hier und stecken Sie ihn in den Ort der Make-Transformation. Lassen Sie uns hier kurz zusammenfassen, was wir vor sich haben. Wir werden dieses Triggervolumen überlappen. Wir werden überprüfen, ob es der Spielercharakter war, der die Überlappung gemacht hat, wenn ja, und das stimmt. Einmal werden wir das dreimal durchgehen , beginnend bei 00:12. Also bam, bam, bam, spawnen drei Mannatränke innerhalb der Grenzen dieses Triggervolumens. Lass uns kompilieren. Das wird überprüfen, ob unser Drehbuch gut ist. Speichern. Lass uns dieses Drehbuch hier oben verstauen und lass uns weitermachen und spielen. Und du siehst dort meine beiden Bände. Überlappen wir uns hier mit diesem ersten. 123. Da haben wir's. Wenn ich jetzt versuche, mich zu überlappen und wieder keine Würfel, keine Würfel, kannst du sehen, dass es einfach am Do Once-Knoten aufhört. Jetzt fragst du dich vielleicht, warum diese Emanzipation hier oben hervorgebracht wurde? Nun, wir bekommen unsere Schauspielergrenzen für diese Triggerbox genau hier, aber wir wählen einen zufälligen Punkt innerhalb des Begrenzungsrahmens, indem wir einen Ursprung angeben, den Mittelpunkt davon. Und der zufällige Punkt , den wir wirklich auswählen ist die halbe Größe unseres Box-Ausmaßes. Sie können also wirklich die Grenzen dieser so langen Rede überschreiten , das ist nur ein kurzes Beispiel, um for-Loop-Knoten bei der Arbeit zu demonstrieren. Also lass mich einfach hier aufhören. Zum Abschluss werden wir die for-Schleife mit dem Brot-Knoten in unserem ThirdPersonCharacter demonstrieren . Also hier ist ein Verzeichnis , um das zu finden. Doppelklicken Sie darauf, um es zu öffnen. Und wir werden Keyboard-Events einleiten. wir mit der rechten Maustaste und geben etwas Leerzeichen in der Tastatur ein. Bringen Sie ein Keyboard-Event ein , das Sie noch nicht verwendet haben. Ich gehe mit der E-Taste, Shore y-naught, und er wird es tun. Was wir tun werden, ist das abzuziehen und eine For-Schleife zu bringen. Ein For-Loop mit Pause, nicht für jede Schleife, die später kommen wird. Nächstes Video. Und wir werden den ersten Index bei 0 allein lassen, den letzten Index, aber ich werde die Zahl 30 eingeben . Dann klicke ich mit der rechten Maustaste auf diesen Pin und werde ihn zu einer Variablen heraufstufen, nur um noch einmal zu zeigen, dass, wenn du ihn in eine Zahl eingibst, dann eine Variable bewirbt, Sie werden nicht nur eine Variable erstellen, sondern wenn Sie kompilieren, werden Sie sehen, dass die Zahl, die Sie dort fest gesetzt hatten jetzt als Standardwert für diese hochgestufte Variable festgelegt ist . Ziemlich praktisch. Jetzt benenne ich diese Variable um. Ich werde dabei F2 drücken und ich nenne diese Inventargegenstände max. Was machen wir hier? Wir werden ein hypothetisches Szenario durchgehen, in dem dein ThirdPerson-Charakter 30 Inventargegenstände aufnehmen kann. Aber sagen wir einfach, auf der Benutzeroberfläche der Charaktere können sie nur 15 Elemente auf einer einzigen Seite anzeigen. In diesem Fall werden wir unseren For-Loop mit einer Pause beenden , wenn wir feststellen, dass wir weg sind, wir haben das 15 Mal durchgemacht. Also werden wir im Wesentlichen von 01234567891011121314 gehen. Das wäre insgesamt das 15-fache. Und wir werden unseren For Loop durchbrechen. Was müssen wir als Nächstes tun? Wir müssen uns hier aus unserem Index zurückziehen. Und wir werden ein gleichberechtigtes Symbol einführen . Und wir werden sehen, ob unser Index gleich 14 ist. Warum 14? Wenn wir es wirklich brechen wollen, nachdem wir 15 Artikel erreicht haben , denken Sie daran, dass unser erster Index 0 zählt. Also, wenn das da drin ist, werde ich das zu einer Variablen befördern. Rechtsklick fördert die Variable. können wir zusammenstellen. Das ist unser neuer Wert da drin. Nennen wir das jedoch etwas Besseres als das. Also werde ich es hier umbenennen. Nennen wir diese Seite max. Und was wir als nächstes tun werden, wird hier rausgeschleift und ein Branch-Knoten eingefügt. Dazwischen schleiche ich mich in einen Print String-Knoten ein. Also werden wir jedes Mal , wenn wir durchgehen, drucken wir es aus. Also gib String aus, auf welchem Index wir uns befinden. Also zieh das her und lass es dort fallen. Es bringt jede konvertierte Ganzzahl in eine Zeichenkette. Stecken Sie das in unsere Filiale. Und was wir hier tun wollen, ist, wenn das stimmt, unsere Artikel auf Seite eins entsprechen unseren Indizes von 14. Kompilieren wir das noch einmal, 14. Wenn das stimmt, werden wir wieder hier rumpeitschen und wir brechen ab. Doppelklicken Sie darauf, um eine Umleitungsnase hinzuzufügen , damit das etwas schöner aussieht. Sobald wir kaputt sind, sind wir fertig. Ich ziehe mich von hier ab bringe einen weiteren Print-String-Knoten ein. Und wir drucken es einfach auf dem Bildschirm aus. Jedes deiner Inventare ist voll oder so ähnlich. Und lassen Sie uns das noch ein bisschen länger auf dem Bildschirm ausdrucken . Also klicke ich auf den Abwärtspfeil genau dort, um einige weitere Parameter Wir setzen das auf eine Dauer von zehn. Das ist es also, was wir hier vor sich haben. Auch hier drucken wir eigentlich nichts auf den Bildschirm. Wir drucken keine Inventargegenstände, das ist nicht nur hypothetisch. Kompiliere das. Speichern. Und lassen Sie uns weitermachen und diese Debug-Option als unseren ThirdPersonCharacter platzieren . Sie können also sehen, wie dieses Skript losgeht. Und das alles wird sehr, sehr schnell passieren. Schauen Sie also hier oben links nach, während ich auf die E-Taste tippe, Seite, eines Ihres Inventars ist falsch. Sie haben also all diese Indizes gesehen, 012345678910 bis 14, bis dort steht, dass Seite eins Ihres Inventars voll ist. Sie können an diesem Beispiel sehen, dass wir nie zu unserem letzten Index gekommen sind. Wir sollten bis zu 30 Inventargegenstände gehen . Nun, wirklich 31, wenn du diese 0 zählst. Aber wir haben hier unseren Kreislauf durchbrochen. Wir sind nicht so oft durch die Schleife gekommen , als wir 14 erreichten. Das ist also ein Beispiel für eine For-Loop mit Break-Node. Auch diese Knoten eignen sich hervorragend, wenn sie mit einem inneren Konstruktionsskript verwendet werden, um so etwas wie prozedurale Wände wie diese zu erstellen , aber sie können auch in Ereignisdiagrammen verwendet werden. Nun eine letzte Sache , die ich hier in unserem Konstruktionsskript beachten sollte, das ich viel früher im Kurs erstellt habe, als ich dieses Skript mit einem for-loop-Knoten erstellt habe, oft, wenn ich for-loop verwende, weiß werden in einer Art mathematischer Berechnung verwendet. Das ist also auch etwas, das Sie beachten sollten. Also habe ich für jedes Mal, wenn wir das durchgehen, diese Indexnummer verwendet und sie mit einer anderen Zahl multipliziert, um herauszufinden, wo genau diese Instanz platziert werden soll, Static Mesh, dieses Wandstück. Okay Leute, das reicht aus, um dieses anzubieten, wir sehen uns alle im nächsten Video. 84. Für jede Schleife: Willkommen! In diesem Video ist es unser Ziel, Wissen zu erlangen und Verwendung der für jeden Loop-Knoten, dem engen Verwandten der For-Loop-Knoten, die wir im letzten Video behandelt haben, zu demonstrieren dem engen Verwandten der For-Loop-Knoten, die . Was unterscheidet einen für jeden Loop-Knoten von den For-Loop-Knoten? Nun, es sind Flusskontrollknoten, die ein Array aufnehmen , im Gegensatz zu einer beliebigen Anzahl von Indizes. Durch die Aufnahme eines Arrays können Sie also etwas mit jedem Array-Element tun , das der Inhalt des Arrays ist. Wenn Sie nun zu unserem Array-Video von früher im Kurs zurückkehren , werden Sie sich daran erinnern, dass ein Array im Wesentlichen eine Liste ist. Es ist ein Container, der aus mehreren Elementen besteht und Einträge desselben Variablentyps enthält . In Ordnung, um hier als Beispiel zu zeigen, werden wir einige Arbeiten innerhalb unseres Level-Blueprints erledigen. Aber zuerst werden wir etwas außerhalb unseres Levels arbeiten. Jetzt werde ich diese SM-Lampenwand in meinem Star Content Props Ordner verwenden . Obwohl Sie wirklich jede Art von statischem Netz verwenden können , um das zu erstellen, was wir gerade erstellen werden. Ich habe hier eine einfache Wand. Wenn Sie also eine Art Wand in Ihrem Level platzieren möchten , um mitzuspielen, das vielleicht auch eine gute Sache. Denn was ich tun werde, ist, diese Wand, die Scott ist, an dieser Wand zu platzieren , die ich hier vor mir habe. Und ich werde noch etwas anderes zeigen , das Sie hier in Unreal tun können, genau hier oben in Ihrem Ansichtsfenster, dieses Drei-Pfeil-Symbol, Sie können das Oberflächenfangen aktivieren. Ich habe es gerade an. Das bedeutet das Häkchen. Wenn Sie jedoch nicht wissen, ob Sie es ein- oder ausgeschaltet haben , können Sie hier klicken. Ich habe es an. Der Grund, warum ich das aktiviert habe, ist zu zeigen, dass wenn ich es per Drag & Drop in mein Level ziehe, es an der Oberfläche einrastet , über die ich es ziehe. Sie können sehen, dass es sowohl über den Boden gleitet als auch so an der Wand entlang platziert wird. Nun, wenn ich es loslassen und mit der linken Maustaste klicken und ziehen würde, wird es nicht so über den Boden geschoben. Wenn ich es jedoch an den drei Eckpunkten dort greife, das Übersetzungs-Widget genau dort. Wenn ich mit der linken Maustaste klicke und es von dort aus greife, rastet es an der Oberfläche ein. Jetzt ziehe ich es hier an meiner Wand entlang. Natürlich ist es nicht genau so positioniert, wie ich es möchte. Ich muss diesen speziellen drehen. Wenn ich also die Leertaste drücke, drehe ich sie so. Drehen Sie es so und drehen Sie es so, um es an der Wand entlang zu bringen. Ich werde es auch hier ein wenig vergrößern. Und ich werde ein paar Duplikate herausbringen. also die Alt-Taste gedrückt halte, klicke ich mit der linken Maustaste und ziehe, halte die Alt-Taste erneut gedrückt, klicke mit der linken Maustaste und ziehe. Okay, ich habe drei davon in meinem Level. Großartig. Ich werde alle drei hier in meinem Outliner auswählen . Ich wähle den ersten aus, halte die Strg-Taste gedrückt und wähle auch die anderen beiden aus. Also habe ich alle drei ausgewählt. Und dann zurück in meinem Level Blueprint genau hier kommt, öffne Level Blueprint. Ich hangele mich hier unten weiter und klicke mit der rechten Maustaste. Nein, ich klicke nicht mit der rechten Maustaste. Ich könnte mit der rechten Maustaste klicken und einen Verweis auf jedes dieser Elemente einzeln erstellen . Wenn ich sie jedoch einzeln ausgewählt hätte, ich die R-Taste gedrückt und klicke mit der linken Maustaste, um sofort einen Verweis auf alle drei einzufügen. Sie sind übereinander gestapelt. Unglücklicherweise. Dann werde ich eines von ihnen herausziehen und make array eingeben. Also werden wir hier Pins zu unserem Array hinzufügen. Und wir werden jeden dieser drei in unsere Make-Array-Notiz hier einbinden. Jetzt kann dies ein Array ausgeben. Was ich tun werde, ist , einfach mit der rechten Maustaste darauf zu klicken und es zu einer Variablen heraufzustufen. Beachten Sie jedoch, dass ich das nicht tun muss. Ich werde dieses Array von Lampen hier verwenden, 123, um das an einen für jeden neuen, für jeden Loop-Knoten anzuschließen , das würde für diese Zwecke einwandfrei funktionieren. Aber nur um zu zeigen, dass ich dies zu einer Variablen befördern kann, werde ich es tun. Also werde ich mit der rechten Maustaste auf zwei Variablen klicken, und ich nenne das mein Lampenarray. Dadurch wird es sofort auf den richtigen Variablentyp gesetzt. Beendete sofort. Es macht es zu einem Radiergummi. Das ist ziemlich praktisch. Und was ich hier tun werde ist, nachdem ich diese in ein Array gesetzt habe, werde ich das in einen Ausführungs-Pin von mir für jeden Loop-Knoten stecken , du kannst den Hotkey verwenden, um das F gedrückt zu halten Taste und linke Maustaste, um für jeden Loop-Knoten einen einzufügen. Wir werden das in unser Array einbinden. Jetzt brauchen wir ein Event , um das alles auszulösen. Ich habe in meinem Level bereits eine Triggerlautstärke gesenkt. Wenn du keins davon hast, kannst du direkt hier runterkommen. Komm unter die grundlegende Triggerbox und platziere eine davon in deinem Level. Ich habe meine Kastenausdehnungen auf einhundert, einhundert, einhundert nach Linienstärke eingestellt, damit sie leicht sichtbar sind. Und ich habe Schauspieler unkontrolliert im Spiel versteckt. Nachdem das in Ihrem Level ausgewählt ist, klicken Sie mit rechten Maustaste in Ihrem Level-Blueprint. Wir werden ein Ereignis hinzufügen, wenn wir anfangen, dies zu überlappen. Und wir wollen sicherstellen, dass wir überprüfen, ob es sich um unseren Third-Person-Charakter handelt. Ziehen wir also Cast to ThirdPersonCharacter hier raus. Und wenn ja, und wir haben unsere Array-Variable erneut gesetzt, dieser Teil hier nicht besonders notwendig. Wir werden für jedes Element in diesem Array etwas tun . Was möchte ich nun mit jedem Artikel in unserem Array machen? Alle drei, nun, was ich tun möchte, ist aus unserem Array-Element herauszuziehen und ich werde noch den Standort des Schauspielers eingeben. Wir werden den Standort jeder dieser Wände nutzen , um einen Emitter zu spawnen. Also klicke ich mit der rechten Maustaste in einen leeren Bereich und mache Spawn-Emitter vor Ort. Ich werde den genauen Standort an die Standorteingabe unseres Spawns anschließen , einen Minarett-Standort, unseren Loop-Körper, wir werden ihn in diesen Funktionsknoten einstecken. Der Emitter hier, den ich verwenden werde, ist einfach mein P-Feuer abzufeuern. Dies ist ein älteres Partikelsystem. Auch hier können Sie ein älteres Partikelsystem einsetzen oder Sie könnten Spawnsystem an einem Ort erstellen , an dem Niagara-Sparkle-Effekte verwendet werden. Das System an Ort zu spawnen, ist dort gleichwertig. Dies wird jedoch so funktionieren, wie es ist, nur der Vollständigkeit halber. Von diesem fertigen Ausgangspin werde ich eine Zeichenfolge drucken. Und ich setze einfach die Saite ein. Erledigt. Also drucken wir das auf dem Bildschirm aus. Und was ich denke, ich werde auch tun ist, dass wir uns hier oben noch einen Druckstring einschleichen, Control C, Control V. Wir werden dieses Ende vor unseren Loop-Körper schleichen. Wir könnten es unserem Emitter nachstellen, wenn wir wollten. Also werden wir so gehen. Und für jedes Element in unserem Array hier drucken wir den Array-Index aus, damit Sie sehen können, dass diese Zahl auch auf dem Bildschirm ausgedruckt wird . Lassen Sie uns also zusammenfassen, was wir haben. Sobald unser Charakter dieses Triggervolumen überlappt, werden wir sehen, ob es tatsächlich unser ThirdPersonCharacter war . Was wir dann tun werden, ist diese drei Lampen zu benutzen und ein Array zu erstellen. Wir werden also ein Array haben, eine Liste von statischen Mesh-Akteuren hier, die diese Variable füllen werden. Wir werden dann für jede Schleife in unserem Array, für jeden Gegenstand in unserem Array Standort des Schauspielers ermitteln und etwas Feuer spawnen. Lassen Sie uns das kompilieren damit Ihr R-Skript gut aussieht. Lass uns reinspringen und spielen. Setzen Sie hier unser Debug-Objekt auf unsere Testmap. Ordnung, also los geht's. Sobald wir das überlappt haben, sollten wir sehen, wie Feuer hier, hier und hier erscheint. Es ist, als hätten wir drei Fackeln angezündet. Das laichen jetzt am Standort unseres Labors. Es ist nicht niedrig. Wenn wir auf unsere Lampe schauen, befindet sich das Übersetzungs-Widget an der Basis davon. Deshalb zeigt sich diese Flamme hier unten ein bisschen. Wir könnten dies jedoch ein wenig ausgleichen und es oben erscheinen lassen, aber Sie erhalten die Punkte. Du siehst, ich mache das nicht ein Mal. Wenn ich das also immer wieder überschneide, werden Sie sehen, dass dieser Text auf dem Bildschirm ausgedruckt wird. Und ich werde auch hier immer mehr Partikeleffekte erzeugen. Aber Sie können sich ein Setup wie dieses vorstellen , mit dem die Lampe angezündet wurde. Ein weiteres Beispiel, das Sie hier in unserem Level-Blueprint vorführen können. Dieses Mal verwenden wir den für jede Schleife mit Break-Node. Ich habe eine Reihe von Texten erstellt. Wenn Sie also mitspielen möchten, klicken Sie auf den Plus-Button. Wir haben dies in den variablen Texttyp umgewandelt und den Containertyp in ein Array geändert. Und dann habe ich hier dreimal zwei geklickt, du fügst drei Array-Elemente hinzu, die Krieger und Dieb gemacht wurden. Nun etwas zu beachten bei jedem unserer vier Loop-Knoten ist, dass Sie hier einige graue Pins haben. Diese zeigen nun Platzhalter an, was bedeutet, dass wir eine Vielzahl von Variablentypen daran anschließen können. Und es erkennt, welchen Typ wir anschließen und ändert den entsprechenden Typ so, dass er derselbe ist. Lass mich dir zeigen, was ich meine. Ich habe eine Reihe von Texten hier. Wenn ich das hier in unseren Gray-Array-Eingang stecke, wird es erkennen, dass Hey, du steckst ein Array von Textvariablen ein. Das bedeutet, dass wir Texte ausgeben werden, da Ihr Array aus drei erstellten Texten besteht. Krieger und Dieb, drei Array-Elemente. Ordnung, was machen wir mit diesem Setup hier? Nun, wir werden sehen, ob unser Array-Element einigen literalen Texten entspricht . wir mit der rechten Maustaste auf einen leeren Bereich. Bringen Sie einen Operator mit gleichem Knoten ein, gleich. Ich werde unsere Array-Elemente darin einbinden. Eigentlich ist das falsch. Mein Fehler. Wir werden zuerst den Make-Literal-Textknoten bringen , den Literal-Textknoten erstellen. Das ist der, nach dem ich genau da unten suche. Ich ziehe es raus und bringe das Gleichheitszeichen ein. Wir suchen nach Text, der genau den Texten entspricht. Das ist der, nach dem wir suchen, NICHT nach Betreibern, die gleich sind. Da haben wir's. Ich halte die Strg-Taste gedrückt, klicke mit der linken Maustaste und füge das einfach in die untere. In unserem Array wird das Element in das oberste eingesteckt. Unsere buchstäbliche Textur , nach der wir suchen werden , ist Krieger. Hinweis. Wir haben Warrior sowohl hier als auch in unserem Text-Array aufgeführt. Wenn das also gleich ist, ziehen wir uns hier raus und bringen den Verzweigungsknoten. Und wir werden uns aus unserem Wahren herausziehen. Mir wurde klar, dass hier ein Link fehlt. Ich werde gleich darauf zurückkommen. hier herausgezogen, um Drucktext einzugeben. Und wir drucken nur Found Warrior aus. Und was wir damit machen werden, ist das per Drag & Drop in unseren Break-Input zu ziehen und in unseren Break-Input hier ein paar Mal auf den Draht zu doppelklicken. Der Grund, warum ich hier eine kleine Lücke gelassen habe, ist , dass ich hier auch einen Prince-Textknoten eingeben möchte . Also werde ich so aus unserem Loop-Körper in ihre, in ihre, in unseren Array-Elementen fließen aus unserem Loop-Körper in ihre, in ihre, . Wir werden da rein fließen. Verstehen Sie also, was wir mit diesem Setup vor sich haben. Wir drücken die B-Taste. Wir werden dann unser Array durchgehen. Wir haben drei Elemente in unserem Array. Jedes dieser Array-Elemente werden wir auf dem Bildschirm ausdrucken, beginnend mit Major bis hin zu Warrior. Wir werden jedoch feststellen, dass wir hier feststellen werden, ob diese gleich sind. Wenn sie gleich sind und das stimmt. Wir werden ausdrucken, hey, wir haben den Krieger gefunden und dann werden wir unsere Hinrichtung hier brechen, was bedeutet, weil Warrior hier unser mittlerer Index ist, sollten wir es nie auch bekommen tief, denn das ist unser letzter Array-Eintrag. Wir brechen es, sobald wir einen Krieger finden. Lass uns weitermachen und das hier draußen testen. Schnelles Kompilieren, Speichern und Abspielen. Drücken Sie die Taste B. Da haben wir's. Es heißt, großer Krieger, gefundener Krieger, wir kommen nicht einmal zum Dieb. Nun können Sie einige für jeden Loop-Knoten in Betracht ziehen. Vielleicht können Sie einen dieser Knoten verwenden, um eine Reihe von Feinden zu zerstören oder vielleicht in einer Reihe von Gegenständen wie Beute zu spawnen Lass Gegenstände fallen, wenn du diese Feinde zerstörst Vielleicht verwenden Sie einen für jeden Loop-Knoten, um den Parameter aller Objekte in einem Array zu überprüfen und dann etwas mit denen mit einem bestimmten Parameter zu tun . Zum Beispiel fällt Yulen für alle Feinde mit weniger als 50% Gesundheit. Nur ein paar Beispiele, um euch zum Nachdenken zu bringen, okay Leute, das reicht aus, um dieses anzubieten. Wir sehen uns im nächsten. 85. while-Schleife: Willkommen! Der While-Loop-Knoten steht im Mittelpunkt dieses Videos und wir werden hier kurz einen Anwendungsfall demonstrieren. Erstens, wie funktioniert es? Nun, Sie schließen ein Ausführungskabel an der Eingangsseite des Knotens an. Und es wird wiederholt aus dem Loop-Körper auf der Ausgangsseite ausgeführt . Solange die boolesche Bedingung hier zutrifft. Beachten Sie nun, dass Sie mit diesem Knoten vorsichtig sein müssen, da es sehr leicht ist, in einer Endlosschleife stecken zu bleiben, wenn Sie nicht vorsichtig sind. Als gute Faustregel gilt, Sie keinen While-Loop-Knoten eingeben es sei denn, die Bedingung kann fast sofort auf falsch umgeschaltet werden. Wenn du zum Beispiel darauf wartest, deinen Charakter zu haben und eine Triggerlautstärke überlappen , um eine Bedingung auf falsch zu setzen, steckst du garantiert in einer Endlosschleife fest. Sie müssen sofort ein Mittel haben , um Ihre Bedingung auf falsch zu setzen. Ordnung, nun zu einem Beispiel-Anwendungsfall des While-Loop-Knotens. Jetzt werde ich hier nur ein bisschen voreingestellt, bevor wir zu Scripting kommen. Was ich gemacht habe, sind irgendwelche Inhaltszeichen, Netze, Ordner. Ich habe das Imani Skelett Mesh einfach per Drag & Drop in mein Level gezogen. Wirklich jede Art von Skelettnetz mit einer Kollision, statischem Netz, wir machen eine Grundform, solange es eine Kollision gibt. Wir werden bei Hit-Events etwas falsch machen. Was wir hier im Wesentlichen versuchen, ist ein Szenario, in dem Manny ein Dieb wird und einige überschüssige Inventargegenstände von unserem ThirdPersonCharacter stiehlt einige überschüssige Inventargegenstände . Wie hinterhältig in der Tat. Als nächstes müssen Sie Ihren ThirdPersonCharacter Blueprint geöffnet , da Sie hier darauf doppelklicken. Wir werden ein paar Variablen hinzufügen. Im Bereich Mein Blueprint klicken wir also auf Variable hinzufügen. Dieser erste wird Inventory Max Items genannt. Und dann kann ich mit der rechten Maustaste darauf klicken und es duplizieren. Control D können Sie es auch duplizieren. Dieser wird Inventar heißen. Aktuelle Elemente, die ich kompilieren muss, um einige Standardwerte hinzuzufügen. Also werde ich sagen, dass unser Charakter derzeit 75 Inventargegenstände, Waffen, Schilde, Gesundheitstränke und all diese Sachen hat . Und sie dürfen wirklich nur 50 Bankgeschäfte tätigen, das ist das Maximum, das sie haben sollten. Unter diesem hypothetischen Szenario sage ich, dass unser Charakter mehr Gegenstände trägt , als er haben darf. Aber wir erlauben ihnen, diese überschüssigen Gegenstände tatsächlich zu tragen bis sie sie tatsächlich auf eine Bank legen, wenn sie erwischt werden. Wenn sie jedoch die offene Welt wandern und ein Dieb vorbeikommt, können sie überschüssige Gegenstände stehlen die Charakter haben können. Auch hier sehen wir, dass das Maximum, das für die Notierung einer Bank ohne Zitat zulässig ist, 50 beträgt. Derzeit sind sie gierig und tragen 75. So verdickt ein Stahl bis zu 25 davon. Ordnung, damit kompiliere ich das. Wir springen zurück auf unser Level. Stellt sicher, dass Sie Ihren Manny Skelett-Mesh-Schauspieler ausgewählt haben . Und wenn das ausgewählt ist, gehen Sie zu Ihrem Level-Blueprint und öffnen Sie Level Blueprint. Ich habe hier im Voraus ein bisschen voreingestellt. Aber so kannst du mitspielen. Erstens mache ich einen Schauspieler, der vier Hits sind viele. Skelett da, Skelett Mesh. Wenn Sie mit der rechten Maustaste auf Ereignisse, Kollision, Actor Hip hinzufügen , So können Sie diesen Knoten hinzufügen. Dann können Sie hier raus ziehen und einen Cast to ThirdPersonCharacter durchführen , um diesen Knoten zu finden. Nun, wenn es unser ThirdPerson-Charakter ist , der unseren Dieb trifft, ihren Manny, den Dieb. Wir werden darauf eingehen und es einmal tun. Was wir einmal tun werden, ist diese ganze Schleife zu durchlaufen. Obwohl dies besagt, dass es einmal tun wird, werden wir in dieser ganzen Schleife bleiben bis die Bedingung hier falsch wird. Jetzt müssen wir eine Bedingung einstecken. Nun, unser Zustand wird unsere Inventargegenstände bewerten. Ziehen Sie also Ihren Third-Person-Charakter heraus, geben Sie Inventar ein, wir erhalten unsere aktuellen Inventargegenstände. Und denken Sie daran, wir haben 75 in unserem aktuellen Inventar. Also klicke ich hier auf diese drei Punkte und füge sie in 75 ein, nur als Erinnerung für uns selbst. Dann ziehe ich mich hin, wenn du erneut Inventar eingibst, bekommen wir unsere maximalen Gegenstände , die wir haben durften. Und ich klicke auf diese drei Punkte und setze sie in 50. Und wir werden diese beiden vergleichen. Wenn ich also aus meinen aktuellen Elementen ziehe, füge ich einen Knoten hinzu, der größer als ist. Wenn also unsere aktuellen Gegenstände größer sind als r max Items ist lang, stimmt das, werden wir hier weiter aus unserem Loop-Körper fließen. Jetzt möchte ich jedes Mal, wenn wir aus unserem Schleifenkörper herausfließen, die Anzahl der Artikel in unserem aktuellen Inventar verringern . Also ziehe ich mich hier raus und tippe Dekremente ein. Jetzt nimmt dieser Knoten eine Eingabe entgegen und wird von hier aus automatisch dekrementiert. Es wird also 75 dekrementiert. Dadurch wird es tatsächlich auf den aktuellen Betrag zurückgesetzt. Also 75 minus 174 , das wird automatisch als neuer Wert festgelegt. Dann wird es wieder eine Schleife geben, 73, et cetera, et cetera, et cetera. Solange dies als wahr ausgewertet wird, dieser Prozess gestoppt, sobald dies zu false ausgewertet wird. Also werde ich das hier in unsere Druckzeichenfolge stecken , damit wir sehen können diese Zahlen so auf dem Bildschirm ausgedruckt werden. Und schließlich werde ich aus dem fertigen Ausführungsstift eine weitere Druckzeichenfolge einbringen. Und ich werde einfach überschüssige vergebliche Tory-Gegenstände ausdrucken , die von ihrem Dieb gestohlen und gestohlen wurden. Das ist also unser Drehbuch, wenn Sie zu Hause mitspielen möchten. Dies ist ein Beispiel für den Anwendungsfall der While-Schleife, weil ich weiß , dass dies zu false ausgewertet wird. Ich weiß, dass meine aktuellen Inventargegenstände irgendwann diese Grenzen erreichen werden. Also lasst uns das kompilieren. Speichern. Ich werde das gleich hier oben verstauen. Klicke auf Play und setze mein Debug-Objekt auf meine Maps, damit ich sehen kann, wie dieses Skript ausgelöst wird. Hier. Wir gehen, da ist mein Dieb. Ich habe meine 75 Gegenstände , die ich in der Level-Überwachung herumrolle , hier oben. Sofort ist 7473 vorbei und es heißt, dass überschüssige Inventargegenstände entfernt wurden, und das hat es nur einmal getan. Du kannst sehen, wenn ich es noch einmal versuche, bleibt es hängen bei dem will Schnee. Das ist also ein Beispiel. Anwendungsfall der While-Schleife. Was nun die Unterschiede zwischen der while-Schleife und den Loops im Allgemeinen betrifft, sollten Sie eine for-Schleife verwenden, wenn Sie wissen, wie oft die Schleife ausgeführt werden soll. Wenn Sie möchten, dass die Schleife unter einer anderen Bedingung als der Häufigkeit, mit der sie ausgeführt werden soll, unterbrochen wird. Vielleicht erwägen Sie dann eine While-Schleife zu verwenden Ordnung Leute, das reicht, um dieses anzubieten. Wir sehen uns im nächsten. 86. Schalter: Willkommen! Wir werden in diesem Video einen Switch-Knoten behandeln. Und direkt vor den Toren stellen Sie vielleicht fest, dass Switch-Knoten hier in verschiedenen Geschmacksrichtungen erhältlich sind. Und sie haben oben kein graues Banner wie die anderen Flusskontrollknoten. Ich betrachte diesen Teil der Flusskontrollkategorie, weil wir im Wesentlichen den Ablauf unseres Skripts steuern werden . Das ist der einer dieser Ausführungs-Pins, aus dem wir herausfließen, abhängig von den Daten, die in den Switch-Knoten eingegeben werden. Jetzt gibt es Switch-Knoten in verschiedenen Varianten. In der Tat werden wir hier eine ganze Reihe von Sorten die Hauptsorten behandeln. Das ist ein Schalter auf int, switch on string, switch on name. Und wir werden auch einen Enumerator einschalten. Sie sehen hier keine Einschaltaufzählungen da der Name einer Einschaltaufzählung abhängig von der von Ihnen erstellten Enumeration variiert . Das habe ich früher im Kurs erstellt, und diese Aufzählung besteht aus den drei Labels, super okay, und sie schlecht. Wenn ich also einen Draht herausziehen und einen Schalter eingeben würde, könnte ich einen Schalter einschalten , der für diese Aufzählung spezifisch ist. Du kannst meine Ergebnisse sehen, es gibt super, okay, und es tut schwer weh. Wenn Sie nun mit der rechten Maustaste in ein Ereignisdiagramm klicken und einfach das Wort Switch eingeben würden . Sie können eine ganze Reihe von Switch-Knoten finden, von denen die meisten niemals verwendet werden. Aber es ist gut darauf hinzuweisen, dass sie existieren. Wir werden noch einmal die wichtigsten Geschmacksrichtungen behandeln und diesen, und etwas, das Sie bemerken werden . Sein Kommentar zu all diesen Switch-Knoten ist sie einen einzigen Ausführungseingangspin haben, aber sie haben unterschiedliche Dateneingänge für sie je nach Art des Switch-Knotens. Was ihnen gemeinsam ist, ist auch , dass Sie abhängig von den eingegebenen Daten aus verschiedenen Ausgängen herausfließen können . So sieht ein Switch on int, der die Abkürzung für Switch on Integer Node ist on int, der die Abkürzung für Switch on Integer Node ist, aus, wenn Sie zum ersten Mal danach suchen und ihn Ihrem Graphen hinzufügen. Auf der rechten Seite sehen Sie jedoch, wie dieser Knoten aussehen könnte , wenn ich ihm Pins hinzufüge. Für all diese können Sie also auf diese Plus-Schaltfläche klicken und weitere Pins hinzufügen. Standardmäßig beginnen sie mit einem Standard-Ausgangspin. Sie können dies tatsächlich anpassen, indem jeder dieser Knoten im Detailbereich ausgewählt ist. Sie können auswählen, ob er über einen Standardpin verfügt oder nicht. Und Sie können im Falle eines Schalters auch beachten, dass Sie, wenn Sie einige Pins hinzufügen, wie ich es hier mache, Ihren Startindex auswählen können. So heißt es derzeit bei Index 0 beginnen. Ich könnte sagen, wähle, bei Index zehn zu beginnen, und dann mache ich die erste Zahl hier zehn, und dann wird sie entsprechend nummeriert. Ich setze das auf Standard zurück. Schalte die Zeichenfolge ein. Sehr ähnlich. Ich kann weitere Pins wie diesen hinzufügen. Und wenn das im Detailfenster ausgewählt ist, kann ich wählen, ob es einen Standardpin hat oder nicht. Ich kann die Pin-Namen usw. wählen. Ich kann es wählen. Sie unterscheiden zwischen Groß- und Kleinschreibung. Es gibt also je nach Art des Switch-Knotens verschiedene Optionen . Nun, der Standard-Ausgangspin, wann fließen Sie aus diesem heraus? Sie werden daraus herausfließen, wenn die eingegebenen Daten nicht mit einem Ihrer verschiedenen Ausgangspins übereinstimmen, die Sie wünschen. Dies ist am Schalter am Internodium leicht zu erkennen. Im Moment habe ich also eine Auswahl an Nullen. Wenn ich in das hineinfließen würde, würde ich aus dem 0-Ausgangspin feuern. Wenn meine Nummer hier jedoch 50 gespeichert wurde. Und wir sollten hier ein Drehbuch durchspielen. Es stimmt mit keiner dieser Ausgaben überein, daher würden wir die Standardausgabe verlassen. Okay, ich habe ein paar Beispiele, die ich hier zeigen möchte. Also fange ich mit meinem Charakter-Blueprint für die dritte Person an. Was ich hier im Voraus gemacht habe, habe ich in einem früheren Video gemacht. Ich habe eine Enum namens E health status erstellt. Diese Aufzählung, diese Aufzählung besteht aus drei Labels, super okay, und schwer verletzt. Ich schiebe diesen Abschnitt einfach auf diesen Teil des Diagramms, in dem einige Knoten auf mich warten. Und was ich einfach tun werde, ist wenn ich eine Eingabetaste drücke, werde ich die maximale Gehgeschwindigkeit meines Charakters ändern. Jetzt können Sie diese Parameter genau hier ändern, diesen Parameter für die maximale Gehgeschwindigkeit Wenn Sie Ihre Charakterbewegungskomponente auswählen, können Sie im Detailbereich sehen, dass Sie einen Parameter namens max haben Gehgeschwindigkeit, die steuert , wie schnell sich dein Charakter bewegt. Alles was Sie tun müssen, ist Drag & Drop. Fügen Sie dies zu Ihrem Diagramm hinzu, ziehen Sie es hier heraus und geben Sie die eingestellte maximale Gehgeschwindigkeit ein, und Sie werden diesen Knoten finden. Was wir hier tun werden, basiert auf dem Wert unserer Enum hier, super, okay, oder sie schlecht, sehen Sie, das sind die drei Ausgaben, die den drei Labels entsprechen , die enum besteht aus. Wenn es super ist, erhöhen wir unsere maximale Gehgeschwindigkeit. Wenn es okay ist. Wir werden es einrichten. 500. Wenn wir schwer verletzt sind, setzen wir das auf 100. Also klicke ich rechten Maustaste und bringe einen Eingabeschlüssel ein. Versuchen wir es mit dem Aids-Schlüssel. Ich glaube nicht, dass ich den Aid-Schlüssel noch für irgendetwas verwende . Im Moment ist unser Gesundheitszustand super. Sobald ich die A-Taste drücke, sollten wir unsere maximale Gehgeschwindigkeit auf zweitausend Jahre erhöhen . Also klicke auf Play und setze mein Debug. Widersprechen Sie meinem ThirdPersonCharacter. Los geht's. Also wandere ich oder frage mich, ob ich das schmerzend drücken werde. Und jetzt kann ich mich plötzlich viel schneller bewegen. Braasted hat meinen Gesundheitszustand hier geändert, um einfach schwer verletzt zu werden. Das habe ich jetzt geändert. Sobald ich also die A-Taste drücke, werden wir diesen Wert bewerten, den Valley gehört hat. Wir werden hier rausfließen und es wird unser Maximum B2, 100 ändern. Klicken Sie auf Abspielen. Los geht's, jetzt drücken wir die Bewegungstasten , WAS und D. Los geht's. Acht Schlüssel. Jetzt bin ich schwer verletzt und bin gleich Olympionike. Es gibt also ein Beispiel für einen Schalter auf enum. In diesem nächsten Beispiel werde ich diesen Feind töten. Schau dir diesen gruseligen Kerl da draußen an, indem du ihn einfach anklickst. Wenn ich das tue, werde ich einen Schalter auf dem Zoll-Knoten verwenden um eine Schleife zu spawnen, um ein zufälliges Loot-Drop-System zu erstellen. Wenn du also zu Hause mitspielen willst, habe ich einfach ein Mesh hinzugefügt. Dieses S k, m bei Manny aus meinem Charakter Mannequins Meshes Ordner, ein Drag & Drop das in mein Diagramm. Und nachdem das ausgewählt war, ging ich hier in meinen Level-Blueprint. Und ich habe hier ein paar Knoten im Voraus eingerichtet. Ich habe ein Onclick-Event für diesen S KM hinzugefügt, wieder musst du ihn ausgewählt haben und dein Level und du kannst eines davon hinzufügen, indem du mit der rechten Maustaste klickst. Und Ereignisse in Eingabeereignissen, eine Mauseingabe. Und hier habe ich ein OnClick-Event gemacht. Was will ich also machen, wenn ich hier auf Manny klicke? Nun, ich ziehe mich von hier ab und bringe einen Switch on Node ein. Und ich werde hier ein paar Ausgangspins hinzufügen. Ich gehe 1234. Und ich werde einen ganzzahligen Wert aus einem zufälligen Bereich auswählen . Also ziehe ich mich rückwärts davon ab und tippe zufällig ein. Zufälliger Ganzzahlbereich ist das, wonach ich suchen werde. Also sage ich, gib mir eine Zahl zwischen 03. Also wird es 012 oder drei wählen. Und dann schieße ich aus den entsprechenden Pins, basierend auf der ausgewählten Nummer. Was ich jetzt tun möchte ist, wenn wir eine 0 oder eins bekommen, werde ich einfach in einen Play-Sound zum Knoten fließen. Es wird „Scheitern“ heißen. Also werden wir in 50% der Fälle einfach einen Sound abspielen und du wirst nichts bekommen. Wir sagen also, 50% der Fälle für das Töten eines Mannes. Wenn du da bist, bekommst du nichts als die anderen 50% der Fälle, in denen wir hier etwas in unser Level spawnen werden. Ich werde in einen Spawn-Schauspieler vom Klassenknoten ziehen. Du kannst mit der rechten Maustaste klicken und nach dem Spawn-Schauspieler aus der Klasse suchen . Wir sagen, wenn wir eine Zwei oder eine Drei bekommen, werden wir spawnen. Ich werde in einem BP-Mann spawnen, einem Trank, den wir früher im Kurs kreiert haben. Und ich muss das mit einer Spawn-Transformation füttern denn wenn ich jetzt kompiliere , wird es mich anschreien und sagen : Hey, du musst dafür Transformation spawnen. Also werde ich sagen, wo sollen wir das spawnen? Lass mich einfach diese beiden Knoten hier unten loswerden. Nun, ich habe Manny bereits ausgewählt, also klicke ich mit der rechten Maustaste und etwas leeres Feld. Eigentlich werde ich nicht mit der rechten Maustaste klicken. Ich könnte mit der rechten Maustaste klicken und so einen Verweis auf Manny bekommen . Oder Sie halten den RT Linksklick gedrückt und erhalten so einen Verweis auf Manny. Ziehen wir Manny ab und geben das Formular get trans ein. Wir suchen die Welt, die sich verändert. Wir bekommen Schauspieler-Transformation ist in Ordnung. Wir stecken das ein. Das ist Ende. Lass uns danach eine Art Sound spielen. Also ziehen wir diesen Play-Sound 2D und spielen Teleports. Engagiert. Klar, das klingt gut. Lassen Sie uns hier unser Skript zusammenstellen. Wenn wir also auf Manny klicken, wählen wir eine zufällige Zahl zwischen 03, je nachdem, welche Zahl wir erhalten. Wir werden entweder in 50% der Fälle versagen oder in 50% der Fälle, in denen wir eine Manifestation hervorbringen. diese Weise können Sie also ein zufälliges Beutesystem erstellen , das gewichtet ist. Wenn ich diese fünfundsiebzig Prozent der Zeit warten wollte , um einen Mann zu spannen und zu spannen, einen Trank. Sie können sehen, wie ich mit einem solchen Setup umgehen könnte. Aber ich nehme stattdessen 5050. Kompilieren, speichern. Werde den Kerl gleich hier los. Und wir werden uns gleich mit diesen Zeichenfolgen in Namensschaltern befassen . Hey, das, wenn ich das hier in die Ecke verschiebe, werde ich meine Map als mein Test-Debug-Objekt festlegen. Und los geht's, ich klicke darauf. Sie werden sehen, wie dieses Drehbuch losgeht. Bam, da ist ein Mann, ein Trank zu seinen Füßen, und ich habe nicht viele vernichtet. hätte ich wahrscheinlich auch tun sollen. Weil wir jetzt weiter auf sie klicken können. Es spawnt es alles an genau derselben Stelle. Und das sollte ich eigentlich tun. Töten wir viele. Wenn wir tatsächlich diesen Amanda-Trank spawnen , der aus dem Geld gezogen wurde, werden wir Destroy Actor sagen. In den Ereignissen, auf die wir klicken. Beides kann dort so hineinfließen. Wenn ich sie jetzt anklicke , bam, tot, haben wir einen Mann, einen Trank, den wir auch sammeln können. Ordnung, das nächste Beispiel, das ich hier zeige , wird in meinem Level-Blueprint gemacht. Und als ein bisschen Vorbereitung im Voraus habe ich hier einen Manny zu meinem Level hinzugefügt. Und nur um dir zu zeigen, was ich hier noch gemacht habe, ist mit Manny in meinem Level-Blueprint ausgewählt wurde, sofort habe ich hier unten einen Hinweis auf Manny bekommen. Sie können das erreichen, indem Sie die Alt-Taste gedrückt halten und mit der linken Maustaste klicken. Und dann habe ich es hier herausgezeichnet. Den Standort des Schauspielers ermitteln, indem Sie ihn eingeben. Ich erkläre das alles gleich, aber lassen Sie mich ein wenig nachholen. Erstens drücken wir die Fünf-Taste. Wenn Sie also mit der rechten Maustaste klicken und die Tastatur eingeben, erhalten Sie so die Fünf-Tasten. Nun, dann machen wir es, wir werden in einen Schalter auf dem String-Knoten fließen. So sieht der Knoten zuerst aus, wenn Sie ihn einführen. Sie können jedoch einige Pins hinzufügen , indem Sie auf diesen Plus-Button klicken. In diesem Fall können Sie diese Ausgangspins umbenennen , indem Sie diese Namen überschreiben. Und Sie können sehen , dass ich das getan habe, indem ich sie Bob, Pablo und whoo nannte . Ordnung, also werde ich diesen zugunsten des löschen , den ich im Voraus eingerichtet habe. Jetzt fließen wir eine String-Variable hinein, ich habe hier eine Variable erstellt, namestring, und sie ist vom Typ string. Und ich habe den Standardwert auf Pablo gesetzt. Wie Sie feststellen werden, ist das der Name meines mittleren Ausgabeausführungs-Pins hier. Ich habe hier einen Notiz-Port hinterlassen. Was ich dann auch mache, ist nicht nur diese String-Variable hier einzufügen, ich setze auch genau dieselbe String-Variable zurück auf Whoo Sobald ich die fünf Schlüssel loslasse. Also drücke ich darauf und bewerte Inhalt dieser String-Variablen, es wird Pablo sein. Also werden wir weiter hier rausfließen. Und dann teleportieren wir unseren Spielercharakter, das sind wir, an den Standort von Manny. Jetzt können wir nicht mehr genau zum Standort von Manny fließen. Ich mache einfach Drogen hier raus, habe einen Subtraktionsknoten eingeführt und subtrahiere einfach um 200 an der x-Position, nur um mich ein wenig auszugleichen. Und das gebe ich als meinen Zielort an. Beachten Sie also, dass ich die Fünf-Taste drücke. Diese String-Variable wird so gut wie möglich gelesen und fließt daher aus der Pablo-Ausgabe heraus. Wir teleportieren uns zu dem Ort in der Nähe von Manny. Sobald ich die Fünf-Taste loslasse, wird der Inhalt dieser Variablen in woo geändert , sodass wir beim nächsten Drücken der Fünf-Taste nichts tun werden, weil nichts kommt aus dem Wu-Ausgang. Anheften. Speichern kompilieren. Lass uns weitermachen und hier spielen, um das zu testen. Ordnung, schauen Sie gleich hier nach. Ich drücke die Fünf-Taste und werde dort in die Nähe vieler teleportiert. Und um das wirklich zu beweisen, lass mich weit weg fliegen, weit weg von Manny. Okay, los geht's. Fünf Schlüssel. Wir haben uns teleportiert. Ich werde jetzt die fünf Schlüssel loslassen den Inhalt für diese String-Variable auf Wu setzen. Wenn ich das nächste Mal die Fünf-Taste drücke, können wir sogar sehen, dass es whoo ausgibt. Du kannst das sehen, wenn du mit der Maus über dieses Kabel fährst, es zeigt Wu. Und nichts passiert, weil am Wu-Ausgangspin nichts passiert. Da hast du es also zum Einschalten der Saite. Und zu guter Letzt noch ein Beispiel für den Switch-Knoten. Dieser wird auf den Namen geschaltet. Ich werde das auch innerhalb meines Levels tun. Blueprint hat ein wenig Vorbereitungsarbeit. Ich habe ein paar Namensvariablen im Variablenbereich. Ich habe diese schon viel früher im Kurs erstellt. Einer von ihnen wird Level 11 genannt , von ihnen heißt Level zwei. Und als ich ihnen einen Standardwert gab, benannte ich eine Starter-Map in Kleinbuchstaben und die andere Ebene, um einen minimalen Standardwert in Großbuchstaben zu hören . Diese entsprechen tatsächlich dem Namen einiger Level-Assets. Wenn ich hier unten im Starter Content Maps-Ordner zu meinem Inhaltsbrowser zurückkehre , gibt es eine minimale Standardkarte und es gibt eine Startermap. Also werde ich diese Variablen verwenden , um zu bestimmen, auf welche Ebene wir transportieren werden , basierend auf der Auswahl, die wir an basierend auf der Auswahl, die wir diesen Schalter auf NameNode anschließen. Und ich werde das ein bisschen anders angehen. Zuerst klicke ich mit der linken Maustaste und ziehe sie in mein Diagramm. So. Was ich dann tun werde, nur um etwas anderes zu zeigen , was wir hier tun können, ist, dass ich ein Array erstellen werde. Ein Array ist eine Liste von ähnlichen Dingen. Dies sind beide benannte Variablen, sodass wir eine Liste dieser Variablen erstellen können. Ich füge einen Pin hinzu, damit ich hier auf Ebene zwei einstecken kann. Dann werde ich das nur ein bisschen untermauern und das Ganze in die Länge ziehen. Wir haben jetzt ein Array, das aus zwei Elementen besteht. Ich werde das herausziehen und ein zufälliges, zufälliges Array-Element eingeben . Und ich stecke das wie Salz ein. Dieser Knoten wird also ein zufälliges Array-Element auswählen. Wir haben hier nur zwei mögliche Auswahlmöglichkeiten. Es wählt zufällig eines aus und ich kann auf Plus und Plus aus jedem dieser Elemente klicken , je nachdem, welches Element es auswählt. Also werde ich meinen Fall 0 hier ändern , um hier Level eins zu entsprechen. Also wird Starter Mountain einfach Control C drücken und den Namen einschalten. Ich überschreibe das Steuerelement V. Und dann für Level auf Control C und schalte den Namen Control V ein. In Ordnung, also wenn es die Starter-Map ist, die ausgewählt wird, fließen wir zu der Ebene namens Gestartete Maps. Ich werde dieses Level tatsächlich per Drag & Drop auf diese offene Ebene mit der Namensfunktion ziehen. Und wenn das aus unserem Array die minimale Standardstufe hierher wählt , werde ich das per Drag & Drop hierher ziehen und so weitermachen. Ordnung, also lasst uns weitermachen und das kompilieren. Spar es. Und wir werden das hier spielen. Sobald ich die Fünf-Taste drücke, frieren wir ein, weil wir die Level hierher transportieren werden . Und so sind wir tatsächlich auf ein anderes Level gefahren und haben noch einmal gespielt, um zu sehen, ob wir das andere hier auftauchen lassen , indem wir die Fünf-Taste drücken, da ist unser minimales Standardlevel und da du hast es, schalte Namen ein. Diese Einschaltknoten sind also sehr nützlich. Ich persönlich benutze den Switch on Nodes ziemlich gerne , um chronisch ein zufälliges Loot-Drop-System zu erstellen. Sie können warten, bis diese Prozentsätze der Beute fallen, aber viele nützliche Anwendungen, die tun werden, um dieses Video anzubieten. Wir sehen uns im nächsten. 87. Wählen Sie: Willkommen! In diesem Video ist es unser Ziel, Wissen zu gewinnen und die Verwendung des ausgewählten Knotens zu demonstrieren. Jetzt wird die Auswahlnotiz offiziell nicht als Flow-Control-Knoten betrachtet , da sie den Ausführungsablauf nicht beeinflusst. Tatsächlich gibt es in dieser Notiz keine Ausführungs-Pins. Die Auswahlnotiz unterstützt jedoch den Datenfluss in Ihrem Skript. Deshalb hielt ich es für das Beste, diese Lektion hier aufzunehmen. Also der ausgewählte Knoten, was genau macht er? Nun, wählen Sie Notizen aus, nehmen beliebigen Index auf und basierend auf diesem Index wird eine der eingegebenen Optionen zurückgegeben. Dies ist nützlich, da Sie manchmal möchten, dass der Rückgabewert hier je nach Werteingabe unterschiedlich sein soll. Jetzt nur ein sehr kurzes Beispiel. Wenn ich unseren Indextyp hier in einen booleschen Wert ändere, sehen wir, dass sich unsere Eingabe-Pins hier true und false ändern. Nun, je nachdem, ob das stimmt, könnten wir hier den wahren Wert ausgeben. Oder wenn es falsch ist, könnten wir alles, was in das falsche Wesen eingegeben wird , ausgeben lassen. Sie können also sehen, abhängig vom Wert davon, werden wir eine dieser Optionen auswählen , um zurückzukehren, in Ordnung, um einen dieser ausgewählten Knoten in Ihr Diagramm zu bringen, es ist so einfach wie ein Rechtsklick und eine Suche nach Select durchführen. Alternativ können Sie eine Auswahlnotiz auch einfügen, wenn Sie einen dieser Indextypen haben, boolescher Wert, Byte, Integer, Integer 64 oder eine beliebige Aufzählung, aus der Sie ziehen könnten Diese Variable tippt auch die Auswahlnote ein. Um das zu demonstrieren, werde ich wählen, ich habe hier eine Integer-Variable auf meiner linken Seite. Ich ziehe das einfach per Drag & Drop in mein Diagramm. Ich sollte es holen und dann herausziehen und auswählen eingeben. Sie können sehen, dass ich von dort aus einen ausgewählten Knoten finden kann. Und diese Ganzzahl wird sofort in den Auswahlknoten eingesteckt. Ordnung, lassen Sie uns hier schnell einige Knotenoptionen untersuchen , bevor wir einige Beispiele zeigen Ich werde diesen Knoten einfach schnell löschen . Sie können mit der rechten Maustaste auf einen Knoten klicken, den Knoten selbst, und Sie können sehen wie Sie ihm Pins hinzufügen können. rechten Maustaste auf Pin hinzufügen, oder Sie können Pin entfernen, indem Sie mit der rechten Maustaste auf den Knoten Stift entfernen. Durch Rechtsklick auf eine Option oder Rückgabewert können die Pintypen geändert werden. Im Moment sind diese als Platzhalter gesetzt, was bedeutet, dass sie dynamisch in etwas geändert werden können . Mach was immer ich da angeschlossen habe. Sagen wir, wenn offensichtlich ein Vektor in Option eins eingesteckt wird, werden alle anderen Pins hier die Option im Rückgabewert auf denselben Typ geändert alle anderen Pins hier die Option im . Oder ich könnte es schwer hier setzen, indem ich mit der rechten Maustaste entweder auf die Optionen - oder Rückgabewert-Pins klicke Und auf diese Weise könnte ich den Pin-Typ als eine der verschiedenen Optionen ändern . Rechtsklicken Sie auf Pintyp ändern. Und ich könnte das ändern , um zu sagen, Transformationen. Ich kann den Indextyp auch hier unten ändern , indem ich entweder auf dieses Drop-down-Menü klicke. Und ich bin mir nicht sicher, warum es hier oben so aussieht. Sobald ich auf diesen booleschen Wert, Byte, Integer, Integer 64 oder eine der verschiedenen Enums klicke . Oder ich klicke einfach mit der rechten Maustaste auf den Pin selbst und ändere den Pin-Typ mit dem kleinen Dropdown dort. Aber Sie haben dieses Drop-down-Menü bereits, daher finde ich diese Option nicht so nützlich. Und dann können Sie natürlich auf der Notiz selbst sehen , dass Sie die Möglichkeit haben , Pins hinzuzufügen, indem Sie einfach auf diesen Plus-Button klicken. Das ist eine andere Möglichkeit, weitere Options-Pins hinzuzufügen. Okay, zum Beispiel, ich werde hier in meinem Level-Blueprint mehrere ausgewählte Node-Beispiele zeigen . Wenn Sie also zu Hause mitspielen möchten, wählen Sie hier Ihren Level-Tab aus , öffnen Sie Level Blueprint. So finden Sie sich hier weiter. Und ich beginne mit der rechten Maustaste und tippe unions select ein. Das erste Beispiel, das ich zeigen möchte ist die Verwendung eines booleschen Index. Also klicke ich auf dieses Dropdown und wähle einen booleschen Index aus. Beachten Sie nun, dass in dem Moment, in dem ich dies tue und boolean auswähle, meine Optionen hier auf falsch und wahr ändern werden , da ein boolescher Wert nur falsch oder wahr sein kann. Ich ziehe mich hier rückwärts von meinem Index und tippe zufälliges Bool ein. Dieser Knoten spuckt also einfach zufällig entweder den Wert false oder true aus , je nachdem, welchen Wert er ausspuckt. Sagen wir einfach zum Beispiel, es spuckt falsch aus. Es wird die Eingabe auswählen, hier die falsche Eingabe, die zurückgegeben werden soll. Wenn es true ausspuckt, wählt es die wahre Eingabe aus, die zurückgegeben werden soll. So funktionierts. In Ordnung, bringen wir sofort einen Event-Knoten ein. Ich gehe mit der rechten Maustaste und tippe die Eingabe mit fünf Tastaturen ein. Und wir ziehen uns aus dem heraus und geben Open Level namentlich ein. Jetzt öffnet diese Funktion eine Ebene mit Namen. Es sucht nach einer Namensvariablen. Schau dir das an. Drüben auf der linken Seite. Ich habe Level eins und Level zwei. Dies sind zwei benannte Variablen. Das ist der Typ, den ich früher im Kurs erstellt habe . Und nachdem ich kompiliert habe, habe ich die Namenswerte hier als Startermap für Level eins festgelegt . Auf Ebene zwei habe ich den Variablentyp des Namens hier auf einen minimalen Standard gesetzt. Das ist kein Fehler. Ich nenne diese als solche, weil hier in meinem Inhaltsbrowser, im Ordner Starter Content Maps, zwei Ebenen gibt, zwei Maps, die wir öffnen können, die als minimale Standardeinstellungen und Stern bezeichnet werden. karte. Sie werden feststellen, dass die Groß- und Kleinschreibung aller Buchstaben hier, minimale Standard- und Startermap, hier etwas anders ist als das, was Sie in den Variablennamen sehen. Hier wird alles groß geschrieben, und hier sind alle Kleinbuchstaben für Namensvariablen. Es spielt keine Rolle. Ordnung? Also stecke ich Level eins in den falschen Eingang, Ebene zwei in den wahren Eingang. Und bevor ich es dort reinlege, beachte das, in dem Moment, in dem ich einen Variablentyp an einen dieser Eingänge angeschlossen habe einen Variablentyp , oder lass mich einfach diesen Draht abschneiden. Ich halte die Alt-Taste gedrückt und klicke mit der linken Maustaste. Oder wenn ich etwas in dieser Richtung in den Rückgabewert stecke , werden beide Seiten des Knotens in den entsprechenden Variablentyp geändert . Es weiß also, dass unser hier gewünschter Rückgabewert den Namen trägt. Es wird also heißen, okay, Sie suchen nach einem Namensvariablentyp, das bedeutet, dass Sie einige benannte Variablen einbinden müssen . Also Level eins, Level zwei hier. Sobald ich also die Fünf-Taste drücke, wird sie auf einer bestimmten Ebene entsprechend der Namensvariablen geöffnet . Wir stecken ein, welche Namensvariable wird letztendlich hier durchgehen? Nun, das wird durch diese Auswahlnotiz bestimmt. Die ausgewählte Note nimmt jeden zufälligen Bullen auf. Es spuckt falsch aus. Es wird auswählen, es wird hier Level eins auswählen, die Starterkarte, und sie auf das Level zurückgeben , das wir geöffnet haben. Wenn dieses zufällige Bool true ausspuckt, wird es auswählen, hier den wahren Wert auswählen, minimalen Standardwert einstecken und diesen als Level übergeben, um das Kompilieren, Speichern und Spielen zu öffnen . Ich habe meine Testkarte bereits dort eingerichtet , damit wir sehen können, wie diese Gruppe feuert. Wenn ich also die Fünf-Taste drücke, geht es los. Es brachte mich auf mein minimales Standardniveau. In diesem Fall zeigt es die Option true an, da bool zufällig true ausgespuckt haben muss. Ich weiß, dass das die minimale Standardstufe war. Ordnung, nächstes Beispiel hier beginne ich damit, eine Triggerbox hier in meinem Level zu platzieren. Und Sie können eine davon finden, indem Sie direkt hier unter dem Basisbereich Triggerbox kommen , ziehen Sie sie per Drag & Drop hier ab. Damit können Sie in Ihrem Level Ihre Kastenausdehnung auf eine 100100100 Linienstärke von zehn festlegen . Außerdem empfehle ich, es so zu gestalten, dass Sie dies auch in Ihrem Level sehen können. Und das kannst du tun, indem du unter den Rendering-Bereich gehst und im Spiel versteckten Schauspieler deaktivierst. Ordnung, da das hier in unserem Level-Blueprint ausgewählt wurde, klicke ich mit der rechten Maustaste und wir werden etwas tun , wenn wir uns damit überschneiden weil wir viele Dinge in Gewinnen tun wenn wir eine Trigger-Lautstärke. Was wir tun werden, ist, dass wir uns aus unserem anderen Schauspieler herausziehen und zu Cast to ThirdPersonCharacter gehen . Das sind die Charaktere , die wir kontrollieren. Und wenn es stimmt, dass der andere Schauspieler, der diese Triggerbox überlappte , der Third-Person-Charakter war. Wir werden etwas spawnen, Schauspieler aus dem Unterricht hervorbringen. Und wir werden das so einstecken. Was wir jetzt spawnen, wird von einem Integer-Index bestimmt. Was ich also tun werde, ist, dass ich eine Ganzzahl per Drag & Drop in mein Diagramm ziehen und dort ablegen werde, genau hier in einer ganzzahligen Variablen, Sie können eine davon erstellen, indem Sie auf die Plus-Schaltfläche klicken und eine Integer-Variable. Ich hole es mir. Und dann ziehe ich mich hier raus und tippe Select ein. Weil ich das aus der Integer-Variablen ziehe. Es weiß, dass ich das als meinen Index eingeben möchte. Jetzt möchte ich etwas auswählen, das in mein Level spawnen soll , abhängig von der von mir eingegebenen Ganzzahl. Also werde ich so vorgehen, um sicherzustellen, dass ich die richtigen Klassen als meine Optionen habe. Wenn ich einfach rückwärts vom Spawn-Schauspieler aus der Klasse ziehe , wusste ich es aber so, und stecke es in den Rückgabewert. Es werden automatisch meine Eingangspins so geändert , dass sie vom gleichen Typ sind. Los geht's. Ordnung, also lass mich hier einen dritten Pin hinzufügen. Und jetzt kann ich verschiedene Klassen auswählen , in denen wir spawnen möchten. Ich suche mir hier einfach nach dem Zufallsprinzip welche aus. Ich habe einen Mann, einen Trank, den ich vorhin kreiert habe. Wir können mit einem Feuer-Blaupauseneffekt spawnen. Feuer spielt keine Rolle, was du hier einsteckst, und es entsteht auch Funken. Das sind einige gängige , die ich gerne mache. Okay, jetzt meine Ganzzahl hier, wenn sie 0 ist, wenn das die Ganzzahl ist, die wir füttern, wählt sie Option 0, um ins Spiel zu spawnen. Wenn ich diesen ganzzahligen Wert in eins ändere, wählt er diese Option , um zurückzukehren und ins Spiel zu spawnen. Wenn Integer gleich zwei ist, wählt es diese Funken aus, um zurückzukehren und sie im Spiel zu spawnen. Jetzt muss ich uns eine Spawn-Transformation geben, denn wenn ich hier kompiliere, wird es mich anschreien und sagen: Hey du Vollidiot, ich muss wissen, wo ich spawnen soll. Also springe ich zurück zu meinem Level. Ich werde reinbringen, lass uns ein Ziel einbringen. Ich klicke gleich hier oben. Ich werde das Panel der Place Actors ins Spiel bringen und Ziele eingeben. Zielpunkte. Platziere einen von denen gleich dort. Nachdem das hier in meinem Level-Blueprint ausgewählt ist, ich diesmal mit der rechten Maustaste. Erstellen Sie einen Verweis darauf, wird daraus herausfahren und get trans form good actor transform eingeben . Und ich weiß gerade, dass Integer ein Wert von 0 ist. Also kompiliere ich hier. Also sollten wir in gewisser Weise einen Trank laichen. Also lass uns weitermachen und hier spielen. Schrumpf das runter. Sobald ich dieses Triggervolumen überschneide, sollte es hier die Ganzzahl 0 auswählen, dass ein Trank an der Stelle dieses Zielpunkts ins Spiel spawnt . Los geht's. Und das hat es tatsächlich getan. Nun, das ist nicht besonders interessant, weil wir wussten, dass dies unser Ergebnis sein würde, weil wir unseren ganzzahligen Wert hier auf 0 gesetzt haben. Was ich also tun könnte, ist das zu löschen, von unserem Index rückwärts zu ziehen und zufällige Ganzzahlen im Bereich einzugeben. Und ich kann sagen: Hey, wähle etwas zwischen 02, kompiliere, speichere im Spiel. Los geht's. Triff einen Trank. Wenn ich mich immer wieder überschneide, weil ich das kein einziges Mal mache. Irgendwann hole ich sie alle. Da haben wir's. Und so können Sie hier sehen, wie es ist, eine andere Option auszuwählen , abhängig von der Zufallszahl , die wir ihr geben. Okay, ein letztes Beispiel hier für dieses, ich werde meinen BP-Third-Person-Charakter verwenden. Wenn es Ihnen also nichts ausmacht, darauf zu doppelklicken , um es zu öffnen, werde ich zeigen, wie wir einen ausgewählten Knoten zusammen mit einer E-Nummer in der Aufzählung verwenden können . Jetzt haben wir diese Aufzählung früher im Kurs erstellt. Wenn Sie also wissen möchten, wie eine Aufzählung aussieht, komme ich in meinen Scripting-Blueprints-Ordner. Und hier habe ich den eHealth-Status der Aufzählung und Sie können mit der rechten Maustaste klicken und ein leerer Bereich wird unter Blueprints angezeigt, um ein Aufzählungs-Asset zu erstellen. In dieser Aufzählung des Gesundheitsstatus, bei der es sich um eine Liste von Labels handelt, wenn Sie so wollen. Ich bin super okay und habe schwer verletzt. Dann habe ich innerhalb meines Third-Person-Charakters eine Variable erstellt und den Variablentyp so eingestellt, dass er auf die von mir erstellte Aufzählung verweist , den eHealth-Status. Ich ziehe das per Drag & Drop in mein Diagramm. Wir werden das bekommen und ich ziehe es raus und tippe Select ein. Wir können also sofort sehen, weil unsere Aufzählung hier aus diesen drei Labels besteht , die schwer verletzt wurden, okay, in Super, wir sehen diese als unsere drei Eingaben hier. Was wollen wir nun tun, je nachdem, ob dieser Index hier schwer verletzt ist, okay, oder super? Nun, was ich tun möchte, ist meine Charakterbewegungskomponente zu schnappen und sie per Drag & Drop zu ziehen Und ich werde, lass uns hier etwas anderes machen. Du hast schon einmal gesehen, wie ich meine maximale Gehgeschwindigkeit angepasst habe. Ich stelle meine Sprunggeschwindigkeit ein. Jetzt ist die Sprunggeschwindigkeit Z ein Parameter innerhalb der Bewegungskomponente deines Charakters. Da ist es, das bestimmt, wie hoch dein Charakter springen kann. Also ziehe ich mich rückwärts. Büros haben eine Geschwindigkeit erreicht. Dies ist eine Float-Variable, nach der sie sucht , und fügen Sie diese in den Rückgabewert ein. In dem Moment, in dem ich das mache , werden alle Eingaben hier auch in einen Float-Wert geändert . Jetzt könnte ich einige Variablen einfügen , um diese Werte genau hier zu ermitteln. Ich werde sie nur hart hier platzieren. Also werde ich sagen, wenn ich super meine Sprünge bin, wird die Geschwindigkeit zweitausend sein. Wenn ja, okay, setze ich es auf 700, was der Standardwert für die Sprünge ist, die Geschwindigkeit. Und wenn ich schwer verletzt bin, sage ich, dass wir nur auf 100 springen können . Ich brauche hier eine Art Eingabeschlüssel. Lass mich mit der rechten Maustaste klicken. Es ist ein leerer Raum. Ich bringe die fünf Schlüssel hier ein, weil ich sie nicht mehr in meinem Level-Blueprint verwende. Ich habe es dort gelöscht. Wenn ich also die Fünf-Taste drücke, stellen wir unsere Charakterbewegungen ein. Springt eine Velocity-Eigenschaft , diese Eigenschaft genau dort. Es wird auf 2000er Jahre gesetzt, wenn ihr unser Gesundheitszustand gesagt wird, auf Super eingestellt ist. Wenn es auf „okay“ gesetzt ist, springen wir um 700 hoch. Und wenn wir schwer verletzt werden, wird es schwer weh tun. Wir werden sehr wenig hochspringen. Ordnung, also im Moment ist der Wert davon schwer verletzt, also sollte ich kaum aufspringen. Also kompilieren, speichern, spielen. Lassen Sie mich hier mein Debug-Objekt auf ThirdPersonCharacter setzen , damit wir sehen können, wie das Skript ausgelöst wird. Im Moment bin ich schwer verletzt. Wenn ich also die Leertaste drücke, springe ich nicht zu weit nach oben. Aber eigentlich sind das meine normalen Sprünge. Entschuldigung, ich muss hier zuerst die Fünf-Taste drücken. Wenn ich jetzt hochspringe, stehe ich kaum vom Boden auf. Lassen Sie mich meinen Gesundheitszustand hier auf Super Compile Save, Play einstellen auf Super Compile Save, , und jetzt drücke ich die Leertaste Das ist mein normaler Sprung und drücke fünf. Also stelle ich meine Sprunggeschwindigkeit jetzt auf 2000s ein, weil die Leistung dafür super ist. Wenn ich jetzt die Leertaste drücke, bin ich glücklich. Es gibt also ein Beispiel für die Verwendung des Auswahlknotens mithilfe einer Aufzählung. Ordnung, also was sind einige andere Verwendungsmöglichkeiten des ausgewählten Knotens? Berücksichtigen Sie diese, möglicherweise abhängig vom Gesundheitszustand des Spielers und Sie können hinzufügen, dass der Spieler verschiedene Animationen gespielt hat. Sie könnten zum Beispiel hinken, vielleicht abhängig von einer Stimmung, Enums, glücklich, traurig, so etwas, man könnte ändern, welchen Musiktitel er gespielt hat. Hier ist ein weiteres Beispiel. Vielleicht könntest du abhängig von der Aufzählung der ausgerüsteten Waffen verschiedene Waffen anzeigen, könntest du abhängig von der Aufzählung der ausgerüsteten Waffen verschiedene Waffen anzeigen die auf dem Charakter befestigt sind. Und schließlich könnten Sie, vielleicht abhängig von einer Schlüsselganzzahl, x Schlüsselnetze anzeigen, die an der Glocke des Spielers baumeln. Wenn Sie also eine Ganzzahleingabe hätten, die drei besagt, könnten Sie drei Tasten anzeigen , die am Gürtel des Spielers hängen. Wenn dieser Integer-Index bei eins liegt, könnten Sie einen Schlüssel vom Gürtel des Spielers hängen lassen, so etwas. Okay Leute, ist Select Node einer der nützlichsten Knoten in der gesamten Skripterstellung. Wissen Sie, was ich liebe, wenn Sie dieses anbieten. Wir sehen uns im nächsten. 88. Casting: Ordnung, willkommen alle. Nun, wir haben einen sehr wichtigen Teil des Kurses erreicht , in dem wir über verschiedene Arten der Kommunikation zwischen Blaupausen sprechen werden über verschiedene Arten der Kommunikation zwischen Blaupausen sprechen . Und wir werden in diesem Fall speziell über Casting sprechen . Bis zu diesem Punkt im Kurs hast du gesehen, wie ich tatsächlich viel Casting gemacht habe. Das gesamte Konzept des Castings besteht im Wesentlichen darin, zu überprüfen ob eine Interaktion stattfindet, ob ein bestimmtes Objekt von dem Typ ist, nach dem Sie suchen, egal ob es so ist oder nicht, Sie können ein bisschen Skript erstellen. Feuer aus. Jetzt haben Sie gesehen, wie ich bis zu diesem Zeitpunkt im Kurs viel Casting gemacht habe, einschließlich unseres bp-Beispiel-Pickups , den wir zu Beginn des Kurses erstellt haben. Und jetzt, nur um in diesen Entwurf zu springen, haben wir es so gemacht, dass, wenn Sie anfangen, die Kollisionskugel für diesen BP-Beispiel-Pickup zu überlappen Kollisionskugel für , genau hier diese Kollisionskugel ist. Wir machen dieses Ding namens Casting, um zu überprüfen, ob es der ThirdPersonCharacter war, der der andere Schauspieler war, der die Überlappung vorgenommen hat. Casting können wir also erneut überprüfen, ob ein bestimmtes Objekt dem Typ entspricht, nach dem wir suchen. Dabei. In diesem Fall konnten wir unseren ThirdPersonCharacter gelangen, die darin lebende Gesundheitsvariable abrufen, gewissen Betrag hinzufügen und diese Gesundheitsvariable dann zurücksetzen. Wir kommunizieren von unserer BP-Beispielaufnahme hier zu unserem ThirdPersonCharacter, wodurch die Gesundheit unseres ThirdPersonCharacter erhöht wird. Sie können also sehen, dass die Kommunikation zwischen Blaupausen ein sehr wichtiges Konzept ist, um es zu verstehen. Ordnung, du hast mich hier schon eine Million Mal in diesem Kurs als Cast to ThirdPersonCharacter gesehen hier schon eine Million Mal in diesem Kurs als Cast to ThirdPersonCharacter . Also werde ich für unser Beispiel etwas anderes machen . Kehren wir hier zu unserem Level-Editor zurück. Und dann in meinem Abschnitt für Skripting-Blueprints, ich klicke mit der rechten Maustaste und etwas leeren Bereich. Und ich werde einen Blueprint-Kurs wählen, und ich werde die Schauspielerklasse wählen. Und ich nenne das BP-Unterstrich. Bewege dich in der Nähe Und Sie werden gleich sehen , warum es so benannt wurde . Ich werde auf diesen Typen doppelklicken, um ihn zu öffnen. Und ich werde für unsere Komponenten oben links hinzufügen , hier fügen wir einen einfachen hinzu, fügen wir einen einfachen Kegel unter den Grundformen hinzu. Und wir werden auch eine weitere Komponente hinzufügen. Und dieser wird Interp to move heißen. Das ist eine wirklich coole Komponente, die es uns ermöglicht, unseren Entwurf hier zwischen so vielen Punkten, die wir eingerichtet haben, zu verschieben . Jetzt belasse ich es einfach bei diesem Namen in der Too-Bewegung und drücke dabei die Eingabetaste. Und wenn es ausgewählt ist, gehe ich zum Bereich Details, um einige Punkte festzulegen , zwischen denen sich dieser Kegel bewegen soll. Jetzt kann ich das in unserem Kontrollbereich hier einrichten . Und wenn ich ein- und zweimal auf diesen Plus-Button klicke und diese Pfeile ausdehne, kann ich einige Punkte im Raum auswählen , zwischen denen ich diesen Kegel bewegen möchte. Ich lasse den ersten bei 000 und den zweiten. Diese Positionen sind relativ zueinander. Ich werde einfach auf 50 im z setzen . Jetzt unten, ein bisschen unten im Verhaltensabschnitt, können wir einen Verhaltenstyp auswählen, ob er sich nur von Punkt A nach Punkt B bewegt , das ist ein Schuss. Ob ich einen Looping-Reset machen lasse, ich werde hier Ping Pong wählen. Es wird also hin und her gehen, hin und her zwischen diesen beiden Punkten. Die Mi-Dauer beträgt hier eine Sekunde, daher wird es so lange dauern, bis Sie sich zwischen diesen beiden Punkten bewegen. Als nächstes kompiliere ich das. Wir werden das speichern und gehen zu meinem ThirdPersonCharacter Blueprint über . Wenn du jetzt vergessen hast, wo das ist, Third-Person-Blaupausen, doppelklicke auf deinen Third-Person-Charakter. Nun, zu Beginn des Kurses, haben wir diese simulierte Hand hinzugefügt, bei der es sich im Wesentlichen nur um eine Kugelkollision handelt. Wenn Sie diesen Kurs großartig haben, wenn Sie diesen Kurs nicht durchlaufen und erstellt haben, können Sie ihn jetzt erstellen. Jetzt habe ich das an meinen Kapselkomponenten befestigt. Wenn Sie dies nicht haben, können Sie Ihre Kapselkomponente auswählen, um Typ in Kugel hinzuzufügen, und Sie können eine Kugelkollisionskomponente hinzufügen. Das ist was das ist. Jetzt habe ich meinen Radius hier auf 32 gesetzt. Ich glaube, ich werde es nur ein bisschen mehr vor meinem Charakter darlegen , so etwas. Und ich werde die Größe hier ein wenig vergrößern , um 50 zu machen. Und ich habe diese simulierte Hand genannt weil ich überprüfen werde , ob etwas diese Kugel im Weltraum überlappt hat. Ordnung, wenn das alles erledigt ist, gehen wir zu unserem Event-Diagramm. Und mit unserer simulierten Hand-Here-Komponente klicken wir mit der rechten Maustaste auf uns. Wir fügen ein Event hinzu und wir werden etwas tun. Wir beginnen uns zu überschneiden , dass wir bereits etwas bei begin overlap haben , weil ich es in unserer Liste hier nicht sehe. Der Weg, wie wir das finden können, ist mit einem simulierten handverlesenen Weg hier unten. Unter dem Abschnitt Ereignisse können wir zu einer Komponente beginnen Überlappung gehen . Wir können sehen, wo das ist. Und Sie können sehen, dass dies das Beispiel ist, das wir in unserem Funktionsbibliotheksvideo eingerichtet haben . Ich werde diese Knoten vorerst einfach löschen , damit wir unsere simulierte Hand benutzen können. Ich werde auch dieses Kommentarfeld wieder löschen. Bringen Sie das in Position. Da haben wir's. Okay, das Drehbuch, an das ich hier denke, ist, dass ich es aus meinem anderen Schauspieler-Pin herausziehen werde . Und jetzt kann ich Casts machen, um dem Entwurf zu nähern , den ich gerade erstellt habe. Was wir hier sagen, ist, wenn der andere Schauspieler, der unsere simulierte Hand hier überlappt, diese Kugelkollision genau dort. Wenn dieser andere Schauspieler in die Nähe einer Blaupause kam , die ich hier in mein Level bringen werde. Lass mich weitermachen und zurück zu meinem Blueprints-Ordner. Beweg dich, wenn du in der Nähe bist, ich ziehe das einfach hier raus. Ordnung, da ist es also nicht mein Level. Zurück zu meinem ThirdPersonCharacter Wenn dieser Entwurf hier die anderen Schauspieler waren , die meine simulierte Hand überlappen , kann ich etwas tun. Wenn es nicht das wäre, was meine simulierte Hand überlappt, könnte ich etwas anderes tun, aber was ich tun möchte, ist in meinen Blutdruck zu gelangen , der sich in die Nähe bewegt. Dies gibt uns Zugriff auf verschiedene Komponenten und Eigenschaften innerhalb meines BP, die in nahe Funktionen, Variablen, so etwas verschoben werden. Ich werde zuerst mit der rechten Maustaste darauf klicken. Ich werde das zu einer Variablen heraufstufen, weil ich diese Variable nur ein bisschen verwenden werde. Also lasst uns das zu einer Variablen heraufstufen. Wir können es genau dort bei diesem Namen belassen. Und dann ziehen wir uns hier raus und greifen auf unsere Interp, zwei Bewegungskomponenten, zu. Denken Sie daran, dass wir in unserem Blutdruck in die Nähe bewegt wurden, diese Komponente Interpretieren zur Bewegung genannt wurde. Jetzt in dieser Komponente direkt hier im Bereich Details, werde ich das Wort aktiviert eingeben. Und Sie können sehen, dass es sich um ein automatisch aktiviertes Meeting handelt. Es würde sich zwischen diesen beiden Punkten bewegen , die wir festgelegt hatten. Jetzt werde ich dies vorerst deaktivieren , damit es sich nicht zwischen diesen beiden Punkten bewegt, die ich eingerichtet habe. Es wird nicht automatisch aktiviert. Lassen Sie uns das noch einmal kompilieren und speichern und zu meinem ThirdPersonCharacter zurückkehren. Wir werden sagen, sobald unsere simulierte Hand durch unseren Wechsel zum nahen Entwurf überlappt wird , werden wir speichere das in seiner eigenen Variablen. Dann greifen wir in sie hinein die interp2-Bewegungskomponente. Und dann ziehen wir es heraus und geben das Wort aktiviert ein. Vase, nicht aktiv, aktiviert. Und hier sagen wir dieser interpretativen Bewegungskomponente, die innerhalb dieser Blaupause lebt , aktiv zu werden und zu aktivieren. Der Grund, warum ich das in einer eigenen Variablen gespeichert habe, ist dass ich diese Referenz jetzt per Drag & Drop direkt hier in meinem Diagramm ablegen werde . Und wir werden uns von dieser Art im Interp zur Bewegung zurückziehen. Wir kriegen es noch mal. Und ich ziehe mich darauf und tippe D aktiviert ein. Mach das wieder aus. Ich schalte es einfach mit einem Schlüssel aus. Lass mich eintippen. Versuchen wir es mit der 0-Taste. Als sich unsere simulierten Handkomponenten überlappten, bewegte sich BP in ihrem Level fast zur Blaupause . Wir speichern das in einer eigenen Variablen, einem Verweis auf diesen Typen. Wir werden uns das ansehen und genau dort mit unserer interp2-Bewegungskomponente sprechen . Wir werden sagen, dass diese interpretative Bewegung aktiv wird , damit sie sich zwischen diesen beiden Punkten bewegt. Dann zurück in meinem ThirdPersonCharacter Blueprint, wenn ich die Pfeiltaste drücke, deaktiviere ich diese Bewegungen. Okay, damit kompilieren wir es und speichern. Lass mich das hier oben nach links oben verschieben. Ich gehe rein und spiele. Setze unser Debug-Objekt auf unseren Third-Person-Charakter. Und Sie können dort unser simuliertes Handout sehen und es dreht sich mit meinem Charakter, weil es an meiner Charakterkapselkomponente befestigt ist. Und ich werde versuchen, das hier aus einem Seitenwinkel zu bekommen , damit Sie sehen können, dass es sich überhaupt nicht bewegt. Sobald ich das hier jedoch mit meiner simulierten Hand überschneide, bewegt es sich tatsächlich auf, ab, oben, unten. Wenn ich jetzt die 0 drücke, lass mich davon weggehen und die Pfeiltaste drücken. Es stoppt, es deaktiviert diese Komponente. Wenn ich es jetzt wieder überschneide, wird es aus irgendeinem Grund nicht mehr aktiviert. Ich kenne den Grund dafür nicht. Ich bin mir nicht sicher, ob das ein Motorfehler ist oder nicht. Aber Sie können sehen, dass es versucht, es hier in meinem Skript zu aktivieren. Sobald Sie es aus irgendeinem Grund deaktivieren , bleibt es aktiv. Aber der Punkt ist hier gut verstanden , dass wir durch das Casting auf unseren Blutdruck in die Nähe gebracht haben, Wir haben sichergestellt, dass es der Schauspieler war , dessen simulierte Hand sich überlappt hatte. Auf diese Weise konnten wir dieses Skript aus diesem Ausführungsplan heraus verfolgen . Wenn das gescheitert wäre, wenn es nicht der andere Schauspieler gewesen wäre, der diese simulierte Hand überlappt, hätten wir noch einmal etwas tun können, was unsere Besetzung versagt. Und da haben Sie es, Jungs Casting ermöglicht es Ihnen im Wesentlichen , zu überprüfen, ob eine Interaktion stattfindet. Wenn ein bestimmtes Objekt von dem Typ ist, den Sie suchen, ist es eine großartige, großartige Methode, um einige Objekte in einer eigenen Variablen zu speichern einige Objekte in einer eigenen Variablen zu und auch in das Innere zu gelangen Sobald Sie in sie umgewandelt haben, um auf Variablen zuzugreifen, rufen Funktionen alle benutzerdefinierten Ereignisse auf, die Sie tun möchten, um von einem Blueprint zum anderen zu kommunizieren. Das macht alles für dieses Video, Leute sehen uns im nächsten. 89. Direkte Kommunikation (Teil 1): Willkommen! Blueprint-Kommunikation stand im Mittelpunkt dieses Abschnitts des Kurses. Und im letzten Video haben wir uns auf das Casting konzentriert. Und das ist eine der Methoden, mit denen Sie einen Entwurf mit einem anderen kommunizieren können. Jetzt ist Casting eine wunderbare praktische Blueprint-Kommunikationstechnik , da Sie, wenn Ihre Besetzung erfolgreich ist, einen Verweis auf das, was Sie besetzt haben, erfassen können auf das, was Sie besetzt haben, , und es ermöglicht Sie können in das Ding gelangen , das Sie geworfen haben , und auf alle Komponenten, Variablen, Funktionen zugreifen Variablen, Funktionen Kundenereignisse aufrufen , so etwas. Es hat jedoch eine Schwäche. Schwäche besteht darin, dass Sie etwas in diese Objekteingabe einstecken müssen , damit Sie tatsächlich einen Verweis auf das Ding erhalten , auf das Sie eine Referenz erhalten möchten , oder auf eine der Komponenten zugreifen Variablen usw., auf die Sie zugreifen möchten , wenn Sie nichts in diese Objektreferenz einstecken , lassen Sie mich weitermachen und das hier draußen in meinem Level-Blueprint beenden und ich kompiliere, es wird mich warnen, dass ich das nicht kann, du musst etwas an diese Objektreferenz angeschlossen haben . Gibt es also eine andere Möglichkeit, von einem Entwurf zum anderen zu kommunizieren? Ja, das gibt es. Es gibt eine Methode, die als direkte Kommunikation bezeichnet wird. In diesem Video ist es unser Ziel zu demonstrieren, wie wir zwei Blueprints mithilfe einer Technik, die als Direct Blueprint Communication bekannt ist, miteinander sprechen können mithilfe einer Technik, die als Direct Blueprint Communication bekannt ist, miteinander . Mit diesem Ansatz richten Sie nun einen Ziel-Blueprint ein , auf den als Reaktion auf das Skript verwiesen wird, das Sie in als Reaktion auf das Skript verwiesen wird, das Sie einem funktionierenden Blueprint eingerichtet haben. Lassen Sie uns Ihnen jetzt zeigen, was ich meine, indem wir zwei verschiedene Blaupausen für Schauspielerklassen aufstellen . Wir werden ein Blueprint-Licht und einen Blueprint-Button haben . Und wir werden mit dieser Methode, über die ich gerade über direkte Kommunikation gesprochen habe, ein Gespräch mit einem anderen dieser Methode, über die ich gerade über direkte Kommunikation gesprochen habe führen. Kehren Sie hier zu Ihrem Level-Editor zurück und lassen Sie uns in Ihrem Skript-Blueprints-Ordner zwei neue Blueprints für Schauspielerklassen erstellen. Durch Klicken mit der rechten Maustaste auf Blueprint Class I wird eine der Schauspielervarianten erstellt , die als BP-Unterstrichlichter bezeichnet wird . Und hier drin werde ich darauf doppelklicken, um es zu öffnen. Und ich werde ein paar Komponenten hinzufügen. Wir fügen einen Kegel hinzu. Ich tippe einen Kegel ein, einen Kegel in Grundform. Das ist in Ordnung. Und dann füge ich noch einen hinzu. Unter der Lichtsektion. Ich tippe einfach Licht ein. Ich möchte ein Spotlight hinzufügen. Und ich muss für jeden von ihnen einige Parameter einstellen , angefangen damit, dass unsere Lichter Spotlight sind, wir werden unsere Intensität auf ziemlich, ziemlich hell einstellen . Stellen Sie also mit dem ausgewählten Licht die Intensität auf etwa 100.000 ein. Sie können hier eine andere Lichtfarbe einstellen, aber ich werde sie jetzt auf 100.000 setzen. Ich werde es auch mit dem Gesicht nach unten haben. Also hat es das so nach unten gedreht. Das wird reichen. Und auch unter dem Rendering-Abschnitt , in dem sichtbar steht , werde ich dies überprüfen oder deaktivieren , damit es nicht sichtbar ist. Okay, du hast also einen Kegel und die Scheinwerfer. Das ist großartig. Ordnung, gehen Sie zurück zu Ihrem Inhaltsbrowser. Wir klicken erneut mit der rechten Maustaste auf Blueprint Class Schauspieler. Dies wird nicht als BP-Unterstrich bezeichnet. -Knopf. Doppelklicken Sie auf diesen Typ, um ihn zu öffnen. Und hier werden wir ein paar Komponenten hinzufügen. Fügen Sie hinzu, wir fügen einen Zylinder hinzu, um den Zylinder mit Grundformen zu starten. nächste, den wir hinzufügen werden, wird eine Box-Kollision sein. Also wähle ich meinen Standard-Szenen-Root aus. Es muss hier nicht an meinem Zylinder befestigt sein und es ist in Ordnung, wenn sie alle an meine standardmäßig gesehenen Routen angehängt sind. Also klicke ich dort und tippe das Feld ein. Wir gehen mit Box Collision. Box ist ein guter Name. Und dann wähle ich erneut meine standardmäßige gesehene Route aus. Und ich werde eine Text-Rendering-Komponente hinzufügen. Okay, bei jedem von denen werde ich ihre Daten nacheinander festlegen. Fangen wir zuerst mit dem Zylinder an. also Ihren Zylinder im Detailbereich auswähle, setze ich meine Drehung im x auf U1 AT und drücke die Eingabetaste negativ 90 im y und z, ich setze das auf 180. Ich habe all diese Zahlen im Voraus herausgefunden. Und dann setze ich sie für die Skala auf 0,4,4 und 0,05, so etwas Dünnes. Das wird also unsere Schaltfläche sein , mit der wir ohne Zitat interagieren werden, damit unser Licht in unserem Lichtplan aufleuchtet, um es einzuschalten, ein- und auszuschalten. Gleich als Nächstes wählen wir hier unsere Box-Kollisionskomponente aus. Ich setze den Standort, die x-Position, auf 100. Und wir werden die Box-Ausdehnung auf einhundert, fünf, fünfzig mal 100 setzen . Etwas, das sich ein bisschen so erstreckt. Okay, und dann wähle ich meine Text-Renderer-Komponente aus. Sie können es einfach sehen. Es genau dort einige Texte angezeigt. Damit ändere ich den Standort. Wir werden den Standort auf 20 im X und einhundertzehn setzen und einhundertzehn eher im Z etwas oben, genau dort oben. Und ich werde den Text so ändern , dass er gleich hier unten gelesen wird. Anstelle von Texten wird es sagen, drücke I, um das Ausrufezeichen der Handlung zu verletzen. Und es ist nicht mittig über meinem Knopf da, diesem Zylinder. Wo also horizontale Ausrichtung steht, können wir das von links ausgerichtet in mittig ändern , damit es ein bisschen schöner aussieht. Und dann werde ich das im Rendering-Bereich derzeit unsichtbar machen , damit wir es zunächst nicht sehen können. Ordnung, als Nächstes erstellen wir hier im Bereich Mein Blueprint ein paar Variablen. Klicken Sie also hier auf die Plus-Schaltfläche entlang der Variablenüberschrift Das erste, das wir erstellen werden, wird einfach Licht genannt. Und für den Typ suchen wir nach BP-Lichtern. Dies ist die Blaupause , die wir gerade erstellt haben. Gehen Sie also unter Objekttypen BP-Licht, wählen Sie eine Objektreferenz. Und was wir tun werden, ist drüben im Bereich Details, wir werden dieses Kästchen ankreuzen. Es heißt Instanz editierbar. Beachten Sie, dass dies diesem Fall den gleichen Effekt hat wie das Klicken auf dieses kleine Augapfelsymbol. Wenn ich also hier klicke, wird das Augapfelsymbol angezeigt. Umgekehrt, wenn ich hier klicke und das ausschalte, wird das deaktiviert. Das sind im Wesentlichen zwei verschiedene Möglichkeiten dies als instanzbearbeitbar festzulegen . Es spielt keine Rolle, ob Sie dort klicken oder auf diesen Augapfel klicken. Beide machen im Wesentlichen dasselbe. Es macht das an. Das wird großartig, weil es diese spezielle Variable im Editor verfügbar machen wird . Das wirst du gleich hier sehen. Jetzt werde ich hier kompilieren , weil es mich auffordert, es zu kompilieren, um ihm einen Standardwert zu geben. Aber beachte, dass ich das kompiliere. Ich werde das vorerst leer lassen. Wir werden das wieder in unseren Level-Editoren veröffentlichen. Lassen Sie das also vorerst leer. Ordnung, wir erstellen hier eine weitere Variable, indem wir auf den Plus-Button klicken. Ich nenne das „Kann Lichter umschalten“, Fragezeichen. Und das wäre, das wird eine boolesche Variable sein. Wenn ich hier kompiliere , lasse ich den Standardwert false. Sie werden diesen Kerl hier also gleich in Aktion sehen . Wie ich zu Beginn dieses Videos erwähnt habe, entwickelt Direct Blueprint Communication nun Beginn dieses Videos erwähnt habe, entwickelt Direct Blueprint Communication einen Zielentwurf und einen funktionierenden Entwurf. Der Zielplan wird also unser BP-Licht sein. Das ist der, auf den wir abzielen werden. Unser BP-Knopf hier, das wird unser Arbeitsplan sein. In unserem Arbeitsplan hier werden wir also darauf verweisen einen Verweis auf unser BP-Licht erstellen , um mit ihm zu sprechen und damit zu arbeiten. 90. Direkte Kommunikation (Teil 2): Ordnung, Zeit, ein bisschen Setup in unserem Level-Editor zu machen . Und es hilft wahrscheinlich, wenn Sie eine Art Wandfläche haben , aber keine wirklich benötigen. Also werde ich beide ausstellen. Und unsere Liebe, ich fange damit an, dass unser BP-Knopf das per Drag & Drop zieht. Und damit müssen Sie nicht besonders präzise sein. Ich werde es jedoch so herumrollen. Sie möchten, dass der Großteil Ihrer Triggervolumina in diese Richtung herausragt. Übrigens, ich habe es wieder an der Wand entlang gestellt, ich werde mit dieser Platzierung vorerst nicht besonders präzise sein. Und dann stelle ich unser Licht da draußen auf. Da ist mein BP-Licht in all seiner wundersamen Pracht. Es wird ungefähr so aussehen. Das ist gut genug. Wenn ich jetzt meine B P-Taste auswähle, sieh dir das im Bereich Details an. Wenn ich ganz nach oben scrolle, habe ich mein Licht variabel. Lassen Sie uns das noch einmal überprüfen, meine BP-Taste dort ist meine Lichtvariable, die sich auf den B P-Lichtvariablentyp bezieht . Es ist derzeit auf „Keine“ gesetzt. Also hier in meinem Editor kann ich dies so einstellen, dass es direkt auf diesen Blueprint verweist. Ich sage, hey, ich will das variable B vom Typ B P-Leuchten. Aber ich muss angeben , mit welcher Instanz dieses Lichts ich sprechen möchte , da ich hier draußen mehrere Instanzen dieser Lichter haben kann . Und lassen Sie mich tatsächlich mehrere Instanzen dieses Lichts hier draußen vorstellen. Ich halte nur die Alt-Taste gedrückt und ziehe. Jetzt, wo meine Schaltfläche hier ausgewählt ist, klicke ich im Detailbereich auf dieses kleine Augentropfensymbol . Ich könnte auf dieses Drop-down-Menü klicken, um eines dieser vier auszuwählen. Allerdings möchte ich nur das oft zeigen, wenn ich dieses Pipettensymbol wähle, dann kann ich zu meinem Ansichtsfenster übergehen und direkt die angegebenen Lichter auswählen. Beachten Sie jetzt, wenn ich es hervorhebe, das ist nicht der angegebene Variablentyp, es wird sagen, dass Sie das nicht auswählen können. Sind BP-Licht jedoch von diesem variablen Typ, sodass wir diesen auswählen können. Also hat es mir erlaubt , das da rein zu machen. Als nächstes kehren wir zu unserem BP-Button zurück. Hier drinnen gehen wir sofort zum Event Graph. Wir machen Sachen, wenn wir diese Box überlappen. Gehen Sie also zurück zum Event-Diagramm. Ich werde sie sofort mit der linken Maustaste klicken, ziehen und löschen. Mit ausgewähltem Kästchen. Ich kann entweder mit der rechten Maustaste darauf klicken, um einige Ereignisse zu finden , oder wenn F-Box ausgewählt könnte ich ganz nach unten im Detailbereich gehen . Es gibt meine verschiedenen Ereignisse im Zusammenhang damit. Ich möchte etwas tun, wenn ich anfange, das zu überlappen , und wenn ich es überschneide. Also werde ich hier klicken, um sofort einen Verweis darauf hinzuzufügen. zurück auf meine Box-Komponente klicke, mache ich etwas, wenn ich am Ende auch diese überlappe. Was wollen wir also tun, wenn wir anfangen, diese Box zu überlappen, diese Box genau hier? Nun, wir wollen zuerst überprüfen, ob das der ThirdPersonCharacter ist, der die Überlappung verursacht hat. Also werde ich den anderen Schauspieler herausziehen, der hier etwas absagen wird , auf ThirdPersonCharacter. Und wenn wir das tun, bringen wir unser Ken-Wechsellicht ein. Und wenn Sie das per Drag & Drop direkt auf diesen Pin ziehen, bringen Sie sofort einen Setter mit. Da haben wir's. Praktischer Trick da, einfach auf den Stift fallen zu lassen, ich sage Ja, wir können das Licht umschalten, wenn unser ThirdPersonCharacter das Feld überlappt, wo es im Wesentlichen gegen den Urinbereich liegt. Und dann bringen wir unsere Text-Rendering-Komponente ein. Wir ziehen das per Drag & Drop hier ab. Und wir werden mit unserer Text-Rendering-Komponente sprechen. Wir ziehen das heraus und geben die eingestellte Sichtbarkeit ein. Denken Sie daran, dass das jetzt ausgeschaltet ist. Wir werden dieses Kästchen ankreuzen und sagen, ja, du bist jetzt sichtbar. Jetzt werde ich hier unten viel davon machen. Also wähle ich Control gedrückt halten, Steuerung gedrückt halten und wähle, Ich kopiere diese drei Knoten Control C, Control V. Füge sie hier ein, wenn wir das Feld überlappen. Und ich stecke alles so ein. Vergiss diesen Kerl nicht. Und vergiss nicht, dieses Kästchen hier unten deaktivieren und dieses Kästchen hier unten zu deaktivieren. Denn wenn wir aufhören, diese Box zu überlappen, wollen wir nicht in der Lage sein, das Licht umzuschalten, und wir wollen auch das Rendern unserer Texte ausschalten. Wir wollen diese Interaktionsbotschaft überhaupt nicht sehen. Ordnung, ich klicke mit der linken Maustaste, ziehe und tippe auf das CQI. Wir nennen das in Reichweite, um das Licht umzuschalten. Ich färbe das schwarz wie meine Seele. Ordnung, das ist alles gut und gut. Und als nächstes füge ich hier unten ein Interact-Skript hinzu. Denken Sie daran, unsere Nachricht würde lauten: Drücken Sie die I-Taste, um zu interagieren. wir also mit der rechten Maustaste hier unten und machen die Tastatur. Wir fügen ein Tastaturereignis hinzu, denn wenn wir die I-Taste drücken, ist da unser Ecky. Das erste, was wir tun werden, ist, einen Zweig einzufügen , B-Taste gedrückt zu halten und mit der linken Maustaste auf einen Zweig zu klicken . Wenn wir darauf drücken, werden wir bewerten, Hey, können wir das Licht umschalten? Denken Sie daran, wenn wir dieses Feld überlappen oder nicht, setzen wir es entweder auf true oder false, wenn wir es überlappen. Es wird als wahr bewertet. Also ja, du kannst mit Licht verbinden. Also aus dem Schmerz gehen wir zum Achy, dem wahren Schlüssel, dem wahren Pin oder nicht , ich sollte sagen, wir werden einen Flipflop-Knoten einführen. Flipflop-Knoten ermöglicht es uns, jedes Mal, wenn wir dies tun, a dann B als B zu wechseln . Und was wir auf einem Flip Flop machen werden, ist, dass unser Zylinder dies per Drag & Drop in unser Diagramm zieht. Ändern Sie das Material, gut typisiertes Set-Material. So gehe ich zu Control C, Control V, das auch. Und genau hier oben ändere ich das in ein grün gefärbtes Material. Also lass mich einfach genau dort klicken und ich tippe einfach das Wort grün ein. Unser Material hier wird sein, versuchen wir, eine Suche nach grünem Scheitelpunkt durchzuführen. Grün, das sich im Motorweg befindet, ist übrigens. Wenn Sie dies also nicht sehen, können Sie auf dieses Zahnradsymbol klicken und sicherstellen, dass der Inhalt der Show Engine aktiviert ist. Also werden wir dort grün werden. Und dann klicke ich auf diesem Knoten auf diese drei Punkte und notiere mir, dass dies ein rotes Material sein wird . Das Material hier wird Scheitelpunkt rot sein . Da ist es. Ich muss das auch als Ziel dafür festlegen. Und dann ziehe ich und finde mein Licht. Wir sprechen hier unten im Variablenbereich Drag & Drop von diesem Licht Variablenbereich Drag & . Das kriegen wir. Dann ziehen wir uns im Rampenlicht aus diesem Typ heraus. Denn denken Sie daran, dass in der Seite unseres Lichts hier dieses BP-Licht im Rampenlicht steht. Und wir werden sagen, dass dieses Spotlight hier rauszieht , um die Sichtbarkeit umzuschalten. Wenn es also aus ist, wird es eingeschaltet. Und wenn es an ist, schalten wir es aus. Das wird also genau dort unser Drehbuch sein. Jetzt werden wir im Wesentlichen die Farbe unseres Zylinders hier ändern , dieses Zylindermaterial, um es so zu machen , dass es grün aussieht, Rot ist aus. Lassen Sie mich also eine rote Färbung geben , um mit Vertex Read Only zu beginnen. Ordnung, kompilieren wir diesen Spielstand. Ich gehe zurück zu meinem Event-Diagramm hier. Linksklick und ziehe, tippe als CQI und ich sage, muss eingeschaltet werden. Dies ist ein Hinweis an mich selbst für den nächsten Schritt. Und damit wir Eingaben automatisch empfangen können. Nun, zwei, Spieler 0 in Klasse-D-Fehlern. Jetzt wirst du so sein, macht keinen Sinn für das, was wir gerade getan haben. Warum setzen Sie das hier als Kommentarfeld-Header ein? Und du wirst sehen warum. Denn wenn ich das kompiliere, speichere und reingehe und spiele, wirst du sagen, nun, wird funktionieren, sobald wir diese Triggerbox überlappen, wir werden sagen: Ja, du kannst das umschalten wurde hier unten leichter, als du die I-Taste drückst. Dies wird dann als wahr bewertet und es sollte mir ermöglichen, das Material für den Zylinder zu ändern und dann das Licht einzuschalten, aber es wird aus diesem Grund hier nicht funktionieren. Lassen Sie mich das kurz demonstrieren. Wenn ich reinspringe und spiele, kann ich dort sogar mein Debug-Objekt setzen. Sie können also sehen, dass das Drehbuch durchgegangen ist und sagt: Ja, ich sollte in der Lage sein, mit Licht zu sprechen. Wenn ich jetzt die I-Taste drücke, lass mich das einfach nach oben bewegen. Drücken Sie die I-Taste und ich sehe , dass ich interagiere, oder? Ich setze mich hin und drücke die I-Taste. Aber nichts geht los. Auch wenn ich drauf dränge. Was ist los? Nun, diese Nachricht hier war eine Erinnerung an mich und Sie, dass wir innerhalb unserer Klassenstandardwerte hier etwas namens Auto Receive Input Two Player 0 einschalten müssen. Jetzt sollte die BP-Schaltfläche hier Ihre Blaupause sein, Klassenstandardwerte sind hier unten. Im Eingabebereich müssen Sie Ihre automatische Empfangseingabe hier auf Spieler 0 ändern . Warum? Nun, unsere Elternklasse hier ist ein Entwurf der Schauspielerklasse. Blueprints der Actor-Klasse erkennen keine Tastatureingaben es sei denn, Sie gehen innerhalb der Klassenstandards und weisen sie an, explizit Eingaben zu empfangen. Spieler 0 sind wir, der Einzelspieler, nur wir, richtig? Damit das funktioniert. Ebenfalls. Wenn Sie mehrere dieser Setups auf Ihrem Level haben, ist es hier wahrscheinlich eine gute Idee, Ihren Ecky auszuwählen und das Häkchen zu deaktivieren, Eingabe zu konsumieren. Auf diese Weise stellen Sie sicher, dass diese Art von Setup für mehr als nur eine Taste funktioniert. Wenn Sie dies belassen, um nur diesen Input zu verbrauchen, würde es nur in einem Fall funktionieren, nicht in allen Fällen. Also dachte ich würde das auch rauswerfen. Ordnung, kompilieren, speichern, spielen. Wir werden das hier überschneiden. Blaupause. Sag, drücke I, um zu interagieren. Wir sind in Reichweite. Wenn ich jetzt die I-Taste drücke, wird es grün und Sie sehen, dass dieses Licht jetzt leuchtet und nur dieses Licht, nicht jede Kopie des Lichts, nur dieses, weil es das war, das wir hatten sagte speziell, um diese Lichtvariable zu bevölkern. Wenn ich hier wieder reingehe, kann ich wieder miteinander interagieren. Und ich habe es gelesen , um es aus-, -, ein- und auszuschalten. Wir schalten die Sichtbarkeit um. Das ist also eine Methode namens Direct Blueprint Communication. Mit dieser Methode haben wir eine Variable des Typs eingerichtet , mit dem wir mit einem bestimmten Blueprint-Typ sprechen möchten . In diesem Fall wollen wir mit den BP-Lichtern sprechen. Und nachdem diese BP-Lichtvariable erstellt wurde, haben wir sie auf die editierbare Instanz gesetzt , damit wir sie gezielt anvisieren können. Hier im Level-Editor ist Working Class Blueprint unsere Schaltfläche und der Ziel-Blueprint ist unser Licht innerhalb des Working Class Blueprint, Sie müssen eine Variable des Ziel-Blueprints erstellen und dann setze diese Referenz hier im Level-Editor. Sehr praktische Methode, um zwischen Bauplänen zu kommunizieren. Leute, das reicht , um dieses Video anzubieten. Wir sehen uns im nächsten. 91. Event: Willkommen! Bisher haben wir über Casting und direkte Kommunikation als Methoden gesprochen , mit denen ein Entwurf mit einem anderen Entwurf kommuniziert , und diese sind Ordnung und gut, großartige Methoden. Es gibt jedoch Situationen in der Blueprint-Skripterstellung, in denen Sie einen Blueprint benötigen , um mit vielen Blueprints zu kommunizieren. Gibt es dann eine Methode, die man verwenden kann? Ja, das gibt es. Es gibt etwas, das sich Event Dispatcher nennt. Wenn Sie nicht wissen, welche Event-Dispatcher es gibt, ähnlich wie Twitter, ist das die beste Analogie, die ich bisher gehört habe. Wenn Sie jetzt mit Twitter vertraut sind, kann ein Nutzer eine Nachricht twittern, wenn alle Personen, die Ihrem Twitter-Konto folgen, diese Nachricht erhalten, sie können dann entsprechend antworten. In Unreal kann ein Blueprint ein Signal senden, das heißt, ein Signal an alle anderen Pläne senden, die abonniert sind, die auf dieses Signal warten, und dann können sie entsprechend reagieren. Ordnung, das Beispiel, das wir hier durchgehen werden , ist, dass ich einen Charakterentwurf erstellen werde, einen Boss-Charakter, wenn Sie so wollen. Und wenn dieser Charakter zerstört wird, werden wir mehrere Dinge geschehen lassen. Wir werden von unserem Chef-Blueprint zu anderen Blaupausen kommunizieren unserem Chef-Blueprint zu anderen Blaupausen , mehreren anderen Blaupausen. Ordnung, hier gibt es viel zu besprechen, also werde ich ein bisschen schnell vorankommen, aber Sie haben den Vorteil einer Pause. Also lasst uns gleich loslegen. In meinem Skript-Blueprints-Ordner ich mit der rechten Maustaste auf einen leeren Bereich, wir erstellen eine neue Blueprint-Klasse. Diesmal ist Charakter unsere übergeordnete Klasse, die wir wollen. Und wir werden diesen BP-Unterstrich Boss nennen. Ich werde auf diesen Kerl doppelklicken, um ihn zu öffnen. Und lassen Sie uns unsere Netzkomponente in unserer Komponentenliste im Bereich Details unter Skelettnetz auswählen unserer Komponentenliste im Bereich Details unter Skelettnetz Lassen Sie uns Manny, Manny eintragen. Und lasst uns auch einen Schritt machen. Also in der Anime-Klasse werde ich ein P oder einen BP machen, viele, das wird einen Schritt machen. Und dann muss ich nach dem Standort, wir müssen sie ein bisschen hier runter bringen. Die z-Position, die ich auf negativ 93 setzen werde, wird sie ein wenig fallen lassen. Jetzt ist es vielleicht ein bisschen zu weit. Gehen wir negativ 85 oder so ähnlich. Negative 85, so etwas. Und für die Rotation wähle ich einfach negative 90 und das bringt sie dazu, nach vorne zu schauen. Dieser blaue Pfeil , der nach vorne zeigt wäre auch kein Chef, wenn er diese Farbe behalten würde, wir müssen gruselig nachholen, also habe ich die Materialien nicht, ich tippe einfach rot ein. Hier muss eine rote Scheitelpunktfarbe sein. Jedes Rot reicht aus. Ich nehme dieses Laserpointermaterial. Dies dient nur der Ästhetik, so dass das Material diesen Teil seines Körpers bedeckt. Und dann tippe ich auch Laser ein. Anspielung auf das andere Laserpunktmaterial für seinen anderen Körperteil. Schau dir den gruseligen Kerl an. Ordnung, damit werden wir gleich hier unten einen Event-Dispatcher erstellen . Sie erstellen also Event-Dispatcher im My Blueprint-Bereich ganz unten hier, wir werden einen erstellen, auf diesen Plus-Button klicken, ich nenne diesen Boss zerstört und drücke dort die Eingabetaste, mach weiter und kompilieren und speichern. Als Nächstes fügen wir ein Ereignis wenn wir diese Kapselkomponenten überlappen. Also wähle ich meine Kapselkomponente unten im Detailbereich aus. Dies ist eine von mehreren Möglichkeiten, wie ich Ereignisse dafür hinzufügen kann. Ich werde genau dort mein eigenes Komponenten-Hit-Event finden , wenn ich auf diesen Plus-Button klicke. Es bringt mich von meinem Viewport zum Event Graph. Und wir werden auf diesem Event-Knoten aufbauen . Ich ziehe den anderen Schauspieler-Pin raus. Und wir werden herausfinden, ist das unser Third-Person-Charakter. Wenn es der Third-Person-Charakter war, der uns getroffen rufen wir einfach diesen Boss als zerstört heraus. Wir werden den Tweet verschicken, wenn du so willst. Die Art und Weise, wie wir das fordern können , besteht darin , das hier reinzuziehen. Und es wird sagen, willst du bind aufrufen, löse all diese Optionen. In diesem Fall wollen wir es nennen, wir werden diesen Tweet verschicken. Jetzt wird die Notiz so aussehen. Es wird auch einen kleinen Umschlag drauf haben. Das wird die Tweets also an alle Abonnenten senden , wenn Sie so wollen. Und zum Schluss wollen wir uns von hier zurückziehen und Destroy Actor eingeben , um sicherzustellen , dass unser Chef auf Wiedersehen geht. Ordnung, damit können wir kompilieren und speichern. Das Twittern ist abgeschlossen. Als nächstes brauchen wir nur ein oder drei Abonnenten. Also spring zurück auf unser Level. Und wirst du nicht weitermachen und einige dieser leichten Blaupausen in deinem Level platzieren . Wir haben diese Lichtpläne früher im Kurs erstellt. Und Sie finden diese in Ihrem Scripting-Blueprints-Ordner. Wenn Sie diese nicht erstellt haben, können Sie auch einen anderen Blueprint auswählen , den wir zuvor im Kurs erstellt haben. sind nur die, die ich zufällig auswähle. Außerdem habe ich hier draußen einen Entwurf für rotierende Türen platziert , den wir früher im Kurs erstellt haben. Ich werde verschiedene Methoden aufzeigen, wie diese Art der Kommunikation funktionieren wird. Aber ich fange mit meiner BP-Drehtür an. Also in meiner BP-Drehtür möchte ich mich in diesen Entwurf vertiefen. Lass uns da reingehen. Wir werden eine brandneue Variable hinzufügen. Im Abschnitt Variablen klicken wir also auf die Plus-Schaltfläche. Und ich nenne das den Boss-Charakter. Und unter dem Variablentyp klicke ich hier und suche nach dem Chef. Und dort finde ich meinen Objekttyp B, P, boss, diesen Entwurf , den wir gerade erstellt haben. Und ich werde das zu einer Objektreferenz machen. Jetzt, da diese Variable hier im Detailbereich ausgewählt ist, möchte ich dieses Kontrollkästchen aktivieren, das zum Beispiel editierbar ist, damit wir unseren Chef über möchte ich dieses Kontrollkästchen aktivieren, das den Level-Editor einsetzen können . Und wenn ich hier kompiliere, können wir sehen, dass diese Variable momentan nicht gefüllt ist , aber mit dieser bearbeitbaren Instanzprüfung hätten wir alternativ auf diesen Augapfel klicken können. Ich werde in der Lage sein, unseren Bossplatz im Level auszuwählen. Tatsächlich mache ich das jetzt. Wenn ich meinen Chef auf unser Level setze, so. Jetzt kann ich meinen Türplan auswählen. Und drüben im Details-Bereich kann ich sehen, dass ich aufgefordert werde, einen Boss-Charakter einzufügen , um diese Variable zu füllen. Ich könnte das hier auswählen und dort meinen Chef auswählen. Alternativ kann ich hier diese kleine Pipette auswählen , um den richtigen Boss-Charakter aus der Szene auszuwählen. Und los geht's. Jetzt können Sie sehen, dass unser BP-Boss diese Variable in unserer bp-Drehtür füllt . Was ich hier tun muss, ist eine rotierende Tür zu haben , um das Boss Destroyed Event zu abonnieren. Und dies kann in unserem Ereignisdiagramm für rotierende Türen erfolgen . Das erste, was wir tun werden, ist, zu diesem Teil unseres Ereignisdiagramms hier oben zu kommen unseres Ereignisdiagramms hier oben zu wo sich unsere Türrotationszeitleiste befand. Wir haben all dieses Wachstum geschaffen, als wir unsere rotierende Tür zusammengebaut Ich werde die Taste p gedrückt halten. P ist im Spiel. Und wir klicken mit gedrückter P-Taste mit der linken Maustaste , um ein Event zu starten. Als Nächstes bringen wir einen Hinweis auf unseren Boss-Charakter ein. Also halte ich die Strg-Taste gedrückt, klicke mit der linken Maustaste und ziehe, und jetzt ich sofort einen Getter. Ich möchte jedoch nicht, dass dies nur ein typischer Getter ist. Ich werde dies in ein gültiges Datum umwandeln. Wenn ich jetzt mit der rechten Maustaste darauf klicke, kann ich sehen, dass die Option konvertiert wird, um das Get zu validieren Und das ermöglicht es mir, genau hier nachzuschauen. Wenn diese Variable gültig ist. Damit meine ich, ist es mit etwas bevölkert? Ist es tatsächlich etwas , das nicht Null ist, nicht keines. Wenn es gefüllt ist und ein Spoiler-Alarm ausgelöst wird, liegt das daran, dass ich derzeit meine rotierenden Türsätze habe , um diesen Boss-Charakterwert auf diesen Boss einzustellen. Wenn es gültig ist, können wir aus diesem Pin schießen. Wenn es nicht gültig ist, was bedeutet, dass diese Variable null ist, könnten wir etwas anderes tun. Das ist also ein validierter Get, benutze diese ständig. Als Nächstes wollen wir uns hier aus unserem Boss-Charakter zurückziehen. Und ich melde mich an, wenn ich richtig zugewiesen eintippe Hier ist, wonach ich suche. Ein Schild, das Boss zerstört hat Wenn ich das jetzt reinbringe, werde ich tatsächlich zwei Knoten einbringen , also schau es dir an. Der zugewiesene Boss wurde Wenn wir das tun, bringen wir einen Bind-Knoten sowie benutzerdefinierte Ereignisse ein. Ich werde dieses benutzerdefinierte Ereignis mit diesem Namen verlassen. Du kannst es etwas anderem nennen. Aber so funktioniert das. Zu Beginn des Spiels. Wir werden überprüfen, ob unsere Boss-Charaktervariable hier gültig ist. Wenn es mit etwas gefüllt ist, wenn ja, werden wir diese benutzerdefinierten Ereignisse an diesen zerstörten Boss binden , dieser Boss hat den Event Dispatcher zerstört. Was wir dann hier im Wesentlichen tun , ist, diesem Ereignis zu sagen , dass es warten soll, bis das Ereignis ausgelöst wird. Wenn wir anrufen, wenn wir diesen Boss anrufen, zerstörte Ereignisse. Genau hier, wenn wir die Kapselkomponente des Chefs berühren , werden wir das Ereignis genau hier nennen , warten und darauf hören. Dies wird erst ausgelöst , wenn das vom Boss zerstörte Ereignis aufgerufen wird. Unser BP-Chef ruft es genau hier mit diesem Event Dispatcher heraus . Und genau hier sind rotierende Türen, darauf achtet man mit diesem Setup genau hier, das darauf hört. Sobald dies geschieht, können wir aus diesem benutzerdefinierten Event herausschießen. Das ist im Wesentlichen das Setup dort. Also, was ich tun werde, ist, nachdem wir auf die vom Boss zerstörten Ereignisse gehört haben , wir werden es verzögern oder nur eine kurze Zeit hier, wir werden um eine Sekunde verzögern. Dann verdrahte ich das in meine Türrotation. Also öffnen wir die Tür. Das ist etwas Cooles, oder? Nachdem du einen Boss besiegt hast, wird diese Tür plötzlich aufgeschlossen. Also werde ich das kompilieren und speichern. Und lass uns weitermachen und gleich Test spielen. Also los geht's. Stellen Sie diesen Artikel ein. Hier. Ich spiele. Sie können also sehen, wie das Feuer dort drüben abgeht. Jetzt wartet dieses Ereignis, dieser Boss hat benutzerdefinierte Ereignisse zerstört, auf diesen zerstörten Boss. Dieser Boss zerstörte Ereignisse, um ausgerufen zu werden. Dieser Event Dispatcher, das ist der Tweet, die Nachricht wird gesendet. Also los geht's. Wir werden zusehen, wie das irgendwann losgeht, sobald ich auf die Kapselkomponente unseres Chefs stoße. Lass mich hier unser Spielerfenster öffnen. Ordnung, und diese Tür öffnet sich nach einer Sekunde. Also los geht's. Boss geht, tschüss. 1 s später. Da öffnet es sich. Dieser Tweet ging ein und die BP-Drehtür reagierte entsprechend. Beachten Sie nun, dass ein Setup wie dieses in unserem BP-Licht-Blueprint oder einem anderen Entwurf für diese Weise , die wir in unserem Level platzieren, dupliziert werden könnte unserem BP-Licht-Blueprint oder einem anderen Entwurf für . Und das würde gut funktionieren. Alle könnten auf ähnliche Weise unser Boss Destroyed Event abonnieren . Übrigens ist es oft großartig, wenn diese gleich zu Beginn des Spiels auf dieses Ereignis hören, sodass sie jedes Mal, wenn dieses Ereignis eintritt, entsprechend reagieren können. Ich werde jedoch eine etwas andere Methode dieses Ereignis zu achten, um sozusagen auf dieses Ereignis zu achten, indem ich unseren Level-Blueprint verwende. Also gehe ich zurück zu unserem Level-Editor hier. Wir werden unseren Level-Blueprint öffnen. Öffne also Level Blueprint und finde hier etwas leeren Platz, an dem du arbeiten kannst. Das erste, was wir tun müssen, ist zurück zu unserem Level zu springen und lass uns unseren B, einen P-Boss, auswählen. Jetzt, weil unser BP-Boss im Level existiert und wir ihn ausgewählt haben. Bitte lassen Sie sie auswählen, springen Sie jetzt zu Ihrem Level-Blueprint, wir können mit der rechten Maustaste klicken und etwas leeren Bereich und suchen nach dem zerstörten Boss. Also schau es dir an. Wir können ein vom Boss zerstörtes Ereignis hinzufügen. Dieses Ereignis wird also aufgerufen, wenn unser BP-Boss das Eintreten des zerstörten Bossereignisses fordert. Was wir als Nächstes tun werden, ist einen Hinweis auf unsere drei Lichtdarsteller zu geben. also zu unserem Level zurückkehre, wähle ich das erste Licht aus, das zweite Licht mit gedrückter Control-Linksklick und das dritte Licht, kontrolliere den Linksklick. Alle drei sind hier ausgewählt, zurück zu meinem Level-Blueprint Ich halte die R. R ist in Referenz gedrückt und klicke mit der linken Maustaste, um einen Verweis auf alle drei einzufügen . Stapeln Sie sie numerisch so. Und was wir tun wollen, ist aus einem von ihnen herauszuziehen und eingestellte Sichtbarkeit einzugeben. Entschuldigung, wir müssen das für uns wichtige Rampenlicht ins Rampenlicht rücken. Ich werde also sagen, holen Sie sich die Spotlichtkomponente , weil jedes dieser Lichter aus einer Spotlight-Komponente besteht, die wir sehen können, wenn eine von ihnen ausgewählt ist, aus der Spotlight-Komponente besteht. Und ich ziehe die Spotlight-Komponente heraus und tippe die eingestellte Sichtbarkeit ein. Und wir werden sagen, dass es sichtbar wird. Und ich kann Control C Control V duplizieren, das Spotlight für jedes davon. So. Und wenn das passiert, kann ich das auch in die Länge ziehen und Place down to D sagen Bringen wir einen kleinen Ton rein. Klar, so. Und wird eine Explosion haben Q-Dramatiker. Ordnung, also schau es dir jetzt an. Wenn wir unseren Chef mit unserem ThirdPersonCharacter berühren, nennen wir das Events. Es wird diesen Tweet verschicken. Wir wissen bereits, dass die rotierende Tür auf eine Handfläche lauschen wird , die mit dem Spielen beginnt. Und sobald sie hören, dass der Boss zerstört wurde, feuert er dies ab und öffnet die Tür. Hier in unserem Level-Blueprint können wir diesen Boss einfach zerstörte Ereignisse nennen. Wir können dieses Ereignis sofort hinzufügen. Indem das aufgerufen wird. Wir werden dann einfach die Sichtbarkeit unseres Lebens festlegen. Also lasst uns weitermachen und das versuchen. Dieses Mal konzentrieren wir uns auf unsere Lichter. Sofort vernichten wir den Boss. Lass uns weitermachen. Tür öffnet sich. Jetzt hätte ich wieder einen ähnlichen Ansatz innerhalb unserer BP-Lichter wählen können, um dieses BP-Zitat ohne Zitat zu haben den vom Chef zerstörten Event Dispatcher zu abonnieren. Aber ich wollte hier nur demonstrieren, dass Sie diese Event-Dispatcher direkt innerhalb eines Levels und tatsächlich Unterebenen-Blaupausen abfeuern lassen können. Solange ein Verweis auf diesen Schauspieler, in diesem Fall unser BP-Chef, einen Event Dispatcher enthält , der in deinem Level existiert. Nun Leute, da haben Sie einen Event Dispatcher, der eine großartige Methode ist eine großartige Methode , wenn Sie einen Entwurf haben und mit vielen sprechen möchten , basierend auf einem Ereignis. Leute, ich biete das an. Wir sehen uns im nächsten. 92. Blueprint Schnittstellen Teil 1: Willkommen! In diesem Video möchten wir lernen, wie Blueprint-Schnittstellen für die Kommunikation zwischen Blueprints verwendet werden können. Mit einer Blueprint-Schnittstelle können Sie jetzt eine Sammlung leerer Funktionen erstellen. Anschließend können Sie festlegen , welche Blueprints Zugriff auf diese Funktionen haben. Dann können diese Blueprint-Interface-Funktionen, die sich jetzt in diesen Blueprints befinden, eine einzigartige Funktionalität erhalten. Nun, das ist großartig für generische Typfunktionen, wo könnten Sie mit etwas interagieren? Und je nach Blueprint , mit dem Sie interagiert haben, reagieren sie möglicherweise unterschiedlich. Also beginnen wir hier mit einer Grafik. Also werden wir eine Blaupause erstellen. In unserem Blueprint-Interface erstellen wir eine Funktion namens interact. Und dann werden wir dieses Blueprint-Interface in drei verschiedenen Blueprints implementieren dieses Blueprint-Interface : Blueprint Light, unser Blueprint-Chef in unserem ThirdPersonCharacter. In jedem dieser drei verschiedenen Blaupausen können wir nun genau anpassen, was Interact tut. Ordnung, hier in Unreal gibt es eine Menge zu erledigen. Also lasst uns anfangen. Ich bin in meinem Scripting-Blueprints-Ordner. wir mit der rechten Maustaste in einen leeren Bereich. Hier drin rufe ich unter Blueprints auf, im kleinen Fly-Out-Menü wähle ich Blueprint Interface. Wir werden diese BPI-Unterstrichfunktionen benennen. Dann doppelklicken wir auf diesen Kerl, um ihn zu öffnen. Jetzt, hier drin, ist alles, was Sie sehen, nur eine leere Registerkarte mit der Aufschrift „Neue Funktion“. Und dann wartet es oben rechts unter der Registerkarte Mein Blueprint darauf, dass wir dieser Funktion einen Namen geben. Erstellen wir also unsere allererste Funktion und sie heißt interact. Unten im Bereich Details können Sie sehen, dass auch der Name dieser Registerkarte hier geändert wurde, um zu interagieren. Und wir werden die Ausgabe hier ändern, um eine hinzuzufügen. Wir werden eine Ausgabe erstellen und sie wird einfach als interagiert mit Fragezeichen bezeichnet . Und wir werden es als booleschen Wert belassen. Das ist also unsere leere Funktion. Es hat einfach einen Ausgang. Beachten Sie, dass Sie von hier aus nicht Folgendes tun können. Sie können keine neuen Variablen hinzufügen, nur Inputs und Outputs. Sie können das Diagramm überhaupt nicht bearbeiten. Du kannst Filme nicht mögen oder dieses Kästchen ankreuzen oder ähnliches. Sie können keine Komponenten hinzufügen. Diese Funktion ist nicht dafür eingerichtet, irgendetwas zu tun. Die Idee dabei ist, dass diese leere Funktion innerhalb anderer Blueprints hinzugefügt wird innerhalb anderer Blueprints hinzugefügt und wir dann innerhalb dieser anderen Blaupausen anpassen können, was sie tut. Fügen wir nun dieses Blueprint-Interface zu anderen Blueprints hinzu. Kompilieren wir das zuerst und speichern. Gehen Sie dann zurück zu einem Level-Editor. Wir werden unseren ThirdPersonCharacter öffnen. Wir kommen wieder in unseren Blueprint-Bereich und öffnen unser BP-Licht. Und dann werden wir auch unseren BP-Boss öffnen. Obwohl diese BP-Boss-MBP-Lichter in anderen Videos direkt in jedem dieser Blueprints erstellt wurden , müssen wir diese Blueprint-Schnittstelle hinzufügen, und dies erfolgt über die Schaltfläche Klasseneinstellungen. Also fange ich mit meinem BP-Chef hier oben an, Klasseneinstellungen. Und dann drüben im Bereich Details, Hier können wir die Blueprint-Schnittstelle hinzufügen und hier in diesem Dropdown unter Hinzufügen klicken , dort befinden sich unsere BPI-Funktionen. Wir fügen das BP-Licht hinzu. Wir machen die gleichen Klasseneinstellungen, fügen BP-Funktionen hinzu. Und dann unter unserem ThirdPersonCharacter, dasselbe. Klasseneinstellungen, füge BP-Funktionen hinzu. Wenn Sie nicht sehr genau aufgepasst haben und es leicht ist, dies zu übersehen diese Blueprint-Schnittstelle im Abschnitt Mein Blueprint jedes dieser Blueprints hinzugefügt haben, haben wir jetzt eine Schnittstelle unterhalb des Bedienfelds „Mein Blueprint“. Und wenn ich das öffne, können wir sehen, dass wir jetzt Zugang zur Interaktion haben. Wenn ich hier auf unsere Interact-Funktion doppelklicke, öffnet sich ein Funktions-Tab. Jetzt können Sie sehen, dass wir für jede Interaktionsfunktion in jedem dieser drei verschiedenen Blueprints eine einzigartige Funktionalität hinzufügen können für jede Interaktionsfunktion in jedem dieser drei verschiedenen Blueprints eine einzigartige Funktionalität . Beginnen wir hier mit unserem Boss-Blueprint, wir haben hier auf unsere Interact-Funktion doppelgeklickt. Lassen Sie uns dem eine einzigartige Funktionalität geben. Wir werden sagen, wenn wir das Interaktionsfunktion nennen, alles, was wir für unseren Chef tun ist, dass wir uns von hier zurückziehen. Und ich sage, zerstöre den Schauspieler. Und dann kreuzen wir einfach dieses Kästchen an und sagen ja, wir haben mit ihnen interagiert, kompiliert und gespeichert. Wir gehen weiter zu unserem BP-Licht als nächstes hier drin, wir schnappen uns einfach unsere Spotlight-Komponente, klicken und ziehen. Um dies in die Länge zu ziehen, geben wir die eingestellte Sichtbarkeit ein. Wir werden unsere Hinrichtungsleitung so durchziehen. Und wir werden unsere Sichtbarkeit auf wahr setzen. Und wir aktivieren dieses Kästchen auch für Interactor, mit dem interagiert wurde. Lassen Sie uns das kompilieren und speichern. Und dann springen wir zu unserem ThirdPersonCharacter und fügen hier einige einzigartige Funktionen hinzu. Alles was wir tun werden, ist mit der rechten Maustaste in eine leere Stelle zu klicken und Schauspieler holen, Standort zu sagen. Und wir werden diesen Ort nutzen, um zu spawnen und zu emittieren. Wenn ich mich von hier wegziehe, tippe ich den Spawn-Emitter am Standort ein. Du könntest das System auch vor Ort spawnen. Das System verwendet die Niagara-Partikel. Dies sind die älteren Kaskadenpartikel, die beide ausreichen. Ich stecke das hier und spawne in einer Explosion. Weil Explosionen immer Spaß machen. Ich werde die Skala auf nett und groß setzen. Also 22. Und so, und ich werde auch dieses Kästchen ankreuzen, um Ja zu sagen, wir haben interagiert. Deshalb haben wir jetzt einige einzigartige Funktionen unter jedem dieser drei Blaupausen eingerichtet einige einzigartige Funktionen unter jedem dieser drei Blaupausen wenn wir diese Interaktionsfunktion aufrufen. Lass uns weitermachen und das kompilieren und speichern. Gehen wir hier zu unserer Event-Grafik. Und zu Beginn des Kurses haben wir diese Linienverfolgungsfunktion eingerichtet. Wenn Sie dies noch nicht erstellt haben, können Sie kopieren, was Sie hier sehen. Wir senden eine Leitungsverfolgung in die Welt. Und gerade, wenn wir einen Schauspieler treffen, drucken wir nur den Namen dieses Schauspielers auf die Leinwand. Wir werden das ein wenig ändern. Also werde ich diese Knoten hier löschen. Wir werden diesen Branch-Knoten hier loswerden. Ich werde gleich einen weiteren mitbringen. Aber was Sie tun müssen, ist aus diesem Hitdarsteller heraus, Sie können sich aus Ihrem Outfit ziehen und dieses Hit-Ergebnis brechen, aus unserem Hitdarsteller heraus erweitern. Wir werden nach Interact suchen. Und in Klammern sollte es Botschaft geben. Schließ das so ein. Jetzt wird die Interact-Funktion innerhalb des Hit Actor aufgerufen . Wenn dieser Hit Actor tatsächlich das Blueprint-Interface implementiert. Wenn der Erfolgsdarsteller das Blueprint-Interface nicht implementiert, passiert diesem Schauspieler nichts. Was wir als nächstes tun werden, ist, dass wir unsere interagierte Ausgabe hier in die Länge ziehen werden. Ich werde einen Branch-Knoten einbauen. Und wir werden einfach sagen, wenn das stimmt, haben wir mit etwas interagiert und es wurde als wahr bewertet, wir werden es einfach auf dem Bildschirm ausdrucken. Lassen Sie uns die interagierte Thing-Nummer innerhalb unserer Interact-Funktion in unserem ThirdPersonCharacter ausdrucken Thing-Nummer innerhalb unserer . Wir setzen das auf „wahr“. Hier laichen und explodieren wir in unseren Lichtern. Wenn wir damit interagieren, schalten wir einfach das Rampenlicht ein und wir sagen Yelp, du hast damit interagiert. In unserem Chef. Sie interagieren mit der Funktion. Wir werden einfach den Schauspieler vernichten. Und wir sagten, ja, wir haben damit interagiert. Eine weitere Sache hier, wir müssen uns innerhalb unseres Chefs einrichten , damit diese Sichtbarkeitsverfolgung die Sichtbarkeitsspur hier in unserem ThirdPersonCharacter peitscht Sichtbarkeitsspur hier . Damit dieser tatsächlich mit dem Boss interagiert, gehen Sie in Ihren Chef und wählen Sie Ihre Kapselkollision aus. Wir müssen nur die Kollisionseinstellungen ein wenig ändern . Unter der Kollisionskomponente, Abschnitt Kollision. Unter der Kollisionsvoreinstellung ändern wir dies so, dass es benutzerdefiniert ist. Und wir müssen sicherstellen, dass der Visibility-Kanal auf Blockieren eingestellt ist, damit unsere Zeilenverfolgung hier im ThirdPersonCharacter ihn tatsächlich trifft. Lassen Sie uns das kompilieren und speichern. Ordnung, also hier in unserem ThirdPersonCharacter Blueprint werden wir die Pfeiltaste drücken, werden wir die Pfeiltaste drücken um ausgehend von unseren Schauspielern eine Zeilenverfolgung entlang des Sichtbarkeitskanals zu senden entlang des Sichtbarkeitskanals . location, der ThirdPersonCharacter, der mit unserem Endpunkt der Linienverfolgung endet , der mit unserem Endpunkt der Linienverfolgung . Wenn ich zum Viewport gehe , ist dies dieser Punkt, den wir hier früher im Kurs eingerichtet haben . Wir werden dann unseren Hit für jeden Schauspieler, den wir treffen, ausbrechen jeden Schauspieler, den wir treffen, Wir nennen die Interact-Funktion, die sich in unseren BPI-Funktionen befindet, Blueprint Interface. Wenn das Ding, das wir getroffen haben dieses Blueprint-Interface implementiert hat, ruft es diese Interaktionsfunktion auf und führt tatsächlich alles aus, wofür wir diese Funktion in unserem bp-Boss eingerichtet haben wofür wir diese Funktion in unserem bp-Boss , dieses Blueprint-Interface implementiert hat, ruft es diese Interaktionsfunktion auf und führt tatsächlich alles aus, wofür wir diese Funktion in unserem bp-Boss eingerichtet haben Ich vernichte den Schauspieler und sage: Ja, wir haben mit ihm interagiert. Es wird den Bool in unserem Bump-Licht ankreuzen. Wir schalten das Rampenlicht und kreuzen dann auch den Boole an , um zu sagen, ja, wir haben damit interagiert. Wenn jedoch das, was wir getroffen haben, This Blueprint Interface nicht implementiert hat , wird nichts passieren, was in Ordnung ist. Wenn wir nun auf etwas gestoßen sind, das diese Interaktionsfunktion implementiert hat, dieses Blueprint-Interface, werden wir diesen Booleschen Wert hier übergeben. Und wenn es stimmt, drucken wir das einfach auf dem Bildschirm aus. Ordnung, hier in unserem Level-Editor, stellen Sie sicher, dass Sie einen BP-Chef in Ihrem Level sowie ein BP-Licht haben , das sich etwa im Erdgeschoss befindet. Wir machen weiter und springen rein und spielen und drücken die Null-Taste. Sobald wir dort vor unserem Licht stehen, sollten wir einige Texte genau hier erscheinen sehen. Also Nullschlüssel. Du siehst dieses Licht, du siehst, dass es mit der Sache interagiert hat. Toll, das funktioniert ganz gut. Und wir werden es rausschießen. Und unser Boss-Charakter hier solltest du sehen, wie einige Texte erscheinen, sowie unser Chef wird zerstört. Los geht's. Nullschlüssel, der Boss ist weg. Sie sehen, wie unsere Linie dort auch in die Welt geschossen wird . Es gab den Aufprallpunkt und das funktioniert in der Tat. Ordnung, ein bisschen Nuance zu besprechen, da es darum geht, eine Blueprint-Schnittstelle aufzurufen , Funktionen hier in unserem ThirdPersonCharacter, den Sie mich zuvor gesehen haben, ziehen Sie sich von unserem Hit Actor hier und geben Sie das Wort interagieren ein und wir sehen die Interact-Nachricht und wir haben diese Envelope-Version davon genau hier. Das ist identisch mit dem. Jetzt signalisiert dies dem gelieferten Ziel genau hier, diese Funktion aufzurufen. Beachten Sie jedoch, dass Sie beim Aufrufen dieser Funktion nicht das Blueprint-Interface selbst in diesem Blueprint implementieren müssen das Blueprint-Interface selbst in diesem Blueprint , um dies tun zu können worüber ich spreche, ist hier in unseren Klasseneinstellungen. Sie können in diesem Blueprint sehen, dass ich es implementiert habe. Die Schnittstelle ist, dass Sie dies nicht implementiert haben müssen um dies für die Lieferung an Target aufzurufen. Und nur um diesen Punkt zu verdeutlichen, werde ich hier zu meinem Level-Editor zurückkehren. Ich werde meinen BP-Knopf in meinem Level platzieren. Mit dieser Auswahl. Wir haben dies in einer früheren Lektion erstellt. Ich setze meine Lichter hier ein, um dieses Licht zu sein. Also entscheide ich mich für diese kleine Pipette. Und ich werde dieses Licht genau hier auswählen , sodass BP Li2 jetzt mit dieser Variablen in unserer B P-Taste verknüpft ist . Ich öffne das jetzt, RSVP-Button. Und ich werde dieses Skript einfach hier unten modifizieren , wenn ich die I-Taste drücke, wenn ich in Reichweite bin. Also werde ich so vorgehen keine Sorgen über überhaupt keine Sorgen über dieses Umschalten des Materials machen. Ich werde das durchbrechen, indem ich die Alt-Taste gedrückt halte und mit der linken Maustaste klicke. Was ich jetzt tun kann, ist mit der rechten Maustaste klicken. Und wenn ich nach einer Nachricht suche, nicht nach einer Nachricht, suche ich Interaktion. Das habe ich gemeint. Interagieren. Da ist die Interaktionsnachricht meiner B PI-Funktionen. Also kann ich es für dieses Lichtziel genau hier nennen. Denken Sie daran, dass mein BP-Licht etwas tut, oder BP-Licht hat diese Funktion implementiert und es schaltet die Sichtbarkeit um. Aber nein, worüber ich hier spreche , ist in meinen Klasseneinstellungen, ich habe die Schnittstelle der BPI-Funktion nicht implementiert. Das verbietet mir nicht, diese Funktion aufzurufen. Also nur um den Punkt weiter nach Hause zu bringen, was ich hier tun werde, ist das Spiel zu spielen. Und ich werde diesen Button hier überlappen. Ich habe es jetzt überlappt. Ich sehe, dass das tatsächlich sagt: Ja, ich bin gerade in Reichweite. Das Texas rückwärts, aber egal. Ich drücke jetzt die I-Taste um diese Funktion aufzurufen. In meinen hellen Blaupausen. Los geht's, indem wir die I-Taste drücken, und es ruft tatsächlich diese Funktion auf und schaltet das Licht ein. Beachten Sie nun, wenn ich hier mit der rechten Maustaste nach dieser Interaktionsfunktion suche hier mit der rechten Maustaste nach dieser Interaktionsfunktion und interact eintippe, ist dies die einzige Option, die ich erhalte. In meinem BP ThirdPersonCharacter, wo ich das tue, habe ich jedoch habe ich die BPI-Funktionen Blueprint Interface implementiert. Ich kann mit der rechten Maustaste in einen leeren Bereich und interact eingeben. Ich habe eine andere Version, die hier oben Aufruffunktion besagt . Und jetzt sieh dir diese Version an. Dies ist ein lokaler Funktionsaufruf. Jetzt könnte ich so etwas hier in meinem ThirdPersonCharacter Blueprint einrichten . Lass mich das einfach löschen. Funktion, die ich gerade gelöscht , ist identisch mit mir linken Maustaste, ziehe und lege meine Interaktionsfunktion hier drüben in mein Diagramm. In jedem Fall bringen Sie also eine Kopie dieser lokalen Version des Anrufs mit. Also für dieses Setup hier drücke ich die Neun-Taste. Dies wird Interaktion mit dem Ziel des Selbst nennen. Mein Third-Person-Charakter-Blueprint. Ich gebe nur diesen Boolean weiter und dann werden wir uns selbst zerstören. Wenn du dich also an unsere lokale Funktion erinnerst, werden wir einfach einen Emitter am Standort unseres Charakters spawnen . Speichern kompilieren. Lass mich hier zurück zu meinem Event-Diagramm gehen und spielen. Setze mein Debug-Objekt auf mich selbst. Und jetzt, wenn ich den Nike drücke, boom, ruft er diese Interaktionsfunktion tatsächlich auf. Um also eine lokale Version dieser Funktion aufzurufen, muss die Blueprint-Schnittstelle zu den Blueprints hinzugefügt werden um auf diese Version des Schnittstellenaufrufs zu reagieren . 93. Blueprint Schnittstellen Teil 2: Ordnung, hier gibt es noch mehr zu zeigen Bezug auf Blueprint Interfaces. Lassen Sie uns also noch einmal in unsere BPI-Funktionen eintauchen und wir werden eine brandneue Funktion im My Blueprint-Bedienfeld hinzufügen . Also klicke auf Funktion hinzufügen und wir werden diesen Schaden benennen. Und wir werden keine Ein- oder Ausgänge hinzufügen. Wir werden das einfach kompilieren und speichern. Lassen Sie uns nun zurück zu einem unserer Blueprints dem wir dieses Blueprint-Interface bereits implementiert haben . Ich gehe in meinen ThirdPersonCharacter Blueprint. Beachten Sie nun im Abschnitt „ Schnittstellen“, dass jetzt unsere beschädigte Funktion angezeigt wird. Es zeigt sich jedoch in dieser gelben Farbe. Diese Farbe bedeutet nun, dass die Funktion hinzugefügt wurde, aber sie kann nicht innerhalb anderer Blaupausen aufgerufen werden , da sie keinen Rückgabewert hat. Und damit meine ich, gehen wir zurück zu unseren BPI-Funktionen. Es hat keinen Rückgabewert, während ich unsere Interact-Funktion auswähle, sie hat einen Rückgabewert, gibt einen Knoten zurück. Das ist also in Ordnung. Keine große Sache. Hier in unserer Schadensfunktion werden wir ohne irgendwelche Eingänge auskommen, ohne irgendwelche Ausgänge. Wir werden es einfach so belassen und zeigen, wie man Blueprint-Interfaces auf eine etwas andere Art und Weise verwendet . Hier in meinem ThirdPersonCharacter Blueprint. Denken Sie daran, dass ich unsere Blueprint-Interfaces implementiert habe und es eine Schadensfunktion gibt. Wenn ich jetzt versuche, es zu einem Graphen hinzuzufügen, wird es so sein, als ob Nein, ich schaffe es nicht. Wenn ich jedoch mit der rechten Maustaste darauf klicke, kann ich dies als n Ereignisse implementieren. Schau dir an, was passiert , wenn ich das mache. Es fügt dies als Ereignisse zu meinem Diagramm hinzu. Und jetzt kann ich einige Funktionen daraus machen . Ich muss jedoch sicherstellen, dass ich diese Ereignisse tatsächlich aus anderen Blaupausen nenne. Also lass uns das hier in meinem ThirdPersonCharacter Blueprint machen , ich sage, okay, wann immer wir das nennen, werden wir einfach unseren Charakter zerstören, Destroy Actor, das ist einfach genug. Kompiliere und speichere das. Ausgehend von einem anderen Entwurf müssen wir tatsächlich fordern, dass dies geschieht. Lassen Sie uns also sagen, ob es sich um eine BP-Beispielaufnahme handelt Darauf doppelklicke ich. Und ich werde vorerst nur die ursprüngliche Funktionalität davon kapern die ursprüngliche Funktionalität davon , ich werde sie nach dem Video zurücksetzen. Ich werde sagen , wenn wir anfangen, diese Sphäre hier zu überlappen, werden wir prüfen, ob sie zum Third-Person-Charakter passt. Und dann ziehe ich es einfach ab und tippe den Schaden ein, den BPI funktioniert. Schadensmeldung. Wir werden so gehen und so. Und ich werde sie loswerden , nur um das ein bisschen klarer zu machen. Also hier ist was wir tun. In unserem BP-Beispiel-Tonabnehmer. Wir überprüfen, ob wir diese Kugel überlappt haben, diese Kugelkollision mit dem ThirdPersonCharacter. Und wenn ja, fordern wir diesen Schaden Blueprint Interface. Nun, Ereignisse, die hier innerhalb unseres Third-Person-Charakters auftreten werden. Also lasst uns weitermachen und dieses Klickspiel ausprobieren. Und ich habe vergessen, das zu unserem Level hinzuzufügen. Fügen wir eines davon hinzu. Und in dem Moment, in dem wir uns berührten, sollten wir sterben, BAM, und das tun wir. Das ist also eine weitere Möglichkeit, Blueprint-Interfaces zu verwenden , anstatt sie zu implementieren und dann einige Funktionen für jede Funktion hinzuzufügen , wie wir es bei unserem interaktiven Event getan haben. Wir können sie einfach in unserem Blueprint-Interface belassen , ohne irgendwelche Ein- oder Ausgänge. Und dann machen wir es wie in unserem ThirdPersonCharacter, wo wir mit der rechten Maustaste darauf geklickt haben und es in ein Ereignis umgewandelt haben . Dann können Sie alles daraus machen, solange Sie dieses Ereignis aus anderen Blaupausen heraus aufrufen . Nun, das ist eine Art Art Art, ein benutzerdefiniertes Ereignis in anderen Blueprints aufzurufen ein benutzerdefiniertes Ereignis in , die diese Schnittstelle implementieren, richtig, zu guter Letzt werden wir darüber sprechen, wie man ein Blueprint-Schnittstelle zur Kommunikation mit einem Level-Blueprint. Jetzt ist es am besten, eine Blueprint-Schnittstelle zu einer Unterebene hinzuzufügen , um die Kommunikation mit der Ebene zu vereinfachen. Gehen wir zu einer Demonstration. wir zunächst sicher, dass der Level-Tab hier geöffnet ist. Wenn Sie das noch nicht in Ihrem Editor haben, können Sie das erreichen, indem Sie unter das Fenster gehen und dann die Ebenen TAM öffnen. Und früher im Kurs haben wir eine Unterebene erstellt. Ich werde weitermachen und eine weitere Unterebene erstellen , damit Sie noch einmal sehen können, wie es gemacht wird, genau hier, wo Levels stehen, Sie können hierher gehen und neue erstellen. Und es wird Sie auffordern, eine neue Unterebene zu erstellen. Ich wähle ein leeres Level. Erstellen. Es wird uns fragen, wo wir das retten wollen? Lassen Sie uns das in unseren Scripting-Level-Halter setzen, und ich nenne diesen Unterstufenunterstrich einfach 02. Wir werden das aussparen. Ordnung, ich werde mit der rechten Maustaste auf unsere Unterebene klicken. Ich werde die Streaming-Methode ändern. Um anstelle von Blueprint immer geladen zu werden, ändern Sie es in Immer geladen. Dann, mit unserer Unterebene genau hier, klicke ich genau dort, um den R Sub Level Blueprint zu öffnen . Und in unserem Unterebenen-Level-Blueprint habe ich unsere Klasseneinstellungen genau hier oben. Und noch einmal, hier kann ich unser Blueprint-Interface implementieren. Also klicke ich auf Hinzufügen. Es gibt meine BPI-Funktionen. Ordnung, als nächstes zurück in unserem Level-Editor können Sie sicherstellen, dass dies das aktuelle Level ist , indem Sie hier nachschauen. Level Sublevel zwei, das ist unser aktuelles Level. Wenn wir darauf klicken, zeigt dieses Blau auch an, dass es unser aktuelles Arbeitsniveau ist. Wir werden hier einen Schauspieler zu unserer Unterebene hinzufügen. Ich füge hinzu, lass uns gleich hier drunter gehen. Lass uns eine Form hinzufügen. Lass uns einen Zylinder machen. Klar, so etwas. Wir haben also einen Schauspieler in unserer Unterebene. Wir können dies sehen, indem wir auf dieses Augapfelsymbol , um zu zeigen, dass es tatsächlich Teil der zweiten Unterebene ist. Und dann werden wir sicherstellen , dass wir unseren Zylinder ausgewählt haben , und wir kehren zum Entwurf der zweiten Ebene der R-Unterebene zurück. Wir gehen hier auf unsere Interact-Funktion ein. Doppelklicken Sie darauf, um es zu öffnen. Halten Sie die R-Taste gedrückt und klicken Sie mit der linken Maustaste, um dort einen Verweis auf unseren Zylinder einzufügen. Und wir ziehen uns von hier ab und tippen Destroy Actor-Beine ein. Also werden wir dann sagen, dass wir ja damit interagiert haben. Das ist großartig. Kompilieren und speichern Sie dies. Dann tauchen wir zurück in unseren ThirdPersonCharacter Blueprint. Und was wir tun werden, ist ein sehr einfaches Skript zu erstellen. Wir klicken einfach mit der rechten Maustaste, ich kenne den Achterschlüssel nicht. Ich glaube nicht, dass momentan etwas von der Achtertaste abgeht. Und ich klicke dann mit der rechten Maustaste in einen leeren Bereich und tippe und erhalte das Streaming-Level. Und hier wollen wir den genauen Namen unserer Unterebene O2 eingeben . Da ist es genau dort. Unterstreichen Sie eine Ebene, unterstreichen Sie 02. Dann können wir das abziehen und Interact-Nachricht wie folgt eingeben. Auf diese Weise können wir mit unserer Unterebene zwei kommunizieren und die Interaktionsfunktion aufrufen , die wir auch in Sublime eingerichtet haben. Das wird also den Zylinder töten . Jetzt werde ich eigentlich nichts Ungewöhnliches tun. Ich musste das eigentlich nicht ankreuzen, aber ich habe es getan. Also lasst uns weitermachen und das zusammenstellen. Lass uns weitermachen und spielen. Und wenn ich jetzt die Achtertaste drücke, bam, ist sie weg. Wir haben tatsächlich auch über Blueprint Interfaces mit unserer Unterebene kommuniziert . Nun Leute, das reicht aus, um ein Blueprint Interfaces anzubieten. Mit Blueprint Interfaces können Sie wiederum Funktionen innerhalb von Blueprint Interfaces einrichten. Sie können sie dann über die Klasseneinstellungen zu Blueprints hinzufügen . Und sobald Sie dies getan haben, können Sie innerhalb von ihnen Funktionen einrichten , die einzigartig sind, wo immer Sie diese Blueprint-Schnittstellen hinzugefügt haben sehr praktisch für Sie , die das tun werden. alles für diesen. Wir sehen uns im nächsten. 94. Grundkurs für die Parent: Willkommen! In diesem Video ist es unser Ziel, ein Gespräch über das Konzept der Vererbung in Blaupausen zu initiieren . Um die Macht der Vererbung mit Blaupausen wirklich zu demonstrieren, werden wir nun die Macht der Vererbung mit Blaupausen wirklich zu demonstrieren, eine übergeordnete Klasse erstellen, eine Basisklasse, andere zukünftige Blaupausen abgeleitet werden. Dies bedeutet letztendlich , dass jeder Blueprint, den wir als untergeordnetes Element dieses übergeordneten Elements erstellen untergeordnetes Element dieses übergeordneten Elements mit allen Komponenten und allen Funktionen in Variablen, die das übergeordnete Element bereits erstellt hat, vorgefertigt Funktionen in Variablen, die das ist. hat. Wenn Sie nun jemals eine Blueprint-Klasse erstellt haben, haben Sie bereits Vererbung verwendet und möglicherweise nicht einmal bemerkt , dass kein Blueprint in unreal existiert ohne von etwas anderem zu erben. Als Beispiel für das, was ich dort gerade erwähnt habe, schauen Sie sich unseren ThirdPersonCharacter Blueprint an. Wenn wir den Kerl ganz oben rechts öffnen, wissen wir , was die Elternklasse war. In diesem Fall handelt es sich bei unserem bp ThirdPersonCharacter, der von der Charakterklasse geerbt handelt es sich bei unserem bp ThirdPersonCharacter, der von der Charakterklasse , um einen BP-Beispiel-Pickup, den wir zu Beginn der Klasse erstellt haben . Die übergeordnete Klasse dafür ist Schauspieler. Dies wird noch etwas deutlicher, wenn ich zu unserem Inhaltsbrowser zurückkehre und rechten Maustaste Blueprint Class auswähle. Unten, wo wir aufgefordert werden, eine übergeordnete Klasse auszuwählen, sehen Sie die Hierarchie der verschiedenen Blaupausen. Objekt ist die grundlegendste Klasse, die der Akteur vom Objekt erbt. Und wenn ich den Schauspieler hier unten erweitere , kann ich so etwas wie unseren BP-Beispiel-Pickup sehen , der von der Elternklasse erbt. Ordnung, also was wir in diesem Video machen werden, ist unser Elternteil, unsere Basisklasse, zu erschaffen. Und dann werden wir im nächsten Video eine Kinderklasse erstellen , die auf unserer Elternklasse basiert. Und Sie werden sehen, wie unser Kind alle Eigenschaften des Elternteils erbt , genau wie Sie ein Kind sind und einige Eigenschaften von Ihren Eltern geerbt hat. Wird auch unsere Kinderklasse von unserer Elternklasse erben ? Lass uns weitermachen und mit der rechten Maustaste klicken und etwas leeren Platz hier. Ich mache das in meinem Scripting-Blueprints-Ordner. Rechtsklick auf Blueprint-Klasse. Wir werden dies anhand des Schauspielers oder einer Elternklasse stützen. Und ich nenne das meinen BP-Unterstrich. Eltern holen sie ab, so. Und ich werde auf diesen Kerl doppelklicken, um ihn zu öffnen. Und ich werde einige Komponenten hinzufügen. Also beginnen wir damit, eine Kugel hinzuzufügen. Kollision mit Kugel. Werde die Details hier festlegen. Danach, wenn unsere Kugelkollision ausgewählt ist, füge ich eine statische Netzquelle Statisches Netz ist an unsere Kugel angehängt. Und dann, wenn unsere statischen Netze ausgewählt sind, werde ich hinzufügen, dass ich Niagara eingeben werde. Ich möchte es in Niagara-Partikelsystemkomponenten wie folgt hinzufügen . Wir fügen hier gleich ein paar Niagarapartikel hinzu. Und wir werden auch rotierende Bewegungskomponenten hinzufügen und Too-Bewegungskomponenten interpretieren. Also unser, unser Entwurf hier wird sich sowohl drehen als auch auf und ab boben. Das wird also ziemlich cool. Ordnung, lass uns hier ein paar Details festlegen. Wenn Sie also unsere Sphäre auswählen , gelangen Sie in erster Linie zu Ihrem Detailbereich. Wir werden unseren Kugelradius auf 100 setzen, etwas Nettes und Großes. Weißt du, hier zurück zu scrollen ist statisches Netz. Ich gehe unter das Details-Bedienfeld und wähle 1M Unterstrichwürfel. Lass uns einfach irgendein Würfelnetz machen, auf dem alles in Ordnung ist. Etwas 50 mal 50 mal 50. Klar, das ist ein bisschen klein, also skaliere ich das auf vielleicht das Doppelte der Größe dort. Lassen Sie mich das tatsächlich zurückwerfen, indem Sie unsere Waage hier sperren. Ich kann das auf zwei setzen und Enter drücken, es entsprechend in X, Y und Z zu skalieren. Als nächstes wähle ich hier unsere Niagara-Komponente aus. Nun habe ich vor diesem Video sichergestellt, dass ich einige Niagarapartikel zu meinem Projekt hinzugefügt habe . Und ich zeige dir, wo du diese hinzufügen kannst, denn das kann ein bisschen Zeit in Anspruch nehmen. hier unten im Epic Games-Launcher Wenn Sie hier unten im Epic Games-Launcher unter den Unreal-Marktplatz kommen, bin ich hier einfach in den kostenlosen Bereich gekommen. Und ich habe nach Niagara gesucht. Und hier habe ich mich für dieses VFX-Set mit Basis-Tonabnehmer entschieden. Um dies jetzt zu Ihrem Projekt hinzuzufügen, können Sie hier klicken. Schließlich erhalten Sie die Option Zum Projekt hinzufügen. Sie können hier klicken. Jetzt habe ich das bereits zu meinem Projekt hinzugefügt, also werde ich es nicht erneut hinzufügen, aber Sie können Ihr Projekt auswählen. Wenn Ihr Projekt nicht angezeigt wird, können Sie auf diese Schaltfläche klicken, um sicherzustellen, dass es angezeigt wird. Dann würden Sie hier klicken , um es zu Ihrem Projekt hinzuzufügen. Jetzt kann es eine Weile dauern, bis ich hinzugefügt werde. Sobald es hinzugefügt wurde, gehe ich hier in unserem Inhaltsbrowser noch einmal zu den Minuspunkten . Es wird angezeigt, wenn dieser Ordneraufsatz Unterstriche Pickups gesetzt hat, und so weiter. Und genau hier in meinem Verzeichnis, genau hier als Pickup-FX-Nagger-System. Hier können wir einige Niagarapartikel-Effekte finden. Dies ist das neuere Partikelsystem in Unreal, Unreal Engine five verwendet. Okay, zurück zu unserem Eltern-Pickup, wählen wir hier unser Negra-Partikelsystem aus. Und wo dort Niagara-System steht, werde ich eines namens Energie einsetzen. Und ich mache diesen NS-Energie-Unterstrich zwei. Als Nächstes wähle ich unsere interp2-Bewegungskomponente aus. Da kommt unser Partikel rein. Und ich werde hier ein paar Kontrollpunkte festlegen, indem ich ein- und zweimal auf die Plus-Schaltfläche klicke, und ich erweitere jeden dieser Punkte. Ich lasse den Index an dieser Stelle Null, index1, ich lasse ihn einfach um 20 in Z-Richtung steigen. Und dann werde ich hier auch unseren Verhaltenstyp auf Pingpong setzen , sodass er zwischen diesen beiden Punkten hin und her geht . Unsere rotierende Bewegung hat im Z bereits eine Rotationsrate von 180. Wenn ich das also simulieren sollte, können Sie sehen, wie das aussehen wird. Dreh dich herum. Dort hängen Partikel an unserem Würfel. Das ist so reizend. Ordnung, als nächstes füge ich hier unten drei Variablen hinzu, die irgendwann von unserem Kind vererbt werden. Also klicke ich unter dem Abschnitt Meine Blueprint-Variablen die Plus-Schaltfläche genau hier. Der erste wird Pickup S FX heißen. Und wir werden hier den Typ ändern, um Soundbass-Soundbasis zu sein Soundbass-Soundbasis dieser Soundbase-Objektreferenz zu suchen. Wir werden das alles etwas später festlegen. Ich klicke auf die Plus-Schaltfläche. Wir werden eine weitere hinzufügen, die wir Pickup VFX nennen. Ich werde den Typ hier auf Eiergaragensystem setzen, diese Objektreferenz des Agora-Systems. Und wir werden hier eine weitere Variable hinzufügen. Und dieser wird Artikelname genannt. Und wir werden den Typ hier in einen String ändern. Ordnung, beim Kompilieren können wir dann einige Standardwerte für all diese festlegen. Also wird mein ItemName den Standardwert auf Elementname setzen . Für unsere Pickup-V-Effekte werde ich Coin Burst einstecken, das ist ein Niagara-System. Und für meinen Tonabnehmer S von x wähle ich eines namens Objects. Objektabholung. Das steht im Motorinhalt. Wenn Sie das nicht sehen, können Sie auf dieses Zahnradsymbol klicken und genau dort Ihren Motorinhalt einschalten , sodass Sie die Objektaufnahme finden. Das ist es, was ich mitmachen werde. Sie können beliebige Sounds oder Partikeleffekte eintauschen . Das werden meine Standardeinstellungen sein. Ordnung? Damit kompiliere und speichere ich sofort und gehe dann zu meinem Event-Diagramm, wo wir ein bisschen Scripting machen werden. Das Wichtigste zuerst: Wir werden mit der linken Maustaste um diese drei Ereignisknoten ziehen um diese drei Ereignisknoten , die standardmäßig bereits hier sind. Wir werden sie löschen. Wir klicken mit der rechten Maustaste auf unsere Kugelkollisionskomponente und klicken mit der rechten Maustaste auf Ereignis hinzufügen Wir werden etwas tun, wenn wir anfangen, das zu überlappen. Also werden wir das zu unserem Diagramm hinzufügen. Und wie Sie vielleicht vermutet haben, ziehen Sie sich aus unserem anderen Schauspieler heraus und sehen Sie, ob es der ThirdPersonCharacter war , der die Überlappung verursacht hat. Wenn ja, spielen wir Sound ab, 2D. Welchen Sound möchtest du spielen? Nun, wir haben hier ein Tonabnehmergeräusch. Wir ziehen das einfach per Drag & Drop auf den Stift. Geht weiter runter. Als nächstes ziehen wir uns von hier ab und wir werden Spawnsystem am Standort erstellen, Spawn-System an diesem Ort unter dem Niagara-Abschnitt, Spawn-System ist, wo du Niagara VFX spawnen kannst. Wir haben hier bereits eine in einer Variablen gespeichert. wir dies also per Drag & Drop auf die Systemvorlage. Geben wir diesem einen Standort. wir also mit der rechten Maustaste. Finden Sie den Standort unseres Schauspielers. Welcher Schauspieler? Dieser BP-Eltern-Pickup, wo auch immer er sich befinden wird, das ist der Ort, an dem wir das spawnen wollen. Dann ziehen wir das ab und drucken den String. welcher Zeichenkette wollen wir drucken? Nun, wir ziehen uns rückwärts davon ab bringen einen Append-Knoten ein. Und vier sind ein, wir geben ein Doppelpunkt-Leerzeichen ein. Für die b. geben wir unseren Artikelnamen ein. Ziehen Sie das hier hin und legen Sie es dort ab. Wir fügen noch einen Pin hinzu. Und ich werde ein Leerzeichen ausrufezeichen setzen. Das sollte also Doppelpunkt, Leerzeichen, Elementname, Leerzeichen, Ausrufezeichen lauten . Es ist beides, sie brauchen diesen Abstandhalter zwischen dem Namen und dem Ausrufezeichen nicht wirklich . Also gehe ich dort zurück. Und zu guter Letzt werden wir das in die Länge ziehen und den Schauspieler zerstören. Das wird also unser Drehbuch sein. Wenn Sie das Video genau dort pausieren und einen guten Blick darauf werfen möchten. Sehen Sie, in Ordnung, als nächstes, nur um unser Diagramm hier ein wenig zu vereinfachen, klicke ich mit der linken Maustaste und ziehe alle diese Knoten mit Ausnahme unseres Events herum . Und wenn Sie dann mit der rechten Maustaste auf einen Ihrer ausgewählten Knoten klicken, kann ich mit der rechten Maustaste darauf klicken und ich kann sie reduzieren, um zu funktionieren. Wenn ich das mache, wird es auf einen einzelnen Knoten reduziert und direkt drüben im My Blueprint-Bereich unter dem Funktionsbereich wird es sagen, okay, nenne dieses Ding. Ich nenne diese Funktion einfach pickup. So. Wenn ich auf diese Funktion doppelklicke, kannst du hier sehen, wie sie innen aussieht. Und das ist großartig. Wir haben jetzt ein sehr vereinfachtes Ereignisdiagramm. Lass uns weitermachen und kompilieren und speichern. Ich werde eines davon unten in meinem Level platzieren. Und lassen Sie uns das einfach kurz testen, um sicherzustellen , dass wir das tatsächlich sammeln können. Also ziehe dieses Rot hier rein und lass es fallen. Lass uns weitermachen und spielen. Und weg. Wir gehen Da ist es. Wenig platzen auch Luftpartikel . Ordnung, wir haben hier einen guten Start hingelegt. Und im nächsten Video werden wir ein untergeordnetes Element dieses Entwurfs erstellen und dieses Kind wird alle Komponenten erben. Die Variablen sind die Funktionalitäten dieses übergeordneten Elements. Dies ist eine großartige Möglichkeit, in unreal zu arbeiten, denn wenn Sie darüber nachdenken, gibt es viele Dinge in Spielen, die einander ähnlich sind, wie Pickups, Waffen, Feindtypen usw. Sie alle teilen einige Gemeinsamkeiten über sie. Warum also das Rad immer wieder neu erstellen? Warum sollten Sie für jede einzelne Blueprint-Abholung, die Sie haben werden, eine einzigartige Blaupause erstellen für jede einzelne Blueprint-Abholung, die Sie haben werden, eine einzigartige Blaupause ? Am besten erstellen Sie eine übergeordnete Klasse. Es wird einen Großteil der Basisfunktionen haben , die besagen, dass alle Pickups haben werden. Sie dann in jeder der untergeordneten Skriptfunktionen Fügen Sie dann in jeder der untergeordneten Skriptfunktionen einige Komponenten als Variablen oder Eigenschaften hinzu, die für jede einzelne Aufnahme spezifisch sind . Die gemeinsam genutzte Funktionalität sollte jedoch innerhalb eines übergeordneten Blueprints enthalten sein. Okay Leute, das wird dieses anbieten. Wir sehen uns im nächsten. 95. Kinderkurs (Teil 1): Willkommen! In diesem Video ist es unser Ziel zu zeigen, wie man Child Blueprint-Klassen erstellt und wie man sie dann von dort aus anpasst. Das Erstellen untergeordneter Blueprints ist jetzt fantastisch unter dem Gesichtspunkt, dass das Rad nicht neu erstellt werden muss, indem Blueprints einer untergeordneten Klasse alle Basiskomponenten, Variablen und Funktionen erben . von einem Elternteil. Wir müssen das alles nicht beim Kind nachbilden. Stattdessen können wir jetzt jeden untergeordneten Blueprint nach eigenem Ermessen anpassen. Darüber hinaus, wenn es eine hinzugefügte Komponente, Variable oder Funktionalität gibt, die wir dem übergeordneten Element rückwirkend hinzufügen möchten. Alle Blaupausen der Kinderklasse erhalten das automatisch, was ziemlich süß ist. Ordnung, also lasst uns anfangen, einiges davon zu zeigen indem wir zuerst eine untergeordnete Klasse erstellen. Also hier ist meine BP-Elternabholung. Ich werde mit der rechten Maustaste darauf klicken. Und um ein Kind aus vorhandenen Blueprints zu erstellen, klicken Sie einfach mit der rechten Maustaste darauf und auf die oberste Option, los geht's. Erstellen einer untergeordneten Blueprint-Klasse. Es wird uns veranlassen, ihm einen Namen zu geben. Also ändere ich das in BP. Kind abholen. Dann doppelklicke ich auf diesen Kerl, um ihn zu öffnen. Schauen Sie jetzt hier nach. Also hier ist die Abholung meines Kindes. Ich habe hier auch die Abholung meiner Eltern ganz oben geöffnet. Und wenn ich zwischen den beiden hin- und herwechsle, sieht man, dass sie identisch aussehen. Sie werden auch beachten, dass der übergeordnete Pickup diese Komponentenliste enthält. Und beachten Sie, dass wir bei unserem Kind genau dieselbe Liste von Komponenten haben . In der übergeordneten Abholung haben wir diese Variablen genau hier unten. In der Kinderabholung. Wir haben diese Variablen genau hier unten. Und wenn Sie diese vererbten Variablen hier unten nicht sehen , können Sie auf dieses kleine Zahnradsymbol klicken und sicherstellen , dass vererbte Variablen anzeigen aktiviert ist. Das muss aktiviert sein damit diese vererbten Variablen angezeigt werden. Denn wenn man sie abhakt, verabschieden sie sich und zeigen vererbte Variablen an. Und los geht's. Nun ein paar Dinge , die Sie hier beachten sollten. Wenn Sie oben rechts nachschauen, heißt es, dass unsere Elternklasse die BP-Elternabholung ist. Und auch drüben in der Liste der Komponenten, wenn Sie eines dieser Dinge bearbeiten möchten, sagen wir, Sie möchten diese Kugelkomponente ändern , wenn Sie hier in Blueprint bearbeiten geklickt haben, beachten Sie was passiert hier. Es bringt dich tatsächlich zurück zur Abholung deiner Eltern. Also in dem Kind, in dem du all das hier drüben siehst, wenn du auf eines von ihnen klickst, wird es zurück zu den Eltern springen, sagen: Hey, du willst das hier in deinem Kind bearbeiten, Während der Ort, an dem Sie das tatsächlich tun können, bei den Eltern liegt, da alle Änderungen, die Sie hier in den Eltern vornehmen, auf das Kind übertragen werden. Jetzt, nur um diesen Punkt sehr schnell nach Hause zu fahren, werde ich hier in meinem Eltern-Pickup ein temporäres Licht hinzufügen . Also gehe ich unter, füge hinzu, ich tippe Licht ein. Wir fügen ein Punktlicht-Shore hinzu. Ich belasse es bei diesem Namen. Wenn ich jetzt zur Kinderabholung gehe , siehst du es nicht. Wenn ich jedoch zur Abholung meiner Eltern gehe und dann auf Kompilieren klicke, speichere es und gehe zurück zu meinem Kind. Bum, da ist diese punktförmige Komponente und die wäre jetzt auf der Innenseite meines Würfels dort vergraben. Da ist also dort, wo es sich tatsächlich befindet. Ich werde das löschen, weil ich es eigentlich nicht will. Wenn ich das also aus dem Kind löschen wollte, könnte ich es hier löschen. Nee. Geht nicht. Richtig. Weil du es versuchst, aber es ist wie: Nein, ich erbe das von den Eltern. Also musst du Bearbeiten und Blueprint gehen, hier draußen gelöscht, dann kompilieren und speichern. Und diese Veränderung wird bis auf Ihr Kind übertragen. Was die Arbeit auf diese Weise so großartig macht, ist, dass wir mit unserem Eltern-Tonabnehmer die Basisfunktionalität für die Abholung dieses Pickups geschaffen haben . Einfache Überschneidung hier in unserem Event-Diagramm, richtig? Und wenn wir es überschneiden, machen wir diese Funktionalität einfach hier. Wir müssen nicht all dieses innere Kind nachbilden und wir können dies demonstrieren, indem wir dieses Kerllevel ziehen und fallen lassen. Ich habe also die Eltern auf der linken Seite. Ich mache die Eltern ein bisschen größer, das Kind rechts. Und wenn ich reinspringe und spiele, siehst du, dass ich einen holen kann. Ich kann den anderen abholen. Diese Funktionalität hat sich in der Tat auf unser Kind übertragen. Was uns aber auch großartig macht , ist, dass wir einige Änderungen an unserem Kind vornehmen können , während wir dieselbe Funktionalität beibehalten. Lassen Sie mich hier bei unserem Kind nur ein paar sehr oberflächliche Veränderungen vornehmen . Ich werde hier einige unserer Komponenten ändern, nicht die Komponenten selbst, sondern die tatsächlichen Eigenschaften der Komponenten. Also z.B. ich könnte meine Static Mesh Component auswählen und sie in etwas anderes als einen Würfel ändern. Ich könnte das ändern, lass uns einen Kegel gehen, eine Kegelform und die Kegelform reicht aus. Ich werde das einfach verkleinern, um dort auf ganzer Linie einer zu sein . Schrei, du sollst das ein bisschen synchronisieren. Ich könnte die Partikeleffekte meiner Blitze hier so ändern , dass sie so etwas wie Wir werden das Heilen mit ein paar Herzen machen . Klar. Lass uns drei heilen, vielleicht so etwas. Rotierende Bewegungen. Das kann ich auch ändern. Ja, sobald Sie Ihr Niagara-System hier ausgetauscht haben, wird es eine Weile dauern, bis Sie es ausgetauscht haben. Eigentlich mag ich das nicht , weil es eine Art Feuer ist und vergiss eines. Lass uns versuchen, Heilung will so etwas Hartnäckiges. Dolmetscher-Bewegung. Ich kann das auch ändern. In diesem Fall ändern wir die Dauer von einer Sekunde auf 3 s. Es wird also länger dauern, bis sie beginnt. Positioniere hier Null , um eins zu positionieren. Ich kann meine rotierenden Bewegungen ändern. Ich kann die Geschwindigkeit ändern, mit der es sich dreht. Also werde ich das hier ein bisschen schneller drehen lassen. Wir sagen 200, ungefähr so. Und ich kann meine Tonabnehmer-Soundeffekte ändern , muss nicht dieser Objektabnehmer bleiben. Ich ändere das in eine schwebende Ansicht. Ich schließe hier jede Option , wir probieren einfach etwas anderes aus. Mein Pickup-VFX muss dort nicht gleich bleiben. Ich könnte das von Coin Burst auf Coin Burst O2 ändern. Und mein Artikelname muss nicht gleich bleiben. Anstelle des Artikelnamens als Artikelnamen werde ich dies ändern, um wieder gesund zu sein. Ordnung, also wenn all diese Änderungen vorgenommen wurden, kann ich zurückgehen und speichern. Lass uns das ausprobieren. Man sieht, dass es sichtbar anders aussieht. Unterschiedlicher Partikeleffekt. Es wird auch einen anderen Partikeleffekt haben , wenn wir es aufnehmen. Es sieht so aus, als ob dieser Partikeleffekt hier ziemlich schnell verschwindet , aber los geht's. Das Elternteil, das Kind. Unterschiedlicher Partikeleffekt, unterschiedlicher Klang usw. Ordnung, das ist alles gut und gut In Ordnung, das ist alles gut und gut, da unser Kind tatsächlich die Funktionalität und die Anfangskomponenten unserer Eltern geerbt hat die Funktionalität und die Anfangskomponenten unserer Eltern geerbt . Wir haben einfach einige der oberflächlichen Elemente ausgetauscht . Unser Kind hier, das ist der Blick in einigen Geräuschen und so etwas, den Variablen. Aber lassen Sie uns unsere Funktionalität beim Kind etwas weiter ausbauen . Machen wir es so, dass wir zwar nicht all dieses Zeug geerbt haben und das alles gut und gut ist. Wir wollen unser Kind ein bisschen weiter bringen. Wir wollen hier etwas Spezielles für die Abholung unseres Kindes tun. Also beginnen wir unserem ThirdPersonCharacter Blueprint. Ich werde auf Blaupausen der dritten Person eingehen, die Person, Charakter und unsere Gesundheitsfunktion sind . Das haben wir früher im Kurs erstellt. Wir haben eine Funktion zum Ändern der Gesundheit erstellt und sie sieht so aus. Wir ziehen das in unser Event-Diagramm. Ich klicke mit der rechten Maustaste und bringe ein benutzerdefiniertes Ereignis. Ich nenne das Health Child Pickup. Ich werde das in unsere Funktion „ Gesundheit modifizieren“ einbinden , die wir erstellt haben. In einem früheren Video haben wir erneut über das Erstellen von Funktionen in unserer benutzerdefinierten Veranstaltung zur Abholung von Kindern im Gesundheitswesen gesprochen . Ich füge hier eine Eingabe klicke auf diesen Plus-Button. Ich nenne diese Gesundheit. Ich ändere den Typ von boolean auf float. Und ich werde das sofort in unsere Funktion zur Veränderung der Gesundheit integrieren , damit wir diesen Gesundheitswert in unsere Funktion weitergeben. Wir werden in unseren Kinderabholungen etwas daran weitergeben . Das wirst du hier gleich sehen. Dann bringe ich hier einen Druckstring mit. Dann ziehe ich mich rückwärts von meiner Druckzeichenfolge und bringe einen Append-Knoten ein. Und ich werde meinen Wert hier haben, einfach sagen wir Gesundheit Dickdarm Raum. Und unser b-Wert wird die aktuelle Gesundheit sein , die wir haben werden, nachdem wir diese Berechnung durchgeführt haben, indem wir sie so hineinziehen, dass es einfach einen Konversionsknoten einbringt und einen Float in ein String. Unsere Funktion „Gesundheit modifizieren“ sieht derzeit so aus. Wenn ich darauf doppelklicke, siehst du genau dort, was es macht. Wir spielen je nach übergebenem Gesundheitswert unterschiedliche Sounds ab. Wir klatschen auch über diesen Gesundheitswert. Aber genau das ist es , was wir vor sich haben. Kompilieren wir das sehr wichtig, dass Sie kompilieren und speichern. Und es ist wichtig, dass Sie kompilieren, damit wir tatsächlich aufrufen können , dass diese oder diese eher benutzerdefinierten Ereignisse von unserer Kind-Abholung aus auftreten. Ordnung, also alles in Ihrem ThirdPersonCharacter Blueprint, gehen Sie zurück zur Abholung Ihres Kindes. hier in Wenn Sie sich hier in Ihrem Event-Diagramm umsehen, sagen Sie, ich sehe keine dieser Funktionen hier in unserem übergeordneten Element. Wir machen hier ein bisschen Scripting, wie so. Und ich weiß, dass wir diese Funktion geschaffen haben, diese Pickup-Funktion hier in meinen Eltern. Und es sieht so aus, aber wenn ich auf mein Kind eingehe, sehe ich nichts davon. Nun, hier in unserem Funktionsbereich des My Blueprint-Bedienfelds Sie Ihre Aufnahmefunktion außer Kraft setzen, können Sie Ihre Aufnahmefunktion außer Kraft setzen, die derzeit in Ihrem BP-Eltern-Tonabnehmer vorhanden ist. Wenn wir also darauf klicken, sehen wir jetzt die Pickup-Funktion, die wir in unserem übergeordneten Element erstellt haben. Und so sieht es in unseren Eltern aus, in unserem Kind. Es sieht so aus, wo wir einfach einen Anruf bei unserem Eltern-Pickup tätigen und sagen, ja, das ist die Funktion , die wir ausführen möchten. Jetzt kann ich das noch weiter ausdehnen. Was ich hier machen werde, ist mit der rechten Maustaste zu klicken und ein leeres Feld einzugeben, Spielercharakter zu holen. ThirdPersonCharacter übertragen, wie so. Jetzt, weil wir dieses benutzerdefinierte Ereignis in unserem ThirdPersonCharacter erstellt haben und Sie sicher sind, zu kompilieren und zu speichern. Wir werden einen Anruf zu dieser benutzerdefinierten Veranstaltung zur Abholung von Kindern tätigen. In unserer Kinderabholung kann ich jetzt hier rausziehen und die Gesundheitsabholung für Kinder eingeben . Und dadurch wird der Aufruf an unseren ThirdPersonCharacter Blueprint weitergeleitet, um dies auszuführen. Nun, hier in unserer Kinderabholung, müssen wir etwas Gesundheit weitergeben, die wir entweder an die Ferse weitergeben möchten , sonst könnten wir unseren Charakter verletzen. Ich werde nur etwas hart einstellen, aber Sie könnten mit der rechten Maustaste darauf klicken. Sie könnten dies zu einer Variablen oder einer lokalen Variablen heraufstufen. Eine lokale Variable würde nur von dieser Funktion hier gesehen werden . Ich werde hier nur fünf Punkte eintragen. Ich werde das auch kompilieren. Und lassen Sie mich zu meinem ThirdPersonCharacter Blueprint zurückkehren und sicherstellen, dass unsere Gesundheit derzeit auf 100% eingestellt ist. Also setze ich das auf 50% zurück. Und nur als Schnellspieltest möchte ich sicherstellen, dass unser Gesundheitsmesser tatsächlich 50% Gesundheit anzeigt. Ordnung, wenn das alles erledigt ist, können wir tatsächlich einsteigen und spielen. Ich hätte es dort einfach testen dachte aber nicht klar. Beachten Sie also, dass mein Gesundheitszustand im rechten Ohr bei 50% liegt. Dies sollte es bis ungefähr dort auf dem Gesundheitsmesser heilen , denn das ist es, wozu wir es anweisen. Und los geht's. Wir haben in der Tat unsere Gesundheit um 2,75 erhöht. Und du hast gesehen, wie diese Saite auch weitergegeben wurde. Sie haben also hier in meiner Kinderabholung gesehen, dass ich einfach die Funktionalität erweitert habe, die wir bereits von den Eltern geerbt haben. Der Eltern-Pickup hatte bereits ein Skript hier drin. Wenn wir also diese Sphäre überlappen, rufen wir diese Funktion auf, diese Tonabnehmerfunktion innerhalb der Eltern. Unser Kind wird das alles erben. Und unser Kind wird es auch hier verlängern. Wir rufen diesen Aufruf zum benutzerdefinierten Ereignis innerhalb unseres ThirdPersonCharacter an. Etwas anderes, das hier erwähnenswert ist, ist, dass, als wir unser Kind hier abgeholt haben, oben links darauf hingewiesen wurde, dass Got Health Pack stand. Und der Grund dafür ist, dass God Health Pack darin besteht, dass wir hier in unserer Kinderabholung den Artikelnamen in Gesundheitspaket ändern. Und wenn Sie sich erinnern, in der übergeordneten Abholfunktion , die wir hier erstellt sagen wir in der übergeordneten Abholfunktion , die wir hier erstellt haben, den Artikelnamen und dann das Ausrufezeichen. Also lasst uns das alles respektieren. Es ruft diese Abholfunktion innerhalb unserer Eltern auf. Aber es respektiert auch die Variablennamen, die wir hier in unserer Kinderabholung geändert haben , nämlich dass in unserer Kinderabholung kein Artikelname mehr angegeben wird, wir sagten nein, es geht jetzt um Gesundheitspaket zu sagen. 96. Kinderkurs (Teil 2): Ordnung, in Teil Nummer zwei werden wir hier einige der feineren Nuancen besprechen, auf die Sie bei der Arbeit mit Blaupausen für Eltern und Kinder stoßen können , einige Dinge, die Sie wissen sollten über. Nehmen wir an, Sie erstellen eine Elternabholung, wie wir es getan haben. Und sagen wir einfach, wir haben diese rotierenden, sich bewegenden Komponenten hinzugefügt , wie wir es getan haben, und wir wollen es so gestalten, dass alle Kinder dieser Blaupause dieser Rotationsrate von einem Geldautomaten gehorchen , dass es keine Chance gibt wir möchten, dass die Blaupausen der untergeordneten Klasse nicht von diesem Wert abweichen. Wir wollen sie sozusagen aussperren. Nun, wir können hier tun, dass wir dieses Kontrollkästchen „Bearbeitbar bei Vererbung“ deaktivieren können. Und Sie finden dieses Kontrollkästchen all unsere verschiedenen Komponenten hier. Was passiert ist, wenn du das Häkchen deaktivierst und ich werde, ich werde es deaktivieren. Und dann kompiliere ich das noch einmal und speichere. Wenn ich nun in die Abholung meines Kindes gehe, wird es all diese Werte erben , weil ich gerade kompiliert habe und sage , dass diese Änderungen auf das Kind übertragen werden , sobald einige Änderungen an Ihren Eltern vorgenommen wurden. Unsere Rotationsrate liegt also bei 180. Unser Kinder-Tonabnehmer hat jetzt dieselbe Rotationsrate, Drehbewegung von 180. Aber sieh dir das an. Ich kann hier keine der Eigenschaften ändern. Tatsächlich heißt es oben, dass das Komponenten-Flag nicht bearbeitet werden kann, wenn es vererbt wird. Das ist diese Checkbox hier. Wenn vererbt, muss es in den übergeordneten Blueprints bearbeitet werden. Also lässt es mich wissen, hey, du kannst das hier nicht ändern. Du müsstest zu den Blaupausen deines Paares zurückkehren. Wenn du hier klickst, wird es mich an meine Eltern zurückgeschickt. Ich könnte jetzt auf dieses Feld klicken. Und sobald ich auf dieses Kästchen geklickt habe, kann ich zu meinem Kind zurückkehren und oh, ich kann es noch nicht mehr ändern. Wenn ich jedoch zu meinen Eltern zurückkehre, kompiliere, dann gehe ich zurück, dann kann ich es noch einmal ändern. Das ist also etwas, über das Sie auf jeden Fall Bescheid wissen sollten . Etwas anderes, das Sie hier beachten sollten, ist, dass nur weil Sie in Ihrem Detailbereich eine Eigenschaft für eine bestimmte Komponente festgelegt haben in Ihrem Detailbereich eine Eigenschaft für eine bestimmte Komponente festgelegt , dies nicht bedeutet , dass dies der tatsächliche Immobilienwert ist , der in der Spiel. Lassen Sie mich Ihnen nun ein Beispiel zeigen was ich genau damit meine. Ich werde die Abholung meines Kindes hier auf eine Rotationsrate von nur zehn ändern . Okay? Rotationsrate hier von zehn. Und die Eltern mit den rotierenden Bewegungskomponenten ausgewählt. Ich werde es hier zu gut ändern, eigentlich lasse ich es bei 180. Sie könnten also denken, okay, Elterngefährdung mit 180, Kind hat es mit zehn. Allerdings, wenn in meiner Elternabholung im Event Graph etwas auf Event Begin Play machen wollte . Ich halte die P-Taste gedrückt und klicke mit der linken Maustaste, um Event Begin Play zu starten. Und dann bringe ich in meine rotierende Bewegung in Komponenten ein, damit ich irgendwie darüber sprechen kann. Und ich sage diese rotierenden Bewegungskomponenten ausgewählt sind, werde ich sie herausziehen und diese Eigenschaftsrotationsrate ändern. Wenn ich also aus dieser Rotationsrate herausziehe, werde ich die Rotationsrate einstellen. Und ich sage, wir setzen es auf 1.000. Beachten Sie also, was ich hier vor sich habe. Die rotierende Bewegungskomponente hatte ich auf 180 eingestellt. Aber zu Beginn des Spiels ändere ich diesen Wert auf 1.000. Hier in meiner Kinderabholung. Ich muss zehn sein, du kannst sagen, okay, dafür sind es zehn. Denken Sie jedoch daran, dass das Kind alle Funktionen erben wird , die im übergeordneten Element eingerichtet sind. Und die Eltern sagen gerade, hey, sobald wir mit dem Spielen begonnen haben, wirst du deine rotierende Bewegung auf 1.000 ändern. Das Kind wird das also auch respektieren. Wenn ich also hier in meiner Leveltestkarte zurückspringe und tatsächlich ein Kegel ein wirklich schlechtes Netz ist um diese Rotationsrate zu sehen, werde ich diesen Kegel sehr schnell austauschen wieder in das statische Kindernetz zurückkehren. Lassen Sie uns etwas tun, das wir tatsächlich sehen können, wie es sich dreht. Wie wär's mit dieser Pfeife? Wir werden sehen, wie wir uns drehen. Ordnung, also wenn ich das simulieren sollte , heißt das Spiel laufen zu lassen, aber nicht wirklich reinzuspringen und zu spielen. Sie können sehen, dass sich beide ziemlich schnell drehen. In der Tat scheint sich dieser etwas schneller zu drehen , weil alle Partikel herumtanzen. Aber in der Tat drehen sich beide ziemlich schnell herum, die Geschwindigkeit, die wir bei den Eltern festgelegt haben, das sind 1.000, weil unser Kind es sicherlich nicht dreht. mit einer Rate von zehn. Jetzt denke ich, dass die wichtigste Erkenntnis darin besteht, achtsam zu sein, wo Sie ein Drehbuch erstellen. Denken Sie daran, wenn Sie innerhalb Ihrer Eltern ein Skript erstellen , das nach unten übertragen wird und das bei allen Kindern, die Ihr Kind möglicherweise auch hat, auf Ihr Kind heruntergefiltert wird . Wenn Sie also einige Funktionen haben möchten das Kind einzigartig sind, nur innerhalb des untergeordneten Elements skriptiert werden, und das Skripten innerhalb des übergeordneten Elements überspringen möchten , da dies für irgendjemand in der Kette der Abstammung. Das führt zu unserem nächsten Punkt hier. So wie Sie sehen, dass dieser Elternteil ein Kind bekommt, kann unser Child Blueprint auch einen Nachkommen haben. Also lass uns das ausprobieren. Ich gehe hier zurück zu meinem Inhaltsbrowser. Mit unserer Child-Pickup kann ich jetzt mit der rechten Maustaste darauf klicken und eine untergeordnete Blueprint-Klasse erstellen. Und ich nenne das BP-Unterstrich. Wir nennen das Enkelkind. Abholen. Wenn ich darauf doppelklicke, um es zu öffnen. Und lassen Sie es mich einfach hier platzieren. Wir haben also Eltern, Enkelkinder. Wir können sehen, dass die Elternklasse die Abholung von Kindern ist, aber unsere Kinderabholung hat darüber eine Elternabholung. Also sieh dir das an. Unser Enkelkind, Sie würden denken, dass unsere Rotationsrate die gleiche wäre wie unserem Eltern-Pickup, aufgrund dessen, was ich gerade beschrieben habe, unsere Eltern werden beim Spielen außer Kraft setzen, um rotierende Bewegungen zu sein nicht 181000, das Kind wird das auch respektieren. Und unsere Enkelkinder sollten das auch tun, oder? Lass uns weitermachen und es versuchen. Orte hier draußen. Und wir sollten den Enkelkindern auch hier ein anderes Netz geben , nur um den Punkt nach Hause zu bringen, dass es anders ist. Also werde ich hier dieses statische Netz auswählen und lass uns diese Quad-Pyramiden ausprobieren, so etwas. Und wenn ich das jetzt simulieren sollte, simuliert Alt plus S es alternativ. Sie drehen sich alle auf die gleiche Weise. Es ist nur ein kleiner visueller Trick. Dieser sieht aus, als würde er sich langsamer drehen, aber sie drehen sich tatsächlich alle mit genau der gleichen Geschwindigkeit. Was auch immer wir in unseren Eltern für das Drehbuch eingerichtet haben , wird sich auf das Kind übertragen, was sich auch auf die Enkelkinder übertragen wird. Okay, noch ein Konzept, das ich hier demonstrieren möchte, und es hat mit Eingabeüberschreibungen zu tun. Jetzt gehe ich zurück zu meiner Elternabholung hier. Wieder einmal stammt mein Eltern-Pickup aus der Schauspielerklasse eine Blaupause ab. Blaupausen der Schauspielerklasse werden nicht verarbeitet. Das heißt, sie lösen standardmäßig keine Tastatureingabeereignisse aus . Wir können es jedoch so einrichten, dass sie erkennen, dass Tastatureingabeereignisse ausgelöst wenn wir sie auf diese Weise einrichten. Also werde ich hier unter meine Klassenstandards gehen. Und im Detailbereich, wo Eingabe steht , automatische Eingabe empfangen. Ich werde das von deaktiviert auf Spieler Null ändern. Dabei kann ich jetzt ein Tastatureingabeereignis oder ein Controller-Eingabeereignis hinzufügen . Und das wird sie erkennen. Jetzt ändern wir das hier in meiner Elternabholung. Wenn ich zur Abholung meines Kindes gehe, standardmäßig dieselbe Klasse verwendet, und wir kommen unter den Eingabebereich. Es setzt das jetzt auch als Spieler-Nullen ein. Das Gleiche gilt für unsere Enkelkinder, wir gehen unter Ihre Klassenstandards. Diese Änderungen wurden auf der ganzen Linie verbreitet . Das ist großartig. Okay, gehen wir zurück zu unseren Eltern. Und in einem leeren Bereich hier ich mit der rechten Maustaste und lass uns etwas tun wenn wir die Tastatur machen. Machen wir, machen wir das, wir machen den K-Key-Shore. Ordnung, wenn wir nicht auf KCI drücken, werden wir die Zeichenfolge drucken. Und was wir ausdrucken wollen, einfach Eltern. Und wenn unsere K-Taste hier ausgewählt ist, beachten Sie, dass wir auf der rechten Seite sowohl die Konsumeingabe überprüft als auch die übergeordnete Bindung außer Kraft setzen. Nun, was hier passieren wird, wenn ich spiele, lass mich einfach auf diese drei Punkte klicken, neues Editorfenster zu gelangen. Ich setze meine Debug-Option hier als Abholung durch meine Eltern. Beachten Sie, dass ich eine dieser drei auswählen kann, aber ich wähle die Abholung meiner Eltern. Bring das Fenster an. Wenn ich hier oben die K-Taste drücke, sehe ich, dass der Elternteil nur einmal ausgedruckt ist. Nur einmal. Jetzt sagen Sie sich vielleicht: Was soll's, ich dachte, jede Art von Skriptänderungen , die Sie vorgenommen haben, zeigen, dass sich diese Änderung der Skripterstellung bis auf das Kind ausbreiten wird und somit Enkelkinder auch. Warum haben wir das nicht nur einmal ausgedruckt gesehen ? Warum haben wir es nicht dreimal ausgedruckt gesehen wie bei den Eltern als beim Kind und den Enkelkindern. Nun, das funktioniert so, weil unsere Konsumeingabe hier überprüft wird. Das bedeutet nun, dass andere Akteure mit niedrigerer Priorität diese Funktion nicht übernehmen. Das heißt, es hört einfach hier auf und es wird hier sterben. Beachten Sie nun, was passiert , wenn ich dieses Kontrollkästchen für die Konsumeingabe deaktiviere. Lass uns weitermachen und nochmal spielen. Ich drücke auf den KCI und schaue oben links in unserem Spielfenster nach, wir sehen, dass schaue oben links in unserem Spielfenster nach, wir sehen, Eltern dreimal ausgedruckt sind. Das liegt daran, dass wir zulassen, dass sich dieser Schlüssel, die K-Taste, nach unten ausbreitet, indem wir die Eingabe hier nicht verbrauchen wir zulassen, dass sich dieser Schlüssel, die K-Taste, nach unten ausbreitet, . Das soll bei unserem Kind auch bei der Abholung von Enkelkindern funktionieren . Wenn also die Verbrauchseingabe aktiviert ist, funktioniert sie nur auf der höchsten Ebene. Wenn dieses Häkchen deaktiviert ist, wird diese Änderung auf alle untergeordneten Elemente übertragen. Ordnung, also lasst uns das alles ein bisschen weiter vorantreiben. Ich klicke mit der linken Maustaste, kopiere diese Knoten hier, kontrolliere C. Und ich gehe in die Maya-Kinderabholung. Und innerhalb meines Event-Diagramms drücke ich einfach Control V, um diese einzufügen. Jetzt, wo meine K-Taste im Detailbereich ausgewählt ist, werde ich sagen, lassen Sie uns die Eingabe hier konsumieren. Und ich werde auch meine Druckzeichenfolge ändern und jetzt ein Kind werden. Okay, und lass uns weitermachen und von hier aus Tests spielen. Was Sie nun sehen werden, wenn ich die K-Taste drücke, lassen Sie mich festlegen, dass mein Kind genau hier abholt , als das, das wir sehen wollen. Wenn ich die K-Taste drücke. Jetzt wirst du ein Kind sehen, ein Einzelkind. Nun, hier ist etwas zu beachten. Das liegt daran, dass unser Kind darauf eingestellt ist , Input zu konsumieren, was bedeutet, dass die Eltern ihn nicht registrieren. Nun, das ist gierig. Es heißt, konsumiere es hier, ignoriere unsere Eltern. Das ist der, für den wir diesen Eingabeschlüssel verarbeiten wollen. Wenn wir es hier deaktivieren, deaktivieren Sie die Option Eingabe konsumieren hier in unserer bp-Kinderabholung und spielen Sie noch einmal Drücken Sie diesen KCI und jetzt sehen wir Elternkind Kind. Was passiert hier? Nun, indem wir es nicht konsumieren, lassen wir zu, dass es auch in unserem Eltern-Pickup verwendet werden kann. Unsere Eltern sagen, dass Eltern hier in unserem Kind sind, wir sehen ein Kind. Und denken Sie daran, dass unsere Enkelkinder von uns abstammen, das Kind auch. Also Kind, Kind, aber im Elternteil selbst, das ebenfalls deaktiviert ist und Input verbraucht. Es heißt Eltern. Deshalb haben wir das Ergebnis gesehen, das wir dort gesehen haben. Ordnung, also da hast du es. Das in Unreal dargestellte Konzept der Vererbung und die Macht, die es bietet. Hier haben wir gezeigt, dass Sie eine Elternabholung erstellen können. Von dort aus können Sie mit der rechten Maustaste darauf klicken und eine untergeordnete Pickup erstellen, die alle Eigenschaften und Funktionen des übergeordneten Elements innerhalb des untergeordneten Elements erbt Funktionen des übergeordneten Elements innerhalb des untergeordneten Sie können benutzerdefinierte Funktionen erstellen. Sie können einige der Variablen und auch einige der Komponenteneigenschaften anpassen . Und dann haben wir auch gezeigt, dass man die Linie weiterführen kann. Sie können mit der rechten Maustaste auf Ihr Kind klicken und auch ein Enkelkind erstellen . Diese leistungsstarken Konzepte können also während des gesamten Spiels verwendet werden während des gesamten Spiels verwendet um verschiedene Systeme zu vereinfachen , die Sie möglicherweise integrieren möchten, z. B. ein Waffenaufnahmesystem viele Waffen zum Aufnehmen. . Sie alle mögen ihre einzigartigen Eigenschaften haben, aber die Tonabnehmer-Funktionalität würde sozusagen dieselbe bleiben. Leute, die alles für dieses Video machen. Wir sehen uns im nächsten. 97. Framework: Ordnung, willkommen alle. In diesem Video ist es unser Ziel, eine Vertrautheit und ein Verständnis der sogenannten Framework-Blueprints in Unreal zu erlangen Verständnis der sogenannten . Dies ist ein kritisches Thema, über das jeder, in Unreal arbeitet, Bescheid wissen sollte. Was sind diese Framework-Blueprints? Nun, es handelt sich um hochrangige Blaupausen, die mit einem Projekt verbunden sind und wichtige Dinge über Ihr Spiel bestimmen, z. B. die Regeln Ihres Spiels. Solche Dinge sind oft in einem Spielmodus-Blueprint oder dem Spieler in Ihrem Spiel enthalten in einem Spielmodus-Blueprint , auch bekannt als Charakter oder Teich. Hast du solche Dinge kontrolliert? Wo sind diese Framework-Blueprints zu finden? Nun, jedes Projekt hat standardmäßig welche, und tatsächlich gab es einige bis zu diesem Zeitpunkt im Kurs. Einige von Ihnen haben gewusst, andere nicht, aber hier werden wir alles enthüllen. Sie finden diese Framework-Blueprints also gleich hier oben rechts in Ihrem Editor unter Einstellungen, Projekteinstellungen. Wenn du hier Karten und Modi auswählst, haben wir einen Standard-Spielmodus. Und dein Standard-Spielmodus enthält all diese Blaupausen darin. Oft ist das zusammengebrochen. Sie können dies erweitern. Sie können also sehen, dass wir hier einen Spielmodus haben. Es ist Default Pawn Class, eine HUD-Klasse, Spieler-Controller. Und ich würde sogar die Spielinstanzklasse einwerfen, die hier unten ist. Über all diese Blaupausen sprechen wir hier, und diese genau hier, diese werden als Ihre Framework-Blueprints bezeichnet. Jetzt habe ich Ihnen gerade gezeigt, dass Sie in Ihren Projekteinstellungen, Karten und Modi darauf zugreifen können, indem Sie hier auf diese Schaltfläche klicken. Wenn Sie unter Bearbeitungen fallen, finden Sie dort auch Ihre Projekteinstellungen. Sie können auf Karten und Modi zugreifen und auch Ihre Framework-Blueprints finden . Wenn Sie hier klicken und hier unter Ihre Projekteinstellungen gelangen, können Sie alternativ und hier unter Ihre Projekteinstellungen gelangen, können Sie Ihren sogenannten Spielmodus-Blueprint sehen. Und dann unten können Sie einige dieser Framework-Blueprints auch in diesem Abschnitt hier sehen dieser Framework-Blueprints auch in . Nun, jeder dieser verschiedenen Framework-Blueprints wie der Spielmodus, ein Charakter, ein Spieler-Controller. Dies sind alles spezifische Arten von Blaupausen. Und wir werden einige davon und wie man sie erstellt, in den kommenden Videos in diesem Abschnitt des Kurses sehen davon und wie man sie erstellt, in . In diesem Framework-Übersichtsvideo ist es wichtig zu beachten, dass wir zwar einige Blaupausen haben, einige Framework-Blueprints in unseren Projekteinstellungen hier zu finden sind, Karten und Modi. Dies sind unsere Rahmenpläne. Dies sind Blaupausen , die die Dinge über unser Projekt kontrollieren . Das heißt, jede Ebene, die wir in unserem Projekt schaffen. Es ist möglich, diese Framework-Blueprints pro Ebene und pro Masse außer Kraft diese Framework-Blueprints pro Ebene zu setzen. Wir können das herausfinden, indem wir zu unserem Editor auf Hauptebene zurückkehren. Wenn ich unter Fenster komme und auf meine Welteinstellungen zugreife, können wir sehen, ob ich in den Bereich Spielmodus komme den Bereich Spielmodus und ich klicke hier auf dieses Drop-down-Menü. Hier kann ich meine Framework-Blueprints für ein bestimmtes Level überschreiben . Sie sind in der Welt zu finden. Also, wenn ich in meinen Projekteinstellungen ein Framework hatte, Blueprints für mein Projekt eingerichtet sind und Dinge bestimmen wie, Nun, ich werde den ThirdPersonCharacter während des gesamten Prozesses kontrollieren von meiner Standard-Pfandklasse. Ich kann es tatsächlich so machen, dass ich innerhalb einer bestimmten Karte mit einem bestimmten Level einen bestimmten Teich festlegen kann, den ich kontrollieren möchte , nur innerhalb dieser einen Ebene , die sich in den Welteinstellungen befindet. Das findest du also nicht nur unter der Option Fensterwelt-Einstellungen. Sie können das auch hier finden, indem Sie direkt dort klicken. Und du kannst sehen, ob deine Welteinstellungen deinen Spielmodus außer Kraft setzen , wir können sehen, dass wir nichts außer Kraft setzen. Das ist es, was diese Warnung genau dort ist. Ordnung, also noch einmal, das ist unser Überblick über Framework-Blueprints, Ihre Framework-Blueprints enthalten diese Blaupausen genau hier. Ich würde auch die Spielinstanzen einwerfen, nun, sind alles verschiedene Blaupausentypen und sie enthalten wichtige Informationen über Ihr Spiel, wie die Regeln, die den Gamow-Blueprint bestimmen, was Charakter, den du kontrollierst, die Bauerklasse und so weiter. Wir werden diese in diesem Abschnitt des Kurses weiter untersuchen . Wir sehen uns im nächsten Video. 98. Spielmodus (Teil #1): In diesem Video ist es unser Ziel, mehr über die Bedeutung des Spielmodus-Blueprints in Unreal zu erfahren. Wir werden lernen, was er tut, wie man einen erstellt und wie wir unserem Projekt mitteilen können, dass es dieses Asset verwenden soll. Jetzt haben wir seit Beginn dieses gesamten Kurses einen Spielmodus-Blueprint in unseren Projekteinstellungen . Jetzt, als wir dieses Projekt erstellt haben, verwenden wir die Third-Person-Vorlage. Und in unserem Third-Person-Blueprints-Ordner befand sich dieser BP-Spielmodus für Dritte. Wenn Sie unter Ihre Einstellungen, Projekteinstellungen, gelangen, können Sie im Abschnitt Karten und Modi sehen , dass der Standard-Gateway-Modus automatisch als BP, Third-Person-Spielmodus, festgelegt wurde . Es war also die ganze Zeit einer hier. Was ist nun der Gamow-Blueprint? Nun, es ist eine von zwei Hauptklassen , die sich mit Informationen über das Spiel befassen. Der andere ist der Game State Blueprint , ein weiterer Framework-Blueprint hier unten. Jetzt sind Spielmodi darauf ausgelegt, die Regeln Ihres Spiels zu definieren und umzusetzen. Einige Beispiele sind die Anzahl der erlaubten Spieler, die Spawn- und Reaktionsfunktionen der Spieler, die zwischen den Levels wechseln , so etwas. Jetzt bestimmt der Spielmodus auch andere Standardklassen in Ihrem Spiel verwendet werden. Um diesen Punkt hier nach Hause zu bringen, gehe ich zurück zu meinem Leveleditor hier und doppelklicke auf unseren Third-Person-Spielmodus. Wenn Sie dies sehen, ist dies ein sogenannter Nur-Daten-Blueprint. Aber auch hier können wir in diesem Third-Person-Spielmodus sehen , hier sind unsere verschiedenen anderen Framework-Blueprints wie unsere Player-Controller-Klasse. Das haben wir früher im Kurs erstellt. Und unsere Standard-Pfandklasse sind BP, ThirdPersonCharacter innerhalb Ihres Gamow-Blueprints. Hier setzen Sie tatsächlich den ganzen Rest Ihres Fußes ein, Ihre Framework-Blaupausen. Sie können dies hier oder in Ihren Projekteinstellungen tun. Wenn Sie es an einer Stelle ändern, ändern Sie es an der anderen. Jetzt können Sie nur zu Ihrer Information den sogenannten vollständigen Blueprint-Editor öffnen , indem hier klicken, falls Sie ihn jemals sehen. Aber selbst hier drin, Ihrem Third-Person-Spiel oder Ihrer Blaupause, wenn Sie hier oben Klassenstandard ausgewählt haben, finden Sie hier all Ihre verschiedenen Framework-Blueprints. Auch diese sind mit deinem Spielmodus-Blueprint verknüpft . Jetzt habe ich vorhin erwähnt, dass der Gamow-Blueprint eine von zwei Klassen ist, bei denen Informationen über Ihr Spiel behandelt werden, die andere ist der Spielstatus. Der Spielmodus existiert also nur auf dem Server, während das Spiel diesen Typ genau dort angibt. Sie finden es in Ihren Projekteinstellungen direkt dort, was auf dem Server vorhanden ist und auf alle Clients repliziert wird. Ordnung, lassen Sie uns unseren eigenen Gamow-Blueprint erstellen und ihn dann hier in unseren Projekteinstellungen festlegen. Um das zu tun, gehe ich zurück zu unserem Level-Editor. Nun, früher im Kurs unter meinem Skriptordner, habe ich einen Ordner erstellt, indem ich mit der rechten Maustaste hier, neuer Ordner, geklickt habe. Ich habe es Framework genannt. Jetzt habe ich einen unserer Framework-Blueprints früher im Kurs erstellt unserer Framework-Blueprints früher im , der Player-Controller-Blueprint ist. Das habe ich während der Veranstaltung erstellt. Beginnen Sie mit dem Cursor über Video Wenn Sie das überprüfen möchten. Obwohl wir bald über Player-Controller sprechen werden , werde ich in diesem Verzeichnis einen brandneuen Spielmodus erstellen. Klicken Sie also mit der rechten Maustaste auf eine leere Blueprint-Klasse. Und genau hier in unserer ausgewählten Elternklasse können wir einen neuen Spielmodus wählen. Es ist bekannt als Game Mode Base. Und es heißt sogar, dass dies das gespielte Spiel, seine Regeln, die Wertung usw. definiert . Darauf klicken wir. Ich nenne das unseren BP-Unterstrich-Spielmodus. Nachdem das erstellt wurde, klicke ich mit der rechten Maustaste und speichere es sofort. Control plus S kann das auch speichern. Und ich kann das in meinen Projekteinstellungen einbauen. Auch hier können Sie hier und hier auf Ihre Projekteinstellungen zugreifen . Unter Karten und Modi befindet sich der Standard-Spielmodus. Ich werde das in meinen BP-Spielmodus ändern. Beachten Sie nun, dass, sobald ich das getan habe, das überprüft habe, automatisch der Rest meiner Framework-Blueprints festgelegt wird . Jetzt ist mein ThirdPersonCharacter nicht mehr hier. Jetzt habe ich das zusammen mit meinem Player-Controller verwendet , den ich zuvor gemacht habe. Also werde ich die wieder hier reinbringen wollen. Also werde ich meinen Third-Person-Spielmodus schließen , den ich hier oben geöffnet habe. Schließ das aus. Und ich werde hier meinen BP-Schwulenmodus öffnen. Beachten Sie also, dass, wenn ich meine Default Pawn Class in meinem gerade erstellten BP-Spielmodus ändere, wenn ich sie wieder in BP ThirdPersonCharacter ändere, wenn ich sie hier wieder in meinen Projekteinstellungen ändere, unter Default Pawn Class wurde es auch hier geändert. Wenn ich meinen Player-Controller ändere, ist dies der Player-Controller , den ich zuvor im Kurs erstellt habe. Der Bp-Player-Controller beginnt im Ereignis den Cursor über Video. Wenn ich das hier ändere, meine Projekteinstellungen , bp player controller. Und ich schaue in meinen BP-Spielmodus. Sie können sehen, dass sich diese Änderung auch hier widerspiegelt. Also änderst du es an einem Ort, du änderst es an dem anderen. Ich werde weitermachen und das hier speichern. Beachten Sie, dass dies nicht der einzige Ort ist , an dem ich all diese Informationen hätte bearbeiten oder sogar meinen Spielmodus selbst einstellen können, Bacchae by Level Editor. Wenn ich hier unter diesem Blueprints-Button klicken würde, kannst du die Projekteinstellungen und den Spielmodus sehen. Ich könnte von hier aus einen Spielmodus erstellen. Ich kann meinen Spielmodus von hier aus bearbeiten. Und unten habe ich auch meine verschiedenen Spielmodusklassen. Also könnte ich z.B. einen Player-Controller von hier auswählen . Ich könnte von hier aus einen Player-Controller erstellen. Alle möglichen Optionen unter diesem Blueprints-Button hier oben. diese Weise können Sie auf Ihren Spielmodus zugreifen, Ihr Spiel bearbeiten, ein neues erstellen alle Framework-Blueprints ändern , die darin vorhanden sind. Ordnung, jetzt ein Beispiel für Anwendungsfall eines Spielmodus-Blueprints. Ich brauche eine Triggerlautstärke und ich habe eine neben meinem Level hier. Aber wenn Sie ein Trigger-Volume oder eine Trigger-Box erhalten möchten , dasselbe. Sie können hier klicken. Ich komme gerne unter die Basic Trigger Box. Mach weiter und lass es in dein Level fallen. Und wenn es dann im Bereich Details ausgewählt ist, können Sie Ihre Box-Ausdehnung festlegen. Ich habe 100 auf der ganzen Linie. Ich habe die Strichstärke auf zehn eingestellt. Und dann habe ich auch unter dem Rendering-Bereich Schauspieler versteckt und Spiele ausgeschaltet, damit ich diese Triggerlautstärke tatsächlich sehen kann . Jetzt werde ich in meinem alten Blueprint eine Variable erstellen. also unter den Variablenbereich komme auf diesen Plus-Button klicke, nenne ich diese Ebenen. Und drüben im Details-Bereich hier oben werde ich meinen Variablentyp ändern, zumindest die erste Hälfte davon in Integer. Und dann klicke ich auf dieses kleine Dropdown direkt daneben, weil ich hier den Typ ändern werde , den Containertyp in einen Kartencontainertyp. Dadurch kann ich ein Schlüsselwertpaar erstellen. Wenn Sie das Video über Map-Variablencontainer nicht gesehen haben, ist dies ein guter Zeitpunkt, dies jetzt zu überprüfen, andernfalls werde ich weitermachen. Unser Schlüssel hier wird also vom Integer-Typ sein . R-Wert wird hier vom Namenstyp sein. Ich kompiliere das und füge zwei Schlüsselwertpaare hinzu. Das erste, was wir hinzufügen werden, ist das Klicken auf diesen Plus-Button. Und ich werde diesen ersten auf Level eins setzen. Und ich werde den Wert hier als Startermap festlegen. Und dann klicke ich noch einmal auf den Plus-Button. Ich sage, Ebene zwei wird mit einem minimalen Unterstrich verknüpft . Nun, wenn diese bekannt vorkommen, diese beiden Maps-Namen, das liegt daran, dass ich in unserem Starter-Inhalt, Maps, zwei Maps mit diesem Namen habe, eine Startermap, eine, minimale Standardeinstellungen. Sie werden feststellen, dass es ein bisschen anders ist, wenn Sie in meiner Variablen für Startermap schreiben, aber das spielt keine Rolle. Nicht für Namen, nicht für brennende Variablentypen. Das wird also alles gut und gut. Ich werde das zusammenstellen und speichern sehr wichtig ist, dass Sie das für diesen nächsten Schritt tun. Und als Nächstes werde ich hier zu meinem Level-Editor zurückkehren . Wir haben unsere Triggerbox. Stellen Sie sicher, dass Sie dies für unseren nächsten Schritt hier ausgewählt haben. Und wenn wir hier oben unter unseren Blueprint-Button kommen, klicken wir auf diesen offenen Level-Blueprint. Stellen Sie sicher, dass Sie Ihre Triggerbox hier ausgewählt haben Open Level Blueprint. Und wir klicken mit der rechten Maustaste und etwas leeren Bereich. Wir werden ein Ereignis für diese Triggerbox hinzufügen, wenn wir anfangen, es zu überlappen, wollen wir herausfinden, ob der andere Schauspieler unser ThirdPersonCharacter war. Also Cast to ThirdPersonCharacter, wir haben das 1 Million Mal gemacht. Und wenn es tatsächlich unser ThirdPersonCharacter war , der uns überlappt hat, möchten wir innerhalb unseres Spielmodus auf einige Informationen zugreifen . Jetzt können wir dies tun, indem wir mit der rechten Maustaste klicken und etwas leeres Feld eingeben und den Spielmodus abrufen eingeben. Du denkst vielleicht: Okay, großartig. Wir können jetzt mit diesem Hinweis hier darauf zugreifen. Nun, warum ziehe ich mich nicht einfach hier raus und sehe, ob ich auf diese Ebenenvariable zugreifen kann , die hier drin lebt. Also lass uns weitermachen und das versuchen, richtig? Ziehen wir hier raus und geben Levels ein. Und ich sehe diese Variable hier nirgends. Nun, das liegt daran, dass wir in den RBP-Spielmodus wechseln müssen um tatsächlich auf die Levelvariable zugreifen zu können , die sich darin befindet. Also lasst uns dieses Medikament hier ausprobieren. In den BP-Spielmodus wechseln. Das ist das Gamow , das wir gerade geschaffen haben. Wenn Sie also ein Setup wie dieses haben, können Sie jetzt hier aus Ihrem SBP-Spielmodus-Bereich ziehen , Level eingeben und genau hier unten können Sie Ihre Level, Ihren Schlüsselwert, abrufen Paare. Wir ziehen uns hier raus. Ich tippe Bind ein. Und ich werde sagen, wenn wir anfangen, uns zu überschneiden, wollen wir Look Nummer zwei finden dort Look Nummer zwei finden, während wir hier darüber sprechen, indem ich die Nummer zwei einfüge , ist, dass wir auf Ebene genau hier zugreifen wollen, und wir wollen dann den Kartennamen öffnen , der mit Ebene zwei verknüpft ist. Also setzen wir Nummer zwei hier ein. Und ich ziehe mich hier raus und tippe Open Level mit Namen ein. Sie können sehen, dass die Ausgabe hier ein Namensvariablentyp ist, das ist dieser Name genau hier, minimale Standardwerte. Wenn wir nun diese Triggerbox überlappen, zu unserem alten Entwurf des Spiels übergehen und sagen: Hey, Jay-Modus, bestimmst du die Regeln unseres Spiels. Und diese Regel legt fest, dass ich, wenn ich diese Triggerbox überschneide, auf Ebene zwei gehe. Kompilieren wir das. Lass uns sparen. Lass uns weitermachen und hier spielen. Setze mein Debug-Objekt. Klar. Sie können also sehen, dass das Skript ausgelöst sobald ich das überschneide. Und los geht's. Da gibt es minimale Standardeinstellungen. Das neue Level. 99. Spielmodus (Teil #2): Ordnung, versuchen wir es mit einem anderen Beispiel. Dieses Mal versuchen wir, dem Spieler zu antworten. Deshalb beginne ich meinem Charakter-Blueprint für die dritte Person. Unter Third-Person-Bauplänen, Third-Person-Charakter. Wir machen hier zuerst ein bisschen Drehbuch. Das erste, was wir tun werden, ist einen Schlüssel reinzubringen. Mal sehen, was wir alle hier haben. Wir benutzen die vier Schlüssel. Es sieht so aus, als hätten wir davon nicht Gebrauch gemacht. Also klicke ich mit der rechten Maustaste auf einen leeren Bereich und tippe vier ein. Lass uns die Tastatur machen. Und wir werden sagen, wenn wir die F4-Taste drücken, wir einfach den Schauspieler, zerstören wir einfach den Schauspieler, also uns selbst. also darauf drängen, werden wir uns selbst zerstören. Großartig. Das ist alles, was für diesen nächsten Schritt benötigt wird. Also kompiliere und speichere das. jetzt in unserem BP-Spielmodus Gehen Sie jetzt in unserem BP-Spielmodus dort rein. Wir gehen weiter in den Event Graph von hier. Wir werden etwas außerhalb des Event-Ticks machen. Sie müssen immer ein bisschen vorsichtig sein , wenn Sie Event Tick verwenden. Sie können Ihr Spiel bork machen, indem Sie es zu viel vom Event-Tick entfernen. Aber für akademische Zwecke werde ich diese Tatsache nutzen. Wenn ich unter die Klassenstandardwerte falle, sage ich, dass unser Tick-Intervall alle 1 s sein wird . Wir müssen nicht jeden Frame nehmen. Also sagen wir alle 1 s. Ich klicke mit der rechten Maustaste und etwas leeres Feld, erhalte den Spielercharakter. Wir werden das dann in die Länge ziehen und auf unseren Third-Person-Charakter übertragen. Dann ziehen wir uns hier raus und geben Destroyed ein. Nun, wenn ich anfange, Destroyed einzutippen, hatte ich diese Zuweisung auf Destroyed. Das ist das, was ich suche, ein Schild auf Destroyed. Wenn ich jetzt darauf klicke, bringe ich zwei Knoten, einen Bind-Knoten, sowie ein benutzerdefiniertes Ereignis ein. Ich werde beschreiben, was hier in einem Moment passiert und das so einbinden wird. Und ich werde diesen benutzerdefinierten Ereignisnamen als solchen belassen. Nun, wenn Ihnen das alles bekannt vorkommt, diese Bindung an dieses benutzerdefinierte Ereignis. Das liegt daran , dass dies ein Setup ist , das wir verwenden, wenn wir über Event-Dispatcher sprechen , um auf dieses Ereignis zu achten , in diesem Fall für unseren ThirdPersonCharacter, den wir abonnieren unser ThirdPersonCharacter befindet sich im zerstörten Event-Dispatcher Das ist im Grunde das, was wir tun. Sie sagen sich vielleicht: Warte mal. In unserem ThirdPersonCharacter haben wir überhaupt keinen Event Dispatcher erstellt. Nun, wenn ich zurück zu meinem ThirdPersonCharacter gehe weiter nach unten zu meinen Event-Dispatchern scrolle, kann ich unter Event Dispatcher-Spiel tatsächlich einen Dispatcher für auf Destroyed finden . Das wird jetzt aufgerufen, wenn ich den Schauspieler vernichte. Wenn Sie hier unten nichts davon sehen, liegt das daran, dass Sie auf dieses Zahnradsymbol klicken und das vererbte Symbol anzeigen müssen . Wenn Sie das ausschalten, zeigen Sie nicht geerbt an, Sie werden es nicht sehen. Dies ist ein vererbter Event Dispatcher , der von der übergeordneten Klasse Wenn Sie es also im ThirdPersonCharacter Event Dispatchers-Spiel, diesem OnDestroy, einschalten ThirdPersonCharacter Event Dispatchers-Spiel, , wird dies aufgerufen. Das sendet ein Signal aus, wenn wir unseren Charakter hier in unserem Spielmodus zerstören. Was wir hier tun, ist, dass wir uns anmelden, wir achten darauf, dass dies bei einem zerstörten Ereignis passiert. Und wenn das passiert, wird es losgehen und sagen, dass der nächste Knoten alles tun soll, was wir wollen. Was wir jetzt tun wollen, ist zu reagieren, wir wollen mit unseren Spielern neu starten. Eine Möglichkeit, dies zu tun ist mit der rechten Maustaste und einem leeren Platztyp im Git-Player-Controller. Und wenn wir in unseren generischen Player-Controller greifen , noden Sie hier und suchen nach einem Neustart-Player. Es gibt einen Funktionsknoten, der sich auf Ihren Player-Controller bezieht . Dadurch wird Ihr Spieler an Ihrem Startschauspielerstandort neu gestartet. Dieses Setup hier wird also ausreichen. Schauen wir uns das an. Ich kompiliere und speichere im Spiel. Es waren also die vier Schlüssel , die uns vernichten werden. Und wenn wir zerstört sind, werden wir gleich an dieser Stelle reagieren. Also lass mich von dieser Stelle weglaufen. Die vier Schlüssel. Ich antworte an dieser Stelle, tippe auf einen Fremdschlüssel, antworte auf diese Stelle und so weiter. Nun, für diejenigen unter Ihnen, die sagen: Hey, warum verwenden wir hier Event Tick? Nun, wenn ich das getan habe, begann ein Event zu spielen Lass uns weitermachen und Event Begin Play geben. Lass uns beginnen, Event beenden, spielen und versuchen. Was würde hier passieren? Und lass uns das einfach deaktivieren. Hören wir jetzt auf dieses OnDestroy-Ereignis. Sobald wir hier anfangen zu spielen, ist das großartig. Aber dass das Abhören dieses Ereignisses bereits stattgefunden hat. Das wird also nur dann losgehen wenn dieses Ereignis einmal eingehalten wird. wir mit dem Spielen beginnen, hören wir genau dieses eine Mal darauf. Wenn ich hier also die Taste F4 drücke, rosettiert es uns einmal zurück. Aber wenn ich die Taste F4 erneut drücke, passiert das nicht. Das liegt daran, dass wir zu Beginn des Spiels mit Event-Tick zum ersten Mal zugehört haben. Denken Sie daran, wir haben jede Sekunde darauf geachtet. So haben wir unseren Event-Tick innerhalb unserer Klassenstandardwerte eingerichtet , in Ordnung, einige Hinweise zum Spielmodus, um dieses Video zu beenden. Das Spiel kann eine beliebige Anzahl von Spielmodi haben. Wir haben jeweils nur ein Setup in unseren Projekteinstellungen, Ihr primärer Spielmodus ist in Ihren Projekteinstellungen eingerichtet. Denken Sie jedoch daran, dass Sie außer Kraft setzen können , welcher Spielmodus in Ihren Welteinstellungen verwendet wird. Und das findest du unter Window World Settings, genau dort. Es ist immer möglich, den Spielmodus in Ihren Projekteinstellungen zu überschreiben . Im Spielmodus-Blueprint legen Sie die Regeln für Ihr Spiel fest. Dinge wie Reaktionsorte, Dinge wie das Level, auf das man als nächstes reisen soll, Dinge wie die Anzahl der zulässigen Spieler , so etwas. Der Spielemodus ist keine gute Blaupause zum Speichern von Variablen , die Daten von einer Ebene zur nächsten übertragen müssen. Dinge wie Leben oder Punkte. Dies liegt daran, dass beim Öffnen eines neuen Levels alle Variablen, die im Spielmodus erstellt und gespeichert wurden, oder auf ihre ursprünglichen Werte zurückgesetzt werden. Und das möchte ich hier kurz demonstrieren , bevor wir dieses Video beenden. Ordnung, nehmen wir an, dass dies in unserem BP-Spielmodus ein großartiger Ort ist, um zu speichern, wie viele Leben es gibt. Charakter kann Spoiler-Alarm haben. Das ist es nicht, aber spielen Sie einfach unter unserem Variablenbereich mit, Sie klicken auf diesen Plus-Button. Ich nenne das Leben. Und hier können Sie sicherstellen, dass es eine einzelne Variable vom Typ Integer gesetzt ist. Ich setze meine Standardlebensdauer hier auf fünf. Der Grund, warum meins als Fünfer aufgetaucht weil ich das Video dort geschnitten habe, habe es im Voraus neu erstellt. Jetzt werde ich das kompilieren und sehr wichtig speichern, um das zu tun. Als nächstes werde ich es so machen, dass ich innerhalb meines BP-Third-Person-Charakters dekrementiere, wie viele Leben wir in unserem Spielmodus haben. Also ThirdPerson-Charakter. Ich klicke mit der rechten Maustaste. Ich glaube nicht, dass ich irgendwas mit den sechs Tasten mache. Was wir von hier aus tun werden, ist mit der rechten Maustaste auf den Spielmodus zu klicken. Wir werden in unseren BP-Spielmodus wechseln. Und wenn wir das getan haben, können wir hier hineingreifen und herausfinden, wie viele Leben wir für sie haben. Lass uns unser Leben bekommen und werden davon austrocknen und Dekremente eingeben. Das ist irgendwie ein besonderer Knotenpunkt , da wir hier unser Leben bekommen. Wir haben fünf, das wird einen dekrementieren, einen davon subtrahieren und dann wird es ihn zurückwerfen. Es ist also nicht nötig, auch hier Leben zu setzen. Also gehen wir auf 54321 usw. Das wäre großartig. Wenn das alles passiert, lass mich weitermachen und das kompilieren. Speichern. Denken Sie daran, dass ich es in meinem Level-Blueprint so gestaltet habe, dass ich mich auf Ebene zwei transportiere, wenn ich diese Triggerbox überschneide . Nachdem ich auf Level zu gebracht habe, wird mein Third-Person-Charakter mitkommen, ich drücke die Sechs-Taste und sehe, wie viele Leben wir haben. Das wird also unser Beweis dafür sein , dass Soaring in unserem Spielmodus lebt. Keine gute Idee, da diese Variablen auf ihre Standardwerte zurückgesetzt werden , wenn Sie Ebenen ändern. Los geht's. Also klicke und spiel. Ich drücke diese Sechs-Taste. Wir können sehen, nun, eigentlich weißt du, was ich tun muss, ich muss das auf dem Bildschirm ausdrucken. Ziehen wir uns hier raus. Zeichenkette drucken. Drucken wir diese Ergebnisse aus. So. Kompilieren, speichern und spielen. Setze meine Debug-Option auf meinen ThirdPersonCharacter. Wenn ich jetzt die Sechs-Taste drücke, 4321, habe ich sozusagen noch ein Leben übrig. Ich werde das überlappen. Wir gehen auf ein anderes Level. Wenn ich jetzt die Sechs-Taste drücke, würden Sie annehmen, dass ich ein Leben hatte, ich sollte nicht auf Null sinken, aber 4321, diese Lebensvariable, wird auf Null zurückgesetzt. Also nur ein bisschen Nuance, um es mit dem Game-Modus-Blueprint zu verstehen. Alle Variablen, die Sie hier festlegen, werden auf sie gesetzt, sie werden auf ihre Standardwerte zurückgesetzt falls Sie jemals die Stufen ändern. Ordnung Leute, das wird alles für diese Diskussion über Game-Modus-Blueprints tun . Es ist der Blueprint, der andere Framework-Blueprints hier innerhalb Ihrer Klassenstandardwerte festlegt andere Framework-Blueprints hier . Und es ist ein großartiger Ort, um Regeln für Ihr Spiel festzulegen, z. B. die Antwortfunktion. Das macht alles für dieses Video. Wir sehen uns im nächsten. 100. Pfand: Willkommen und Fortsetzung unserer Diskussion über Rahmenpläne. Unser Ziel in diesem Video ist es zu erfahren, was ein Bauerklassen-Blueprint ist. Wie man einen erstellt, wie man einen einrichtet , damit unser Projekt weiß, dass er ihn verwenden muss wird Pawn Class Blueprint als Standard-Avatar erstellt , den wir steuern möchten. Lassen Sie uns also darüber sprechen, was zum Teufel ein Bauerklassen-Blueprint alles ein Teich ist, ein Schauspieler ist, der besessen werden kann und Input erhalten kann. Es ist die physische Repräsentation eines Spielers oder einer KI-Entität in der Welt. Jetzt können Bauern humanoid sein, ebenso wie unsere Third-Person-Charaktere , die wir bis zu diesem Zeitpunkt im Kurs kontrolliert haben . Oder es ist vielleicht nicht humanoid. Es könnte also so etwas wie ein Auto oder Raumschiff sein, ein rollender Ball, so etwas, das man kontrollieren kann. Ordnung, lass uns weitermachen und eine Pfandklasse erstellen. Und ich könnte das sofort von hier aus tun in unseren Projekteinstellungen, Karten und Modi, ausgewähltem Spielmodus-Dropdown, indem ich auf diesen Plus-Button direkt neben Default Pawn Class klicke, ich könnte Erstellen Sie mit dieser Methode den richtigen Blueprint. Ich wähle einfach einen Ordner aus. Ich würde es speichern wollen und so weiter. Ich werde dies jedoch nicht nur tun, um Ihnen zu zeigen wie wir das hier in unserem Level-Editor erstellen können Ich werde unter meinen Scripting-Framework-Ordner kommen. Und wenn ich hier mit der rechten Maustaste reinklicke, kann ich auch in die Blueprint-Klasse kommen. Und du hast dieses Fenster 1 Million Mal gesehen, wähle eine Elternklasse. Eine der am häufigsten zu erstellenden Klassen ist eine Pfandklasse. Der zweite hier unten, und es heißt, ein Bauer ist ein Schauspieler , der besessen werden kann und Eingaben von einem Controller erhalten kann. Lass uns weitermachen und hier den Bauern anklicken. Und ich nenne diesen Kerl BP Underscore Pawn. Und dann doppelklicke ich auf m2 und öffne ihn sofort. Wir werden ein paar Sachen drüben im Komponenten-Panel einrichten . Das erste, was wir hier hinzufügen werden, klicken Sie unter Komponenten auf Hinzufügen, ist, dass wir ein statisches Netz hinzufügen. Und drüben im Bereich Details habe ich ein bestimmtes statisches Netz im Sinn. Es ist HMD, wonach ich suchen möchte. Ich suche nach diesem generischen HMD. Nun, das ist etwas, das Sie in Ihrem Triebwerksweg gefunden haben. Wenn Sie dies also nicht sehen und Hause mitspielen möchten, klicken Sie auf das Zahnradsymbol und stellen Sie sicher, dass Show Engine Content aktiviert ist. Das wird wie ein VR-Headset aussehen. Wir werden einen von denen kontrollieren. Ich schicke meine Waage hierher, 255.5 mit eingeschaltetem Schlosssymbol, ich kann einfach eine davon ändern. Ich wähle hier die mittlere aus, die Y-Skala, klicke auf F5. Dann wenn ich die Eingabetaste drücke, weil ich das Schlosssymbol hier drüben eingestellt habe. Wenn Sie die Eingabetaste drücken, wird sie auf der ganzen Linie auf fünf gesetzt . Ordnung, ich werde auch das Material dafür auf Chrome ändern . Ich mache eine Chromkugel. Also werden wir, wir werden so etwas steuern. Das ist aufregend. Ordnung, nächste Komponente möchte ich hier hinzufügen. Stellen Sie sicher, dass wir unsere standardmäßige gesehene Route ausgewählt haben. Also so funktioniert es. Der Standard-Senior für alle anderen Komponenten , die Sie hinzufügen , wird daran angehängt. Im Moment ist unser statisches Netz also an unseren Standard-Szenenstamm angehängt. Das ist im Wesentlichen ein Punkt im Weltraum, an dem wir Dinge anhängen. Also wähle ich die standardmäßig gesehene Route, wähle den Federarm, den Federarm. Stell dir das als Selfie-Stick vor. Wir werden dies auch verwenden, um eine Kamerakomponente anzubringen, was möglicherweise bei ausgewählten federarmen Komponenten der Fall ist. Ich werde Kamerakomponenten hinzufügen und anbringen , keine Sony-Kamera, sondern nur alte Kamerakameras. Ein guter Name. Ich akzeptiere das, damit wir sehen können Kamera an unserem Federarm befestigt ist. Für die Kamera setze ich den Ort dafür auf 100. Lassen Sie mich meine Ansichtsfenster verkleinern. Ich kann sehen, dass die Rotation die wir setzen , negativ 20 sein wird. Und wenn ich meinen Federarm auswähle, kannst du jetzt sehen, dass die Kamera mitmacht , wenn ich meinen Sprüharm drehen Leertaste drücke und die Leertaste drücke. Der Grund, warum dies versetzt ist, ist nicht an diese rote Linie gebunden. Die Federarm-Kamera, die durch diese Armlänge bestimmt wird. Übrigens, du könntest das weiter, weiter weg, näher setzen , ich werde das auf 300 setzen. Der Grund, warum dies nicht an dieser roten Linie genau dort befestigt ist, ist, dass ich die Z-Höhe auf 100 eingestellt habe und wir sie um negative 20 Grad in Y-Richtung abwinkeln . guter Letzt werden wir eine schwimmende Bewegungskomponente Move are Floating Pond hinzufügen . Und es heißt in unserem kleinen Tool-Tipp hier, dass dies eine Bewegungskomponente ist, die eine einfache Bewegung für jede Bauerklasse ermöglicht . Ich sage, wir machen mit, ja, da wir das brauchen werden, um dieses riesige Headset zu bewegen. Jetzt werde ich hier schummeln. Ich werde ein Skript aus unserem ThirdPersonCharacter kopieren und unserem ThirdPersonCharacter in den Event Graph unserer Pons einfügen. Also habe ich hier meinen ThirdPerson-Charakter offen. Wenn du es vergessen hast oder dieser Typ ist Third-Person-Baupläne. Da ist dein ThirdPerson-Charakter. Was will ich hier drin stehlen? Nun, ich will stehlen. Die Bewegungssteuerung. Wo also Bewegung, Eingabe, Gamepad und Maus steht , klicke ich mit der linken ziehe all diese Control C. Ich gehe in das Ereignisdiagramm meines Teiches. Ich werde diese alle löschen und Control V machen, um sie hier einzufügen. Und dann gehe ich zurück zu meinem ThirdPersonCharacter. Und ich möchte mich umsehen können. Das wird also unsere Umschau-Steuerelemente für die Maus sein . Ich benutze eine Maus. Du hast ein Gamepad. Schauen Sie sich die Steuerung hier um. Ich werde den Kameraeingang stehlen, die Eingänge zum Umschauen für die Maus. Linksklick ziehen, Control C, zurück in meinen Teich, Control V. Nun, das ist alles gut und gut. Dadurch kann ich nach links und rechts schauen. Das Gieren und die Steigung hier ermöglichen es mir, auf und ab zu schauen. Allerdings muss ich hier etwas in meinen Klassenvorgaben meines Teiches ändern . In meinen Klassenstandards, Bauer, suche ich nach ein paar Kästchen zum Ankreuzen , und sie sind genau hier oben, wo es heißt, Controller-Rotationsneigung verwenden. Ich möchte sichergehen , dass das überprüft wird. Wo es heißt, verwenden Sie Controller-Drehbacke Ich möchte sicherstellen , dass das auch überprüft ist, damit ich meine Kamera nach oben und unten richten und auch nach links und rechts schauen kann. Ordnung, wenn das alles erledigt ist, werde ich kompilieren und speichern. Und damit ich das tatsächlich testen kann, muss ich hier meinen BP-Bauern einsetzen, um meine Standard-Pfandklasse zu sein. Jetzt könnte ich es hier machen. Aber nur um verschiedene Techniken zu zeigen, gehe ich hier zurück zu meinem Level-Editor. Ich habe diese Blaupause von Button genau hier oben. Also wähle ich aus, dass mein aktueller Spielmodus mein BP-Spielmodus ist. Lassen Sie mich einfach zu meinem Scripting-Framework-Ordner gehen. Sie können im letzten Video sehen, dass wir den BP-Spielmodus erstellt haben, indem Sie hier oben klicken. Das ist momentan mein Spielmodus. Wenn ich also in diesem Drop-down-Menü hier Pfand auswähle , ThirdPersonCharacter, lass uns eine neue Pfandklasse auswählen. Und ich werde mein B p danach wählen. Also werde ich es genau dort einstellen. Du kannst sehen, ob ich wieder reinkomme, komm hier runter, das ist jetzt mein neuer Teich. Wenn ich in den Spielmodus gehe, säuere ich mich durch Doppelklick darauf. Sie können hier sehen meine Standard-Pfandklasse jetzt geändert wurde. Und wenn Sie Ihre Projekteinstellungen ändern, können Sie auch hier sehen, dass Ihre Standard-Pfandklasse geändert wurde. Sie ändern es also an einem dieser drei Stellen. Es ändert es an den anderen Orten. Also jetzt, wenn ich hier auf den Play-Button klicke, werde ich nicht spawnen, da der ThirdPersonCharacter hier beim Spieler Schauspieler startet, ich werde als sein riesiges VR-Headset spawnen. Lass uns weitermachen und das mal spielen. Lass mich auch hier wieder in meinen Teich gehen. Sie können also sehen, wie dieses Skript losgeht. Also klicke ich hier auf „Spielen“. Da ist mein riesiges Headset. Lassen Sie mich mein Debug-Objekt als mein im BP-Teich gespawntes Objekt auswählen. Sie können also sehen, dass alles ununterbrochen losgeht. Die Eingangsachse biegt nach rechts ab. Lassen Sie mich das ein wenig näher betrachten. Diese feuern ununterbrochen ab. Die Eingangsachse bewegt sich vorwärts und rückwärts, bewegt sich nach rechts und links. Achsenereignisse werden kontinuierlich wie folgt ausgelöst. Mal sehen, ob ich mich bewegen kann. Wir können sehen, ich kann mich umschauen und die rechte Maustaste gedrückt halten. Links und rechts. Das ist Gieren, Pitch rauf und runter. W a S. Andy, es sieht aus, als würde ich mich bewegen. Finden Sie einfach heraus, dass wir jetzt einen Bauern haben, als den wir spielen können. Und da hast du es. Wenn Sie diese Komponenten in diesem Skript haben, können Sie auch Blaupausen für eine Klasse haben , die Sie in Ihrem Spiel steuern können. Natürlich musst du es in deinem Spielmodus einstellen, deine Projekteinstellungen in diesem Standardpawn Class-Slot. Ziemlich cool. In Ordnung, im zweiten Teil werden wir einen Charakterklassen-Blueprint erstellen. Eine Charakterklasse leitet sich von einer Bauerklasse ab. Wir sehen uns alle im nächsten Video. 101. Charakter: Ordnung, willkommen zurück. In diesem Video ist es unser Ziel, einen Charakterklassen-Blueprint von Grund auf neu zu erstellen . Jetzt ist die Charakterklasse eine Erweiterung der Bauerklasse, und es ist ein spezieller Bauertyp , der die Fähigkeit hat, herumzulaufen. Ich dachte, ich würde es hier in unsere Framework-Blueprint-Diskussion aufnehmen , weil innerhalb unserer Projekteinstellungen, in denen alle unsere Framework-Blueprints zu finden sind, sowie innerhalb unseres Spielmodus wo die Framework-Blueprints in Slotted in einem oder zu finden sind. Wir haben einen Slot für Default Pawn Class, und dort kann ein Charakterklassen-Blueprint entweder in einen Teich gesteckt werden oder ein Charakter kann da der Charakter aus der Bauerklasse stammt. Um diesen Punkt zu verdeutlichen , kehren wir in unseren Scripting-Framework-Ordner zurück . Und wir klicken mit der rechten Maustaste in einen leeren Bereich , in dem wir eine Blueprint-Klasse erstellen werden. Und genau hier in unserem Fenster „Elternklasse auswählen“ können wir sehen, ob wir einen Charakter auswählen. Es heißt, ein Charakter sei eine Art Teich, der die Fähigkeit beinhaltet, herumzulaufen. Und wenn wir unter den Abschnitt sind alle Klassen fallen überprüfen Sie die Hierarchie der verschiedenen Blueprint-Klassen. Unter der Schauspielerklasse. Wir können feststellen, dass ich gerade das Dreieck dort erweitert habe. Wir können die Pfandklasse finden. Der Bauer erbt vom Schauspieler. Und hier drinnen können wir sehen, dass die Charakterklasse vom Bauern erbt. Ich werde gleich hier oben den Charakter wählen. Ich nenne diesen BP-Unterstrich, Unterstrich weiblich. Dann doppelklicken wir darauf, um es zu öffnen. Und Sie können sehen, dass wir hier ein bisschen Arbeit vor uns haben weil wir in unserem Viewport nichts sehen. Also lasst uns weitermachen und loslegen. Das erste, was ich in unserem Charakter tun möchte, weibliche Blaupause für ihre Klassenstandardwerte. Ich möchte unter das Details-Bedienfeld kommen und wo es heißt, Controller-Rotationsgieren verwenden. Ich möchte das Häkchen entfernen. Notiz. Wenn es wahr bleibt, würde sich unser Charakter automatisch in die Richtung orientieren , in die wir schauen. Du weißt, wie du die Kamera um deinen Charakter drehen kannst. Nun, wenn du das wahr lassen würdest, würde dein Charakter automatisch auch in diese Richtung schauen. Ich möchte das Häkchen entfernen, weil ich möchte, dass unsere Kamera Charakter tatsächlich von Angesicht zu Angesicht gegenübersteht. Sie können damit experimentieren, wenn Sie möchten, wenn wir mit dem ganzen Prozess fertig sind. Ordnung, als nächstes wähle ich unser Mesh aus. Und drüben im Details-Bereich muss ich ein Skelettnetz einstecken. Lass uns weitermachen und Schuhe machen. Wir haben SKS, Manny, das ist die männliche Version, die ich machen werde S, K, M, Quinn. Es wird die weibliche Version sein , die hier geladen wird. Jetzt, während das geladen wird, werde ich auch in eine Animationsklasse einsteigen. Also werde ich im Anime-Unterricht nach ABP Quinn suchen. Und du wirst sehen, wie Quinn jetzt animiert. Außerdem muss ich mein Charakternetz hier ein wenig einstellen . Also setze ich den Standort, die z-Position, auf negativ 87. Ich werde damit sehr präzise sein. Das wird gut genug sein. Die Rotation werde ich auf negativ 90 setzen. Dieser blaue Pfeil zeigt Vorwärts an. Du willst also, dass dein Charakter einfach so nach vorne zeigt. Ordnung, als nächstes, wenn unsere Kapselkomponente ausgewählt ist, werde ich Federarmkomponenten hinzufügen. Eine Federarmkomponente ähnelt im Wesentlichen einem Selfie-Stick, obwohl es ein oder zwei Einstellungen gibt, die sehr nützlich sein können , um Dinge an Ihrer Kamera zu steuern. Ich lasse diesen Namen dort als Federarm und drüben im Detailbereich, ich möchte unter den Kameraeinstellungen hier finden, Pfandsteuerungsrotation verwenden. Ich möchte sichergehen , dass dies überprüft wird. Jetzt wird es so sein, dass sich die Kamera dreht, wenn wir die rechte Maustaste in unserem Spiel gedrückt halten und uns drehen , was wir wollen. Du kannst also auch mit dieser Einstellung herumspielen , sobald wir mit diesem Video fertig sind. Als nächstes möchte ich auswählen, wobei meine Federarmkomponenten hier ausgewählt sind. Möchte eine Kamera hinzufügen. Heutzutage Sydney Kamera, aber nur eine normale Kamera, und es sollte so eingerückt sein. Die Kamera ist auf diese Weise an Ihrem Federarm befestigt und im Wesentlichen am Ende Ihres Selfie-Sticks befestigt, sodass Sie meinen Federarm sehen können. Wenn ich die Zielarmlänge ändern würde, würde sich die Kamera mit ihm anpassen. Setzen Sie das vorerst auf die Standardeinstellung von 300 zurück. Wenn meine Kamera ausgewählt ist, möchte ich hier nichts ändern, obwohl ich hier darauf hinweisen werde , dass Sie, wenn Sie möchten, etwas wie Ihr Sichtfeld ändern können Einstellung. Viele Benutzer spielen gerne damit herum. Spielen Sie damit herum, finden Sie ein Sichtfeld , das Ihnen gefällt. Als Nächstes ändere ich hier meine Charakterbewegungskomponente. Ich habe hier eine, die „ Orient Rotation to Movement“ heißt . Jetzt gibt es eine ganze Reihe verschiedener Parameter innerhalb deiner Charakterbewegungskomponente , die die Bewegungseigenschaften deiner Charaktere steuern. Wenn ich nach diesem Publikum suche. Das ist die, nach der ich suche, Orient Rotation zwei Bewegungen. Ich möchte das überprüfen. dies überprüfe, orientiere ich mich daran, den Charakter so zu drehen, dass er sich in die Richtung bewegt , in die Sie gehen möchten. Ohne das wird es so sein, dass dein Charakter aussieht in eine Richtung gehen, während er sich tatsächlich in eine andere Richtung bewegt. Das ist also gut, um sicherzugehen , dass Sie überprüft wurden. Wenn ich als Nächstes zu unserem Event-Diagramm springe, kannst du sehen, dass ich hier kein Drehbuch habe , das steuert, wie sich mein Charakter bewegt. Ich werde im Interesse der Zeit schummeln. Also werde ich diese Knoten löschen . Wir werden in unseren ThirdPersonCharacter springen und dort einige Knoten stehlen , wie wir es im letzten Video getan haben. Wenn du also ThirdPersonCharacter nicht unter einem Third-Person-Charakter geöffnet hast , doppelklicken Blueprints auf deinen Third-Person-Charakter. Hier drin stehlen wir unsere Bewegungssteuerungen genau hier, all dieses Zeug, Linksklick, Ziehen, Kontrolle C, kommen in unseren Charakter, weiblich, Control V zum Einfügen. Dies wird unsere Vorwärts - und Rückwärtsbewegungen sowie unsere linken und rechten Bewegungen kontrollieren , sowie unsere linken und rechten Bewegungen unter unseren ThirdPerson-Charakter fallen. Wieder einmal werde ich jetzt meine Kamera-Eingabemaus stehlen. Wenn Sie ein Gamepad haben , mit dem Sie Ihr Spiel ebenfalls spielen möchten, Sie erwägen, es zu stehlen. Ich steuere es nur mit der Maus, also klicke ich mit der linken Maustaste und ziehe genau hier, kontrolliere C, komme unter Charakter weiblich, kontrolliere V. Und nachdem all das erledigt ist, lass uns weitermachen und kompilieren und sparen. In Ordnung, als nächstes werden wir unseren BP-Charakter weiblich als unsere Standard-Teichklasse eintragen. Gehen wir also zurück zu unserem Level-Editor hier. Und ich möchte das in eine Seite unserer Weltkulisse stellen. Ich werde jetzt unsere Weltkulisse außer Kraft setzen, unsere Projekteinstellungen. Ich benutze meinen BP-Spielmodus. Wenn ich diesen Spielmodus für mein gesamtes Projekt verwende, bestimmt dies die Framework-Blueprints, die für jedes Level, jede Map in meinem Projekt verwendet werden , es sei denn, ich überschreibe sie in meinen Welteinstellungen. Im Moment sagen meine Projekteinstellungen: Hey, wenn du auf die Wiedergabetaste klickst, wirst du deinen BP-Teich verwenden. Und das können wir sehen, wenn ich spiele. Da sind VR-Headsets für mein Kind. Das ist mein BP-Teich , den wir hier in unserem Framework-Ordner BP Pond erstellt haben. Ich möchte sagen, dass ich eine Weltkulisse bin. Ich werde es nur für diese Map ändern. Dadurch werden die Projekteinstellungen außer Kraft gesetzt. Dazu wähle ich in meinen Projekteinstellungen einen anderen Spielmodus . Ich habe gerade meinen BP-Spielmodus. Also sage ich für unsere Weltkulisse. Und wenn du das nicht geöffnet hast, kannst du unter Fenster gehen und deine Welteinstellungen direkt dort einschalten. Das wird dieses Panel ins Spiel bringen. Für unseren Spielmodus hier werde ich, sagen wir BP, den Third-Person-Spielmodus verwenden . Und während wir normalerweise den ThirdPerson-Charakter als Charakter haben den ThirdPerson-Charakter als , der durch Klicken auf Play mit Uhren herumrollt , steuern wir jetzt den ThirdPersonCharacter. Anstelle unseres BP-Bauern kann ich stattdessen sagen, lass uns unseren BP-Charakter weiblich verwenden. Nur um eine andere Möglichkeit zu zeigen , hier etwas einzufügen, könnte ich etwas aus der Dropdown-Liste auswählen. Allerdings könnte ich hier meinen BP-Charakter weiblich auswählen. Und wenn das ausgewählt ist, klicken Sie einfach auf diesen Pfeil hier, um die ausgewählte Säure aus dem Inhaltsbrowser zu verwenden. Und jetzt, wo dieser Slot drin ist, könnte ich meinen weiblichen BP-Charakter kontrollieren, Charakter weiblich. Und du kannst sehen, dass ich mich in die Richtung bewege , in die sich mein Charakter orientiert, oder mein Charakter ist in die Richtung ausgerichtet, in die ich mich bewegen möchte. Und ich bin auch in der Lage, auf die Kamera zuzulaufen , um eine Art Verbesserung zu zeigen. Einige dieser Checkboxen, Checkboxen, ließen mich einfach schnell hier raus. Wenn ich zu meinem BP-Charakter zurückkehren würde, weibliche Charakterbewegungskomponente und das Häkchen entfernen würde, Rotation auf Bewegungen ausrichten. Und dann klicke auf Play. Jetzt sieh dir das an. Wenn ich mich bewege, macht das mein Charakter. Sie orientieren sich nicht an der Richtung, in die ich mich bewegen möchte. Also werde ich weitermachen und die Charakterbewegungskomponente zurücksetzen . Lass uns das überprüfen. Weiter. Beachten Sie, dass wir dies in unserer Federarmkomponente überprüft haben. Ich muss den Suchfilter dort rückgängig machen. Wir hatten diese Jugend bei der Rotationseinstellung überprüft. Wenn ich das Häkchen deaktiviere und spiele und die rechte Maustaste gedrückt halte, was ich gerade versuche. Ich drehe mich nicht wirklich um meinen Charakter herum. Stattdessen bewegt und dreht sich die Kamera einfach von selbst, um in die Richtung zu schauen , in die sich mein Charakter bewegt. Das gefällt mir nicht unbedingt, also werde ich das noch einmal überprüfen. Und schließlich, wenn Sie sich an die Standardeinstellungen unserer Klasse erinnern , hatten wir es so gemacht, dass wir die Controller-Rotation nicht aktiviert haben. Ja, wenn wir den Scheck hätten, wenn wir ihn hätten. Und dann haben wir weitergespielt, ich werde mit WAS und D herumlaufen. Sie können sehen, wie Sie ein so gruseliges Ergebnis erhalten , das schrecklich aussieht. Ich kann es so drehen. Und mein Charakter wird skaten und einfach in die Richtung schauen, in die ich schaue. Ich mag das nicht wirklich. Deshalb bevorzuge ich es auch , das nicht zu kontrollieren. Ordnung, da hast du es. Wir haben einen Charakterklassen-Blueprint von Grund auf neu erstellt. das erstellt wurde, können Sie jeden Charakter oder Nachdem das erstellt wurde, können Sie jeden Charakter oder Teich in Ihre Standardklasse und den von Ihnen gewählten Spielmodus einfügen. Sie können hier in unseren Welteinstellungen sehen, wir den Spielmodus nur in dieser Karte außer Kraft setzen, nur in dieser Welt, die wir in unseren Projekteinstellungen festgelegt haben. Wenn wir hier in unseren Weltkulissen nichts zurückgesetzt hätten, würden die Projekteinstellungen die Pfandklasse bestimmen , die in dieser Karte verwendet würde. Das reicht aus, um dieses anzubieten, Leute, wir sehen uns im nächsten. 102. Player: Willkommen! In diesem Video ist es unser Ziel, mehr über die Rolle des Player-Controller-Blueprints im Gesamt-Setup unseres Gaming-Projekts zu erfahren. Und um einige Skripting-Konzepte zu untersuchen , die häufig mit Player-Controller-Blueprints in Verbindung gebracht werden. Nun, wenn ich in meine Einstellungen, meine Projekteinstellungen, in unseren Karten- und Modus-Sektion eintauchen würde. Wenn wir hier unseren selektiven Spielmodus erweitern, können wir die Player-Controller-Klasse finden. Jetzt können wir wieder einen Player-Controller hier oder in unserem Standard-Gateway-Modus einsetzen. Wenn wir etwas in unserem Standard-Gateway-Modus ändern , ist dies einer dieser Framework-Blueprints genau hier. Es wird es auch in unseren Projekteinstellungen ändern. Der Spielmodus ist also derjenige, der die Verhaftung des Frameworks bestimmt. Blaupausen ändern es an einer Stelle, wie hier. Es wird es in deinem Spielmodus ändern und umgekehrt. Wenn du es hier in deinem Spielmodus änderst, wie bei einem Player-Controller, wird es in deinen Projekteinstellungen geändert . Die Player-Controller-Klasse wird also im Mittelpunkt dieses Videos stehen. Diejenigen unter Ihnen, die seit Beginn dieses Videos den ganzen Weg mitgespielt haben , erinnern sich vielleicht daran, dass wir einen Player-Controller-Blueprint erstellt haben. Tatsächlich beginnen die Ereignisse im Video mit dem Titel „ Ereignisse“ mit dem Cursor. Wir haben den BP-Spieler-Controller erstellt. Und der Grund, warum wir das erstellt haben, ist, dass wir Ereignisse einschalten und anklicken und auch den Mauszeiger anzeigen können. Es gibt einige spezifische Dinge für einen Player-Controller-Blueprint, auf die wir früher im Kurs eingegangen sind, um sie dort zu zeigen. Aber jetzt, hier ist der Teil, in dem wir erklärt haben was zum Teufel ein Player-Controller überhaupt ist. Was Allzweck ist, ist im Rahmen von Unreal Engine-Blueprints. Nun, um besser zu verstehen, was zum Teufel ein Player-Controller-Blueprint in Unreal ist. Betrachten Sie dieses Szenario. Stellen Sie sich ein Spiel wie Lego Star Wars vor, in dem Sie eine ganze Reihe von Charakteren kontrollieren können, aber jeweils nur einen. Sie als Spieler haben Lust, einige Dinge, die Sie mit Ihrem Charakter und dem Spiel selbst machen möchten . Du, der Spieler , hast einen Controller. In diesem Fall sagen wir, dass es dieser Xbox-Controller ist. Jetzt spielst du das Spiel und kontrollierst jeweils nur einen Charakter. Nehmen wir an, du fängst hier als Yoda an. Sie können die A-Taste drücken, um sie zum Springen zu bringen. Sie können die X-Taste drücken, um ihn dazu zu bringen sein Lichtschwert zu schwingen, und so weiter. Nehmen wir nun jedoch an , Yoda stirbt. Tut mir leid, Yoda, du bist weg. Dieser Charakter ist weg. Jetzt besitzt dein Player-Controller , der durch diesen eigentlichen Controller dargestellt wird, einen neuen Charakter, in diesem Fall Anakin. Jetzt, wieder, mit Anakin, kannst du die A-Taste drücken, um zu springen, die X-Taste, um sein Lichtschwert zu führen, und so weiter. Aber dann, oh, und ich kann sterben. Also verabschiedet sich diese Charakterklasse. Ihr Player-Controller lebt jedoch weiter und bindet sich immer wieder an neue Spieler an. In diesem Fall kontrollieren Sie jetzt Konto Du Gu waren wieder einmal, du kannst die A-Taste drücken, um zu springen, die X-Taste drücken, um sein Lichtschwert zu schwingen, und so weiter. Und vielleicht möchten Sie sogar so etwas wie den Zugriff auf das Pausenmenü tun . Nun, wenn du einen Teil dieser Funktionalität innerhalb des Charakterklassen-Blueprints erstellen würdest, was passiert, wenn dein Charakter tot ist? Wie zum Beispiel, wenn du wieder hier wärst und Yoda kontrollierst? Und diese Funktionalität zum Pausieren des Spiels existierte in deinem Yoda-Charakterklassen-Blueprint. Nun, wenn er tot ist, gibt es keine Möglichkeit , das Spiel zu unterbrechen. Player-Controller-Blueprints sind während deiner Spielsitzung vorhanden . Und Sie können sich einen Player-Controller als die Marionettensaiten vorstellen , mit denen Sie Ihre Marionette, Ihre Charakterklasse, steuern. Also jede Art von gemeinsamer Funktionalität , die Sie zwischen Charakterklassen haben können , oder jede Funktionalität , die Sie für Sie, den Spieler selbst, haben möchten , wie das Pausieren des Spiels oder interagiert mit einem Menübildschirm. Diese Art von Funktionalität, die Sie in Ihrem Player-Controller-Blueprint ausbauen möchten . Kurz gesagt, Dinge, an die man sich bei einem Spieler-Controller erinnern sollte, Blueprint-Controller sind nicht-physische Schauspieler, die eine vom Teich oder einem Teich abgeleitete Klasse wie ein Charakter besitzen können . Standardmäßig gibt es eine Eins-zu-Eins-Beziehung zwischen Controllern, einem Spielercontroller und einem Bauern, auch bekannt als Charakter. Jeder Controller steuert jeweils nur einen Teich. Und Player-Controller eignen sich am besten, um benutzerorientierte Funktionen wie Aufrufen eines Pausenmenüs oder eines Inventarbildschirms Oder für gemeinsame Charakterfunktionen, wie das Schwingen eines Lichtschwerts, wenn all deine Charaktere so etwas können. Oder springen, wenn tatsächlich alle möglichen Charaktere auch springen können, jede Art von charakterspezifischer Funktionalität, diese Art von Funktionalität sollte in Ihrem Teich oder Charakter existieren . Klassen-Blueprint selbst und nicht der Player-Controller. Ordnung? Wenn Sie noch keinen Player-Controller-Blueprint haben, der von einem früheren Zeitpunkt im Kurs erstellt wurde. Sie können jetzt mit der rechten Maustaste eine erstellen. Player-Controller der Blueprint-Klasse. Und wir haben diesen Typen BP-Spieler-Controller genannt. Und noch einmal, Sie möchten dies in Ihr Framework integrieren. Sie können dies unter Ihren Projekteinstellungen tun, auf die Sie hier unter Einstellungen, Projekteinstellungen und unter Karten und Modi zugreifen Projekteinstellungen und unter Karten und Modi Sie können es direkt dort einfügen. Alternativ können Sie in Ihrem Spielmodus den Entwurf selbst erstellen. Und wieder einmal haben wir den BP Game Mode, der unser Projekt hier leitet. In diesem Asset selbst ist der Spielmodus-Blueprint. Drüben auf der rechten Seite können Sie Ihren Player-Controller genau dort einsetzen. Sie ändern es hier, Sie ändern es auch in Ihren Projekteinstellungen. Auch zurück in deinem Level-Editor, wenn du hier unter deine Blueprints-Schaltfläche kommst und unter Projekteinstellungen, Spielemodus, Spieler-Controller erweiterst. Hier können Sie Ihren aktuellen Player-Controller bearbeiten, einen brandneuen erstellen oder einen vorhandenen auswählen. Wenn Sie nun Ihren BP-Player-Controller hier öffnen, hatten wir zu Beginn des Kurses die Klassenstandardeinstellung in unserem BP-Spieler-Controller ausgewählt . Und hier haben wir überprüft ein Mauszeiger angezeigt werden kann, um Klickereignisse zu aktivieren und Mouseover-Ereignisse zu aktivieren. Wir können auch Touch-Events aktivieren. Es gibt also einige sehr spielspezifische Dinge, Möglichkeiten, mit Ihrem Spiel und Ihren Menüs zu interagieren , die sich in Ihrem Player-Controller-Blueprint befinden . Bevor dieses Video begann, habe ich einige Funktionen in unserem BP-Player-Controller erstellt . Ich wollte zeigen, wie wir einige Charakterfunktionen skripten können einige Charakterfunktionen innerhalb unseres Player-Controllers. Denke jetzt daran, dass wenn du ein Spiel spielst, dein Spieler-Controller an jeden Bauern anhängt, es ist, dass du Bauern oder Charakter kontrollierst, wann immer du es in deinem Standard eingerichtet hast . Pfandklasse. Jetzt ist mein Drehbuch hier, ich mache es so, dass ich, wenn ich die Up-Taste drücke, meinen aktuellen Spielercharakter erhalte, den ich spiele, und ich starte einfach den Charakter. Jetzt ist das Ziel hier ein Charakter, kein Teich. Das funktioniert also nur für Charaktere, die ich kontrolliere. Ich hätte diese Sprungfunktion auch aufrufen können, die auch in meinem Charakterklassen-Blueprint existiert. Aber ich wollte diesen Launch-Charakter machen , weil es cool ist. Und b, weil es eine andere charakterspezifische Funktion zeigt , die wir verwenden könnten. Du musst dir den Spielercharakter holen und herausziehen, wenn du der Erste bist, um diesen zu finden. Und alles was hier passieren wird ist welcher Charakter ich hier besitze. Wenn ich hier die Aufwärtstaste drücke, meinen Player-Controller-Blueprint, ich einfach den Charakter, den ich steuere mit diesem Wert in die Z-Achse. Das ist ein bisschen wie ein Supersprung. Wenn ich also nur hier spielen sollte, setze ich mein Debug. Einspruch gegen meinen Kreditspieler-Controller. Bring meinen Charakter noch einmal mit. Ich habe noch ein paar Charaktere hier draußen, die wir in Kürze verwenden werden. Wenn ich jetzt die Aufwärtstaste auf meiner Tastatur drücke, ist das wie ein Supersprung. Das beweist in der Tat, dass ich charakterspezifische Funktionen hier in meinem Player-Controller-Blueprint skripten kann charakterspezifische Funktionen hier . Ordnung, betrachte dieses Szenario jetzt wieder in meinem Level-Editor. Ich habe zwei weitere BP-Charakter-Frauen in meinem Level selbst platziert . Ich benenne sie einfach in Charakter weiblich grün und eine Figur weiblich rot um. Und ich ändere einfach die materielle Null, damit einer von ihnen grün ist. Und ich habe das getan, indem ich das Zeichennetz ausgewählt, das Element Null in Grün geändert und das andere ausgewählt Ich habe das Zeichennetz ausgewählt und Element Null zum Lesen geändert. Und dann habe ich mit jedem von ihnen ausgewählt, diesen nach dem anderen gemacht. Ich bin in meinen Level Blueprint gegangen und habe dieses Skript genau hier erstellt. Es gibt einen Hinweis auf meinen Charakter oder meine Frau. Ich glaube, das ist der richtige. Ich muss das aktualisieren. Ich klicke mit der rechten Maustaste darauf und aktualisiere diesen Knoten. Da ist das Rot, da ist das Grün. Solange du sie in deinem Level ausgewählt hast, wie dein rotes hier, kannst du zurück zum Level Blueprint gehen, kannst du zurück zum Level Blueprint gehen Alt-Taste gedrückt halten und mit der linken Maustaste klicken. Das Gleiche könntest du auch mit dem weiblichen Grün machen. Und beachte mein Setup hier. Wenn ich einen Get-Player-Controller-Knoten einbringe, kann ich Knoten finden, Funktionsknoten, um ein Ziel nicht zu besetzen und dann ein anderes Ziel zu besitzen. Also sieh dir diesen Griff an, den ich hier in meinem Level-Blueprint habe. Wenn ich beim ersten Mal die Drei-Taste drücke , schießen wir aus dieser Ausgabe heraus. In diesem Fall holen wir uns unseren Player-Controller. Das ist der Spieler-Controller den wir gerade verwenden, unseren BP-Spieler-Controller, wir werden jedes Ziel besitzen , das er kontrolliert hat. In diesem Fall wird es unscheinbar sein. In meiner Welt spawne ich derzeit in einer weiblichen BP-Figur. Es wird diese weibliche Figur unscheinbar sein. Dann werde gesagt, er solle besitzen. Dieser Spieler-Controller überträgt den Besitz über zwei. Mein BP-Charakter, weibliches Rot. ich dann das zweite Mal die Drei-Taste drücke, schießen wir aus dem B-Ausgangspin, weil das Flipflop a, dann B als A als B geht dann B als A als B Wenn Sie also das zweite Mal die Drei-Taste drücken , wird aus dem Strahl schießen. Wir werden, ich bin besessen wann immer wir jetzt kontrollieren, was in diesem Fall der rote Charakter sein wird. Und wir werden dann den Besitz auf die Figur weiblich grün übertragen . Unser Spieler-Controller soll also einen Charakter besitzen und einen neuen besitzen. Also lass uns das hier oben links besprechen. Ich klicke auf Play. Bringen Sie unser Debug-Objekt unserer Test-Map ein. Und schau es dir an. Wenn ich also jetzt auch die Up-Taste drücke, habe ich diese Supersprung-Funktionalität in meinen Spielercharakter integriert. Das ist eine super Fähigkeit zum Springen . Das wird auf jeden Charakter übertragen, den ich besitze. Also drücke ich die Taste hoch. Ordnung, jetzt drücke ich während des Fluges die Drei-Taste. Ich habe den Besitz auf meinen roten Charakter übertragen . Schau dir das an. Wenn ich hier die Aufwärtstaste drücke, meine Player-Controller-Funktionalität übertragen und Sie können meine anderen sehen, Cotton Flight, sie drücken die Drei-Taste. Ich drücke die Taste F3. Als ich im Flug war, habe ich den Besitz übertragen indem der Spielercontroller jetzt meinen Charakter weiblich grün kontrolliert. Und natürlich wird auch die Funktionalität, die ich in meinem BP-Player-Controller eingebaut habe in meinem BP-Player-Controller , übertragen. Wenn ich also die Aufwärtstaste drücke während ich den grünen Charakter steuere, kann ich auch Super springen. Das ist eine Demonstration, die zeigt, dass in meinem BP-Player-Controller ich in meinem BP-Player-Controller Funktionen für jede Funktionalität entwickeln kann , die alle Charaktere teilen alle Teiche teilen sollen. Ich habe jedoch Funktionen, die sehr spezifisch für einen einzelnen Charakter oder eine Figur sind. Diese Art von Skript eignet sich am besten für den einzelnen Teich oder Charakter. Okay, jetzt habe ich auch erwähnt, dass , so etwas wie Bildschirminteraktionen aufzubauen, das Spiel zu unterbrechen usw. , ist, so etwas wie Bildschirminteraktionen aufzubauen, das Spiel zu unterbrechen usw. , solche Dinge großartig sind, um sie in einem Player-Controller-Blueprint zu erstellen weil Bauern, Charaktere, die sie sterben können, gibt es Spieler-Controller während deiner gesamten Spielsitzung. Also werde ich hier etwas leeren Raum öffnen. Ich klicke mit der rechten Maustaste. Ich suche nach Tastatur und lass uns etwas tun, wenn wir die P-Taste drücken, P. Und ich mache es so, dass ich, wenn ich die P-Taste drücke, einen Flipflop-Knoten einfüge. Wenn wir das erste Mal drücken, schießt es aus einem heraus. Beim zweiten Drücken schießt es im Takt. Und alles was ich hier machen will ist Setgame, pausiert. Control C, Control V. wir also zum ersten Mal die P-Taste drücken, wollen wir das Spiel pausieren lassen. Beim zweiten Mal drücken Sie die P-Taste. Wir wollen festlegen, dass es ununterbrochen ist. Das ist jetzt sehr wichtig. Überprüfe das mit deiner hier ausgewählten P-Taste. Sie müssen sicherstellen , dass Sie dieses Kontrollkästchen für Ausführen beim Pausieren aktivieren. Denn wenn wir das nicht aktiviert lassen würden, könntest du die P-Taste drücken, um das Spiel anzuhalten. Da das Spiel jedoch angehalten ist, wird das erneute Drücken der P-Taste nicht erkannt , um die Pause zu unterbrechen. Sie müssen also sicherstellen, dass dies aktiviert ist, wenn Sie es zum Pausieren und Aussetzen verwenden möchten . Also sieh dir das an. Ich spiele das Spiel. Ich kann herumlaufen, die P-Taste drücken, das Spiel ist eingefroren. Wenn Sie die P-Taste erneut drücken, wird sie wieder freigegeben. Ich drücke die Drei-Taste, wechsle hier zu meinem roten Zeichen, drücke die P-Taste, halte inne, drücke bei Pause erneut die P-Taste und übertrage den Besitz ebenfalls auf und übertrage den Besitz ebenfalls meinen grünen Charakter. Drücken Sie die P-Taste, halten Sie an, drücken Sie erneut die P-Taste, Sie die Pause, gemeinsame Funktionen innerhalb des Player-Controller-Blueprints. Was Ihnen hier vielleicht aufgefallen ist, ist, dass unser Player-Controller-Blueprint Eingabeereignisse ohne spezielle Einrichtung erkennt und verarbeitet . Wir mussten nicht in die Standardeinstellungen unserer Klasse gehen und etwas Besonderes tun, damit das funktioniert oder damit es funktioniert. Jetzt tun Charakter und Teiche dasselbe wie unser Level-Blueprint. Sie alle verarbeiten diese Eingabeereignisse standardmäßig. Was passiert also, wenn ich in diesem Fall das UP-Ereignis in einem Player-Controller, in einem Charakter-Blueprint und einem Level-Blueprint verwende das UP-Ereignis in einem Player-Controller, in einem ? Was passiert? Was ist die Priorität? Nun, lass uns ein Szenario hier in meinem Player-Controller ausführen . Wenn ich die Aufwärtstaste drücke, starte ich den Charakter. Lassen Sie uns in unserer BP-Figur weiblich einrichten, die ich derzeit hier in meiner Welt kontrolliere . Meine Player-Controller-Klasse. Ich bringe einfach den Up-Schlüssel rein. Ich muss nach Tastatur suchen. Und ich ziehe mich einfach hier raus. Und ich werde einen String drucken. Und ich sage Charakter. Female druckt das einfach für etwa 20 s auf den Bildschirm . Um uns hier etwas mehr Zeit zu geben, ändern wir es in Rosa, damit es schön auffällig wird . Ordnung, kompiliere, speichere das. Und dann werde ich in unserem Level Blueprint auch die Tastatur hochziehen . Und hier drinnen spielen wir einfach einen Sound ab und machen einfach eine Explosion, oder? Ordnung, also kompilieren, speichern. Jetzt habe ich den Up-Key in unseren Level-Blueprints, unserem Charakter und unserem Spieler-Controller implementiert , unserem Charakter und unserem Spieler-Controller Welcher davon wird Vorrang haben? Also werde ich weitermachen und hier auf „Spielen“ klicken. Und ich drücke die Aufwärtstaste und bin super hoch gesprungen. Ich habe nichts gehört und oben links keinen Druck gesehen. Der Player-Controller hat also höchste Priorität. Was wäre, wenn ich möchte, dass dieser Up-Schlüssel auch in meinen anderen Blaupausen verarbeitet wird? Wie würde ich das einrichten? Lass uns schnell von hier verschwinden. Und jetzt, wo meine Up-Taste hier ausgewählt ist, meine Eingabeereignisse, ist diese Konsumeingabe der Schlüssel, der bestimmt, dass nur dieses Eingabeereignis in meinem Player-Controller verarbeitet wird und nicht die anderen Blaupausen. Solange dies überprüft ist, wird diese Eingabe verbraucht, was bedeutet, dass dies der einzige Ort ist, an dem er registriert wird. Es wird es auffressen und es in Blaupausen mit niedrigerer Priorität nicht erkennen . Wenn ich das Häkchen deaktiviere und wir versuchen erneut zu spielen, drücke ich die Aufwärtstaste. Jetzt kannst du sehen, dass ich den Supersprung gemacht habe und du auch das Explosionsgeräusch gehört hast. Was hier passiert ist, ist, dass ich die Aufwärtstaste gedrückt habe und gesagt habe: Okay, mit dem Charakter gestartet, wir verbrauchen diese Eingabe nicht. Und hier sind meine Leveltests abgebildet. Es hat auch den Unterhalt verarbeitet, aber es heißt auch, dass wir diesen Input verbrauchen werden, was bedeutet, dass er genau hier aufhört keine anderen Blaupausen erlauben wird, ihn zu verarbeiten. Also geht die Bestellung. Unser Spieler-Controller hat erste Priorität, der Level-Blueprint hat zweite Priorität und dann haben dein Teich und deine Charaktere die dritte Priorität. Also, wenn ich wollte, dass es auch hier bei meiner Frau verarbeitet wird, hier mit meiner Level-Testkarte, muss ich sicherstellen, dass ich ausgewählt die Eingabe nicht verbrauche. Unser Setup befindet sich jetzt im Player-Controller. Wir verbrauchen diesen Input nicht. Wir lassen zu, dass es in meinem Level-Blueprint nach unten gefiltert wird. Wir verbrauchen diesen Input nicht. Wir lassen zu, dass es in meinem weiblichen Charakter herausfiltert . hier wirklich egal. Dies ist die dritte Priorität. Wir können es auch hier konsumieren. Das wird auf dem Bildschirm ausgedruckt. Wenn ich jetzt spiele, drücke ich die Aufwärtstaste, ich gehe zum Supersprung. Du wirst die Texte für Character Female hier oben sehen . Und diese Explosion wird auch zu hören sein. Los geht's. Super Jump Explosion Charakter weiblich 12.3. Ordnung, um es noch einmal zusammenzufassen, der Player-Controller-Blueprint ist einer, der in Ihren Spielmodus eingefügt werden kann . Spielercontroller sind nicht-physische Akteure , die einen Teich besitzen können. Sie haben eine Eins-zu-Eins-Beziehung, die jeweils einen Teich oder Charakter kontrolliert . Und Vergnügungscontroller eignen sich am besten, um benutzerzentrierte Funktionen zu implementieren, z. B. das Aufrufen eines Pausenmenüs oder für gemeinsame Funktionen zwischen Charakteren oder Teichen, die Sie möglicherweise verwenden um benutzerzentrierte Funktionen zu implementieren, z. B. das Aufrufen eines Pausenmenüs oder für gemeinsame Funktionen zwischen . Kontrolle von. Leute, die das anbieten werden, wir sehen uns im nächsten. 103. Game: Willkommen! In diesem Video ist es unser Ziel, die Verwendung des Spielinstanz-Blueprints in unreal kennenzulernen und zu demonstrieren . Das ist dieser Typ hier unten. Nun, dies ist persönlich einer meiner Lieblings-Framework-Blueprints in ganz unreal, weil er als großartiger, zuverlässiger Speichercontainer fungiert , auf den Sie zugreifen können, um auf Variablen und so weiter zuzugreifen , egal auf welcher Ebene. du bist dabei. Jetzt weiß ich nicht, ob dies technisch als Framework-Blueprint angesehen wird, da es keiner dieser Blaupausen ist, der in unseren Spielmodus aufgenommen wird. Jetzt erinnern Sie sich an einen früheren Zeitpunkt in unserer Diskussion über Framework-Blueprints, dass der Spielmodus den Rest dieser Framework-Blueprints bestimmt , z. B. unsere Standardbauerklasse, Spieler Controller und so weiter. Die Spielinstanz ist davon getrennt. Es ist überhaupt nicht Teil deines Spielmodus. Wir können sehen, dass ich hier oben meinen BP-Spielmodus geöffnet habe. Und wenn ich unsere Standardklassen oder eine Klasse lieber Standardwerte auswählen würde. Wir können in der Klasse der Sektion sehen, es gibt hier nichts für eine Spielinstanz, Blaupausen. Was macht diese Blaupause so besonders? Nun, es ist insofern einzigartig, als es beim Levelwechsel in Ihrem Spiel nicht zerstört wird . Es bleibt so lange bestehen, wie dein Spiel läuft. Okay, an dieser Stelle fragst du dich wahrscheinlich immer noch, warum der Spielinstanz-Blueprint so wertvoll ist , zum Beispiel wen interessiert es, ob er bestehen bleibt, ob er während meiner gesamten Spielsitzung existiert? Nun, was die Spielinstanz so wertvoll macht , ist, dass sie tatsächlich variable Daten von einer Ebene zur anderen überträgt . Ohne zurückgesetzt zu werden. Sie sehen alle Variablen, die Sie in Ihrem Teich oder Ihrem Spieler-Controller oder in Ihrem Spielmodus festgelegt in Ihrem Teich oder Ihrem Spieler-Controller oder in Ihrem Spielmodus Sie werden auf ihre Standardeinstellungen zurückgesetzt , wenn Sie das Level wechseln, Spielinstanz hat das nicht Problem. Es speichert und überträgt variable Daten von Ebene zu Ebene, ohne dass diese Variablen zurückgesetzt werden. Nicht wirklich geholfen, diesen Punkt nach Hause zu fahren. Ich habe ein Szenario eingerichtet, das wir hier testen werden. Beachten Sie hier meinen Standardmodus, die Pfandklasse und die Spieler-Controller-Klasse. Bp-Spielmodus, BP-Bauer und BP-Spieler-Controller. In jedem von diesen habe ich eine Lives-Variable erstellt, und ich beginne mit meinem BP-Bauern und ich beginne mit meinem BP-Bauern hier. Standardmäßig beginnt es bei Null. Und hier drin habe ich dieses Drehbuch einfach hier erstellt. Also drücke ich die Sechs-Taste. Wir kriegen unser Leben. Dieser Knoten wird ihn inkrementieren. Dies ist ein besonderer Hinweis , der unser Leben kosten wird und es sofort zurückwerfen wird. ich also zum ersten Mal sechs drücke, wird dies in eins, dann zwei, dann drei usw. geändert . Und das drucken wir auf dem Bildschirm aus. Wir werden das gleiche Setup hier in unserem BP-Player-Controller machen . Also habe ich dieses Skript einfach kopiert und in meinen Player-Controller eingefügt. Ich habe einfach die Eingabetaste ausgetauscht. Mein Leben ist auch unterschiedlich. In meinem Spielmodus erkennt der Spielmodus keine Eingabeereignisse. In meinem Spielmodus habe ich jedoch eine Lives-Variable erstellt. Ich beginne das auch mit Null. Nun, weil ich das hier nicht erhöhen konnte. Lassen Sie mich das schnell kompilieren und speichern. Das mache ich in meinem Level Blueprint. Also ging ich hierher, ging in öffnete meinen Level-Blueprint, und durch den Level-Blueprint kann ich den Achy drücken, meinen Spielmodus, meine Besetzung, meinen Spielmodus, Zugriff auf diese Lebensvariable bekommen innerhalb dieses Spielmodus-Blueprints. Ich kann es inkrementieren und von dort aus auf dem Bildschirm ausdrucken . In drei verschiedenen Blaupausen, meinem BP-Bauern, meinem Spieler-Controller und meinem Level-Blueprint, wo ich innerhalb meines Spielmodus auf diese Variable zugreife, werde ich diese Lebensvariablen erhöhen. Was ich dann darüber hinaus tun werde , ist hier in meinem Level Blueprint, ich habe dieses Skript eingerichtet. Wenn ich die L-Taste drücke, öffne ich ein neues Level. Das Level, das ich öffnen werde, ist diese minimale Standardstufe. Dies ist ein Level, das in meinem Starter Content Maps-Ordner zu finden ist , dieser Typ genau dort. Und ich möchte, dass Sie wissen, dass ich in meinem minimalen Standard-Level-Blueprint meinem minimalen Standard-Level-Blueprint dasselbe Skript eingerichtet habe , damit wir unsere BP-Spielmodi wieder variabel erhöhen können . Was Sie also mit all diesen dreien sehen werden, ich werde diese Variablen inkrementieren und auf eine neue Map übertragen. Und dann werde ich versuchen, diese Variablen erneut zu inkrementieren , nachdem ich auf die neue Map übertragen habe Sie werden sehen, dass diese Zählungen wieder bei Null beginnen . Und daher ist das der Nachteil, wenn einige Variablen in einem Bauern, einem Spielercontroller oder einem Spielmodus gespeichert einige Variablen in einem Bauern, einem Spielercontroller werden, wenn Sie Level übertragen, die Spiele häufig von Level eins übertragen. Auf Ebene zwei werden diese Variablen innerhalb dieser drei Blaupausen auf ihren Standard zurückgesetzt. Ordnung, also los geht's. Hier wird unser Spieltest sein, indem du auf Play klickst. Ordnung, also fange ich an, die Sechs-Taste zu drücken. Wie du siehst, erhöhe ich meinen Spawn. Meine Variablen für das Bauerleben summieren sich dort auf 25, und ich drücke die Sieben-Taste. Die Lives-Variable in meinem Player-Controller ist bis zu 25. Und jetzt drücke ich die Achter-Taste. Und die Lügenvariable in meinem Spielmodus wurde jetzt auf 25 erhöht. Jetzt drücke ich die L-Taste, um auf ein neues Level zu wechseln. Hier bin ich. Da ich in meinen Projekteinstellungen eingerichtet habe, ist dies mein Standard-Gateway-Modus, standardmäßig meine Standard-Pfandklasse, der Spieler-Controller. Diese werden alle übertragen , um zu kontrollieren, mit welchem Spielmodus, Pfandklasse und welchem Spielercontroller ich welcher Pfandklasse und welchem Spielercontroller ich hier in diesem neuen Level rocke. Also schau es dir an. Ich drücke die Sechs-Taste. Sie können sehen, wie sich mein Leben in meinem Teich verändert und wieder bei Null begann. Ich drücke die Sieben-Taste, anstatt dass mein Player-Controller wieder bei Nullen gestartet ist, also muss ich wieder von Grund auf neu zählen und dann den Achy drücken. Mein Leben variabel in meinem Spielmodus wurde ebenfalls von Anfang an neu gestartet. Hier ist die Spielinstanz also wirklich nützlich. Wenn Sie so etwas wie eine Lives-Variable von Level zu Level übertragen möchten , denken Sie daran, welchen Wert dieser Wert hatte, bevor Sie in das neue Level kamen. Ordnung, also lasst uns weitermachen und unseren Spielinstanz-Blueprint erstellen. Das können wir hier in unseren Projekteinstellungen unter Karten und Modi, Spielinstanz, tun. Du hast diesen Plus-Button hier , um eine neue Spielinstanz zu erstellen. Ich gehe jedoch zurück zu meinem Inhaltsbrowser. Und in meinem Scripting-Framework-Ordner ich mit der rechten Maustaste und etwas leeren Bereich. Und unter der Blueprint-Klasse werde ich nicht sehen, dass Game Instance in diesem Bereich nicht besonders verbreitet ist. Aber im Abschnitt Alle Klassen können wir Spielinstanz eingeben. Und du willst diesen Typen genau hier auswählen, Spielinstanz, kein Plattformspiel , sondern es ist nur eine gute alte Spielinstanz. Wählen Sie dies aus und ich nenne diese BP-Unterstrich-Spielinstanz. Ordnung, als Nächstes setzen wir das in unsere Projekteinstellungen ein. Wenn Sie vergessen haben, wo Sie auf die Projekteinstellungen zugreifen können, können Sie hier darauf zugreifen. Oder unter Projekteinstellungen bearbeiten. Du willst unter Maps und Modi kommen. Und es ist genau hier unten. ich auf dieses Drop-down-Menü klicke, setze ich es in meine BP-Spielinstanz. Das ist großartig. Keine Schaltfläche Speichern oder irgendetwas anderes hier, wir können einfach unsere Projekteinstellungen verlassen oder zu unserem Inhaltsbrowser zurückkehren. Ich werde hier auf die IBP-Spielinstanz doppelklicken , um sie zu öffnen. Und wir werden eine neue Variable hinzufügen, und ich nenne sie Leben. Und wir werden es zu einer Ganzzahl machen. Wir werden weitermachen und kompilieren und speichern. Und wir werden dies vorerst auf einem Standardwert von Null belassen . Was ich hier tun kann, ist, dass ich ausdrucken möchte , wie viele Leben ich habe, auf dem Bildschirm. Eine Möglichkeit, dies zu tun, denken Sie vielleicht, ist, einfach mit der rechten Maustaste klicken und nach Begin Play suchen, und Sie werden herausfinden, dass das nicht existiert. Was Sie tun möchten, ist hier in einem Spielinstanz-Blueprint, Sie möchten nach einem Ereignis namens Event in Knit suchen. Das ist so, als würde das Event mit dem Spiel beginnen. Innerhalb von BP Game Instance, innerhalb eines Spielinstanz-Blueprints, wird dies gleich zu Beginn unseres Spiels ausgelöst. Wenn ich also einen String drucke, kann ich das rückwärts ziehen. Ich tippe ein, füge hinzu. In der a werde ich eine Spielinstanz einfügen. Lass uns die Spielinstanz machen. Lebt für den b-Wert ein. Lassen Sie mich danach ein paar Leerzeichen hinzufügen. Spielinstanz lebt im Doppelraum. Und dann ziehe ich das einfach per Drag & Drop in unseren Graphen, hole es und stecke es in das B, ein Konversionsknoten wird ebenfalls kommen. Wenn ich also kompiliere und speichere und spiele, kannst du sofort oben links sehen, dass Game Instance Null lebt. Ordnung, lassen Sie uns großzügig sein und sagen, dass Sie anstelle von Null-Leben tatsächlich mit drei Leben beginnen. Und wir werden sagen, dass ich das hier in unserem Level sehr schnell kompilieren und speichern werde , hier in unserem Spielinstanz-Blueprint, sagen wir, zurück in unserem Level, wir werden es so machen Wenn dein Charakter diese Triggerbox erreicht, die wir in unserem Level hatten, werden wir vergeben und Extraleben, gute Arbeit. Du hast es bis zum Ende des Levels geschafft. Zurück in meinem Level-Blueprint hier können Sie auf diesen Level-Blueprint zugreifen. Ich werde dieses Skript hier ein wenig modifizieren. In der Tat werde ich das komplett beenden. So lang. Und solange Sie Ihr Trigger-Volume hier in Ihrem Level-Blueprint ausgewählt haben, klicken wir mit der rechten Maustaste. Wir werden Ereignisse hinzufügen, wenn wir anfangen, das zu überlappen. Lassen Sie uns eine Besetzung machen , damit ich tatsächlich auf den BP-Bauern werfen muss, P-Teich geworfen wird, weil das momentan so ist. Der Teich, den ich in meinem Spiel kontrolliere. Das wird also die Überlappung bewirken. Ich habe derzeit keine Überschreibung der Welteinstellung für den Spielmodus. Also wollte ich das nur klarstellen. Wenn wir diese Triggerbox mit unserem BP-Bauern überlappen, wir mit der rechten Maustaste auf Spielinstanz abrufen. Dann wechseln wir zu BP Game Instance. In unserer BP-Spielinstanz hatten wir eine Variable namens lives. Und lassen Sie uns weitermachen und es einfach inkrementieren. Ordnung, das wird also alles gut und gut. Das ist also großartig. Das sollte ausgedruckt werden. Ich werde das tatsächlich auf dem Bildschirm ausdrucken und eine Zeichenfolge drucken. Und wir drucken die aktualisierten Beträge gleich hier aus. Wenn wir also diese Triggerbox überlappen, fügen wir ein Leben hinzu und drucken es auf dem Bildschirm aus, kompilieren, speichern. Lass uns weitermachen und der Test ist schnell. Lass mich mein Debug-Objekt setzen. Und ich habe sehr schnell gesehen, dass zu Beginn des Spiels die Spielinstanz drei lebt. Also werde ich diesen Look hier oben links überlappen wie ich es tue. Wir haben jetzt also wieder vier Überlappungen, 56, da ist es, 67 usw. Nun, hier ist das Problem mit unserem aktuellen Setup. Wenn ich die L-Taste drücke, um Karten zu übertragen, habe ich keine Möglichkeit, unseren aktuellen Lebenswert auf den Bildschirm auszudrucken . Ich meine, auf unserem Event darin, Ereignis initialisiert wurde, drucken wir es auf den Bildschirm aus. Und wenn ich das Triggervolumen überschneide, drucken wir es auf dem Bildschirm aus. Aber in meiner neuen Map habe ich keine Möglichkeit, sie auf dem Bildschirm auszudrucken. Nur weil ich mich hier in meinem Player-Controller schick fühle , werde ich unseren BP-Spielinstanz-Lebenswert erscheinen lassen . Wir haben hier also viel Blueprint-Kommunikation im Gange. In meinem BP-Player-Controller werde ich dieses Skript genau hier modifizieren. Wenn ich die Sieben-Taste drücke, erhalte ich einfach die gespielte Instanz, die in unsere BP-Spielinstanz übertragen wird. Wir werden die Lebensvariablen bekommen , die dort drin lebt. Und wir drucken das einfach auf dem Bildschirm aus. So. Also kompiliere und speichere ich hier. Verstehe also, was wir hier in unserer BP-Spielinstanz vor sich haben , das wird existieren, solange unser Spiel am Leben ist, egal ob wir Level übertragen oder nicht. In unserer BP-Spielinstanz werden wir nach der Initialisierung unseres Spiels ausdrucken, werden wir nach der Initialisierung unseres Spiels ausdrucken wie viele Leben wir überprüfen müssen. Das sind drei. Wenn wir uns überlappen, löst dies ein Volumen genau hier in unserem Level-Blueprint aus. Wir werden zu unserem Entwurf für Spielinstanzen greifen, uns unser Leben schnappen, inkrementieren und ihn auf dem Bildschirm ausdrucken . Und wenn ich dann auf ein neues Level gewechselt bin werden neue Level unsere Projekteinstellungen hier respektieren, einschließlich unserer Player-Controller-Klasse. Und in unserem neuen Level. In unserem Spieler-Controller tippe ich auf die Sieben-Taste, um unsere Spielinstanz zu erhalten , und sie zeigt uns, dass unser aktualisiertes und modelliertes Leben übertragen wurde. Also los geht's. Wenn Sie Play drücken, lebt die Spielinstanz drei. Wir werden diese 456,7 überlappen. Ich drücke die L-Taste, um Level zu übertragen. Denken Sie daran, hier oben in meinem Player-Controller wird der Player-Controller weitergehen, obwohl der Wert der Variablen darin zurückgesetzt wird. Unser BP-Spieler-Controller wird hier in diesem Level wieder existieren, das ist es, was hier über unseren Bauern herrscht. In unserem Player-Controller drücke ich also die Sieben-Taste. Jetzt. Ich setze meine Debug-Objekte auf meinen im Player-Controller gespawnten. Wenn ich jetzt die Sieben-Taste drücke, können Sie sehen, dass diese Variable weitergegangen ist. Wir haben sieben Leben in unserer BP-Spielinstanz. Bevor wir dieses Video schließen , wollte ich Ihnen zeigen, wie mächtig es ist, insbesondere in Bezug auf Widget-Blueprints. Also öffne ich unten in meinem Scripting-Widgets-Ordner mein WPP-HUD und über die Registerkarte MEW BP HUD Graph. Was ich hier zwischen den Kameraschnitten gemacht habe , stammt aus Event Construct. Ich habe meine Spielinstanz. Ich übertrage die BP-Spielinstanz. Ich habe mit der rechten Maustaste auf diesen Pin geklickt und ihn zu einer Variablen heraufgestuft , um meine Spielinstanz in einer Variablen zu erfassen . Wenn Sie dies tun, können Sie auf dieser Registerkarte zurück in Ihren Designer-Tab Bindungen erstellen, um direkt zwei Variablen zu erstellen, die sich auf Ihre BP-Spielinstanz beziehen , z. B. wenn ich einen Text hineinziehen würde Widget hier, anstelle dieses Textblocks hier drüben im Detailbereich, könnte ich unter die Stelle kommen, wo Bindung steht. Und jetzt, da ich einen Verweis auf meine BP-Spielinstanz erstellt habe , schau dir das an. Als BP-Spielinstanz kann ich dies an meine Lebensvariable binden. Hier wird standardmäßig immer noch Textblock angezeigt. Aber wenn ich kompiliere und speichere, könnte ich dann MIB P Player-Controller dieses bisschen Skript erstellen, Ereignis, Spiel beginnen, Widget erstellen, Ihr HUD dadurch und dann Zum Viewport hinzufügen. Das würde mir dann erlauben, mein Spiel zu spielen. Und in meinem B, W BP HUD sollte mein Leben genau hier in meinem HUD dargestellt werden. Also lasst uns weitermachen und das spielen. Und Sie können sehen, dass die Spielinstanz drei lebt , und wir sehen, dass sich das jetzt im HUD widerspiegelt. Es ist daran gebunden, dass die Leben innerhalb unserer Spielinstanz variabel sind. Wenn ich das für fünf durchgehen sollte, siehst du auch dieses Update. Und ich drücke die L-Taste, um Level 6 zu übertragen. Es ist auch hier in meinem neuen Level immer noch vorhanden. Ordnung, also da haben Sie es, die Baupläne der Spielinstanz. Einer der Hauptvorteile besteht darin, dass Variablen zwischen Pegeländerungen nicht zurückgesetzt werden. Hier ist etwas zu beachten, falls Sie jemals so weit fortgeschritten sind, dass Sie ein Speichersystem in Unreal erstellen und implementieren können , was offensichtlich außerhalb des Rahmens dieses Kurses liegt. Der Spielinstanz-Blueprint ist oft der Vermittler zwischen dem Abrufen von Daten aus einer gespeicherten Spieldatei und dem Übertragen in Ihr aktuelles Spiel sowie dem Schreiben von Daten aus einem aktuellen Spiel. zu einem sicheren Spiel. Es fungiert irgendwie als Vermittler. Okay Leute, das wird alles für dieses Video machen, wir sehen uns im nächsten. 104. Kompilierer: Willkommen! In diesem Video dreht sich alles um das Kompilieren. Das ist diese Schaltfläche ganz oben links in den Blaupausen. Unsere Ziele werden also wie folgt sein. Erstens werden wir Möglichkeiten zum Kompilieren von Blueprints demonstrieren . Zweitens werden wir lernen, wie Sie ein Problem schnell finden, wenn Ihr Blueprint nicht kompiliert werden kann. Und Nummer drei, wir werden zeigen, wie die Aktionen Kompilieren und Speichern innerhalb eines Blueprints kombinieren Aktionen Kompilieren und Speichern innerhalb eines Blueprints , sodass Sie nicht obsessiv kompilieren, speichern, kompilieren, speichern, speichern, speichern müssen speichern, kompilieren, speichern, speichern, alles wird tatsächlich mit einem Schritt erledigt. Ordnung, ich habe meinen ThirdPersonCharacter-Tab oben geöffnet , weil ich in Kürze hier drin etwas arbeiten werde . Aber lassen Sie uns damit beginnen, darüber zu sprechen was zum Teufel Compiling überhaupt ist, was passiert, wenn wir diesen Kompilierknopf drücken. Nun, wenn Sie einen Blueprint kompilieren, Sie starten Sie den Prozess der Konvertierung der Eigenschaften und des gesamten Skripts in Ihrem Diagramm eines Blueprint-Assets wie als unser Third-Person-Charakter hier, in eine Klasse, nämlich unsere Third-Person-Charakterklasse. In der Computerprogrammierung, wenn Sie Code kompilieren, nimmt der Compiler , der normalerweise ein anderes Programm ist , das Programm, das der Mensch Rhodes , in diesem Fall unser Skript und alle Eigenschaften und Variablen und so weiter. Und es wird es in ein Programm umwandeln , das der Computer tatsächlich verstehen kann. Jetzt kann ich helfen, diesen Punkt ein bisschen weiter nach Hause zu bringen , ich habe dieses Sprungeingabeskript hier in unserem ThirdPersonCharacter. Wenn ich mit der linken Maustaste klicken und um all diese Knoten ziehen sollte, kontrolliere C. Ich habe hier unten eine Notizblock-App geöffnet. Ich mache einfach ein Control V hier drin. Dies ist der gesamte Code, unser gesamtes Sprungskript hier unterstützt. Wenn Sie also Skripte über diese Knoten erstellen , die Sie miteinander verknüpfen, gibt es Code, der all dies unterstützt, wenn Sie Ihre Überprüfung kompilieren , um sicherzustellen, dass Ihr Code in allen Eigenschaften Variablen usw., die Sie sind, die alle ein Teil davon sind, sind startklar, dass es sauber ist und dass es keine Fehler gibt, dass die Maschine es lesen kann und genau weiß was zu tun ist und es nutzen kann somit. Ordnung. Nun, etwas Wichtiges über das Kompilieren ist, dass wir beim Kompilieren eines Blueprints auf Probleme mit unseren Blueprint-Skripten aufmerksam gemacht werden können . Beachten Sie jedoch, dass nicht alle Fehler erfasst , da einige Bereiche einfach menschlicher Natur sind. Zum Beispiel habe ich hier ein Spawn-System am Location Node eingeführt. Jetzt kann ich sagen: Ja, ich möchte dieses System spawnen, dieses Niagara-Partikel genau hier. Aber was ist, wenn ich meine Skala auf 000 eingestellt habe und dann ein Ereignis habe , das versucht, dieses System zu spawnen, aber ich sehe es nicht. Ich frage mich vielleicht , was zum Teufel los ist. Irgendwas stimmt wohl nicht mit meinem Drehbuch. Nun, in der Tat könnte meinem Drehbuch nichts falsch sein. Ich erhalte jedoch nicht das Ergebnis, das ich erwarte, weil ich die Skala auf Nullen, Nullen, Null gesetzt habe, was bedeutet, dass ich es nicht sehen würde. Beim Kompilieren eines Blueprints werden solche Fehler also nicht erkannt. Ordnung, hier in meinem ThirdPersonCharacter-Ereignisdiagramm habe ich ein Szenario eingerichtet, in dem ich es schaffen werde, in dem wir absichtlich ein schlechtes Skript erstellen und dann versuchen zu kompilieren. Ich werde es hier schaffen, damit ich, wenn ich die B-Taste drücke, Schauspieler spawnen kann. Lass uns weitermachen und sagen: Mann ein Trank. Ich werde diese Spawn-Transformationseingabe jedoch absichtlich leer lassen , wenn ich jetzt versuche zu kompilieren Sie werden sehen, dass wenn ich das tue, es hier einen Fehler auslöst. Und in der Tat wird dieser Tooltip sagen, dass während der Kompilierung ein Fehler aufgetreten ist. Weitere Informationen finden Sie im Protokoll. Log zeigt also auf diese Registerkarte Compiler-Ergebnisse, die gerade am unteren Bildschirmrand angezeigt wurde. Und es wird mich wissen lassen, hey, du hast etwas, das angesprochen werden muss. In diesem Fall ist mein Spawn einer Transformations-PIN ungültig, damit wir einen Mann spawnen können, der aufgeteilt wird Wir müssen ihm sagen, wo er spawnen soll. Wenn Sie diese Registerkarte „ Compiler-Ergebnisse“ hier unten nicht sehen oder wenn Sie sie versehentlich schließen, können Sie sie wieder so einrichten, wie Sie sie zurückbekommen , oder fast jede andere Registerkarte hier, die fehlt. kommst du unter dein Fenster und hier findest du Compiler-Ergebnisse. Mach das wieder an. Jetzt zeigen Ihre Compilerergebnisse Fehler oder Warnungen beim Kompilieren eines Blueprints an. Und das Schöne daran ist, dass es einige Hyperlinks gibt, auf die Sie klicken können, um zur Problemstelle zu springen. Also könnten wir hier auf unsere Spawn-Transformation klicken. Und das zeigt uns nur, wo der Krisenherd ist. Also, wenn du irgendwo da draußen in deinem Diagramm hier draußen bist und sagst Wo zum Teufel ist dieser Fehler? Lass uns weitermachen und darauf klicken und es bringt dich direkt dorthin. Beobachten Sie nun, was mit unserem Kompilier-Button passiert , unserem Symbol hier oben, wenn wir weitermachen und die Spawn- und Transformationsanforderungen dieses Spawn-Schauspielers vom Klassenknoten aus erfüllen die Spawn- und Transformationsanforderungen . Ich werde nur die Welttransformation unseres Endpunkts für die Leitungsverfolgung einbinden. Das ist nur eine Fehlerkomponente, die ich zu meinem Third-Person-Charakter hinzugefügt habe , der gerade ein wenig vor unserem Charakter steht. Ich stecke das hier ein. Beachten Sie, dass sich das Symbol über unserer Schaltfläche Kompilieren geändert hat, sobald ich es anschließe . Wir sehen jetzt ein Fragezeichen in Gelb. Wenn es sich also an diesem Symbol ändert, bedeutet das, dass hier einige Änderungen an unserem Entwurf vorgenommen wurden. Das passiert immer dann, wenn etwas Neues zu einem Diagramm oder in einer neuen Variablen oder Funktion hinzugefügt wird , Makro oder eine Komponente hinzugefügt wird. Es lässt dich wissen, hey, etwas ist anders. Jetzt gibt es mehrere Möglichkeiten, einen Blueprint zu erstellen. Sie können darauf klicken oder es ist ein Hotkey damit verknüpft. Durch Drücken von F7 wird auch kompiliert. Ich werde momentan keine Sieben drücken , da F7 mein Hotkey zum Starten und Stoppen meiner Aufnahme hier unten ist mein Hotkey zum Starten . Aber wissen Sie einfach, dass F7 das ist, was Sie als Hotkey verwenden können. Also werde ich weitermachen und hier auf Kompilieren klicken. Das grüne Häkchen bedeutet „Los geht's“. Und das sieht man auch im Tooltip genau dort. Lassen Sie uns nun einige Kompilierungsoptionen besprechen. Diese drei Punkte hier zeigen sie. Wir können beim Kompilieren sparen und wir können es niemals tun. Wir können es nur mit Erfolg oder immer tun. Wenn es nie so ist, was ich für den größten Teil dieses Kurses hatte. Wir müssen kompilieren. Und wenn Ihr Compiler erfolgreich ist, möchten Sie ihn direkt danach speichern , um sicherzustellen, dass alle Änderungen, die an Ihrem Blueprint vorgenommen oder tatsächlich nur bei Erfolg gespeichert wurden, nur gespeichert werden wenn Ihr Blueprint erfolgreich kompiliert wurde. Und bedeutet immer, dass es gespeichert wird , ob das Kompilieren erfolgreich war oder nicht. Wir haben auch diese Option zum Sprung zum Fehlerknoten. Sie können dies ein- oder ausschalten. Es ist eigentlich ein Häkchen , das Sie ein- oder ausschalten können. Ich schalte es hier an. Und es wird ziemlich nett sein, uns mitzuteilen , wo ein Fehler in unserer Grafik existiert. Es wird sofort losgehen, wenn wir einen machen. Also werde ich das schnell trennen. Du kannst die Alt-Taste gedrückt halten und mit der linken Maustaste klicken, und dann navigiere ich zu einem zufälligen Ort in meinem Diagramm wie diesem. Wenn ich jetzt kompiliere , werde ich direkt darauf zugreifen. Ich mag diese Option sehr zu empfehlen , die direkt unter diesen drei Punkten zum Fehlerknoten gesprungen ist . Nun, nur eine kurze Notiz zu dieser Sprungknotenoption. Es funktioniert so, als würde man hier unten auf einen Ihrer Fehler-Hyperlinks klicken . Das ist ziemlich cool. Es kann offensichtlich nicht zu allen Fehlern gleichzeitig springen. Wenn Sie tatsächlich mehrere Fehler haben, wird der Fehler oben in der Liste angezeigt. Das ist der zuletzt entdeckte Fehler. Außerdem wollte ich auf diese Option Beim Kompilieren speichern zurückgreifen. Wenn ich zu meinem Level-Blueprint gehe und hier auf diese drei Punkte klicke. Ich kann sehen, dass alles ausgegraut ist, wenn ich unter die Option Speichern beim Kompilieren gehe . Sie werden feststellen, dass diese Optionen auf keiner Ebene oder einem Blueprint auf Unterebene verfügbar sind . Dies liegt daran, dass durch das Speichern einer Ebene oder Unterebene selbst der damit verbundene Blueprint gespeichert wird. Also dachte ich nur, dass ich genau hier darauf hinweisen würde. Sie könnten F7 drücken, das ist der Hotkey innerhalb eines Level- oder Unterebenen-Blueprints. Beachten Sie, dass dadurch auch das Level oder das Unterlevel selbst gespeichert wird . Zum Schluss möchte ich noch einmal darauf hinweisen, dass Ihre Compilerergebnisse nicht alle menschlichen Fehler zeigen. Also zurück hier, mein ThirdPersonCharacter Blueprint. Wir können sagen, dass wir hier in der Tat diesen Mann hervorbringen wollen, einen Trank vor unserem Charakter ein bisschen. Wenn ich diesen Draht jedoch genau hier durchbrechen sollte, ich die Alt-Taste gedrückt und klicke mit der linken Maustaste. Ich mache weiter und kompiliere. Und es wird so sein, ja, gut zu gehen. Auch wenn du vielleicht denkst während du das Spiel spielst, dass Hey, ich drücke die B-Taste, aber ich bringe keinem Mann einen Trank hervor. einmal, unwirklich, kann ich deine tiefsten Wünsche nicht kennen. Es weiß nicht , ob Sie dies tatsächlich trennen oder verbinden wollten. Also werden solche Fehler nicht auffangen. Okay Leute, das wird es in diesem Video machen und kompilieren. Wir sehen uns im nächsten. 105. Breakpoints: Ordnung, willkommen zurück alle. In diesem Abschnitt des Kurses lernen wir, wie unsere Blueprints besser beheben können. So debuggen Sie sie. Wir beginnen damit indem wir über Breakpoints sprechen. Das Ziel in diesem Video ist es, zu lernen, wie man Breakpoints in unseren Skripten erstellt und verwendet , um zu analysieren, was passiert, wenn ein Skript ausgeführt wird. Jetzt habe ich hier ein Szenario eingerichtet. Ich werde sie kontrollieren IBP-Teich, ich werde eine meiner speziellen Drehtüren überlappen meiner speziellen Drehtüren , die wir früher im Kurs geschaffen haben. Und du wirst feststellen, dass unser Spiel einfrieren wird, aber absichtlich nicht unbeabsichtigt. Also pass auf, ich werde die Triggerlautstärke überlappen. Vertrau mir einfach, vor dieser ersten Tür ist eine Triggerlautstärke . Nichts scheint zu passieren, aber ich werde diese zweite Triggerlautstärke vor dieser Tür überlappen . Und siehe da, wir frieren das Spiel ein. Wir haben einen Breakpoint erreicht. Was ist ein Breakpoint? Es ist eine absichtliche Pause oder ein Stopp, das Sie innerhalb eines Skripts erstellen , wie durch diesen roten Punkt auf diesem Knoten genau hier gekennzeichnet. Der Zweck besteht nun darin, herauszufinden, ob das Skript erwartungsgemäß funktioniert. Vielleicht ist ein Ereignis, von dem wir erwarten, dass es ausgelöst wird, nicht. Vielleicht feuert eine Funktion, von der wir erwarten, dass sie ausgelöst wird, nicht ab. Vielleicht wurde eine Variable, von der wir erwarten, dass sie einen Wert hat, noch nicht festgelegt. Im Wesentlichen gibt uns ein Breakpoint eine Auszeit , um das Verhalten unserer Skripte genauer zu untersuchen. Ordnung, ich werde momentan unser Spiel beenden und erklären wie man Breakpoints in eigenen Blaupausen einrichtet. Klicken Sie also hier oben auf die Schaltfläche Stopp. Das erste, was Sie verstehen sollten, ist, dass Sie sicherstellen möchten , dass Sie den richtigen Entwurf bewerten, die richtige Instanz des Blueprints. Ich schaue gerade auf meine BP-Drehtür merke jetzt, dass ich in meinem Level zwei davon habe. Ich habe diesen Typen, BP Drehtür und den zweiten, BP Drehtür bis jetzt MIB Drehtür Blaupause. Und das ist eine Blaupause , die wir während unseres variablen Rotator-Videos erstellt haben. Ich habe einen Breakpoint gesetzt, wenn wir anfangen, diese Box-Komponente zu überlappen. jetzt oben auf Wenn ich jetzt oben auf dieses Drop-down-Menü klicke, werde ich feststellen, dass ich gerade bewerte, ich debugge gerade die BP-Rotationstür an und Sie können es genau dort in Klammern sehen. Das ist die, die ich derzeit ausgewählt habe. Das bedeutet, dass, wenn ich diese Box-Komponente für die BP-Rotationstür Nummer eins überlappe , dies nicht unterbrochen wird. Dies wird die Ausführung meines Spiels nicht stoppen, da ich gerade die BP-Rotationstür Nummer zwei bewerte. Es ist also wichtig , das zu verstehen. Wenn Sie beispielsweise 50 Instanzen eines bestimmten Blueprints haben , wird die Ausführung nur gestoppt , wenn Sie diese angegebene Instanz, die angegebene Kopie des Blueprints, überlappen . Also hier habe ich BP Drehtür Nummer zwei. Wie habe ich diesen Breakpoint bekommen, zunächst diesen roten Punkt auf diesem Knoten? Nun, es gibt ein paar Möglichkeiten, dies zu tun. Sie können mit der rechten Maustaste auf einen Knoten klicken Und Sie können in unserem Rechtsklick-Menü sehen, dass wir Breakpoint-Optionen haben. Das erste Jahr, das ich verwenden werde, ist Toggle Breakpoint. Damit ist ein Hotkey F9 verbunden. Da dies gerade aktiviert ist, kann ich es ausschalten und umgekehrt, ich kann mit der rechten Maustaste klicken und es wieder einschalten. Wenn dieser Knoten F9 ausgewählt ist, schalten wir ihn wieder aus, ein, aus, ein. Ich könnte noch einmal mit der rechten Maustaste darauf und den Breakpoint so entfernen. Ich könnte F9 drücken, um es wieder einzuschalten, ich könnte mit der rechten Maustaste darauf klicken und den Breakpoint deaktivieren. Das bedeutet, dass der Haltepunkt hier beibehalten wird. Es wird jedoch die Ausführung unseres Spiels nicht stoppen, wenn ich die BP-Rotationstür Nummer zwei überschneide, dies oder diesen Punkt nach Hause fahre, ich kann darauf klicken und das überlappen und Sie sehen es, es ist ein Feuer aus, aber es habe mein Spiel überhaupt nicht unterbrochen. Es hat diesen Haltepunkt dort beibehalten, aber das Spiel wurde nicht unterbrochen. Sie fragen sich vielleicht, warum ich diesen Breakpoint nicht ganz losgeworden bin? Warum habe ich es einfach deaktiviert? Nun, manchmal möchten Sie eine Liste Ihrer Breakpoints haben , die Sie anzeigen können damit Sie sie nicht aus den Augen verlieren. Wenn ich runterkomme, sind Debug genau hier oben und ich bringe meinen Blueprint-Debugger auf. In diesem Fenster hier kannst du sehen, dass es meine rotierende Tür hat. Genau hier sind meine Listen von Breakpoints. Und du kannst sehen, dass ich diesen Breakpoint genau hier habe , der mit dem Typen da korrespondiert. Wenn ich also darauf doppelklicken würde, wird es hervorgehoben. Dieser leere Kreis dort zeigt an, dass es sich um einen deaktivierten Haltepunkt handelt. Ich werde das hier unten andocken. Und wenn ich mit der rechten Maustaste auf diesen Knoten klicken und Breakpoint aktivieren sollte, schauen Sie jetzt in unserem Blueprint-Debugger unter Breakpoints nach, wir können jetzt sehen, dass das ein ausgefüllter roter Punkt ist diesen Knoten klicken und Breakpoint aktivieren sollte, schauen Sie jetzt in unserem Blueprint-Debugger unter Breakpoints nach, wir können jetzt sehen, dass das ein ausgefüllter roter Punkt ist ist ein aktiver Breakpoint. Also alle anderen Breakpoints , die wir hier haben , werden hier unten aufgeführt. Und wieder einmal, das war unter dem Debug Blueprint Debugger. Da ist meine rotierende Tür und meine Liste der Haltepunkte kann genau dort ein- und ausgeschaltet werden. Ordnung, jetzt können wir sehen, dass wir diese Haltepunkte eingerichtet haben , wenn wir beginnen, diese Kastenkomponente für diese rotierende Tür zu überlappen . Nummer zwei, lassen Sie uns durchgehen was passiert, wenn ein Breakpoint erreicht wird. Ich mache weiter und klicke hier oben auf Play. Beachten Sie, dass dies die rotierende Tür Nummer eins ist. Ich überschneide das und nichts passiert. Ich werde die Box zum Drehen von Tür Nummer zwei überlappen . Sofort stoppt das Spiel. Wir öffnen hier unser Event-Diagramm für Drehtür Nummer zwei. Und wir können sehen, dass wir diese Box überlappt haben. Wir sind uns jedoch noch nicht sicher, was sich genau überlappt hat. Wir können also mit unserem Skript fortfahren, um weiter zu beurteilen dieser rote Pfeil den aktuellen Knoten anzeigt dass dieser rote Pfeil den aktuellen Knoten anzeigt, auf dem wir uns befinden. Wir überlappen gerade dieses Feld. Wenn wir hier oben klicken, können wir zum nächsten Knoten in unserer Ausführungskette, FTN, übergehen. Der Hotkey bringt uns auch dorthin. Beachten Sie also diesen Tool-Tipp. Wenn wir dieses Kästchen überlappen, werden wir überprüfen, ob es der ThirdPersonCharacter war , der uns überlappt hat. Jetzt habe ich unsere BPons kontrolliert, also sollte diese Besetzung scheitern. Jetzt, weil es scheitert. Wir haben hier nichts von unserem CAS-Feldfenster angeschlossen . Das sollte uns direkt hier rauswerfen, denn es gibt nichts anderes , mit dem wir weitermachen könnten. Unser Drehbuch stirbt genau hier. Lass uns weitermachen und versuchen, zum nächsten Knoten zu springen. Wie Sie sehen können, ist es nicht zu unserem nächsten Knoten übergegangen. In der Tat, wenn ich unser Spielfenster noch einmal öffne, lass mich das einfach minimieren. Da können wir sehen, dass wir wieder unser Spiel spielen. Ordnung, lass uns weitermachen und unser Spiel hier beenden und zu unserer Engine zurückkehren. Und jetzt wollen wir es so machen, dass wir in unseren Projekteinstellungen nicht mehr standardmäßig auf die Pfandklasse des BP-Teiches setzen, sondern stattdessen unseren ThirdPersonCharacter einbringen . Und der Grund, warum wir das tun, ist in unserem Drehtür-Skript genau hier nachschauen, wir in unserem Drehtür-Skript genau hier nachschauen, ob es der ThirdPersonCharacter war , der uns überlappt hat. Beachten Sie, dass ich in unserem Level auch unsere Weltkulissen gelöscht habe. Wir werden also die Projekteinstellungen respektieren, die Projekteinstellungen, die wir für unser Framework haben, Blueprints, BP Game Mode, BP ThirdPersonCharacter, BP-Spieler-Controller. Und wenn ich jetzt weitermachen und unser Spiel spielen sollte, werden wir weitermachen und die Auslöserlautstärke für BP-Tür Nummer zwei überlappen . Es wird hier unseren Haltepunkt erreichen. Lassen Sie uns nun über diese verschiedenen Optionen sprechen, die wir ganz oben haben, denn wenn wir einen Breakpoint erreichen, wird uns dieser Typ hier gleich wieder in unser Spiel bringen. Im Grunde heißt es, hey, ich bin froh, dass du das Spiel beendet hast. Vielen Dank, aber wir würden gerne weiterspielen. Lassen Sie mich das einfach überschneiden. Noch einmal. Es wird das Spiel für uns wieder beenden. Als Nächstes haben wir diesen Fortschritt, einen einzigen Frame. Dann springe ich uns einfach rüber zum nächsten Knoten. Wenn man überhaupt nicht zeitkritisch ist. Als nächstes haben wir hier diesen Stopp-Button , der dasselbe tut wie das Drücken von Escape. Du kündigst im Grunde dein Spiel und kehrst zu deinem Editor zurück. Ich werde jetzt nicht drängen. Als Nächstes hier drüben überspringe ich den Typen hier drüben. Wir haben das, um die aktuell aktiven Knoten zu lokalisieren. Wenn wir also auf unserem Cast to ThirdPersonCharacter-Knoten wären , wie wir es jetzt sind , bewerten wir diesen. Dann haben wir beschlossen, an einem zufälligen Ort wie diesem zu navigieren. Wenn wir auf diese Schaltfläche klicken , gelangen wir direkt zurück zu unserem derzeit aktiven Knoten. Als Nächstes haben wir diesen Schritt in den Knoten, dem ein Hotkey F11 zugeordnet ist. Ich werde das in unserem nächsten Beispiel zeigen. Das ist hier kein gutes Beispiel. Als nächstes gehen wir über zum nächsten Knoten, F ten. Das machen wir auch. Ich drücke F2, um das zu tun. Und eine Sache, die Sie hier beachten Während Sie die Dinge durchgehen, können Sie die verschiedenen Datenbits auswerten, die weitergegeben werden, indem Sie mit der Maus über diese Datenpins fahren. Also z.B. ich kann sehen, dass der Schlüssel hier zu falsch ausgewertet wird. Ich weiß also, dass unser Drehbuch im Grunde genau hier enden wird , weil wir nur etwas außerhalb des wahren Zweigs machen werden. Wir werden nichts außerhalb des falschen Zweigs tun. Nun, dieser Schritt aus der Schaltfläche, werden wir das auch in unserem nächsten Beispiel untersuchen da dies ein gutes Setup ist, um das zu demonstrieren. Ich möchte jedoch noch etwas zur Kenntnis nehmen. Während wir hier sind, können Sie den orangefarbenen Puls der Ausführung bis zu diesem Punkt visualisieren , was sehr praktisch ist, wenn Sie ein Skript auswerten. Und wieder geht es nicht nur darum zu sehen, an welchen Knoten angehalten und ausgeführt werden, sondern auch darum, die Daten auszuwerten, weitergegeben zu werden, mit der Maus über diese verschiedenen Pins zu fahren und zu sehen, ob dass Daten, die weitergegeben werden, das sind, was Sie erwarten. Ordnung, jetzt hören wir mit diesem Beispiel auf. Als nächstes springen wir zu unserem ThirdPersonCharacter und klicken hier oben auf Stopp, um ein weiteres Beispiel zu zeigen. Der Grund, warum wir hierher gehen, ist, dass wir einige vom Kunden erstellte Funktionen haben einige vom Kunden erstellte Funktionen , die wir zuvor im Kurs erstellt haben. Wir können ein- und aussteigen , was wir in unserem letzten Beispiel nicht konnten. Also lasst uns weitermachen und unsere Funktion „Gesundheit modifizieren“ einführen . Wir haben dies in unserem Funktionsbereich des Kurses eingetauscht und werden ein Keyboard-Event einleiten. Rechtsklicken wir auf Tastatur. Lass uns etwas tun, wenn wir die Pfeiltaste drücken. Wenn wir also die Null drücken, sagt Kaylas Modifikator-Gesundheit um 0,1. Ziehen wir einen Fear Print String heraus, der nach hinten gezogen wird. Lass uns anhängen. Und lassen Sie uns das Wort Gesundheit, Doppelpunkt, an unsere aktuelle Gesundheit anhängen . Das bringt einen Konversionsknoten ein von float zu einem String wie diesem wechselt. Und dann lass mich hier einen Breakpoint zu unserem Event-Knoten hinzufügen , du musst F9 drücken. Nun, wenn Sie einen Bruchpunkt mit einem Ausrufezeichen darin sehen. Das könnte bedeuten, dass dies ein ungültiger Breakpoint ist. Ich bin mir nicht sicher, warum dieser als solcher angezeigt wird. Wenn Sie sich jedoch fragen, ob dies ein gültiger Breakpoint ist oder nicht, können Sie hier weitermachen und kompilieren. Ich weiß, dass einer gut sein wird und das ist es auch. Also lasst uns weitermachen und dieses Klickspiel ausprobieren. Sie können sicherstellen , dass Sie Ihren ThirdPersonCharacter als Debug-Option haben Ihren ThirdPersonCharacter als , damit dieses Skript in Echtzeit gestartet wird, wenn Sie möchten. Lass uns noch einmal unser Spielfenster öffnen. Und wenn ich die Pfeiltaste drücke, stoppen wir unsere Hinrichtung. Wir können übertreten. Und jetzt ist dies eine Funktion, in der wir einige Funktionen eingerichtet haben . Wenn ich also hier auf diese Schaltfläche klicke, Hotkey F11, können wir in diesen Knoten treten. Und jetzt können wir durch die Knoten der Funktion selbst gehen. Wir können sehen, dass die Registerkarte Gesundheitsfunktion ändern jetzt oben geöffnet ist und wir diese jetzt nacheinander durchgehen können . Wir können sehen, ist das wahr oder falsch? Gehen wir noch einmal über. Und jetzt, weil wir diesen Knoten betreten haben, kann ich aus diesen Notizen herausspringen. Lassen Sie mich diese Funktion verlassen . Sie können sehen, dass wir jetzt zu unserem nächsten Knoten in der Kette übergehen , der unsere Druckzeichenfolge ist. Mit den Schaltflächen Step In und Step Out of können Sie also in so etwas wie eine maßgeschneiderte Funktion treten, jeden Schritt dieser Funktion sehen und sie dann verlassen , wenn Sie möchten. Jetzt nur noch ein paar Notizen da. sich bei der Option Step Wenn es sich bei der Option Step Into um eine benutzerdefinierte Funktion oder ein Makro handelt, wird ein Drilldown durchgeführt . Wenn es sich jedoch nicht um eine benutzerdefinierte Funktion oder ein Makro handelt, geht es einfach weiter zum nächsten Knoten. betreten, Wenn Sie einen Knoten betreten, wird er zum nächsten Knoten in der Kette gehen, in diesem Fall zu unserem Print-String-Knoten. Wenn es jedoch nichts gibt, um zwei zu entfernen, gibt es keine anderen Knoten in Ihrer Kette. Das Spiel wird einfach fortgesetzt. Jetzt, LastNode, können wir auch unsere Debug-Blueprint-Debugger-Option aktivieren. Von hier aus öffnen wir dieses Fenster. Ich möchte es noch einmal am unteren Bein andocken. Mir ist also klar, dass ich das Spiel immer noch hier spiele. Hier sind meine Breakpoints. Sie können sehen, dass ich darauf klicken könnte, um direkt dorthin zu springen. Wenn Sie es jedoch bemerkt haben, als ich hier oben auf diese Debug-Option geklickt habe, haben wir hier oben die Möglichkeit, alle Breakpoints zu deaktivieren und alle Breakpoints zu löschen. Wenn Sie in Ihrem Diagramm viele Breakpoints eingerichtet haben , ist dies eine sehr praktische Möglichkeit , sie alle zu löschen. Und wieder können Sie Breakpoints hinzufügen, und zwar nicht nur auf solchen Ereignisknoten, Sie können sie auch für eine Funktion festlegen. Auch bei dieser Funktion. Also, wenn du dich auf allen dreien einrichtest und sagst : Hey, ich möchte die alle einfach loswerden. Mach einfach weiter und lösche alle Breakpoints, und plötzlich sind sie alle weg. Und da hast du es. Das ist der Überblick über Breakpoints. Breakpoints sind eine absichtliche Pause oder ein Stopp, die Sie innerhalb eines Skripts erstellen , damit Sie Ihre Skripts Schritt für Schritt genauer untersuchen können . Leute, das macht alles für dieses Video, wir sehen uns im nächsten. 106. Werte einer Beobachtung: Ordnung, willkommen zurück. In diesem Video möchten wir lernen, wie wir Datenwerte beim Debuggen eines Skripts einfacher überwachen können . Dies kann nun durch die Angabe von Variablen erreicht werden , die innerhalb eines Entwurfs beobachtet werden sollen, indem wir auf einfache Weise Datenwerte in unseren Blaupausen sehen und bewerten können. Wir können schnell feststellen, ob Daten, die durch R-Skripte fließen, sind wie erwartet oder nicht. Für dieses Beispiel werde ich nun in meiner BP-Drehtür arbeiten, ebenso wie mein ThirdPersonCharacter hier ein bisschen. Um Variablen genauer beobachten zu können, werden wir zunächst unseren Blueprint-Debugger einführen. Jetzt habe ich Ihnen im letzten Video gezeigt, wie das geht, aber wenn Sie das Video in einem Blueprint vergessen oder übersprungen haben, ist die BP-Drehtür in Ordnung. Wir können auf Debug, Blueprint-Debugger klicken , und das öffnet unser Blueprint-Debugger-Fenster. Ich habe das gerne auf einem zweiten Monitor, wenn ich es habe, aber da ich es nicht tue, wenn Sie einen einzigen Monitor haben, ich einfach gerne hier unten ein. Beachten Sie nun, dass wir in unserem Blueprint-Debugger angeben können, welchen Blueprint wir debuggen möchten. Obwohl wir uns in unserer BP-Drehtür befinden, könnte ich dies als meinen ThirdPersonCharacter zum Debuggen festlegen , wenn ich wollte. Wenn Sie das jedoch getan haben und einen Haltepunkt wie unsere Nulltaste in unserem ThirdPersonCharacter getroffen haben. Es würde Sie von diesem Diagramm zu Ihrem ThirdPersonCharacter-Diagramm überspringen . Ich werde Ihnen das hier nicht demonstrieren , sondern nur zu Ihrer Information. Ordnung, ich habe dieses Set an meinen BP-Drehtüren eingestellt und ich habe einen Haltepunkt gesetzt. Jetzt werde ich einige Variablen einrichten, die ich beobachten soll. Ich werde mir ansehen, dass das hier eine Schlüsselvariable hat. Und wir können dies tun, indem rechten Maustaste klicken und diesen Barrelwert beobachten. Wenn ich das mache, wird ein kleines Lupensymbol darauf erscheinen. Aber Sie werden auch dieses Fenster hier oben sehen , das true oder false ausgibt , wenn diese Informationen von unserem Branch-Knoten angefordert werden. Wann immer dies ausgeführt wird, werden wir herausfinden, ob das wahr oder falsch ist , und es wird es direkt in dieser Blase drucken. Ich werde hier auch einen Beobachtungswert auf unserem Rotatorknoten einrichten , den Rückgabewert, damit ich sehen kann, wo wir uns in Rotation befinden , die 0-90 Grad im Ya geht dieser Rotation befinden , die 0-90 Grad im Ya geht. Ich werde mit der rechten Maustaste darauf klicken. Wir werden diesen Wert beobachten. Einfach genug. Wenn ich eine dieser Uhren entfernen möchte, können Sie einfach mit der rechten Maustaste darauf klicken. Hör auf diesen Wert zu beobachten. Oder wenn Sie aufhören möchten, alle Ihre Uhren anzusehen , können Sie alle Uhren, die sie ebenfalls entfernen können , untergehen , debuggen und löschen . Bevor ich dieses Beispiel zeige, wollte ich notieren, dass ich in meinem ThirdPersonCharacter hier, ThirdPersonCharacter, diesen Schlüssel boolean auf true gesetzt habe . Wenn Sie das noch nicht getan haben und zu Hause in BP mitspielen möchten. dritte Personzeichen B hat einen booleschen Schlüssel. Ich habe das auf true gesetzt, kompiliert und gespeichert. Und hier beobachte ich diese Variable. Diese Variable lebt in meinem ThirdPersonCharacter, aber ich kann sie mir direkt von hier aus ansehen. Ordnung, also lasst uns weitermachen und unser Spiel spielen. Und ich werde diese Kastenkomponente für unsere rotierende Tür Nummer zwei überlappen , das ist diese Tür direkt in unserer Ebene, die Tür Nummer eins dreht. Wir bewerten jedoch die Drehtür Nummer zwei. Also los geht's, klicken auf Spielen und überlappen diese Tür. Ordnung, wir haben diesen Haltepunkt erreicht. Im letzten Video habe ich Ihnen gezeigt, dass Sie die Dinge Schritt für Schritt durchgehen können, indem Sie hier klicken F ten wird gut funktionieren. Ich kann auch einen Frame nach dem anderen vorrücken. Das würde mich auch in diesem Fall aufhalten , da dies kein zeitkritischer Knoten ist. Beachten Sie jedoch, dass Sie unten in Ihrem Blueprint-Debugger dieselben Steuerelemente haben. Also lasst uns das einfach zeigen, denn wir können, Sie können unten sehen, dass wir unsere rotierende Tür getroffen haben. Nummer zwei, der Breakpoint wurde erreicht. gelbe Pfeil dort zeigt an, dass ich das erweitern werde, indem ich dieses kleine Dropdown-Dreieck drücke. Auf Anhieb. Wir können sehen, dass wir hier Uhren eingerichtet haben, denn sie Schlüssel und auch diesen Rückgabewert auf diesem Loop-Knoten genau dort. Das bedeutet also, dass wir einige Uhren eingerichtet haben. Beachten Sie derzeit, dass diese Blase noch nichts aussagt , da ihre Informationen noch nicht angefordert wurden. Ich gehe zum nächsten Knoten, indem ich hier klicke. Dieser Ablauf der Hinrichtung. Wir gehen über einen weiteren vor. Da wir diesen Branch-Knoten erreicht haben, wurden diese Informationen für die Bedingung angefordert. Wir können also sehen, dass wir diesen Wert beobachten, und jetzt zeigt er deutlich, dass er als wahr bewertet wird. Jetzt könnte ich einfach ohne die Uhr über diesen Pin fahren und herausfinden, dass diese Informationen auch tatsächlich wahr sind. Durch das Aufstellen solcher Uhren wird dies jedoch sehr offensichtlich. Auf diese Weise können Sie leichter erkennen, welche Daten direkt weitergegeben werden. Nun, wenn ich diese Uhr deaktivieren wollte, könnte ich, während sie hier läuft , wir das debuggen. Ich könnte auf dieses kleine Lupensymbol klicken und es ausschalten. Und ich kann mit der rechten Maustaste klicken und es wieder einschalten , Tschüss. Die Auswahl des Uhrenwerts wird hier unten erneut angezeigt. Wenn ich irgendwo weit darüber hinaus navigiert hätte , wenn ich hier unten auf die Uhr klicken sollte, würde wenn ich hier unten auf die Uhr klicken sollte, mich das sofort darauf zurückbringen. Das ist also ziemlich praktisch. Lassen Sie uns das durchgehen, denn wir können sehen, dass wir hier noch nicht unsere zweite Wache getroffen haben . Also drüber drücken. Ordnung, jetzt treffen wir auf einen zeitkritischen Knoten, diese Zeitleiste, die 1 s lang ist. Wenn ich also immer genau hier oder f zehn unterdrücke, wird es mich sofort zu diesem nächsten Knoten bringen. Ich könnte jedoch auch einen einzelnen Frame nach dem anderen weiterentwickeln. Also klicke ich mit der linken Maustaste. Sie können sehen, dass wir jetzt 0,01 s hinter uns haben , weil wir nur ein Bild nach dem anderen voranschreiten. Wir können sehen, dass wir diesen Rückgabewert hier beobachten. Und wenn wir diesen Schritt nach dem anderen erhöhen, ein Bild nach dem anderen beobachtet. Ihr Wert steigt Stück für Stück. Wir können also sehen, wie sich das im Laufe von 1 s öffnet . Jetzt können wir weitermachen und hier auf Fortsetzen klicken , um das Endergebnis zu sehen, das sich über den Rest des Ergebnisses abgespielt hat Zeitleiste, das ist eine Zeitlinie. Wir können also diesen Wert erkennen. Ja, unsere Tür öffnete sich um 90 Grad. Vielleicht haben Sie das erwartet. Vielleicht nicht, aber diese Uhren helfen Ihnen festzustellen, ob dies tatsächlich den erwarteten Rückgabewert ausgibt . Und so gibt es einen schnellen, einfachen Überblick darüber, was Uhren sind und wie sie beim Debuggen Ihres Skripts eingestellt und verwendet werden können . Noch einmal, wenn ich hier anhalten und diese Uhren abnehmen sollte, hören Sie auf zu schauen. Hör auf zuzuschauen Sie können den Ausgabewert dieser Datenpins immer noch sehen , indem Sie diesen Breakpoint treffen. Lassen Sie mich das noch einmal überlappen . Gehen Sie rüber, gehen Sie rüber, indem Sie die Maus so darüber bewegen. Durch das Aufstellen von Uhren werden sie jedoch nur ein bisschen auffälliger und leichter zu erkennen. Lassen Sie mich das bis zum Ende voranbringen. Wieder einmal können wir sehen, dass ihr alle rot seid, es wird 90 ausgegeben. Aber diese Uhren machen sie wieder prominenter und leichter zu erkennen. Leute, die dieses Video anbieten werden, wir sehen uns im nächsten. 107. Message Log: Ordnung, willkommen zurück alle. In diesem Video ist es unser Ziel, die Rolle des Nachrichtenprotokolls beim Debuggen Ihrer Skripte zu zeigen . Dies ist ein Fenster , in dem alle Arten von Informationen zu Ihren Projekten angezeigt werden können , z. B. Beleuchtungsergebnisse beim Erstellen Ihres Levels. Hier werden wir nur den Nutzen untersuchen, um sicherzustellen, dass unsere Skripte zur Laufzeit wie vorgesehen funktionieren. Ich habe also ein Beispiel , das wir in unserem Third-Person-Charakter zeigen können. Warum gehst du nicht in den Blueprints-Ordner deiner dritten Person findest deinen ThirdPersonCharacter. Übrigens ein lustiger Tipp für dich hier. Wenn Sie die Strg-Taste gedrückt halten und das Scrollrad verwenden, können Sie diese Miniaturbilder vergrößern oder verkleinern. Wir werden darauf doppelklicken, wo ich bereits vor diesem Video einige Skripte eingerichtet habe. Was wir tun werden ist dass ich die eine Taste drücke. Und dann, nur einmal hier, werde ich im Feuereffekt spawnen. Und dann werde ich das zu einer Variablen befördern. Also habe ich das noch nicht gemacht, also wollte ich nur angeben. Wir können das noch einmal tun, indem wir mit der rechten Maustaste auf diesen Pin klicken. Wir werden dies auf eine Variable umstellen. Dies war übrigens ein Spawn-Schauspieler aus Class Node. Wenn Sie also nach dem Namen dieses Knotens suchen, ist es Spawn-Schauspieler aus der Klasse. Es wird in Blueprint-Effektfeuer geändert. Sobald Sie diesen Blueprint-Effekt eingefügt haben, fördert der Feuer-Blueprint aus dem Starter-Inhalt die Variable. Wir nennen das einfach Feuer. Da unten ist der Name und wir können sehen, dass es vom Typ Blaupausen-Effektfeuer ist . Und was wir hier unten tun werden ist, wenn wir die beiden Tasten drücken, werden wir dieses Feuer zerstören , das wir erzeugt haben, wenn wir die eine Taste drücken. Also kann ich das direkt über das Ziel unserer Destroy Actor-Funktion ziehen . Das verbindet es automatisch so. Wir werden unser Nachrichtenprotokoll auf etwas anderem erscheinen lassen , das ich sofort tun werde . Nachdem wir unseren Schauspieler zerstört haben, werde ich den Reset unseres Do Want Snowed einstellen. Und das wird es nur schaffen , dass ich die drücken kann, um einen Taste noch einmal drücken kann, um einen weiteren Entwurf zu spawnen, Feuer zu erzeugen. Genau das passiert also hier. Wir drücken die eine Taste und dann spawnen wir nur einmal diesen Blaupausen-Feuereffekt am Ort, die Welttransformation, sollte ich sagen, unserer simulierten Hand, das ist das Komponente genau hier. Das wird es einfach an diesem Punkt auf der Welt hervorbringen, wo auch immer wir uns gerade befinden, wir sparen in einer Variablen. Und wenn wir dann die zwei Tasten drücken, werden wir das zerstören. Jetzt kompiliere ich hier und speichere. Und lass uns weitermachen und das machen. Setze mein Debug-Objekt hier auf meinen ThirdPersonCharacter. In Ordnung, das sind also die Tests, die wir durchführen werden. Also drücke ich zuerst eins, um hier Feuer zu erzeugen, und Sie werden die Schussrate des Skripts oben sehen . Also los geht's. Der einzige Schlüssel dazu ist der Feuereffekt. Jetzt drücke ich zwei. Das wird das Feuer zerstören, das wir geschaffen und in diese Variable gesetzt haben, genau hier. Also los geht's, Die zwei Schlüssel, es ist jetzt weg. Wir haben dies auch zurückgesetzt, wenn es einmal bekannt war. Jetzt drücke ich erneut die Zwei-Taste. Also werde ich versuchen, dieses Feuer zu zerstören. Jetzt habe ich es gedrückt und Sie können sehen, dass es ausgeführt wird. Aber jetzt, wenn ich hier rauskomme, entkomme und beobachte, was passiert. Wir erhalten das Nachrichtenprotokoll. Tatsächlich haben wir zahlreiche Fehler. Der Grund, warum ich zahlreiche Fehler habe ist, dass es mich anschreit, dass ich versucht habe, dieses Feuer zu zerstören, das es nicht gab. Was hier passiert ist, ist das erste Mal, dass ich die eine Taste gedrückt habe, wir haben diese Variable, diese Blaupauseneffekt-Feuervariable, neu aufgefüllt . Mit diesem hervorgerufenen Blaupauseneffekt Feuer. Sobald es gefüllt ist, komprimieren wir die beiden Schlüssel und zerstören sie dann. Jetzt, wenn ich die beiden Tasten erneut drücke, hatten wir den Inhalt dieser Variablen noch nicht auf etwas zurückgesetzt . Das war also eine leere Variable. Dies ist eine sehr häufige Nachricht , die Ihnen im Nachrichtenprotokoll ausgespuckt wird. Jetzt kann das Nachrichtenprotokoll alle möglichen Fehler ausspucken alle möglichen Fehler , die bei Ihrem Skript auftreten. Dies ist jedoch sehr häufig , wo Sie angeschrien werden, dass der Inhalt einer Variablen nicht gefunden werden kann. Ich werde das hier oben per Drag & Drop ziehen. Schauen wir uns hier unsere Fehlermeldung genauer an. Jetzt können Sie sehen, dass diese Fehlermeldungen im Play-in-Editor-Bereich unseres Nachrichtenprotokolls angezeigt werden. Und es wurde noch einmal mehrmals wiederholt , weil ich mehrmals die beiden Tasten gedrückt habe, um zu versuchen, das Feuer zu zerstören , das es nicht gab. Das Nützliche an diesem Nachrichtenprotokoll ist, dass es einige Hyperlinks enthält, auf die Sie klicken können, um zum Ort, der Luft, zu gelangen. Wenn Sie jetzt hier auf Event Graph klicken, klicke ich einfach auf Event Graph. Es bringt uns zum entsprechenden Event-Diagramm. Wenn wir auf die Stelle klicken, auf der Uber BP, ThirdPersonCharacter ausgeführt steht , werden wir auch zum Event Graph weitergeleitet. Und wenn Sie auf BP ThirdPersonCharacter klicken , gelangen Sie auch zu diesem Event Graph. Wenn Sie jedoch hier auf die Stelle klicken , an der Destroy Actor steht , wird genau angegeben , wo das Problem aufgetreten ist. Dieser Destroy Actor-Knoten hat versucht, ein gültiges Ziel zu finden. Dieses Meldungsprotokoll besagt jedoch , dass dies ein ungültiges Ziel war. Das Ziel war nicht gültig. Und das war wieder einmal so, denn als wir unser Feuer zum ersten Mal erzeugten, konnten wir es zerstören. Aber je mehr wir zwei Tasten drücken, kannst du kein Feuer zerstören, das nicht existiert und das nicht innerhalb dieser Feuervariablen gesetzt wurde. Wie können wir ein Szenario wie dieses beheben? Nun, Sie können überprüfen, ob der Inhalt einer Variablen gültig ist. Und wir können das tun, indem unsere Feuervariable hier auswählen, das Blaupauseneffekt-Feuer, das genau hier bevölkert das genau hier eingerichtet wird. Wir können mit der rechten Maustaste darauf klicken und wir konvertieren es in ein noch validiertes. Beachten Sie nun, dass, sobald wir dies getan haben dieser Knoten von einem pillenförmig aussehenden Knoten in einen Knoten geändert wird , bei dem wir uns einhängen müssen, in Ausführungsdraht. Jetzt können wir ein Drehbuch wie dieses haben. Wenn wir die zwei Tasten drücken, wird zuerst eine Überprüfung durchgeführt. Wenn dies gültig ist, was bedeutet, dass in dieser Variablen etwas gesetzt ist , werden wir weitermachen und alles zerstören , was nicht darin gesetzt wurde. Wenn wir jedoch die beiden Tasten drücken und dies nicht gültig ist, bedeutet dies, dass sich in dieser Variablen nichts befindet. Wir können etwas anderes machen. In diesem Fall ziehe ich einfach die Zeichenfolge heraus und drucke sie aus. Und ich sage einfach gefeuert, nicht gültig. So. Also jetzt, wenn ich kompiliere und speichere und wir noch einmal spielen, bevor ich überhaupt die eine Taste drücke. Lass uns weitermachen und die zwei Tasten drücken und hier oben links in meinem Fenster schauen. Es wird heißen, dass Feuer nicht gültig ist und ich kann es weiter spammen. Jetzt ist es noch nicht gültig , weil wir den Inhalt dieser fire-Variablen nicht festgelegt haben. Es wurde mit nichts bevölkert. Wenn ich jetzt die eine Taste drücke, haben wir jetzt den Inhalt dieser fire-Variablen festgelegt. Wenn ich jetzt die Tabulatortaste drücke, ist sie gültig. Also sieh gleich hier durch. Es ist durchgeschossen, das ist gültig. Es hat den Schauspieler zerstört und es geht uns allen gut. Jetzt wird dieses Meldungsprotokollfenster automatisch angezeigt , wenn es einen solchen Fehler erkennt, es öffnet es für Sie. Wenn Sie jedoch möchten, dass diese Registerkarte für das Nachrichtenprotokoll jederzeit geöffnet ist, lassen Sie mich sie einfach schließen , damit ich sie wieder aktivieren kann. Du kannst einfach unter ein Fenster kommen. Und dann, genau hier unten in der Protokollkategorie, können Sie auswählen, ob sich diese Nachricht anmelden soll. Okay Leute, das wird es für dieses Video im Nachrichtenlogfenster machen . Wir sehen uns im nächsten. 108. Suche: Ordnung, wenn Sie also bis zu diesem Zeitpunkt im Kurs jedes Video angesehen haben , werden Sie mit Blueprint-Scripting ziemlich effizient. Lassen Sie uns nun Ihr Blueprint-Scripting auf die nächste Stufe heben, indem wir einige Produktivitätshacks lernen. In diesem Video ist es unser Ziel, verschiedene Methoden der Suche nach Dingen zu untersuchen , während wir mit Blaupausen arbeiten. Wir werden selbst nach einer Blaupause suchen, um herauszufinden, wo sie sich hier in unserem Inhaltsbrowser befinden, Dingen suchen, die in einem Blueprint existieren können , wie Variablen, Funktionen usw. Jetzt möchten Sie einfach aus Gründen der Arbeitseffizienz gut darin sein . Je schneller Sie Assets, Funktionen, Variablen usw. finden können , desto schneller können Sie sicherstellen, dass Sie qualitativ hochwertige Blueprints gehandelt haben , die frei von Fehlern sind. Um einige dieser Konzepte zu demonstrieren , werden wir uns hier genauer ansehen. Ich werde das in meinem ThirdPersonCharacter machen. Sie können dies von jeder Blaupause aus tun , obwohl das völlig in Ordnung ist. also auf meinen Third-Person-Charakter doppelklicken, lernen wir als Erstes, zu diesem Blueprint-Asset zu navigieren. Wenn ich mit Studenten arbeite, haben sie oft eine Blaupause geöffnet, aber sie haben keine Ahnung, wo sich dieser Blueprint im Inhaltsbrowser befindet. Sie sind möglicherweise in einem zufälligen Ordner deaktiviert. Und wenn ich sie bitte, ihren ThirdPersonCharacter Blueprint zu finden , haben sie keine Ahnung, wo er sich befindet. Nun, es gibt verschiedene Möglichkeiten, es zu finden. Weg. Nummer eins ist, dass Sie einige Filter haben. Sie befinden sich in Ihrem Inhaltsbrowser. Sie können auf einen Ordner Ihrer Wahl klicken. Und Sie können den Inhaltsordner auswählen , da dieser Ordner alle anderen Ordner enthält. Und klicken Sie auf Filter, Blueprint-Klasse, und schon sind Sie bereit, die Dinge mächtig herunterzufahren. Lass mich einfach die Strg-Taste gedrückt halten und das Rad nach unten scrollen. Und sofort können wir sehen, dass unser ThirdPersonCharacter genau da ist. Um einen Filter auszuschalten. Du kannst es einfach abklicken. Das ist mit aus, das ist damit an. Ordnung, eine Möglichkeit , Assets schnell zu finden besteht darin, in Ihrem Inhaltsbrowser nach ihnen zu filtern. Aber ich möchte jetzt darüber sprechen, wie Sie dieses Asset finden wenn Sie sich in diesem ThirdPersonCharacter selbst befinden. Nun, du hast ein paar Möglichkeiten. Nummer eins befindet sich hier oben in Ihrem Blueprint-Editor, Sie haben diese Schaltfläche Durchsuchen genau hier. Wenn Sie darauf klicken, Sie direkt zu der Stelle, an der sich dieses Asset in Ihrem Inhaltsbrowser befindet, das ist sehr praktisch. Wenn du hier drin bist und einfach Control plus b machst, bringt dich das auch direkt dazu. Also Control plus b, war das Hockey, In Ordnung, Weiter, innerhalb eines Blueprints sollten Sie standardmäßig eine Registerkarte Ergebnisse suchen in Ihrem Blueprint-Editor geöffnet haben . Das ist der Typ hier unten. Das ist großartig, denn hier unten findest du Bullet Sells. Sie können Dinge wie Funktionen, Ereignisse, Variablen und alle möglichen Dinge finden , indem Sie einfach hier unten danach suchen. Nun sollte dies wieder standardmäßig aktiviert sein, aber es gibt tatsächlich vier Möglichkeiten, auf dieses Panel zuzugreifen. Auch hier ist die erste Möglichkeit, dass es standardmäßig aktiviert sein sollte, aber nehmen wir an, dass es ausgeschaltet ist. Sie können dies auch über die Symbolleiste aufrufen , indem Sie hier oben auf die Schaltfläche Suchen klicken. Sie werden diese Registerkarte öffnen. Lassen Sie mich einfach noch einmal darauf klicken, wir können auch darauf zugreifen, indem wir hier unter die Fensteroption gehen wir können auch darauf zugreifen, indem wir . Und Sie haben auch die Möglichkeit, Ihr Endergebnis-Panel einzuschalten . Wenn Sie das ausgeschaltet haben, können Sie diesen Arm auch mit Control F bringen, das heißt, das Hotkey-Steuerelement plus F öffnet das Ergebnissuchfenster. Dies ist unser Suchwerkzeug im Blueprint-Editor , mit dem wir schnell eine Vielzahl von Dingen wie einen Knotennamen, einen Pseudonamen, einen Knotenkommentar, einen Eigenschaftsnamen, einen Eigenschaftswert. Also lasst uns das demonstrieren. Shelly. Ich werde einfach nach „Gesundheit ändern“, „Gesundheit ändern“ suchen drücken, und hier die Eingabetaste drücken, und wir können all unsere verschiedenen Ergebnisse sehen , die mit „Gesundheit modifizieren“ übereinstimmen. Ich muss also hier nur auf eine dieser Optionen doppelklicken , um zu sehen, was wir finden. Dort im Graphen befindet sich eine Modifikator-Gesundheitsfunktion . Dies ist eine Modifikator-Gesundheitsfunktion, die dort platziert ist. Und das bringt uns sogar zu der Funktion in diesem Fall , die wir erstellt haben, namens modify health, indem wir hier doppelklicken Das ist meine Modify-Hilfefunktion. Und wieder hatten wir eine reine Modifikator-Hilfe-Funktion , die wir finden konnten, indem wir auch direkt dort klickten. Lass uns noch ein paar Suchergebnisse ausprobieren. Lass uns das klären. Ich werde das Wort spawn eingeben und mir all diese Suchergebnisse ansehen. Nun ist es erwähnenswert, wenn Sie mit der Maus über diese verschiedenen Symbole fahren, Es wird Ihnen sagen, womit sie verbunden sind. Das ist also ein Hinrichtungs-Pin. Doppelklicken Sie darauf, sehen Sie sich das an. Es geht hier um diese Spawn-Ausführungs-Pins . Ich kann mit der Maus darüber fahren. Dies ist eine Spawn-Transformation, Struktur, doppelklicken Sie auf diese Spawn-Transformationen. Es geht also darum, das Wort Spawn zu finden, und ich kann sehen, dass es genau dort ein Pseudoname ist. Was haben wir sonst noch hier? Wir haben einen Spawn-Sound angehängt. Ich kann darauf doppelklicken, das ist ein Funktionsknoten genau dort. Und es lässt uns wissen , dass es sich um einen Knoten handelt. Das ausgefallene F entspricht einer Funktion. Da ist es. Viele Bußgelder finden Sie hier in unseren Suchergebnissen. Option, in Ordnung, versuchen wir, so etwas wie eine Variable einzugeben. Drücken Sie die Eingabetaste. Und beachten Sie, dass ich ein Kommentarergebnis habe. Wenn ich also auf diesen Kommentar doppelklicke, kann ich sogar Kommentare finden, in denen dieses Wort enthalten ist. In diesem Fall findet es das Wort Variable genau dort oben. Versuchen wir es mit dem Wort Targeted, da auf vielen Knoten das Wort Ziel steht. Wie Sie sehen können, steht auf vielen Funktionsknoten dieses Wort target. Dieser sucht nach einem Charakterobjekt, das nach einem Bauernobjekt gesucht hat. Auch hier können Sie viele Informationen erhalten, indem Sie mit der Maus über die verschiedenen Suchergebnisse fahren und auf das Element doppelklicken, um zu diesem zu springen. Versuchen wir auch, einen Immobilienwert zu finden. Ich werde das Wort fünfhundert eingeben , weil ich glaube, dass ich das hier draußen irgendwo wo habe? 500? Ja. Ich habe die maximale Standard-Gehgeschwindigkeit oder die maximale Gehgeschwindigkeit früher im Kurs auf einen Standardwert von 500 festgelegt. So kann es sogar Immobilienwert finden. Lassen Sie mich einfach darauf doppelklicken. Das zeigt mir genau, wo das ist. Das kann also auch praktisch sein. Wenn du so bist, setze ich den Wert 500 irgendwo hin. Wo war das nochmal? Jetzt ist alles gut und gut. Lage zu sein, innerhalb einer Blaupause schnell und effizient nach Dingen zu suchen , ist in der Tat eine Schlüsselkompetenz. Es ist jedoch leistungsfähiger, hier ein Ergebnisfenster zu finden , indem Sie alle Ihre Blaupausen durchsuchen können . Und ja, das kannst du tun. Sie können dies tun, indem Sie auf diese Schaltfläche mit dem Fernglassymbol hier drüben klicken, in allen Blaupausen zu finden ist. Dies ist jetzt besonders wichtig, wenn Sie von einem Entwurf zum anderen kommunizieren. Vielleicht haben Sie eine Gesundheitsvariable wie wir es in unserem Third-Person-Charakter hier tun , auf die in anderen Blaupausen wie unserem Beispiel-Pickup verwiesen wird , diese Gesundheitsaufnahme, die wir zuvor erstellt haben der Kurs. Um herauszufinden, wo diese Gesundheitsvariable in Ihrem Projekt vorhanden sein kann, können Sie einfach nach Gesundheit suchen. Es tritt ein. Hier wird in diesem Blueprint darauf verwiesen. Aber wenn ich hier drüben auf diese Schaltfläche klicke, wird herausgefunden, wo in einem unserer Blaupausen auf das Wort Gesundheit Bezug genommen wird . Wir haben es also hier in unserem WPP-HUD referenziert. Es gibt unser Beispiel Pickup oder Child Pickup, und so weiter. Wir müssen nur auf eines dieser Elemente doppelklicken, um direkt in diese bestimmte Blaupause zu springen . Lassen Sie mich einfach darauf doppelklicken. Holen Sie sich Gesundheit in unseren BP-Beispiel-Pickup , der das ganz oben öffnet. Wir können sehen, wo diese Gesundheitsvariable aus unserem ThirdPersonCharacter abgerufen wird , und dann auch gesetzt. Super praktischer Trick. Okay Leute, das wird alles für die Suche hier in Unreal Engine-Blaupausen erledigen . Wir sehen uns im nächsten Video. 109. Lesezeichen: und effiziente Begrüßen und Navigieren in Blaupausen schnelle und effiziente Begrüßen und Navigieren in Blaupausen ist eine wesentliche Fähigkeit , um das Beste aus der Arbeit in Unreal und Lesezeichen herauszuholen. Blueprint-Lesezeichen sind eines der Dinge, mit denen Sie effizienter werden können. In diesem Video lernen wir, wie Sie einige Blueprint-Lesezeichen setzen, wie Sie diese Lesezeichen finden und dann demonstrieren, warum dies überhaupt nützlich ist . Also, was ist ein Lesezeichen? Sie können sich ein Blueprint-Lesezeichen vorstellen, um einen Abschnitt eines Diagramms zu identifizieren. Es kann sich in Ihrem Ereignisdiagramm oder im Konstruktionsskript befinden, zu dem Sie schnell navigieren möchten. Das ist so, als würde man einen Pin oder eine Wegpunkt-Markierung unten auf einer Karte platzieren . Und dann, indem Sie einfach diesen Marker aus einer Liste auswählen, können Sie direkt zu dieser Stelle in Ihrer Karte oder in diesem Fall Ihrem Diagramm springen . Also habe ich vor dem Start dieses Videos ein Lesezeichen namens Overview innerhalb meines BP ThirdPersonCharacter erstellt . Und nur um Ihnen schnell zu zeigen, wie das funktioniert, wenn ich auf mein Lesezeichen doppelklicke, werde ich genau dorthin weitergeleitet, wo ich dieses Lesezeichen in diesem BP, einem ThirdPersonCharacter Blueprint, platziert habe dieses Lesezeichen in diesem BP, . Lassen Sie mich jetzt einfach meinen Lesezeichen-Tab verlassen und ein Lesezeichen von Grund auf neu erstellen , damit Sie diesen Vorgang verfolgen können. Ordnung, also kannst du in jedem Blueprint ein Blueprint-Lesezeichen erstellen, indem direkt hier drunter kommst. Ordnung? Jetzt zoome ich hier auf einen bestimmten Satz von Knoten heran, die Hey, vielleicht möchte ich genau dort ein Lesezeichen erstellen. Okay, vielleicht arbeite ich an einem Drehbuch und werde weggerufen und ich denke: Weißt du was? Ich möchte diese Knoten hier nicht vergessen. Lassen Sie mich weitermachen und ein Lesezeichen setzen. Du kommst also gleich hier runter. Wir erstellen ein Lesezeichen und ich nenne es einfach mein Gesundheitslesezeichen. Klicken Sie auf Hier hinzufügen. Jetzt wird es sich an diese Zoomstufe sowie diese Positionierung in unserem Diagramm hier erinnern. Jetzt muss ich nur noch auf mein Lesezeichen zugreifen , um darauf zurückzukommen. Wenn ich zufällig davon wegnavigiere, so. Jetzt, wenn ich diese Lesezeichen-Registerkarte aufrufe, die sich unter dem Windows-Menü hier oben befindet, Lesezeichen. Und genau hier siehst du dein benanntes Lesezeichen. Wenn ich also auf Gesundheit doppelklicke , komme ich zu diesen Knoten , derselben Zoomstufe. Jetzt werden Sie auch in diesem Lesezeichenfenster feststellen, dass wir einige gemeinsame Knoten haben. Immer wenn Sie einen Kommentarknoten erstellen. Und ich spreche von diesen üblichen Boxen wie dieser befestigten Static Mesh an der Handsteckdose. Sie werden genau hier unten im Kommentarknoten-Bereich Ihres Lesezeichen-Fensters angezeigt. Wenn Sie also ein Kommentarfeld erstellen , können Sie erneut ein Kommentarfeld erstellen, indem eine Reihe von Knoten wie diesen markieren und dann auf die C-Taste tippen und dann einen Kommentar erstellen. genau hier. Sie können sehen, sobald ich auf diesen CQI tippe , dieser Kommentar hier unten im Kommentarknotenbereich hinzugefügt wurde. Ich nenne das meine HUD-Kreation. Jedes Mal, wenn Sie ein solches Kommentarfeld erstellen, müssen Sie alles tun, und wie Sie sehen können, wurde das nicht aktualisiert. Wenn Sie den Hover kompilieren, wird das aktualisiert. Wenn Sie also genau dort auf diesen Kommentarknoten doppelklicken, gelangen Sie ebenfalls dazu. also standardmäßig auch Kommentarknoten erstellen , Sie in diesen Kommentarfeldern erstellen Sie in diesen Kommentarfeldern eine Art Lesezeichen. Nun eine letzte Anmerkung hier, Sie können diese auch innerhalb eines Konstruktionsskripts erstellen . Auf der rechten Seite wird angezeigt, wo dieses Lesezeichen gesetzt ist. Wir haben das alles in unserem Event-Diagramm festgelegt. Aber wenn wir diese in unserem Konstruktionsskript erstellt hätten , würde es uns wissen lassen , dass sie auch hier in unserem Konstruktionsskript enthalten sind. Okay Leute, das reicht aus, um hier Lesezeichen anzubieten, wir sehen uns alle im nächsten Video. 110. Palette: Willkommen zurück alle. In diesem Video zeigen wir, wo innerhalb einer Blaupause auf das Gaumenfeld zugreifen und wie Sie Knoten zum Favoritenbereich dieses Panels hinzufügen. Wie Sie auf der rechten Seite sehen können, habe ich das Palettenfenster geöffnet. Ich bin in meinem ThirdPersonCharacter Blueprint. Sie können dieses Panel jedoch zu jedem Blueprint hinzufügen. Ich habe hier auch meinen Third-Person-Spielmodus geöffnet. Und Sie können sehen, dass ich es auch dort offen habe. Wie greife ich auf dieses Panel zu? Es befindet sich direkt unter dem Fenstermenü hier. So können Sie es einschalten. Wenn es also jemals losgeht, können Sie es einfach wieder einschalten, indem Sie auf Fenster klicken und Ihr Palettenfenster aufrufen. Dieses Panel zeigt eine nicht kontextsensitive Liste aller verschiedenen Funktionen und Ereignisse, die in Ihrem Blueprint verwendet werden können. Und dieses Panel besteht aus zwei Abschnitten. Ganz oben haben wir hier unsere Lieblingssektion. Das ist ein wenig irreführend denn wenn wir mit der Maus über das Wort Favoriten fahren, heißt es, dass dies eine Liste Ihrer bevorzugten und am häufigsten verwendeten Knoten ist . Jetzt können Sie Knoten als Ihren Favoriten definieren, und ich zeige Ihnen gleich, wie das geht. Es erkennt jedoch, welche Knoten Sie am häufigsten verwenden. Und das ist sehr praktisch, denn anstatt in Ihrem Rechtsklick-Menü nach diesen Knoten zu suchen, können Sie einfach hier in Ihrem bevorzugten Bereich suchen. Und wenn Sie etwas wie alle Schauspieler der Klasse gemeinsam verwenden , können Sie es einfach per Drag & Drop in Ihr Diagramm ziehen und dort ablegen . Jetzt wird diese Liste deiner Favoriten von allen Blueprints geteilt. Also, wenn ich zu meinem BP-Third-Person-Spielmodus-Blueprint wechseln würde. Und Sie können sehen, dass ich hier mein Paletten-Panel geöffnet habe. Sie können sehen, dass ich dieselbe Liste von Favoritenknoten habe. Eine Sache, die ein bisschen schade ist , ist, dass Sie Ihre Favoriten nicht durch Ziehen und Ablegen neu anordnen können. Das wäre eine nette Funktionalität, aber das gibt es leider noch nicht. Unten haben wir unseren Abschnitt „Knoten suchen dem Sie nach Klassen filtern können Sie finden einen bestimmten Ereignis- oder Funktionsknoten. Jetzt können Sie hier klicken, um zu verkleinern, nach welcher Klasse Sie suchen möchten. Oder wenn diese Option auf die Klasse Alle eingestellt ist, können Sie in eines dieser Dropdown-Dreiecke klicken , um zu sehen, was verfügbar ist Wenn ich zum Beispiel hier unter den Charakterbereich komme, finden Sie Knoten wie ducken und springen, zB jetzt, wie du Knoten zu deinem Favoriten-Bereich hinzufügst , genau hier oben. In Ihrem Rechtsklick-Menü gibt es mehrere Möglichkeiten, dies zu tun . Wenn Sie mit der rechten Maustaste klicken und nach einem bestimmten Knoten suchen würden, gebe ich einfach die Druckzeichenfolge direkt dort drüben ein. Wenn Sie mit der Maus über diese verschiedenen Knoten fahren, sehen Sie dieses winzige kleine Sterndreieck auf der linken Seite. So kann man etwas favorisieren. Beachten Sie also, dass, sobald ich darauf klicke , ein ausgefüllter Stern angezeigt wird. Und das zeigt das jetzt in meiner Lieblingssektion dort oben. Zeichenkette drucken. Lassen Sie uns auch Text drucken. Sie sehen, dass das auch erscheint. Wenn Sie sie ausziehen möchten, können Sie einfach hier klicken, um sie auszuziehen. Oder du lässt mich diese einfach wieder anklicken. Sie können hier in Ihrem Favoritenbereich mit der rechten Maustaste darauf in Ihrem Favoritenbereich und diese aus Ihren Favoriten entfernen. Sie können Ihren Favoriten auch Notizen hinzufügen, indem Sie unter den Abschnitt Knoten suchen gehen. Und genau wie wir es mit dem Rechtsklick-Menü tun könnten indem wir diese hier unten markieren, wenn Sie mit der Maus über eine bestimmte Funktion oder Ereignisse fahren, können Sie sie favorisieren, indem Sie auch auf diese Sterne klicken. Sie können auch hier unten im Notizbereich mit der rechten Maustaste darauf klicken und sie auch aus Ihren Favoriten entfernen. Wenn es nun eine ganze Kategorie von Knoten gibt, die Sie zu Ihren Favoriten hinzufügen möchten. Sie müssen nicht jedes einzelne davon starten. Du kannst einfach mit der rechten Maustaste auf diese Kategorie klicken und ich wähle hier den Charakter aus , klicke mit der rechten Maustaste darauf. Wir können sagen Kategorie hinzufügen zwei Favoriten. Und dann würden Sie hier oben sehen, all diese Knoten, Jump, Launched, Character usw., zu unserem Favoritenbereich hinzugefügt wurden. Und da hier alles in alphabetischer Reihenfolge aufgelistet ist, müssen Sie möglicherweise nach oben oder unten scrollen, um all die verschiedenen Knoten zu sehen, die Sie in der Hocke sehen können, auch hier unten. Hocke genau dort, hör auf zu springen, hör auf zu springen, und so weiter. Wenn Sie nun alle diese Knoten aus Ihrem Lieblingsbereich entfernen möchten, müssen Sie dies nicht einzeln tun. Sie können einfach mit der rechten Maustaste hier klicken und diese Kategorie aus Ihren Favoriten entfernen, und sie werden alle nicht mehr bewegt und aus Ihrer Favoritenliste entfernt. Weitere bemerkenswerte Optionen: Wenn Sie einen bestimmten Knoten aus Ihren Favoriten entfernen möchten, können Sie einfach mit der rechten Maustaste darauf klicken. Ich klicke hier mit der rechten Maustaste auf meinen Les-Knoten und entferne ihn aus unseren Favoriten. Eine weitere Möglichkeit besteht darin, mit der rechten Maustaste zu klicken und alle Favoriten zu löschen. Das wird alles klären. Eine weitere Option, die Sie hier haben, ist das Klicken mit der rechten Maustaste und Sie können ein Profil laden. Und wenn Sie das Standardprofil wählen, holen Sie sich einfach alle Favoriten zurück, die mit dem Standardprofil verknüpft sind. Ordnung, da haben Sie es, das Gaumenfeld, es zeigt eine berührungslose, sensible Auflistung aller Funktionen und Ereignisse , die in Blaupausen verwendet werden können. Es hat auch diesen Favoriten-Bereich hier oben , in dem Sie einfach auf Ihre bevorzugten und/oder am häufigsten verwendeten Knoten zugreifen können. Leute, die reichen, um diesen anzubieten. Wir sehen uns im nächsten. 111. Zusammenklappende Knoten: Ordnung, willkommen zurück alle. In diesem Video ist es unser Ziel zu demonstrieren, wie man Knoten innerhalb eines Graphen kollabieren kann, um die Sauberkeit und Lesbarkeit des Graphen zu gewährleisten. Jetzt, nach einer Weile, ein bestimmter Entwurf wie mein ThirdPersonCharacter Blueprint genau hier. Es könnte anfangen, viele Knoten und Knotennetzwerke zu haben, was die Lesbarkeit etwas schwierig macht. Durch das Zusammenklappen von Knoten können Sie Ihr Gras jetzt sauber und verdichtet aussehen lassen. Ordnung, also viel früher im Kurs haben wir dieses Linienverfolgungsskript in unserer dritten Person und Character Blueprint erstellt . Und es war gut. Möglicherweise möchten Sie jedoch Abschnitte Ihres Diagramms wie diesen bereinigen , um die Lesbarkeit ein wenig zu vereinfachen. Wenn all diese Knoten hier draußen sind, kann dies dazu führen, dass die Volkszählung von Zeit zu Zeit überfordert wird. Gibt es also eine Möglichkeit, die Lesbarkeit auf einen Blick zu verbessern, wir wissen, dass alles funktioniert. Knacken Sie dieses Knotennetzwerk etwas ab. Nun ja, das kann er. Was ich hier tun werde, ist, dass ich linken Maustaste klicke und all diese Knoten hier ziehe und hervorhebe, außer meinen Null-Tasten-Eingaben hier. Wenn all diese hervorgehoben sind, kann ich mit der rechten Maustaste darauf klicken und dann auf mein Rechtsklick-Menü. Und ich hätte hier mit der rechten Maustaste auf einen meiner ausgewählten Knoten klicken können. Ich habe die Möglichkeit , Knoten zu reduzieren. Also mache ich das jetzt. Und wenn ich das tue, werden wir sehen , dass dieses gesamte Netzwerk von Knoten zu einem einzigen Knoten zusammengefasst wurde. Jetzt können wir einen Namen benennen und tatsächlich fordert es uns auf, ihm einen Namen zu geben. Also nenne ich diese Line Trace einfach so. Und jetzt haben wir eine stark vereinfachte Grafik. Wir haben all diese Knoten zu einem einzigen zusammengefalteten Knoten zusammengefaßt. Tatsächlich heißt es, dass es sich um ein zusammengebrochenes Diagramm handelt. Wenn wir Obama hierher zoomen, können Sie jetzt sehen, während ich mit der Maus über diesen zusammengebrochenen Satz von Knoten fahre, wir haben dort eine kleine Vorschau in unserem Fenster. Das ist also auf einen Blick praktisch. Man kann irgendwie sehen, was sich darin befindet, obwohl es sehr klein ist. Wenn Sie jedoch die vollständige Ansicht erhalten möchten, müssen Sie nur darauf doppelklicken und einen Blick oben werfen . Hier befinden Sie sich jetzt in einer Registerkarte mit der Aufschrift Linienverfolgung. Das ist genau der gleiche Name wie das, was wir diesen zusammengebrochenen Graphen nannten. Und hier ist unser Knotennetzwerk. Wir haben einen Eingabeknoten. Hier ist das gesamte Innere dieses Diagramms, und dann haben wir einen Ausgabeknoten. Jetzt wird für diese Ausgabe nichts benötigt, da wir nichts hatten , was notwendig war, um Daten oder ähnliches weiterzugeben . Jetzt fragen Sie sich vielleicht, was zum Teufel mit unserem Event Graph passiert ist . Deshalb möchte ich Ihre Aufmerksamkeit auf das Panel My Blueprint hier drüben lenken. Und unter unserem Diagrammbereich, auf diesen kleinen Abwärtspfeil klicken und unter den Abschnitt Event Graph klicken, haben wir nicht nur Zugriff auf unsere Event-Knoten, die wir platziert haben innerhalb eines Kunstereignisdiagramms. Wir haben aber auch schnellen Zugriff auf unsere zusammengefasste Gruppe von Knoten , die wir gerade erstellt haben. Jetzt oben hier oben habe ich auch diesen Rückwärtspfeil und seinen Vorwärtspfeil. Schau dir jetzt diesen Zurück-Pfeil an. Es sind erleuchtete Worte. Der Vorwärtspfeil ist hier draußen irgendwie ausgegraut. Wenn ich darauf klicke, passiert nichts. Aber wenn ich hier auf meinen Zurück-Pfeil klicke, springt es mich zurück aus meinem zusammengebrochenen Diagramm der Linienverfolgung hier, zurück zu meinem Eventgras. Wenn ich also noch einmal auf mein reduziertes Diagramm der Linienverfolgung doppelklicke , wird meine Registerkarte „Ereignisdiagramm“ in meinen Knotensatz zum Ausrichten der Ablaufverfolgung geändert . Wenn ich hier zurück klicke , komme ich zurück zum Event Graph. Jetzt könnte ich auch einfach hier auf meinen Event Graph klicken , um zurück zu kommen. Und jetzt, zurück hier im My Blueprint-Bedienfeld, kann ich zurück in diesen Satz von Knoten zum Reduzieren der Linienverfolgung springen diesen Satz von Knoten zum Reduzieren der Linienverfolgung , indem ich genau hier doppelklicke. Das bringt mich dahin zurück. Außerdem kann ich zu meinem Event Graph zurückkehren indem ich auch hier auf die Option Event Graph doppelklicke . Zeigen Sie also einfach verschiedene Möglichkeiten , um in Ihrem Diagramm zu navigieren. Wenn Sie jemals Ihr reduziertes Diagramm hier erstellen wollten, alles, was Sie tun müssten, lassen Sie mich meine Linie wieder nach oben zoomen. Trace Collapse Graph ist einfach mit der rechten Maustaste Da haben Sie erweiterte Knoten, also klicken Sie darauf. Und das setzt all diese Knoten wieder in Ihr Diagramm ein, so wie Sie es zuvor hatten. Und Sie werden auch feststellen , dass dieses reduzierte Diagramm jetzt nicht mehr unter dem Abschnitt „ Transplantat-Ereignisdiagramm“ des Bedienfelds „Mein Blueprint“ vorhanden Abschnitt „ Transplantat-Ereignisdiagramm“ ist. Nun, wenn wir hier weitermachen, werden wir kollabierende Knoten demonstrieren, bei denen andere Knoten in die Collapse-Knoten eingesteckt und aus ihnen heraus gesteckt werden. Also habe ich hier ein Setup. Wenn ich eine Zu-Taste drücke, würde ich überprüfen, ob es sich bei diesen Aufzählungen, die ich zuvor im Kurs eingerichtet habe , um die Aufzählung des Gesundheitszustands handelt, in der ich die möglichen Werte von super okay habe. Und sie schlecht. Und je nachdem, worauf das eingestellt ist, wollte ich den Charakter ändern, wenn es super ist. Komponenten des Uhrwerks. Springen Sie eine Geschwindigkeit, die steuert, wie hoch mein Charakter auf 1.400 springen kann, wenn mein Gesundheitszustand super ist Wenn es in Ordnung ist, lasse ich ihn bei 700. Und wenn ich dieses Set schwer verletzen müsste, würde ich meine Sprünge auf die Geschwindigkeit 2350 setzen. Jetzt werde ich hier noch einmal demonstrieren , was passieren würde, wenn ich würde, bei denen andere Knoten in die Collapse-Knoten eingesteckt sind und aus denen sie herausgenommen wurden. Um das zu demonstrieren, wähle ich einfach diese drei Knoten hier aus. Beachten Sie also diese Kabel genau hier, genau hier und genau hier, und selbst hier müssen sie etwas zum Anschließen haben. Also wenn ich diese Knoten zusammenklappen und sogar etwas in diese Auswahlknoten fließt. Also klicke ich mit der rechten Maustaste darauf. Ich werde diese Knoten zusammenbrechen lassen. Und jetzt sieh es dir an. Mein Collapse-Knoten sieht so aus. Ich habe einen Eingangspin, aber ich habe auch einige Ausgangspins weil wir diese Charakterbewegungsinformationen an diese gesetzten Sprünge weitergeben müssen diese Charakterbewegungsinformationen an diese gesetzten Sprünge weitergeben , dh Geschwindigkeitshinweis, und wir müssen auch diese Enumeratoren weitergeben. Also nenne ich dieses spezielle Diagramm, mein zusammengebrochenes Gesundheitsdiagramm. Das ist ein guter Name. Und wenn ich jetzt darauf doppelklicken und es öffnen würde, können wir sehen, dass wir einen Ausführungseingabe-Pin haben, und wir können dies überprüfen, indem zurück zu unserem Ereignisdiagramm springen. Da ist mein einziger Eingabe-Pin für die Ausführung. Lassen Sie mich darauf doppelklicken. Noch einmal. Lass mich das ein bisschen aufräumen. Es werden jedoch automatisch einige Ausgangspins auf diesem Ausgangsknoten eingerichtet . Wir haben also drei Ausführungsausgangspins und eine Charakterbewegungskomponente, auch einen Ausgangspin. Das ermöglicht es dir, diese zu benennen, wenn du dich nicht mochtest, weißt du, neuer Enumerator sechs, ich könnte diese beiden super okay nennen. Und sie schlecht. In der Tat wäre das keine schlechte Idee, das nur klarzustellen, klarer zu machen. Okay? Okay. Und wir ändern das so, dass es schwer verletzt wird. Wenn wir jetzt zu unserem Event Graph zurückkehren würden, scheint es genau dort etwas sinnvoller zu sein. Ordnung, also da haben Sie es zusammenbrechen und wissen, dass dies etwas ist, das ich normalerweise nicht empfehle, bis Sie sich in der Endphase Ihres Projekts befinden. Und Sie sind mit all Ihren Skripten zufrieden und möchten Ihre Grafiken nur ein wenig bereinigen, nur um der Lesbarkeit willen. Netter praktischer Trick, den ihr mitnehmen könnt und der alles für dieses Video erledigt. Wir sehen uns im nächsten. 112. Benutzerdefinierte Layouts: In Ordnung, willkommen zurück an alle. Nun, nachdem Sie einige Zeit in Unreal gearbeitet haben, werden Sie zweifellos Ihre eigene Vorgehensweise entwickeln , Ihren eigenen Arbeitsablauf, wenn Sie so wollen, auf Ihre eigene Art, all diese Dinge Ihren eigenen Arbeitsablauf, wenn Sie so wollen, auf Ihre eigene Art unterschiedlich zu gestalten Informationspanels, nicht nur in einem Blueprint-Editor, wie ich ihn hier geöffnet habe, sondern in jedem der Editoren in Unreal, das gilt für deinen Leveleditor, Static Mesh-Editoren, Materialeditoren, all diese Dinge. Dann stellt sich die Frage, gibt es eine Möglichkeit, ein benutzerdefiniertes Layout zu speichern , das ich vielleicht später laden möchte. Die Antwort darauf lautet ja, natürlich können Sie das. Dazu finden Sie diese Option im Windows-Menü. Wenn Sie in einem Ihrer Editoren hier unter Fenster und unter dem Layoutbereich erscheinen, können Sie hier ein benutzerdefiniertes Layout erstellen und speichern. Sie können dieses Layout laden, Sie können dieses Layout entfernen usw. Also, wie das geht , zeigen wir in diesem Video. Jetzt möchte ich hier darauf hinweisen, dass ich, während ich im Leveleditor bin , diese Option im Fensterbereich genau hier habe. Wenn ich in meinen Third-Person-Charakter springen würde. Ich bin also in einem Charakterklassen-Blueprint und komme unter das Fenster. Ich kann die Layoutoptionen sehen und ich kann auch hier unten ein individuelles Layout erstellen. Und lassen Sie uns einfach auch in einen anderen Zufallseditor springen . Ich weiß nicht, ich werde unter gestarteter Inhalt kommen , vielleicht fordert der gute alte Stuhl Static Mesh Editor auf. Mach das auf. Sicher. Und unter der Fensteroption hier habe ich auch diese Layoutoptionen. Was ich also tun werde, bevor ich mein eigenes benutzerdefiniertes Layout erstelle, ist, hier verschiedene Fensterpaneele zu verschiedene Fensterpaneele verwenden und sie nach meinen Wünschen zu organisieren. Und ich fange hier in meinem statischen Netz an und die Schwester kommt unter das Fenster. Ich werde einschalten, sagt mein Nachrichtenprotokoll. Sicher. Ich sage, ich möchte das hier neben meinen Panels andocken . Ich komme dann zu meinem ThirdPerson-Character Blueprint. Lass uns ein anderes Fenster öffnen. Mal sehen, ich werde mein Ausgabe-Log mitbringen. Klar, ich werde das hier unten andocken. Ich werde meine Level-Lesezeichen neben mein Blueprint-Panel legen . So wie es ist. Ich nehme mein Paletten-Panel und lege es auch neben meine Komponenten. Sicher, warum nicht? Sie haben übrigens den Vorteil , eine Pause einzulegen, damit Sie sehen und sich daran erinnern können , wo ich all diese Paneele platziert habe. Und dann komme ich in meinen Leveleditor. Ich habe mein Level-Fenster von Anfang des Kurses geöffnet. Ich habe das wieder angezogen. Ich habe auch meine Welteinstellungen aktiviert. Wie wäre es, wenn ich auch das Panel der Place Actors Panels hinzufüge. Und mal sehen, was ich sonst noch hier habe? Ich werde weitermachen, lass uns World Partitioner einsetzen. Dies ist der Fall, wenn Sie mit Landschaften arbeiten. Also werde ich das auch hier offen haben. Okay, also passen Sie bei all diesen Layouts an, wie ich unquote zitiere, mag es. Ich werde hier unter meine Fensteroption kommen. Und ich werde unter Layout speichern kommen. Und ich kann mein Layout speichern , da es hier einen kleinen Dialog öffnet. Und ich nenne das einfach mein Kostüm-Layout. Und für meine Beschreibung hier ist es natürlich optional, wie es heißt, ich nenne das einfach mein Beispiel-Layout. Ich werde weitermachen und auf Speichern klicken. Lass mich wissen, dass es in diesem Verzeichnis dort unten gespeichert wurde . Und jetzt gehe ich unter ein Fenster. Und in meinen Layoutoptionen laden kannst du mein benutzerdefiniertes Layout sehen. Aber das ist es, was ich derzeit eingerichtet habe. Also werde ich das standardmäßig wieder auf das Standard-Editor-Layout zurücksetzen. Wenn Sie dies jetzt tun, wird Ihre Engine geschlossen und standardmäßig werden alle Fensterpaneele wieder an der Stelle angezeigt, alle Fensterpaneele wieder an der an der sie standardmäßig waren. Das ist also mein statischer Mesh-Editor, mein Third-Person-Charakter. Ich habe mein Detailpanel hier drüben. Man merkt, dass das Paletten-Panel komplett weg ist. Wo sind meine Fenster hier unten? Sie sind alle weg. Und hier in meinem Leveleditor selbst fehlt mir mein Level-Tab hier. Wo ist mein Inhaltsbrowser? Mir fehlen meine Welteinstellungen, die Weltteilung. Es ist alles wieder auf die Standardeinstellungen des Editors zurückgesetzt. Jetzt gehe ich wieder unter ein Fenster. Ich kann das Layout laden. Und wallah, du kannst sehen, dass mein Gaumenpanel wieder da ist, wo ich es hineingesteckt habe. Mein Lesezeichen-Panel ist wieder da drüben. Alles ist wieder da, wo ich es hatte. Leveleditor, Schauspieler platzieren, Panel, Level, Tab-Welteinstellungen, Weltpartition usw. Es ist also erwähnenswert , dass Sie, wenn Sie Ihr eigenes benutzerdefiniertes Layout erstellen, das Layout nach dem Speichern dieses Layouts nicht nur für den aktuellen Editor speichern, für den in dem Sie gerade arbeiten. In diesem Fall wäre dies mein Leveleditor, aber Sie speichern dieses Layout auch für alle anderen Editoren. in meinem Fall hier auch diesen statischen Mash-Editor und die Blueprint-Editoren mit einbeziehen, um Allow zu entfernen, würden Sie einfach unter Fenster zum Entfernen des Layouts kommen . Da ist mein benutzerdefiniertes Layout. Wenn ich das auswähle, erscheint hier ein Dialogfenster mit der Frage: Bist du sicher, dass du das tun möchtest? Wenn Sie nun auf Okay klicken, werden Sie feststellen, dass mit meinem benutzerdefinierten Layout nichts passiert ist, da dies das Layout ist , das ich derzeit verwende. Das Layout, das Sie derzeit verwenden, wird also nicht entfernt. Wenn ich also wirklich mein Cousin-Layout entfernen wollte, müsste ich zuerst zu einem anderen Layout zurückkehren. In diesem Fall kehre ich zu meinem Standard-Editor-Layout zurück. Und jetzt, wenn ich unter unsere Fensteroption kommen würde, unter den Layoutbereich und ich versuche, dieses Layout zu laden. Sie können sehen, dass es nicht mehr existiert. Nun, wo wir hier sind, wollte ich auch darauf hinweisen, dass Sie ein vorhandenes Layout importieren können oder Sie beim Speichern eines Layouts auch versuchen könnten, ein Layout zu exportieren. werde ich hier nicht demonstrieren, wollte Sie aber darauf aufmerksam machen. dringend empfohlen, Ihre eigenen benutzerdefinierten Layouts zu erstellen , da dies Ihnen hilft , Ihren Arbeitsablauf zu verbessern. Leute, das wird alles für dieses Video tun. Wir sehen uns im nächsten. 113. Tipps und Tricks: Willkommen. In diesem Video ist es das Ziel, dich mit zusätzlichen Tipps und Tricks auszustatten dich mit zusätzlichen Tipps und Tricks , die dir helfen, effizienter mit Blueprints in Unreal zu arbeiten , und nicht, diese Tipps und Tricks vorzuführen, an denen ich arbeiten werde innerhalb von Maya, BP ThirdPersonCharacter. Beachten Sie jedoch, dass Sie in jedem Ihrer Blueprints arbeiten können. Okay, da unser ThirdPersonCharacter geöffnet ist, wollte ich deine Aufmerksamkeit auf diese beiden Pfeile hier oben in meinem Event-Diagramm lenken. Es sind Vorwärts- und Rückwärtspfeile, wie Sie sie in jedem Internetbrowser sehen. Auf diese Weise können Sie von Grafik zu Grafik wechseln. Jetzt, gerade jetzt ist es ausgegraut. Und wenn ich versuchen würde, sie anzuklicken, passiert nichts, weil wir das einfach öffnen. Da ich jedoch auf verschiedene Bereiche meines Blueprint-Panels oder meines Lesezeichen-Bereichs klicke verschiedene Bereiche meines Blueprint-Panels oder , die ich hier unter Fenster-Lesezeichen geöffnet habe . ich anfange, auf einige dieser Dinge zu klicken, springe, wie gesagt, zu der Stelle, an der sich meine Nulleingabetaste befindet. Ich komme in meine Turbo-Run-Funktion. Oder ich navigiere hier zu einer meiner Blueprint-Interfaces, geht's Die Interaktionsfunktion oder eines meiner brennenden Makros, oder ich bin zu einem meiner Lesezeichen hier gesprungen, ich gehe zu meinem Gesundheits-Lesezeichen oder sogar mein Übersichts-Lesezeichen. Jetzt hast du gesehen, wie ich dort auf verschiedene Dinge geklickt habe. Jetzt habe ich eine Historie erstellt, und jetzt kann ich diese Zurück- und Vorwärts-Schaltflächen verwenden, um zu den Dingen zu navigieren, auf die ich geklickt habe. Wenn ich also hierher zurückkehre, gehe ich zurück zu meinem Gesundheits-Lesezeichen, wieder zurück, zu meinem Makro hier, Maia in Flammen, Makro, wieder zurück zu meiner Interaktionsoberfläche. Und wie Sie sehen, funktioniert es wie jeder Internetbrowser, Zurück- und Vorwärts-Tasten, Vorwärts , Zurück, Vorwärts, Zurück usw. Wenn Sie nun mit der Maus darüber fahren, heißt es, dass Sie mit der rechten Maustaste klicken können , um den vollständigen Verlauf zu sehen. Ich weiß, dass das zu einem bestimmten Zeitpunkt funktioniert hat. Wenn ich jedoch versuche, jetzt mit der rechten Maustaste zu klicken, kann ich den vollständigen Verlauf nicht sehen. Ich muss mir vorstellen , dass die Funktionalität ihren Weg zurück finden wird. Okay, als nächstes wollte ich dir zeigen, wie man Werte in Unreal kopiert und einfügt. Nun, das weiß ich, Sie wissen, wie man das mit so vielen anderen Computeranwendungen macht. Strg C zum Kopieren, Strg V zum Einfügen. Aber das ist einer dieser Tricks, die vielen Menschen, aus welchem Grund auch immer, als möglich entgeht . Was ich hier in meinem Komponenten-Panel machen werde, und ich werde hier zu meinem Viewport springen, weil das ein bisschen visueller Natur sein wird. Ich werde eine brandneue Komponente hinzufügen. Ich werde ein nettes Agora-Partikelsystem hinzufügen. Das wird an meine Kapselkomponente angehängt. Ich lasse den Namen Niagara stehen. Das wird in Ordnung sein. Ich werde hier ein Niagara-System-Asset einrichten. auf dieses Drop-down-Menü klicke, stelle ich eine dieser magischen Optionen ein. Sicher. Derzeit erscheint es hier genau in der Mitte, da es sich relativ zu unserer Kapselkomponente an der Position 000 befindet. Dies ist meiner Beraterkomponente beigefügt. Aber nehmen wir an, ich möchte, dass dieses Partikel genau an der Stelle meiner simulierten Handkomponente erscheint . Nun, das wäre so einfach wie das Kopieren dieses Standorts. Dies ist ein relativer Ort. relative Lage dieser Komponente im Verhältnis zu unserer katholischen Komponente. Und dazu kann ich einfach hier am Standort mit der rechten Maustaste klicken und mit der rechten Maustaste auf Kopieren klicken. Sie können Schicht plus Reis sehen. rechte Maustaste ist hier der Hotkey dafür. Dann kann ich zu meinem Niagara-Partikel kommen, hier mit der rechten Maustaste klicken und ich könnte es einfügen. Aus welchem Grund auch immer, das ist ein sehr praktischer Trick, der den Leuten so entgeht, dass er überhaupt möglich ist. Aber glaub mir, ich habe diesen Tipp die ganze Zeit benutzt. Als Nächstes möchte ich Ihre Aufmerksamkeit auf das Fenster Mein Blueprint lenken, in dem sich dieses Zahnradsymbol befindet. Und wenn ich darauf klicke, möchte ich über diese am häufigsten verwendete Option sprechen , die vererbte Variablen anzeigt. Derzeit habe ich das überprüft. Wenn ich das jetzt abhake, wirst du feststellen, dass viele variable Kategorien hier verschwinden werden. Und der Grund, warum diese verschwinden, ist , dass diese vererbten Variablenkategorien dort von unserer übergeordneten Charakterklasse vererbt wurden . Nun, der Grund, warum es wichtig ist, darüber Bescheid zu wissen, ist , dass, wenn Sie Basisklasse erstellen eine Basisklasse erstellen und dann von dieser Klasse erben, fragen Sie sich vielleicht, Hallo, wo alle Variablen, die ich in dieser Basisklasse eingerichtet habe, wo gibt es sie überhaupt? Um diesen Punkt zu verdeutlichen, werde ich hier einen weiteren Entwurf öffnen. Zu Beginn des Kurses haben wir diesen Entwurf für untergeordnete Charaktere erstellt , von meinem Charakter in der dritten Person übernommen wurde. Also lass mich diesen Typen einfach sehr schnell öffnen. Das ist ein Kind. Wenn Sie dies jemals sehen, können Sie es im vollständigen Blueprint-Editor öffnen , indem Sie hier klicken. Du kannst sehen, dass die Elternklasse hier mein BP-Thirt-Person-Charakter ist . Wenn wir nun in den variablen Bereich des Kindes schauen. Moment mal, wo alle Variablen in meiner übergeordneten Klasse hier, ich habe all diese Variablen erstellt. Ich habe auf eine Darstellervariable, eine Socke und eine Variable geklickt. Dies sind Variablen , die wir während des gesamten Kurses gutgeschrieben haben . Wo sind sie? Nun, wenn ich in das Kind gehe und im My Blueprint-Bedienfeld auf dieses Zahnradsymbol klicke im My Blueprint-Bedienfeld auf dieses Zahnradsymbol und vererbte Variablen zeige. Und wir öffnen hier unsere Variablen-Kategorie. Jetzt können wir all die verschiedenen Variablen sehen, die wir in unserer übergeordneten Klasse eingerichtet haben. Als Nächstes möchte ich Ihre Aufmerksamkeit auf ein Zahnradsymbol lenken , das sich ganz oben rechts in unserem Detailbereich befindet . Wenn Sie darauf klicken, werden Ihnen auch verschiedene Optionen angezeigt. Ich werde einige davon erläutern , die ich wirklich gerne verwende, wie zum Beispiel nur modifizierte Eigenschaften anzeigen. Wenn Sie diese Option aktivieren, reduzieren Sie Ihr Detailfenster, sodass nur die Eigenschaften angezeigt werden , die Sie geändert haben. Das ist super praktisch, um zu wissen, Hey, was zum Teufel habe ich an dieser Komponente geändert? Ich finde das besonders nützlich für so etwas wie die Character Movement Component, da die Character Movement Component alle möglichen Eigenschaften enthält. Wenn ich also nur die herausfinden möchte, die ich geändert habe , kann ich dort rechts klicken und nur die geänderten Eigenschaften anzeigen , im Gegensatz zu, wenn ich das abhake, diese riesige Wäscheliste von Eigenschaften, die mir sonst präsentiert werden, einige der anderen Optionen, die ich gerne in diesem Menü erkunde, wir müssen alle erweiterten Details anzeigen. Was zur Hölle ist das? Nun, in jeder dieser angegebenen Kategorien haben wir einige erweiterte Eigenschaften, die weniger bekannt sind, weniger nützlich sind usw. Du kannst diese wie gewohnt manuell anklicken und anzeigen. Wenn Sie jedoch nicht so tun möchten , wie ich es gerade tue, und sie alle nacheinander entlarven. Du kannst einfach auf das Zahnradsymbol gehen und alles für Fortgeschrittene anzeigen. Und all diese erweiterten Kategorien werden sofort aktiviert , sodass Sie sie nicht alle anklicken müssen. Das ist praktisch. Lass mich das einfach wieder abstellen. Etwas anderes , das ich hier gerne verwende , ist in dieser Kategorie Ich kann alle Kategorien reduzieren oder alle Kategorien erweitern. Ich habe hier wieder einmal die Bewegungskomponenten meines Charakters ausgewählt. Hier gibt es viele verschiedene Kategorien. Charakterbewegung, Springen, Fallen, Komponente, Tick, Charakterbewegung, Vernetzung, viele verschiedene Kategorien. Wenn ich also möchte, dass sie alle zusammenklappen, könnte ich einfach darauf klicken und mir alle einzelnen Kategorien ansehen , sodass ich nur die öffnen kann , die mich interessieren. Und natürlich kann ich das Gegenteil tun, nämlich alle Kategorien zu erweitern. Das ist also eine einfache Möglichkeit, sie alle zu öffnen , ohne es einzeln tun zu müssen. Ordnung, als Nächstes möchte ich darüber sprechen, was diese Schaltfläche zum Ausblenden von nichts zu tun hat, in der Werkzeugleiste eines Blueprint-Editors bewirkt. Jetzt, wo das wirklich funktioniert, müssen Sie sich in Ihrem Event-Graph oder Ihrem Konstruktionsskript oder Ihrer Funktion oder einem Makro befinden, etwas mit einigen Knoten. Ich werde meine Kapselkomponente in diesem Knotennetzwerk hervorheben . Und ich werde auf diesen Button klicken. Das ist wie ein Ein-/Aus-Schalter hier. Wenn es blau ist, ist es eingeschaltet. Wenn es grau ist, ist es ausgeschaltet. Lass mich das einfach wieder einschalten. Das hat dazu geführt, dass es ausgegraut ist. Alle Knoten werden ausgespenstet. Alle Knoten, die nichts mit dem Knoten zu tun haben, den ich ausgewählt habe, einem oder denen, die ich ausgewählt habe. Warum sind die schon alle beleuchtet? Nun, ich füge Actor-Zweikomponentenknoten genau hier Sie sind auf die Kapitalkomponente angewiesen, weil sie an den übergeordneten Eingang angeschlossen sind. Diese Spawnen Schauspieler aus Klassenknoten genau hier. Sie sind auf die Weltveränderung angewiesen , die wir von der katholischen Komponente bekommen. Diese sind also auch beleuchtet. Wenn ich nun hier wieder hineinzoomen würde, sieht man, dass auch alle anderen Knoten ausgeblendet sind, weil sie nicht mit dem verwandt sind , den ich gerade ausgewählt habe, dieser katholischen Komponente. Nun, das ist äußerst hilfreich wenn Sie ein Kabelgewirr haben. Es ist schwierig, sich ein Bild von dem zu machen , was Ihr Skript tut. Und Sie versuchen wirklich, ein Licht zu leuchten, um sich nur auf eine bestimmte Teilmenge von Knoten zu konzentrieren . Jetzt wollte ich hier auch darauf hinweisen, dass wir hier rechts neben unserer Schaltfläche „Nichts zu tun haben“ diese drei Punkte haben. Wenn Sie darauf klicken, haben Sie die Möglichkeit, den Knotenstatus zu sperren. Wenn ich nun klicke und das einschalte, können wir jetzt mit diesem Häkchen sehen, dass es eingeschaltet ist. Dadurch bleiben alle Knoten in ihrem aktuellen Zustand oder in ihrer aktuellen Dosis markiert. Das heißt, wenn ich woanders klicken und auf einen anderen Knoten klicken würde, bleiben alle anderen Knoten immer noch draußen. Und die, die ich für erleuchtet hatte , bleiben beleuchtet, bis ich sie entsperre. Das ist also gut zu wissen. Okay Leute, es gibt einige Tipps und Tricks für die Arbeit mit Unreal Engine-Blueprints. Ich hoffe, Sie finden sie nützlich. Wir sehen uns alle im nächsten Video. 114. Productivity: In Ordnung, willkommen zurück an alle. In diesem Video ist es unser Ziel, alle im Blueprint-Editor integrierten Tastenkombinationen zur Steigerung der Produktivität zusammenzufassen alle im Blueprint-Editor integrierten Tastenkombinationen zur Steigerung der Produktivität , damit Sie Ihre Skripts effizienter erstellen und navigieren können . Zunächst einmal werde ich Ihnen zeigen, wo Hotkeys in Unreal platziert sind , sodass Sie Ihre produktivitätssteigernden Hotkeys für alle Bereiche der Engine anpassen können Ihre produktivitätssteigernden Hotkeys , nicht nur innerhalb von Blaupausen aber überall. Also, wo können Sie diese Hotkeys anpassen? Nun, das wird in Ihren Editor-Einstellungen gemacht. Du kannst auf deine Editor-Einstellungen zugreifen indem du hier oben auf die Schaltfläche Bearbeiten klickst. Editor-Einstellungen. Und wenn dieser Tab geöffnet ist, öffne ich ihn einfach oben rechts, hier oben. Auf der linken Seite befinden sich Tastenkombinationen. Du klickst hier. Und hier werden all die verschiedenen Hotkeys für jeden Bereich der Engine, jeden Editor, den Blueprint-Editor gesetzt . Hier sehen wir einige Hotkeys wie das Kompilieren von F7. Sie haben die Rücktaste , um zu einem übergeordneten Grafiksteuerelement zu wechseln, und F öffnet das Suchmenü usw. Nun, das ist natürlich großartig, denn wenn Sie feststellen dass Sie eine bestimmte Aktion immer wieder ausführen, Sie können einige Hotkeys für sich selbst erstellen. Außerdem können Sie die Hotkeys nach Ihren Wünschen anpassen. Und tatsächlich ist es für mich wertvoll, das hier zu tun, denn die F7-Taste, die gerade kompiliert werden muss , ist auch der Hotkey, den ich zum Starten und Stoppen an meine OBS-Aufnahmesoftware gebunden hatte an meine OBS-Aufnahmesoftware gebunden . mein Spiel. Wenn ich das ändern möchte, könnte ich einfach hier klicken und sagen, dass ich möchte, dass das das Klicken ist , dass das Leerzeichen F8 wird. Und Sie können auch eine zweite Bindung hinzufügen. Also ich kann sagen, klar, F9 wird das auch tun. Jetzt gibt es hier keinen Speichern-Button oder irgendetwas anderes. Also, wenn ich in meinen ThirdPersonCharacter Blueprint gehen und eine Änderung vornehmen sollte, wie ich einfach diesen Draht abgeschnitten habe, dann schließe ihn wieder an. Jetzt können Sie sehen, dass ich aufgefordert werde, zu kompilieren. Wenn ich also F8 drücken würde, wird es kompiliert. Aber lassen Sie mich noch einmal einen Ausschnitt ziehen und ihn wieder anschließen. Und wenn ich F9 drücken würde und Sie mich offensichtlich nicht sehen können, wie ich sie drücke. Du wirst ihm einfach vertrauen. Ich mache es. F9, das wird es auch kompilieren. Eine wirklich praktische Möglichkeit, Ihre Tastenkombinationen für verschiedene Bereiche des Editors anzupassen . Okay, wenn das geklärt ist, werde ich zeigen, wie man eine Reihe von Tastenkombinationen in Blueprints ausführt . Diese werden spezifisch für Baupläne sein , über die Sie Bescheid wissen sollten. Ich habe im Laufe des Kurses viele davon durchgemacht. Aber das wird als großartige Zusammenfassung dienen. Also zurück in meinem ThirdPersonCharacter, finde einfach eine Auswahl von Knoten, wenn du willst, um zu Hause mitzuspielen. Wenn Sie einen Knoten auswählen möchten, Sie einfach mit der linken Maustaste darauf, um ihn auszuwählen. Wenn Sie zu einer bestimmten Auswahl etwas hinzufügen möchten, können Sie einfach die Umschalttaste gedrückt halten. Ich halte die Umschalttaste gedrückt und klicke so mit der linken Maustaste. Wenn Sie eine Auswahl umschalten möchten, können Sie die Strg-Taste gedrückt halten und mit der linken Maustaste klicken. So wie es ist. Um eine Marquee-Auswahl zu erstellen, können Sie einfach mit der linken Maustaste klicken und ziehen, und schon erhalten Sie dieses kleine Feld mit gepunkteten Linien. Und wann immer sich das berührt, wählen Sie genau das aus, was die Marquee-Auswahl mit der linken Maustaste anklickt und zieht. Wenn Sie etwas zu Ihrer Marquee-Auswahl hier hinzufügen möchten , können Sie die Umschalttaste gedrückt halten und mit der linken Maustaste klicken, und dann können Sie auf diese Weise einige Knoten hinzufügen. Wenn Sie eine Auswahl aus Ihrer Marquee-Auswahl entfernen möchten , können Sie einfach die Strg-Taste gedrückt halten, linken Maustaste klicken und ziehen. Dadurch wird alles entfernt, was Ihre Marquee-Auswahl berührt. Das waren also Befehle zur Blueprint-Auswahl. In Ordnung, Navigationsbefehle, über die Sie Bescheid wissen sollten. Du hast die rechte Maustaste, wenn du das gedrückt hältst. Wir ziehen Sie durch das gesamte Diagramm. Du hast dieses Handsymbol, das du einfach so herumziehen kannst. Wenn Sie auf die Auswahl zoomen möchten, können Sie einfach die Home-Taste auf Ihrer Tastatur drücken . Dadurch wird das, was Sie ausgewählt haben, vergrößert. Gestalte es, wenn du willst. Wenn Sie Ihr Diagramm vergrößern und verkleinern möchten, heißt das einfach, dass Sie bereit sind, hinein- und herauszuscrollen , wie das Scrollrad auf und ab. Nun, wenn Sie Beyond Scale 1.1 vergrößern möchten. Also genau hier oben ist Ihre Zoomstufe oben rechts. Zoom eins, Doppelpunkt eins. Wenn Sie darüber hinaus zoomen möchten, halten Sie die Strg-Taste gedrückt, und dann können Sie Passat tatsächlich bis zu einem vergrößern Zoomstufe von plus sieben. Okay, sehen wir uns einige generische Befehle du über Control plus b kennen solltest. Das wird dich dazu bringen, dieses Asset zu tragen. In diesem Fall befindet sich der ThirdPersonCharacter im Inhaltsbrowser. Lass mich da wieder reinspringen. Sie haben die Steuerung plus S, das Ihren Blueprint speichert. Dann haben wir hier generische Computerbefehle , bei denen, wenn Sie etwas wie Strg plus y tun würden , das etwas wiederholt, Control plus z, das etwas rückgängig macht. Lassen Sie uns das untersuchen, indem diesen Knoten einfach ein wenig nach unten verschieben. Ich mache Control Z, um das rückgängig zu machen, Strg Y, um das zu wiederholen, um etwas in diesem Blueprint zu finden , kannst du Control plus F machen Ich habe auch dieses Fenster mit schönen Ergebnissen hier unten geöffnet. Lassen Sie mich das schließen. Wenn ich also Kontrolle plus F machen würde, würde das zu meinen Endergebnissen führen. Wenn ich versuchen würde, etwas wie „ Mein Alles, was mit Gesundheit zu tun hat“, zu finden , könnte ich danach suchen. Sie sind einfach innerhalb dieses Entwurfs. Wenn ich jedoch in einem Blueprint etwas finden möchte, würde ich Strg-Umschalttaste und F Dadurch wird mein Suchmenü in jedem Blueprint-Menü hier angezeigt. Und wenn ich jetzt Gesundheit eintippe und die Eingabetaste drücke, kann ich herausfinden, wo das Wort Gesundheit in jeder Art von Blueprint referenziert wird . Charakter einer dritten Person, mein WPP, HUD-Beispiel, Pickup usw. Wie Sie sich von Anfang des Kurses erinnern, ist F7 nun der Standard-Hotkey zum Kompilieren Ihres Blueprints. Ich habe es für mich persönlich geändert, in meinen Editor-Einstellungen habe ich es auf F8, F9 geändert, aber F7 ist die Standardmethode, um Ihre, in Ordnung, einige variable Aktionen zu kompilieren , über die Sie Bescheid wissen sollten. Lass mich einfach in einen leeren Raum gehen. Ich werde nur schnell einen Anzeigenknoten aktivieren. Operatoren, Fügen Sie eine Möglichkeit hinzu, eine Variable schnell abzurufen und festzulegen. Wenn Sie es auf der Eingangsseite anschließen möchten, können Sie einfach mit der linken Maustaste klicken und auf einen solchen Pin ziehen , um den Inhalt dieser Variablen abzurufen. Wenn Sie jedoch auf der Ausgangsseite eines Knotens ziehen und dort ablegen möchten, klicken Sie mit der linken Maustaste auf diesen Pin und Sie bringen automatisch eine Mitte dieser Variablen ein. Sie sollten das auch wissen, wenn Sie die Strg-Taste gedrückt halten und mit der linken Maustaste auf Strg und Linksklick klicken und dies in ein Diagramm ziehen und es an einer beliebigen Stelle ablegen. Sie können diese Variable abrufen, wenn Sie die Alt-Taste gedrückt halten und mit der linken Maustaste klicken und ziehen Sie können eine Mitte dieser Variablen hineinbringen. Und wenn Sie sich nicht sicher sind, was Sie mit dieser Variablen machen möchten, können Sie mit der linken Maustaste auf Ziehen klicken und dann erhalten Sie das Menü zum Abrufen oder Einstellen. Und auf diese Weise können Sie im Handumdrehen entscheiden, was Sie damit machen möchten. Nun, etwas, das vielen Leuten mit Variablen im Bereich Mein Blueprint nicht bewusst ist, können Sie sie neu anordnen, indem Sie sie einfach herumziehen. Wenn ich also alle meine Float-Variablen nahe beieinander platzieren möchte , kann ich einfach mit der linken Maustaste klicken und ziehen. Also, welches auch immer du draufziehst , es wird direkt darüber springen, quasi so. Du könntest also so etwas tun, um deine Variablen zu organisieren, alles nett in deinem myvariable-Bereich. Als Nächstes werde ich an verschiedenen Knotenaktionen teilnehmen, die Sie ausführen können. Und ich werde hier ein paar dieser Getter und Setter löschen . Ich werde diesen Add-Node genau hier belassen. Ich klicke auch mit der rechten Maustaste und führe benutzerdefinierte Ereignisse ein. Ich werde das jetzt bei einem generischen Namen belassen. Ich werde auch eine meiner maßgeschneiderten Funktionen hinzufügen, meine Funktion „Gesundheit ändern“. Ordnung, zuerst haben wir ein knotenspezifisches Kontextmenü. Wenn ich mit der rechten Maustaste auf einen bestimmten Knoten klicken würde, werde ich einen knotenspezifischen Kontext aufrufen. Menü Dinge, die ich mit diesem Knoten machen kann, ich könnte einen Breakpoint hinzufügen oder einen Breakpoint umschalten. Dies sind zwei sehr häufige Aktionen. Unterbrechen von Knotenverknüpfungen ist eine sehr häufige Aktion. Aktualisieren eines Knotens ist eine sehr häufige Aktion. Natürlich hast du dein Copy and Cut, Duplicate , all diese Dinge auch. Beachten Sie jedoch, dass dies mein Rechtsklickmenü für diesen Funktionsknoten war . Wenn ich mit der rechten Maustaste auf diesen zusätzlichen Knoten klicken würde, schauen Sie sich eine meiner Optionen an, die ich speziell für diesen Knoten habe. Ich habe die Möglichkeit, eine PIN hinzuzufügen. Ich könnte einen spezifischen Pin für diesen Knoten hinzufügen , dieser ist nicht verfügbar. Wenn ich jedoch genau hier auf diesen Funktionsknoten klicke, können verschiedene Knoten unterschiedliche Knotenaktionen haben, können verschiedene Knoten unterschiedliche Knotenaktionen haben wie zum Beispiel dieser Additionsknoten genau hier. Bei einigen Knoten können Sie nun auf sie doppelklicken , um zu dem zugehörigen Knoten oder einem Diagramm zu gelangen. Dies ist eine maßgeschneiderte Funktion. Wenn ich also auf diese Funktion doppelklicken würde, die ich zu Beginn des Kurses erstellt habe , wird der angegebene Funktions-Tab geöffnet , um mir zu zeigen, was alles in dieser Funktion enthalten ist. Das ist also gut zu wissen, Timeline-Knoten. kannst du auch tun. Um den Timeline-Editor zu öffnen, verschieben Sie eine Notiz. Sie wissen, dass Sie bereits mit der linken Maustaste klicken und sie so ziehen können . Sie können es jedoch auch mit den Pfeiltasten auf Ihrer Tastatur nach oben und unten, links und rechts usw. bewegen . Um einen Knoten zu löschen, können Sie ihn einfach wie folgt auswählen und die Löschtaste drücken , um einen Knoten umzubenennen, z. B. ein benutzerdefiniertes Ereignis. Beachten Sie noch einmal, dass dies nicht auf allen angegebenen Knoten verfügbar ist, sondern ein benutzerdefiniertes Ereignis, dem Sie einen Namen geben können. Sie können einfach hier mit der linken Maustaste auf den Titel klicken. Und das ermöglicht es dir, es in meine Kostümveranstaltungen umzubenennen. Drücken Sie die Eingabetaste. Alternativ können Sie F2 drücken, wenn dieses ausgewählt Dadurch können Sie es auch umbenennen und benutzerdefiniertes Ereignis umbenennen. Andere Befehle hier, lassen Sie mich diese einfach löschen und ein paar neue Knoten einschalten . Klicken Sie mit der rechten Maustaste auf die Sieben-Tasten, sagen Sieben-Tasten. Wir werden etwas Gesundheit ändern. Und lassen Sie mich einfach hierher zurückkehren versehentlich darauf doppelklicken. Ich werde auch einen Delay-Node einbauen. Sie sollten also inzwischen wissen, dass Sie, wenn Sie den Knoten auswählen und die Taste F9 drücken, dafür einen Breakpoint hinzufügen können, und das kann ich für jeden von ihnen tun. Jeder von ihnen hat also einen Breakpoint. Um alle Breakpoints zu löschen, kann ich Control Shift und F9 machen, damit werden sie sofort alle entfernt. Um eine Auswahl auszuschneiden, kann ich einfach Control X ausführen. Natürlich bedeutet die Steuerung eines V, das einzufügen. Um eine bestimmte Auswahl zu kopieren. Ich kann einfach ein paar Knoten auswählen lassen, wie dieses Control C, Control V. Das sollten Sie von fast jeder Art von Computeranwendung wissen . Lassen Sie uns versuchen, eine Auswahl zu duplizieren. Also wähle ich diese einfach aus und mache Strg plus D, und das wird sie duplizieren. Und schließlich sollten Sie inzwischen wissen, dass Sie zu einer Auswahl einen Kommentar hinzufügen können, indem dass Sie zu einer Auswahl einen Kommentar hinzufügen können Sie einfach die Knoten auswählen, zu denen Sie einen Kommentar erstellen möchten. wie bei all diesen drei die Taste C, Drücken Sie wie bei all diesen drei die Taste C, um ein Kommentarfeld hinzuzufügen, mein Kommentarfeld. Und wieder, sobald Sie in Ihrem Lesezeichenfenster ein Kommentarfeld erstellt haben , das von Windows zugegriffen wird. Lesezeichen. Sie sollten dann in der Lage sein , das Kommentarfeld irgendwo da unten zu finden , es ist als Kommentar bekannt. Wenn ich jedoch kompiliere, aktualisiere ich jetzt auf mein Kommentarfeld Wenn ich davon wegnavigieren sollte, könnte ich darauf doppelklicken, um zu meinem Kommentarfeld zu springen. In Ordnung, verschiedene Pin-Aktionen, über die du Bescheid wissen solltest. Lassen Sie uns hier ein paar Knoten hinzufügen, um diese Diskussion zu erleichtern. Weißt du was, ich werde einen Spawn-Schauspieler vom Klassenknoten hinzuziehen einen Spawn-Schauspieler vom , weil das ein guter Schauspieler ist, um es zu demonstrieren. Wenn ich mit der rechten Maustaste auf einen bestimmten Pin klicken würde, wie meine Spawn-Transformation genau hier. Ich werde ein Menü mit verschiedenen Pin-Aktionen aufrufen , die ich ausführen kann, um dies zu einer Variablen zu , die eine sehr häufige Pin-Aktion ist. Du kannst sehen, dass hier bei fast jedem Schmerz eine Variable auch mit einer Spawn-Transformation oder einem Vektor oder einem Rotator-Pin beworben wird. Wenn Sie mit der rechten Maustaste darauf klicken, können Sie den Struct Pin teilen, da eine Transformation aus Positions-, Rotations- und Skalierungsdaten besteht . Also Foster klickt mit der rechten Maustaste darauf. Ich kann im Wesentlichen die angegebenen Komponenten dieses Pins, die Position, die Rotation und die Skalendaten dieser Transformation sichtbar machen. Wenn ich meinen Add Node wieder hier aktiviere, klicke ich mit der rechten Maustaste und füge diesen Add-Node hinzu. Wenn ich mit der rechten Maustaste auf diese grauen Stifte klicken würde, sind das Platzhalter-Pins. Ich könnte mit der rechten Maustaste darauf klicken. Und ich habe auch verschiedene Pin-Aktionen ich hier ausführen kann, auch wenn diese nicht als Untermauerungsaktionen aufgeführt sind, betrachte ich sie als Pin-Action. Ich kann den Stift in einen bestimmten Datentyp konvertieren. Wenn ich also weiß, dass das eine Ganzzahl plus sagen wir ein Float-Pen sein soll, kann ich diese entsprechend ändern. Jetzt, wenn Sie anfangen, einen Spaghetti-Code zu erstellen, haben Sie manchmal Kabel, die in alle Richtungen verlaufen. Manchmal möchte man einfach ein verbundenes Kabel hervorheben , damit es sozusagen besser lesbar ist. Also wenn ich eines meiner Kabel hier anschließen sollte, lass mich einfach irgendeinen Float hier nehmen, Gesundheit, werde es oben drüber ziehen. Wenn ich mit der Maus über diesen Stift fahren würde, können Sie sehen, wie er das Kabel genau dort beleuchtet. Und es funktioniert in beide Richtungen. Es spielt keine Rolle, über welche Seite des Drahtes ich hier mit der Maus gehe, aber Sie können sehen , dass dieser Draht allmählich an Stärke gewinnt und etwas stärker leuchtet. Das kann also nur aus Gründen der Lesbarkeit helfen. Nehmen wir nun an, ich wollte diese Variable mit einem anderen Stift verbinden. Ich könnte den Stift ausschneiden, indem ich die Alt-Taste gedrückt halte und mit der linken Maustaste auf das Stift-Tool-Snippet klicke. Wenn ich es jedoch verschieben möchte, könnte ich die Strg-Taste gedrückt halten und mit der linken Maustaste darauf klicken und es auch auf eine andere Eingabe ziehen. Und auch hier funktioniert das auf beiden Seiten unserer Verbindung. Wenn ich also auch diesen Pin bewegen wollte, könnte ich die Strg-Taste gedrückt halten, linken Maustaste klicken und ihn bewegen. Oder wenn Sie das Kabel durchtrennen möchten, halten Sie die Alt-Taste gedrückt und klicken Sie mit der linken Maustaste, dann wird das Kabel abgeschnitten. Ordnung, und zum Schluss wollen wir Ihnen die Tastenkombinationen vorstellen, einige der am häufigsten verwendeten Knoten zu Ihrem Diagramm hinzufügen können. Wir müssen B gedrückt halten und mit der linken Maustaste klicken. Wir fügen einen Zweigknoten hinzu. Wenn Sie die D-Taste gedrückt halten und mit der linken Maustaste klicken, wird ein Delay-Knoten angezeigt Verwenden Sie diese ständig. Halten Sie die S-Taste gedrückt und klicken Sie mit der linken Maustaste, um einen Sequenzknoten, den GT, und mit der linken Maustaste, der einen Gate-Knoten, M, wie in Mary, einführt , und mit der linken Maustaste klicken, wird ein Knoten mit mehreren Gates angezeigt. Wenn Sie die F-Taste gedrückt halten und mit der linken Maustaste klicken, erhalten Sie für jede Schleife eine. Wenn Sie wie bei Nancy die Taste N, N gedrückt halten, klicken Sie mit der linken Maustaste und das bringt einen Do N-Knoten. Wenn du die 0-Taste gedrückt hältst und mit der linken Maustaste klickst, will ich Schnee haben. Und wenn du die P-Taste gedrückt hältst und mit der linken Maustaste klickst, wird Event Begin Play angezeigt, falls es noch nicht zu deinem Diagramm hinzugefügt wurde Ich benutze diese Hotkeys ständig. Nun Leute, das wird alles für dieses Video tun. Wir sehen uns beim nächsten Mal.