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.