Transkripte
1. Kurs-Promo-Video: In diesem Kurs lernen
wir, wie man Unreal Engine Five verwendet, um ein
Side-Scrolling-Spiel im Mario-Stil zu entwerfen und Mein Name ist Greg Andro. In den letzten 20 Jahren habe
ich sowohl als professioneller
Spieledesigner
als auch als Lehrer gearbeitet Spieledesigner
als auch als Lehrer Im Laufe der Jahre habe ich Tausenden von
zufriedenen Schülern die Kunst des
Spieledesigns
beigebracht , sowohl online als auch im
Präsenzunterricht. In diesem Teil lernen wir,
wie man Pickups,
bewegliche Plattformen,
hüpfende Plattformen,
interaktive Blöcke, Gegner,
Power-Ups, Pipes, Checkpoints,
Antworten,
Leveleinstellungen, ein HUD, ein
Hauptmenü, ein Paz-Menü und mehr erstellt bewegliche Plattformen,
hüpfende Plattformen,
interaktive Blöcke, Gegner, Power-Ups, Pipes, Checkpoints,
Antworten,
Leveleinstellungen, ein HUD, ein
Hauptmenü, ein Paz-Menü . So ziemlich alles, was
du brauchst, um
loszulegen, um ein Gaming-Projekt zu erstellen Dieser Kurs richtet sich an alle,
vom jungen aufstrebenden Spieledesigner bis hin zum
Branchenprofi der Saison und allen dazwischen Wir fangen ganz
am Anfang an,
vorausgesetzt, Sie wissen nichts Am Ende wird dieser Kurs als wertvolle Ressource
dienen. Sie können immer wieder nachschlagen und
sehen, was Sie lernen
und erschaffen können. Ich fordere Sie auf,
diesen Kurs auszuprobieren und zu sehen, ob er
nicht die beste
Bildungserfahrung mit
einem
guten Preis-Leistungs-Verhältnis ist, die Sie
je gemacht haben . Wir sehen uns drinnen.
2. Projekt erstellen: Ordnung, wir
fangen hier an, indem ein brandneues Projekt im
Epic Games Launcher erstellen. Jetzt sollte im
Epic Games Launcher vermerkt werden, wir die Option Unreal
Engine ausgewählt haben Auf der linken Seite und
hier oben haben
wir die Registerkarte „Bibliothek“ ausgewählt Dort bin ich jetzt
im Epic Games Launcher, um auf verschiedene
Versionen der Engine zuzugreifen oder um eine neue
Version der Engine hinzuzufügen Du kannst hier auf diese gelbe
Plus-Schaltfläche klicken. Zum heutigen Zeitpunkt habe ich 5.21. Das ist die neueste
Version der Engine Beachten Sie jedoch, dass
Unreal
in Zukunft immer über neuere, neueste
und beste Versionen der Engine verfügt und beste Versionen der , mit
der Sie dieses Projekt erstellen können Verwenden Sie einfach
die neueste Version, aber ich werde 5.21 verwenden, um dieses
Projekt zu erstellen Um jetzt unser Projekt zu erstellen, klicke ich auf die Schaltfläche
Starten Und irgendwann
sollte Ihnen dieses Unreal
Project-Browserfenster angezeigt Solange Sie noch kein vorhandenes Projekt hatten und
das letzte Projekt beim Start nicht bereits geladen haben, war
dieses Kontrollkästchen derzeit
im Grunde nicht aktiviert Hier kannst du
meine bestehenden Projekte sehen. Neben meinem letzten Projekt
, an dem ich gearbeitet habe, werden
wir
ein Spieleprojekt machen. Lassen Sie uns also weitermachen
und Spiele auswählen. Hier können Sie die Art
der Projektvorlage auswählen Art
der Projektvorlage mit der
Sie beginnen möchten. Dafür werden
wir die Vorlage für eine dritte Person verwenden, um uns
den Einstieg zu erleichtern, sodass wir Charakter aus einer dritten
Person
steuern. Das wird
ein Blueprint-Projekt sein. Unsere Zielplattform
wird der Desktop sein. Wir wollen alles
so lassen, wie es hier ist, nämlich die Rückverfolgung. Wir werden uns bei diesem Projekt nicht
wirklich
auf solche
Dinge konzentrieren diesem Projekt nicht
wirklich
auf solche
Dinge Sie können das überprüfen oder nicht, aber um sicherzustellen, dass
unsere Projekte rechtzeitig geladen werden, werde
ich das
außerhalb
des unsere Projekte rechtzeitig geladen werden, Projektstandorts lassen. Wo soll das auf Ihrem Computer
gespeichert werden? Ich werde meins auf
meinem Laufwerk belassen und
ich werde
meinen Projektnamen Platformer haben meinen Projektnamen Platformer Jetzt darfst du hier
keine Leerzeichen mehr haben. Unterstriche reichen einfach. Aber wenn du ein
Leerzeichen hinzufügst, wird es dich anschreien. Und sobald du
deinen Projektnamen
und deinen Standort hast ,
dritte Person, lass uns
weitermachen und auf Erstellen klicken Sobald das erledigt ist, sollte dir
irgendwann ein Fenster wie dieses angezeigt werden. Willkommen bei Unreal Engine. Sie sollten den Namen
Ihres Projekts hier
oben rechts sehen Ihres Projekts hier
oben rechts Da ist sie, Plattform. Und ich werde hier nur
ein paar Dinge tun, um die Lebensqualität zu verbessern. Ich werde
hier ganz oben links unter ein Fenster gehen, auf Fenster
klicken und ein Layout laden. Ich möchte das klassische UE
Four-Layout machen. Das ist das, was ich bevorzuge, und ich denke, es ist auch am besten für
Anfänger geeignet. Wenn Sie darauf klicken, wird der
Editor neu gestartet. Und was es getan hat, ist, dass es
diesen Inhaltsbrowser
genau hier unten präsentiert hat. Wir werden während des gesamten
Projekts
über verschiedene Teile
des Editors sprechen . Aber der Inhaltsbrowser ist
im Grunde deine Schublade Leckereien, mit denen du dein Level genau hier
zusammenstellen kannst dein Level genau hier
zusammenstellen Das ist unser Starter-Level Der Name unseres
Starterlevels ist Third-Person-Map. Wir werden unsere eigene erstellen, aber das ist es, was euch als Starterlevel
präsentiert wird. Jetzt möchte
ich
gleich noch einige Ordner hier
unten in unserem
Inhaltsbrowser
erstellen , die speziell für dieses Projekt
bestimmt
sind. Ich werde das nur ein bisschen ansprechen. Du kannst dir diese Fenster schnappen. Leg einfach meine Maus hier hin. Und ich werde zusammenbrechen,
wo Starter Content steht. Ich klicke auf
meinen Inhaltsordner, klicke mit der
rechten Maustaste
darauf und erstelle einen neuen Ordner. Ich rufe
diesen Platformer an und drücke die Eingabetaste Dann klicke ich mit der rechten
Maustaste auf meinen Plattformordner. Und ich werde noch
ein paar Ordner erstellen. Klicken Sie mit der rechten Maustaste auf einen neuen Ordner .
Dieser erste wird
Audio heißen. Ich klicke
erneut mit der rechten Maustaste auf den Plattformordner, Neuer Ordner, und
ich schreibe klicke erneut auf meinen
Plattformordner und ich nenne
diesen Ordner Texturen. Jetzt persönlich
möchte ich, dass meine Ordner leicht identifizierbar sind
, damit sie erkennen können, mit welchem Ordner ich gerade arbeite. Also schreibe ich, klicke
auf meine Plattform oder meinen Ordner und füge eine Farbe hinzu. Indem
ich Farbe festlege, mache
ich so etwas wie eine unausstehliche grüne Farbe,
weil sie wirklich Jetzt möchte ich diesen Ordnern etwas
Inhalt hinzufügen. Zu diesem Projekt wurden nun
einige Inhaltsordner, Texturen,
Schriftarten und Audios-Ordner
in Zip-Dateiform hinzugefügt einige Inhaltsordner, Texturen, . Ich habe diese gerade in meinem Download-Bereich nur um
Ihnen diesen Vorgang zu zeigen Dies sind die Ordner, über die
ich jetzt spreche, sind komprimierte Ordner Um die darin enthaltenen Goodies zu extrahieren, müssten Sie
lediglich mit der rechten Maustaste auf
eine
dieser Dateien klicken und einfach Alle extrahieren
auswählen Sobald Sie dies getan haben, sieht der komprimierte Ordner so aus Ordner innerhalb von. Hier findest du
die Leckereien. Ich fange hier mit Texturen an. Ich werde einfach die Strg - und das Mausrad gedrückt
halten - und das Mausrad gedrückt damit ich mit der linken Maustaste klicken und ziehen kann. Ich werde einfach all diese
hervorheben,
jetzt werde ich mit der linken Maustaste klicken
und all diese,
alle 31,
in meinen Texturen-Ordner ziehen alle 31, . Sobald Sie die Plus-Schaltfläche sehen, können
Sie loslassen und es werden all diese hinzugefügt.
Es wird sie alle importieren. Wir werden sie
während des gesamten Projekts verwenden. Dann werde ich
dasselbe für meine Schriften tun. Habe meinen Schriftartenordner ausgewählt. Im Moment können Sie
den Pfad genau hier sehen. Alternativ kann ich zu
Platformer gehen und sie
einfach direkt
in diesen Ordner legen Ich gehe zurück
zu Downloads Fonts. Ich werde all
diese Linksklicks hervorheben und sie in die Schriftarten
ziehen. Es wird heißen, möchtest
du für all diese Schriften
ein neues Font-Asset erstellen ? Wir sagen einfach Ja, bewerben
wir uns für alle
und klicken auf Ja. Okay. Dann gehe ich
zurück zu meiner Plattform oder meinem Ordner. Ich werde noch einmal zu meinen Audiodateien
zurückkehren. Doppelklicken Sie hier.
Ich werde einige Audiodateien
zu diesem Projekt finden. Es gibt eine Menge Audiodateien, wir können im Laufe
der Zeit weitere hinzufügen. Und wer weiß, vielleicht verwenden wir nicht
einmal alle, aber das wird uns den Einstieg erleichtern. Klicken Sie mit der linken Maustaste und ziehen Sie das
in den Audioordner. Und Sie werden feststellen,
dass bei all
diesen verschiedenen Dateien neben allen ein Sternchen steht
, das anzeigt, dass sie noch nicht
gespeichert wurden Um all diese Dateien zu speichern,
müssen
wir hier nur auf „Speichern“ klicken.
Alles, was sie sagen, möchten Sie all diese Elemente
speichern Sie gerade hinzugefügt haben? Wir
werden ja sagen. Dann werden
wir als
gute Maßnahme unser Projekt speichern. Wenn wir unter Datei stehen, können
wir auch eine Datei
speichern. Jetzt ist unser Projekt
gespeichert und wir können loslegen. Um nun noch einmal auf die
Dinge zurückzukommen , die wir für
unsere Plattform oder unser Projekt erstellt haben. Wenn ich zum Epic Games
Launcher
zurückkehren und dann in den Unreal-Bibliotheksbereich
zurückkehren Unreal-Bibliotheksbereich
zurückkehren Wir können jetzt sehen, dass wir
unser Plattformprojekt genau hier haben , allerdings ohne
Vorschaubild Aber um zurück
zu deinem Projekt zu kommen, sagen wir, wir würden
das wieder schließen, müssten wir
nur in die
Unreal Engine
Library gehen und du könntest darauf
doppelklicken, um dein Projekt
neu zu starten In Ordnung Leute, das reicht
für dieses Video. Wir sehen uns im nächsten.
3. Level erstellen: Okay, wir werden
hier mit
unserem Projekt beginnen ,
indem wir ein brandneues Level
erstellen die
Side-Scroller-Kamera
für unseren Charakter einrichten Side-Scroller-Kamera
für unseren Charakter Kümmern wir uns also zuerst um das Level. Und wir können anstelle
unserer Standardkarte für Dritte ein ganz
neues Level erstellen , indem wir ganz oben links,
wo Datei steht, hineinkommen . Wir wählen
eine neue Levelsteuerung und n bringt
dich auch dorthin. Diese Tastenkombination hier. Wir haben ein paar
Vorlagen, aus denen wir wählen können. Ich werde
dieses grundlegende neue Level wählen. Ich werde das wählen
, weil ich einen Himmelshintergrund haben
möchte. Und ich werde etwas erschaffen. Sobald ich das mache, wechseln
wir
von unserer
Third-Person-Map zu einem Level ohne Titel Jetzt heißt sie Untitled,
weil wir sie nicht gespeichert haben. Wir haben ihm keinen Namen gegeben. Wir können unser Level speichern,
indem wir hier auf dieses
Disc-Symbol klicken. Es wird uns nach einem Ort fragen , an dem wir dieses Level speichern
möchten. Nun, lass uns in
unseren Plattform-Ordner gehen. Ich werde das nur
erweitern. Ich werde auf die
Stelle klicken, an der Plattform steht. Wir werden
einen brandneuen Ordner erstellen. Ich werde das Levels nennen. mein
Platform-Level-Verzeichnis ausgewählt ist, Wenn mein
Platform-Level-Verzeichnis ausgewählt ist, nenne
ich diese Ebene, ich
nenne sie einfach LV-Unterstrich
01 für Ebene eins. Fahren Sie
fort und klicken Sie auf Speichern Und in dem Moment, in dem wir das tun,
können Sie jetzt oben links sehen, dies jetzt als
Level-Unterstrich 01 bekannt ist Jetzt möchte
ich noch etwas anderes tun,
mein Projekt so einrichten , dass,
wenn ich Unreal hier
schließen und es
dann,
sagen wir morgen, wieder öffnen würde, dass es automatisch standardmäßig
diese Ebene wieder öffnet So wie es jetzt aussieht, wird
es momentan diese Third-Person-Map öffnen Wenn wir den
Motor abschalten und wieder öffnen würden, wo könnten wir das ändern? Nun, in unseren
Projekteinstellungen können wir auswählen, welche Map standardmäßig
geöffnet ist. Wenn wir den Editor öffnen, gibt es
einige Orte, an denen
Sie auf Ihre Projekteinstellungen zugreifen können. Einer ist hier ganz
oben rechts, und ich werde
ihn kurz vergrößern. Das ist genau da.
Sie können auch darauf zugreifen, indem Sie in Ihr
Fenstermenü gehen, genau hier oben. Lass mich einfach da
raus. Geh auch. Tut mir leid, kein Fenster. Ich meinte bearbeiten. Wir wollen
unter Bearbeiten gehen und wir wollen Projekteinstellungen wählen, nicht Fenster. Und los geht's. Wir haben unsere Projekteinstellungen, und wenn ich unter
Karten und Modi komme, lass mich
die
Projekteinstellungen einfach hier oben andocken . Karten und Modi. Hier haben wir unsere
Editor-Startkarte. Sie ist derzeit
unserer Third-Person-Map zugeordnet. Lass uns weitermachen und
das gegen B austauschen. Ich scrolle einfach weiter
bis Level 01 Jetzt gibt es hier keine
Schaltfläche zum Speichern oder
so, also kannst du das einfach
beenden. Und das macht es
so, dass, wenn Sie versuchen, Ihr
Projekt morgen zu öffnen, es standardmäßig bis zur
ersten Ebene geöffnet wird. Ordnung, das nächste, worum ich mich kümmern
möchte, ist,
unser Level hier ein
wenig umzugestalten , sodass es eher eine zerquetschte Im Moment ist das von Natur aus sehr
quadratisch. Ich möchte also von
meiner perspektivischen Ansicht hier zu einer Ansicht von oben
nach unten wechseln meiner perspektivischen Ansicht hier zu einer Ansicht von oben
nach unten Und was ich jetzt
tatsächlich tun werde, ist auf diese Schaltfläche
oben rechts zu
klicken, genau hier, sie hat
quasi das Rastersymbol. Ich möchte hier auf
meine Ansicht von oben zugreifen. Jetzt befindet sich meine Ansicht von oben in einer Ansicht im
Wireframe-Stil. Und ich werde einfach
hier klicken, um das Ganze zu maximieren. Und dann zoome ich
mit meinem Scrollrad heraus. Wenn ich dieses
lila Ding hier auswählen würde, das die riesige
Plattform, die wir in unserer
perspektivischen Ansicht wieder
sehen. Also wenn ich das für einen
Moment minimieren würde. Hier ist die riesige
Plattform, von der ich gerade
spreche , wenn wir an diesem
Side-Scroller-Level von oben nach unten
arbeiten Ich möchte, dass das im Wesentlichen von links nach rechts
fließt. Also alles, was ich tun werde, ist
,
diese Plattform zu zerquetschen , damit sie ein
bisschen dünner und länger wird Wenn Sie
Ihre Plattform ausgewählt haben, können Sie, wenn Sie die
Leertaste drücken, zwischen Bewegungsmodus, Rotationsmodus, Rotationsmodus und Skalierungsmodus wechseln Und mit all
diesen drei Schaltflächen werden Sie direkt oben
in Ihrem Viewport
wechseln Ich benutze gerne die Leertaste, um zwischen diesen
umzuschalten. Jetzt gehe ich in den Skalierungsmodus und
hole mir diesen grünen Und ich werde das einfach herunterdrücken , so
etwas werde ich mit meinem roten Griff nicht
besonders präzise sein Dann werde ich mit meinem roten Griff nicht
besonders präzise sein,
ich werde
ihn nur ein bisschen verlängern Im Grunde wollen wir,
dass unsere Spieler
hier von vorne beginnen und sich dann nach rechts bewegen Das ist von oben nach unten. Lassen Sie uns nun
unsere Ansicht von oben nach unten minimieren. Gehen Sie gleich hier, wir gehen
zu unserer perspektivischen Ansicht. Ich möchte das jetzt in der Ansicht mit
vier Paneelen belassen. Sie können von
oben nach unten sehen,
dass der grüne Griff nach unten
zeigt In meiner
perspektivischen Ansicht bedeutet das,
dass
ich um
dieser Ansicht von oben nach unten zu entsprechen, , um
dieser Ansicht von oben nach unten zu entsprechen, einfach
die rechte
Maustaste gedrückt halte und W, S
und D verwende, um in diesem Winkel
genau hier zu sein, der in
etwa dem entspricht, was ich im oberen Bereich sehe. Okay, so werden
wir also arbeiten. Ich gehe jetzt in den
Vollbildmodus. Und jetzt
möchte ich den sogenannten
Player-Startdarsteller hier links platzieren . Um die Stelle zu kennzeichnen, an der mein Spieler erscheinen soll, sobald wir auf die Play-Schaltfläche klicken Um das zu tun,
benötigen wir einen Startdarsteller für den Spieler. Dieser befindet sich
im Bereich „Schauspieler“. Wenn Sie das Panel mit den Schauspielern des
Ortes nicht hier haben, Sie es
vielleicht verlassen, so
etwas Du kannst gleich hierher kommen, du hast das Schauspielerpanel Und wenn dieser Tab als Basis-Tab
ausgewählt ist, kannst
du einen
Spielerstart-Schauspieler finden. Fahren Sie einfach fort und ziehen Sie
das in unseren Ansichtsteil. Ich drücke einfach die Taste, um mein Bewegungstool einzuschalten. Und wenn ich es so
in die Luft bringe, kann
ich die Ende-Taste drücken, das ist die END-Taste, die
sich neben
Ihrer Löschtaste befindet , um
es auf den Boden zu legen. Jetzt werde ich
ganz genau angeben,
wo ich das in der Y-Ebene
platzieren möchte. Das ist die grüne Ebene
hier drüben in meinem Detailbereich
, wo ich
all die verschiedenen Details zu
meinem ausgewählten Schauspieler finden kann . Ich werde die Y-Position und
die grüne Position
dort auf Null setzen . Also werde ich es einfach auswählen, Null
drücken und dann Enter drücken. Und beobachte, was mit
meinen Spielern passiert. Starte Schauspieler, es wird
zu diesem Ort springen. Das wird vorerst
gut genug sein. Wenn ich jetzt zum Startdarsteller
meines Spielers übergehe, sehe
ich genau hier diesen blauen
Pfeil
, der anzeigt, in welche Richtung unser Charakter schauen wird wenn er in das Level
spawnt Wenn ich jetzt hier oben auf den
grünen Play-Button klicken würde, kannst
du sehen, dass mein Charakter ungefähr an dieser Stelle erschienen
ist Jetzt halte ich einfach die rechte Maustaste gedrückt
und schwenke um sie herum Sobald Sie in das Darstellungsfenster
geklickt haben einfach die
Maus bewegen, können
Sie die Kamera
auf diese Weise schwenken Nun, für eine
Side-Scroller-Plattform ist
das nicht ideal für ein
Side-Scroller-Platformer-Spiel Wir wollen, dass sich die Kamera nach hinten bewegt
und wir wollen, dass die Kamera in dieser Art von
Seitenansicht fixiert Also darum werden wir
uns nächstes Jahr kümmern.
4. Einrichtung der Player-Kamera: Wenn wir jetzt ins
Spiel spawnen, spawnen
wir als Charakter aus
der dritten Person am Startort
unserer Spieler Der Grund, warum wir als
Charakter aus der dritten Person spawnen, ist , dass dies der
Standardcharakter ist, den wir Für diese spezielle Vorlage. Wir verwenden die Vorlage
für Dritte. Diese finden Sie jetzt in
unseren Projekteinstellungen, und Sie können auf
Ihre Projekteinstellungen
oben rechts zugreifen , genau hier, wo
es Einstellungen heißt. Wenn ich auf Einstellungen klicke und zu meinen Projekteinstellungen
gehe, haben
wir auf
der linken Seite einen Bereich , der
als Karten und Modi bekannt ist. Und wenn ich das auswähle, können wir unsere Standardbauernklasse
finden, das ist sozusagen die
Charakterklasse, die wir
in unserem Spiel
als Charakter aus der dritten Person kontrollieren als Charakter aus der dritten Person Und wir können
zu diesem Asset navigieren,
indem wir hier auf dieses
Ordnersymbol Dadurch wird im Inhaltsbrowser zu
diesem Asset navigiert. Ich mache das, indem ich mit der linken
Maustaste darauf klicke. Und Sie können sehen, wo sich
dieses Asset in den Ordnern
im Ordner mit allen
Inhalten für
Drittanbieter-Blueprints befindet Ordnern
im Ordner mit allen Inhalten für
Drittanbieter-Blueprints Jetzt werden wir hier drinnen etwas
arbeiten, um mit der Anpassung unserer
Charakter-Kamera zu beginnen Doppelklicken wir also
darauf, um es zu öffnen. Beim Öffnen wird standardmäßig diese Registerkarte mit dem
Ereignisdiagramm angezeigt. Hier befindet sich das gesamte Skript, gesamte Code, der
sich
auf dieses Zeichen bezieht Wir werden
das jetzt ignorieren und zu unserem Viewport-Tab
springen Auf unserer Registerkarte „Viewport“ können wir
all die verschiedenen Komponenten sehen , aus
denen dieser Blueprint besteht Wir haben unser Charaktermodell, das durch
diese Mesh-Komponente repräsentiert wird Wir haben auch diese Kamera. Das ist die Linse, durch die wir gerade unseren Charakter
betrachten. Unsere Kamera ist derzeit
an einer Kamera befestigt, bumm. Was eigentlich
als Federarmkomponente bekannt ist. Wir können diese
Bindungsbeziehung
jederzeit erkennen , wenn wir diese Einrückung sehen Im Moment
ist die folgende Kamera an unserer Kamera befestigt, Bum Jetzt
wollen wir hier
einige Änderungen
an unserer Kamera vornehmen , bumm. Unsere Federarmkomponente. Sie können sich diese
Federarmkomponente vorstellen , die als unsere Kamera bekannt ist. Bum, das ist der Name dieser Komponente
als Selfie-Stick Derzeit
wollen wir diesen Selfie-Stick
zurückziehen diesen Selfie-Stick
zurückziehen Denken Sie jetzt daran, dass unsere Kamera an unserer Kamera befestigt
ist. Bum. Hier beträgt
die Armlänge, die Länge unseres
Selfsticks, derzeit 300 unwirkliche Einheiten Wir wollen
das etwas verlängern. Ich habe
hier einige Werte für verschiedene Parameter im Kopf. Wir setzen den Wert
auf 1.500
und wenn wir die Eingabetaste drücken, werden auf 1.500
und wenn wir die Eingabetaste drücken, wir sehen,
dass unsere Kamera
jetzt weit hinten ist ,
dass unsere Kamera
jetzt weit hinten Wir wollen unsere
Kamera nicht hinter unserem Charakter haben, wir wollen sie hier zur Seite haben. Also werden wir hier unter
den Kameraeinstellungen ein paar Kästchen
abhaken Wir werden die Häkchen „
Tonhöhe erben“ und „Giern erben“ deaktivieren. Wenn wir jetzt unser Spiel spielen würden
, lass mich einfach wieder reinspringen
und Ich werde
in meinen Viewport klicken. Du kannst sehen, dass ich jetzt weit
hinter unserem Charakter zurückliege,
weil ich den
Selfie-Stick weit nach hinten gesetzt habe Ich klicke in
mein Darstellungsfenster und kann das Gieren
unserer Kamera ändern Das ist links und rechts, genauso wie die Tonhöhe,
das Auf und Ab Und das will ich nicht
tun. Ich möchte, dass die Kamera quasi hier
verriegelt ist. Ich drücke Escape und
springe von hier raus. Ich werde
Inherit Pitch deaktivieren und dich erben. Wenn ich jetzt
wieder reinspringen und spielen muss
und ich
in meinem Viewport angeklickt werde, kann
ich die
Position unserer Kamera eigentlich nicht ändern Wir fixieren es. Als Nächstes möchte ich die
Kamera zur Seite nehmen. Ich will nicht, dass es hinterherhinkt. Ich werde die Drehung unserer Kamera ändern Drehung unserer Kamera Bum. Genau hier in der
Rotation, der Z-Rotation. Ich möchte den Wert auf
minus 90 setzen. Drücken Sie die Eingabetaste. Und jetzt können Sie sehen, dass
die Kamera weit drüben springt ,
quasi in dieser Seitenansicht Wenn ich jetzt auf Abspielen und
dann in mein Viewport klicke, kannst
du sehen, dass es jetzt unseren Charakter
verfolgt Jetzt werden
unsere W-, AS- und D-Steuerungen etwas wackelig sein Tatsächlich werden
sie ein bisschen
rückwärts sein . Mach dir keine Sorgen Wir werden das gleich
hier beheben. Aber es gibt noch ein paar
andere Kameraeinstellungen, um die ich mich kümmern
möchte,
da wir schon hier sind. Eine Sache, die ich tun möchte, ist Teil der Kamera
zu aktivieren. Also noch einmal, da
unser Kamerabohm die
Federarmkomponente ausgewählt sind, möchten
wir dieses Kästchen
für die Aktivierung des Kamerabeins ankreuzen. Normalerweise
möchte man keine langbeinige Kamera haben, aber wenn sie unserem Charakter zu eng
folgt, kann
das ein bisschen verwirrend sein. Das wird also die Bewegung
der Kamera ein wenig
abschwächen Bewegung
der Kamera ein wenig
abschwächen Beachten Sie, dass, sobald
wir dies einschalten, ein Wert für die Beingeschwindigkeit der
Kamera aktiviert wird Ich werde das jetzt bei zehn belassen
, aber im Laufe
dieses Kurses sollten Sie
wissen, dass Sie damit
herumspielen können, um
mehr oder weniger Kamerabein zu haben . Und ein anderes Kontrollkästchen, das ich
deaktivieren möchte, ist dieser Kollisionstest Derzeit ist es
aktiviert und ich werde es für
einen Moment aktiviert lassen,
um Ihnen zu
zeigen, wie das funktioniert Ich werde sehr
schnell
zu meinem Level zurückkehren und du musst diesem Teil nicht
folgen. Ich werde es nur demonstrieren.
Ich werde einen Würfeldrachen reinbringen und ihn
hier reinstecken. Ich werde einfach ein paar
Mal
die Leertaste drücken und so eine Art
Vordergrundblocker erstellen , wenn Sie so Also werden
wir unseren Charakter hier nach links oder rechts
laufen lassen
und unsere Kamera wird daran
gehindert,
unseren Charakter hier zu sehen Führen Sie damit eine Kollisionsprüfung durch. Führen Sie einen Kollisionstest durch. Aktiviert, ob ich auf
Play klicken und WK drücken
würde, um voranzukommen Schau, was mit unserer Kamera passiert
. Es wird einfach so nach vorne springen
. Das ist ein bisschen erschütternd. Wenn Sie diesen Effekt nicht
wollen, können wir mit der ausgewählten
Kamera, bumm, machen Lassen Sie uns das
Häkchen entfernen, damit
die Kamera beim Abspielen einfach so
läuft Sie wird nicht vor
die Wand springen. Das wird
nützlich sein, falls
wir beim Aufbau irgendwelche
Dekorationen im Vordergrund unseres Levels
irgendwelche
Dekorationen im Vordergrund bauen. In Ordnung, lassen Sie uns weitermachen
und dieses Asset speichern. Und das wird
alles für dieses Video tun. Im nächsten Video werden
wir einige Anpassungen an unserer Kamera vornehmen, sodass
Sie sie nach Ihren
Wünschen gestalten können.
Wir sehen uns dort
5. Benutzerdefinierte Kamera des Players: Willkommen zurück
alle. Jetzt, wo wir unsere
Side-Scrolling-Kamera eingerichtet
haben, passen
wir sie ein wenig Ich werde hier wieder in
meinen
Charakterentwurf für die dritte Person eintauchen meinen
Charakterentwurf für die dritte Person Hier ist der Weg dafür,
falls du runterspringst, Bauplan für
Dritte Person, Charakter aus der
dritten Person Und wir werden
hier beginnen, indem wir einige Variablen hinzufügen Variablen enthalten die Daten, auf die wir innerhalb von Skripten zugreifen
können. Und ich werde hier ein paar
verschiedene Variablentypen
hinzufügen ,
angefangen damit,
unter Variablen zu kommen auf diese Plus-Schaltfläche zu klicken. Wir werden
eine hinzufügen, die heißt,
die Kamera kann in Echtzeit angepasst werden. Dann füge ich
eine weitere Variable hinzu, ich
Camera Distance from Player nenne . Ich werde dies
von einer booleschen Variablen,
die wahre und
falsche Daten enthält, in eine Gleitkommazahl ändern die wahre und
falsche Daten enthält, in eine Gleitkommazahl Ein Float ist eine Zahl
mit einer Dezimalzahl, 0,2 verschiedene
Variablentypen , die
wir hinzufügen werden In diesem Fall werde ich eine weitere Variable
hinzufügen, als Kamera-X-Offset bezeichnet wird. Jetzt können wir
hier mit der rechten Maustaste auf diese Variable klicken und uns entscheiden, ob wir eine neue
erstellen möchten. Aber ich werde diesen einfach
duplizieren. Strg+D ist der
Hotkey dafür. Dieser wird Y-Offset genannt
werden. Und deshalb habe ich mich entschieden
, es zu duplizieren. Weil ich hier nur einen kleinen Teil des Textes ändern
werde,
während der Text ausgewählt ist, werde
ich Steuerung
D verwenden, um ihn zu duplizieren. Und das wird Z-Offset
genannt. Wir werden in der Lage
sein, das in jede
der verschiedenen
Richtungen zu verschieben, Y oder Z. Und dann werde ich
dieses Steuerelement plus D duplizieren, obwohl ich den gesamten Namen
überschreiben werde Das wird
Camera Leg Speed heißen. Ordnung, und mit all
diesen Variablen werde
ich auf
diese Augapfel-Symbole klicken Nun, das macht
für jede dieser Variablen, wenn wir auf dieses Augapfelsymbol klicken, und momentan habe ich die Beingeschwindigkeit der
Kamera als meine ausgewählte Variable drüben
im Detailbereich Wenn dieser Augapfel aktiviert ist diese Variable von der
Instanz bearbeitet werden Ebenso würden Sie sehen, dass
der Augapfel jetzt geschlossen ist,
wenn ich
das ausschalten würde zwei verschiedene Möglichkeiten,
Ihre Variablen
instanzeditierbar zu machen Ihre Variablen
instanzeditierbar klicken Sie darauf oder
klicken Sie auf den Wenn ich also wieder darauf klicke
, ist der Augapfel Was bedeutet das überhaupt? Nun, das bedeutet, dass uns
diese Variable jetzt zur Bearbeitung
zur Verfügung steht wenn wir wieder
im Editor sind. Und das werden wir uns gleich hier ansehen. Jetzt werde ich
diese Variablen in einem Skript verwenden . Ich werde gleich
hier schreiben. Aber bevor ich das mache, möchte ich diesen Variablen
einen Standardwert
geben. Und bevor ich das tun kann, muss ich, wie wir
im Detailbereich sehen, wie wir
im Detailbereich sehen,
unseren Blueprint kompilieren , bevor ich ihm einen Standardwert
geben kann Gehen wir also
hier oben links rein und kompilieren unseren Blueprint Beginnen wir mit unserer
obersten Variablen Können wir die
Kamera
damit in Echtzeit anpassen Ich lasse
das ungeprüft. Für die Kameraentfernung zum Spieler werde
ich den Wert auf 1.500 setzen. Sie
werden feststellen
, dass dieser Wert
unseren Kamerabellen entspricht , der
Zielarmlänge Wenn ich unsere Variable erneut
auswähle, verwende ich den
Kameraversatz Wir werden das auf Null für den
Kamera-Y-Offset einstellen. Ich belasse das bei einem Kameraversatz von
Null. Ich werde das auf 150 setzen. Und dann Kamera-Beingeschwindigkeit, ich werde das auf zehn setzen. Jetzt werden Sie hier meine
Kamera-Beingeschwindigkeit bemerken, den Wert Zehn. Das wird
meiner Kamera entsprechen, bumm. Diese Federarmkomponente, sie wird
genau diesem Wert hier entsprechen . Beingeschwindigkeit der Kamera. Und ich wollte
meine Kamera um 150 in
Z-Richtung verschieben. Sie werden das gleich hier im
Spiel sehen . Okay, wenn diese
Variablen vorhanden sind, springen
wir
von unserem Viewport-Tab in unser Ereignisdiagramm
und verwenden einige dieser
Variablen Jetzt möchte ich jedes Bild machen, ich möchte die Position
unserer Kamera bei jedem Bild aktualisieren Also werde ich ein Event-Häkchen
verwenden. Halten Sie die Strg- und das
Mausrad gedrückt, um das Diagramm hier zu vergrößern
. Mit der rechten Maustaste
schwenken Sie um dieses Transplantat herum. Wenn ich mit der rechten Maustaste klicke, gebe ich
das Häkchen für Ereignisse ein. Das wird jetzt bei jedem Frame ausgelöst. Und was ich
tun werde, ist, mich hierher zu
ziehen und einen Verzweigungsknoten
einzubauen. Das Erste, was wir tun
werden, bevor wir weitermachen, ist
, einen Zustand zu überprüfen. Die Bedingung, die ich überprüfen möchte, ist die
Kamera in Echtzeit eingestellt werden
kann. Ich kann das per
Drag & Drop direkt auf den Zustandsstift ziehen, um es
automatisch so anzuschließen. Wenn das stimmt, wollen
wir etwas
mit unserem Federarm machen. Ich werde unsere
Federarmkomponente einsetzen, die Kamera heißt, Boom. Wir werden das hineinziehen
, um es zu bekommen. Ich werde hier den richtigen Zweig
herausziehen und die relative Position festlegen eingeben . Ich will das
für meine Kamera machen, bumm. Und Sie können hier
in Klammern sehen, es zeigt Kameraboom Wenn ich also diesen Funktionsknoten
einbauen würde,
sieh dir das an, er würde meine Kamera einschalten,
bumm, sofort Nun, das hatte ich bereits
eingebracht. Ich wollte nur zeigen
, dass du das kannst. Aber ich werde das löschen. Musste nicht. Ich hätte diesen Bauch auch
löschen können. Und wir werden
das als Ziel einhängen. Das wollen wir
bei jedem Frame aktualisieren. Ich werde
das alles nur hierher verschieben. Ich klicke einfach mit der linken Maustaste und
ziehe sie alle hierher. Jetzt möchte ich dafür einen
neuen Ort festlegen. Jedes Bild werde ich von dieser
neuen Position
rückwärts ziehen und Make Vector
eingeben Wir wollen in der Lage
sein, die X -,
Y- und Z-Position dieses Objekts zu aktualisieren -,
Y- und Z-Position dieses Objekts zu jedem Frame ziehe ich Bei jedem Frame ziehe ich
den X-Offset der Kamera in das
X, den Y-Offset
der Kamera in das Y und den Offset in das Z hinein Sie können diese verschieben. Wie du das organisieren
willst, alles nett. Jetzt werden wir
den Ablauf der Hinrichtung hier fortsetzen. Wir tun mehr als nur
die Position unserer Kamera einzustellen. Bum. Hier werde ich die Beingeschwindigkeit unserer Kamera einbeziehen. Wenn ich das hineinziehe und loslasse, kann
ich es abrufen oder einstellen.
Ich möchte, dass diese Information in dieser Variablen enthalten ist. Dann
ziehe ich es von hier rein, eigentlich werde ich da nicht reinziehen. Ich werde
unsere Kamera reinziehen, bumm. Wir ziehen hier
raus und geben die Beingeschwindigkeit
der Kamera ein. Wir wollen die Beingeschwindigkeit unserer
Kamera einstellen. Was wir hier also im Grunde
sagen, ist, hey, unsere Kamera, bumm. Wir wollen in der Lage sein, die Beingeschwindigkeit
unserer Kamera mit
dem hier angegebenen Wert zu aktualisieren . Wir kommunizieren also. Wir sagen im Grunde:
Hey Kamera, Bum. Anstatt
diesen Standardwert von zehn zu verwenden, machen
wir ihn zu dem, was auch immer
dieser Wert ist. Derzeit sind es zehn. Aber das
werden wir anpassen können. Lassen Sie uns diesen
Hinrichtungsablauf fortsetzen. Dann will
ich als Nächstes meine Kamera
rausziehen, Bum. Noch ein Mal. Und ich möchte
die Zielarmlänge angeben. Ich möchte
unsere
Zielarmlänge noch einmal festlegen können . Wenn ich hier unsere
Kameraausleger-Komponente auswählen
würde, diese Federarmkomponente, hätten
wir diese
Zielarmlänge. ist derzeit auf 1.500 festgelegt Wir werden den
Ausführungsablauf hier fortsetzen. Und ich kann das bei jedem
Bild aktualisieren , indem ich unsere Kamera anschließe Wo ist die
Kameraentfernung vom Spieler, direkt in diesen Eingang? Das wird
unser letztes Drehbuch sein. Ich werde das einfach
einrahmen. Als Nächstes klicke
ich mit der linken Maustaste und ziehe ein Auswahlrechteck
um all diesen Typ,
die C-Taste, um eine
Kometenbox einzublenden, und ich nenne das, ermöglicht es Ihnen vorübergehend Ihre
Kameraeinstellungen während des Spiels
vorübergehend
anzupassen Ordnung, lassen Sie uns
weitermachen und
unseren Entwurf kompilieren , um sicherzustellen, dass unser
Code hier Jetzt werde ich
weitermachen und hier spielen. Aber ich möchte hier
zu meiner Hauptmap zurückkehren, meinem Haupteditor. Und beachte, dass ich es bin. Ich habe gerade auf
diese drei Punkte geklickt in meinem ausgewählten Viewport
abgespielt Und der Grund, warum ich
das mache, ist, dass ich jetzt drüben im Outliner
spiele Was Sie sehen werden, ist, dass
wir in dieser
gelblich-orangen Schrift unseren Charakter aus der dritten Person haben Dies zeigt ein Objekt, das in Asset gespawnt ist,
nachdem wir unser Spiel gespielt haben. Alles in Orange
Hears ist gerade reingekommen. Sobald wir unser Spiel gespielt haben. Ich kann jetzt unseren Charakter aus der
dritten Person
im Detailbereich auswählen . Du wirst unten
etwas bemerken. Wir haben im Bereich „
Alle“ eine Kategorie namens Standard. Und hier sind all die
Variablen, die wir gerade erstellt und in unserem Level-Editor verfügbar
gemacht haben. Genau das hat diese editierbare
Instanz, Checkbox, das
Augapfel-Symbol getan Es hat all diese Variablen
hier im Editor zugänglich gemacht hier im Editor zugänglich Und jetzt können wir
unsere Kameraposition hier
live aktualisieren unsere Kameraposition hier , während wir das Spiel
spielen. Erinnert euch an unseren Charakter aus der dritten
Person, wir sind momentan
gezwungen, weiter voranzukommen. Nur wenn wir die
Kameraposition in Echtzeit anpassen können ,
wenn diese Variable wahr ist, und standardmäßig
haben wir, dass sie falsch ist. Also werde ich das zuerst
überprüfen weil sonst keine
dieser Änderungen
hier unten etwas bewirken würde Ich werde
das überprüfen und Sie werden sofort sehen, dass sich
die Kamera nach oben bewegt hat Und jetzt könnten wir
jeden dieser Werte ändern, wie zum Beispiel die
Kameraentfernung zum Spieler, indem wir
einfach mit der linken
Maustaste klicken und ziehen. Und wenn ich es veröffentliche, kannst
du sehen, dass es das aktualisiert. Ich könnte das auf
etwa 500 einstellen, Enter drücken, es so
aktualisieren, dass es live aktualisiert
wird. Wenn Sie auf diese
Zurück-Schaltfläche klicken,
wird der Standardwert wiederhergestellt. Sie können wirklich ein Gefühl dafür bekommen wie viele Anpassungen wir für diese spezielle Kamera
haben. Versuchen Sie, den
Z-Offset der Kamera auf 400 einzustellen, drücken Sie die Eingabetaste, um sie nach oben zu verschieben. Hier
gibt es viele Anpassungen wie Sie das einrichten möchten,
Y, lassen Sie uns weitermachen
und den Wert auf 200 setzen , die Eingabetaste
drücken usw. Stellen Sie diesen Wert auf 222 ein und drücken Sie die Eingabetaste. Sie können es so
verschieben. Viele Feinanpassungen. Sie werden jedoch feststellen,
dass, sobald Sie aufhören,
hier zu spielen , zu
Ihren Blueprints zurückkehren und auf Ihre verschiedenen Variablen klicken, keiner dieser Werte
tatsächlich aktualisiert wurde Sie sind alle dieselben, wie
wir sie standardmäßig festgelegt haben. Ich nenne das, dass Sie
Ihre Kameraeinstellungen
vorübergehend anpassen können Ihre Kameraeinstellungen
vorübergehend anpassen weil, wenn Sie
hier
Ihre Kameraeinstellungen ändern und sagen, dass Sie
etwas ändern möchten, lassen Sie mich einfach meinen Charakter aus der dritten
Person mögen.
Sie möchten, dass die Entfernung 1.000 beträgt. Sie
müssen sich diese Werte merken oder
diese Werte kopieren, sodass, wenn Sie aufhören, Ihr Spiel zu spielen und zurück zu deinem Charakter aus der
dritten Person kannst
du einen
neuen Standardwert eingeben. Nur um noch einmal klarzustellen Wenn du
dein Spiel spielst und irgendeinen der mit deiner Kamera
verknüpften Werte
aktualisierst, ist
das nur vorübergehend, bis
du dein Spiel aufhörst. Und
wenn Sie Ihr
Spiel beenden und Ihnen diese Werte gefallen, müssen
Sie sie
hier im Editor
selbst aktualisieren , damit diese
Änderungen dauerhaft wirksam werden. In Ordnung, da haben wir's. Wir haben eine schöne maßgeschneiderte Kamera,
mach sie nach deinen Wünschen. Das reicht
für dieses Video. Wir sehen uns im nächsten.
6. Spielerbewegung: In Ordnung, willkommen
zurück alle. In diesem Video ist
es unser Ziel,
die Grundlagen der
Bewegungen
unseres Spielercharakters in unserem Spiel zu verfeinern die Grundlagen der
Bewegungen
unseres Spielercharakters in unserem . Dafür werden wir
innerhalb
unseres BP-Third-Person-Charakters arbeiten . Doppelklicken Sie also auf das
Asset, um es zu öffnen. Und ich möchte nur
einige Anpassungen an unserem Kamera-Eingabeskript und
unserem Bewegungs-Eingabeskript vornehmen. Verdrahten Sie jetzt das Kamera-Eingabeskript. Nun, wenn ich jetzt
reinspringen und spielen würde, würde ich meine
Maus überhaupt nicht berühren und benutze die W-Taste und die S-Taste Offensichtlich sind diese
Steuerungen nicht richtig, und ich benutze W, S und D, sie sind nicht richtig,
aber mein Charakter bewegt
sich solide in die eine oder andere
Richtung Wenn ich jedoch mit der Maus stoßen würde
und ich
meine Maus hier nur ein wenig stoße, bewege
ich sie von
rechts nach links, und jetzt benutze ich Sie können sehen, dass es
mich ein bisschen aus dem Gleichgewicht bringt , wenn ich schräg renne Was gerade passiert, ist, dass dieses Kameraeingabeskript die Richtung
unseres Charakters
beeinflusst Da es immer noch
angeschlossen ist, um das Problem zu beheben, müssen wir nur dieses Skript
beenden Ich könnte die ganze
Sache löschen. Ich werde
jedoch nur die Alt-Taste,
Ol, gedrückt halten und dann mit der linken Maustaste klicken und schon wird
das Kabel durchtrennt Wenn ich jetzt
hineinspringen und spielen würde und die Tasten W, S und D benutze, würde sich mein Charakter
unabhängig davon, wie viel
ich meine Maus bewege, solide in die eine oder andere
Richtung bewegen solide in die eine oder andere
Richtung Jetzt
bewegen sie sich offensichtlich nicht in die richtige Richtung. Das müssen
wir als Nächstes beheben. Dafür werden wir
zu unserem Abschnitt zur Bewegungseingabe übergehen . Derzeit haben wir zwei
Arten von Eingaben eingerichtet, eine für links, rechts
und vorwärts rückwärts Dies ist jedoch insofern
irreführend, als
unser
Vorwärts-Rückwärtsskript genau
hier das ist, was wir
verwenden möchten, um nach links und rechts hier das ist, was wir
verwenden möchten, um nach zu gehen Dieses kleine Drehbuch hier, wir werden es auslöschen. Und das liegt daran, dass wir uns einfach
darum kümmern werden unser Charakter entlang der X-Achse nach links
und rechts bewegt. Und wir müssen uns keine Sorgen machen sie sich in alle Richtungen bewegen, wir müssen uns keine
Sorgen um die Y-Achse machen. Also werden wir das auslöschen. Wir werden
das auch auslöschen. Ein paar davon sind
Routenknoten genau hier unten. Und das ist ein
bisschen Hackerei, aber ich werde mein Bestes tun, um genau zu beschreiben, was
wir hier tun wollen Es interessiert uns nur, wie wir
uns entlang der X-Achse bewegen. Ich habe das aus einem bestimmten Grund absichtlich
angeschlossen. Wenn wir uns jetzt in einem Spiel befinden, haben
wir zum Beispiel unseren linken
Steuerknüppel an einem Joystick . Wir können uns vorstellen, unser linker Daumenstick in zwei Achsen
aufgeteilt ist Das ist die Y-Achse,
genau hier oben. Sie geht geradeaus auf und ab, und das ist die X-Achse. Auch jetzt
interessieren wir uns nur für die X-Achse. Unser Charakter wird von links nach rechts
rennen. Und genau darum geht es uns
bei dieser Eingabeaktion. Wie wir die eingeben
und ausgeben Bewegungen
unserer Charaktere auf der
Grundlage unserer Eingaben Das wird sich in
die negative X-Richtung bewegen, und das wird sich in
die positive X-Richtung bewegen Wir wollen unseren Vorwärtsvektor hier haben, wobei unserer Charaktere auf der Grundlage der
Z-Drehung nach vorne gerichtet Richtung
unserer Charaktere auf der Grundlage der
Z-Drehung nach vorne gerichtet ist. Das heißt, wenn du eine gerade
Linie durch
deinen Charakter ziehen würdest, wäre Linie durch
deinen Charakter ziehen würdest, unser Vorwärtsvektor unser Charakter, der nach vorne zeigt. Jetzt wollen wir, dass
der X-Wert unserer Eingabe hier der tatsächlichen Richtung
entspricht
, in die sich unser Charakter bewegt. Wir werden unser Skript so
modifizieren , dass, wenn wir
diese Aktion mit den Tasten A und
D auf der Tastatur auslösen . Oder umgekehrt, wenn Sie
einen Controller angeschlossen haben, lesen
wir den X-Wert ein, also die Tasten A und D
, oder links und rechts
auf einem oder links und rechts
auf einem Werden wir, gehen
wir in eine positive Und die Richtung, in die wir unseren Charakter schicken
wollen,
wird auf dem Vorwärtsvektor unseres
Charakters basieren. Im Wesentlichen,
in welche Richtung schauen sie? Mit dieser Änderung
hier wird es nicht wirklich vorwärts und rückwärts
gehen,
ich denke, das ist es, relativ zum Standort
unseres Charakters Aber was die Art und Weise angeht,
wie wir
nach links und rechts schauen werden , werde
ich
das jetzt als unser neues „Links, Rechts“ bezeichnen das jetzt als unser neues „Links, Rechts Wenn unser X-Wert negativ ist,
was bedeutet, dass wir die Taste oder die linke Maustaste auf dem linken Thumbstick drücken, gehen
wir auf dem Bildschirm nach links und wenn
der X-Wert,
der mit der D-Taste
oder rechts auf dem
Thumbstick
ausgegeben wird der D-Taste
oder rechts auf dem
Thumbstick
ausgegeben , positiv ist, bewegen
wir unseren Charakter rechten Maustaste und klicken hier auf Abspielen. Du kannst jetzt sehen, dass
wenn ich die Taste drücke, ich mich nach links bewege, die
Taste D sich nach rechts bewegt Und ich habe auch einen
Controller angeschlossen, also drücke ich einfach
links auf dem linken Thumbstick und rechts auf
dem linken Thumbstick hier, um zu
zeigen, dass
das Als Nächstes möchte ich zeigen, wo
Sie
mit einigen Bewegungsparametern Ihrer Charaktere herumspielen können mit einigen Und diese können innerhalb der
Bewegungskomponente
Ihres Charakters
angepasst werden , die in Ihrem BP, dem Charakter aus der
dritten Person, Viele Parameter
können angepasst werden, wenn diese Komponente im
Detailbereich ausgewählt wird. Wir werden nicht alle
anpassen, aber wir werden einige anpassen. Und ich werde über einige
der wichtigsten sprechen der wichtigsten , mit denen sich
viele Designer befassen. Jetzt wird der erste, den ich anpassen
möchte , weit unten sein. Ich werde mir einfach
diesen Slider hier schnappen. Wir suchen nach
innerer Bewegung. Jetzt wollen wir nur
, dass sich unser Charakter entlang der X-Ebene bewegt und zu unserem Level hier
zurückkehrt. Noch einmal, wenn ich in eine Ansicht von oben nach unten
gehen würde, das eine
Ansicht unseres Levels von oben nach unten. Wir werden uns
entlang der X-Achse bewegen. Hier ist unser kleiner
Cheat hier unten, die X-Achse, von links nach rechts Wir wollen uns nicht
entlang der Y-Achse,
der Auf- und Ab-Achse, in
den Vordergrund oder
in den Hintergrund bewegen entlang der Y-Achse,
der Auf- und Ab-Achse, in
den Vordergrund oder
in den Hintergrund , um sicherzustellen, dass wir auch
dann, wenn wir auf Dinge stoßen, nicht von
unserer X-Linie abkommen können Ich werde sagen, beschränkte Ebene Ja. Und ich möchte
unsere Ebene entlang der Y-Achse einschränken Ich möchte mich nicht entlang der Y-Achse bewegen können
. Wenn ich das jetzt mache,
wird
dieser Wert automatisch auf eins gesetzt . Das bedeutet im Wesentlichen, dass Sie der Y-Achse überhaupt
nicht bewegen können. Sie können sich auf der X-Achse
, die links und rechts verläuft,
sowie auf der Z-Achse, die nach oben und unten verläuft
, bewegen . Vielleicht hochspringen,
sich nach unten bewegen. In Ordnung, das ist also
alles schön und gut. Als Nächstes möchte ich die
Rotationseinstellungen unserer Charaktere ändern . Und dafür suche ich hier oben nach Einstellungen
für die
Rotation der
Charakterbewegungen. Diese Rotationsrate
bestimmt die Geschwindigkeit, mit
der sich unser
Charakter umdreht. Wenn ich jetzt auf
Abspielen klicken und die Taste
oder die Taste drücken würde, kannst du
sehen, dass ich mich nicht superschnell
umdrehe und ich möchte mich
schneller umdrehen. Also werde ich
meine Rotationsrate
hier auf einen hohen Wert
entlang der Z-Achse von
2.500 einstellen hier auf einen hohen Wert
entlang der Z-Achse von . Die Z-Achse ist die Richtung
, in die unser Charakter zeigt. Stellen Sie sich eine gerade Linie vor
, die durch unseren Charakter verläuft. Wir wollen uns also mit dieser Geschwindigkeit schneller um
diese Achse drehen , 2.500. Wenn ich also
auf „Abspielen“ klicken müsste, drücke die Taste. Sie können sehen, wie schnell
ich mich dort umgedreht habe, die Taste D gedrückt habe usw. Also spiel damit
nach deinem Geschmack herum. Stellen Sie sicher, dass Sie auch die Option „Drehung an
Bewegung
ausrichten“ aktiviert haben Drehung an
Bewegung
ausrichten“ aktiviert Wenn das nicht aktiviert ist, wenn es nicht aktiviert ist
und Sie A und D drücken, haben
Sie einen
solchen Effekt. Stellen Sie also sicher, dass die Drehung an
Bewegung
ausrichten“ ebenfalls aktiviert ist. Und jetzt möchte ich zum Schluss
die Geschwindigkeit anpassen, mit der sich
mein Charakter bewegt, also
im Wesentlichen, wie schnell er sich bewegt. Und das kann mit
einem Parameter namens
maximale Gehgeschwindigkeit
gesteuert werden. Es ist hier im Bereich
Bewegung und Gehen von Charakteren. Lass dich nicht vom Wort
Gehen täuschen. Das ist im Wesentlichen, wie
schnell dein Charakter fliegen kann. Standardmäßig ist es 600. Ich werde meins auf
1.000 einstellen, aber nach Ihren Wünschen einstellen Wenn ich jetzt
reinspringen und spielen muss, kannst
du sehen, wie
schnell und ich bewege mich jetzt
scheint mein Charakter überhaupt nicht zu rutschen, oder? Wenn ich mich jetzt umdrehe, halten
sie auf einmal an und ich möchte ein bisschen
rutschen Also werde ich meine
Bodenreibungseinstellung genau hier
anpassen Das ist auf acht eingestellt.
Ein niedrigerer Wert hat weniger Reibung zur Folge. Ich werde es auf zwei setzen. Wenn ich jetzt
reinspringe und spiele und mich nach rechts bewege und mich dann
darauf einstelle, nach links zu gehen , können
Sie sehen, dass er nicht
sofort aufhört Da ist nur eine
kleine Rutsche. Fummeln
Sie auch damit nach Ihrem Geschmack. Ein weiterer Faktor, den
Sie vielleicht
anpassen sollten, heißt
Beschleunigung Ich lasse meine vorerst
unverändert, aber du findest sie unter
Charakterbewegung > Allgemeine
Einstellungen > Max. Beschleunigung. Das ist offensichtlich, wie
schnell sich dein Charakter auf den neuesten Stand bringen
wird,
wenn er gestoppt wird. Ordnung, Leute, das wird
es für diesen Fall,
für unsere Spielerbewegung, reichen. Wir sehen uns alle
in der nächsten.
7. Spieler-Sprung: Willkommen zurück alle.
In diesem Video ist es
unser Ziel, einige
der Sprungeigenschaften
unseres Spielercharakters anzupassen der Sprungeigenschaften
unseres .
Lass uns gleich eintauchen. Lassen Sie uns in unseren Blutdruck-Charakter aus der dritten Person eintauchen.
Hier drinnen. Wir fangen
noch einmal mit dem Event-Graph an. Und wenn wir weiter nach unten scrollen, benutze
ich einfach
die rechte Maustaste. Wir finden unseren Jump-Input-Abschnitt des Skripts, der standardmäßig hier
hätte sein sollen. Derzeit habe ich die Dinge
so eingerichtet, wenn wir springen,
das heißt, die
Leertaste löst
dieses Ereignis aus und
lässt unseren Charakter über diese
Sprungfunktion springen. Wir werden tatsächlich springen. Und wenn wir das tun und ich es im Spiel überspringe und die Leertaste
gedrückt und ich sie gedrückt halte, kannst
du sehen, wie unser Charakter
weiter springt. Und das ist nicht
unbedingt das, was wir wollen. Die Taste auf einem
Xbox-Controller, die ich gerade
gedrückt halte. Wenn Sie das angeschlossen
haben, machen wir das auch. Ich möchte das
so machen, dass mein Charakter nur springt, wenn wir die Taste
drücken Nicht wenn ich es gedrückt halte, springt
er weiter. Eine einfache Möglichkeit, das zu beheben,
ist, dass wir nur
springen wollen , wenn wir anfangen die
Leertaste oder die Taste gedrückt zu
halten. Ich werde das einfach von ausgelöst ändern, weil
wir
dieses Sprungereignis ständig
auslösen Wenn wir die Taste
oder die Leertaste auf einem Controller gedrückt halten , verschiebe
ich
diesen Draht, indem ich bei gedrückter linker Maustaste bei gedrückter Strg-Taste auf
Start Wenn ich jetzt spiele und die Leertaste
gedrückt halte, Aber um wieder zu springen, muss
ich loslassen und
dann erneut drücken Das wird das Problem beheben. Als Nächstes möchte
ich nur einige
unserer Charaktere anpassen , indem sie ihre
Parameter in ihre Eigenschaften springen. Und auch dies kann
innerhalb unserer Komponente zur
Charakterbewegung angepasst werden . Das erste, was ich anpassen möchte, ist die Höhe unseres Sprungs. Und das ist ein
bisschen irreführend. Dies kann mit
unserer Sprung-Z-Geschwindigkeit geändert werden. Es gibt keinen direkten
Sprungparameter. Das ist der Typ
hier, der kontrolliert, wie hoch unser
Charakter springt. Derzeit ist es für mich
auf 700 eingestellt, ich werde das
auf 1.500 ändern. Und wenn ich es jetzt im Spiel
überspringe und die
Leertaste drücke, kannst du es sehen. Ich springe viel höher. Die Art und Weise, wie sich das Springen
anfühlt, hängt jedoch nicht nur mit
dieser einzigartigen Eigenschaft Sie können sehen, dass es ein
bisschen schwebt, und deshalb möchte ich, dass es
ein bisschen flotter ist, mein Charakter schneller
wieder auf den
Boden fällt Dies kann innerhalb
unserer
Charakterbewegungskomponente angepasst werden , indem wir unseren Effekt an die
Schwerkraft anpassen Diese Eigenschaft
der Schwerkraftskala hier oben minus ist derzeit auf 1,75
eingestellt. Ich
möchte sie erhöhen,
damit die Wirkung der Schwerkraft auf meinen Charakter größer
wird, mit einem Wert von 2,5. Wenn
ich reinspringe und spiele, erhalte
ich dieses Ergebnis Ich springe ein bisschen höher, werde
aber auch ein
bisschen schneller heruntergefahren Also passe das nach deinen Wünschen an. Nun,
ich möchte auch damit herumspielen, wenn ich in die Luft
springe und dann Luft bin versuche, mich mit den Tasten A und D zu kontrollieren,
während ich in der Derzeit habe ich sehr
wenig Kontrolle und
normalerweise mag ich es, wenn ich ein
bisschen mehr Luftkontrolle habe
, die über
einen Luftregelparameter eingestellt werden kann , der
unter unserer Sprung-Z-Geschwindigkeit liegt unter unserer Sprung-Z-Geschwindigkeit Da ist Sprung Z,
da ist Luftregelung. Ich setze den Wert auf 1,0. Wenn ich jetzt reinspringe und spiele, springe ich. Ich versuche, Kurs ein wenig
zu korrigieren mit A und D den Kurs ein wenig
zu korrigieren, während
ich in der Luft bin. Haben Sie ein bisschen mehr Kontrolle, spielen Sie mit, das ist auch nach
Ihrem Geschmack Nun gibt es noch einige andere Parameter, die
mit Sprüngen zu tun haben und
die nicht Teil unserer
Charakterbewegungskomponente sind die nicht Teil unserer
Charakterbewegungskomponente die ich persönlich nicht
anpassen werde Aber ich wollte dich darauf aufmerksam
machen, in den Standardeinstellungen
deiner Klasse zu finden Dies sind Parameter, die
sich auf unsere Charakterklasse beziehen. Wenn ich nach unten scrolle,
scrolle ich weiter nach unten. Tatsächlich gebe ich einfach
Jump in das Detailfenster ein. Hier oben haben wir zwei, über die Sie bestimmt etwas wissen
wollen. Einer ist Jump Max Count. Wenn ich das so ändern würde, drei
sage und dann
reinspringen und spielen würde, können
Sie sehen, dass ich jetzt 123 erreichen kann
und ich nur drei machen kann. So kann
ich einen Dreifachsprung,
Doppelsprung und
Fünffachsprung umsetzen Jetzt
wird dein Charakter keine weitere
Sprunganimation abspielen Wenn Sie diese
Zahl auf über eins erhöhen, sollten Sie wissen, dass dafür speziellere Einrichtung erforderlich ist. Aber so können Sie
Doppelsprünge oder
Dreifachsprünge usw. erstellen . Das ist innerhalb der
Klassenstandardwerte, die nach Sprung suchen. Ein weiterer Wert, über den Sie vielleicht etwas wissen
möchten, heißt Jump Max Hold Time und ist
derzeit auf Null eingestellt Wenn Sie
jedoch einen kleinen
Rocket-Boost-Effekt wünschen, werde
ich ihn hier auf einen
Wert von 1 Sekunde einstellen Wenn ich jetzt
einspringen und spielen würde, würde ich die Leertaste
drücken und sie dann gedrückt halten. Also los geht's, wenn ich darauf drücke, bekomme ich einen kleinen Effekt vom Typ Raketenbeute Ich tippe
jetzt einfach drauf. Das ist also ein Wasserhahn. Aber wenn ich es halte,
wird es mir einen
kleinen Schub geben. Wenn du also beim Springen einen
kleinen zusätzlichen Schub willst , kannst
du die maximale Haltezeit für den
Sprung anpassen. Ich will diesen Effekt nicht, also setze
ich ihn wieder auf Null. Das war wieder einmal alles innerhalb Klassenstandards unseres
Third-Person-Charakters Ich bin mit all
dem zufrieden. Ich werde hier
kompilieren und speichern.
Und da hast du's. Wir haben gerade einige Parameter für den
Charaktersprung angepasst. Wir sehen uns alle
im nächsten Video.
8. Player-Jump-FX: Willkommen zurück. Nun, da unser Charakter springt,
fügen
wir einen
Soundeffekt und einen visuellen Effekt, einen Partikeleffekt,
hinzu. Um einen Partikeleffekt zu nutzen, gehe
ich zu unserem Launcher für
epische Spiele. Unreal Engine wurde
auf der linken Seite ausgewählt. Marketplace Ich
habe hier oben auf dem Marktplatz ausgewählt hier oben auf dem Marktplatz werde nach Infinity Blade
suchen Nachdem es hier
ein bisschen nachgedacht hat, werde
ich nach
Infinity Blade-Effekten suchen. Nun, das ist ein etwas
älteres Zusatzpaket, aber es hat einen
speziellen visuellen Effekt , der unsere Charaktere
begleiten wird. Springe wie Staub,
der aus seinen Füßen austritt. Um dieses
Inhaltspaket hinzuzufügen, muss ich nur klicken, um dieses Projekt hinzuzufügen Und wähle aus, welches Projekt
ich hinzufügen möchte. Dies wird
mein Plattformprojekt sein. Da ist es. Wählen Sie das aus und
klicken Sie auf Zum Projekt hinzufügen. Jetzt wird es diese Dateien,
diese Partikeleffekte,
zu unserem Projekt
hinzufügen . Ich kann hier schließen. Und dann komm zurück
zu Unreal Engine. Dies wird
je nach Computer eine Weile dauern je nach Computer Dann sollte irgendwann in
Ihrem Inhaltsbrowser das Infinity
Blade Effects Pack angezeigt werden. Wenn Sie hier nachschauen, finden hier all die verschiedenen Effekte , die sich in
diesen Ordnern befinden. Ich werde nach einem bestimmten
suchen Sentinel
heißt gerade Senti eingegeben hat. Es wird
dieser Typ hier sein. Dieser Sprungstartpfad. Es ist ein Staubpartikel , der sich von den Füßen
unseres Charakters ablagern wird. Auch hier ist Infinity Blade
Effects ausgewählt. Das ist der, den ich hier gleich
verwenden werde . Ordnung, nachdem das
Inhaltspaket hinzugefügt wurde, möchte
ich
als Nächstes in
unseren
Charakterentwurf für Dritte eintauchen unseren
Charakterentwurf für Dritte Schauen Sie sich die Baupläne für
Dritte an. Ich werde meine Suche hier löschen
. Doppelklicken Sie auf einen Charakter aus der dritten
Person und ich möchte mein Mesh auswählen. Der Grund, warum ich
hier mein Mesh
auswähle , ist, dass
ich
im Detailbereich das
Skelettnetz-Asset auswählen möchte mit diesem
Doppelklick direkt hier auf
das Sumnil-Bild
verknüpft , das mit diesem
Doppelklick direkt hier auf
das Sumnil-Bild
verknüpft ist, um es
zu öffnen Als
Erstes möchte ich . Als
Erstes möchte ich einem bestimmten Knochen einen Socket
hinzufügen Auf der linken Seite hier habe ich einen
Skelettbaum der all die
verschiedenen Knochen
zeigt, die hier auf unserem Skelett
existieren Charakter, ich
wähle unseren
Beckenknochen, der genau in
der Mitte ist, und dann klicke ich
mit der rechten Maustaste
darauf und wir
wählen, ob wir eine Buchse hinzufügen möchten Jetzt können wir diesem Socket einen Namen geben. Es wurde nur Beckensockel genannt. Aber darauf kannst du F zwei drücken. Und ich nenne das einfach kurz
VFX und drücke Enter Wenn das ausgewählt ist, kann
ich es positionieren. Ich werde hier in meinem Darstellungsfenster die
Leertaste drücken. Ich klicke einfach mit der
rechten Maustaste hier um dieses Ansichtsfenster zu aktivieren, drücke die Leertaste und dann kannst
du es nach oben oder unten bewegen Der Grund, warum ich
diese Buchse am
Becken befestigt habe , ist,
dass ich wollte, dass diese bestimmte Buchse gerade vom Becken
aus verläuft und
nicht an einem bestimmten Fuß befestigt ist Und ich werde nicht besonders
genau darauf eingehen, aber ich werde
es genau dort platzieren Das ist ziemlich gut. Okay, du kannst
das nach deinem Geschmack abstimmen. Okay, als nächstes
hier oben habe
ich diese kleine
Running Man-Ikone Ich wähle das aus
und das
gibt mir Zugriff auf die verschiedenen Lass mich einfach diesen neuen
Tab oben hier andocken. Die verschiedenen Animationen, die
unser Charakter abspielen kann. Derzeit spielen wir diese
M, M-Sprung-Animation ab, wenn
unser Charakter hochspringt Jetzt möchte ich das pausieren , weil mich das ein
bisschen ablenkt Ich kann diese Animation also pausieren,
indem ich hier klicke. Ich möchte Ihre Aufmerksamkeit genau hier
auf diesen Bereich lenken. Wir möchten eine
sogenannte Benachrichtigung hinzufügen, um an einer Sound- und einen Partikeleffekt
abzuspielen bestimmten
Stelle innerhalb dieser Animation
einen Sound- und einen Partikeleffekt
abzuspielen. Jetzt können wir das auf diese Weise hin und
her schrubben. Damit wir das
innerhalb dieser speziellen
Sprunganimation so einstellen können, wie wir es haben wollen innerhalb dieser speziellen
Sprunganimation Jetzt möchte ich diesen visuellen Effekt mit dem
Soundeffekt
gleich am Anfang abspielen . Ich werde das hier
gleich zu Beginn positionieren. Du musst nicht perfekt sein. Gleich hier unten. Ich werde genau dort klicken, wo
es diesen einen Titel gibt. Ich klicke mit der rechten Maustaste und
füge eine Benachrichtigung hinzu. Jetzt fügen wir diesen
Partikeleffekt gleich hinzu,
aber ich möchte zuerst einen Sound hinzufügen. Lassen Sie uns hier
in diesem Flyout-Menü einen Sound abspielen. Jetzt können Sie sehen, dass wir diesen Ort
hinzugefügt haben Notify. Sie können mit der
linken Maustaste darauf klicken und ihn verschieben, bis er sich an einer anderen Stelle
in der Animation befindet Wenn diese Option
in unserem Detailbereich ausgewählt ist, können
wir ihr einen
Sound zuordnen. Dies wird ausgelöst, wenn wir
abspielen und diesen Punkt in der Animation hier im Soundbereich
des Detailfensters erreichen. Vergewissern Sie sich
, dass Sie diese Benachrichtigung ausgewählt haben. Ich gebe Mario Jump ein. Ich habe Mario Big Jump
oder Mario Jump. Ich werde mich hier einfach für Mario Jump
entscheiden. Wir haben diese Soundacts gleich
zu Beginn
des Kurses importiert . Wenn Sie das nicht getan haben, gehen Sie zurück zum
Anfang des Kurses und importieren Sie diese Dateien Dann verschiebe ich
meinen Slider hier einfach ein
bisschen weiter. Sie können hören, wie der
Soundeffekt dort losgeht. Und ich klicke mit der rechten Maustaste und
füge eine weitere Benachrichtigung hinzu. Lass mich einfach gleich hier weitermachen. Rechtsklick, Hinzufügen, benachrichtigen. Wir werden
einen Partikeleffekt hinzufügen und
unseren Partikeleffekt auswählen. Und drüben im
Detailfenster geben Sie Su ein, und schon ist es dieser Sprung-Trail. Das möchte ich jetzt spielen. Wir sind noch nicht ganz fertig
mit unserem visuellen Effekt, unserer
Partikeleffekt-Benachrichtigung, die hier ausgewählt wurde. Drüben im Detailbereich müssen
wir angeben, zu welchem
Socket das gehört. Und das können wir herausfinden, indem wir zu unserem Skelettbaum
zurückkehren. Denken Sie daran, es heißt VFX. Wenn du also einfach
VFX eingibst und es alle
verschiedenen Buchsen hier findet, dann haben wir
es für VFX eingegeben Lass uns weitermachen und das speichern. Kehren Sie zu unserem
Level-Editor zurück und spielen Sie. Und ich werde nur einmal
die Leertaste drücken. Nachdem ich in das Viewport geklickt
habe, sehe ich mein Partikel Ich habe keinen Soundeffekt gehört. Wenn Sie nun keine Partikel
sehen oder
keinen Ton hören, manchmal einfach die Platzierung
dieser Partikel in der Timeline
anpassen. Wenn Sie diese zu
nah an der Vorderseite platzieren, hören Sie
manchmal nicht den
Soundeffekt, den Sie sich
erhofft oder Sie sehen nicht den visuellen Effekt
, den Sie sehen möchten. Ich werde einfach versuchen,
den Mario-Soundeffekt
hier ein wenig zu verschieben . Ich werde das erneut speichern. Lassen Sie uns das
jetzt noch einmal versuchen , indem wir hier noch einmal an diesen Benachrichtigungen
in unserer MM-Sprung-Animation
zwischen den Kameraschnitten
herumspielen in unserer MM-Sprung-Animation
zwischen den Kameraschnitten Ich habe festgestellt, dass, wenn ich
meinen dritten Audio-Frame mit
meinen bald folgenden Partikeln abgespielt habe, sie sich
hier ein wenig überlappen Ich habe beide problemlos ausgelöst Wenn du jetzt hineinspringst und
spielst, kannst du sowohl den
Partikeleffekt sehen als auch den Soundeffekt hören In Ordnung, Leute
, das reicht für diesen. Mal sehen, wann der nächste ist.
9. 2D-Snap-Einstellebenen: Willkommen zurück. In
nicht allzu ferner Zukunft werden wir
hier
einige Plattformen und einige Blöcke erstellen . Und wir werden unser
Level vergrößern. Die Sache ist nur, wir die
Plattformen und Steine, die wir erschaffen
werden, innerhalb der
Linie unseres Charakters platzieren wollen erschaffen
werden, innerhalb der
Linie unseres Charakters Um
das Ganze einfacher zu machen, wollen
wir es so gestalten,
dass
diese Blöcke und
Plattformen, wann immer wir sie in unser Level ziehen , automatisch auf dem
Reiseweg des Spielers
mitlaufen . Wenn ich
zum Beispiel einen Würfel
aus dem Bereich „Schauspieler platzieren “ in meinem Level platzieren würde, könntest
du sehen, dass
ich dort und diesen wieder hier platziere, aber sie entsprechen nicht unbedingt
meinem Charakter. Ich möchte es
so gestalten, dass, wenn ich
eine Plattform oder einen
Block in mein Level ziehe , er sich genau in der Tiefe befindet
, in der ich ihn haben möchte. In den nächsten beiden Videos werden
wir
einige Einstellungen aktivieren, um diesen Vorgang erheblich zu vereinfachen. Vertrauen Sie mir, das wird sich später
auszahlen. Wir werden damit
beginnen, einige zwei
Snap-Setting-Ebenen zu aktivieren und einzustellen. Dazu
springen
wir in unsere Projekteinstellungen, die sich hier ganz
oben rechts befinden. Einstellungen, Projekteinstellungen. Und in unseren Projekteinstellungen auf der linken Seite möchten
wir nach unten
scrollen, bis wir
hier unter dem Editor zu der
Stelle kommen , an der zwei D steht. Jetzt wollen wir hier
in der Lage
sein einige Snap-Layer einzurichten. Zuerst müssen wir
sie einfach aktivieren, indem wir sie aktivieren Wenn ich hier zu
meinem Level-Editor zurückkehren würde, können
wir sehen, dass wir das jetzt genau hier
in unserem Fenster haben , eine Zwei-D-Snap-Einstellung
sowie die
Möglichkeit, eine bestimmte Tiefe einzustellen. Im Moment haben wir nur den
Vordergrund als Tiefe. Das alles wird in ein
bisschen mehr Zeit Sinn machen, aber lassen Sie uns noch einmal in
unsere Projekteinstellungen eintauchen. Wenn dies aktiviert ist,
möchte ich einige Snap-Layer einrichten. Ich werde auf dieses
Drop-down-Menü klicken und hier mehr als nur
drei Indizes
erstellen. Tatsächlich möchte ich fünf festlegen, also werde ich noch ein paar Mal auf diese
Plus-Schaltfläche klicken , dann werde ich sie alle
erweitern. Ich klicke einfach mit der
rechten Maustaste hier, um dieses kleine Menü aufzurufen und alles zu erweitern. Okay, die erste
Ebene, die ich hier
einstellen möchte , wird Foreground heißen. Aber in Klammern
werde ich Extrem setzen. Und ich werde
das auf eine Tiefe von
1.000 setzen und das alles wird hier in Kürze
Sinn machen. Im Gegensatz dazu, dass ich
dir sage, was es bewirken wird. Ich werde dir zeigen,
was es bewirken wird. Der nächste, Index eins. Das nenne ich
einfach Vordergrund. Ich werde diese Tiefe hier
auf 500 Indic Two setzen. Ich werde das auf Main setzen und die Tiefe auf Null
belassen, Indic Drei, ich
rufe zurück Ich werde die
Tiefe auf minus 500 einstellen. Dann setze ich hier meinen
letzten Wert auf vier um wieder extrem zu sein. Und wir
werden die Tiefe hier auf minus 1.000
einstellen . Stimmt, all diese Werte eingestellt sind, wenn all diese Werte eingestellt sind, muss
ich hier nichts
speichern. Ich möchte sicherstellen, dass meine Snap-Achse
entlang der Y-Achse verläuft. Jetzt Y, Y-Achse. Lass uns von hier rausspringen, zurück zu unserem Level
gehen. Der Grund, warum ich es auf
unsere Y-Achse setzen
möchte , ist,
dass, wenn ich unsere perspektivische Ansicht hier
von der Perspektive in
eine Ansicht von oben nach unten
ändern von der Perspektive in
eine Ansicht von oben nach unten und die Ansicht vergrößern würde, meine Spieler hier beginnen Der Schauspieler ist genau hier. Genau hier werden wir uns auf diese Art
der Reise
fortbewegen. Ich möchte sicherstellen, dass wir unsere Tiefenschichten genau hier
entlang dieser Y-Achse
festlegen . In Ordnung, lassen Sie uns zurück
zu unserem perspektivischen Viewport springen. Und wenn ich jetzt einen
einfachen Würfel in unser Level ziehen würde, würde
es so aussehen, als ob
nichts passiert wäre Mr. Wonder, ich dachte, Sie hätten
gesagt, dass sie bis
zu einer bestimmten
Tiefe einrasten würden. Nun, das ist es. Denn lassen Sie mich
diese einfach hier löschen, weil
ich meine beiden
D-Snap-Einstellungen nicht aktiviert habe. Genau hier oben
rechts in meinem Viewport. Eigentlich muss ich das
auf Jetzt klicken, wenn ich
das in meiner Ebene platziere, egal wo ich es innerhalb der Ebene
verschiebe,
Sie können sehen, dass es auf
meine aktuell gewählte Ebene, die sich im Vordergrund befindet
, einrastet meine aktuell gewählte Ebene, die sich im Vordergrund befindet
, Sie befinden sich alle innerhalb
derselben Tiefe, wenn Sie so wollen, perfekt aufeinander abgestimmt Sie haben gesehen, wie ich dort in meinen
Projekteinstellungen
mehrere
Tiefenebenen eingerichtet habe. Extrem im Vordergrund. Ändern Sie es auf die Standardeinstellung. Lass
mich zurück in den Vordergrund gehen. Hier sind Vordergrund,
extremer Hintergrund, das sollte Haupthintergrund
und extremer Hintergrund heißen. Wie ändere ich diese
wieder in meinem Level-Editor? Nun, wenn ich genau hier
klicken würde wo
Vordergrund extrem steht, können
Sie sehen, dass ich
Vordergrund und Hintergrund wählen kann. All die verschiedenen Ebenen
, die ich gerade eingerichtet habe. Wenn ich sagen würde, extremer
Hintergrund. Wenn ich jetzt einen
Würfel in meinem Level
platziere, kannst du sehen,
dass er ihn in dieser, dieser Tiefe platzieren
wird . Wenn ich das auf Main ändern
würde, würde das genau zu
meinem Reiseweg passen. Wenn ich das auf „Extrem im
Hintergrund“ setzen würde , nicht auf „Extrem
im Hintergrund“. Ich wollte extrem in den
Vordergrund gehen. Dadurch wird es
auf diese Tiefe gebracht, was es umso einfacher machen wird, unser Level mit Blöcken,
Plattformen und Requisiten
auszulegen auszulegen umso einfacher machen wird, unser Level mit Blöcken,
Plattformen und Requisiten Ordnung, Leute,
das wird alles für dieses Video tun Wir sehen uns im nächsten.
10. 2D-Übersetzungs-Widget: Willkommen zurück alle.
Nun, im letzten Video haben wir
in unseren Projekteinstellungen zwei Snap-Layer aktiviert. Und diese sind
in unserem Viewport hier
oben rechts zu sehen in unserem Viewport hier
oben rechts Wir haben unsere beiden
Snap-Layer eingerichtet Und wenn ich
genau hier klicke, sind hier
die verschiedenen Ebenen
, die wir eingerichtet haben Übrigens, Sie können zu diesem Abschnitt
der Projekteinstellungen
gehen, wo wir sie einrichten,
indem Sie hier klicken. Wir haben genau hier auf „
Gehe zu Ebenen bearbeiten“ geklickt, dann wirst du zum
richtigen Abschnitt weitergeleitet, dem Bereich mit den zwei D
unserer Projekteinstellungen, wo wir
diese Snap-Ebenen eingerichtet haben Jetzt wollen wir hier
noch etwas anderes machen und das ist, unser kombiniertes 2-D-Widget zum
Übersetzen und Drehen zu aktivieren Das ist das Objekt, das Ziel
dieses speziellen Videos, das funktioniert sehr gut in Verbindung mit
diesen Snap-Layern. Ich werde das einfach hier überprüfen
. Auch dies finden
Sie in Ihrem Projektbereich Einstellungen
zwei D. Und was das bewirken
wird,
zurück zu unserem Level-Editor zu springen , das wird
eine weitere Schaltfläche hinzufügen, wenn Sie so wollen. Genau hier oben in unserem Viewport. Es wurde gerade das hinzugefügt, was es uns ermöglicht, Objekte in zwei
D auszuwählen
und zu
verschieben oder zu drehen . Warum sollten wir das
überhaupt auswählen wollen Nun, lassen Sie mich dieses
Szenario vorführen. Wir platzieren einen Würfel in unserem Level, und im Moment habe ich ihn
auf mein Hauptlevel Und du könntest
auf eine Situation stoßen in der du versuchst, ihn auf deinem Level zu
bewegen, und vielleicht
bewegst du ihn versehentlich entlang der Y-Achse und jetzt ist
er nicht mehr wie wir es beabsichtigt haben, Teil
unseres Hauptweges Gibt es eine Möglichkeit, sich
davor zu schützen? Ja, das gibt es. Wenn wir diese Option
auswählen würden
, die wir gerade aktiviert haben. Wenn wir jetzt
ein bestimmtes Objekt auswählen, unser Widget für die Übersetzungsrotation sieht
unser Widget für die Übersetzungsrotation etwas anders aus. Jetzt können wir es nur noch nach oben bewegen, oder in diesem Fall nach links und rechts. Wir können es
auch drehen, indem wir einfach auf diesen grünen Pfeil klicken und es dann so
bewegen. Jetzt kannst du sehen, dass es
einrastet, wenn ich es drehe. Dabei werden unsere Einstellungen für das
Angle Snap
oder das Rotational Snap Wenn ich es also
gleichmäßig bewegen und drehen möchte, kann
ich es einfach
ausschalten und jetzt den grünen Pfeil nehmen und ihn gleichmäßig
drehen. Ebenso kann ich hier immer noch meine Movement
Snap-Einstellungen
einschalten . Es bewegt sich gerade
in Schritten von 100, aber das dient nur zum
Schutz davor, dass wir es wieder
innerhalb der Y-Achse
bewegen Noch einmal, hier in
unseren Projekteinstellungen,
den Projekteinstellungen, im Bereich zwei D, haben wir gerade unser kombiniertes Widget zum Übersetzen
und Drehen mit zwei
D aktiviert , indem wir das
Häkchen bei „
Es gibt kein Mitspracherecht, keine Schaltfläche
oder so“ angekreuzt Es gibt kein Mitspracherecht, keine Schaltfläche
oder so Dadurch ist diese
Schaltfläche einfach
in unserem Darstellungsfenster verfügbar , sodass wir,
wenn wir ein Objekt auswählen, es nur um unsere
verschiedenen Achsen bewegen oder
es so drehen können
, indem
wir nach dem grünen Pfeil greifen Das wird später ein sehr praktischer Trick
sein , wenn wir
Blöcke und Plattformen in anderen
Objekten innerhalb unseres Levels platzieren Blöcke und Plattformen in anderen
Objekten innerhalb unseres In Ordnung, Leute,
das wird es für diesen Fall reichen. Wir sehen uns im nächsten.
11. Durch die Plattform springen (Teil #1): Willkommen zurück alle.
In diesem Video ist es
unser Ziel, eine Plattform zu schaffen durch die
unsere Spieler springen
oder fallen können. Und nur um
dir zu zeigen, was ich meine, werde
ich hier auf
den Play-Button klicken. Ich habe eine Plattform
zwischen den Videos hinzugefügt. Und wenn ich versuche, durch
diese Plattform zu springen , kann ich das
derzeit nicht tun. Und wenn ich auf der oberen Seite wäre, könnte
ich sie momentan auch nicht
herunterfallen. Also werden wir
eine Plattform bauen, durch die wir
springen und durch die wir
auch fallen können . Um das zu tun, werden
wir einen Plan erstellen. Und wir werden
hier unten in unserem Inhaltsbrowser
einen neuen Ordner
erstellen , in den wir
verschiedene Blueprints
einfügen, die wir im Laufe
dieses Kurses erstellen , wobei
Ihr Plattformordner ausgewählt ist. Klicken wir mit der
rechten Maustaste darauf Wir werden einen neuen Ordner hinzufügen. Wir werden ihn einfach Blueprints
nennen. dieses Verzeichnis ausgewählt ist, können
Sie unseren
Pfad hier oben sehen Wir klicken mit der rechten Maustaste
in eine leere Stelle erstellen eine neue Blueprint-Klasse Wir möchten
die Schauspielerklasse wählen, weil dies ein
Objekt ist, das
wir in unserer Welt platzieren werden Wähle dieses Top. Dann werden wir aufgefordert, ihm einen Namen
zu geben. Wir werden das
BP Underscore Platform nennen. Unterstreichen. Ich rufe Jump
Through an, einfach so Dann machen wir weiter und
doppelklicken auf diesen Typen, um ihn zu öffnen. Nun, nur ein kurzer Tipp hier. Ich mag es nicht, wenn meine neuen Assets in einem
separaten Fenster wie diesem geöffnet werden. Ich mag es, wenn sie hier
oben
automatisch geöffnet werden. Also werde ich hier draußen aussteigen. Gehen Sie zu
Editor-Einstellungen bearbeiten. In unseren
Editor-Einstellungen genau hier. Wenn wir unter der offenen Stelle des
Asset-Editors
landen, sollte er,
wenn Sie so wollen, auf der Titelseite Ihrer
Editor-Einstellungen stehen. Ich werde das auf
das Hauptfenster umstellen. Dann kann ich hier schließen. Und wenn ich dann darauf
doppelklicke, öffnet
es
sich ganz oben. Wenn Sie jemals
etwas sehen, das besagt, dass reine Datenpläne
handelt, können
wir hier klicken um unseren vollständigen
Blueprint-Editor zu öffnen Nun, das ist die Ansicht
, die wir sehen wollen. Jetzt wurde standardmäßig unsere Registerkarte mit dem Ereignisdiagramm geöffnet
. Hier werden
wir die Codierung für diesen Blueprint vornehmen Ich möchte zunächst zu unserem
Viewport springen, weil wir einige Komponenten
hinzufügen werden , die wir sehen wollen Ordnung, jetzt ist die
erste Komponente In
Ordnung, jetzt ist die
erste Komponente, die
ich hier oben links unter
dem Komponentenfenster hinzufügen möchte oben links unter
dem ,
ein statisches Netz Obwohl ich ein beliebiges
statisches Netz wählen könnte, werde
ich einfach einen Würfel
wählen. Ich werde hier also den Würfel
verwenden,
aber wisse, dass wir uns einen Namen geben können, sobald
wir ihn hinzugefügt haben. Ich werde diese Plattform einfach
anrufen. Wir könnten das von
einem Würfel zu einem
anderen statischen Netz ändern . Ich meine, du könntest das
wie den Stuhl aussehen lassen , wenn
du das wirklich
willst , oder irgendein anderes statisches
Netz, das du willst. Aber der Würfel wird
für
uns gut funktionieren , weil
wir ihn so dimensionieren und formen werden, dass er ziemlich langweilig
aussieht, aber auch hier können Sie
nach Herzenslust aufpeppen Ich werde die Skala
hier so ändern, dass sie drei im X ist, im Y, ich werde sie auch
auf fünf ändern Dann werde
ich den Wert in Z so ändern, dass er etwas dünner
ist, sodass er 0,2 ist. Okay, dann
füge ich einige Kollisionen auf der Ober- und
Unterseite dieser Plattform hinzu. Okay, also werde ich unter der Werbekomponente auftauchen. Ich
möchte noch einmal nach unten
scrollen und Box-Kollisionen
hinzufügen Also mach weiter und wähle das aus. Es wird mich veranlassen, dem sofort einen Namen zu
geben, und ich werde es Kollision
nennen. Beachten Sie nun, dass dieser
Einzug genau hier ist und ich kann auf dieses
Dreieck klicken, um es ein- oder auszublenden Dies zeigt eine Beziehung, die zusammenhängt. Im Moment ist dieser Box Collider an mein Plattformnetz
angeschlossen Wenn ich die Plattform bewegen würde, würde
die Kollision, der Box
Collider mitgehen Ich könnte ihn jedoch
unabhängig von der
Plattform selbst bewegen unabhängig von der
Plattform selbst Ich werde die Größe ändern, indem ich
diese Kollisions-Top-Komponente im Detailbereich
ausgewählt Ich werde den Maßstab ändern. Ich werde einfach hier auf den
Zurück-Pfeil drücken. Es erbt diese relative
Skala von der Plattform. Aus diesem Grund hat es diese
speziellen Skalenwerte. Ich setze den Wert auf 11,1
zurück und setze meinen Standort
hier auf einen Z-Wert von 100 Jetzt können Sie sehen, dass es oben ist. Ich werde hier
die Größe der Box ändern. Das ist die Größe, die Ausdehnung dieser Box Anstelle des Standardwerts 302-30-2302 habe
ich Ich werde 50 mal 50 mal 50 machen. Was wir jetzt haben sollten,
ist ein Box Collider, der der
Name schon sagt, genau oben
liegt hier, wie der
Name schon sagt, genau oben
liegt, Collision Top Jetzt werden wir unten
noch einen
davon hinzufügen unten
noch einen
davon Wir werden
also rechten Maustaste auf
unser Collision-Oberteil klicken. Wir werden es
einfach duplizieren und ich werde es Collision Bottom nennen
. Das Einzige, was ich mit
diesem machen
werde , ist den Wert,
den Z-Wert unseres Standorts von
100 auf minus 100 zu ändern den Z-Wert unseres Standorts von .
Und dann drücken Sie die Eingabetaste. Wir haben einen oben und
wir haben einen unten. ich mit
unserer Kollisionsoberseite hätte machen
sollen ,
bevor ich sie dupliziert habe, weil dann auch die
Eigenschaften
dupliziert worden wären Was ich mit
unserer Kollisionsoberseite hätte machen
sollen,
bevor ich sie dupliziert habe,
weil dann auch die
Eigenschaften
dupliziert worden wären,
ist, einen Parameter in unserem
Detailbereich zu setzen Ich werde es zuerst hier
unten platzieren. Da ich das im Detailbereich
ausgewählt habe, wollen
wir in
den Kollisionsbereich kommen und hier die
Kollisionsvoreinstellung ändern. Klicken Sie auf dieses kleine Drop-down-Menü. Standardmäßig ist es so eingestellt, dass es alle dynamischen
Elemente überlappt. Ich möchte das so
ändern, dass es benutzerdefiniert ist. Und das wird
alle Kollisionskanäle ändern oder besser gesagt,
sie beleuchten, sodass wir sie
nach unseren Wünschen ändern können Ich werde
es für
alles auf Ignorieren setzen , außer wir machen es so
, dass unsere Spielfigur,
unser Charakter, als Bauernobjekt betrachtet wird Wir werden das
so einstellen, dass es sich überschneidet, und du wirst sehen,
warum
wir hier
etwas weiter oben ein etwas weiter oben benutzerdefiniertes
Kollisions-Preset haben Wir ignorieren Kollision bei
jedem anderen Objekttyp außer der Spielfigur, das
ist unser Charakter Wir werden eine Überlappung
feststellen. Wir wollen
das also nicht nur für Kollision unten, sondern
auch für die Kollision oben tun. Wie bei Collision Top
werden wir die
Kollisionsvoreinstellung so ändern , dass sie benutzerdefiniert ist. Wir werden es so einstellen, dass
Kollisionen mit jedem
anderen Objekttyp ignoriert werden, außer dass wir
eine Überlappung durch die Figur erkennen werden.
12. Durch die Plattform springen (Teil #2): Ordnung, lasst uns aus
unserem Viewport-Tab in
unser Event-Diagramm springen unserem Viewport-Tab in , damit wir
ein Skript hinzufügen können , das es
unserem Charakter ermöglicht, durch die
Unterseite der Plattform zu springen Und ich werde unsere
Kollisionskomponente genau hier auswählen Kollisionskomponente genau hier Wir klicken mit der
rechten Maustaste darauf und fügen ein Ereignis hinzu. Was wir tun wollen, ist
zu erkennen, wenn unser Charakter
die untere Komponente der Kollision überlappt die untere Komponente der Kollision wird
dieser Knoten bei der Überlappung der Komponente am
Anfang und der Name
der Komponente genau
hier hinzugefügt Überlappung der Komponente am
Anfang und der Name
der , Kollisionsunterseite Wir werden die Strg-Taste
gedrückt halten und Mausrad
vergrößern, um das Bild zu vergrößern. Ich werde auch gleich ein weiteres
Ereignis hinzufügen. Wir wollen erkennen, wann wir beide beginnen, diesen
Kollisionsboden zu überlappen, und wann wir damit enden,
diesen Kollisionsboden zu überlappen Also können wir hier
ein weiteres Ereignis hinzufügen. Wenn ich unsere
Kollisionsunterseite
auswähle, könnte ich mit der rechten Maustaste klicken
und ein Ereignis hinzufügen. Aber ich möchte auch
eine andere Möglichkeit aufzeigen,
Ereignisse für verschiedene
Komponenten hinzuzufügen . Wenn die Kollisionsunterseite ausgewählt ist. Scrollen Sie im Detailbereich Hier finden Sie auch eine Liste
verschiedener Ereignisse. Ich werde End Overlap machen. Wir werden diesen
Knoten auch zu unserem Diagramm hinzufügen. Und ich werde sie so
positionieren. Okay. Ich möchte
erkennen, wann der andere Akteur die untere Komponente der Kollision
überlappt Wir wollen etwas tun, wenn unser Spielercharakter
der andere Akteur ist, der diese
Kollisionsunterseite überlappt oder am Ende überlappt Also schreibe ich, klicke
auf ein leeres Feld und hole mir den Spielercharakter Dadurch wird unser
Spielercharakter zurückgegeben , als der
wir spielen. Und ich werde den anderen Schauspieler
hier
aus unserer Anfangs-Überschneidung herausziehen . Und wir werden
das Gleichheitszeichen eingeben und
schauen, ob der andere Akteur,
der den Kollisionsboden
überlappt hat
, diesem entspricht, also,
ist es unser Spielercharakter? andere Akteur,
der den Kollisionsboden
überlappt hat
, diesem entspricht, also,
ist es unser Spielercharakter Wenn ja, werden wir einen Verzweigungsknoten hinzufügen. Ich werde das B wie bei einem
Zweig
gedrückt halten und mit der linken Maustaste klicken, um einen Zweigknoten
einzufügen. Und das wird unsere
Bedingung sein, dass wir
überprüfen, ob etwas
unseren Kollisionsboden überlappt Wir werden nachschauen, war es der andere Schauspieler?
Waren sie gleichwertig? Wenn es wahr wäre, werden wir unsere Plattformkomponente Drag & Drop wie folgt in
Ihr Diagramm einfügen. Dann werden wir unserer Plattform
sagen, dass sie das tun soll, indem wir das Ganze
abziehen, indem wir die Kollision von
Texteinträgen aktivieren. Setze das so ein und wir wollen unsere Kollision so einstellen unsere Plattform keine Kollision hat. Nur um ein Backup zu machen und dir
genau zu zeigen , was zur Hölle
hier passiert, wenn ich unsere Plattform auswähle
und weiter nach unten scrolle, hat
unsere Plattform auch einige
Kollisionseinstellungen Im Moment ist sie so eingestellt, dass sie
alle Dynamiken blockiert , und sie ist so eingestellt, dass sie alle
Arten von Objekten blockiert, einschließlich unserer Spielfigur.
Es wird es blockieren Was wir hier zu
Beginn der Überschneidung sagen wollen , ist, wenn es unser Spieler ist, der sie
überschneidet, werden
wir dieser
Plattform sagen, dass es keine Kollisionen geben soll Es geht im Grunde darum,
diese Kollisions-Voreinstellung von „Nur dynamisch
blockieren“
auf „Keine Kollision“ umzuschalten dynamisch
blockieren“
auf „Keine Und du kannst sehen, dass,
wenn es hier auf „
Keine Kollision“ gesetzt ist, es unsere
Kollision komplett
deaktiviert und die Tatsache
ignoriert, dass es hier
unten nicht
so aussieht , als würde es unsere
Spielfigur passieren lassen Solange hier die Option Kollision aktiviert
ist, also keine Kollision, wird
es unserem Charakter tatsächlich ermöglichen, direkt
hindurchzugehen Ich werde das zurücksetzen
, indem ich hier auf diesen Wert klicke und
zurück gehe, um alle Dynamiken zu blockieren. Wenn ich hier weitermache, werde
ich einfach diesen Knoten
kopieren. Dieser Knoten und dieser Knoten. Ich halte die Taste gedrückt,
um diese drei auszuwählen. Wir werden Steuerung C ausführen,
um Steuerung V zum Einfügen zu kopieren. Ich werde sie so
einbinden, wenn unser Spielercharakter dem anderen Schauspieler
ebenbürtig ist. Wenn wir unsere Überschneidung beenden, wird
die Plattform hier unten das Ziel
sein. Wir werden
unsere Kollision hier so einstellen , dass sie kollisionsfähig ist. Dadurch wird die Kollision im Grunde wieder aktiviert
, wenn wir damit
enden,
den Kollisionsboden zu überlappen Ordnung, wenn das alles erledigt ist, können
Sie das Video hier pausieren,
falls Sie sich das alles ansehen möchten Ich klicke mit der linken Maustaste und
ziehe mit der Maus herum. Ich werde auf die C-Taste tippen. C ist im Kommentar, und ich
nenne das meinen Sprung nach oben durch Plattform,
Plattform, Skript. Lassen Sie uns
hier oben auf die Schaltfläche zum Kompilieren drücken, um
sicherzugehen , dass unser Code
gut aussieht und dass er auch gut aussieht. Dann lass uns weitermachen
und das auch speichern. Lass uns eines davon
in unser Level ziehen und schauen ob wir durch
unsere Plattform nach oben springen können. Los geht's. Zurück zu unserem Level,
ich lösche diesen temporären Würfel
, dessen Größe ich vergrößert habe. Ich werde
das in mein Level aufnehmen. Du kannst sehen, es wird
es direkt
in meiner Hauptebene platzieren , genau hier. Weil ich gerade meine beiden
D-Snap-Einstellungen aktiviert habe. Ich klicke einfach
hier, um direkt zu meinem
Bewegungs- und Rotations-Widget zu gelangen. Verschiebe es ein wenig
über meinen Charakter. Wie. Also klicke ich auf
Play, ich versuche zu springen. Und da haben wir's, wir können da direkt hindurchspringen. Okay. Als Nächstes brauchen wir eine
Möglichkeit, nachzuverfolgen, ob sich unser Spieler
auf der Plattform befindet. Damit wir dann
etwas auf unserem Controller
oder unserer Tastatur eingeben können , damit unser Spieler auf der
Plattform herunterspringt. Um das zu tun,
springen wir wieder auf unsere Plattform zurück. Springe noch einmal durch
Blueprint. Ich werde hier klicken und mich ein wenig
nach unten bewegen. Ich möchte etwas tun, wenn unsere Spieler hier mit
diesem Top-Collider kollidieren, werde
ich eine
boolesche Variable ein Gehen wir in mein
Blueprint-Panel, unter Variablen. Wir werden hier auf
diese Plus-Schaltfläche klicken. Und wir werden
eine brandneue Variable mit dem
Namen is on
top of platform Question Mark erstellen Namen is on . Eine boolesche Variable enthält
wahre oder falsche Informationen. Und wenn ich hier kompiliere, können
wir sehen, dass diese Option
standardmäßig deaktiviert ist Das heißt, standardmäßig
wird es falsch sein. Jetzt
werden wir
diese boolesche Variable
in Kürze verwenden , aber wir werden zu unserem Ereignisdiagramm
zurückkehren Wir werden
unser Kollisionsoberteil auswählen. Ich werde mit der rechten Maustaste klicken. Wir werden das Ereignis für den Fall hinzufügen, dass wir
anfangen, es zu überlappen Außerdem werden
wir bei der Überlappung des Ereignisses erneut
mit der rechten Maustaste auf die
Kollision oben klicken Überlappung des Ereignisses erneut
mit der rechten Maustaste auf die
Kollision oben Das wird in
vielerlei Hinsicht ähneln, was wir oben
haben. Tatsächlich werde ich hier
einige Knoten von oben stehlen . Ich werde die
Strg-Taste gedrückt halten und Linksklick, Linksklick, Linksklick, Linksklick und Linksklick. Wir haben diese fünf genau hier
ausgewählt. Ich werde mit der rechten Maustaste
darauf klicken und das Steuerelement duplizieren. D würde das Gleiche tun, aber hier werde ich sie
duplizieren. Ich werde sie
alle mit Control Z dorthin verschieben. Ich hatte tatsächlich auch eine davon hier unten
ausgewählt. Klicken Sie bei gedrückter Maustaste auf diese fünf. Ich werde Steuerung
D zum Duplizieren verwenden. Und lassen Sie uns diese direkt an die richtige Position hier unten
bringen. Sie so anschließen. Alles, was wir mit
diesem Skript machen werden, ist, diese Bullion-Variable
ein- oder
auszuschalten diese Bullion-Variable
ein- oder
auszuschalten . Wir wollen es einstellen Wenn ich das in
mein Diagramm ziehe und loslasse, wird
es sagen,
willst du
diesen Wert bekommen oder willst
du ihn setzen? Wir wollen den Wert dieser Variablen festlegen , wenn wir
diese Kollision
überlappen Wir wollen das auf wahr setzen, wir sind ganz oben auf der Plattform Umgekehrt wollen wir sagen, nein, wir befinden uns nicht
mehr auf dieser Plattform, wenn wir die
Kollision mit dem höchsten Kollisionsvolumen
beendet haben, wenn
wir mit der linken
Maustaste klicken und das in das
Set ziehen mit der linken
Maustaste klicken und das in das
Set die
Kollision mit dem höchsten Kollisionsvolumen
beendet haben, wollen wir sagen, nein, wir befinden uns nicht
mehr auf dieser Plattform, wenn wir die
Kollision mit dem höchsten Kollisionsvolumen
beendet haben, wenn
wir der linken
Maustaste klicken und das in das Dieses Skript eignet sich gut für den nächsten Abschnitt
, den wir hier skriptweise schreiben werden. Klicken Sie
also mit der linken Maustaste und
ziehen Sie, tippen Sie auf die Und wir werden diesen
Kommentar als Startschuss verwenden, um festzustellen, ob der Spieler sich
auf der Plattform befindet. Ordnung, lassen Sie uns weitermachen und das sofort
kompilieren und speichern. Ordnung, als Nächstes
wollen wir zurück
zu unserem Haupteditor gehen und wir werden
unter die dritte Person fallen und wir werden unter die Eingabe
kommen. Dies ist das neue
Eingabeaktionssystem in Unreal
implementiert ist, und wir werden
eine neue Eingabeaktion hinzufügen Jetzt werde ich auf
diesem bestehenden System aufbauen , damit
wir das Rad nicht
neu erfinden müssen Tatsächlich werde ich
in diesen Aktionsordner klicken. Hier sind einige Eingabeaktionen , die
einige Eingabeereignisse auslösen, wie unser Sprungereignis. Und ich werde hier in eine
leere Stelle klicken. Und wir werden uns
darauf einlassen. Wir werden
eine neue Eingabeaktion hinzufügen. Wenn wir das tun, werde ich
diese IA in Input
Action Underscore umbenennen diese IA in Input
Action Underscore Ich werde
es Player Down nennen. Ich werde auf
dieses Asset doppelklicken, um es zu öffnen. Wir
definieren hier eine Eingabeaktion. Ich werde jetzt nicht auf die Einzelheiten
all dessen eingehen, weil das ganze System ziemlich umfangreich
ist. Wir werden
unseren Wertetyp vorerst
als Stier belassen . Ist es im Wesentlichen
passiert oder nicht? Jetzt klicken
wir unter Triggern auf diese Plus-Schaltfläche
und klicken dann auf dieses
kleine Drop-down-Menü. Und wir werden einfach
überprüfen, ob ein bestimmter Eingang
gedrückt wurde , der auf Digital Bull
eingestellt ist. Klicken Sie hier auf Speichern. Und das ist alles schön und gut. Als Nächstes werden
wir hier
zu unserem
Haupteditor zurückkehren. Und wir werden einen Ordner
wieder hochspringen. Wir befinden uns derzeit also in
Eingabeaktionen durch Dritte. Wir werden
zu diesem Eingabeordner zurückkehren. Ich kann auch darauf zugreifen,
indem ich hier klicke. Und wir werden standardmäßig auf dieses I MC
doppelklicken. Und hier werden all die verschiedenen
Eingabeaktionszuordnungen
für unseren Charakter aus der dritten Person
eingerichtet , damit unser Charakter aus der dritten Person Hier ist nun unsere Liste der Zuordnungen. Derzeit ist unsere
Sprungaktion
der Leertaste oder der unteren Taste auf dem Gamepad
zugeordnet der Leertaste oder der unteren Taste auf dem Gamepad Das ist der Xbox-Controller mit Tasten
. Das werde ich wieder zusammenrollen. Wir werden
gleich hier ein neues Mapping hinzufügen , indem wir
auf diese Plus-Schaltfläche klicken. Sobald wir das getan haben, haben wir diesen Eintrag
hinzugefügt Klicken Sie auf dieses Drop-down-Menü. Wir werden diesen neuen
Input hinzufügen, Action Player down. Jetzt müssen
wir das gegebenen Eingaben auf einer
Tastatur oder einem Controller zuordnen. Was ich tun werde, ist auf
dieses kleine Tastatursymbol zu klicken . Und sobald ich das mache, wird
es
diese orange Farbe annehmen. Ich drücke einfach die Taste auf
der Tastatur. Und dabei wird es
das als Eingabe eingeben. Das ist großartig für eine Tastatur. Ich werde das auch
auf einem Controller machen. Ich werde auf
diese Plus-Schaltfläche klicken. Es wird diesen
Eintrag genau hier hinzufügen. Wir können den Rest
dieser Einträge hier zusammenfassen. Klicken Sie einfach hier auf diese
Pfeile. Ich werde auf
dieses Tastatursymbol drücken. Jetzt werde ich nur noch
auf den linken Daumenstick eines
Controllers drücken , den ich angeschlossen habe Dadurch wird
überprüft, ob mein Gamepad,
linker Thumbstick, irgendeine Art
von Eingabe entlang der Y-Achse hat Das ist im Wesentlichen mein linker Daumenstick nach
oben oder unten. In Ordnung, wir werden
das auch speichern. Nun, nur um klarzustellen
, dass dies die Eingaben sind , die unser Charakter
verwendet, IMC-Standard Wenn ich in
meinen Charakter aus der dritten Person springe , musst
du das nicht tun Ich zeige es dir nur. Gehe hier zurück zu
meinem Event-Graph-Tab. Dies ist unser
Input-Mapping-Kontext. Und hier ist unser IMC-Standard-Asset , das unser
Third-Person-Charakter verwendet Lass dich einfach wissen, wo
das alles ins Spiel kommt. Das hängt alles von unserem Charakter aus der
dritten Person ab. Alles klar, jetzt, wo das
alles erledigt ist, gehen
wir zurück zu
unserer BP-Plattform. Spring durch, wir
werden hier ein bisschen weitermachen. Mausrad runter,
Rechtsklick runter. Ich klicke mit der rechten Maustaste in ein leeres Feld und gebe Spieler runter ein. Hier ist mein
Eingabe-Action-Event für Player down. Das ist dieses Event
, das ich gerade erstellt habe. Es wird ausgelöst, indem ich
die S-Taste oder die Taste nach unten auf
meinem linken Thumbstick Ich möchte den Wert dieses
Booleschen
Werts überprüfen dieses
Booleschen
Werts Haben wir die
Plattform im Griff oder nicht? Wenn ich das per
Drag-and-Drop in unser Diagramm ziehe, möchte
ich es dieses Mal haben. Wir wollen den Inhalt der Variablen
, die ich hier herausziehen werde
, abrufen und einen Verzweigungsknoten einfügen, wenn
wir anfangen, das einzugeben,
das heißt, wir drücken zunächst
die S-Taste oder drücken auf
unserem linken Thumbstick nach unten, wir werden
es unserer Plattform mitteilen Lassen Sie uns hier mit unserer
Plattform sprechen, indem wir einen Verweis auf
unser Plattform-Mesh hineinziehen einen Verweis auf
unser Plattform-Mesh hineinziehen Wir werden mit dieser Plattform sprechen
,
dann
ziehen wir das Ganze raus und geben hier unten Set Collision Enabled Der neue Typ wird
keine Kollision sein. Wir sagen im Grunde, dass wir auf
unserem linken Daumenstick S oder nach unten
drücken Wir werden nachschauen, ob
wir oben auf der Plattform sind? Wenn das stimmt,
werden wir sagen, dass die Kollision so abläuft. Lassen Sie uns mit der linken Maustaste klicken und ziehen, auf die Taste C tippen und das Ganze so
nennen, dass wir es
Spielern ermöglichen ,
über das Plattformskript nach unten zu gelangen. Lassen Sie uns das kompilieren,
sicherstellen, dass es startklar und speichern wir dann Moment der Wahrheit. Wir werden das spielen, aber Sie werden ein Problem
feststellen. Ich spiele, indem ich
in den Viewport klicke.
Ich drücke die
Basisleiste, um durch den Viewport zu springen Ich tippe auf den SK. Es scheint nicht zu funktionieren. Das liegt daran, dass uns noch eine Sache
fehlt. Das ist das Ding in
einem Bauplan der Schauspielerklasse. Diese Eingabeaktionen werden standardmäßig nicht
funktionieren. Sie würden standardmäßig
innerhalb eines Charakters aus einer dritten
Person funktionieren , aber nicht in einem Bauplan der
Schauspielerklasse Wie bringen wir das also dazu, solche Eingaben zu
erkennen? Nun, wir müssen zu
unseren Klassenstandards unserer
Jump-Through-Plattform übergehen unseren Klassenstandards unserer
Jump-Through-Plattform Hier unten im
Detailbereich, wo es „Eingabe“ heißt, werden
wir „Automatisch“, „Eingaben
empfangen“ von „
Deaktiviert“ auf „Spieler Null“ umstellen Eingaben
empfangen“ von „
Deaktiviert“ auf „Spieler Null Das sind im Grunde wir,
der Spielercharakter. Lassen Sie uns das noch einmal
kompilieren. Spring wieder rein und spiel. Jetzt springe ich durch
und wenn ich auf die S-Taste tippe, gehe
ich runter. Lassen Sie uns das auch auf dem
Controller testen. Ich springe hoch und drücke
auf meinen linken Daumenstick nach unten. Und da scheint es gut
zu funktionieren. Und da habt ihr es, Leute, einen Sprung durch eine Plattform,
wie ich es gerne nenne. Da, Alter, ab für diesen. Wir sehen uns im nächsten.
13. Bewegliche Plattform: Willkommen. In diesem Video werden
wir
eine bewegliche Plattform bauen. Lassen Sie uns jetzt gleich zur Sache kommen. Um hier anzufangen, werden
wir von unserer BP-Plattform
erben und das, wir im letzten Video
erstellt haben, durchgehen,
nur um die Dinge ein
bisschen schneller und einfacher zu machen Suchen Sie also diese Plattform, wir klicken mit der rechten Maustaste
darauf und
erstellen daraus eine
Child-Blueprint-Klasse Wenn wir das tun, werden wir aufgefordert, ihr einen Namen zu geben Also werde ich das einfach BP Platform Mover nennen
. Dann
doppelklicke ich darauf, um es zu öffnen. Nun, da wir das zu einem untergeordneten Element
unserer Jump-Through-Plattform gemacht haben, können wir sehen
, dass das die
Elternklasse oben rechts ist . Das bedeutet, dass sie
bereits alle
Komponenten enthält , die
bereits auf unserer Plattform eingerichtet wurden . Springt durch. Außerdem wird es dasselbe
Skript enthalten. Wenn wir zum Event Graft übergehen, werden
wir sehen,
dass dieses Skript alles
vom Elternteil erbt Das ist also schon so eingerichtet, dass
man durch die Tabelle springen kann. Wir können durch
diese Plattform springen. Es bewegt sich jedoch nicht so,
wie wir es gerne hätten. Das ist es, womit wir uns in diesem Video befassen
werden. Um es für uns ein
bisschen einfacher zu machen , können wir
eine Mover-Plattform anhand einer
statischen Sprung-Plattform identifizieren eine Mover-Plattform anhand einer
statischen Sprung-Plattform Ich gehe zurück
zu unserem Viewport hier und
wähle unsere Plattform Und ich werde einfach
das
damit verbundene Material ändern das
damit verbundene Material Sie können das gegen
Mario-Material
oder etwas Ähnliches ändern . Nur um das deutlich zu machen, werde
ich
hier unter den Materialien Blau eingeben. Ich werde es
auf dieses Hellblau ändern. Und dann werde
ich eines
davon auch in unser Level ziehen , damit wir es leicht als Plattform identifizieren
können. Ordnung, lassen Sie uns zurück zu
unserem Platform-Mover-Blueprint springen unserem Platform-Mover-Blueprint Lassen Sie uns ein paar
Variablen erstellen, damit wir hier drüben
im My Blueprint-Panel beginnen Die erste Variable, die wir erstellen
werden, ist LOC. Das ist ein Low für den Start mit dem Standort. Das wird
eine Vektorvariable sein. Es wird hier
den Startpunkt
unserer Mover-Plattform bestimmen hier
den Startpunkt
unserer Mover-Plattform Und dann klicke ich mit der
rechten Maustaste darauf und
ich werde
dieses Steuerelement duplizieren Plus D ist ein Hotkey. Dies wird Lo End
the Endpoints heißen , wobei unser
Standort, Ende ausgewählt ist. Es gibt ein paar
Kästchen, die ich hier ankreuzen werde. Die erste ist Instance Editable. Wenn wir das überprüfen,
wird es auch auf diesen Augapfel klicken Sie machen das Gleiche, im Grunde macht das eine
das andere und so weiter Und wir werden auch das Three-D-Widget
zeigen. Jetzt werde ich
das überprüfen und dann werde ich meinen Blueprint
kompilieren, damit ich uns einen Standardwert geben kann Drüben im Detailbereich werde
ich
meinen lokalen Z-Endwert standardmäßig
auf 200 ändern standardmäßig
auf 200 Der Grund, warum ich das gemacht
habe, ist, dass
ich jetzt, wenn ich mir diesen Blueprint
in unserem Level-Editor hier ansehe, dass
ich, wenn er ausgewählt ist, diese Raute am Ende sehe Dies ist das Drei-D-Widget, das ich gerade hier
in unserem Platform
Mover aktiviert habe, indem ich diese
Variable ausgewählt habe und die Option Instanz editierbar
ausgewählt habe
und drei D-Widgets angezeigt Der Grund, warum es sich
hier
200 unwirkliche Einheiten
über der Basis unserer Plattform befindet über der Basis unserer Plattform , ist, dass ich den Wert auf 200
gesetzt habe Beachten Sie, dass
dieses Ende der Position
auch hier
im Detailbereich angezeigt wird auch hier
im Detailbereich angezeigt Ich könnte die Position ändern indem ich einfach
darauf klicke und es ziehe Und Sie sehen, während ich das mache, ändert
sich auch die
Z-Position genau hier Dies wird den Endpunkt
der Bewegungen unserer
Plattformen definieren Endpunkt
der Bewegungen unserer
Plattformen Es wird hier beginnen,
es wird dort enden. Dieser Startpunkt
wird im Grunde unser relativer
Startpunkt sein , genau dort. Ordnung, wenn das alles erledigt ist, gehen
wir
in unser Event-Diagramm und beginnen mit der Erstellung
des Skripts. Klicken Sie mit der rechten Maustaste, ziehen Sie hier zu
einem leeren Diagramm und klicken Sie dann mit der rechten Maustaste
in eine leere Stelle. Und wir werden nach einem Zeitleistenknoten suchen
. Wir werden diesen
Zeitleistenknoten Plattformbewegungen nennen Zeitleistenknoten Plattformbewegungen Ein Zeitleistenknoten
ermöglicht es uns,
den Wert einer
Variablen im Laufe der Zeit zu ändern . Dieser Knoten ist
insofern besonders, als wir darauf
doppelklicken können , um eine Zeitleiste zu bearbeiten. Ich werde
darauf doppelklicken, und wenn ich das tue, habe
ich einen neuen Tab geöffnet hier können wir einen Track hinzufügen,
was ich jetzt tun werde. auf diese
Plus Track-Schaltfläche klicken, möchten
wir einen Flow-Track hinzufügen. Das heißt, wir werden einen Dezimalwert im Laufe der
Zeit
ändern und Sie werden
gleich sehen
, warum wir das tun werden. Ich werde aufgefordert, diesem Track einen Namen zu
geben, also
nenne ich ihn Bewegung. Ich werde die
Länge bei 5 Sekunden belassen, aber jetzt muss ich. Fügen Sie unserer
Zeitleiste hier einige sogenannte Keyframes hinzu. Jetzt kann ich mit der rechten Maustaste hier reinklicken und das hin und her ziehen. Verwenden Sie ein Scrollrad
, um die Ansicht zu vergrößern und zu verkleinern. Aber ich werde
einige Keyframes hinzufügen. Das sind einige Zeitpunkte,
an denen ich
nicht nur einen Zeitwert,
sondern auch einen Wertwert definieren möchte . Ich klicke mit der rechten Maustaste und
wir fügen unserer Timeline
einen Schlüssel hinzu
, der blau ist. Wenn Sie mit der rechten Maustaste klicken, wird das getan. Oder wenn Sie
die Umschalttaste gedrückt halten und dann mit der linken
Maustaste klicken, funktioniert das auch. Ich wollte hier nur
drei Punkte hinzufügen. Im Moment spielt es keine Rolle, wo
Sie sie platzieren, denn wir
werden jeden von
ihnen auswählen und dann
eine Zeit in einen Wert eingeben Wählen Sie hier Ihren ersten aus.
Ich setze die Zeit auf Null und den
Wert auf Null, den Beginn unserer Zeitleiste. Im Wesentlichen werde ich
diesen letzten auswählen , diesen
letzten genau hier. Ich werde die Zeit auf
fünf und den Wert auf Null setzen . Jetzt merke ich, dass es hier einfach vom Rand
der Grafik abgesprungen ist. Machen
Sie sich darüber keine Sorgen Und dann
wähle ich hier unseren mittleren aus. Ich werde die Zeit auf 2,5 und
den Wert auf eins setzen. Wenn ich jetzt die Ansicht verkleinere, kann
ich alle drei
Schlüsselbilder,
diese drei Punkte, sehen . Ich klicke einfach
mit der linken Maustaste und ziehe um sie herum
, um sie alle auszuwählen. Und dann wähle ich diese Pfeile aus, um sie einzurahmen, diese Pfeile genau hier. Nun, das wird
die Bewegung unserer
Plattform im Laufe der Zeit darstellen . Wenn Sie daran denken, wie
ich sage, dass sich eine Tür öffnet, öffnet
sie sich und schließt sich wieder Wir möchten, dass
sich unsere Plattform in einer Bewegung entspannt
und dann zur nächsten Bewegung
von einer Seite zur anderen Nicht so starr, wenn man so will. all diese Optionen ausgewählt sind, klicke
ich mit der rechten Maustaste und setze meine
Key-Interpolation auf Auto entsteht diese glatte Kurve, Dadurch entsteht diese glatte Kurve,
bei der wir in eine Seite unserer
Bewegung eintauchen und dann nachlassen. Okay, was macht das hier? Nun, das gibt uns, zurück zu unserer Registerkarte „
Ereignisdiagramm“
gehen, eine Bewegungsausgabe,
eine Float-Ausgabe, wo wir
den sich ändernden Wert
dieser Variablen ausgeben werden den sich ändernden Wert
dieser Variablen Beachten Sie nun, dass sich der Wert, den
diese Ausgabe ausgeben
wird , im
Laufe von 5 Sekunden ändern Hier wird es bei einem Wert von Null beginnen
. Dann wird
es im Laufe
von zwei und zwei Sekunden auf einen Wert von eins steigen, dann wird es wieder auf Null
gehen. Der Grund, warum wir
0-1 auf Null gehen werden , ist, dass wir das nutzen
werden, um
die Bewegung unserer Plattform voranzutreiben Lassen Sie uns
hier aus
dem Komponenten-Panel einen Verweis auf unsere Plattform hier aus
dem Komponenten-Panel Das ziehen wir mit rein. Wir wollen das Ganze
herausziehen, indem wir sagen, relative Position
festlegen. Wir werden
den relativen Standort unserer Plattform im Laufe
der Zeit ändern . Jetzt müssen wir
diesem Ort einen neuen Standort zuweisen. Wie werden wir
das feststellen? Nun, es gibt einen Knoten, den
wir verwenden können, der p-Vektor genannt wird. Ich schreibe, klicke auf eine leere
Stelle und
tippe P-Vektor ein. Was wir tun werden
, ist die Bewegungsausgabe unserer
Timeline mit dem Alpha-Wert zu verbinden. Und dann werden wir
den Startpositionsvektor in das A und
den
Ortsendvektor in das B einfügen Dann werde ich beschreiben,
wie das alles funktioniert. Wenn Sie sich den
Header ansehen, bewege ich die
Maus nur über den
Header dieses Knotens Es besagt, dass wir
linear
zwischen der Position
und der Position interpolieren werden,
diesen Vektorpositionen, die auf dem Alphawert
basieren So funktioniert es.
Wenn dieser Alpha-Wert , dieser Bewegungs-Float, der Wert Null
ist, befinden
wir uns ganz an unserer Startposition, während er Wert von Null auf einen Wert
von Eins übergeht. Wir werden uns
schrittweise an unseren Standort bewegen. Wir
werden auf der Grundlage dieses sich
ändernden Werts von
A nach B , von 0 bis 1 über Null bis Eins
gehen Dort werden wir den neuen Standort unserer Plattform
aktualisieren Wir werden den neuen Standort unserer
Plattform aktualisieren. Jetzt werden wir das
durchgehen und wie werden
wir das machen? Nun, wir werden
das tun, indem wir zu
unserem Zeitplan für die Plattformbewegung zurückkehren unserem Zeitplan für die Plattformbewegung Hier. Hier oben haben
wir einen Button, mit dem wir diese Zeitlinie durchgehen
können. Wir beginnen
an unserem A-Standort, unserem Startort,
und gehen zu
unserem B-Standort über, wenn
das ein Wert von eins ist. Zurück zu unserer A-Position, wenn
dies ein Wert von Null ist. Und dann wieder von vorne anfangen. Und dann innerhalb von 5 Sekunden wieder
von vorne starten .
So funktioniert das. Eine weitere nette Funktion
der Timeline ist dass sie genau hier
oben diese Schaltfläche hat, Autoplay Wir werden das vorübergehend einschalten
. Wenn wir zu unserem Ereignisdiagramm gehen, können
wir sehen, dass
sich das Symbol auch hier befindet. Autoplay in Loop, wir müssen
eigentlich keinen Event-Knoten anschließen ,
damit das alles funktioniert Ich werde kompilieren und speichern. Wenn ich jetzt in mein Level springe, spiele
ich das und du wirst
feststellen, dass es sich von hier
an unser Standort-Ende bewegt. Ich bin da einfach ein
bisschen übersprungen. Lass mich das einfach nach unten verschieben
. Ich werde hier ein
bisschen Bewegung
haben. Im Laufe von 2,5 Sekunden. Es wird sich da
oben bewegen und dann wird
es wieder nach unten gehen. Ich springe rein und spiele,
stottere ein bisschen da im Video, aber es bewegt sich eigentlich ganz
glatt vor Da sind unsere Bewegungen. Entschuldigung für die schlechte
Videoqualität dort. Okay, das ist also nett. Aber was wäre, wenn ich
diesen Endstandort weit, weit weg verlegen wollte ? Ich meine, dann
wird sich die Plattform wahnsinnig schnell
bewegen. Gibt es eine Möglichkeit,
diese Zeitleiste so anzupassen diese Zeitleiste so , dass ich die Wiedergabegeschwindigkeit ändern kann? Ja, das gibt es. Das ist unsere
provisorische Einrichtung genau hier. Ich gehe zurück zu unserem Platform Mover und wir werden es unserem
Plattform-Bewegungsknoten hier mitteilen Doppelklicken Sie einfach darauf,
um nicht mehr automatisch abzuspielen. Stattdessen werden wir uns
einen Verweis auf unsere
Plattformbewegungen holen einen Verweis auf unsere
Plattformbewegungen Sobald wir
diese Zeitleiste erstellt haben, unseren Verweis darauf
genau hier in unserem Variablenbereich
des Bedienfelds „Mein Blueprint“ Wir ziehen das
hinein, wir holen es uns
und dann
ziehen wir es raus und geben festgelegte Wiedergabegeschwindigkeit Auf diese Weise können wir die Wiedergabegeschwindigkeit
für diese Plattform
anpassen. Lassen Sie uns das in das
Spiel unserer Timeline integrieren. Jetzt könnte ich hier
eine Play-Rate fest programmieren. In der Tat werde ich das 1.0 machen,
aber ich möchte das für jede Instanz,
jede Kopie unseres
Platform Movers
einzigartig jede Kopie unseres
Platform Movers Was ich hier tun kann, ist mit der
rechten Maustaste auf diesen Pin zu klicken. Wir können dies
zu einer Variablen heraufstufen. Dabei wird
automatisch
eine neue Variable vom Typ Float
hinzugefügt, und ich
nenne das Play-Rate Das Einzige, was ich mit
dieser ausgewählten Variablen tun
möchte ,
ist, auf dieses Augapfelsymbol zu klicken , um
diese Instanz editierbar zu machen Wenn ich jetzt kompiliere und zu meinem Level-Editor
zurückkehre, kann
ich bei ausgewähltem
Platform-Mover sehen, dass der
Playrate-Wert genau hier ist, sodass
ich ihn
für jede Instanz,
jede Kopie dieses
Blueprints in meinem Playrate-Wert genau hier ist Level anpassen jede Kopie dieses
Blueprints Jetzt muss ich hier
noch etwas tun damit es tatsächlich abgespielt wird Weil ich
das Autoplay von unserer
Plattformbewegung getrennt Ich brauche etwas, um das
tatsächlich auszulösen,
um unserer Plattform mitzuteilen, dass sie
sich tatsächlich bewegen soll ziehe ich das Event einfach in die Länge Dafür ziehe ich das Event einfach in die Länge
und fange hier an zu spielen. Falls ihr nicht von
eurer BP-Plattform Jumpthrough geerbt habt, könntet ihr einfach
ein Event starten lassen. Da das aber von
unserer
Jump-Through-Plattform übernommen wird, müssen wir es nur so
erweitern Auch hier gilt: Wenn Sie nicht von einer
Jump-Through-Plattform ein Event
erben , beginnen Sie das Spiel hier.
Wir werden es dir gut machen Das wird
dein letztes Setup sein, dein letztes Drehbuch genau hier. Wenn du das Video
hier pausieren möchtest , kannst du dir das ansehen. Lass uns weitermachen und
das kompilieren und zurück
zu unserem Level-Editor springen. Jetzt können Sie sehen, dass ich
einfach die Alt-Taste drücke, mit linken Maustaste klicke und ziehe, um einen weiteren
Verweis darauf
einzufügen. Ich könnte es so machen, dass
diese bestimmte Plattform steigt, sagen wir mal so hoch. Vielleicht wird es auch in
einem solchen Winkel verlaufen. Aber ich werde die
Wiedergabegeschwindigkeit auf
0,05 ändern . Etwas verrückt langsam Vielleicht diese Plattform,
ich werde
den Standort ändern, um hierher zu gehen Und ich werde das auf
0,1
ändern . Jetzt habe ich
beide ziemlich langsam laufen lassen. Wenn ich einspringen und spielen , würde ich nicht
einspringen und spielen. Ich werde mein Spiel simulieren, indem ich auf diese drei Punkte klicke. Durch die Simulation wird das Spiel ausgeführt ohne dass ich tatsächlich einen Charakter
kontrolliere Also los geht's. Sie werden sehen,
wie sie sich im Viewport bewegen Und da bewegen sie sich. Dieser bewegt sich ziemlich
langsam auf der linken Seite. Und auf der rechten Seite bewegt es sich
tatsächlich auch, aber sie bewegen sich wahnsinnig langsam. Aber der Punkt ist, dass
Sie für
jede dieser Plattformen einen Endort
sowie die
Wiedergabegeschwindigkeit festlegen können . Du kannst es verrückt machen,
schnell, verrückt, langsam. Du hast die Wahl. In Ordnung, Leute, das reicht
, um diesen anzubieten. Wir sehen uns im nächsten.
14. Launch-Plattform (Teil #1): Willkommen zurück alle.
In diesem Video werden wir
eine Launcher-Plattform erstellen. Dies wird
eine sein, die
unseren Spieler in die Luft bringt,
wenn er darauf landet Lassen Sie uns jetzt gleich zur Sache kommen. Wenn Sie
die Texturen, die wir
zu Beginn
des Kurses erstellt haben, noch nicht importiert die Texturen, die wir haben, tun Sie das jetzt, da
wir einige davon
in diesem Video
verwenden werden . Wir werden diese
Launcher-Plattform
irgendwie wie einen riesigen
Pilz aussehen lassen. Das ist also unser visuelles Ziel hier. Sobald du
diese importiert hast und ich mich in meinem Platformers
Textures-Ordner
befinde, werde ich ein
paar Materialien erstellen Und wenn ich hier nach unten scrolle, werden die, die ich dafür
verwenden werde , sowohl
diesen T Mushroom One als
auch diesen Dirt One Jetzt habe ich
beide ausgewählt. Ich habe die Steuerung gedrückt gehalten und diese
ausgewählt. Ich
klicke dann mit der rechten Maustaste auf eines davon
und wir werden Materialien
daraus erstellen. Dabei
werden wir jetzt zwei
verschiedene Materialien herstellen. Hier sind sie. Sie können sehen,
dass es sich
um Materialien des Labels handelt, gleich hier
auf ihrem Vorschaubild Ich werde sie einfach
mit ihren aktuellen Namen belassen. Ich werde sie speichern. Alles speichern, um diese Vermögenswerte Wir werden sie gleich hier nutzen. Als Nächstes kehren wir
zu
unserem Blueprints-Ordner zurück und
erstellen einen brandneuen
Blueprint von Grund auf, indem wir mit der
rechten Maustaste in eine Blueprint-Klasse mit leerem
Raum klicken Das wird ein Schauspielerkurs
sein, und wir werden diesen
einen Kurs BP Underscore Platform nennen Unterstreiche den Launcher. Ordnung, und dann machen
wir weiter und doppelklicken
darauf, um es zu öffnen Ordnung, das Wichtigste zuerst, wir werden damit beginnen einige Komponenten
zu unserem Blueprint
hinzuzufügen Klicken Sie unter dem Bedienfeld „
Komponenten“ auf die Schaltfläche „Anzeigen“ Das erste, das wir hinzufügen
werden, ist ein instanziertes statisches Mesh Dieses hier, das werden
wir gleich nutzen
,
aber lassen Sie uns das vorerst hinzufügen Ich nenne das, wir nennen es Trunk. Damit soll,
wenn Sie so wollen, der Stamm unserer
pilzförmigen Plattform hier dargestellt werden. Dann wähle ich meine
Standard-Szenen-Root-Komponente aus. Um noch einmal
eine weitere Komponente hinzuzufügen, wird
diese einfach
eine statische Netzkomponente sein. Ich nenne das
Mushroom Top. Dann werde ich hier
eine Komponente an mein
Mushroom Top anhängen . Wenn dieser Typ ausgewählt ist, klicke
ich auf Hinzufügen. Dann
füge ich einen Box Collider hinzu. Box Collision genau hier. Und wir werden
diese Kollision als Tiefpunkt bezeichnen. Ordnung, da
alle hier an Ort und Stelle sind, werde
ich jetzt die Einzelheiten
festlegen. Also beginne ich mit unserem statischen
Instant-Mesh hier, drüben im Detailbereich, werde
ich ein statisches Netz einbauen und ich möchte eine Zylinderform
einbauen. Ich werde
silinilindrf eingeben. Ich kann es richtig buchstabieren.
Da haben wir's. Da sind mehrere
Zylinder drin, der eine, den ich benutzen
werde. Und Sie können im Tooltip den Weg dafür
sowie die ungefähre Größe sehen. Es ist dieser hier aus dem Pfad zu
den Grundformen des Motors. Es hat eine ungefähre Größe
von 100 mal 100 mal 100. Wählen Sie diese aus, damit Sie
sicherstellen können, dass Sie exakt
dieselbe Esme haben und Sie werden
sehen, wie diese Population in Kürze
hier vorkommt. Im Viewpoint seht ihr noch nichts, aber ihr werdet sehen, dass
das in Kürze genutzt
wird. Wir werden auch ein Material darauf
auftragen
und das wird unser Schmutzmaterial
haben Wenn du nur Schmutz eintippst, ist
es dieses Material. Schmutz ist matt, das ist das
Schmutzmaterial, das wir gerade geschaffen haben. Was die Position angeht, werde
ich die
Z-Position auf 50, 80, 50 setzen. Drücken Sie die Eingabetaste. Und Sie können sehen , dass
es an
dieser Stelle ungefähr
hier platziert wird . Und ich weiß, dass Sie noch nichts
sehen, aber wir werden,
wenn Sie so wollen,
einige Teile des Trunks generieren , wenn wir
dazu kommen , diesem Blueprint ein Skript
hinzuzufügen Lassen Sie uns gleich als Nächstes
unser Mushroom Top auswählen. Was ich für die
Form tun möchte, befindet sich unter dem
statischen Mesh-Bereich
des Detailfensters , wenn
Mushroom Top ausgewählt ist. Ich möchte
Underscore Wide Capsule wählen. Es befindet sich im Shapes-Ordner für
Starterinhalte. Dann füge ich
das Material hinzu, dieses
Pilzes, ein
Material, das wir gerade erstellt haben. Es wird es sich ansehen. Und dann werde ich auch die Z-Position
dafür auf 80
ändern . Mach es ein
bisschen lauter. Okay. Als Nächstes wähle
ich unsere untere
Kollisionskomponente aus. Dieses Feld genau dort
für Details dazu, wir
werden die Form
der Box hier auf 5.050,50 einstellen werden die Form
der Box hier auf 5.050,50 Wir werden auch
die Z-Position auf 35, 35 ändern. bewegen es ein bisschen nach oben hängen die Unterseite
unseres Pilzes oben
ein bisschen raus . Dann gehen wir runter
in den Bereich mit den Kollisionsvoreinstellungen Kollisionsvoreinstellungen, derzeit ist
es so eingestellt, dass es alle dynamischen Elemente überlappt Ich werde es so ändern, dass es
benutzerdefiniert ist, und wir werden benutzerdefiniert ist, und wir werden alle unsere
Boxen hier so einstellen, dass sie ignoriert Klicken Sie also genau hier, um sie alle auf Ignorieren zu
setzen, außer dass wir
unseren Teich so einstellen, dass er sich überschneidet. Wir
werden dafür
sorgen, dass diese Plattform durch eine Schale geführt wird, sodass unser Spieler durch
den Boden springen und dann von oben
herunterspringen kann . So wird
das im Grunde funktionieren. Das werden also
unsere Kollisionseinstellungen
für diese Kollision sein . Hier oben von unten nach oben. Ich werde auch
die Kartongröße für das
Z ändern . Derzeit sind es 50. Ich glaube, ich werde
das auf 60 setzen, also
etwas dicker. Ja, das ist ungefähr
richtig. Wenn das erledigt ist, lass uns weitermachen und speichern. Okay, als Nächstes werden wir hier unten
im Bereich „Mein Blueprint“
einige Variablen hinzufügen hier unten
im Bereich „Mein Blueprint“
einige Variablen Und diese Variablen werden
es uns ermöglichen ,
das Aussehen und die Form
dieser
Pilzplattform stark anzupassen das Aussehen und die Form
dieser , da sie Moment
sicherlich nicht nach viel
aussieht Wenn Sie also genau hier auf die
Plus-Schaltfläche für Variablen klicken, wird
die erste Variante
Mush Top, Underscore Skate heißen Mush Top, Underscore Hoppla,
Unterstrichskala, Unterstrich x.
Das wird eine Float-Variable sein. Das wird eine Ich werde dieses Kästchen,
zum Beispiel
Editierbar, sofort ankreuzen Ich werde weitermachen und das kompilieren. Ich möchte sofort einen Standardwert
für einen festlegen, eine Skala von 1,0 bedeutet im Grunde
100% seiner normalen Größe. Wenn das erstellt ist, klicke
ich mit der rechten Maustaste darauf. Ich werde das duplizieren. Und ich werde es Skala Y
nennen. Es wird hier
getroffen und kompiliert worden Es wird
dieselbe Einstellungsinstanz haben, die mit
demselben Standardwert
bearbeitet Ich werde Control plus
D verwenden, um diese Variable zu duplizieren Das wird mushtpscale z
sein. Und noch einmal, wenn Sie kompilieren, können
Sie sehen, dass es auch den Standardwert Eins
hat,
der ebenfalls gesetzt Den nächsten werden
wir erstellen, indem wir auf das Plus
für die Variable klicken, das wird Geschwindigkeit genannt Dies wird die Geschwindigkeit
unseres Starts
steuern, wenn wir von der Plattform
abprallen Das wird
eine Vektorvariable sein. Wir werden dies so einrichten, dass es auch von
Instanzen bearbeitet werden kann. Wenn ich das kompiliere, setzen
wir unsere Startgeschwindigkeit
standardmäßig auf 2.500. Aber aufgrund dieser Checkbox können wir das pro Instanz,
pro Kopie dieses Blueprints
im Editor
ändern pro Kopie dieses Blueprints aufgrund dieser Checkbox können wir das pro Instanz,
pro Kopie dieses Blueprints
im Editor Wir werden hier eine
weitere Variable hinzufügen, indem wir auf diese Plus-Schaltfläche klicken Dieser wird heißen, nennen
wir ihn einfach
Trunk-Endpunkte Unser Endpunkt im Pilzstamm. Wir werden das verwenden, um den Endpunkt
unseres Pilzstammes zu bestimmen. Wir werden einen
Stamm haben, der sich
von hier aus erstreckt und den wir in
kurzer Zeit
bauen werden . Lassen Sie uns weitermachen und diese essbare
Instanz kompilieren . Wir
wollen, dass das überprüft wird. Wir möchten auch, dass dieses
Show-Three-D-Widget ebenfalls überprüft
wird. So können wir den Endpunkt herausziehen. Wir belassen die Werte jetzt
bei 0,00. Ordnung, als Nächstes springen
wir zur Registerkarte „Konstruktionsskripte“ unserer Baupläne Jetzt wird die Registerkarte „
Konstruktionsskript“ unserer Registerkarte „
Ereignisdiagramm“ sehr ähnlich sein,
auf der Sie ein Skript platzieren können, um Dinge geschehen zu lassen Im Gegensatz zu einer Registerkarte „
Ereignisdiagramm“, auf der das
Skript zur Laufzeit ausgeführt wird, wird
das Konstruktionsskript jedoch Registerkarte „
Ereignisdiagramm“, auf der das
Skript zur Laufzeit ausgeführt wird, zur Entwurfszeit
ausgeführt. Das eignet
sich hervorragend für die Erstellung eines solchen Entwurfs. Das wird es uns ermöglichen,
hochgradig maßgeschneiderte Dinge zu erstellen. Ich zeige dir hier, was ich meine. Als Erstes muss ich
einen Hinweis auf unser Champignon-Top hinzufügen. Lassen Sie uns das per Drag & Drop
in unser Diagramm ziehen. Damit können wir mit ihm sprechen, wir können einige
Eigenschaften daran ändern. Ich ziehe es raus
und tippe Set World Scale Three D für unsere Skala ein. Ich ziehe rückwärts
und tippe Make Vector ein. Damit können wir nun unsere Pilzskala X, Y und Z eingeben, wenn wir diese
Werte im Editor ändern wenn wir einen
dieser Werte im Editor ändern, wird das Skript gestartet und
die Größe
unseres Champignon-Oberteils
angepasst. Genau hier.
Der Typ da drüben. Okay, wenn ich weitermache, werde
ich das an einen Vier-Loop-Knoten anschließen. Jetzt haben Sie jeden
Loop-Knoten für jeden mit Pause, wir wollen
einen einfachen Vier-Loop-Knoten. Dieser Typ hier, der den
Fluss mit vier Schleifen kontrolliert, wir werden
diese vier Schleifen verwenden, um zu bestimmen, wie viele
Rumpfabschnitte wir hier
zur Basis unseres
Pilzwerfers hinzufügen wollen . Um das zu tun, werde ich meinen Trunk-Endpunkt einbauen. Wir holen es uns,
ich ziehe es raus und
tippe die Vektorlänge ein. Wir werden die
Länge dieses Vektors ermitteln, im Grunde genommen, wie lang wird
dieser Endpunkt sein? Wir werden
hier gleich ein
Beispiel für diese Mathematik durchgehen . Denken Sie
daran, dass unser Stamm im Wesentlichen 100
ist.
Denken Sie daran, dass wir unseren
Breitstamm daran, dass unser Stamm im Wesentlichen 100
ist.
Denken Sie daran, genau hier haben Und diese werden
im Wesentlichen in Schritten von gesamte Größe des Zylinders
betrug 100 mal 100. Um 100. Wir teilen das,
fügen einen Dividierknoten durch die Zahl 100 hinzu. Das wird jetzt einen Gleitkommawert ausgeben. Wir wollen das
in einen Integer-Wert umwandeln. Was ich tun werde, ist, hier rauszuziehen und Truncate einzugeben Es wird das auf
die nächste Lochnummer runden. Wir werden das
in unseren letzten Index aufnehmen. Was ein Knoten mit vier Schleifen macht, wenn
er diesen Knoten erreicht
, durchläuft er ihn in einer Schleife, wie oft
wir das hier angeben, angefangen bei Index Null bis
hin zu einem letzten Index. Wenn es 0-9 ist, würde er das Ganze in einer
Schleife durchlaufen. Das heißt,
das zehnmal auszuführen 012-345-6789 Was wollen wir zehnmal machen? Nun, wir wollen
unseren Koffer reinbringen, ihn hineinziehen und dann ziehen wir das
ab und sagen, und dann ziehen wir wir fügen ein Exemplar von dem Brei hinzu Ein Exemplar, das ist,
wenn Sie so wollen, eine Kopie dieses Zylinders Jetzt müssen wir angeben, wohin
diese Instanz gehen soll. Jetzt hat dieser Zylinder wieder
die Form eines Stammes. Stellen Sie sich also vor, wenn Sie
diese Dinge
übereinander stapeln , entsteht im Grunde ein Objekt, das wie
ein Stiel aussieht Wir werden
spezifizieren,
wohin diese gehören, indem wir sie in diese Instanztransformation einbinden Also werde ich das Ganze
rückwärts ziehen und transform eingeben Und eine Transformation
besteht aus Positions-, Rotations- und Maßstabsdaten Wir werden
uns wirklich nur mit diesen
Standortdaten befassen Wir ziehen uns hier rückwärts zurück
und geben make vector
like Lassen Sie mich hier
etwas mehr Platz geben. Was wir tun
werden, um zu bestimmen, wohin diese Trunks
gehen werden, ist, dass wir herausziehen diesen Index herausziehen und ich werde
einen Multiplikationsknoten erstellen Wir werden das mit einem Gleitkommawert multiplizieren
. Wir könnten das zu einem
Integer-Wert machen. Tatsächlich werde
ich das als
Integer-Wert beibehalten, nein. Ich werde mit der rechten
Maustaste darauf klicken. Ich werde
diesen
Ausgangs-Pin in einen Float umwandeln, das wird ihn
auch in einen Float umwandeln. Der Grund, warum ich das
in ein Float
umwandeln werde , ist
, dass ich das als Float
in den Make-Vector-Knoten
einstecken muss . Ich setze das in
den Z-Wert ein und
multipliziere diesen Index
mit minus 100. Sie werden gleich hier
sehen, warum. Um ein mathematisches Beispiel
durchzugehen :
Sehen heißt glauben und das Ganze
macht viel mehr Sinn. Ordnung, ich werde
diesen Plan kompilieren und dann in mein Level springen Im Moment sieht unsere
Startplattform seltsam aus, aber wir werden sie
stark anpassen können Jetzt habe ich meine zwei
D-Snap-Einstellungen hier auf meine
Hauptebene eingestellt. Ich werde jetzt einfach
eines davon hierher ziehen. Ich werde
es sogar ein bisschen hier oben platzieren. Jetzt sieh dir das an. Unser Top sieht nicht nach viel aus, aber drüben im Detailbereich stellen
wir all diese Variablen zur Verfügung. Mush Top-Skala, Must Y, Push Top-Skala, Z usw. Wir werden sie hier gleich nutzen denn
wenn wir sie skalieren, können
Sie sehen, wie sich dadurch
die Größe unserer Plattform verändert Unser oberster Wert, dieser Wert
hier , wird hier
wieder in unserem
Konstruktionsskript angewendet hier
wieder in unserem
Konstruktionsskript Immer wenn wir diese Werte bearbeiten, wird dieses Skript sofort
ausgelöst. Immer wenn wir
an einem der mit diesem Skript
verknüpften Werte Änderungen vornehmen , wird
dieses Skript ausgeführt und passt
so die Größe
unseres Pilzkopfes an. So wird dieses
Skript ausgelöst. Während der Entwurfszeit, wenn sich
etwas an unserem
Entwurf hier ändert Beachten Sie, wenn ich in
mein Level gehe und hier meinen Endpunkt
finden sollte, dieses Drei-D-Widget, können
Sie sehen, dass ich es hier unten
ausgewählt habe Schau dir an, was passiert
, wenn ich das herunterziehe. Alle hundert Einheiten
, die ich unternehme, fügen
wir ein Stück Kofferraum hinzu. Das macht es
also so, dass wir sie
kurz oder lang usw. machen können . Also werde ich
meinen Trunk-Endpunkt
hier auf eine solide Zahl setzen hier auf eine solide Zahl Nehmen wir etwas
wie minus 200, ein netter runder Wert, einfach so, minus 200. Da haben wir's.
Lassen Sie uns nun zu unserem
Konstruktionsskript zurückkehren und
es mit diesem Wert minus
200 als Beispiel durchgehen . Hier sind wir in unserem
Plattform-Launcher. Unsere gesamte Skalierung
der Champignon-Spitze wird
genau hier von dem bestimmt, was wir für diese beiden Werte in
unserem Editor einstellen , der die Weltskala der
Pilze auf der obersten Ebene festlegt. Aber jetzt denken wir über
uns selbst nach, mit dieser Vorderschleife. Unser Trunk-Endpunkt ist
derzeit auf minus 200 eingestellt, unsere Vektorlänge ist 200. Jetzt entspricht 200/100 zwei. Unser erster Index
wird Null sein. Unser letzter Index
wird 2012 sein. Das heißt, dieser
Loop-Body wird dreimal 012
abgefeuert dreimal 012
abgefeuert Und jedes Mal, wenn es
losgeht, spuckt es den Index Null aus,
dann eins, dann zwei Beim ersten
Auslösen ist der Index Null. Wir werden das mit
minus 100 multiplizieren , was Null ist. Und es wird eine Version
dieses Must-Trunks
an diesem Ort
platzieren . es zum zweiten Mal ausgelöst wird, wird
es
ausspucken, dass der Index 11 mal minus 100 gleich minus 100 ist Und so werden
wir einen weiteren
Abschnitt, unseren Breischstamm, von der Stelle , an der er sich
befindet, auf minus 100
herunterfahren Beim nächsten Mal wird unser Index 22
mal minus 100
ist minus 200 Und so wird er
einen weiteren Abschnitt des Rumpfes unter
dem vorherigen platzieren , dem 100 unwirkliche Einheiten
gegenüberstehen Das können wir hier mit
12,3 Abschnitten des Rumpfes sehen. Jetzt ist es
so gebaut, dass wir nicht in die
entgegengesetzte Richtung hochfahren
können Und tatsächlich, wenn man das in die andere Richtung hochziehen
würde, würde
es
den Stamm immer noch in die
andere Richtung vergrößern. Die negative Richtung,
wenn man so will. Aber ich bin
damit einverstanden, einfach so. Jetzt empfehle ich Ihnen
,
Ihre obere X- und
Y-Skala gleich zu lassen . Wir
hätten diesen Wert sogar auf einen einzigen Wert festlegen können, andernfalls können Sie
einige seltsam aussehende Effekte
wie diesen haben , bei denen der Wert
wirklich gestreckt wird. Aber ich wollte Ihnen die Möglichkeit geben, das
so anzupassen, wie Sie es möchten. Es ist so, wie es ist. Jetzt könnt ihr auch sehen, dass, wir unseren Pilz oben skalieren, unser Collider an der Unterseite mitskaliert Das ist ziemlich nett. Ich werde
diesen ganzen Plan ein wenig
aufschreiben, weil
ich möchte, dass unser Spieler versuchen kann, hier
durch den unteren Teil
der Plattform zu springen hier
durch den unteren Teil
der Plattform
15. Launch-Plattform (Teil #2): Jetzt können wir es noch nicht
durchspringen ,
weil wir kein Skript
hinzugefügt haben , um es so zu erstellen, dass wir es durchspringen
können. Also lass uns das als Nächstes machen. Gehen wir zurück zu unserem
BP Platform Launcher. Dieses Mal gehen wir zu unserem Event-Graph
über. Weil wir wollen, dass dieses Skript
während der Laufzeit ausgeführt wird. Ich werde mich hier
nach rechts bewegen, ein leeres Feld, und wir wollen unseren
Kollisionsboden auswählen. Wir
klicken mit der rechten Maustaste darauf fügen ein Ereignis für die
beginnende Überlappung hinzu. Lassen Sie uns weitermachen und erneut mit der rechten
Maustaste darauf klicken. Fügen Sie auch ein Ereignis für die
Endüberlappung hinzu. Was wir jetzt tun werden, ist
herauszufinden, wer der andere Schauspieler
war, der
dahinter steckte. Wir können es wie bisher machen,
wir können schreiben, auf
ein leeres Feld klicken und bekommen
wir Spielercharakter. So können wir herausfinden, ob der andere Schauspieler unserem Spielercharakter
entspricht. Also kopieren wir das und bringen es
für die Endüberlappung hierher. Beide werden
an eine Filiale angeschlossen. Also werde ich
die B-Taste gedrückt halten und mit der linken Maustaste klicken Das ist unsere
Bedingung, dass wir gegen Ähnliches suchen. Also, was wir tun wollen, ist, mit unserem
Top-Pilz-Oberteil zu sprechen. Sie einen Verweis darauf hineinziehen, ziehen
wir ihn
weg und geben
dann Set Collision Enabled ein. Wenn wir anfangen , mit dem
Kollisionsboden zu kollidieren, wollen
wir das auf „Keine Kollision“ setzen so wie wir es
hier unten getan haben Wir werden das kopieren
und einfügen. Wir können
dieselbe Referenz einbauen und wenn es stimmt, dass
wir diese Überlappung beenden, wollen
wir die
Kollision wieder einschalten, wodurch
Kollisionen auf diese Weise aktiviert werden. Ordnung, also lass uns
weitermachen und das kompilieren und speichern In Ordnung, also lass uns
weitermachen und das kompilieren und speichern und schauen, ob wir hier durch das Ende
unserer Pilzplattform
springen können . Unsere Plattform bewegt sich sehr langsam. Und ja, wir können ihr tatsächlich auf
den Grund
gehen. Wir
werden jedoch noch nicht gestartet. Also lasst uns weitermachen
und das in Ordnung bringen. Als Nächstes werden wir unseren Charakter starten wollen
wir erkennen, wann unser Charakter auf der
obersten
Komponente des Pilzes hier drüben landet . Also wollen wir, dass ein Event
damit verbunden ist. Klicken wir mit der rechten Maustaste auf
unsere Hauptkomponente. Wir werden ein Ereignis hinzufügen. Und was wir tun wollen, ist einen Komponententreffer
hinzuzufügen, wenn
wir auf diese Komponente treffen , die
dieses Ereignis hier unten hinzufügen wird. Ich werde hier ein bisschen
nach unten navigieren und einen ganz neuen
Abschnitt des Skripts
erstellen. Jetzt wollen wir nicht, dass
das losgeht oder wir wollen hier
keine Hinrichtung fortsetzen. Wenn etwas
unsere Pilzspitze trifft,
dann nur, wenn es unser Charakter ist. Also werde ich unseren anderen Schauspieler
rausziehen. Ich werde das Gleichheitszeichen einsetzen
. Und noch einmal
werden wir überprüfen ob das dem Spielercharakter-Node entspricht oder
ob es
sich um einen Spielercharakter handelt, ob der andere Akteur
unser Spielercharakter ist, ob das
unserem Spielercharakter entspricht, werden
wir einen Verzweigungsknoten einfügen, gedrückt halten und mit der linken Maustaste klicken. Wenn das alles stimmt, werden
wir einmal etwas
tun wollen. Ich kann mit der rechten Maustaste klicken und nach
einem Once-Node suchen. Ich werde jedoch die Taste
gedrückt halten und mit der linken Maustaste klicken,
um einen Once-Node aufzurufen. Was ich einmal machen möchte,
ist, unseren
Spielercharakter hier abzurufen und nach
einem Knoten namens Startcharakter zu suchen . Das ist eine Funktion, die
mit dem Charakter verknüpft ist, also musst du in
diesem Fall den Charakter aus deinem
Get-Player-Charakter herausziehen ,
um ihn sofort als Ziel einzufügen und diese Funktion zu
finden. Wir wollen
unseren Charakter also nur einmal starten. Was wird
unsere Startgeschwindigkeit sein? Nun, wenn ich hier meine
Startgeschwindigkeit auswähle, können
wir sehen, dass wir sie in einer Variablen speichern
. Ich werde das so
auf diese Stecknadel ziehen und dort ablegen . Und derzeit haben wir das auf
2.500 gesetzt . Aber wir haben
diese Instanz editierbar gemacht, sodass wir sie für
jede Instanz unseres
Plattform-Launchers anpassen können jede Instanz unseres
Plattform-Launchers Jetzt will ich das abfeuern, nicht nur, wenn unser Charakter auf diese Pilzspitze
trifft,
sondern auch, wenn er darauf landet Wir wollen das nicht einfach
machen, wenn sie die Seite
unseres Pilzoberteils treffen. Um das zu überprüfen, wollen wir aus unserem
Treffer ohne Komponenten
herausziehen hier aus unserem
Treffer ohne Komponenten
herausziehen und dieses Trefferergebnis
aufbrechen. Dieser Pin hier hat uns eine
Menge Informationen zu geben. Wir können diese Informationen
über einen Break-Hit-Ergebnisknoten extrahieren . Ich werde das weiter ausbauen
, damit wir
all die verschiedenen Dinge im
Zusammenhang mit diesem Treffer sehen können all die verschiedenen Dinge im
Zusammenhang mit , über die wir etwas herausfinden
können. Was wir
für diesen Fall suchen, ist,
dass wir die normale Wirkung hinter
uns lassen wollen. Das ist im
Grunde
die Richtung , in der wir auf
diese Pilzspitze einwirken Ich werde sie hier rausziehen
und
einen Vektor einfügen , der dem Vektorknoten entspricht Wir werden nicht exakt den
gleichen Vektor verwenden. Eigentlich nein, wir wollen einen
gleichen Vektor. Entschuldigung, mein Fehler. Vektor entspricht Vektor. Dafür gibt es das dreifache
Gleichheitszeichen. Wir werden einen negativen
Z-Wert von Eins eingeben. Das heißt, beeinflussen
wir das im Wesentlichen, wenn es
nach unten geht? Negativ, das heißt abwärts
in Z-Richtung. Okay, wir
wollen das auch als
Bedingung überprüfen Anstatt das an einen anderen Zweigknoten anzuschließen. Was ich hier tun kann,
ist,
das Ergebnis dieser Überprüfung abzuziehen das Ergebnis dieser Überprüfung um zu sehen, ob unser anderer
Akteur ebenbürtig ist Der Spielercharakter kann das
wegziehen und booleschen Wert in einen Knoten Also werden wir nachschauen, ob der andere Schauspieler, der unsere Pilzspitze
getroffen hat, unser Charakter
ist Und wir werden überprüfen,
ob unser Aufprall des Pilzes nach unten gerichtet ist Unser Ablauf wird also so
sein. Wir prüfen, ob diese beiden
Dinge gleich sind. Und wenn das stimmt,
werden
wir
den Charakter einmal starten. Nun, das sollte
alles schön und gut sein, aber ich möchte dem auch
ein bisschen Besitz
hinzufügen . Ich möchte einen
kleinen Emitter-Partikeleffekt hinzufügen. Und dann
möchte ich auch, dass die Oberseite des Pilzes so
aussieht, als würde er
springen, indem ich auch
einen kleinen
Animationseffekt habe als würde er
springen, indem ich auch
einen kleinen
Animationseffekt Also werde ich meinen
Startcharakter hierher ziehen
und dort einen Knoten namens
Spawn Emitter einsetzen Jetzt geht es darum, einen
älteren Partikeleffekt abzuspielen,
einen Kaskadenpartikeleffekt einen Kaskadenpartikeleffekt Und der Grund, warum ich nach einem neueren Partikelsystem-Effekt suchen
werde, statt nach einem Spawn-System am Standort,
das einen
Niagara-Effekt abspielen
würde statt nach einem Spawn-System
am Standort,
das einen
Niagara-Effekt abspielen
würde, ist dass ich
einen aus dem
Infinity Blade-Effektpaket im Kopf habe Infinity Blade-Effektpaket Um es kurz zu machen, Sie
könnten einen Emitter für
einen älteren Kaskaden-Emitter erzeugen oder
Sie könnten System et, Ort für einen Niagara-Partikeleffekt, erzeugen. Der, an den ich hier denke, heißt Skill Underscore Launch. Das ist eher Skill Leap Launch. Start der Skill Leap-Basis. Skill Leap Base
starte den Kerl genau dort. Jetzt muss ich
einen Ort angeben , an
dem das erscheinen soll verwende ich unseren Einschlagspunkt
aus unserem Trefferergebnis, Dafür verwende ich
unseren Einschlagspunkt
aus unserem Trefferergebnis,
wir können ihn bis zu unserem Standort ziehen Ich
doppelklicke einfach auf dieses Kabel, um
einen kleinen Umleitungsknoten hinzuzufügen , damit
das Ganze etwas sauberer aussieht Ich denke, ich werde weitermachen und die Größe dieses Partikels
auf das Dreifache seiner
üblichen Größe
einstellen . Nur um es ein
bisschen deutlicher zu machen. Einfach zu erkennen. Okay. Und
als Nächstes, was ich tun möchte, und ich werde einfach
die rechte Maustaste gedrückt halten und
hier nach die rechte Maustaste gedrückt halten und rechts fahren,
ist, einen
Timeline-Knoten einzufügen, klicken Sie mit der rechten Maustaste. Suchen Sie nach einer Zeitleiste. Fügen Sie hier unten eine Zeitleiste hinzu. Und es wird
mich veranlassen, uns einen Namen zu geben. Ich werde das
meine Top-Time-Line nennen. Und ich werde das von Anfang an
in unser Spiel einbauen. Nun, dieser Knoten genau hier, ich doppelklicke
darauf, um eine Zeitleiste zu erstellen. Das wird als
Skalenmultiplikator für unsere Skala X,
Y und Z
dienen Skalenmultiplikator für unsere Skala X, , für unsere
Champignon-Spitzenwerte hier drüben. Ich werde sogar sofort
alle drei Werte einbauen
, höchste Skala X. Ich werde
es mit Spaß machen Wenn Sie die Strg-Taste
gedrückt halten, linken Maustaste klicken und ziehen, erhalten
Sie sofort
eine bessere Version davon. So wie das Ich werde
jeden dieser Werte multiplizieren. Also kann ich daraus ziehen
und das Multiplikationssymbol sofort eingeben. Ich werde
all das multiplizieren. Wir werden für all das eine
einzigartige Kopie benötigen. Steuern Sie C, steuern Sie V
mit einem Multiplikator
, den wir gleich unserer Zeitlinie ausspucken Erschaffe und spucke aus
unserer Zeitlinie heraus. Doppelklicken wir gleich auf unsere
Zeitleiste. Ich möchte hier
einen neuen Float hinzufügen. Dies wird
unser Skalenmultiplikator genannt. Wir werden hier
eine kleine Animation erstellen , die drei Zehntelsekunden
lang sein wird drei Zehntelsekunden
lang Ich werde einfach die Steuertaste
gedrückt halten und hier hineinscrollen, um ein wenig nach oben zu
zoomen Und halte die
rechte Maustaste auf Reis gedrückt , um das
Ganze wieder so anzuzeigen. In Ordnung, ich werde hier vier Schlüsselbilder
hinzufügen. Also werde ich die
Umschalt-Taste gedrückt halten und so weitermachen, 123,4 ungefähr in diesem
Zick-Zack-Muster Sie können diese Schlüsselbilder abrufen, indem rechten Maustaste klicken und auch
ein Schlüsselbild hinzufügen Durch Verschieben und
Linksklick werden sie ebenfalls angezeigt. Okay, wenn diese vorhanden sind, werde
ich jetzt jeden von ihnen
einzeln
auswählen und eine Zeit hinzufügen. Für diesen ersten Wert wird
es
Null sein und der Wert
wird Eins sein. Ich kann auf diese Pfeile klicken,
um das anzuzeigen. Ich werde hier ein bisschen nach
hinten zoomen. Ich werde
meinen zweiten Keyframe auswählen. Nun zum zweiten, ich füge eine Zeit von
0,1 und einen Wert von 0,8 hinzu. Auch hier handelt es
sich um Skalenwerte. Der zweite Wert, den ich auswählen werde, ist eine Zeit von 0,2 und ein Wert von 1,3. Dann hat dieser letzte
Wert
eine Zeit von 0,3 und einen Wert
von eins, wenn er übersprungen ist eine Zeit von 0,3 und einen Wert
von eins, wenn er übersprungen Alles außerhalb des Bildschirms, Sie
können nach hinten zoomen. Ich klicke mit der linken Maustaste und ziehe, um all diese
hervorzuheben.
Sie sind alle blau. Jetzt kann ich auf diese
Pfeile klicken, um sie einzurahmen, sodass Sie das
Zick-Zack-Muster sehen können , für das ich mich entschieden habe. Okay, was wir
gerade gemacht haben, ist eine Float-Track
namens Scale Multiplikator
hinzugefügt Ich werde hier wieder aus
unserer Zeitlinie herausspringen, diese Zeitlinie von
drei Zehntelsekunden Jetzt
wird dieser Skalenmultiplikator innerhalb von drei Zehntelsekunden aus
unserer Zeitleiste ausgegeben drei Zehntelsekunden aus
unserer Zeitleiste Es wird sich
multiplizieren oder es wird ein Gleitkommawert ausgegeben Das wird sich von 1 bis 2 auf 0,8 bis 1,3 auf Dieser Wert wird im Laufe der Zeit geändert. Das ist der Wert, den
wir mit den Werten X, Y und Z
unserer obersten
Pilzskala multiplizieren werden. Jetzt setzen wir all
diese Werte in einen Vektorknoten ein. Also
klicke ich mit der rechten Maustaste in eine leere Stelle und tippe Make Vector ein. Wir fügen sie
so
ein, dass ein einziger
Vektorwert x, y und z entsteht.
Der Grund, warum wir
das tun, ist, dass wir unsere Komponenten auf
der
Oberseite der Pilze einfügen können . Also werden wir das bekommen. Ziehen Sie es dann heraus und geben Set Relative Scale Three D ein. Das wird
unser neuer X-, Y- und Z-Wert für
unsere Pilzspitze sein. Da dieser Wert im
Laufe von 0,3 Sekunden aktualisiert wird, werden
wir die Multiplikatoren
ändern, die mit der Größe unserer
Pilzoberseite
verknüpft sind, wodurch ein kleiner
Sprungeffekt entsteht. Ordnung, bevor
wir das testen, werden
wir noch
eine Sache machen Derzeit ist dieser ganze
Baumwipfelsprung nur für ein einziges Mal geplant. Was wir tun wollen, ist
dies auf irgendeine Weise zurückzusetzen , damit es wieder passieren kann Dazu klicke ich mit der rechten Maustaste und füge benutzerdefinierte Ereignisse hinzu. Rechtsklick, benutzerdefiniertes Ereignis. Ich werde diesen
Reset-Launcher in Großbuchstaben benennen. Ich werde das an den Reset anschließen
. Was ich jetzt tun
muss, ist
diesen Reset-Launcher
ganz am Ende meines Skripts hier aufzurufen , nur um zu versuchen,
das ein bisschen
besser sichtbar zu machen . Ich werde das Ende von hier
in die Länge
ziehen, ich werde eine Verzögerung einbauen. Und wir werden es nur um
zwei Zehntelsekunden verzögern ,
bevor wir das zurücksetzen Jetzt kann ich hier
wegziehen und dort Reset Launch eingeben dort Reset Launch Es wird, es wird dieses benutzerdefinierte
Ereignis genau hier aufrufen damit ich
wieder auf
meinem Pilz landen und den
gesamten Bouncing-Effekt zurücksetzen Ordnung, also zu
versuchen, das alles im Blick zu haben
, haben wir
für unser endgültiges Drehbuch Wenn Sie
das Video hier pausieren müssen, lassen Sie uns das
kompilieren und speichern. Jetzt spielen wir es ab.
Los geht's. Okay, ich werde
hier durch
die Unterseite meines Pilzes gehen und darauf landen. Bounce,
los geht's, hüpfen wieder und
spielen den Partikeleffekt spielen Und das ist ziemlich toll.
Nur um es Ihnen zu zeigen, wir können sie
alle ein bisschen einzigartig machen. Ich werde hier einfach
auf meinen Pilz klicken. Ich werde einfach die Alt-Taste
gedrückt halten, mit der linken Maustaste klicken und ziehen. Und jetzt, bei dieser
Instanz des Pilzes, ändere ich
nur meine Startgeschwindigkeit, diese Variable.
Anstatt
dass mich dieser mit diesem Wert
startet, ändere
ich
sie einfach auf 500. Dieser zweite wird mich also nicht annähernd so stark starten lassen. Also, wenn ich wieder
reinspringe und hier spiele, sehe ich,
dass der erste Teil mir viel Auftrieb geben wird. Und dann der zweite,
nur ein bisschen, du kannst sehen, dass er
mir wieder einmal erlaubt. Es setzt den
Start zurück, sodass ich immer wieder darauf
springen kann immer wieder darauf
springen So können wir also
eine hochgradig anpassbare
Startplattform erstellen eine hochgradig anpassbare
Startplattform Es gibt eine Animation, es kann individuell angepasst werden, wie
hoch wir starten In der Tat ziemlich cool, Leute, das wird es für
diesen Fall reichen Wir sehen uns im nächsten.
16. Komponenten für Münz-Pickups: Willkommen. Im Laufe
der nächsten Videos hier werden
wir uns mit
dem Sammeln von Münzen befassen. Aber bevor wir das tun,
möchte ich sicherstellen, dass Sie einige
der Texturen und
Audiodateien importiert haben , die Sie zu
Beginn des Kurses hätten importieren
sollen. Denn in diesem Video werden
wir uns mit
einigen dieser Münztexturen befassen . Wir werden
einige davon in
Materialien umwandeln und wir
werden hier auf
dieses Münz-Audio verweisen Wenn Sie
diese also zu Beginn
des Projekts nicht importiert haben , tun
Sie dies bitte jetzt. In Ordnung. das erledigt ist, fange
ich tatsächlich in meinem
Textures-Ordner hier drüben an. Jetzt habe ich zwei verschiedene
Versionen der Münze. Wenn Sie eine neuere
Münze oder die Retro-Münze haben möchten, möchte
ich eine auswählen, dann die Strg-Taste gedrückt halten
und die zweite auswählen. Und wenn beide markiert
sind,
klicke
ich mit der rechten Maustaste und ich werde sie in Materialien
umwandeln. Und Sie können sehen, dass
es einen genau dort und einen genau dort gibt. Als Nächstes werde ich
meinen Platform-Ordner
auswählen, der hier ausgewählt ist , Plattform. Ich werde
einen neuen Ordner hinzufügen und diesen Ordner Materialien nennen. Ich werde diese Materialien tatsächlich in
diesen Ordner ziehen . Momentan habe ich diesen Typen
hier, klicke mit der linken Maustaste und ziehe das in die
Materialien, sagen wir, hierher verschieben. Und ich habe auch ein paar
andere Materialien von der
Startplattform hier
drin. Ich öffne das, halte die
Strg-Taste gedrückt und wähle die drei anderen aus, die
du daran erkennen kannst sie diese Kugelsymbole haben. Und ich werde mit der
linken Maustaste klicken und
diese ebenfalls in den
Materialordner ziehen . Wir werden sie
hierher verschieben, dann gehe ich in meinen Materialordner und
diese beiden Münzmaterialien. Ich werde es einfach
öffnen, weil ich in
jedem von ihnen
einige geringfügige Anpassungen vornehmen möchte. Ich werde auch in
die andere springen, die Retro-Münze,
je nachdem, welche Sie
verwenden werden. Was ich
hier machen möchte, ist zunächst, dass ich hier in meinem Viewer eine andere
Form haben
werde. Hier unten kannst du ein anderes Vorschau-Mesh
einstellen. Ich wähle einfach den Würfel aus, auch wenn er auf allen Seiten sein
wird. Dann werde ich die linke Maustaste
gedrückt halten. Sie konnten sehen, dass
ich das auch auf
jeder Seite unsichtbar machen
werde . Man kann damit den
Hintergrund sehen. Also klicken Sie dort auf das Würfelsymbol und das
sieht offensichtlich schrecklich aus, aber wir werden das beheben. Okay, was wir hier
tun müssen, ist, dass wir
hier unseren
Master-Material-Knoten auswählen. Und auf der linken Seite,
wo Blend Mode steht, werden
wir das trainieren. Stellen Sie das auf
durchsichtig um. Trainiere das Dann
stecken wir diesen einen Stift in
den Opazitäts-Pin unseres
Master-Materialknotens Jetzt kann ich sehen, dass es durchscheinend ist. Wir sehen nur diese Münze. Wir wollen das auch
zweiseitig machen. Ihre Änderungen bestehen also darin,
den Mischmodus auf durchscheinend zu ändern den Mischmodus auf durchscheinend zu und ihn auf zweiseitig einzustellen Sie können
das sagen und dann
dasselbe auch für die Retro-Münze tun dasselbe auch für die Retro-Münze Wir ändern den
Mischmodus auf durchscheinend. Wir ändern ihn so, dass er zweiseitig ist. Stellen Sie sicher, dass Sie dieses A, den Alpha-Wert, wie folgt in die Opazität des
Master-Material-Nodes Klicken Sie auf „Sicher“ und wir können dort
schließen. Wenn ich damit fertig bin, werde
ich zu
unserem Blueprints-Ordner hier
in unserem Inhaltsbrowser wechseln unserem Blueprints-Ordner hier
in unserem Inhaltsbrowser Ich klicke mit der rechten Maustaste
in eine leere Stelle, neue Blueprint-Klasse Wir werden das auf einem Schauspielkurs aufbauen, weil
wir das in unserer Welt platzieren Und ich nenne das
BP Pick Underscore Coin und mache dann weiter,
doppelklicke darauf,
um es im Komponentenfenster zu öffnen ,
um es im Komponentenfenster .
Es gibt ein paar Komponenten, die wir hinzufügen
möchten Die erste Komponente wird eine
Sphärenkollisionskomponente sein. Wenn Sie jetzt hier klicken, sich
nicht verwirren und
klicken Sie sofort auf Sphäre. Das ist ein statisches Durcheinander. Du musst nach unten scrollen und wir suchen nach einer
Kugelkollision. Ich werde dem den Namen Sphäre geben. Im
Detailbereich hier drüben werde
ich den
Kugelradius jedoch auf 75 ändern. Jetzt verwenden wir das Volumen,
das Auslöselautstärke
, anhand dessen wir prüfen, ob wir diese Münze
einsammeln sollen oder nicht. Jetzt, wo diese
Kugelkollision ausgewählt ist, fügen
wir
eine weitere Komponente und zu dieser fügen wir
einen Zylinder hinzu, sodass Sie einfach Zylinder eingeben
können und schon haben wir
einen Zylinder
in der Grundform. Fahren Sie fort und wählen Sie das aus. Drüben im Detailbereich. Es gibt ein paar Dinge, die
ich ändern möchte. Im Grunde werde ich das auf die Seite
kippen und so
zusammendrücken,
dass es wie eine Münze aussieht habe einige Einstellungen, die ich im Voraus
festgelegt habe ,
die Rotation Ich werde die
X-Drehung auf minus 70 setzen. Wir werden die
Y-Drehung auf minus 90 und die
Z-Drehung auf minus 20 setzen. Dann werde ich auch
die Skala ändern, weil das eine
ziemlich fett aussehende Münze wäre. 20,75 in der X. Und ich mache die Tabulatortaste
und mache 0,75 in der Y. Und für Z mache ich 0,07 und drücke
dann die Es zerquetscht es. Das sieht aus wie eine Münze. Wie Sie sehen können, habe ich
ein ziemlich großzügiges Volumen , in dem ich
das sammeln kann. Ich werde auch gleich
Material drauflegen. Wenn Sie dieses
Drop-down-Menü unter Münztyp auswählen, können Sie hier aus einer der beiden Optionen
wählen Ich habe die Retro-Münze
oder die Neuer-Münze. Ich schätze, ich werde vorerst
die Retro nehmen, aber Sie können sehen,
dass das auf beiden Seiten gedruckt wird . Ja, wir haben da eine
kleine Lücke, aber damit werde ich vorerst leben
. Ja, das ist in Ordnung. Nun, etwas
anderes, das ich sofort tun möchte, ist, dass
dieses Netz kollidiert. Wenn ich nach unten in
den Kollisionsbereich scrolle, wird gesagt, dass er die
gesamte Dynamik blockiert. Ich möchte nicht, dass der Spieler damit überhaupt
kollidiert. Ich möchte, dass sie es einfach aufnehmen, wenn sie sich mit
dieser Auslöselautstärke überschneiden Jetzt denkst du vielleicht, hey, sobald wir diese
Auslöselautstärke überlappen, lassen
wir das
Ding sowieso vergehen. Also, was macht es überhaupt aus
, wenn es eine Kollision gibt? Nun, wir werden später in der
Lage sein,
einige Feuerbälle abzufeuern ,
und wir
wollen nicht unbedingt , dass einige Feuerbälle
gegen dieses spezielle Netz kollidieren gegen dieses Also werden wir einfach einige Kollisionen
deaktivieren. Und das können wir tun,
indem wir unter die
Kollisions-Voreinstellungen gehen und diese einfach in „Keine Kollision“
ändern Und das wird das beheben. In Ordnung, wir wollen
hier oben im Komponenten-Panel eine
weitere Komponente hinzufügen . Wir klicken auf Hinzufügen
und geben Rotting ein. Und wenn Sie dies auswählen, ist es
keiner bestimmten Komponente zugeordnet Vielmehr wird es hier auf unseren
gesamten Entwurf angewendet. Dadurch wird
es so, dass sich diese Münze dreht und sie wird sich mit der in Ihrem Detailbereich
eingestellten Rotationsrate
drehen in Ihrem Detailbereich
eingestellten Derzeit ist es
auf eine Z-Drehung eingestellt um sich um die Z-Achse
zu drehen, ein Wert von 180. Und das wird
ziemlich gut sein. Und wenn Sie eine Vorschau davon sehen möchten, können
Sie einfach Schaltfläche Simulieren klicken und
schon können
Sie ungefähr sehen, wie es
aussieht. Das ist ziemlich gut. Auch hier gilt: Wenn Ihnen das
Aussehen dieser Münze nicht gefällt, können
Sie sie gegen
das andere Münzmodell austauschen. Das neue Münzmodell. Verdammt, ich
könnte mich stattdessen dafür entscheiden Das sieht vielleicht ein
bisschen besser aus. Ja, das machen
wir. Ja, mach weiter und spar dir das auf. Das ist alles, was wir in diesem Video
erreichen wollten. nächsten Video, in
dem
wir mit der Skripterstellung beginnen, steht noch mehr Arbeit bevor.
Wir sehen uns dort
17. Münz-Pickup-Skript #1: In Ordnung, mit unserem Plan zur Abholung der
Münzen hier, erstellt. Lass uns weitermachen und einen zu unserem Level
hinzufügen. Und Sie können sehen, dass ich
meine beiden D-Snap-Einstellungen derzeit
auf unsere Hauptebene eingestellt habe, das ist unser Hauptreiseweg. Wenn ich eines
davon per Drag-and-Drop in unser Level ziehe, haben wir es jetzt
direkt vor der Stelle, an der unser
Charakter erscheint Wenn ich reinspringen und spielen würde, ziehe es
einfach sofort auf den
Bildschirm, du kannst sehen, dass es sich dreht Es passiert jedoch nichts, wenn
unser Charakter ihn überschneidet. Fügen wir ein Skript hinzu, damit etwas passiert Und um das zu tun,
doppelklicken wir auf unsere BP-Münze, nehmen sie und springen wieder rein. Und wir klicken mit der rechten Maustaste
auf unsere Kugelkomponente. Weil wir wollen, dass
etwas passiert, wenn unser Charakter mit dieser Sphäre
überschneidet Um ein Ereignis hinzuzufügen, das
sich überschneidet, klicken
wir mit der rechten Maustaste auf diese Komponente,
fügen ein Ereignis zur Komponente hinzu und
beginnen mit der Dadurch gelangen wir von
unserem Viewport zur Registerkarte „
Event-Graph Und wir wollen überprüfen,
ob der andere Akteur, das andere Ding, das diese Sphärenkomponente überlappt , unser Charakter
ist Wir können es wie zuvor machen
und mit der rechten Maustaste klicken und einen
Knoten „Spielercharakter abrufen“ und „Spielercharakter abrufen“ erstellen Wir können sehen, ob der
andere Akteur unserem Spielercharakter
entspricht . Ich werde die Taste mit
der linken Maustaste gedrückt halten und einen Verzweigungsknoten aufrufen. Das ist ein völlig
gültiges Setup. Wir überprüfen,
ob der andere Schauspieler unser Spielercharakter
ist
und wenn ja, können
wir Dinge tun. Um zu zeigen,
wie das auch gemacht werden könnte, werde
ich die Alt-Taste
gedrückt halten und die
linke Maustaste drücken, um das zu unterbrechen. Ich könnte den anderen
Schauspieler hier rausziehen und eine Katze nach
BP machen, um den Charakter der dritten
Person zu unterstreichen Gehen wir jetzt zurück zu unserem
Inhaltsbrowser, unserem Ordner mit
Bauplänen für Dritte.
Das ist der eigentliche
Charakter, den wir gerade im Spiel kontrollieren.
Eine weitere Möglichkeit, um zu überprüfen , ob wir diese Münze
mit dieser bestimmten
Charakterklasse
überschneiden, mit dieser bestimmten
Charakterklasse ist, es einfach so zu machen Wenn das stimmt, können wir von hier aus
weitermachen. Wenn das falsch wäre,
würde die Besetzung scheitern und wir könnten von hier aus
weitermachen. Beide Methoden würden gut
funktionieren. Ich werde
diese Besetzung
vorerst löschen und einfach
mit dieser Methode weitermachen. Was wir tun wollen, ist, wenn es
stimmt , dass wir diese Sphäre
überlappt haben, ziehe
ich sie aus unserem
wahren Zweig heraus und tippe Zwei DA2D-Sounds sind also einer, der nicht
an einem bestimmten Ort auf der Welt abgespielt wird Es ist einfach großartig, um Audio
abzuspielen, das
Sie laut hören Hier werde ich unsere Münzgeräusche einbauen. Wenn Sie auf das
Drop-down-Menü klicken und einfach die Münze eingeben, werden
Sie den Münzsound finden
, der den Soundeffekt abspielt. Lassen Sie uns auch einen visuellen
Effekt abspielen. Ich ziehe hier raus und tippe
den Spawn-Emitter an der Emitter verwendet das ältere Kaskaden-Partikeleffektsystem
. Alternativ könnten Sie
ein Spawn-System vor Ort einrichten, die
Niagara-Partikeleffekte Der Grund, warum ich
das verwenden werde, ist, dass
wir in
unseren Inhalten, die mit Sternen markiert sind, derzeit, ab dem heutigen Datum,
Zugriff auf den
Explosionspartikeleffekt haben heutigen Datum,
Zugriff auf den
Explosionspartikeleffekt Ich habe diese Explosion mit
Unterstrichen. Jetzt müssen wir angeben
, an welchem Ort das gespielt werden soll Derzeit
wird es am
Standort 000 in meiner Welt abgespielt . Aber das ist ganz einfach.
Wenn ich mit der rechten Maustaste klicke, erhalte ich ein leeres Feld, in dem ich den Standort des Schauspielers ermitteln kann
. Dieser Knoten hier,
das Ziel sind wir selbst. Das heißt im Grunde,
lassen Sie uns
das an der Position dieses
Schauspielers der Waage nach spielen . Sie könnten es vergrößern,
ich werde es bei 11,1 belassen aber Sie könnten eine riesige
Explosion machen, wenn Sie wollten Und zu guter Letzt werden
wir den
Ablauf der Ausführung fortsetzen und den
Zerstörungsakteur eingeben , der
unseren Anführer zerstört Das heißt, dass die BP-Münze
abgeholt wird, nachdem wir den Sound
abgespielt haben und nachdem wir diesen
speziellen Partikeleffekt gespielt haben. Lass uns weitermachen und kompilieren. Das besagt, dass unser Skript
gut aussieht. Speichern wir es auch. Und jetzt schauen wir mal, ob wir das tatsächlich abholen
können. Hier spielen wir,
hören ein Geräusch, sehen ein Bild und es
wird wieder zerstört. noch kein Punktestand erforderlich. Das wird noch kommen. Aber Leute, das wird für diesen hier
absterben. Wir sehen uns im nächsten.
18. Player-Controller: In Ordnung, willkommen
zurück alle. Nun, im letzten Video
haben wir ein sehr einfaches
Skript erstellt, mit dem wir unsere Münze abholen können. Sie werden jedoch feststellen, dass
es nicht wirklich vollständig ist. Als ob wir
die Summe der Münzen nicht erhöht oder irgendwelche Punkte oder
ähnliches bekommen haben. Und das liegt daran, dass wir uns jetzt eine Auszeit nehmen müssen,
um etwas zu
erstellen, das als
Spieler-Controller-Blueprint bekannt ist Heute ist ein
Spieler-Controller-Blueprint ein sehr grundlegender Bauplan
, der in realen Projekten zu finden ist Und das ist ein äußerst
nützlicher Plan für Dinge
wie das Speichern von Punkten, Sie als Benutzer, für das Speichern von
Münzen für Sie, Es kann verwendet werden, um das Spiel zu pausieren
und die Pause wieder aufzuheben
, ganz nach Ihrem Wunsch
, dem Benutzer Es kann verwendet werden, um das
HUD für dich, den Benutzer, wieder einzublenden.
Der Spieler-Controller
stellt diese Art von
Eins-zu-Eins-Beziehung zwischen dir, dem Benutzer und dem Charakter
,
den du kontrollierst, Für jeden Charakter, den
du kontrollierst,
gibt es einen
Spieler-Controller-Blueprint gibt es einen
Spieler-Controller-Blueprint Ordnung, also Mr. Wonder, dieser
Spieler-Controller-Blueprint, wie erstellen wir einen Nun, hier unten in unserem
Blueprints-Ordner, Blueprints in Platformer, werden
wir einen weiteren Ordner hinzufügen Ich werde mit der rechten
Maustaste in eine leere Stelle klicken. Wir werden einen neuen Ordner hinzufügen. Und ich werde
dieses Framework nennen, weil der Blueprint, den wir hinzufügen
werden, als eine Klasse
von Framework-Blueprints
bezeichnet wird als eine Klasse
von Framework-Blueprints
bezeichnet Dies sind sehr grundlegende,
wichtige Blaupausen, die in vielen unwirklichen Projekten zu finden Ich werde jetzt in
diesen Ordner eintauchen und Sie können sehen, wo wir uns in
unserer Ordnerstruktur befinden Dann klicke ich mit der rechten Maustaste hier
, Blueprint-Klasse. Hier wollen wir diese Player
Controller-Elternklasse verwenden. Und es heißt, ein
Spieler-Controller ist ein Akteur, der
für die Steuerung einer Spielfigur verantwortlich Das ist ein Charakter, den der Spieler
benutzt. Ich werde das BP
Underscore Player Controller nennen. Jetzt, wo das fertig ist, müssen
wir auf unsere
Projekteinstellungen zugreifen und unserem Projekt mitteilen diesen
Player-Controller-Blueprint verwenden soll Wir können hier oben
rechts auf unsere
Projekteinstellungen zugreifen hier oben
rechts auf Wir haben hier die
Projekteinstellungen in Karten und Modi festgelegt . auf der linken Seite aus, Wähle auf der linken Seite aus, dass du diese
Player-Controller-Klasse findest. Auf der rechten Seite
können wir dieses
Drop-down-Menü anstelle des
Standard-Player-Controllers auswählen . Verwenden wir den, den
wir maßgeschneidert haben. Jetzt werden wir viele verschiedene Arten von
Funktionen und Variablen in
unserem BP-Player-Controller speichern Funktionen und Variablen in . Wir wollen also
sicherstellen, dass unser Projekt dies verwendet.
Im Wesentlichen
wird sich unser
BP-Player-Controller hier an unseren Charakter aus der
dritten Person
anhängen Sie werden im
Laufe dieses
Projekts
zusammenarbeiten Laufe dieses
Projekts Ordnung, damit kommen wir
zurück zu unserem Projekt selbst Lassen Sie uns entscheiden, alles zu speichern. Das ist buchstäblich alles,
was wir in diesem Video erreichen wollten. Wenn du einen Dialog wie diesen bekommst, rette
einfach alle Leute , die das
alles für diesen machen werden. Wir sehen uns im nächsten.
19. Münz-Pickup-Skript #2: In Ordnung, heiße alle willkommen. In diesem Video
werden wir
unserem BP-Player-Controller ein Skript hinzufügen, um werden wir
unserem BP-Player-Controller ein Skript hinzufügen unsere Münzen
zu summieren Lassen Sie uns also gleich loslegen. Noch einmal, das ist der
Pathway Content Platformer, Blueprint Framework, wo ich diesen BP Player Controller
habe Doppelklicken wir darauf, um
es zu öffnen. Wenn Sie jemals sehen, dass
es sich um einen reinen Daten-Blueprint handelt, können
Sie hier klicken, um den vollständigen Blueprint-Editor zu öffnen In diesem Blueprint werden
wir jetzt keine
Arbeit im Viewport machen Arbeit im Hier wird es
nichts zu sehen geben. Das alles wird im Event-Graph
gemacht. Das wird das Kraftpaket
sein, wenn du so willst, um irgendein
Skript in unserem Spiel auszuführen Das wird entscheidend sein.
Und der Grund, warum wir
dieses Skript in
unserem Spieler-Controller unterbringen werden ,
ist, dass
ein Spielercontroller im Gegensatz zu einem Charakter, der sterben kann einem während
unserer gesamten Spielsitzung
bestehen bleibt Ordnung, als Erstes möchte
ich hier
ein paar Variablen im
Bereich Mein Blueprint hinzufügen , indem ich auf diese
Plus-Variablen-Schaltfläche klicke Der erste wird
Coins heißen. Der Variablentyp
wird hier eine Ganzzahl sein. Zoll bedeutet ganze Zahlen , weil wir
keine Zehntelmünze haben Dann
schreibe ich, klicke darauf, ich werde das duplizieren und ich werde
dieses eine Münze in Leben nennen Ordnung, lassen Sie uns das sofort kompilieren damit wir einige
Standardwerte dafür hinzufügen können. Für eine Standardanzahl von
Leben im Detailbereich setze ich sie für Münzen auf drei. Ich werde unseren Standardwert festlegen. Nun, lassen wir es bei Null. Wir werden nicht mit irgendwelchen Münzen anfangen
. Okay, dann finde hier
einen leeren Bereich in deinem Diagramm. Du hast eine Menge davon. Ich
werde klicken und ziehen. Und ich werde sofort ein
benutzerdefiniertes Ereignis hinzufügen. Klicken Sie mit der rechten Maustaste und geben
Sie benutzerdefiniertes Ereignis ein. Jetzt können Sie
ein benutzerdefiniertes Ereignis benennen und es wird nur ausgelöst,
wenn Sie es manuell aufrufen. Also werden wir das benutzerdefinierte Ereignis
hier
erstellen und es in Kürze
aufrufen. Ich werde
dieses benutzerdefinierte Ereignis
eine Münze nennen , weil dieses kleine
Skript
genau das tun wird. dann, wenn dieser Knoten ausgewählt Lassen Sie mich dann, wenn dieser Knoten ausgewählt ist, einfach hier nach oben zoomen. die
Strg-Taste gedrückt halte und
im Detailbereich hineinzoome , Wenn ich die
Strg-Taste gedrückt halte und
im Detailbereich hineinzoome, füge
ich eine Eingabe hinzu Klicken Sie also hier auf diese
Plus-Schaltfläche. Und die Eingabe wird Münzen zum
Hinzufügen heißen, und wir werden
diese Ganzzahl so machen. Nun, das ist immer ein
bisschen irreführend. Wir nennen das
eine Eingabe und das
erscheint auf der
Ausgangsseite dieses Knotens Sie werden sehen, warum dies als Eingabe
bezeichnet
wird ,
denn wenn wir dieses benutzerdefinierte Ereignis
aufrufen, werden
wir die Anzahl der
Münzen, die wir hinzufügen möchten
, in diesen Knoten eingeben . Okay, also so
wird unser Skript ablaufen, wenn
es aufgerufen wird. Wir werden
ihm eine bestimmte Menge an Münzen zum Hinzufügen geben und wir ziehen daraus heraus und
geben die Plus-Schaltfläche ein. Und wir werden einen
Anzeigenknoten hinzufügen, egal wie viele Münzen
wir hinzufügen möchten. Wir werden hier unsere Gesamtsumme erhöhen. Unsere Gesamtzahl an Münzen wird
in dieser Variablen gespeichert, sodass wir sie per Drag-and-Drop direkt auf
diesen Pin ziehen können. Also geben wir eine
bestimmte Menge an Münzen ein, addieren sie zu unserer Gesamtsumme und wir wollen das
im Grunde zu unserer neuen Summe machen. Ich möchte hier jedoch
einige Nachforschungen anstellen. Zuerst werden wir prüfen
, ob diese Zahl
größer oder gleich
der Zahl 100 ist , weil wir ein zusätzliches Leben gewähren wenn Sie diesen Wert von 100 überschreiten. Ich werde das Ganze in die Länge ziehen uns das
Ergebnis dieser Mathematik geben. Und wir werden ein
Größeres
als Gleiches zu n Größer-Gleichem hinzufügen. Dann
ziehe ich das raus und
bringe das in einen Verzweigungsknoten. Also werden wir sagen, wenn unsere Summe hier
größer oder gleich 100 ist, werden
wir etwas tun. Wenn das wahr ist, werden
wir
etwas anderes machen ,
wenn das falsch ist. Wenn es nun falsch ist, dass wir noch
keinen Wert von 100
erreicht
haben, ziehen wir diese Summe von hier weg. Wir werden einen
Klemmknoten einsetzen. Wir werden eine Ganzzahl klammern, wir werden
sie zwischen einem Wert von
0,100 klammern . Dann lassen wir das Ganze
in einen Münzsetzer fließen So funktioniert es.
Wenn wir unsere Coins-Variable
hineinziehen, ziehen wir sie so rein,
wir können sie bekommen, wie wir
es
zuvor gemacht haben , oder
wir können sie in diesem Fall setzen, wir setzen sie,
stecken so ein, also werden wir das so aus dem falschen Zweig
herauskommen lassen . Nun, um
genau zu besprechen , was
dieses aktuelle Skript macht. Wir werden eine Menge Münzen
einspeisen, um sie hinzuzufügen. Wir
werden das dann zu
unserer bestehenden Anzahl an Münzen hinzufügen . Wir werden
diese zusammenzählen. Finden Sie heraus, ob diese Zahl
größer oder gleich 100 ist. Wenn es falsch ist, dass sie
nicht größer
oder gleich 100 ist , werden
wir sicherstellen, dass diese Summe hier ein Wert von
0-100 ist . Wir stellen sicher, dass sie
irgendwo hier drin ist,
indem wir sie auf ein Minimum oder Maximum von 100 Und dann werden
wir das als
unseren aktualisierten Münzwert festlegen unseren aktualisierten Münzwert Wenn wir also
eine Münze sammeln würden, würden wir eine nehmen. Es hat zu unserer aktuellen
Gesamtsumme beigetragen, die Null ist. Diese Summe wird eins sein. Sie wird nicht
größer oder gleich 100 sein. Also verlassen wir
diesen falschen Zweig und unsere aktualisierte
Summe wird eins sein. Okay, als Nächstes werden wir uns
damit befassen, was passiert, wenn wir diesen Schwellenwert von
100 Münzen erreicht
haben. Lassen Sie uns das ein wenig nach unten
verschieben. Wenn wir
diese beiden zusammenfügen, ziehen wir den Vorgang wieder aus diesem Anzeigenknoten heraus. Und dieses Mal werden wir einen
Subtraktionsknoten einfügen, also fügen wir einfach ein Minuszeichen ein Und das bringt uns den
Operator Subtract Node hierher. Wir werden 100 subtrahieren.
Beachten Sie, dass wir hier einen Ad-Node haben Subtrahieren Sie den Knoten genau hier. Und dann
werden wir auch
einen weiteren Clamp-Inger-Knoten hinzufügen Ich werde das auswählen, Steuerung D
ausführen, um das sofort zu
duplizieren. Und ich nehme
das Ergebnis dieser Mathematik und setze es in unseren Wert ein. Ich werde das Minimum
und das Maximum wie folgt belassen. Ich stelle erneut sicher, dass wir
diesen Schwellenwert einhalten. Das ist nur, um zu verhindern, dass
irgendwelche wackeligen Berechnungen stattfinden. Dann werde ich noch einmal meine Gesamtsumme
für Münzen festlegen. Jetzt pass auf, das ist
ein weiterer praktischer Trick. Sie können
Ihre Coins-Variable
hier herausziehen und wenn Sie eine
Setter-Version davon einfügen möchten , können
Sie sie einfach auf
einen Ausgangspin wie diesen legen Und es wird einen solchen Setter
reinbringen. Das wird den ganzen
Weg von unserem wahren Zweig ausgehen. Was
wir hier im Wesentlichen sagen wollen, ist, wenn, sagen wir, wir hätten 99 Münzen hier und wir würden eine hinzufügen, das würde 100 entsprechen. Was also passieren würde, ist
genau hier, dass wir sagen würden, ja, es ist größer als oder in
diesem Fall gleich 100, also würden wir aus
diesem wahren Zweig herausfließen. Und wenn das dann 100
ist, würden
wir 100 subtrahieren, was würden
wir 100 subtrahieren im Grunde unsere
Münzsumme wieder auf Null zurücksetzt, und das wäre dann unsere neu reflektierte Was wir hier tun,
ist, dass
wir alle 100 Münzen ein Leben hinzufügen wollen Fügen wir also ein Leben hinzu, sollen wir? Ich werde die
Steuerung gedrückt halten und das
Rad ein bisschen zurückdrehen, nur um mir ein
bisschen mehr Platz zu
geben .
Ich werde
unser Leben variabel einstellen. Ziehen Sie es jetzt per Drag & Drop
hierher. Wir werden es holen. Und dann ziehe ich
es raus
und tippe schrittweise ein. Jetzt verhält sich dieser Knoten wie ein
Getter und Setter, alles in einem. Wir müssen die Anzahl
unserer Leben nicht so festlegen, wie wir es hier getan haben Das wird
unsere Anzahl an Leben in Anspruch nehmen ,
in diesem Fall drei. Und das wird
einfach etwas hinzufügen. Ich muss also nicht
so weitermachen , um
unsere Zahl an Leben zu erhöhen. Es wird es einfach automatisch tun. Das wird also
unsere Anzahl an Leben ermitteln und diese Erhöhung wird sie auf den aktualisierten Wert
setzen Natürlich müssen wir
sicherstellen, dass unser
Ausführungsablauf auch tatsächlich in diesen Prozess
einfließen wird So wie es ist. Dann wäre es schön , wenn wir damit auch
irgendeinen Sound spielen würden. Also werde ich
diesen Typ in Sound Two
D abziehen . Ich werde nur unsere Optionen hier unten auflisten. Der Sound, den ich spielen möchte,
ist unser einziger Sound hier. Sie können auch die Lautstärke
des Sounds einstellen. Ich belasse es bei
eins, aber du kannst das
ein- oder ausschalten, wenn du willst. Ich klicke mit der linken Maustaste und ziehe das
ganze Skript hier hin und her, tippe auf die Taste und ich nenne es mein
A-Münzen-Skript. Im Detailbereich
können Sie eine gemeinsame Farbe festlegen. Normalerweise setze ich
diese gerne auf etwas wie Schwarz, weil es
einen schönen Kontrast bietet. Lassen Sie uns weitermachen und das
kompilieren, um sicherzustellen, dass unser
Skript in Ordnung ist. Speichern Sie das. Nun, das
ist alles schön und gut, außer dass es noch nichts gibt, was dieses
Ad-Coin-Skript
tatsächlich auslösen könnte. Denken Sie daran, dass
Sie bei einem benutzerdefinierten Ereignis manuell angeben müssen, wann
es ausgelöst werden soll. Stelle wird also
der nächste Teil davon dieser Stelle wird also
der nächste Teil davon ins Spiel kommen. Stellen Sie erneut sicher, dass Sie hier
kompiliert und gespeichert haben. Als Nächstes werden wir
in unseren Blutdruck springen und Münzen einsammeln. Also finde deinen Weg
in diesem Bauplan. Was wir
tun werden, ist zunächst, dass
wir in kurzer
Zeit wieder
auf
dieses kleine Drehbuch zurückkommen in kurzer
Zeit wieder
auf
dieses kleine Drehbuch Aber ich werde diese beiden Knoten löschen
. Ereignis ankreuzen, Ereignis,
Akteur, Beginn, Überschneidung. Und ich möchte das
Event in die Länge ziehen und das Spiel hier beginnen. Ich möchte einen Verweis
auf
unseren BP-Player-Controller erstellen ,
damit ich das benutzerdefinierte Ereignis
„
Münzen hinzufügen“ aufrufen kann . Dazu schreibe ich
Click in ein leeres Feld und
tippe Get Player Controller ein. Was wir dann tun werden,
ist das wegziehen und
Cast Two BP Player Controller eingeben . Wie. Wir sagen also
im Grunde, okay, wenn wir mit dem Spielen beginnen, wollen
wir herausfinden, ob
der BP-Player-Controller, den wir in
unseren Projekteinstellungen festgelegt haben, der
ist, den wir tatsächlich verwenden. Dann können wir hier mit der
rechten Maustaste auf diesen Pin klicken, rechten Maustaste klicken und wir können ihn
zu einer Variablen heraufstufen. Dabei werden Sie in meinem Blueprint-Panel
feststellen, dass in meinem Blueprint-Panel
feststellen, Sie gerade
eine
Player-Controller-Variable erstellt haben , in der Ihr
BP-Player-Controller gespeichert wird Ihr
BP-Player-Controller gespeichert Ich werde den Namen hier einfach kürzen, klicken Sie mit
der rechten Maustaste. Ich werde ihn in meinen Player-Controller umbenennen, sodass wir mit der linken Maustaste klicken und die Taste ziehen
können. Dies wird mein
Skript sein, in dem ich
einen Verweis auf meinen
Player-Controller erstelle einen Verweis auf meinen
Player-Controller , den wir
in diesem Projekt verwenden. Ich werde das sofort
auf Schwarz einstellen. Schwarz wie meine Seele. Okay, und dann
fahren wir weiter
zu diesem Bereich unseres Bauplans Und wir werden hier unten
ein bisschen mehr
Skript implementieren unten
ein bisschen mehr
Skript Lassen Sie uns weitermachen und
das Ganze mit der linken Maustaste verschieben Wir werden also einen Verweis auf unseren Player-Controller einfügen , indem wir mit der
linken Maustaste auf Ziehen klicken Wir wollen das jetzt haben weil wir einen Verweis
auf unseren Player-Controller haben Wir können das als benutzerdefiniertes Ereignis für
Werbemünzen bezeichnen , das innerhalb
unseres Player-Controllers existiert. Lassen Sie uns zurück zu unserem BP springen, Münzen
aufheben und aus
unserem Player-Controller Münzen eingeben. Ich sollte das wirklich Ad
Coins nennen. Ich werde das sogar tun. Ich werde
hier in den Details auf mein benutzerdefiniertes
Ad Coins-Event klicken . Ich werde
das aktualisieren, um Münzen hinzuzufügen. Lassen Sie uns das kompilieren und speichern. Und jetzt können Sie in meinem BP Pick Up
Coins
nachsehen , dass diese ebenfalls
aktualisiert wurden. Beachten Sie also, dass dieser
Knoten dieses Kundenereignis
aufrufen wird . Es wird ihm
sagen, es soll losgehen. Beachten Sie nun, dass wir diese Eingabe
hinzugefügt haben, unsere Münzen, um sie hier wieder
in unsere BP-Pick-Up-Münze einzufügen. Wir können sehen, dass sich dies jetzt auf der Eingabeseite dieses Knotens befindet. Wenn es stimmt, dass unser Spieler oder unser Spielercharakter diese Sphäre
überlappt, werden
wir das verkabeln Also lass dir das hier nicht entgehen. Stellen Sie sicher, dass Sie aus dem richtigen
Zweig kommen, in dem Sie das verkabeln. Jetzt müssen wir uns sagen, wie viele Münzen
wir hinzufügen wollen? Ich werde schreiben,
klicken Sie auf diese Variable, aber schauen Sie sich zuerst diesen Trick an. Ich werde die
Nummer eins in dieses Feld eingeben. Dann werde ich schreiben,
klicken Sie auf diesen Pin. Wir werden
das zu einer Variablen heraufstufen. Schauen Sie in unserem My
Blueprint-Panel nach. Das heißt jetzt Coins to Add. Es hat den gleichen
Namen, Münzen zum Hinzufügen. Wenn ich unseren Entwurf kompiliere, können
Sie sehen, dass er den Standardwert übernehmen
wird , den wir in der Box
hatten Nun, hier ist ein weiterer kleiner Bonus. Lassen Sie uns weitermachen und
dieses Kästchen für unsere Münzen ankreuzen, um der Instanz Editable eine Variable
hinzuzufügen Auf diese Weise können wir
anpassen, wie viele Münzen
jede Münze wert ist Wenn wir
wollten, könnten wir also
eine einzelne Münze herstellen , die eine Münze,
fünf Münzen, zehn
Münzen usw. wert ist. Es wird so hochgradig
anpassbar sein. In Ordnung, das wird
unser Drehbuch hier sein. Machen wir weiter und klicken mit der linken Maustaste, ziehen und tippen auf das C, dann wird
es
unser Münzabhol-Skript genannt. Ich werde genau hier klicken. Klicken Sie auf „Okay“. Zoomen
Sie hier ein bisschen raus. Sie können das Video
hier bei Bedarf pausieren. Lass uns weitermachen und das
kompilieren und speichern. Lassen Sie uns nun überprüfen,
ob das tatsächlich funktioniert. Ich gehe hier zurück zu meinem
Haupteditor. Beachten Sie nun, dass
ich, wenn meine Münzen hier in meinem Level
ausgewählt sind, die Alt-Taste gedrückt halten, mit der
linken Maustaste klicken und ziehen werde . Und ich werde eine weitere
Münze hierher zurücklegen. Ich kann die Münze
hier wert sein, sieh dir mein
Details-Menü an, das auf eins gesetzt ist. Ich kann das auf der linken Seite machen. Ich kann dafür sorgen, dass das
100 wert ist,
wenn ich will um zu sehen, wie diese Zahl auf
dem Bildschirm erscheint, unsere Gesamtmünzen. Lassen Sie uns
unser Player-Controller-Skript
vorübergehend anpassen . Wir werden das irgendwann über ein
offiziell aussehendes HUD auf
unseren Bildschirm
ausspucken über ein
offiziell aussehendes HUD auf
unseren Bildschirm Aber was wir tun können, ist mit der rechten
Maustaste in eine leere Stelle zu klicken. Ich werde wieder einen
Print-String-Knoten einfügen. Irgendwann werde ich
das loswerden, aber lass uns das machen. Immer wenn wir eine Münze einsammeln, stelle
ich sie ganz zum Schluss. Wir werden das tatsächlich
vom falschen Zweig haben. Im wahren Zweig werde
ich im Grunde beide
hier einstecken. Ich werde damit aufhören
und einen Append-Knoten einfügen. Nochmals, das ist alles vorübergehend. Wir können also sehen, wie sich das auf dem Bildschirm
ausspuckt. Ich werde
Münzen einwerfen, Basisfläche. Dann gebe
ich innerhalb unseres B-Werts einfach unsere Münze ein. Zieh das hier raus, Münzen, wir holen es,
stecken es hier rein. Es wird es
von einer Ganzzahl in eine Zeichenfolge umwandeln. Lass uns weitermachen und das kompilieren. Speichern und abspielen. Jetzt wirst du sehen, dass
ich
hier oben
links im Viewport unsere erste Münze einsammeln werde. Da steht wieder Münzen eins Schau dir hier die äußerste obere
linke Ecke meines Spielfensters an. Sagen wir jetzt noch einmal Münzen eins, denn wir haben alles umgedreht 1-101 gegangen. Nur um das
weiter zu demonstrieren, hole
ich noch ein paar
Münzen heraus, indem
ich die Alt-Taste gedrückt halte, mit der
linken Maustaste klicke und ziehe, also lass uns nochmal spielen Ich habe oben
links in meinem Viewport 123 nachgesehen. Jetzt ist dieser 100 wert, also sollte ich zu drei zurückkehren In Ordnung, und da haben wir es. Wir haben unser Skript zum
Sammeln von Münzen fertiggestellt und
es hochgradig anpassbar gemacht ,
sodass
wir es für
jedes Exemplar unserer Münze so gestalten können, dass wir die Anzahl
der Münzen, die
jede einzelne wert ist, anpassen können . Und wenn Sie das tun und es visuell etwas
übersichtlicher
gestalten
möchten, können Sie festlegen, dass es
zehn Münzen wert ist. Sie könnten in
Ihrem Detailbereich
das Zylindernetz auswählen , das unsere Münze
darstellt. Sie könnten das Material gegen ein anderes Material austauschen,
vielleicht eine andere Münze. Vielleicht könntest du den Maßstab für
den gesamten Tonabnehmer so
einstellen ,
dass er insgesamt größer ist. Sie könnten
es also auf einen Gesamtwert von
etwa drei setzen ,
ungefähr so. Und wenn das gesperrt ist und
Sie einen Wert auf drei setzen
, werden alle auf drei gesetzt. Also los, Leute, das wird
es für diesen Fall erledigen. Wir sehen uns im nächsten.
20. Tongleichzeitigkeit bei Münzaufnahme: Willkommen. In diesem Video ist es
unser Ziel,
ein solides Nebenläufigkeits-Asset zu erstellen und es
dann in
unserem Münzabhol-Skript zu verwenden, um zu unser
Audio beim Abholen von Münzen
durchgeblasen wird , wenn gleichzeitig eine
Tonne Münzen gesammelt Nun, ich habe hier ein Beispiel eingerichtet, bei dem mein
Spieler ganz oben
spawnen und
herunterfallen wird ganz oben
spawnen und , um
eine Menge Münzen einzusammeln Also werde ich das
Problem jetzt für Sie aufdecken. Nicht großartig, oder?
Um das Problem zu beheben, werden
wir
dieses Sound-Parallelitäts-Asset erstellen, und ich werde
das in meinem
Platformer-Audioordner genau Ich habe vor der
Aufnahme dieses Videos einen Probelauf gemacht. Ich nehme dieses Video lange
nach der Aufzeichnung des Kurses
auf. Und ich
klicke mit der rechten Maustaste und erstelle ein brandneues
Sound-Concurrency-Objekt,
indem ich unter
Audio-Sound-Parallelität Ich werde diese
Warnung von Dell hier loswerden. Und dann werde ich das sofort
umbenennen. Wenn ich es auswähle und F zwei drücke, nenne
ich diesen
einen Münzunterstrich Cc. Wenn ich auf dieses Asset
doppelklicke
oder es ausgewählt habe, drücke ich
einfach die Leertaste Sie werden einige Parameter sehen, die mit diesem Asset
verknüpft sind. diesem Asset
können wir nun im Wesentlichen einige
Regeln für diese Art
von Szenario festlegen , in dem möglicherweise eine ganze Reihe von Sounds gleichzeitig
abgespielt werden. Und nur um Ihnen zu zeigen,
wo wir dieses
Sound-Asset
irgendwann einbauen werden, werde
ich hier
zu meinem Level zurückkehren. Und ich werde meinen Münzplan
öffnen. Ich könnte hier in
meinem Level oder im Outliner einen auswählen.
Ich kann sehen, dass ich auch hier unten einen Haufen
Münzen habe hier unten einen Haufen
Münzen Du kannst einfach auf BP Coin Pickup
bearbeiten klicken. Und wo wir das
einbauen werden, ist unsere Play Sound TD-Funktion. Das ist unser Skript zum Sammeln von Münzen. Wenn Sie
hier auf dieses Drop-down-Menü klicken , werden weitere
Parameter angezeigt Und eine davon ist eine
Parallelitätseinstellung. Ich werde das gleich eintragen
, auch wenn wir hier
keinerlei Änderungen an
unserem Coin-Parallelitäts-Asset
vorgenommen haben . Wählen Sie das aus Da ist die, die ich
vor den Dreharbeiten zu diesem Video erstellt habe . Ich werde die Parallelität
der Münzen einbauen. Daran wir arbeiten. Also ist es schon eingepasst
. Lassen Sie uns nun zu unserem Vermögenswert „Coin
Concurrency“
zurückkehren Darin haben Sie einige
Parameter, mit denen Sie herumspielen
können maximale Anzahl ist die Anzahl der Sounds,
die gleichzeitig abgespielt werden können Ich werde das auf drei reduzieren,
und
diese Zahl habe ich
durch einige Spieltests erreicht durch einige Spieltests Drei sind also ziemlich gut für dieses Szenario. Auflösungsregel. Dies gilt für das, was passiert, wenn unsere maximale Anzahl erreicht ist, und Sie haben hier
verschiedene Optionen. Und wenn Sie mit der Maus
über jedes dieser Elemente fahren, wird
es Ihnen
genau sagen, was es tut. Um das zu testen, höre ich
gerne mit dem ältesten auf. Wenn ich also
diese Zahl von drei übertrete, stoppe
ich den ältesten Sound
,
den ich ausgelöst habe, und
fange einen neuen an. Und bei dieser erneuten Triggerzeit lasse
ich es in Ruhe, aber auch
gerne
damit herumspielen Noch einmal, der Tooltip sagt dir genau,
was das macht Dies ist die Zeit in
Sekunden, in
der zwischen verschiedenen
Sounds gewartet werden muss, bis sie abgespielt werden. Ich werde
weitermachen und das speichern. Und da das schon
in meiner BP-Pickup-Münze eingesteckt ist, werde
ich
weitermachen und kompilieren Das Drehbuch ist hier in Ordnung.
Speichere das auch, springe zurück in mein Level. Und wenn ich auf Play klicke, wirst
du ein
ganz anderes Erlebnis hören Jetzt bekommst du beim Spielen
dieses Audio-Cacapone nicht mehr ,
wenn du willst Ordnung, Leute, das reicht, um anzubieten. Wir
sehen uns im nächsten
21. Feuerleiste (Teil #1): Willkommen. Im Laufe
der nächsten Videos hier werden
wir diesen Typen
bauen, unsere allererste
Gefahr, eine Feuerbar. Und wir werden sie
hochgradig anpassbar
machen , sodass wir bestimmen
können, wann sie in unserem Level-Editor
platziert wird, wie lang
diese Feuerleiste sein soll, wie schnell sie sich dreht, welche Richtung sie sich dreht,
all diese guten Sachen. Lassen Sie uns also gleich loslegen. Alles klar hier und Unreal in meinem Platform-Blueprint-Ordner Ich klicke mit der rechten Maustaste
in eine leere Stelle. Ich werde den
Blueprint-Kurs wählen. Das wird ein Plan für
Schauspielerklasse sein , weil wir ihn
der Welt vorstellen werden Das nenne ich BP
Underscore Fire Bar. Machen wir weiter und
doppelklicken wir darauf, um es zu öffnen. Und wir werden sofort ein
paar Komponenten hinzufügen. Die erste, die ich eingeben
werde,
Box, wird eine
Box-Kollisionskomponente sein. Ich belasse es
beim Namen der Box. Und ich werde mir
jetzt keine Gedanken über den Umfang machen, weil wir das dynamisch anhand eines Konstruktionsskripts berechnen
werden , das wir hier später schreiben. Als Nächstes wähle ich
wieder
unsere Standard-Szenenroute aus, weil
ich
diese nächste Komponente an die
Standard-Szenenroute anhängen möchte, also hier
im Wesentlichen der
Mittelpunkt, nicht die Box Dies wird ein statisches
Instanznetz sein, nicht das hierarchische
Instant-Mesh Das statische Instant-Mesh werde
ich tatsächlich,
lassen wir es einfach stehen Sofortiges statisches Netz ist in Ordnung. Wir könnten es Ball oder
so etwas nennen, aber wenn dies im
Detailbereich ausgewählt ist, werde
ich unser
statisches Netz in eine Kugel ändern. auf diese
Dropdown-Kugel klicke, möchte
ich eine, die einfach Kugel
heißt. Dieser Typ hier bei
der Größe 100, genau da in der
Mitte, da steht die ungefähre Größe
100 mal 100 mal 100. Es ist im Ordner „Engine
Basic Shapes“. Sie können diesen
Pfad oben sehen. Das ist der, nach dem ich suche. Dann,
was das Material angeht, alles dafür reicht. Obwohl ich etwas haben möchte
, das ein wenig flammig aussieht, werde
ich nach M. suchen. Underscore Fire underscore 03 Es ist dieser
hier, der aus dem Infinity
Blade Effects Pack
stammt Infinity
Blade Effects Pack
stammt Auch hier ist das Material
nicht wirklich wichtig, aber ich möchte etwas, das ein bisschen flammig
aussieht Das werden wir auch hinzufügen. Jetzt sehen wir noch keines dieser statischen
Instanznetze. Obwohl wir
unseren Fireball hier in Kürze
dynamisch über
das Konstruktionsskript
auffüllen dynamisch über werden Jetzt gibt es noch eine weitere Komponente, die
ich hier hinzufügen möchte. Aber bevor ich das mache, habe ich eine Sache vergessen, die ich an unserem
statischen Instanznetz hier
ändern möchte unserem
statischen Instanznetz hier
ändern im Detailbereich
unter
den Kollisionseinstellungen nach unten
gescrollt ,
wo Kollisionsvoreinstellung steht Ich werde das von „
Nur dynamisch blockieren
“ auf „Keine Kollision“ ändern dynamisch blockieren
“ auf „Keine Kollision Der Grund dafür ist
,
dass
unsere Box das Ding sein wird , bei dem wir die Kollision
mit einer dieser
Instanzkugeln überprüfen mit einer dieser
Instanzkugeln , aus denen diese Feuerleiste bestehen wird. Ich möchte nicht, dass etwas
damit kollidiert. Das alles wird
über unseren Box Collider erledigt. Ordnung, als Nächstes füge ich In Ordnung, als Nächstes füge ich hier oben links
eine weitere Komponente hinzu, und
das wird unsere
Komponente
zur Fäulnisbewegung sein. Rotierende Bewegung. Das wird die Komponente
sein, sie ist an nichts gebunden. Es ist nur ein bauplanspezifischer
Plan, der unsere Feuerwaffe in die
eine oder andere Richtung
drehen wird unsere Feuerwaffe in die
eine oder andere Richtung
drehen Ich werde die
Rotationsgeschwindigkeit
im Detailbereich so einstellen ,
dass sie eine Rotationsrate von 50 im Y hat. Ich werde sie
auf Null setzen Ordnung, als Nächstes
werden wir
hier
ein paar Variablen erstellen ein paar Variablen und
auf diese Plus-Schaltfläche klicken Und die erste, die ich
will, wird Flame Ball Nummer
heißen. Das wird eine Ganzzahl sein. Und das wird bestimmen
, wie viele dieser Flammenkugeln unsere
Arm- oder Feuerleiste hier ausmachen werden. Ich werde auch
im Detailbereich
ein paar Dinge ändern. Ich möchte diese
Instanz editierbar machen, damit wir deren
Anzahl im Editor ändern können Dann möchte ich auch
eine Kategorie dafür festlegen ,
damit wir
diese wenigen Variablen haben , die ich innerhalb einer Kategorie
in unserem Variablenbereich
erstellen werde innerhalb einer Kategorie
in unserem Variablenbereich
erstellen Wenn ich hier reinklicke, kann ich einfach dort überschreiben, wo Standard
steht Und ich nenne das,
ich nenne Bar Customization. Da haben wir's. Da haben wir's. Jetzt können Sie in
unserem Variablenbereich sehen, dass
wir eine Kategorie namens
Balkenanpassung haben. Und in dieser Kategorie ist eine
Flammenball-Nummer enthalten .
Mit dieser ausgewählten. Ich werde D
darauf kontrollieren, um es zu duplizieren. Dieser wird Balldistanz
heißen. Abgesehen. Ich möchte, dass dies auch in der
Instanz bearbeitet werden kann. Wir werden hier gleich einige
Standardwerte festlegen. Ich werde hier eine
weitere Variable hinzufügen. Dieser wird Flame Ball heißen. Dies wird die Größe jeder
dieser Flammenkugeln
bestimmen . Ich werde das als Vektorvariable festlegen damit wir deren X-,
Y- und Z-Größe bestimmen können . Ich werde es so einstellen, dass es von Instanzen bearbeitet
werden kann. Und schauen Sie hier in unserer Kategorie nach, Sie können sehen, dass es
nicht wirklich
in unserer Kategorie der
Balkenanpassung aufgeführt in unserer Kategorie der
Balkenanpassung Aber drüben im
Detailbereich kann ich die Anpassung der
Leisten angeben , indem ich auf das Drop-down-Menü klicke, und jetzt ist
es in dieser Kategorie. Die letzte Variable, die
wir hinzufügen
werden, wird als Rotationsrate bezeichnet. Das wird ein Rotator sein. Im Detailbereich werde
ich das überprüfen. Machen Sie eine Instanz auch
bearbeitbar, damit wir
die Rotationsrate anpassen können Und ich werde das auch auf die Kategorie
Balkenanpassung setzen auch auf die Kategorie
Balkenanpassung Lassen Sie uns weitermachen und
das kompilieren, damit wir
einige Standardwerte für
meine Flammenball-Nummer festlegen können . Ich werde
das einstellen, wir sagen fünf. Wir werden eine
Flammenleiste haben, die standardmäßig aus fünf im Abstand voneinander besteht. Ich setze diesen Wert auf 60,
60, weil das ein Wert ist, den ich
im Voraus festgelegt habe, die Größe der Flammenkugel. Ich werde diesen Wert
pauschal auf 0,5 setzen. Noch einmal, ich lege
das im Voraus fest. Die Rotationsrate,
ich werde sie mit der
Rotationsrate von 50 im Y vergleichen lassen,
die ich bei
meiner Drehbewegung
hatte von 50 im Y vergleichen lassen,
die ich bei
meiner Drehbewegung . Ich werde sie
auch für diese Variable
auf 50 im Y setzen . Ich werde sie
auch für diese Variable
auf 50 im Y Ordnung, lassen Sie uns
weitermachen und
das sofort speichern , damit wir
hier keine Arbeit verlieren Und dann lasst uns
zu unserem Konstruktionsskript übergehen. Wir werden hier in
unser Konstruktionsskript
ein Skript einfügen,
weil dies das Aussehen
unseres Fireballs während der
Entwurfszeit
ändern wird das Aussehen
unseres Fireballs während der
Entwurfszeit
ändern , bevor das
Spiel tatsächlich läuft Wir haben einige coole Dinge
, die wir direkt in diesem Abschnitt
machen werden direkt in diesem Abschnitt
machen Das erste, was ich tun
möchte, ist ,
unsere Flame-Ball-Nummer einzugeben hierher zu
ziehen und dort abzulegen. werden wir uns holen. Wir werden das in die Länge
ziehen und abziehen Bringen Sie einen Subtraktionsknoten ein. Wir subtrahieren
das von der Zahl eins. Und Sie werden gleich hier
sehen, warum. Weil wir den Ausgang davon an einen Vier-Loop-Knoten
anschließen werden einen Vier-Loop-Knoten Wir werden
vier Schleifen eingeben, nicht vier Schleifen. Bei Break Just Four Loop möchte
ich das eigentlich
in den letzten Index einbinden Ich werde die
Strg-Linksklick gedrückt halten und das Ganze
in unseren letzten Index ziehen Ich subtrahiere
das um eins, weil wir diese Schleife
mit der Zahl Null
beginnen Also werden wir das in einer
Schleife durchgehen, wir wollen tatsächlich
fünf Flammenkugeln hinzufügen ,
die Zahl Wenn wir bei Null anfangen zu
zählen, müssen
wir eins subtrahieren, sodass die Ausgabe
dieser Vier 01234 ergibt So oft
werden wir das wiederholen. Genau genommen
fünfmal, aber ab der Zahl Null, okay? Aus diesem Loop-Körper heraus werde
ich einen Sequenzknoten
einfügen, werde
ich einen Sequenzknoten
einfügen die S-Taste
gedrückt halte
und mit der linken Maustaste klicke. Wir werden eine
Sequenz einfügen, weil wir hier
mehrere
Dinge tun werden. Ich werde sofort
eine weitere PIN hinzufügen. Das erste, was ich
tun werde, ist, diesen Index zu entfernen und einen Multiplikationsknoten
einzufügen. Jedes Mal, wenn wir das durchgehen, wird es die Indexnummer
hier
ausspucken , 0123 usw. Und ich möchte das mit dem Abstand zwischen
unseren Flammenkugeln
multiplizieren unseren Flammenkugeln Wir können das hier so per Drag-and-Drop hinziehen. Nun, die Ausgabe davon werden
wir letztendlich in
einen
Make-Vector-Knoten einbinden Wir werden gleich darauf zurückkommen,
aber in
diesem ersten Teil des
Skripts werden wir Instanzen
unseres Flammenballs
hinzufügen Ich werde unsere
Instanz Static Meshed hineinziehen. Das waren diese kugelförmigen
Flammenkugeln, wenn man so will. Ich ziehe mich
hier raus und tippe eine Instanz ein. Jetzt hätten wir das
einfach machen können. Jetzt wird es eine weitere
Kopie dieser Instanz hinzufügen, statisches Mesh, das ich nicht benötige. Ich werde das löschen
. Das ist nur eine weitere Kopie. Letztlich
wird der Sequenzknoten hier angeschlossen. Der Sequenzknoten
wird es uns ermöglichen,
mehrere Dinge fast zur gleichen Zeit zu erledigen , sequentiell, aber
für unsere Zwecke fast genau zur gleichen Zeit Jetzt geben wir an,
wo eine Instanz hinzugefügt werden wo eine Instanz hinzugefügt Lassen Sie uns das Ganze rückwärts
ziehen und transform, make transform eingeben transform, make transform Dadurch werden eine Position, eine Drehung und
ein Maßstab
angegeben Drehung und
ein Maßstab Was nun die Waage angeht, können
wir einfach unsere Flammenkugelgröße eingeben. Das wird
unsere Skala für jedes
dieser statischen Instanzgitter Ich doppelklicke auf dieses Kabel, um einen
Umleitungsknoten einzufügen. Lass das jetzt für unseren Standort etwas
sauberer aussehen. Ich ziehe zurück und tippe
Make Vector ein, weil eine Position
aus X-, Y- und Z-Daten besteht Eigentlich möchte ich
hier nur den Abstand in der Richtung,
der Z-Richtung,
angeben hier nur den Abstand in der Richtung,
der Z-Richtung, Ich werde das direkt
in mein Z stecken und es wird den Integer-Wert
, der
hier ausgegeben wird, in einen Float-Wert umwandeln , weil dieser Knoten
eine solche Float-Eingabe benötigt. Versuche das ein bisschen
aufzuräumen. Okay, das wird
der erste Teil unseres Drehbuchs hier sein. Okay, das bedeutet
Linksklick und Ziehen, Tippen auf einen Himmel. Ich werde sagen, füge
Instanzen von Flame Ball hinzu. Okay, das ist das Erste, was
wir tun werden. Ich werde versuchen, das einzurahmen. Wenn du
das Video hier pausieren willst, kannst
du sehen, was das bewirkt. Okay, also wenn ich eine Kopie davon
ziehen würde, würde
ich das sofort kompilieren
und speichern. Ich werde einfach
eine Kopie dieser Feuerleiste
in unser Level ziehen , okay? Und weißt du was, lass mich das auf die richtige Art machen. Ich werde das hier so einstellen, dass
es auf meiner Hauptebene ist. Stellen Sie sicher, dass mein
2-D-Schnappschuss aktiviert ist. Okay. So kannst du ungefähr sehen
, wie es dort aussieht. Im Detailbereich könnte
ich also eine
Anzahl von Flammenkugeln angeben. Und Sie können sehen, dass es sich nach oben
ausdehnen wird ,
was ziemlich toll ist. Wenn ich jetzt den Abstand zwischen den
Flammenkugeln einstelle, könnte
ich das auch einstellen. Sie werden sehen,
wie dynamisch wir das machen können.
Das ist ziemlich cool. Wir können sogar die Größe
der Flammenkugel ändern. Wenn ich wollte, könnte ich das so
ändern, dass es eins ist und 1.1 Es würde
es ein bisschen größer machen. Nun, diese Rotationsrate wird
noch nichts bewirken, aber lassen Sie mich einfach
alle auf die Standardwerte zurücksetzen. Sie werden hier feststellen, dass, wenn ich das
ändere,
alles schön und gut ist, aber wir
werden es mit der Kollision hier,
dieser Kollisionsbox, vergleichen. Und das
entspricht nicht meiner Anzahl an Flammenkugeln. Das wird unser
nächstes Drehbuch hier sein. Lass uns zurück in
unsere BP-Feuerbar springen. Was wir tun werden, ist
,
dieses Ergebnis hier in die Länge zu ziehen und einen Divide-Node
einzubauen. Teilen Sie, und wir werden das durch die Zahl zwei
teilen. Dies wird
für einen Teil unserer Berechnungen verwendet , um die Größe
unserer Box-Komponente hier anzupassen. Lassen Sie uns weitermachen und die Box genau hier einfügen, unsere Box-Komponente. Und dann ziehen wir das weg
und geben
die festgelegte Box-Ausdehnung ein. Im Wesentlichen
wollen wir hier
unsere Box-Extent-Parameter
direkt hier per Skript ändern . Okay, bring das rein. Wir werden diesen Typ
auch an festgelegter relativer Position
wegziehen . Die Box wird unser
Ziel für beide sein. Okay, was unsere Box-Position angeht, werde
ich von der neuen Position rückwärts
ziehen
und Make Vector eingeben Also nehme ich das Ergebnis dieser Mathematik hier und
setze es in unseren Wert Stellen wir sicher, dass wir diesen
Sequenzknoten
sofort einhängen, damit dieses
Teil des Skripts tatsächlich ausgelöst wird. Jetzt ist es nicht wirklich wichtig, ob wir das zuerst hier einstecken, aber wir wollen, dass beide ausgelöst werden. Stell sicher, dass es egal ist,
ob du
zuerst diesen oder jenen einhängst , okay. Dann wollen wir auch einen Make-Vektor
für unsere Box-Ausdehnung
angeben. Geben wir hier make vector ein. Wir
nehmen das Ergebnis derselben Mathematik,
das wir aus derselben Ausgabe
herausholen können. Wir setzen
das in unser Z und ändern unser
X auf einen hartbeschichteten Wert von zehn und ein Y von 50. Lassen Sie uns weitermachen und das noch einmal kompilieren
. Wenn wir jetzt
in unserem Level-Editor zurückschauen, werden
Sie feststellen, dass dieses kleine Skript unsere Kollisionsbox tatsächlich
erweitern wird. Sie können sich vorstellen, dass es quasi alle Bälle
dort dynamisch
durchschneidet .
Wenn ich also,
sagen wir, die Anzahl der Flammenkugeln hier erhöhen würde, können
Sie sehen, dass
sich auch diese Box anpasst. Auch hier werde
ich es dünn halten,
aber wenn ich
um diesen Winkel peitsche, können
Sie in
dieser Reiseansicht sehen,
dass ich es
etwas dicker mache , damit es
unseren Spieler nicht verfehlt , wenn es versucht, mit unserem Spieler zu
kollidieren. Okay, noch ein kleines
Drehbuch, das wir in unserem BP Fireball machen müssen Spring da wieder rein. Wir werden unsere Rotationsgeschwindigkeit
anpassen. Lassen Sie mich einfach mit der linken Maustaste auf all diese Knoten klicken und die
Strg-Taste gedrückt halten. Ich
ziehe einfach zur Seite,
drücke hier die C-Taste und ich nenne das „Box Extent Sizing“ wie. Also schieb das her. Okay, lassen Sie uns unsere
rotierende Bewegungskomponente einbauen. Das ziehen wir mit rein. Wir ziehen das
in die Länge, wir geben die festgelegte Rotationsrate ein. Im Wesentlichen
wollen wir mit dieser rotierenden
Bewegungskomponente unsere Rotationsrate manuell anpassen. Derzeit haben wir unsere
Rotationsratenvariable. Lassen Sie uns das per
Drag-and-Drop direkt in diesen Knotensatz ziehen. Das ist
genau derselbe Wert, aber da wir diese
Variableninstanz editierbar gemacht haben, können
wir dies pro
Instanz dieser Flammenleiste anpassen Das wird ziemlich toll sein, also werden wir das mit der linken
Maustaste markieren Und ich nenne das „Meine benutzerdefinierte Rotationsrate
zulassen In unserem endgültigen Skript wird
das ungefähr so aussehen. Ich werde versuchen,
alles so zu gestalten. In Ordnung, lass uns weitermachen
und das kompilieren und speichern. Lass uns hier ein paar
dieser Flammenstäbe reinbringen. Ich halte die Alt-Taste gedrückt, klicke mit der
linken Maustaste und ziehe
die zweite Taste hierher. Ich werde
die Anzahl der Flammen einfach auf zehn erhöhen. Ich werde die Rotationsrate ändern. Gehen wir bei minus 100. Es wird also in
die entgegengesetzte Richtung gehen
und es wird
ein bisschen schneller gehen. Wenn ich jetzt
reinspringen und spielen würde, können
Sie sehen, dass wir zwei Flammenbalken
haben sich in entgegengesetzte Richtungen drehen. Sie tun mir noch
nichts an, aber sie drehen sich
wie beabsichtigt. Sie drehen
sich unterschiedlich schnell, sie haben unterschiedliche
Längen usw. Wir haben also einen
ziemlich guten Start unseren Flame Bar-Blueprint Hier gibt es jetzt noch mehr zu tun da wir das tatsächlich auf unseren Spieler auswirken Aber Leute, das wird alles für diesen
machen. Wir sehen uns im nächsten.
22. Feuerleiste (Teil #2): In Ordnung, willkommen
zurück alle. Jetzt haben wir unseren
BP-Feuerbalken und er dreht sich, aber er schadet unseren Spielern nicht wirklich
. Teil zwei hier
wird sich also damit befassen. Wir werden ein
Skript erstellen, um unserem Spieler Schaden zuzufügen. Dafür
werden wir hier in
unseren Ordner für Dritte eintauchen . Die dritte Person entwirft unseren
BP, den Charakter aus der dritten Person. Machen wir weiter und doppelklicken auf diesen Typen, um ihn zu öffnen Als erstes
möchte ich mein Ich auswählen. Ich gehe in meinen
Viewport-Tab, damit wir unseren Charakter tatsächlich
sehen können Und ich werde das Material
unseres Charakters
hier im Detailbereich ändern ,
hier haben wir Materialien, wir haben ein Element
Null und Element eins Diese entsprechen
verschiedenen
Aspekten dieses Farbcodes. Die Bilder unseres Me
One sind für das Logo in der Mitte und
der Rest ist
im Grunde genommen für diese Rüstung, wenn man so will Ich werde hier
das Element Null durch Blau ersetzen. Ein geteiltes Blau,
so etwas ganz Blaues. Okay, was wir hier tun werden, ist, wenn unser
Charakter beschädigt wird, werden
wir dieses Material einfach
austauschen. Nur ein einfacher optischer Schalter
, der anzeigt, dass unser Spieler beschädigt wurde. Ordnung, als Nächstes gehen
wir zu unserem Event-Diagramm und fügen ein benutzerdefiniertes Event hinzu. Wir klicken mit der rechten Maustaste
in ein leeres Feld geben „Benutzerdefiniertes Ereignis hinzufügen“ ein. Und wir werden
dieses Ereignis Just Hit Points nennen. Und wenn dies im
Detailbereich ausgewählt ist, fügen
wir eine Eingabe hinzu, indem wir auf diese Plus-Schaltfläche klicken. Und wir werden
das Hit Points Modifier nennen. Und ich werde
das von einem Goldbarren
in eine Ganzzahl ändern , die eine ganze Zahl
ist Als Nächstes
erstellen wir eine Variable.
Im Detailbereich
hier drüben erstellen wir eine Variable Das wird einfach
als Trefferpunkte bezeichnet. Ich werde den
Typ hier auf eine Ganzzahl ändern, das wird eine ganze Zahl
sein. Ich werde hier
meinen Blueprint kompilieren und
den Standardwert für
den Anfang
auf 22 Trefferpunkte ändern für
den Anfang
auf 22 Trefferpunkte Ordnung, wir werden hier ein Drehbuch erstellen und
wir werden
einige Dinge tun, die auf der Anzahl
der Trefferpunkte basieren , die unser Charakter hat Also lass uns das
hier zur Seite verschieben. Wir werden
unsere
Kundenveranstaltung „Trefferpunkte anpassen“ in die Länge ziehen . Und wir werden einen
Sequenzknoten hinzufügen. Einen Sequenzknoten, weil
wir anhand dieses benutzerdefinierten Ereignisses,
wenn es irgendwann aufgerufen wird, einige
Dinge tun werden dieses benutzerdefinierten Ereignisses,
wenn es irgendwann aufgerufen wird, einige
Dinge . Ordnung, als Erstes ziehen
wir den Modifikator für die Trefferpunkte
und die Zahl
heraus , die
wir letztendlich übergeben durch diesen Aufruf
dieses benutzerdefinierten Ereignisses Wir werden das hinzufügen, wir werden
das zu unseren Trefferpunkten hinzufügen , die unser Spieler
derzeit haben wird Ziehen Sie das
einfach dorthin. Wir nehmen dann die daraus resultierende Mathematik und
wir werden das zusammenfassen. Wir werden diese Ganzzahl
zwischen einem Wert von Null und
einem Höchstwert von zwei
klammern zwischen einem Wert von Null und , um sicherzustellen, dass unsere Mathematik hier niemals diese Grenzen überschreitet Wir werden das dann
wieder in unsere Trefferpunkte einrechnen. Wir werden
unsere Trefferpunkte festlegen. Wenn ich meine
Trefferpunkte per Drag-and-Drop auf diesen Rückgabewert ziehe, wird ein Setter angezeigt Wir werden das auf diese Weise mit unserem
Null-Pin machen. Okay, dann
ziehen wir das in die Länge und fügen einen Gleichheits-Knoten hinzu Wir werden herausfinden, ob unsere
Trefferpunkte gleich Null sind. Und ich werde einen Zweig hinzufügen, wenn unsere Trefferpunkte gleich Null sind,
werden wir etwas tun. Und wenn es nicht gleich Null ist, werden
wir
etwas anderes tun. Wenn es gleich Null ist, dann wollen wir nur wahren
Zweig
abziehen und Destroy Actor eingeben , wobei das
Ziel wir selbst sind. Grundsätzlich gilt: Sobald du
null Trefferpunkte erreicht hast ,
zerstöre dich selbst Du bist fertig. Tschüss. Nun, wenn wir noch nicht Null Trefferpunkte
erreicht haben, wollen
wir unser,
unser Netz besteht aus Material, ändern . Dieses Material ist
mit diesem Netz verknüpft. Okay, beachten Sie, dass es
sich um Element Null handelt. Dieses blaue Element Null. Unsere Arme und Beine hier. Okay? Also ziehen
wir einen Verweis auf unser Mesh rein. Ziehen Sie das, was ich hier rausziehen
werde, per Drag-and-Drop. Und ich werde Setmaterial
eintippen. Wenn es falsch ist, dass
unsere Trefferpunkte es nicht sind, werden
wir Element
Null unseres Netzes ändern , Element Null. Wir werden
das Material ändern eine andere Farbe annehmen. Welche andere Farbe
wird nun davon abhängen, wie viele Hüftpunkte
wir letztendlich noch übrig haben. Wir werden dafür einen
ausgewählten Knoten verwenden,
und das ist einer der
coolsten Knoten im gesamten Blueprint-Scripting Ich ziehe das Ganze
rückwärts und tippe Select und So wird dieser
Knoten auf Grundlage
einer Indexnummer
funktionieren, in diesem Fall unserer
Anzahl von Hitpoints. Wir werden das gleich
hier einbauen. Wir werden
ein anderes Material wählen. Wenn das Null sein wird, wir unsere Option
ändern. Wenn das Null ist, wird es rot. Ich gebe Anum Red ein, um ein gerades rotes Material
zu finden Wenn unser Eingangsindex, die Anzahl der Trefferpunkte, eins ist, ändern
wir
diesen Wert in einen gemeinsamen grünen Wert In Option zwei fügen wir hier einen weiteren
Pin hinzu. Wenn unsere Anzahl an Hüftpunkten zwei
ist, wählt es aus, es wird das Material
ausgegeben, das hier mit Option zwei
verknüpft ist. Und das wird unser Anum Blue
sein. Je nachdem, was
dieser eingehende Index ist, geben
wir die
zugehörige Option 01 oder zwei Wenn der Index Null ist, wird
er dieses Anum
in dieses Material ausgeben, um unser Nachrichtenmaterial zu ändern Wenn es eins ist, wird
es dieses ausgeben. Wenn der Index zwei
ist, wird das zugehörige
Material ausgegeben. Ziemlich cool. Als Nächstes wollen wir uns mit einigen Soundeffekten
befassen,
die mit dem Erreichen
oder Verlieren eines Trefferpunkts
verbunden sind. Wir werden also hier zu unserem Modifikator für die
Trefferpunkte
zurückkehren Und wir werden das in die
Länge ziehen, ich werde
einen Knoten mit mehr als einbauen Wir werden sagen, wenn dieser Modifikator für
eingehende Trefferpunkte größer als Null
ist, wenn das der Fall ist, werden
wir einen weiteren Zweig hinzufügen Also werden wir dafür sorgen, dass unser einziger
Schmerz von der Sequenz abweicht, Schlangen genau hier unten Wenn das stimmt, spielen
wir ein Geräusch ab, ziehen es von
hier ab und geben Play Sound Two D. Der Sound , den wir dafür
spielen werden,
wird ein Power-Up-Sound sein. Klicken Sie auf das Drop-down-Menü, geben
Sie Power Up, Mario Power Up ein. Sie können
darauf klicken und die Lautstärke
anpassen, wenn Sie möchten. Ich werde das zusammenklappen. Okay. Wenn es falsch ist, dass
es nicht größer als Null ist, werden
wir das an
einen anderen Zweig anschließen , den
wir verwenden werden. Okay, kommen Sie gleich wieder hoch Wenn wir
einen Trefferpunkt erreicht haben, werden wir
im Grunde einen
Power-Up-Sound-Drag von hier abspielen , wieder
einmal, den
Hitpoints-Modifikator Und wir werden einen Knoten einsetzen,
der kleiner als ist. Wir werden sagen, wenn
es weniger als Null ist,
was bedeutet, dass wir getroffen wurden, ziehen
wir einen Trefferpunkt Im Grunde werden wir
das mit einem
Und-Knoten und einem Booleschen Wert verbinden Wir werden hier auch
eine weitere Bedingung überprüfen. Wenn beides zutrifft, nehmen
wir
unsere Trefferpunkte, ziehen sie rein,
wir holen sie, dann
ziehen wir sie raus und geben ungleich gleich,
ungleich Null Und dann werden wir das an unseren Zweigknoten anschließen
. Dann werden wir uns hier aus
unserem wahren Zweig herausholen und
ein weiteres Theaterstück einbauen. klingt nach D. Dafür ist er
da, Mario Warp.
Lass uns damit weitermachen Das Drehbuch hier unten
sagt im Wesentlichen, dass, wenn
wir einen Trefferpunkt verloren haben,
also weniger als Null,
wir einen Trefferpunkt verloren haben, wenn
unsere aktuelle Anzahl
an Trefferpunkten nicht Null ist,
was bedeutet, dass wir noch hier unten
sagt im Wesentlichen, dass, wenn
wir einen Trefferpunkt verloren haben,
also weniger als Null, wir einen Trefferpunkt verloren haben, wenn
unsere aktuelle Anzahl
an Trefferpunkten nicht Null ist,
was bedeutet, mindestens
einen Hüftpunkt übrig haben Wenn beides zutrifft, werden
wir diese Art
von negativem Soundeffekt spielen ,
diesen Mario Warp Sound diesen Mario Warp Lassen Sie mich einfach weitermachen
und gleich zur Sache kommen. Und so, wie ich
dazu komme, ist, dass ich genau dort auf diese
Lupe geklickt Es wird
nach diesem Asset suchen,
und hier ist es, damit Sie
sehen können, wie sich das anhört Okay, lassen Sie mich ein bisschen
zurückzoomen. Ich werde versuchen, das
alles zu erklären. Stellen Sie sicher, dass Sie sich
all diese Knoten sorgfältig angesehen haben. Stellen Sie sicher, dass Sie
die richtigen Werte in
den richtigen Feldern haben , es
ist so einfach, hier einen Fehler zu machen. Gehen Sie das also sorgfältig durch und
kompilieren wir
dann dieses Skript. Und speichere es. Machen wir
weiter und klicken Sie mit der linken Maustaste und ziehen Sie auch um
all diese Knoten. Ich werde auf die C-Taste tippen damit wir
dazu einen Kommentar hinzufügen können. Und ich werde das
mein Skript zum Ändern von Hit Points nennen. Und ich werde das noch einmal kompilieren und
speichern. Okay, das ist alles schön
und gut, aber noch einmal, dieses benutzerdefinierte Ereignis, es
muss gesagt werden, wann es losgehen soll. Lassen Sie uns also zu
unseren Fire-Bar-Blueprints springen , um ein bisschen mehr Arbeit zu
erledigen Jetzt kann ich darin navigieren
, indem ich zu
unserem Blueprints-Ordner gehe und wie folgt darauf
doppelklicke Sie können jedoch auch hier im Outliner
darauf zugreifen. Wenn du
es in deinem Level platziert hast, klicke auf Bearbeiten, BP, Feuerleiste, beides reicht Das öffnet es sofort. Jetzt wollen wir im
Variablenbereich
beginnen ein
paar weitere Variablen hinzufügen. Klicken Sie auf diese Plus-Schaltfläche. Die erste Option, die wir
hinzufügen werden, heißt Punkte, Spieleranpassungen. Und ihr könnt sehen, dass
bei jeder Änderung unser
Konstruktionsskript ausgelöst wird, weil es mit jeder Änderung ausgelöst
wird. Wir werden
daraus eine Ganzzahl machen. Wir werden sofort
eine weitere hinzufügen. Das wird als
Spielertreffgeschwindigkeit bezeichnet. Das wird ein Vektor sein. Dann wird der dritte, den
wir hinzufügen
werden, Hit Down heißen. Sie werden gleich sehen, wofür all diese verwendet werden. Ich werde das in einen Gleitkommawert ändern. Ich werde
das sofort kompilieren. Dann kann ich einige
Standardwerte dafür hinzufügen, unsere Trefferpunkt-Anpassung. Fangen wir mit dem
Typen an. Wir werden das auf einen negativen Wert setzen
. Im Grunde genommen verlieren Sie, wenn Sie getroffen werden, hier einen negativen
Trefferpunkt. Okay, für die
Treffergeschwindigkeit unseres Spielers . Lass uns
weitermachen und das auswählen. Ich werde diese
Instanz essbar machen, falls ich das
im Editor ändern
möchte. Und ich werde die
Treffergeschwindigkeit des Spielers auf 500
ändern . Im Grunde wird
der Spieler dadurch nur ein kleines
bisschen aufgedreht, wenn er getroffen wird. Das ist die Idee,
dass sie getroffen werden und der Spieler dadurch
nur ein bisschen auftaucht Dann dieser letzte,
unser Treffer, abkühlen, ich werde ihn
auf 1,0 ändern und das
werden im Wesentlichen
1,0 Sekunden sein Ordnung, bei
jeder Änderung haben
Sie wieder gesehen, wie mein
Bauskript abgefeuert wurde. Denn dann wird das
Bauskript zur Entwurfszeit gestartet. Wann immer Änderungen an Ihrem Blueprint
vorgenommen werden, springe
ich von hier weg
und gehe zu unserem Ereignisdiagramm weil wir wollen, dass hier das
Laufzeitskript ausgelöst wird Jetzt wollen wir,
dass etwas
passiert, wenn wir dieses Feld überlappen Erinnerst du dich, unsere Kiste ist
diese Kiste, genau hier ist sie, unsichtbare Kiste, die wir nicht
sehen können, während wir
unser Spiel mit uns spielen . rechten Maustaste auf
diese Komponente klicken, können
wir ein
Ereignis bei Begin Overlap hinzufügen. Das bringt uns
zurück zum Ereignisdiagramm. Wir wollen
überprüfen, ob der andere Schauspieler
unser Spielercharakter war. Von hier aus könntest du in die
dritte Person wechseln, BP in die dritte Person. Sie könnten diesen Knoten wie folgt hinzufügen und
dann
das Skript auf diese Weise fortsetzen. Ich werde jedoch
eine andere Methode wählen,
falls ich jemals ändern möchte
, welchen Charakter ich verwende. Ich werde das Gleichheitszeichen aus
dem anderen
Darstellertyp herausziehen und schauen, ob
das einfach unserem Charakterknoten „
Spieler holen“ entspricht Auf diese Weise ist es nicht
wirklich wichtig welchen Charakterentwurf ich
verwende , der meinen Spielercharakter
widerspiegelt Okay, was möchte ich
tun, wenn das gleich ist? Ich werde das
in einen Zweigknoten bringen. Wenn diese gleich sind,
stimmt es, dass sie gleich sind. Ich werde mich mal in Do hier
rausziehen. Was möchte ich einmal machen? Nun, ich möchte die Anzahl der
Trefferpunkte anpassen , die unser
Spieler haben wird. Jetzt habe ich in unserem Charakter aus der
dritten Person wieder einmal habe ich in unserem Charakter aus der
dritten Person wieder einmal dieses benutzerdefinierte Ereignis namens
Just Hit Points. Deshalb möchte ich dazu aufrufen
, dass das passiert. Jetzt habe ich
hier einfach einen Fehler gemacht , als ich versuchte, diesen Ansatz
zu verfolgen. Denn wenn ich das in die
Länge ziehen würde, Spielercharakter
nehmen und Trefferpunkte anpassen
eingeben würde, würde
ich es nicht finden
können, also
kann ich diese Methode tatsächlich anwenden und
auch auf dieses benutzerdefinierte Ereignis zur Anpassung der
Trefferpunkte zugreifen. In diesem Fall muss ich also aus
der Besetzung meines
anderen Schauspielers auf meinen BP-Charakter aus der dritten Person
ziehen , weil
mein
Charakter aus der dritten Person derjenige
ist, in dem dieses benutzerdefinierte
Trefferpunkte-Ereignis enthalten ist. Da hast du gesehen
, wie ich in
Echtzeit einen Fehler gemacht habe und
ihn in Echtzeit angepasst habe. Okay, das möchte ich tun. Sobald ich
dieses benutzerdefinierte Ereignis aufrufen möchte, doppelklicke
ich darauf um einen roten Root-Knoten einzufügen. Jetzt werde ich das um anpassen. Meine Hüftpunktanpassung
an den Spieler variabel. Ich werde das einstecken. Dann werde ich mich
noch einmal von hier
wegziehen und die Bewegung der
Charaktere eingeben. Nun, das ist eine Komponente, diese
Charakterbewegungskomponente, die meinem Charakter aus der dritten
Person
lebt, diese
Charakterbewegungskomponente. Jetzt gibt es hier einen Parameter für die Geschwindigkeit.
Ich werde danach suchen. Geschwindigkeit, Geschwindigkeit, das wird aktualisiert, wenn sich unser Charakter
im Level bewegt. Ich möchte die Geschwindigkeit der
Charaktere anpassen. Wenn ich hier rausziehe, kann
ich festgelegte Geschwindigkeit eingeben. Es wird einen
Setter-Knoten wie diesen einfügen. Der Betrag, um den ich diese Geschwindigkeit
anpassen möchte ,
wird von unserer
Variablen für die
Treffergeschwindigkeit des Spielers hier
bestimmt die
Treffergeschwindigkeit des Spielers hier Das kannst du so einstecken. Dann
ist das Letzte, was
ich hier tun möchte , dass ich einen Verzögerungsknoten
einbauen möchte. Ich werde mich von hier wegziehen. Bring einen Verzögerungsknoten rein. Ich verzögere das um unseren
Hit-Cool-Down-Betrag. Ich lege diesen Knoten auf oben
und diesen auf runter. Das hat derzeit also
einen Wert von 1 Sekunde. Ich werde das so machen
, dass wir das dann wieder zum
Zurücksetzen unseres Once-Nodes Also im Grunde wird es eine Pause von 1 Sekunde geben
zwischen dem Zeitpunkt,
an dem unser Feuerball dem
Spieler Schaden zufügen
kann, wenn er das nennt, Hüftpunkte
anpassen kann, um
unseren Spieler ein wenig nach oben zu bewegen, und wenn er es
wieder tun kann, sodass so etwas nicht alle Hundertstelsekunden
passiert In Ordnung, damit
werden wir mit der linken Maustaste klicken und ziehen. Ich tippe auf die C-Taste. Ich nenne das
Hit-by-Fire-Bar. Ich werde dieses
Skript kompilieren, ich werde es speichern. Und dann werde ich
reinspringen und spielen. Mal sehen, was passiert. In Ordnung, unser Charakter
ist derzeit blau. Sie haben zwei Trefferpunkte. Ich werde einmal getroffen,
ich habe meinen Charakter ein bisschen verbessert, sie haben sich
auf einen
Trefferpunkt geändert, der durch Grün repräsentiert wird. Ich werde
wieder getroffen, bam, tot. Das ist deine Ansicht, wenn du tot
bist. Mach dir keine Sorgen. Wir werden die
Todessequenz später ändern. Aber das deutet auf den Tod
eines Spielers hin. Wenn Sie nun
eine solche Fehlermeldung erhalten, ist das absolut sinnvoll. Denn was hier passiert, bedeutet, dass
es versucht,
auf unsere eingestellte Geschwindigkeit zuzugreifen,
aber es greift auf keine zu. Was hier passiert ist, damals in unserem Charakter aus der dritten Person,
ist, dass wir versucht haben, unsere Trefferpunkte
anzupassen. Und denk dran, das wird von unserer Feuerbar aus
angerufen. Wir haben versucht, uns an die
Trefferpunkte anzupassen , und das
hat uns auf Null gebracht. Bis wir also
versuchen, die Geschwindigkeit anzupassen, hat sich
unser Charakter durch dieses kleine
Drehbuch hier oben
bereits
verabschiedet . Also ist unser Charakter zerstört. Es versucht hierher
zu kommen und sagt, hey, passe die Geschwindigkeit an, das geht nicht. Also, wie könntest du
das reparieren? Nun, du könntest versuchen,
die Bestellung hier auszutauschen Also lass uns versuchen,
das hier schnell zu machen. Wir werden zuerst
den Player aufrufen. Ich werde versuchen,
diese Kabel ein
bisschen zu entwirren , sodass wir eine Einrichtung haben, die ein
bisschen mehr so aussieht bisschen mehr so Ich kann das tatsächlich löschen, das kann ich einfach so
einstecken Ordnung, wenn ich noch einmal kompiliere, und lass uns das versuchen und
sehen, ob wir diesen Fehler bekommen. Beim zweiten Treffer sind wir tot. Ich drücke Escape und wir bekommen diesen
Fehler nicht mehr, weil
wir jetzt den Spieler töten,
nachdem wir die Geschwindigkeit angepasst haben. In Ordnung, Leute,
da habt ihr es? Das wird für diesen Typ C
abschneiden wenn der nächste
23. HUD-Layout: Willkommen. Jetzt, wo
wir
in unserem Projekt an einem Punkt angelangt sind, an dem wir einige Dinge sammeln müssen, wie Münzen, haben wir einige Leben die wir verlieren oder gewinnen könnten. Fügen wir unserem
Spiel ein Hud hinzu, ein Heads-up-Display. Falls du also nicht weißt,
was ein Hud ist, es sind diese Informationen,
die auf
dem Bildschirm angezeigt werden , während
du spielst, und obwohl wir das nicht genau erstellen
werden, wird
es
ungefähr so sein Und du wirst das nach deinen
Wünschen verfeinern können. Aber nur um Ihnen
einen kleinen Einblick in das zu was wir
im Wesentlichen kreieren werden In Ordnung, zurück hier in
Unreal, lass uns anfangen. Wir werden
einen brandneuen Ordner auf unserer Plattform
oder in unserem Ordner Klicken wir also mit der rechten Maustaste auf
„Neuen Ordner hinzufügen“. Nennen wir das in
unserem UI-Ordner.
Wir werden
ein brandneues Asset erstellen, indem wir mit rechten Maustaste und unter
der Option Benutzeroberfläche klicken. In diesem Flyout-Menü wählen wir einen Widget-Blueprint Widget-Blueprints sind nun
Elemente, die du
erstellen möchtest, um Spiel-Hud- oder Menübildschirme zu erstellen Du hast
hier nur eine
übergeordnete Klassenoption , die sich im Bereich „
Allgemein“ befindet Wähle
also diese Option
unter Benutzer-Widget aus, wir werden
aufgefordert, einen Namen anzugeben Ich mache das ein
bisschen größer. Die Steuerung gedrückt halten
und nach oben scrollen. Ich nenne
das WBP für Widget,
Blueprint, Underscore, HUD Und dann doppelklicken wir
darauf, um es zu öffnen. Was Sie jetzt in diesem leeren Bereich vor
sich sehen, werde
ich einfach
die rechte Maustaste gedrückt halten und das Ganze
quasi herumschwenken. Das ist unsere Designer-Ansicht. Das
werden wir tatsächlich sehen
und verwenden, um
unser Hud-Layout zu erstellen Derzeit haben wir hier keine Widgets
auf
unserer Designer-Registerkarte Also lass uns weitermachen
und das ändern. unser erstes Widget
zum Palettenfenster hinzufügen, finden
wir eine ganze
Liste von Widgets. Und Sie können jede
dieser Kategorien erweitern, um eine ganze Reihe von Extras zu finden. Jetzt habe ich einen ganz
eigenen Kurs , der sich
eingehend mit all dem befasst. Ich werde nicht zu detailliert auf all das eingehen, ich werde einfach tun, was
wir tun müssen, und weitermachen. Aber ein Charakter-UI-Kurs in Unreal ist der
Name dieses Kurses Wenn Sie näher darauf
eingehen möchten, wie Sie lernen möchten,
wie man all diese Dinge
benutzt Das erste Widget, das
ich hier zu
unserem Designer-Tab hinzufügen werde ,
heißt Canvas-Panel. Jetzt ein Canvas-Panel, und ich kann eines davon hinzufügen, indem ich es einfach
per
Drag-and-Drop in
unsere Designer-Ansicht ziehe Hier handelt es sich im Wesentlichen um eine
Art Sattelbrett. Wenn Sie also
mit der Tackboard vertraut sind, können
Sie Dinge daran anheften Und so wird das im Wesentlichen
funktionieren. Wir werden pinnen,
wir werden
weitere Widgets hinzufügen , um das
ganz oben auf unserer Tafel zu platzieren Derzeit ist unsere Skala
hier 16 mal neun, was wir unten links sehen
können Aber wenn Sie Ihr Gerät
ändern möchten, Ihre Bildschirmgröße genau hier, so machen Sie
das für Telefone, Tablets, Laptops usw. Ich werde das
unverändert lassen, weil mir das Seitenverhältnis von 16 mal
neun
gefällt Jetzt werden Sie feststellen
, dass
dieses Canvas-Bedienfeld, nachdem ich es
zu unserer Entwurfsansicht hinzugefügt habe, es auch zu unserer
Hierarchie hinzugefügt wurde. Unser Canvas-Panel wird hier unsere Basiskomponente
sein. Wir werden Dinge
hinzufügen. Lassen Sie uns
unser Canvas-Panel verlassen und hier unser zweites Widget
hinzufügen. Und das wird ein Bild genau hier unter
dem gemeinsamen Bereich sein. Ich ziehe einfach
ein Bild
per Drag & Drop in unsere Designer-Ansicht. Ich werde es hier
irgendwo oben links platzieren. Dieses kleine
Blumensymbol, wenn du so willst. Dies wird den
Ankerpunkt für dieses Widget anzeigen. Es wird also versuchen,
dieses Bild-Widget im oberen linken Teil
des Bildschirms zu verankern . Jetzt werde ich weitermachen
und das sofort umbenennen. Und das kann ich tun, indem ich
hier auswähle und zwei drücke. Alternativ können Sie dieses Widget ,
wenn Sie es im Detailbereich
ausgewählt haben,
ganz oben ändern. Nenn das. Das wird ein kleines Bild von Mario
sein. Und nur ein bisschen, lassen Sie mich hier mein zweites Widget
hinzufügen. Mein zweites Widget wird
ein Text-Widget sein. Kein Rich-Text, sondern einfach. Ich werde
es genau hier platzieren. Ich werde das noch einmal
umbenennen, ich werde mein
Charakter-X-Widget umbenennen. Das wird einfach ein Symbol vom Typ
Multiplikation sein, deshalb
nenne ich es Zeichen X. Dann mache ich weiter und ein weiteres Text-Widget hinzu Und ich werde es genau hier ziehen und
ablegen. Ich bin nicht zu wählerisch,
was die Platzierung angeht, weil ich das hier
gleich ein bisschen
anpassen werde das hier
gleich ein bisschen
anpassen Und das nenne ich Clicks Two auf
dieses, mein Charakter-Live-Widget Jetzt wähle ich hier mein erstes
Charakterbild, das Widget, aus. Und ich gehe
in das Detailfenster und ändere etwas. Das erste, was ich ändern
werde, ist die genaue Position. Ich werde das vergrößern, indem ich die Strg-Taste
gedrückt halte und
mein Scrollrad benutze. Rechte Maustaste
zum Schwenken. Drüben im Detailbereich habe
ich meinen Ankerpunkt
auf den oberen linken Anker gesetzt. Das ist es standardmäßig. Diese Position x
und y werden also
relativ zu diesem Ankerpunkt sein . Die Position x, die ich hier
setzen werde, wird 24 sein. Und die Position y
wird ebenfalls 24 sein. Die positive X-Richtung
wird nach rechts und die positive
Y-Richtung nach unten
verlaufen. Okay, als Nächstes werde
ich ein Bild
im Bereich für das Erscheinungsbild des
Pinselbilds einrichten . Ich kann ein Bild auswählen,
indem ich auf dieses Drop-down-Menü klicke. Und ich habe Underscore Super. Ich möchte das wählen,
Super Mario Jumping. Jetzt hättest du
diese Textur ganz am
Anfang des Kerns importieren sollen. Also da hole
ich mir das, füge natürlich
jedes Bild ein, das du willst. Wenn du aber zu Hause
mitspielst, werde
ich die
Größe dieses Bildes von 32,
32 auf 80, 80 erhöhen . Das wird
es ein bisschen vergrößern. Jetzt hast du nicht wirklich gesehen, dass sich hier
etwas geändert hat. Wenn ich
diese Größe jedoch auf Inhalt ändere, wird
der Inhalt tatsächlich vergrößert , um ihn an diese Bildgröße anzupassen
. Hier ist es noch ein bisschen weit hergeholt, Sie könnten
das nach Ihren Wünschen fein abstimmen Aber ich sage erstmal
gut genug. Als Nächstes
werde ich für meine
Charakter-X-Komponente hier, dieses Text-Widget, ein paar
Dinge daran ändern. Zunächst werde
ich
mit der X-Position beginnen und
diese auf eins zu zwei ändern, in der Y-Position auf 60. Ich werde
den Text von einem
Textblock in ein kleines X ändern . Das wird als
mein Multiplikationssymbol dienen Drücken Sie die Eingabetaste,
um die Änderung zu sehen. Und dann komme ich
zum Abschnitt mit der Darstellungsschrift, weil ich die Schriftfamilie ändern
möchte. Ich will Roboto nicht hier haben. Stattdessen will ich diese
neue Supermarrio-Schrift. Und das war eine Schrift, die wir zu Beginn des Kurses
importiert haben Beginn des Kurses
importiert Dort kannst du das finden. Ich habe zu
Beginn des Kurses einige andere Schriftarten
in diesen Import aufgenommen . Sie können
das also ändern. Sie können auch einige dieser
anderen Schrifttypen
erkunden. Aber ich mag diese neue Super
Mario-Schrift ziemlich gut. Okay, ich werde hier auch die Größe
ändern. Ich werde es auf 30 ändern und dann werde ich eine Gliederung
hinzufügen. Lassen Sie mich das vergrößern, weil die Gliederung
etwas schwer zu erkennen ist. Aber die Kontureinstellungen, ich werde sie auf zwei ändern
, und ich kann einen kleinen schwarzen Umriss um
ihn herum erkennen, der sehr gut aussieht. Und ich werde auch auf dieses Feld „
Größe zum Inhalt“ klicken. Und was das bewirken wird
, es wird diese Art von
Selektor hier ändern,
um ihn
gut zu umschließen, etwa so Ordnung, als Nächstes wähle ich Komponente „Das Leben
meines Charakters Ich könnte sie
hier in meiner Hierarchie auswählen, oder ich kann sie hier
in meiner Entwurfsprüfung auswählen. In jedem Fall wählen wir
es für die X-Position aus. Dafür ändere ich
den Wert
auf 130 und die Y-Position auf 32. Was ich dann
tun werde, ist
die Schriftfamilie auf
das neue Super Mario umzustellen . Ich werde die Größe
auf 50 ändern, viel größer. Das wird es hier
runterfallen lassen. Ich werde dem auch eine
Gliederung hinzufügen. Bei der Umrissgröße wird dieser Wert auf zwei
gesetzt. Anstatt hier Textblock zu
sagen, werde
ich vorerst auf den
Wert 99 umstellen. Da dies unsere Anzahl an Leben
darstellen soll, ist
dies nur ein
Platzhalterwert Irgendwann werden wir
diesen VS-Code so binden , dass er tatsächlich darstellt, wie viele Leben unser
Charakter haben wird Jetzt
möchte ich hier noch einen kleinen
Schlagschatten
hinzufügen. Ich kann dem einen Schlagschatten
hinzufügen, indem ich hier
unter meine Schattenfarbeneinstellung im
Abschnitt Aussehen gehe. Ich werde hier auf diese
Farbleiste klicken. Und ich werde den R-Wert,
das ist der rote Wert, auf eins
ändern . Der Wert, das ist auch der
Alpha-Wert auf eins. Der Wert, der Alpha-Wert geht zwischen 1 und 00, bedeutet, dass Sie ihn nicht sehen können Eins bedeutet, dass es vollständig undurchsichtig
ist. Irgendwo dazwischen,
etwa 0,5, würde bedeuten, dass man es
teilweise durchschauen kann Du könntest
damit herumspielen, aber ich mag diese rötliche Farbe Derzeit sehen wir hier nicht wirklich
etwas, weil wir unseren
Schlagschatten-Offset anpassen müssen unseren
Schlagschatten-Offset anpassen Also werde ich das
auf vier im X einstellen, dann auf fünf im Y, und jetzt können Sie dort ein
bisschen einen Schlagschatten sehen. Das ist eine nette Kleinigkeit Wir können Kontur auf
Schlagschatten anwenden, indem wir dieses
Kästchen ankreuzen. Also überprüfe das. Dabei haben wir auch nur
einen schwarzen Umriss um
diesen Schatten herum hinzugefügt . Und um
diesen Selektor hier
um unseren Wert herum zu umschließen , werde
ich
diese Größe einfach auf den Inhalt überprüfen Also, hoppla, da haben wir's. Es wird es an
die Größe unserer Schrift anpassen. Und das sieht ziemlich gut aus. Ordnung, als nächstes nehme
ich eine
kleine Abkürzung und wähle alle
drei Widgets aus. Also werde ich die Strg-Taste
gedrückt halten und auswählen. Ich habe hier
alle drei ausgewählt. Ich werde sie mit der rechten
Maustaste anklicken. Ich werde sie alle kopieren. Dann
wähle ich mein Leinwandfenster und klicke dann mit der rechten Maustaste. Und dann werde
ich sie einmal einfügen. Und dann wähle ich wieder
mein Leinwand-Panel und
füge sie zweimal ein. Im Grunde habe ich Bildtext. Eigentlich möchte ich
diese nachbestellen. Ich werde mir
hier das Leben nehmen und ich werde das fallen lassen. Wenn Sie es ziehen und ablegen, können
Sie es nach unten verschieben, um
es neu anzuordnen Ich werde mir vorerst keine Gedanken
darüber machen, ob ich
damit perfekt umgehen Sie sind alle durcheinander. Aber wir werden sie hier ein bisschen neu
positionieren, nur um
alles, was ich
hier gemacht habe, neu zu ordnen Wir haben den Kerl, lass mich
das einfach da hinziehen. Und ich habe noch eins davon. Ich werde das
so nach unten ziehen. Okay, wir haben also
zwei Textbild zwei Textbild zwei Text. Okay, lassen Sie uns weitermachen und
anfangen, diese umzubenennen. Und ich werde mit
diesem Bild hier beginnen. Es befindet sich derzeit an der
Seite des Huds,
weil dieses, unser
Leinwand-Panel, den Bildschirm darstellt Derzeit befindet es sich
an der Seite. Ich werde es umbenennen
, indem ich zwei
draufdrücke , anstatt in das
Charakterbild. Dies wird ein Münzbild
für diese spezielle Komponente sein . Ich werde das oben links verankern, das ist in
Ordnung. Aber ich werde die
Position x auf
52 und die Position y auf 120 ändern . Im Wesentlichen
wird das hier
etwas unter Mario liegen. Ich werde das
Bild von unserem
springenden Mario zur Unterstrich-Münze ändern springenden Mario zur Unterstrich-Münze ändern Dafür werde ich die Retro-Münze verwenden , denn warum
nicht? So etwas in der Art. Ich werde
die Größe hier so anpassen, dass sie etwa 50,50 beträgt Ich sage, das ist ziemlich gut. Als Nächstes, unten,
anstelle von Charakter X, nur um unsere
Namen klarzustellen, werde
ich hier zwei anschlagen. Und das wird Münze X heißen. Und um die
Position zu ändern, werde ich mit
einer X-Position von
12 und einer Y-Position von 124 gehen . Weil ich die restlichen Parameter alle
erstellt habe und die Schriftart,
den Umriss usw. eingestellt habe,
bevor ich es dupliziert habe, es auch darauf
übertragen Deshalb habe ich all diese Einstellungen vorgenommen,
bevor ich es dupliziert habe, denn wenn ich es dupliziere, kommen all diese Einstellungen Ziemlich nett, richtig. Als Nächstes wähle ich das Live-Bild
unseres Charakters aus,
dieses duplizierte Ich werde das
anstelle von Charakter Lives umbenennen, ich nenne
das Coins Value Das wird die Anzahl der
Münzen
sein, die wir in der Hand haben. Ich werde die
Position x auf 130 und
die Position Y auf 100 ändern . all diesen Einstellungen
werde ich zufrieden sein, und das werden wir sicher belassen. Statt 99
ändern wir es auf Null , weil wir standardmäßig
mit Null Münzen beginnen werden . Ordnung, unser nächstes Bild hier, lassen Sie uns das von
Charakterbild zwei umbenennen Timer-Bild auf zwei
klicken. Mit diesem Typen ausgewählt. Ich werde
die Ankerpunkte ändern. Ich werde hier nur ein bisschen
rauszoomen. Ich werde den
Anker im Detailbereich so ändern
, dass er in der oberen
Mitte ist, also so. Und dann
ändere ich die Position x auf Null und die Position Y. Ich werde das
nur ein bisschen festlegen, ich weiß nicht, lass uns
24 gehen. So etwas in der Art. Und jetzt können Sie sehen, weil
die Position x Null ist, dass
sie im Wesentlichen
mit der oberen Ecke dort übereinstimmt. Ich werde
die Ausrichtung hier auf
0,5 im X ändern .
Dadurch wird der Unterschied
, wo sich das Widget relativ
zu diesem Ankerpunkt befinden
sollte, im Wesentlichen aufgeteilt . Offensichtlich will ich
dieses Bild von Mario nicht haben. Also werde ich das in einen
Underscore-Timer ändern. Auch dies ist
eine Textur, die wir zu
Beginn des Kurses
importiert haben zu
Beginn des Kurses
importiert Es ist eine Art Ding, das wie eine Uhr
aussieht. Und ich ändere die
Bildgröße hier auf 100,100, also nennen wir das ziemlich gut Als Nächstes wähle ich meinen
Charakter X aus und zoome heraus. Derzeit ist es weit drüben. Ich werde das so ändern
, weißt du was? Ich werde diesen sogar
löschen. Der Grund, warum ich diesen
löschen werde, ist dass ich
diese Parameter,
diese Schattierung auch für meinen
Zeitwert haben möchte diese Schattierung auch für meinen
Zeitwert Also nehme ich das und ich werde das duplizieren Ich kann einfach mit der rechten Maustaste
darauf klicken und es duplizieren. Control D macht
dasselbe. Jetzt habe ich zwei davon.
Ich werde diesen hier oben auswählen
und ihn sofort umbenennen. Wenn Sie zwei drücken,
wird das als Text bezeichnet. Ich nenne das einfach meinen
Timer-Wert, so etwas in der Art. Ich werde
die Position ändern, um einen Anker in der
oberen Mitte genau da oben zu haben. Nun, da ich das habe, werde
ich auch die
X-Position auf Null ändern. Setze das wieder auf Null, die Ausrichtung im X, ich teile
die Differenz auf
0,5, sodass sie in der Y-Position
zentriert wird. Ich kann hier reinklicken und das ein bisschen nach oben oder
unten ziehen. Ich werde
es einfach dort wieder in Ordnung bringen. Ich werde, ich werde einen festen Wert
von etwa 60 festlegen ,
vielleicht so etwas. Wir werden 80
etwas tiefer gehen. Da haben wir es. Wir können das nach unseren Wünschen
fein abstimmen Okay, zu guter Letzt haben
wir diesen letzten Text, haben
wir diesen letzten Text dem es derzeit
heißt: Character Lives Wir werden das ändern,
um einfach Punkte zu sagen, drücken F zwei, drücken F zwei,
ändern es in Punkte, ich werde das oben rechts verankern. Den Anker auf diese
Weise nach oben rechts ändern. Ich muss jetzt
die relative Position ändern. Die relative Exposition
wird minus 240 sein. Sie können also hier drüben sehen, das ist unser Ankerpunkt Und das ist der Offset
relativ zu diesem Ankerpunkt, minus 240 für die Position. Warum? Ich setze das auf 32. Ich lege es ein bisschen runter. Dann ändere ich hier
einfach den Text von 99999999, das entspricht
also unserer Punktzahl
. Also noch einmal, das
wird unser HUD sein. Mach weiter und speichere das. Feine Melodie, das gefällt dir. Sie müssen nicht genau
dieses Layout haben, aber das ist das Layout
, für das ich mich entscheiden werde In Ordnung, als Nächstes haben wir unser
Hud-Layout erstellt. Wir müssen das tatsächlich auf dem Bildschirm anzeigen
. Das ist es also, was
als Nächstes kommen wird. Wir sehen uns dort.
24. HUD-Display: Willkommen zurück alle. In
diesem Video werden wir unsere hübsch aussehende Kapuze direkt
hier zu unserem Viewport hinzufügen Kommen wir also gleich wieder zurück in unserem
Haupteditor.
Wir werden
unseren BP-Player-Controller-Blueprint verwenden , den wir
erstellt haben, als wir an unserer
Sammelmünze gearbeitet haben an unserer
Sammelmünze gearbeitet Wir werden ihn verwenden
, um
unser Widget aufzurufen, das erstellt
und zu unserem Viewport hinzugefügt werden soll Doppelklicken wir darauf, um
es zu öffnen. Falls du den
Pfad vergessen hast, wo
das war, kannst du ihn dort finden. Der Grund, warum
wir
diesen Plan verwenden werden, ist ein
Spieler-Controller-Blueprint
bestehen bleibt, unabhängig davon, ob euer
Charakter am Leben ist Das ist also ein großartiger Ort, um diese Art von
Code unterzubringen. Wie Sie sich erinnern, als wir früher an unserer Münze
gearbeitet haben, rechnen
wir hier, um unsere Münzen zusammenzufügen.
Hier ganz oben. Lass uns, du solltest hier oben eine
Veranstaltung beginnen lassen. Wenn du es
versehentlich gelöscht hast, wie ich
es getan habe, kannst
du es standardmäßig wiederherstellen, indem du mit der rechten Maustaste klickst und Begin, Play eingibst. Es gibt Event, Begin, Play. Dieses Event wird ausgelöst ,
wenn du das Spiel startest Wir
wollen
es einfach herausziehen und ein Widget erstellen. Und das Widget, das wir erstellen
möchten, ist unser BP-Hud, das wir gerade erstellt Jetzt reicht es nicht mehr aus
, es einfach zu erstellen. Wir müssen diesen
Rückgabewert hier nehmen, herausziehen und zum Viewport
hinzufügen sagen Und das ist eine Funktion
, die tatsächlich
unser HUD zu unserem Bildschirm hinzufügen wird unser HUD zu unserem Bildschirm Ich tippe auf die C-Taste,
nachdem ich mit der linken Maustaste geklickt habe,
und ziehe damit herum Und ich sage Hud-Viewport, werde ich
die Kommentarfarbe
hier
so ändern , dass sie schwarz ist Und dann kompiliere
und speichere ich, nur um
sicherzugehen , dass mein Code hier einsatzbereit ist. Und
es sieht so aus, als ob es so ist. Wenn ich jetzt ins Spiel komme, kannst
du sehen, dass unser HUD in unserem Viewport
angezeigt wird Jetzt funktioniert hier nichts mehr,
als wenn ich eine Münze sammle, wird sich meine Münzsumme nicht
erhöhen Wenn ich ein Leben verlieren würde, würde sich auch hier
nichts
ändern Aber das wird kommen. Jetzt, wo wir
unseren Hud auf dem Bildschirm haben, können
wir
unsere verschiedenen Werte
hier tatsächlich verknüpfen, zwei Variablen Damit es tatsächlich wiedergeben kann,
wie viele Leben wir haben, wie viele Münzen wir
haben usw. Und damit
werden wir
im nächsten Video beginnen .
Wir sehen uns dort.
25. HUD-Bindings: Ordnung, jetzt, wo
unser HUD in unserem Spiel auftaucht, ist
es an der Zeit, dass wir hier unser HUD in unserem Spiel auftaucht, ist
es an der Zeit, einige Variablen an diese
verschiedenen Text-Widgets binden einige Variablen an diese
verschiedenen Text-Widgets Denn im Moment
sind das alles Platzhalterwerte. Sie
aktualisieren nicht wirklich, sie ändern sich nicht, sie machen nichts dergleichen Also lass uns weitermachen und das beheben. Und dafür werden wir
ein bisschen in unserem BP
Player-Controller
arbeiten. Wenn Sie also vergessen haben,
wo das ist, das ist der Pfad, doppelklicken Sie
darauf, um ihn zu öffnen. Derzeit haben wir hier zwei
Variablen, eine Coins-Variable und eine
Lives-Variable , um ihre jeweiligen
Daten, Münzen und Leben, zu speichern. Wir werden hier noch
ein paar mehr erstellen,
also
klicke ich hier einfach mit der rechten Maustaste auf unsere Leben. Und ich werde das duplizieren. Und ich werde
das duplizieren, weil ich möchte nächsten
beiden Variablen
auch ganze Zahlen sind Bei diesem
geht es einfach um Punkte. Wenn ich die Taste D
drücke die Variable
bereits markiert ist
, wird sie ebenfalls dupliziert. Dieser wird Level Time heißen. Wenn ich jetzt
meinen Blueprint hier kompiliere, kann
ich im
Detailbereich Standardwerte
für all diese Werte festlegen im
Detailbereich Standardwerte
für all diese Für die Levelzeit setze ich
diesen Wert auf 500 für Punkte, ich lasse den
Wert auf Null für Leben Lassen Sie mich
es tatsächlich bei drei ändern , lassen wir es
bei drei belassen. Und Münzen, den werden wir auch bei Null haben
. Okay, das ist sehr wichtig Sie müssen diesen Plan kompilieren damit dieser nächste Schritt funktioniert Also kompilieren und speichern Sie Ihren
BP-Player-Controller hier. Unser nächster Schritt ist, dass
wir
in unseren BP-Hütten arbeiten werden in unseren BP-Hütten Falls du vergessen hast, wo das ist, ist es in deinem Platform-I-Ordner In Ordnung, wenn
wir hier reingehen, springen wir jetzt von unserem Designer-Tab
hier oben rechts zum Grafik-Tab. Jetzt können Sie auf der Registerkarte „Grafik“
einige Skripte zu Ihrem
Widget-Blueprint hinzufügen . Wir werden hier etwas
außerhalb von Event Construct
machen hier etwas
außerhalb von Event Construct Das ist standardmäßig schon da. Ich werde das einfach
überholen. Ich werde mit der linken Maustaste klicken und
diese beiden Typen ziehen und löschen. Sie können sich vorstellen, dass
Event Construct
das Event Begin Play
Ihres Widget-Blueprints Und was wir hier machen werden
,
ist ausgehend vom Event Construct, wir werden einen
Verweis auf unseren Blueprint erstellen Da unser
Player-Controller-Blueprint diese Variablen
enthält, möchten
wir in der Lage sein, auf
diese Variablendaten innerhalb
unseres Player-Controllers zuzugreifen und sie auf
unsere verschiedenen Text-Widgets
hier in unserer Ud zu verweisen unsere verschiedenen Text-Widgets
hier in unserer Zuerst müssen wir einen Verweis
auf unseren Player-Controller
erstellen .
Wie machen wir das? Nun, wenn wir hier mit der rechten Maustaste
auf eine leere Stelle klicken, können
wir Get
Player Controller eingeben. Und wenn wir das in die Länge ziehen, können
wir einen Player-Controller mit zwei
BPS spielen. Was
wir hier also im Wesentlichen überprüfen, ist, hey, ist das der
Player-Controller? Ist das der, den wir tatsächlich in unserem Projekt
verwenden? Und ja, ist die
, die wir für die Verwendung
in unseren
Projekteinstellungen eingerichtet haben . Nur um das schnell zu überprüfen Karten und Modi fallen unter die Controller-Klasse des
Spielers. Das ist der Player-Controller
, den unser Projekt hier in unserem W
BP-Unterstrich
verwendet. Im Grunde stellen
wir hier die
Frage, ob das Spiel beginnen soll Ist das der
Player-Controller, den wir verwenden? Und wenn ja,
möchten wir einen Verweis darauf erstellen. Das können wir jetzt tun, indem rechten Maustaste auf
diesen Blueprint klicken und ihn zu einer Variablen
heraufstufen Dabei haben wir im Bereich
Mein Blueprint
eine Variable hinzugefügt im Bereich
Mein Blueprint
eine Variable Ich werde das einfach auf Player Controller
abkürzen . So wie es ist. Dann kann ich mit der linken Maustaste klicken und das
ganze
Skript verschieben . Drücken Sie die C-Taste. Ich nenne das meine eigene
Referenz zu Player Controller. Ich setze
hier auch die Kometenfarbe auf Schwarz. Warum ist das jetzt wichtig? Wir
versuchen erneut,
diese variablen Daten aus
unserem BP-Player-Controller
hier in unserem BP Hud zu extrahieren diese variablen Daten aus unserem BP-Player-Controller
hier in unserem BP Hud Wir werden von
hier aus in unsere Designer-Ansicht springen. Jetzt kann ich diese
verschiedenen Text-Widgets hier auswählen, angefangen mit unserem
Leben hier, dem Leben der Charaktere, dem Typ. Dann drüben im
Detailbereich, wo Text 99 angezeigt wird, können
wir das an eine Variable binden. Wenn ich jetzt darauf klicke, kann
ich jetzt meinen
Player-Controller finden. Und jetzt kann ich auf
die richtige Variable verweisen , die sich in unserem
Player-Controller befindet. Dafür
möchte ich Leben wählen. Ihr werdet
es hier nicht aktualisiert sehen,
aber wenn wir unser Spiel spielen, werdet ihr sehen, dass unsere Leben innerhalb unseres
Spieler-Controllers variabel sind. Das spiegelt sich hier wider. Lassen Sie uns das jetzt
mit unseren verschiedenen Text-Widgets für unsere Münzen machen. Wählen Sie
hier im Textbereich den Wert Ihrer Münzen aus. Lassen Sie uns dies an unsere
Player-Controller-Coins-Variable binden. Genau hier oben wird
unser Zeitwert sein , wenn wir das auswählen. Wir werden das an die Zeit auf
Spieler-Controller-Ebene binden. Und zu guter Letzt habe ich hier oben
rechts meine Punkte. Kommen wir zum
Detailbereich und wir werden das an unsere
Player-Controller-Punkte
binden. In Ordnung, stellen Sie sicher, dass Sie das
kompilieren und speichern. Jetzt spiele ich unser
Spiel. Und los geht's. Schauen Sie jetzt oben links nach oben, wir haben jetzt drei
Leben, null Münzen, 500 für unsere Zeit, und unser Punktestand ist
derzeit ebenfalls Null. Jetzt werde ich weitermachen
und ein paar Münzen sammeln. Aber bevor ich das mache, möchte
ich darauf hinweisen dass
wir in unserem
BP-Player-Controller dieses Skript haben, mit
dem wir die Anzahl der
Münzen, die wir haben, erhöhen werden Anzahl der
Münzen, die wir haben, erhöhen Wir können das
jetzt löschen, weil das alles Platzhalter war, um
anzuzeigen, wie viele Münzen wir auf dem Bildschirm
hatten,
bevor wir unsere Kapuze hatten Sie können also
weitermachen und es löschen, aber mit diesem kleinen Skript werden
wir die Anzahl
der Münzen erhöhen Und wenn wir mehr
als 100 Münzen
haben, erhöhen wir die Anzahl
der Leben Diese sollten also aktualisiert werden, wenn
wir einige Münzen sammeln. Denken Sie an dieses benutzerdefinierte
Ereignis in unserem BP-Player-Controller
zum Hinzufügen von Münzen. Dieses Ereignis wird
innerhalb unserer BP-Pick-Up-Münze aufgerufen wenn wir unsere Sphäre
in unserem Münzskript überlappen. Wir werden
dieses Ereignis als benutzerdefiniertes Ereignis für Werbemünzen bezeichnen dieses Ereignis als benutzerdefiniertes Ereignis für Werbemünzen , das in
unseren Player-Controller gehört, wodurch unsere Münzen erhöht Und wenn wir genug Münzen bekommen, werden
wir unser
Leben erhöhen Lass uns das bei der Arbeit sehen.
Klicken Sie hier auf Play. Jetzt habe ich noch keine Einstellungen für mein Leben
eingerichtet, damit es erhöht werden kann. Wenn ich
jedoch getroffen werde und sterbe, habe ich im Voraus
einige Münzen angelegt,
diese ist eine wert Sie haben das Inkrement
oben links gesehen. Diese Münze wird weitere 13 wert
sein. Jetzt habe ich diese großen
Münzen im Voraus aufgestellt. sind jeweils 50 wert, also habe ich 53 Münzen. Der nächste, den ich sammle,
sollte mir 103 bringen, was meinen Münzzähler
umschließen sollte. Sie sehen also, dass ich
drei Münzen und vier Leben habe, weil das eine
51 wert war und 50 wert sein wird. Wir haben also
535-45-5506 usw. Also, du siehst, mein Leben
funktioniert und meine Münzen funktionieren
unsere Levelzeit
und unsere Punkte Aber im
Laufe des Kurses
werden wir auch diese erhöhen Beachten Sie jedoch, dass
die Variablen im Player-Controller tatsächlich mit diesen Werten
verknüpft
sind , sodass sie,
wenn wir sie erhöhen, ebenfalls aktualisiert werden Nur um es dir hier im Level
noch einmal zu zeigen, habe ich einige Duplikate
dieser Münze erstellt und
diese größeren gemacht. Ich habe eines hier
in meinem Level-Editor
ausgewählt es im
Detailbereich im Wert von 50 gemacht Deshalb
waren sie 50 wert. Ich habe sie
auch ein bisschen vergrößert, die kleineren
habe ich auf einen Wert gebracht,
nur damit ich auch damit prahlen konnte, wie sich
die Zahl
der Leben erhöht In Ordnung, nun,
da haben wir es. Wir haben jetzt ein paar Hud-Bindungen , für die ich
alles machen werde Wir sehen uns im nächsten.
26. Blueprint-Funktionsbibliothek: Ordnung, wir werden uns jetzt der Erstellung einiger
interaktiver Blöcke
zuwenden Erstellung einiger
interaktiver Blöcke
zuwenden Und wir werden an einer etwas
interessanten Stelle
beginnen , indem wir
etwas erstellen , das als
Blueprint-Funktionsbibliothek bekannt ist einer
Blueprint-Funktionsbibliothek können wir nun Funktionen für den
allgemeinen Gebrauch erstellen , auf die von jedem Blueprint aus zugegriffen
werden kann von jedem Blueprint aus zugegriffen
werden In diesem Fall werden wir
das verwenden, um
eine
Blocktreffereffekt-Funktion zu erstellen , die wir
dann von jedem der
verschiedenen Blöcke aus aufrufen können , die wir Auch, weil es
gutes Allgemeinwissen
ist, das hier in Un Rail unter Beweis stellen können. Ordnung, also komm runter zu deinem Content
Platform-Blueprints-Ordner Ich werde schreiben. Klicken Sie
hier in eine leere Stelle und ich werde
eine
Blueprint-Blueprint-Funktionsbibliothek erstellen eine
Blueprint-Blueprint-Funktionsbibliothek Fahren Sie fort und wählen Sie das aus.
Wir werden das
unsere
BP-Underscore-Underscore-Bibliothek nennen unsere
BP-Underscore-Underscore-Bibliothek Und dann doppelklicke ich
darauf
, um
es sofort zu öffnen Ordnung, hier drinnen fordert
es
mich bereits auf, eine neue Funktion zu erstellen Jetzt nenne ich
diese allererste Funktion Play Block Interact X. Lassen Sie uns das hier umbenennen, Play Block Interact,
X, kurz für Effekte Dann möchte
ich drüben im Detailbereich einige Eingaben hinzufügen. Also werde ich 123.4 hinzufügen und
sie wie folgt benennen Dieser erste
wird einfach FX heißen, was die
Abkürzung für Soundeffekt sein wird Ich werde den
Typ hier gleich ändern,
aber ich werde sie zuerst
alle umbenennen. Das nächste wird Effekte
sein. In Klammern setze
ich Niagara, weil das der Name des Partikelsystems ist, weil das der Name des Partikelsystems ist das Unreal verwendet In Unreal Engine Five werde
ich
hier auch ein anderes Feld namens V-Effekt
Underscore Particle
verwenden,
nur um Ihnen Zugriff auf
kaskadierende Partikeleffekte zu geben, wenn Sie dies kaskadierende Das ist das ältere
Partikelsystem. Und dann das letzte, ich gebe den VFX-Standort an, den Ort unserer
visuellen Effekte Jetzt müssen wir die Typen festlegen, die jedem dieser Typen zugeordnet Für einen Soundeffekt klicken Sie
auf dieses Drop-down-Menü. Ich suche nach einer Soundbase , die die Art der
Eingangs-Soundbase-Objektreferenz für Niagara sein wird Eingangs-Soundbase-Objektreferenz für Niagara Ich werde
darauf klicken und in der Suchleiste
Niagara eingeben Objektreferenz des Niagara-Systems. Objektreferenz des Niagara-Systems für Partikel V-Effekt.
Klicken Sie auf das Drop-down-Menü. Ich suche nach dem
Systemobjekttyp di, Partikelsystemobjektreferenz. Lassen Sie sich nicht vom
Strukturpartikelsystem täuschen,
es ist die Objektreferenz des Partikelsystems dann die Effektposition, das wird
einfach eine Vektor-X -,
Y- und Z-Position sein -,
Y- und Z-Position Lassen Sie uns also
weitermachen und
die Funktionalität entwickeln, die wir haben
wollen
, wenn diese
Play-Block-Interaktionseffektfunktion aufgerufen wird Ausgehend von diesem Execution-Pin werde
ich einen
Play-Sound-2-D-Node einbauen. Der Sound, den ich
abspielen möchte ,
wird hier eingegeben. Dann
ziehe ich es hierher und tippe Spawn-System am Standort Das wird
unser Niagara-System sein, also müssen wir
den Ort angeben, an dem es spawnen würde, damit
wir es dem es spawnen würde, damit
wir es mit dem Standort verbinden können Dann werde ich den
Spawn-Emitter an der Position einziehen. Das ist das ältere
Kaskaden-Partikelsystem, also werde ich es einfach da
einbauen Doppelklicken Sie auf
diesen Knoten, nur um einen solchen
Umleitungsknoten
einzufügen Und der Standort
kann auch hier angeschlossen werden. Ich werde auch
auf diese Zeile doppelklicken. Okay, das wird also
unsere allererste Funktion sein , die hier in
unserer BP-Funktionsbibliothek existieren
wird . Lass uns weitermachen und das
kompilieren und speichern. Und jetzt haben wir
eine Funktion erstellt, die jedem Blueprint
verwendet werden
kann Wir werden
das in vielen
unserer
kommenden Blockpläne verwenden unserer
kommenden Blockpläne Das wird es für diesen machen. Mal sehen, wann der nächste ist.
27. Blueprint-Schnittstelle: In diesem Video
werden wir ein
sogenanntes
Blueprint-Interface erstellen sogenanntes
Blueprint-Interface Auch dies ist ein weiterer Vorteil , den wir hinzufügen
werden, um in den kommenden Blöcken
, die wir unserem Level
hinzufügen werden, zu
helfen in den kommenden Blöcken
, die wir unserem Level
hinzufügen werden, zu
helfen , die wir unserem Level
hinzufügen werden, zu Dieses Konzept ist im Voraus etwas
schwierig zu erklären. Was wir jetzt tun werden
, ist einfach dieses Asset zu erstellen und
dann werden wir im Laufe der Zeit
genau erklären, wie es funktioniert. Also klicken wir mit der
rechten Maustaste in unseren
Blueprints-Ordner für die Inhaltsplattform und klicken mit der rechten Maustaste Und unter der Kategorie
Blueprint wählen
wir die
Blueprint-Oberfläche Und wir werden das B
I BPI für Blueprint Interface nennen I BPI für Underscore, ich
nenne das Plattform. Dann doppelklicken wir
auf dieses Asset, um es zu öffnen Jetzt können wir hier
nur noch eine Funktion erstellen. Dies wird eine leere
Funktion sein, die von anderen Blueprints
aus aufgerufen und nach unseren Wünschen
angepasst werden kann anderen Blueprints
aus aufgerufen und nach unseren Wünschen angepasst Alles, was wir hier tun müssen, ist
eine einfache Funktion zu erstellen , die benannt ist Wir werden diese
spezielle Funktion Block nennen. Auch
hier gibt es
keine Funktionen, die innerhalb einer
Blueprint-Schnittstelle erstellt die innerhalb einer
Blueprint-Schnittstelle Sie erstellen einfach
eine benannte Funktion, in diesem Fall Hip Block Und wir
können diese Funktion dann
innerhalb des Blueprints anpassen, zu dem
diese Schnittstelle hinzugefügt wurde Und das werden wir
etwas später hier tun. Aber wir haben diese Grundlagenarbeit
erledigt und aus dem Weg geräumt, stellen Sie
sicher, dass Sie
das kompilieren und Leute retten Das ist alles, was wir in diesem Video machen wollten
. Ein bisschen mehr
Vorbereitungsarbeit steht in den nächsten Videos bevor, aber
wir sehen uns dort
28. Punkte-Anzeige-Widget, BP: Willkommen zurück. In diesem Video ist es
unser Ziel, einen
Widget-Blueprint zu erstellen, der
verwendet wird , um einen
Punktebetrag in einem Spiel anzuzeigen, wenn wir beispielsweise
mit einem Block interagieren Hier gibt es also noch ein bisschen mehr
Vorbereitungsarbeit zu erledigen, aber das wird sich auf
lange Sicht auszahlen Also werden wir all diese Dinge im Voraus
erledigen, damit
wir nicht zurückgehen und eine ganze Reihe von Dingen
wiederholen müssen Dingen
wiederholen Später
werden wir dieses Asset
in unserem Platform I-Ordner erstellen in unserem Platform I-Ordner Wir
klicken mit der rechten Maustaste in eine leere Stelle unter der Benutzeroberfläche. Wir werden
unter Widget, Blueprint fallen. Und wir werden dieses
Benutzer-Widget als unsere übergeordnete Klasse wählen Benutzer-Widget als unsere übergeordnete Klasse Und wir werden
diese BP Underscore Points umbenennen. Okay, dann machen wir weiter doppelklicken
darauf, um es zu öffnen Und wir werden
hier in unserer
Designer-Ansicht im Palettenbereich einfach ein paar
Widgets hinzufügen hier in unserer
Designer-Ansicht im Palettenbereich einfach ein paar
Widgets . Das erste, nach
dem wir
suchen werden, ist ein Overlay Und wir können es entweder hier in
unserer Hierarchie oder direkt
hier in unserer Entwurfsansicht ziehen
und dort ablegen unserer Hierarchie oder direkt
hier in unserer Entwurfsansicht Was wir dann
hinzufügen werden, ist ein einfaches Text-Widget. Fahren Sie fort und ziehen Sie es per Drag &
Drop auf das Overlay Mit dieser Einrichtung wird
unser Text-Widget einfach an
unser Overlay-Widget angehängt Wir verwenden
das Overlay-Widget einfach als etwas, an das wir unseren Text
anhängen können Lassen Sie uns nun
einige Details
für unser Text-Widget anpassen einige Details
für unser Text-Widget Hier, ich schaue mir
meine Notizen hier an. Ich werde
das Text-Widget
so
ändern, dass es einfach
Textunterstriche liest und ihm
einfach einen neuen Namen Ich werde dieses
Kästchen auf variabel markieren,
was bedeutet, dass wir
diesen tatsächlichen Wert in Zukunft aktualisieren können diesen tatsächlichen Wert in Zukunft Was die Ausrichtung dafür angeht, werde
ich die horizontale
und vertikale Ausrichtung so einstellen, dass sie genau in
der Mitte dieses Overlays liegen Also werde ich den Text
hier von einem
Textblock in Punkte ändern hier von einem
Textblock Obwohl dies
nur ein Platzhalter ist , werden
wir ihn aktualisieren Wir werden die Schriftfamilie
hier so ändern , dass sie unsere Super Mario-Schrift Neue Super Mario-Schriftart. Ich werde die
Größe hier auf 50 ändern. Ich werde auch eine
Umrissgröße von zwei haben. Und dann lasst uns weitermachen und dieses Widget
kompilieren und speichern. Ordnung Leute, das ist alles was
wir dafür
erreichen wollten. Hier liegt noch eine Arbeit vor uns, aber wir haben einen guten
Ausgangspunkt, um auch einige Punkte
in unserem Spiel
anzuzeigen.
29. Punkte-Anzeige-Widget Anim: Willkommen. In diesem Video ist es
unser Ziel, eine Animation zu
erstellen. Wenn also unser Punkte-Widget, Bauplan hier, im Spiel
erscheint, wird er animiert und entsteht auf coole,
auffällige Weise coole,
auffällige Die Idee ist, dass, wenn wir mit einem der
Blöcke
interagieren , die
wir erstellen werden, dieser
quasi nach oben schwebt und
anzeigt, wie viele Punkte ein Block
wert ist anzeigt, wie viele Punkte ein Block
wert Ordnung, um
hier in unserem
Widget-Blueprint eine Animation zu
erstellen hier in unserem
Widget-Blueprint Und falls Sie vergessen haben,
wo das ist, es befindet sich derzeit
in diesem Ordner Bp Points nennen wir das. Wir müssen das
Animationsfenster öffnen. Wo finden wir dieses Fenster? Oben in unserem
Interface-Fenster finden
wir Animationen
genau hier. Klicken Sie darauf. In
diesem Animationsfenster müssen
wir also
eine benannte Animation erstellen. Und dann legen Sie einige
Schlüsselbilder entlang dieser Zeitleiste fest. Lassen Sie uns also unsere
erste benannte Animation erstellen. also auf diese
Plus-Animationsschaltfläche klicke, nenne
ich das
Points Underscore-Animation Und dann, wenn diese
Animation ausgewählt ist, fahren Sie fort und klicken Sie darauf Wir müssen einen Track hinzufügen. Wir können also einen
Titel hinzufügen, indem hier in
diesem kleinen
Flyout-Menü auf die Plus-Schaltfläche „Track “ klicken. Wir haben alle Widgets benannt. Und was wir animieren wollen,
sind unsere Textpunkte, nicht der Overlay-Slot Der Text zeigt genau hier. Also mach weiter und klicke darauf. Als Nächstes möchten wir
hier
auf diese Plus-Schaltfläche klicken, um den Plus-Track zu erhalten. Es wird
dieses kleine Schnäppchen auf der Speisekarte haben. Und wir wollen
einen Transformations-Track hinzufügen. Sie darauf klicken
, werden diese Optionen angezeigt. Ich werde
auf dieses
Dropdown-Dreieck klicken . Transformation
besteht aus Translations-, Rotations
-, Skalierungs - und Scherparametern, die
wir möglicherweise ändern können Was wir hier tun wollen, ist die Übersetzung zu
ändern. Also werde ich das öffnen anklicken. Wir werden das hochschweben lassen. Wir werden auch
den Maßstab dieses
Textes im Laufe der Zeit ändern . Wir wollen, dass der Text nicht nur steigt, wenn er
erscheint,
sondern dass er auch skaliert wird sondern dass er auch skaliert Okay, jetzt, wo wir sie enthüllt
haben, können
wir hier einige Schlüsselbilder
zu unserer Timeline hinzufügen Keyframes
können wir nun
einen bestimmten Wert zu einem
bestimmten Zeitpunkt angeben . Zuallererst können Sie
Ihre Zeitleiste hier nach unten verschieben, wenn
Sie die
rechte Maustaste gedrückt halten . Wenn Sie die
Steuertaste gedrückt halten und das Mausrad verwenden, können
Sie es dehnen oder zusammendrücken Diese grüne Linie steht für den Beginn Ihrer Zeitleiste Diese rote Linie
steht für das Ende. Und du hast
hier diesen
kleinen Zeitwäscher , den du hin und her schleppen Wenn Sie jetzt den
Mauszeiger genau hier platzieren, können
Sie sehen, dass Sie diese
beiden Arten von Kollapsleisten haben Hier können Sie den Anfang
und das Ende Ihrer Timeline
angeben . Also werde ich diesen einfach nach rechts
ziehen und ich werde ihn
bis ungefähr herausziehen, und Sie können
dort im Blau sehen, wie viele Sekunden? Ich gehe etwa 0,95 Sekunden und zoome hier
nach oben. Und Sie können
sofort sehen, dass hier einige Keyframes gesetzt werden, diese roten Punkte stehen für
einige Keyframes Ich möchte diese manuell einstellen. Um Ihnen diesen
Vorgang zu zeigen,
klicke ich mit der linken Maustaste und ziehe nach rechts. Und dann werde ich sie
löschen, um sie loszuwerden. Diese roten Punkte stehen hier für Zeiten und Werte für bestimmte
Eigenschaften. Okay, das Erste,
was ich
hier ändern möchte, ist meine Y-Übersetzung. Das ist das Auf und Ab
dieses Punktewerts
, um ein Schlüsselbild hinzuzufügen. Zuerst nehme ich meinen Timeline-Scrubber hierher und platziere ihn an der entsprechenden Stelle Ich werde bei
der Null-Sekunden-Marke beginnen und diese
Y-Eigenschaft ändern, das Auf und Ab Um hier einen Keyframe hinzuzufügen, kann
ich auf diese Plus-Schaltfläche klicken Winziger Plus-Button genau dort. Und damit kann ich einen Wert
angeben. Ich habe meinen
Timeline-Scrubber direkt drüber. Es ist momentan auf Null gesetzt. Ich könnte aber auch mit der rechten Maustaste
darauf klicken und die Eigenschaft festlegen. Da ist meine Zeit
Null, mein Wert Null. Also könnte ich es auch
so einstellen. Ein Wert,
der der Zeit dafür zugeordnet ist. Ich möchte, dass sowohl die Zeit als auch der
Wert Null sind, okay? Und ich werde auf diese
Weise arbeiten. Ich werde
meinen Zeitleisten-Schieberegler jetzt auf 0,2 Sekunden
herausziehen. Ich werde ein weiteres
Schlüsselbild für die Übersetzung
y hinzufügen . Wenn ich auf diese
kleine Plus-Schaltfläche hier klicke, kann
ich einen Wert angeben,
entweder indem ihn hier einfüge, oder ich kann schreiben Klicken Sie darauf und
gehen Sie zu Eigenschaften. Und ich werde
den Wert dafür auf minus 200 setzen. Und dann drücken Sie Enter.
Sie werden sehen, dass dadurch das Wort Punkte
sofort nach oben verschoben wird. Okay, als Nächstes nehme ich hier
meinen Zeitleisten-Schieberegler und schiebe ihn über 2,45 und füge eine weitere Taste
hinzu Wenn ich mit der rechten Maustaste darauf klicke, kann
ich sehen, dass die Zeit auf 2,45 und der Wert auf minus 200
gesetzt ist Ich werde den Wert
von minus 200 sogar ein wenig
reduzieren Ich nehme
etwa minus
150 , damit wir diesen Effekt erzielen können. Und Sie können sehen, wenn
ich das drüber ziehe, wird es angezeigt und
dann wieder heruntergefahren. Vielleicht ändere ich das im Laufe der Zeit. Wenn ich hier auf meine Play-Schaltfläche klicke, kann
ich mir ein Bild davon machen, wie sich das im Laufe der Zeit entwickeln wird. So etwas in der Art. Popp auf, damit du
das natürlich nach deinen Wünschen anpassen kannst Okay, als Nächstes werde ich die Skala
unserer Punkte hier
anpassen Also werde ich erneut auf
meinen Timeline-Slider klicken. Ich werde
das ganz
zurück bis zur Null-Sekunden-Marke ziehen . Jetzt möchte ich die Skala,
x und y, gleichmäßig anpassen . Anstatt
hier
sowohl auf die Plus-Schaltfläche für das X als auch für das Y zu klicken. Wenn ich auf die Plus-Schaltfläche klicke, direkt auf der
Skalierungslinie genau dort, füge
ich Tasten zu
den X- und Y-Werten hinzu. Für beide. Ich fange mit einem Wert
an und klicke einfach mit der rechten
Maustaste hier. Eine Zeit von Null und
der Wert Null, im Grunde genommen wird
es unendlich klein sein Wir können es nicht sehen. Und das mache
ich für beide hier, Rechtsklick. Setzen Sie diesen Wert auch hier auf
Null. Dann werde ich meinen
Zeitleisten-Schieberegler auf die
0,2-Sekunden-Marke genau
hier auf der Skalenlinie bewegen . Ich werde auf
diese Plus-Schaltfläche klicken. Wenn ich diese beiden Werte
markiere, klicke
ich einfach mit der linken Maustaste und ziehe mit der Maus
um beide Ich klicke mit der rechten Maustaste.
Und leider kann
ich den Wert nicht für
beide gleichzeitig festlegen. Ich dachte, ich
könnte das vielleicht. Leider muss ich
auf jede dieser Eigenschaften mit
der
rechten Maustaste klicken. Dafür
wird der Wert
1,5 sein, also werde ich den Text auf 1,5
mal so groß
einstellen ,
klicken Sie mit der rechten Maustaste auf Eigenschaften 1,5. Und Sie können sehen
, dass, wenn ich diesen Wert auf
1,5 setze , der Wert
1,5 auch hier angezeigt wird. Okay, im weiteren Verlauf
werde ich meinen Zeitplan anpassen. Schieben Sie mit dem Mauszeiger auf die
0,45-Sekunden-Marke auf der Skalenlinie. Hier werde ich auf
diese winzige, winzige Plus-Schaltfläche klicken. Es werden
Keyframes für X, Y hinzugefügt. Dafür setze ich die Eigenschaft auch für den Y-Wert auf
11. Als Nächstes ziehe ich meine
Zeitleiste auf die Linienskala 0,85 Sekunden Klicken Sie auf diese Plus-Schaltfläche,
um Keyframes und
Markierungen in unserer Zeitleiste
für die 0,85-Sekunden-Marke hinzuzufügen Markierungen in unserer Zeitleiste
für die 0,85-Sekunden-Marke Wenn ich schreibe und
auf jedes dieser Felder klicke, ist
die Eigenschaft
momentan auf eins gesetzt, was ich will guter Letzt ziehe ich meinen
Zeitleisten-Schieberegler hier auf 0,95 am Ende
unserer Timeline Hier. Ich werde erneut
auf diese Skala klicken. Es werden Schlüsselbilder für
X und Y hinzugefügt . Ich werde schreiben, klicken Sie hier auf meine X-Taste Ich setze die
Eigenschaft auf Null, den Wert Null mal
0,95 und hier setzen
wir den
Eigenschaftswert ebenfalls auf Null Wenn ich das jetzt spielen würde, wirst
du sehen, dass es diese
Art von Effekt haben
wird Wir werden
hochschweben, irgendwie rausblitzen und dann sinken wir runter und gehen
weg. In Ordnung, cool Jetzt haben wir eine
Widget-Animation erstellt, die aufgerufen werden kann und der gesagt wird, dass sie abgespielt werden soll,
wann immer wir ihr sagen, dass sie abgespielt werden soll. Und Hinweis, Hinweis, Wach auf, zwinkere. wir mit einem Block
interagieren, geben wir
das Spiel an und wir
verdienen ein paar Punkte
, wenn mit einem Block
interagieren, geben wir
das Spiel an und wir
verdienen ein das alles erledigt Lass uns weitermachen und Leute
kompilieren und speichern Das wird es
für diesen machen. Wir sehen uns im nächsten.
30. Punkte zeigen den Schauspieler an: Willkommen zurück alle. In diesem Video
werden wir
einen
Plan für die Schauspielerklasse erstellen , der im Spiel
erscheint, wenn wir mit
einem unserer Blöcke interagieren Das wiederum wird diesem Widget den Bauplan
mitteilen, unsere Punkte hier im Spiel
zeigen sollen Und wir werden auch
unsere Punkteanimation
zum Abspielen aufrufen unsere Punkteanimation
zum Abspielen Um all das zu ermöglichen,
benötigen wir einen Plan für Schauspieler. Okay, lass uns weitermachen und zurück
zu unserem Haupteditor hier springen zu unserem Haupteditor hier Wir werden
dieses Asset in
unserem Plattform-Blueprint-Ordner hier
in einem leeren Bereich erstellen unserem Plattform-Blueprint-Ordner hier
in einem leeren Bereich Fahren Sie fort und
klicken Sie mit der rechten Maustaste auf Blueprint-Klasse. Wir werden
eine Schauspielerklasse wählen , weil diese im
Spiel erscheinen wird Und wir werden
das BP Underscore Points nennen. Nicht zu verwechseln mit Widget. Blueprint unterstreicht Punkte. Okay, mach weiter und
doppelklicke darauf. Um es zu öffnen, müssen wir hier
im Komponentenbereich
nur
eine einzelne Komponente hinzufügen . Klicken Sie auf Hinzufügen. Wir werden eine Widget-Komponente
hinzufügen. Keine Widget-Interaktion,
sondern einfach ein Widget. Ich behalte den Namen des Widgets bei, wenn diese Komponente ausgewählt ist. Drüben im Detailbereich können
wir eine Widget-Klasse angeben. Und hier in dieser Drop-down-Liste können
wir unsere WP-Punkte auswählen Mach weiter und wähle
das aus. Sie werden sofort in unserem Viewport feststellen, dass der Text wieder
zeigt, wir
diesen Text dynamisch ändern werden Wie viele Punkte möchten
wir hinzufügen? Nun, dafür
werden wir im Bereich „Mein
Blueprint“ im Bereich „Variable“ eine Variable
hinzufügen Mein
Blueprint“ im Bereich „Variable“ eine Variable Klicken Sie auf diese Plus-Schaltfläche. Wir nennen das Hinzufügen. Wir werden
daraus eine Ganzzahl machen. Wir können es hier oder
im Detailbereich ändern, Variablentyp, ich ändere es einfach in eine Ganzzahl
, wenn diese ausgewählt ist. Ich werde sofort
kompilieren. Ich werde
im Detailbereich drüber gehen. Ich werde diese
Instanz editierbar machen. Und ich werde
dieses Expose auch beim Spawn überprüfen. Dadurch können wir, wenn dieser bestimmte Akteur im Spiel
erscheint, dieser bestimmte Akteur im Spiel
erscheint,
diese spezielle Variable
sichtbar machen und leicht ändern, sodass sie leicht
editierbar sichtbar machen und leicht ändern, sodass sie leicht ist Wir müssen also beide
Checkboxen ankreuzen. Wir werden den
Standardwert hier auf Null setzen. Okay. Als Nächstes werden
wir einige Skripte hinzufügen und dafür
gehen wir in unseren Event-Graph. Wir wollen etwas
außerhalb von Event Begin Play machen, das es hier draußen bereits gibt. Lassen Sie uns also weitermachen und mit der
linken Maustaste klicken und ziehen. Werde diese beiden Typen los. Hier beginnt das Event. Wenn du das versehentlich
löschst, kannst du die Taste gedrückt halten
und mit der linken Maustaste darauf klicken, um es zu erhalten, oder mit der rechten Maustaste klicken und nach Event Begin
suchen .
Abspielen. Du wirst es finden. Wir werden
unsere Widget-Komponente hier einfügen wollen . Lass uns mit der linken Maustaste klicken
und das hineinziehen. Der Grund, warum wir das
einfügen wollen , ist,
dass wir sehen wollen, ob es sich
bei diesem Widget tatsächlich um unsere P-Punkte handelt . Um das zu tun, ziehen wir es
hier raus geben Gast Two BP ein. Tatsächlich können wir noch
nicht darauf antworten. Ich muss mich
hier rausziehen und das Widget holen. Holen Sie sich das Widget. Wir sagen
im Grunde, wir wollen
diese Widget-Klasse bekommen. Wenn ich get widget,
widget eintippe , bringen
wir bereits eine weitere Kopie davon ein. Wir brauchen das nur aus unserem Widget, das du
hier rausziehst, gib get widget ein. Du willst diesen Knoten genau hier haben. Damit wir uns dann hier
rausziehen und einen Cast machen können. Zwei BP-Punkte. Jetzt ist diese ganze Einrichtung
notwendig, damit wir hier einige Informationen aus
unserem Widget-Blueprint
extrahieren wir darauf streamen, können
wir
gezielt unsere
Punkte-Animation aufrufen, um sie hier abzuspielen Tatsächlich wird das hier unser nächster Schritt
sein. Gehen Sie also zurück zu Ihren BP-Punkten. Wir ziehen aus unseren
BP-Punkten heraus und geben die Punkteanimation ein. Wir wollen eine Punkteanimation bekommen. Das ist die Animation
, die wir gerade erstellt haben. Der Grund, warum wir
das bekommen, ist, dass
wir uns hier
rausziehen und Play-Animation eingeben werden.
Animation abspielen. Und dabei
wird es das als Animation einbinden , die wir abspielen wollen. Nun zum Ziel: Wir wollen, dass dies unser Widget, unser
Blueprint-Punkt Das stecken wir in das Ziel ein. Diese Notiz ist cool hier. Diese Spielanimation?
Nein, denn wir können nicht nur die
Anzahl der Loops
angeben, die wir in diesem Fall nur einmal abspielen
wollten. Wir können auch den
Wiedergabemodus,
Vorwärts, Rückwärts oder Tischtennis
sowie die Wiedergabegeschwindigkeit angeben Vorwärts, Rückwärts oder Tischtennis
sowie die Wiedergabegeschwindigkeit Wenn Sie also
mit Ihrer Animationsgeschwindigkeit nicht zufrieden sind, können
Sie sie auch
hier anpassen Ich werde sie alle
unverändert lassen. Okay, als Nächstes möchte ich
den tatsächlichen Punktwert anpassen , der gerade angezeigt
wird. Ich habe nur diesen Text
Punkte, in dem Punkte stehen. Ich möchte also in der Lage sein,
den tatsächlichen Textwert, der
damit verknüpft ist,
hier im Detailbereich anzupassen den tatsächlichen Textwert . Also wie können wir das machen? Nun,
hier in unseren BP-Punkten. Wir können zwei BP-Punkte
aus unserer Auswahl herausziehen und nach Punkten suchen. Wir wollen unsere Textpunkte bekommen. Dies bezieht sich speziell auf dieses Text-Widget hier. Damit wollen wir
unseren Textinhalt ändern, indem wir den eingegebenen Text herausziehen. Ich
kann den eingegebenen Text eingeben Ich möchte Text festlegen. Wir, wir
sagen hier im Wesentlichen, dass wir diesen Textwert
ändern wollen , der
mit diesem Text-Widget verknüpft ist. Ich werde hier nur ein
wenig
herauszoomen , indem ich die Strg-Taste
gedrückt halte. Wir werden das hineinstecken, also werde ich es hier so
rausbringen Ich doppelklicke darauf, um einen Umleitungsknoten
einzufügen. Beispiel wird der eigentliche
Text, den ich hier
anzeigen möchte , durch die
hinzuzufügenden Punkte bestimmt Wenn ich das in unser
Diagramm einfüge, werde ich es bekommen. Ich kann versuchen, diese
Ganzzahl in diesen Text einzufügen. Es wird es
von einer Ganzzahl in Text umwandeln. Es wird den Kerl
auch mit reinziehen, wenn du das versuchst. Jetzt wird es Null
statt Punkte anzeigen. Jetzt wollen
wir hier noch etwas tun, ein
bisschen zur Seite fahren,
ist, dass wir
diesen Schauspieler zerstören wollen , nachdem wir ihn
ins Spiel gebracht haben Eine wirklich einfache Methode, um zu
bestimmen, wann wir
das zerstören müssen, besteht darin, zu bestimmen, wann
das Ende unserer Animation ist Sobald unsere Animation fertig ist, lassen Sie uns weitermachen und sie zerstören. Was ich hier tun kann,
ist die Animation aus
meinen Punkten wie folgt herausziehen . Geben Sie get endtime ein, das gibt uns die
Endzeit in Sekunden. Dann kann ich das
hier rausziehen und das mit
einem Delay Node Flow Control Delay verbinden. Ich werde diesen
Ausführungsfluss einfach über dieses weiße Kabel aufrechterhalten, das
von dieser Texteinstellung bis zu
unserem Verzögerungsknoten führt. Und sobald das abgeschlossen ist, klicken
wir mit der rechten Maustaste auf Destroy Actor. Das Ziel hier ist
selbsterklärend, diese BP-Punkte. Denken Sie daran, dass diese
BP-Punkte diese
Anzeige hier zerstören werden. Ich weiß, dass hier
Punkte
stehen, aber wenn wir
das ins Spiel bringen, werden unsere Punkte
zum Hinzufügen genau hier
angezeigt Derzeit ist es Null, aber wir
können das
dynamisch ändern, wenn wir angeben Punkte
dieser BP in unserem
Spiel erscheinen sollen Nachdem das alles erledigt ist, können wir
weitermachen und erneut kompilieren
und speichern. Sobald wir sagen, dass es in
unserem Spiel erscheinen soll, wenn wir mit dem Block interagieren, werden
wir herausfinden, ob das
unsere WBP-Punkte sind, mit denen
wir es zu tun Es wird tatsächlich das sein
, mit dem
wir es zu tun haben Der Grund, warum wir
darauf casten, ist, dass wir die von uns erstellte
Punkteanimation extrahieren
können. Sagen Sie ihr, sie soll
auch abgespielt , um den darin
enthaltenen Text zu ändern.
Wir werden ihn ändern. Dieser Text entspricht der Anzahl
der hinzuzufügenden Punkte. Dann, nachdem unsere Punkteanimation fertig abgespielt
wurde, erhalten
wir die Zeit
, die 0,95 Sekunden beträgt Um diesen Betrag werden wir
warten, bevor wir den Schauspieler vernichten Wir werden
fast eine Sekunde warten, bevor wir die Anzeige dieses Punktes zerstören. Und das alles wird
in
kurzer Zeit sehr
gut zusammenpassen . Hier Leute, das wird alles für diesen
machen. Wir sehen uns im nächsten.
31. Punkte-Funktion hinzufügen: Ordnung, wir haben also mehrere Dinge
zusammengestellt, die sich auf
Punkte beziehen darauf vorzubereiten, unsere Blöcke zusammenzusetzen uns darauf vorzubereiten, unsere Blöcke zusammenzusetzen und
einige Punkte zu erzielen. Es gibt jedoch eine wichtige
Sache, die uns immer noch fehlt, und das ist das
Zusammenzählen von Punkten , wenn wir tatsächlich einige Punkte
erzielen. Derzeit sind
unsere Punkte variabel. Es ist derzeit an
dieses Text-Widget
hier in unserem wbPud gebunden dieses Text-Widget
hier in unserem wbPud Diese Variable existiert in
unserem Player-Controller. Also werden wir uns als Nächstes damit
befassen. Gehen wir zurück zu unserem
Haupt-Level-Editor doppelklicken
wir auf
unseren Player-Controller. Hier machen wir
eine kleine Ergänzung, um unsere Münzen zu
addieren, aber wir
addieren noch keine Punkte. Derzeit ist es nur eine Variable , die hier rumhängt, und diese Variable ist
in unserem WBP Hud gebunden Lass uns weitermachen und hier
ein wenig rechnen. Klicken Sie mit der rechten Maustaste in ein leeres Feld, wir suchen
nach einem benutzerdefinierten Ereignis. Wir nennen
das einfach Punkte hinzufügen. dieses benutzerdefinierte Ereignis ausgewählt ist.
Lassen Sie mich einfach nach oben zoomen. die Strg-Taste gedrückt halte und
im Detailbereich die Ansicht „Over“ heranzoome , Wenn ich die Strg-Taste gedrückt halte und
im Detailbereich die Ansicht „Over“ heranzoome, füge
ich eine Eingabe hinzu Wenn ich auf diese Plus-Schaltfläche klicke, nenne
ich diese Punkte
zwei hinzuzufügende Punkte, nicht nur Punkte,
zwei hinzuzufügende Wir machen daraus eine Ganzzahl und unsere Mathematik hier wird
sehr einfach sein Irgendwann werden wir
dem ein paar Punkte geben und es
wird es
hier ausgeben, wann immer diese
Kundenveranstaltung ausgerufen wird. Und wir werden
das hinzufügen,
indem wir auf die Schaltfläche „Hinzufügen“ klicken, indem wir auf die Schaltfläche „Hinzufügen“ klicken zu unserer aktuellen Punkteanzahl ziehen und das Ganze hierher Und dann werden wir
das als unseren neuen Punktewert festlegen. Ziehen Sie Ihre
Punkte einfach per Drag-and-Drop auf diese Ausgabe
, schon wird ein Setter angezeigt Und da hast du's.
Das wird für unsere zukünftigen
Blocks entscheidend sein. Stellen Sie also sicher, dass Sie
kompilieren und speichern. Sie können das alles mit der linken Maustaste anklicken und
ziehen. Wir nennen das unser
Werbepunkte-Skript. Farbe: Schwarz. Und Leute, das wird alles für diesen
machen. Kompilieren und speichern.
Noch einmal. Wir sehen uns
im nächsten Video.
32. Blockbasis: Willkommen. Wie Sie
aus früheren Mario-Spielen wissen, enthalten sie nun eine Vielzahl
interaktiver Blöcke. Wir werden anfangen,
unsere Blöcke zu erstellen , indem wir
mit einem Basisblock beginnen. Jetzt wird dies eine
Art übergeordneter Block
sein , in dem wir
alle Basiskomponenten,
Variablen, Skripte usw. zusammenfügen . Und dann werden wir
untergeordnete Blöcke aus
dieser übergeordneten Basis erstellen untergeordnete Blöcke aus
dieser übergeordneten Basis Das wird also quasi die Grundlage sein
,
um uns für all die anderen Blöcke vorzubereiten, die in Zukunft
von diesem Elternteil erben werden , den wir gerade erstellen Bevor wir
mit all dem beginnen, stellen Sie sicher, dass Sie diese Texturen und
diese Audiodateien von
viel früher zu
Beginn des Kurses
importiert haben diese Audiodateien von , da wir sie in
diesem Video
verwenden werden sie in
diesem Video
verwenden Um
hier anzufangen, gehe ich
in meinen Plattform-Texturen-Ordner und werde
hier Materialien
aus drei verschiedenen
Texturen erstellen . Wir haben unsere Blocknutzung. Ich werde
diesen Fragenblock verwenden, obwohl ich hier ein paar
Varianten habe , aus denen
Sie wählen können. Aber es spielt keine Rolle, für
welchen du dich
entscheidest, ich wähle diesen Block, Frage eins, und dann wähle ich diesen
Block, der zerbrechlich Also halte ich einfach die Kontrolle
gedrückt. Also habe ich alle drei
ausgewählt. Dann klicke ich mit der rechten Maustaste auf eines davon, das
ich ausgewählt habe, und ich werde aus jedem von ihnen ein
Material erstellen. Okay, jetzt wurden
drei separate Materialien hinzugefügt, 12.3, und nur um diese zu organisieren, werde
ich alle drei in meinen
Materialordner ziehen , wie so Ich werde sie
hierher verschieben. Lassen Sie mich einfach in meinen Materialordner
springen, wenn das
abgeschlossen ist, nur um sicherzugehen, dass sie
da sind und es aussieht, als ob sie 12.3 Als Nächstes werden wir
einen Blueprint erstellen Gehen Sie also in Ihren
Platformer-Blueprint-Ordner, wir werden schreiben Klicke in eine
leere Blueprint-Klasse. Dies
wird eine
Blaupause für den Namen der Schauspielerklasse Blaupause für Wir nehmen den
BP-Unterstrichblock. Unterstrich die Basis. Dann doppelklicken wir
auf diesen Typen, um ihn
im
Komponentenfenster ganz oben zu öffnen im
Komponentenfenster ganz oben .
Wir werden eine Komponente hinzufügen Wir werden
eine Würfelkomponente hinzufügen. Ich werde diesen
Namen als Würfel belassen, wobei diese Komponente im Detailbereich ausgewählt Ich werde unser Material einfügen. Ich werde das Wort Block eingeben
. Ich habe meinen Block zerbrechlich gemacht, das wird hier mein
Standardmaterial sein Als Nächstes werden wir zu
meinem Blueprint-Panel kommen und einige Variablen
erstellen Nochmals, da dies unser Basisblock sein
wird, werden
unsere untergeordneten Blöcke, die von
diesem Elternblock erben werden, auch
diese Variablen erben Ich werde genau hier klicken. Die erste Variable, die
wir hinzufügen
werden, heißt Finished Interacting. Ich möchte am Ende einer Bullion-Variablen
ein
Fragezeichen setzen .
Das wird ein Edelmetall sein zweite, die ich hier
erstellen werde heißt Coins To Add, das wird eine Ganzzahl sein Als Nächstes füge ich das hinzu, ich klicke mit der rechten Maustaste und das Duplizieren
ergibt Punkte. nächsten Klick auf die Plus-Schaltfläche
wird
Interact X heißen . Ich werde
in Klammern Niagara setzen Ich werde den Typ
hier auf ein Niagara-System ändern. Objektreferenz des Niagara-Systems. Lecken Eine weitere Variable
dazu wird
Interact X sein und in Klammern wird
das wieder Partikel
sein Niagara ist das neuere
Partikelsystem, aber wir werden in der
Lage sein, zwischen dem neueren und
dem älteren
Partikelsystem zu wählen neueren und
dem älteren
Partikelsystem nur um Ihnen hier etwas
Flexibilität zu geben Unter dem Typ wählen wir
Partikelsystem,
es ist
Partikelsystem-Objektreferenz es ist
Partikelsystem-Objektreferenz unter den dortigen Objekttypen Als Nächstes fügen wir
Interact X hinzu, das ist ein Soundeffekt. Für diesen wird es eine Soundbasis
sein,
eine Sound-basierte Objektreferenz. Das hier ganz oben, und zu guter
Letzt werden
wir
darauf klicken und es wird Interact Material heißen. Dieser Typ wird
einfach unter die Kategorie
Objekttypen fallen. Objektreferenz.
Okay, dann kompilieren wir das gleich und
geben uns einige Standardwerte. Klicken Sie ganz oben
auf Compile. Hier beenden wir die Interaktion, wir können das als falsch belassen. Das ist völlig in Ordnung
, wenn wir unsere Münzen hinzufügen. So viele Münzen möchten
wir hinzufügen. Überhaupt für die Interaktion
mit diesem Block. Ich werde diese
Instanz editierbar machen, damit wir pro
Instanz eines Blocks ändern
können Sollten wir uns dafür entscheiden,
lasse ich den Wert jetzt auf Null stehen. Wissen Sie was? Ich
stelle es vorerst auf eins. Aber natürlich können wir das nach Belieben
aktualisieren , Punkt, ich wähle das aus. Wir werden diese
Instanz auch essbar machen. heißt, wir können dies aktualisieren, wenn ein Block, der von
diesem Elternteil erbt , in
unser Level aufgenommen wird Ich setze die Punkte standardmäßig
auf zehn. Für Interact V-Effekte
auf das Niagara-Partikel wähle
ich die Option
Einfache Explosion Für das
Interact-V-Effektpartikel verwende
ich den zerbrechlichen
Unterstrichtopf Das kommt aus dem Infinity Blade Effects Pack, das ich hinzugefügt habe Jetzt können Sie wieder
alles wählen, was Sie wollen. Das ist genau das, wofür ich mich
entscheide. Das ist nur die Standardeinstellung
für den Interact. Ich werde
den Interact X nicht zuletzt
für unser Interact-Material zu einer
Münze machen . Ich werde das als meinen Block verwenden
, damit wir interagieren können. Dieser Block für einige von ihnen
, die nicht zerbrechlich sind, werden
wir zu
diesem bestimmten Material wechseln Ordnung, wenn das alles erledigt ist, gehen
wir zu
unserem Event-Graph über und fügen ein bisschen Skript Das Erste, was wir hier
tun werden, ist,
diese beiden Knoten
aus unserem Event zu löschen . Fangen Sie an zu spielen. Wir klicken mit
der rechten Maustaste in
eine leere Stelle. Wir werden
get player controller eingeben. Dann werden wir das
auf unseren Player-Controller übertragen. Auf den Player-Controller übertragen, unseren BP-Player-Controller. Wir werden das
einrichten, indem wir mit der rechten Maustaste auf diesen Pin klicken und ihn zu einer Variablen hochstufen. Wir werden
einen Verweis auf unseren
Player-Controller erstellen . Und ich werde den Namen einfach auf
Player-Controller
abkürzen , weil
wir wollen, dass unsere untergeordneten Blöcke, also
die Blöcke, die
irgendwann von
diesem Basisblock erben werden diesem Basisblock einen Verweis auf
unseren Player-Controller
haben Linksklick und Ziehen. Ich nenne das
Player-Controller. Denken Sie daran, dass unser
Spieler-Controller-Blueprint
der Powerhouse-Blueprint ist , den wir verwenden, um Dinge wie das Zusammenzählen von Münzen zu tun. Das wird später hier wichtig
sein. Ordnung, als Nächstes wollen
wir erkennen, wann unser Block getroffen wird. Im Grunde
wollen wir also erkennen, wenn unser Block hier von
der Unterseite getroffen wird,
okay, wenn unsere
Würfelkomponente ausgewählt Klicken Sie einfach mit der rechten Maustaste und gehen Sie hier
zu einer leeren Stelle. Klicken Sie mit der rechten Maustaste auf das
Ereignis, um die Komponente zu treffen. Jetzt, wo der andere Schauspieler weg ist, können
wir ein gleiches Symbol einbauen. Und wir werden
überprüfen, ob der andere Schauspieler gleich O ist. Und Sie haben mich
das schon einmal machen sehen. Hol dir den Spielercharakter. Wenn es unser Spielercharakter ist
, der diesen Block trifft, werden
wir ein paar Dinge tun. Aber wir
müssen auch herausfinden,
wie auf welche Weise dieser Würfel
getroffen wurde. Wir wollen nur, dass etwas wirklich passiert, wenn wir die
Unterseite dieses Blocks treffen Zum Glück können wir jetzt, wenn
wir auf diesen Würfel treffen, einige Informationen
über diesen Treffer direkt
aus dieser Stecknadel extrahieren über diesen Treffer direkt
aus dieser Wenn ich also hier rausziehe, kann
ich Pause eingeben und dann
auf Ergebnis klicken Dieser Knoten ermöglicht es uns, einige
Informationen
daraus zu extrahieren. hier auf diesen
Abwärtspfeil klicken, können
wir alle darin enthaltenen
Informationen sehen. Insbesondere
interessiert uns diese Auswirkung auf normale Ausgabe. Ich werde
daraus ziehen und den Break Vector eingeben
. Im Wesentlichen wird
uns das ermöglichen, zu erkennen, in welche Richtung wir diesen Stein
treffen. Wir wollen herausfinden,
ob die Z-Richtung, die Auf- und
Abwärtsrichtung,
einem Einfluss des Werts
eins in Z-Richtung entspricht . Wir
überprüfen im Wesentlichen, ob wir das
von unten getroffen
haben. Ein negativer Wert
wäre die Oberseite, ein
positiver Teil des
Aufpralls ist hier normal. Diese ebene Oberfläche
erkennt, ob wir sie
von der Unterseite treffen Wir wollen herausfinden, ob diese beiden
Dinge wahr sind. Wenn es ein
Spielercharakter wäre, der
diesen Würfel getroffen hat und wenn wir ihn
von der Unterseite getroffen haben. Da wir herausfinden wollen,
ob beide wahr sind, ziehen wir eine
der roten Stecknadeln heraus Geben Sie das Wort ein und
wir fügen einen booleschen Wert hinzu. Wir wollen herausfinden, ob
dies und das wahr ist. Wenn beide wahr sind, werden
wir das an
einen Verzweigungsknoten wie diesen anschließen . Wenn beide wahr sind, wollen wir diese
Funktion als Hit Block aufrufen, sie hier in
unserer Blueprint-Schnittstelle
sichern indem
wir Sie wird nur Hitblock genannt. Wenn ich hier aus dem
True-Zweig herausziehe, gebe ich Hit Block und du siehst diese
Trefferblock-Meldung. Wenn du jetzt darauf klickst
, werde ich
diesen Knoten mit
diesem kleinen Umschlagsymbol
für das Ziel einblenden. Sie können einfach
rückwärts ziehen und self eingeben , weil
das Ziel wir selbst sein werden. Wir wollen einen
Verweis auf uns selbst bekommen, und das wird
unser Hitblock-Skript sein Was wir jetzt
auch hier
tun werden, ist, dass wir
diese BPI-Plattform, diese Blueprint-Schnittstelle
zu
diesem Blueprint hinzufügen wollen Blueprint-Schnittstelle
zu
diesem Blueprint Um das zu tun,
gehen wir zu den Klasseneinstellungen und drüben
im rechten Bereich haben
wir einen Abschnitt für
Schnittstellen, haben
wir einen Abschnitt für implementierte Schnittstellen Und hier können wir unsere BP I-Plattform
hinzufügen. Nun, das wird wichtig sein
, weil wir wollen
, dass unsere Blöcke , die von dieser
Basis erben, dies auch haben Jetzt
wird die Magie dieses Aufbaus deutlich
, wenn wir
einige untergeordnete Blöcke aus
dieser BP-Blockbasis erstellen einige untergeordnete Blöcke aus
dieser BP-Blockbasis In unseren untergeordneten Blöcken
müssen
wir nur ein Hitblock-Event aufrufen. Und dann können wir Dinge tun, die für diese Blöcke
spezifisch sind, sodass wir diesen Codeabschnitt
nicht gleich hier ausspülen und wiederholen müssen. In Ordnung, nachdem das
alles erledigt ist, lasst uns weitermachen und Leute
kompilieren und speichern. Damit ist
es für diesen erledigt. Wir sehen uns im nächsten.
33. Blockbrechend: Willkommen, in diesem Video ist es
unser Ziel,
einen untergeordneten Block zu erstellen ,
der die Basisfunktionalität
unserer Eltern erbt ,
unsere BP-Blockbasis Anschließend passen wir
unseren untergeordneten Block , dass er bei einem Treffer aufbricht Bevor wir
damit beginnen, werde
ich
einen weiteren
Ordner in unserem Inhaltsbrowser erstellen . Hier, speziell für Ziegel. Und ich mache das
im Blueprints-Ordner, indem ich
hier drüben auf
Blueprints Ich werde einen neuen Ordner erstellen und diesen einfach Blöcke
nennen Und dann klicke ich
sofort zurück in meinen Blueprints-Ordner
und ziehe diese Blockbasis in
meinen Block-Ordner Und wenn du es hier
drauflegst, kannst du es so direkt da
hineinverschieben Okay, jetzt bin ich
in diesem Verzeichnis, meinem Blocks-Ordner, ich werde ein untergeordnetes Element
dieses Basisblocks
erstellen. Und das können wir tun,
indem wir mit der rechten Maustaste auf Create a Child Blueprint-Klasse Es wird
uns auffordern, diesen Namen zu geben. Also nenne ich diesen BP-Block
Underscore Breakable. Das wird ein
zerbrechlicher Block sein. Ordnung, lassen Sie uns weitermachen und darauf
doppelklicken, um es zu öffnen werden viele Dinge In diesem Video werden viele Dinge
zusammenkommen. Zunächst möchte
ich darauf
hinweisen, wie Dinge vererbt
wurden Oben rechts können wir sehen, dass unsere übergeordnete Klasse BP Block Base
ist Drüben im Komponentenfenster können
wir sehen, dass wir diese Würfelkomponente
geerbt haben. Wenn ich in die Klasseneinstellungen gehe, kann
ich sehen, dass wir unsere BPI-Plattform,
unsere
Blueprint-Schnittstellenplattform,
geerbt haben unsere
Blueprint-Schnittstellenplattform Und hier auf
der linken Seite
das My Blueprint-Panel Wir können das Innere unserer
Blueprint-Oberfläche sehen, wir haben diese Trefferblock-Funktion Um jetzt wieder zurück zu kehren,
zu meinem Blueprint-Ordner. Hier ist meine BPI-Plattform, auf der wir diese
Funktion namens Hit Block haben Ich möchte auch darauf hinweisen
, dass wir
unsere Variablen, die wir hier in unserem übergeordneten Block
eingerichtet haben, geerbt haben unsere Variablen, die wir hier in unserem übergeordneten Block
eingerichtet haben, hier in unserem übergeordneten Block
eingerichtet Wenn Sie
diese hier unten nicht sehen, wenn Sie auf dieses Zahnradsymbol klicken, haben
Sie dieses Kontrollkästchen zum
Anzeigen geerbter Variablen. Wenn es ausgeschaltet ist, werden Sie
die vererbten Variablen
nicht sehen , wenn es aktiviert ist, Sie werden sehen. Lassen Sie mich die Kategorie
Variablen noch einmal erweitern. Diese Variablen, die wir in unseren Eltern
eingerichtet haben , sind
unser Basisblock. Und der Grund, warum wir das tun
wollten, ist
, dass wir diese
Standardwerte haben, wenn Sie so Aber wir können sie für
die Kinder anpassen. Und eines
der Dinge, von denen ich weiß, dass
wir an diesen Block Breakable
anpassen sollten ,
ist unser Soundeffekt hier. Standardmäßig haben wir diesen
Interact-Soundeffekt , der als
Variable eingerichtet ist , und unser Wert hier ist derzeit
ein Münz-Soundeffekt Dafür werde ich es in
einen Breakable, einen Brick Break, ändern
wollen einen Breakable, einen Brick Break, Also lass uns das gleich auf den
Brick Break Sound umstellen. Okay, jetzt
springen wir zu unserem Event-Graph. Und wir werden ein Skript
hinzufügen , um anzupassen, was passieren
soll , wenn wir mit diesem Block
interagieren. Also werde ich hier
zu unserem Ereignisdiagramm springen. Jetzt können Sie sehen, dass wir
dieses Event gestartet haben. Und es ist mit dem Start des Spiels für
Eltern verknüpft. Nun, das ist es wert, hier erwähnt zu werden, denn wenn ich hier zu unserer
BP-Blockbasis gehe, kann ich im Inhaltsbrowser dorthin navigieren, wo sich
das befindet, oder ich kann das übergeordnete Element öffnen. Lassen Sie uns das übergeordnete Element öffnen.
Hier ist das Elternteil, unsere BP-Blockbasis. Wir
stellen im Grunde sicher, dass, wenn anfangen,
hier
in unserem Breakable zu spielen all dieser Code auch
mitgeliefert wird auch
mitgeliefert Ordnung, hier in unserem BP-Block Breakable,
das ist Wir lassen
das alles stehen. Ich werde einfach mit der linken Maustaste klicken
und ziehen, und wir werden das
löschen. Jetzt möchte ich
ein Event für unseren
Trefferblock, unser Interface, einbauen. Wenn ich also mit der rechten Maustaste in
eine leere Stelle klicke und Trefferblock eintippe, kann
ich ein Ereignis hinzufügen, um den Block zu
treffen. Jetzt wird dieses Ereignis
ausgelöst, wenn mit unserem Block interagiert
wird Denken Sie jetzt daran, dass unsere BP-Blockbasis das gesamte Skript
für die Interaktion
enthält Wir haben die
Unterseite dieses Würfels getroffen. Wir haben dieses
Interaktionsskript
mit dem Aufruf zu diesem Trefferblock abgeschlossen . Sobald wir diesen
Punkt in unserem Skript erreicht haben, wird
es diesem
Trefferblock-Ereignis hier
in unserem Kind mitteilen , dass es ausgelöst wird
und dann ein
benutzerdefiniertes Skript ausgeführt wird. Wir
müssen hier also nicht das gesamte Skript wiederholen , das bereits im Elternteil für
uns erledigt wurde. Dieser Aufruf hier ist
gut genug, um diese Funktionalität dann hier
an unser Kind
weiterzugeben. Okay, was
wollen wir daraus machen? Nun, wir wollen, dass mehrere Dinge passieren, wenn wir diesen Block erreichen. Und weil wir wollen, dass
mehrere Dinge passieren, werde
ich eine Sequenznotiz hinzufügen. Nun, die Sequenznotiz ist
einfach sehr
nützlich , um mehrere
Dinge zu organisieren , die wir gerne hätten. Wir möchten, dass hier etwas
passiert, dann hier. Und dann werden
wir tatsächlich
einen dritten Pin hinzufügen , indem wir hier klicken. Es werden also drei
verschiedene Dinge passieren. Das ist eine wirklich nette, ordentliche und geordnete Art, das
zu bewerkstelligen. Okay? Das Erste, was ich hier tun
möchte, ist einige
Blockinteraktionseffekte
abzuspielen. Und falls Sie sich erinnern,
haben wir
hier in unserem Inhaltsbrowser diese
BP-Funktionsbibliothek erstellt. Und hier haben wir diese Funktion zum
Abspielen der
Blockinteraktionseffekte eingerichtet . Das wird jetzt hier,
in unserem
BP-Block Breakable,
ins Spiel kommen unserem
BP-Block Breakable Wenn wir klicken, können wir nach
Play-Block-Interaktionseffekten suchen und sehen, dass sich
diese Funktion
in unserer BP-Funktionsbibliothek befindet Wir können jetzt hier
in diesem Blueprint darauf zugreifen. Jetzt müssen wir nur
noch angeben, welche Art von Sound- und visuellen Effekten
wir abspielen möchten Das wird ziemlich einfach
sein. Wir werden diese N Null einfach in unseren Play-Block
Interact Effects einbauen. Ich doppelklicke auf dieses Kabel, um eine
kleine Umleitung einzuleiten Hinweis: Aus organisatorischen Gründen können wir
jetzt
unseren Soundeffekt,
unseren
Interact-Soundeffekt , einbauen und ihn
für unseren visuellen Effekt direkt auf
diesen Soundeffekt-Pin
ziehen für unseren visuellen Effekt direkt auf
diesen Soundeffekt-Pin Auch hier gebe ich Ihnen
zwei Optionen. Das neuere
Niagara-Partikeleffektsystem oder das ältere
Partikeleffektsystem Dafür werde ich mein älteres Interact VX-Partikel Das ist dieser zerbrechliche Topf. Ich stecke das einfach da rein. Beachten Sie, dass dies ein Entweder-Oder ist. So
soll das eingerichtet werden. Sie könnten beides tun, aber wählen Sie einfach einen für den VFX-Standort Was ich tun werde, ist, mit der rechten Maustaste zu klicken und den Standort des Schauspielers abrufen einzugeben Das Ziel hier ist
selbstbewusst, wo auch immer sich dieser BP-Block, der zerbrechlich
ist, auf der Welt befindet Das werde ich jetzt ein bisschen
ausgleichen. Ich könnte das im
Mittelpunkt dieses Blocks spielen, aber wo ich das
spawnen möchte, ist tatsächlich
etwas oberhalb der Z-Achse Also
ziehe ich es von hier raus und füge ein Plus-Symbol ein Ich werde hier
einen Werbefachmann hinzuziehen. Und ich werde einfach 50 in der Z-Achse
hinzufügen,
nur um das Ganze ein wenig
über der exakten
Position dieses Blocks
zu erzeugen , der durch
Versuch und Irrtum
durchbrechen kann Ich habe gelernt, dass das ziemlich gut
ist. Okay, ich werde
diesen Teil des Drehbuchs
hier ein bisschen durchforsten Ich werde dieses Elternteil ein bisschen so
hierher bringen. Und das wird unser
erstes Drehbuch hier sein, diesen Block Interact X
abzuspielen. Okay, als Nächstes möchte
ich in unseren BP-Punkten
spawnen Wir wollen an einigen Punkten spawnen und auch
einige Punkte hinzufügen, indem wir an einigen Punkten
spawnen Wir haben diesen
BP-Punkte-Akteur genau hier eingerichtet. Wir wollen das in
das Spiel integrieren, damit
es die
richtige Anzahl an Punkten anzeigt In diesem Akt, BP-Punkte
,
wollen wir hier in unserem
BP-Block Breakable spawnen Die Art und Weise, wie wir das machen können,
besteht darin, das in die Länge zu ziehen. Dann ein Pin, wir bringen Schauspieler
aus dem Unterricht hervor. Dies ist ein Knoten, den
wir einbringen wollen. Hier können wir unter Unterstrichpunkten der
Klasse BP spawnen Unterstrichpunkten der
Klasse BP Jetzt müssen wir
eine Spawn-Transformation
angeben , wo sie erscheinen
soll Wenn wir klicken, können wir sagen,
Get Actor Transform. Die Transformation besteht aus Positions-, Rotations- und Maßstabsdaten. Unser Ziel hier ist es, dass
dieser BP-Block durchbrochen werden kann. Wir ermitteln die
Position, Größe
und Rotation dieses
speziellen Blocks Dort
werden wir ihn spawnen,
in diesem Knoten haben wir
diese Punkte, um Eingaben hinzuzufügen Der Grund dafür ist, dass
wir in unseren BP-Punkten, die wir eingerichtet haben, diese Variable
namens points to
add Over im Detailbereich erstellt
haben .
Wir sagten, beim Spawn verfügbar zu machen, indem wir dieses Kästchen ankreuzen, um diese Instanz
nutzbar zu machen Beim Spawn verfügbar machen, indem Sie
diese beiden Kästchen ankreuzen. Das ist so gemacht, dass uns diese Variable zur
Verfügung gestellt wird, wenn wir versuchen,
diesen Akteur zu spawnen versuchen,
diesen Akteur zu Und wir können
es von hier aus
in unserem
BP-Block Breakable anpassen in unserem
BP-Block Breakable Also hier ist, was wir tun können. Wir können unsere Punkte in unsere Punkte
einbauen, um sie zu addieren, und wir
können bestimmen ,
wie viele Punkte das sein sollen ,
wenn wir diesen Block auseinanderbrechen Ich belasse das jetzt
bei zehn. Okay, als Nächstes. Was wir auch tun
wollen, ist, einen Hinweis
auf
unseren Player-Controller zu geben. Und wir haben einen Verweis auf unseren Player-Controller,
weil dieser hier in unserer Liste
der geerbten Variablen übernommen wurde . Player-Controller, das ziehen
wir mit rein. Wir holen es uns
und dann
ziehen wir es weg und geben Zusatzpunkte ein. Jetzt werde ich gleich
unseren Player-Controller
hier öffnen . Sie werden diese zusätzlichen Punkte nur
finden, wenn Sie die Maus aus Ihrer
Player-Controller-Referenz herausziehen. Zurück in unserem BP
Player-Controller haben wir dieses benutzerdefinierte
Ereignis namens Punkte hinzufügen erstellt. Der Grund, warum wir das Ganze Add Points
nennen
konnten , ist, all
das in
unserem Player-Controller existierte. Wenn wir das in
unserem BP-Block als zerbrechlich bezeichnen , sagen
wir, hey, Spieler-Controller feuert das benutzerdefinierte Event
ab fügt Punkte hinzu, sodass wir beliebig viele Punkte
hinzufügen können Wir verrechnen das mit unserer
aktuellen
Punktezahl und setzen das dann
als neue Punktezahl Denken Sie daran, dass diese
Punktevariable hier, innerhalb unseres Player-Controllers, an unser HUD
hier in unserer UD gebunden
ist, unsere Punktevariable in unserem Player-Controller
ist hier gebunden, also wird sie
das hier in unserem HUD widerspiegeln Ziemlich süß. Und sieh dir an, wie
das alles zusammenkommt. Natürlich müssen wir uns sagen, wie viele Punkte wir hinzufügen wollen, weil das
durch diese benutzerdefinierten Ereignisse gespeist wird . Wenn ich also auf
„
Hier Punkte hinzufügen“ doppelklicke , unsere Punkte,
die hinzugefügt werden sollen, fließt hier
durch und addiere es zu unserer aktuellen
Anzahl an Punkten. Deshalb haben wir diese Eingabe
hinzugefügt, unsere Punkte zum Hinzufügen, sodass
wir
hier in unserem Block Breakable eingeben können, wie viele
Punkte wir hinzufügen möchten Und wir werden unsere Punkte einfach per
Drag-and-Drop drüber Und jetzt hätte ich einfach die Drogen rausnehmen und das auch hier
einstecken können. Es spielt keine Rolle, ob
Sie mehrere
dieser Variablen-Getter haben oder ob Sie sie
aus demselben herausziehen, es wird dasselbe bewirken Okay, jetzt spielen wir ein
paar Interaktionseffekte. Wir erzeugen eine
Punkteanzeige und addieren die
Anzahl der Punkte Das Letzte, was wir tun müssen, ist diesen Schauspieler
einfach zu vernichten Wenn ich also von meinen beiden abziehe, kann
ich Destroy Actor eintippen. Und wir wollen sichergehen , dass das das Letzte ist,
was wir tun. Wenn wir also auf diesen Block treffen, spielen
wir die Effekte ab, spawnen
in unserer Punkteanzeige und addieren tatsächlich einige
Punkte zusammen Das muss das
Letzte sein, was wir tun, denn wenn wir das
als Erstes machen würden, würde
nichts von diesen anderen
Dingen passieren Okay, da ist unser
fertiges Skript, also lasst uns weitermachen und es
kompilieren und speichern Und es sieht so aus, als ob unser Skript als Nächstes einsatzbereit
ist. Lass uns einfach
einen zerbrechlichen Block per Drag-and-Drop in unser Level ziehen,
irgendwo in der Nähe des Starts meiner Spieler Nur zu Testzwecken habe
ich meine beiden
D-Snap-Einstellungen hier auf die
Hauptebene gebracht, also lasst uns unsere Blöcke finden Ich
ziehe das einfach rein, also füge ich ein paar solcher
Instanzen hinzu. Und lass uns reinspringen und spielen. Jetzt konnte ich sehen, wie meine
Punkte angezeigt wurden , obwohl sie
nicht zur Kamera gerichtet waren. Was ich hier tun kann,
ist in meine
BP-Punkte zu springen und hier meine
Widget-Komponente auszuwählen. Ich werde das einfach so drehen , dass es zur Kamera zeigt. Derzeit wird es so
angezeigt. Also alles, was ich hier tun muss,
ist es einfach zu drehen. Ich
drücke einfach die Leertaste. Rotieren. Lassen Sie mich hier
meine Inkremente für meine
Snap-Einstellungen festlegen. Wir werden diese Seite
der Kamera drehen . Das
werde ich mir sparen. Und wenn ich jetzt reinspringe und spiele und
mit diesen Blöcken interagiere, muss
ich auf
die Feuerleiste dort achten. Ich kann diesen Block zerstören. Ich sehe, dass die Punkte tatsächlich oben rechts
angezeigt werden. Sie können im
HUD sehen, dass
ich jetzt insgesamt 20 Punkte habe, weil jeder dieser Blöcke jeweils zehn Punkte
wert war jeder dieser Blöcke jeweils zehn Punkte Also scheint alles wie im Design
zu funktionieren. Also gut, Leute,
das wird alles für diesen machen. Wir sehen uns im nächsten.
34. Coin blockieren: In Ordnung, also hier ist der Deal. Wie Sie diesem
klassischen Mario-Filmmaterial entnehmen können, interagiert
Mario
mit verschiedenen Blöcken. Und bei einigen Blöcken, mit denen
er interagiert ,
wie dem erscheint
eine Münze daraus Unser Ziel in diesem Video ist es nun, einen Plan aus der
Schauspielerklasse
einer Blockmünze zu
erstellen , die aus verschiedenen Blöcken
herausspringt , wenn
Mario mit ihr interagiert Okay, um
hier, zurück in unserem Editor, anzufangen, werde
ich das im
Blueprint-Blockordner
der Inhaltsplattform machen Blueprint-Blockordner
der Inhaltsplattform Ich werde schreiben, klicken Sie auf
Neue Blueprint-Klasse. Das wird ein
Schauspieler-Kurs sein, weil wir das in das Spiel einbauen werden Und ich werde das BP
Underscore Block Score Coin nennen Underscore Block Score Coin Nein, nochmal, das wird sich von unserer Münzwiedergabe
unterscheiden Lassen Sie mich hier
die Eingabetaste drücken, damit das in der Welt erscheint
und das, was sich dreht, wenn wir mit verschiedenen
Blöcken interagieren Lass uns sofort
darauf doppelklicken. Um es im
Komponentenfenster zu öffnen, fügen
wir nur eine Komponente hinzu. Es wird ein statisches Netz sein. Ich werde diese Münze
im Detailbereich aufrufen. Ich habe mehrere Dinge, die
ich einstellen möchte. Das erste ist ein statisches Netz. Ich werde das
auf einen Zylinder einstellen. Ich werde diesen
Zylinder gleich hier wählen. Ich werde
ihn auch sofort auf die Seite drehen, also setze ich die
Drehung auf B. Ich habe einige Einstellungen
im Voraus ausgewählt, minus 70. Das Y wird minus 90
sein, das Z wird minus 20
sein. Für die Skala werde ich den Wert
auf 0,750,
0,75 und dann auf 0,07 einstellen ,
was Und weil ich die Einstellungen für die
Waagensperre aktiviert hatte, ändert sich
jedes Mal, wenn ich einen
dieser Parameter ändere
, alle Wenn ich es also entsperre, kann ich sie alle einzeln
einstellen. Also das waren 0,75 in der X
- und 0,75 in der Y. Ich möchte
0,75 in der Z-Richtung haben , damit es
dort in Z-Richtung schön dünn Ordnung, außerdem möchte
ich hier ein Material einstellen Ich tippe eine Münze ein. Ich setze das auf das
neuere Münzmaterial, obwohl es nicht wirklich
wichtig ist,
welches ich unten im
Kollisions-Bereich auswähle,
ich werde
meine Kollisions-Voreinstellung
hier so welches ich unten im
Kollisions-Bereich auswähle,
ich werde
meine Kollisions-Voreinstellung ändern , dass es keine Kollision ist,
weil ich
sicherstellen will dass es keine Kollision ist,
weil ich
sicherstellen , dass niemand
damit kollidieren kann, wie mit einem Feind, den
wir später erschaffen. Ordnung, nachdem all das erledigt ist, gehen
wir zu
unserem Ereignisdiagramm Und wir werden hier
in einem leeren Raum etwas erschaffen. Rechts, klicken Sie auf eine Zeitleiste. Zeitleiste. Weil es mehrere Dinge gibt, die wir im Laufe der Zeit ändern
wollen. Also werde ich eine Zeitleiste hinzufügen. Ich nenne das meine Münze,
eine Zeitleiste, bei der man die Steuerung
gedrückt hält und das
Mausrad nach oben
bewegt, um es zu vergrößern Ich werde darauf
doppelklicken, um es
in unserem
Zeitleisten-Tab hier zu öffnen in unserem
Zeitleisten-Tab hier .
Ich werde sofort zwei
Titel hinzufügen Wenn ich auf Track klicke
, drücke ich einmal darauf. Wir werden
einen Float-Track hinzufügen. Und ich werde
das als erste Bewegung bezeichnen. Dies wird die Bewegung unserer
Münze
im Laufe der Zeit bestimmen . Dann werde ich hier einen weiteren
Track hinzufügen, einen Float-Track. Und das wird Rotation heißen,
weil wir
unsere Münze im Laufe der Zeit rotieren wollen .
Wie viel Zeit? Nun, wir werden unsere Zeitleiste
hier auf 0,4 Sekunden
festlegen . Ordnung, und jetzt arbeite ich
in unserer Bewegungszeitleiste Zuerst klicke ich mit der
rechten Maustaste und schwenke das Ganze in die Mitte, zoome
mit meinem Scrollrad ein wenig nach oben, halte
die Umschalttaste gedrückt und klicke
dreimal 123. Nun, es ist nicht wirklich
wichtig, wo ich klicke, weil ich manuell
eine Zeit in einem Wert
für jeden dieser Werte
oder diesen letzten Keyframe, den
ich hier ausgewählt habe, setze eine Zeit in einem Wert
für jeden dieser Werte
oder diesen letzten Keyframe, den
ich hier ausgewählt habe, ich die Zeit
auf 0,4 und den Wert 2200 oder jetzt können Sie sehen, dass es hier vom Bildschirm
gesprungen ist. Das ist in Ordnung. Für das nächste setze ich die Zeit auf 0,25 und den Wert auf 300 Und für dieses
allererste Schlüsselbild werde
ich die Zeit
auf Null und den
Wert auf Null setzen auf Null und den
Wert auf Null Wenn ich jetzt hier auf
meine Pfeile klicken würde, Zoo-Linie ein bisschen rausziehen. Ich kann all
diese Keyframes markieren, indem ich mit der linken
Maustaste klicke und sie ziehe Und was ich tun möchte, ist, dass sie
alle hervorgehoben sind und
ich mit der rechten Maustaste auf einen
von ihnen klicke . Sie sind
alle hervorgehoben. Wenn sie blau sind, klicke
ich mit der rechten Maustaste darauf. Und ich werde die
Tasteninterpolation auf Auto setzen. Dadurch wird diese
gekrümmte Linie hier
geglättet diese
gekrümmte Linie hier
geglättet Anstatt dass das eine
gerade Linie ist, gerade Linie, wird
es eine
glatte, kurvige Linie wie diese machen Jetzt, wo all diese hervorgehoben sind, werde
ich noch einmal auf
die Pfeile klicken Und Sie können diese Kurve
etwas genauer sehen. Diese Kurve
soll nun
einen Float-Wert im Laufe der
Zeit ändern einen Float-Wert im Laufe , um die
Bewegung unserer Münze zu bestimmen. Also im Grunde genommen geht es von
der Startposition oben in die Luft und dann
wieder ein bisschen runter. Okay, als Nächstes werden wir
unsere Rotationseinstellungen ändern , weil wir diese Münze haben wollen
, wenn sie reinkommt Nicht nur, um einfach in
die Luft zu steigen und dann
wieder ein bisschen runter zu fallen, sondern auch, um sich zu drehen Dafür
benötigen wir nur zwei Keyframes. Also werde ich
die Umschalttaste gedrückt halten und mit der linken
Maustaste auf den ersten klicken. Ich
werde auf eine Zeit von
Null und einen Wert von Null setzen Und dann klicke ich einfach mit der
rechten Maustaste auf eine beliebige Stelle, wir fügen eine weitere Taste hinzu Das ist eine weitere Möglichkeit, einen Keyframe für diesen
hinzuzufügen Ich stelle die Zeit auf 0,4 ein, also das Ende
unserer Zeitleiste hier Und der Wert, der beim Drücken der Tabulatortaste zu dem
Wertefeld
springt, setze
ich auf 720, also
im Grunde zwei Drehungen Ich werde hier auf
diese Pfeile klicken
, um jeden dieser
Schlüsselbilder anzuzeigen. Mir geht es hier mit einer
geraden Linie gut. Ich muss das überhaupt nicht
krümmen. Meine Münze wird in
die Luft steigen und dann
wieder ein bisschen nach unten fallen. Und dann wird sie hier auch zwei volle Umdrehungen machen, 720 Grad im Laufe
von 0,4 Sekunden. Ordnung, jetzt springen wir
zurück zu unserer Eventgrafik hier, aus unserer Münz-Timeline Und Sie können sehen, dass wir jetzt
zwei Ausgangspins haben , um
Werte aus unseren Float-Tracks zu übertragen. Dies wird also den Wert jedes Floats im Laufe
der Zeit
ausgeben jedes Floats im Laufe
der Zeit Es wird sich in Bezug auf Bewegung
und Rotation über 0,4
Sekunden
ändern Bewegung
und Rotation über 0,4
Sekunden Wir müssen
hier ein bisschen zurückweichen. Und wir werden unsere
Veranstaltung beginnen lassen. Spielen Sie in dieser Grafik nach
vorne. Dieser Knoten hätte
existieren müssen, als Sie diesen Blueprint
zum ersten Mal erstellt Falls nicht,
können Sie mit der rechten Maustaste klicken und nach Event Begin suchen Abspielen. Nach dem Start von Event Begin Play
werden wir auf unsere Variablen im Bereich „
Mein Blueprint“ zugreifen Gehen Sie unter Komponenten
und Sie sollten jetzt
diese Münz-Anum-Komponente finden , die dieser
Zeitleisten-Münze kommuniziert Wir ziehen das raus, lassen es fallen und holen Der Grund, warum
wir das veröffentlichen werden ist, dass
wir
das in die Länge ziehen und die festgelegte Wiedergabegeschwindigkeit eingeben werden. Derzeit
ist diese Zeitleiste 0,4 Sekunden lang. Und ich werde die Raten auf
1,0
setzen . Sie können sich das
wie ein Prozentfeld vorstellen, 0,5 wäre die Hälfte der
normalen Wiedergabegeschwindigkeit. Also werde ich es einfach mit der üblichen Geschwindigkeit spielen
. Beachten Sie jedoch, dass Sie, wenn Sie die Geschwindigkeit ändern
möchten, mit der
das Spiel abgespielt wird, diese Zahl hier
ändern würden, damit Sie das
Tempo
ändern können, mit dem das Spiel abgespielt wird,
ohne die
Timeline selbst anpassen zu müssen. Jetzt könnte ich das ins
Spiel einbauen oder von vorne spielen. Ich werde von Anfang an
spielen,
weil ich möchte, dass es von Anfang
an abgespielt wird. Spielen Sie, wann immer dieser spezielle
Plan beginnt. Jetzt wird es losgehen und mit
dem Spielen beginnen wann immer wir
das in unser Spiel einbauen Dann geh hier nach rechts. Bringen Sie einen Hinweis auf meine Münze aus dem
Komponenten-Panel mit, weil ich
die Position und die
Drehung dieser Münze im Laufe der Zeit anpassen möchte . Linksklick und Ziehen. Was ich dann tun werde, ist daraus
herauszuziehen
und Set einzugeben. Und ich möchte
die relative Position
und Rotation des Objekts im Laufe der Zeit ändern . Ich möchte den relativen Wert im
Verhältnis zum Standort
dieser Münze im Laufe der Zeit ändern Verhältnis zum Standort
dieser Münze im Laufe der , wenn wir unsere Werte im Laufe der Zeit
aktualisieren. Hier möchte ich aktualisieren,
wo sich unsere Münze befindet. Ich ziehe hier von
unserem neuen Standort
rückwärts und tippe Make Vector Da eine Position
aus X, Y und Z besteht
und ich nur eine davon
ändern möchte, werde
ich diese kopieren. und ich nur eine davon
ändern möchte, werde
ich diese kopieren Knotensteuerung C
Steuerung V Steuerung D. hätte einfach sofort
dupliziert werden Entschuldigung, ich möchte keinen Vektor für diesen
erstellen. Ich möchte
diese neue Rotation machen. Ich werde schreiben, klicken Sie,
das wird in
unsere neue Rotation eingefügt. Das heißt, wir nehmen unsere Float-Werte und fügen
sie in ein bestimmtes Feld ein. Auch hier möchte ich
meine Münze nur in der Z-Achse nach oben bewegen. wir unseren
Wert im Laufe der Zeit ändern, werden
wir unsere
Z-Position der Münze, also
die Aufwärts- und
Abwärtsposition der Münze, aktualisieren . Und denken Sie daran, dass
wir hier
in unserer Zeitleiste von unserer ursprünglichen Position um 300 unwirkliche Einheiten
aufsteigen und dann ganz am Ende
wieder auf
200 unwirkliche Einheiten
für unsere Rotation sinken 200 unwirkliche Einheiten
für unsere Ich nehme hier
die Drehung vor, und wir wollen
sie entlang der Z-Achse drehen Das wird es wie
ein Oberteil
drehen , wenn es in die Luft
steigt. Und auch hier in unserer Zeitleiste werden
wir uns um 720 Grad
drehen. Das sind zweifache Umdrehungen
über 0,4 Sekunden. Das ist ein gutes Drehbuch,
um einfach unsere Münze zu bewegen, aber ich möchte hier ein
bisschen Jazz hinzufügen Also, was ich tun werde, ist unsere Zielnadel
abzuziehen. Wenn die Animation
fertig abgespielt ist, werde
ich sie von hier im
Spawn-Emitter an der Position wegziehen Spawn-Emitter an Spawn-System am Standort ist der Name des
Knotens, den Sie verwenden
möchten , wenn Sie
ein Niagara-Partikelsystem verwenden möchten Dies ist das ältere
Partikelsystem. Ich möchte genau hier in einem Emitter spawnen, der
als Underscore Lot
Pick Up bekannt ist als Underscore Lot
Pick Up Dieser ist im
Infinity Blade EffX-Paket enthalten. Was wir dann tun
müssten, ist
einen Verweis auf unsere
Münze hineinzuziehen , von hier wegzuziehen
und sagen, den Standort der Welt ermitteln
und das hier einstecken sobald wir mit
dieser Zeitleiste fertig sind, einen Partikeleffekt erzeugen,
eine
Art Partikeleffekt an der aktualisierten
Weltposition
unserer Münzen,
nur damit diese Münze quasi Wenn wir also den Standort
unserer Münze aktualisieren, wird
sie, sobald wir mit
dieser Zeitleiste fertig sind, sobald wir mit
dieser Zeitleiste fertig sind, einen Partikeleffekt erzeugen,
eine
Art Partikeleffekt an der aktualisierten
Weltposition
unserer Münzen,
nur damit diese aktualisierten
Weltposition
unserer Münzen, explodiert in glorreicher Pracht erstrahlt Ordnung,
damit können wir weitermachen und kompilieren und speichern Das wird sicherstellen, dass
unser Drehbuch einsatzbereit ist. Wir können dies jetzt in
Zukunft für mehrere
unserer zukünftigen Blöcke
nutzen . Leute, das wird
alles für diesen machen. Wir sehen uns im nächsten.
35. Coin blockieren: In Ordnung, also hier ist der Deal. Wie Sie diesem
klassischen Mario-Filmmaterial entnehmen können, interagiert
Mario
mit verschiedenen Blöcken. Und bei einigen Blöcken, mit denen
er interagiert, wie dem, der gerade ist, spawnt
eine Münze daraus Unser Ziel in diesem Video ist es nun, einen Plan aus der
Schauspielerklasse
einer Blockmünze zu
erstellen , die aus verschiedenen Blöcken
herausspringt , wenn
Mario mit ihr interagiert Okay, um
hier, zurück in unserem Editor, anzufangen, werde
ich das im Ordner
Blueprint Blocks
der Inhaltsplattform machen Blueprint Blocks
der Inhaltsplattform Ich klicke mit der rechten Maustaste auf
Neue Blueprint-Klasse. Das wird ein
Schauspieler-Kurs sein, weil wir das
in das Spiel integrieren werden Ich werde das BP
Underscore Blocks Coin nennen. Auch das wird
anders sein als bei der Abholung von Münzen Lassen Sie mich hier
die Eingabetaste drücken, damit das in der Welt erscheint
und das, was sich dreht,
wenn wir mit verschiedenen Blöcken
interagieren, macht was sich dreht,
wenn wir mit verschiedenen Blöcken
interagieren Lass uns sofort
darauf doppelklicken. Um es im
Komponentenfenster zu öffnen, fügen
wir nur eine Komponente hinzu. Es wird ein statisches Netz sein. Ich werde diese Münze
im Detailbereich aufrufen. Ich habe mehrere Dinge, die
ich einstellen möchte. Das erste ist ein statisches Netz. Ich werde das
auf einen Zylinder einstellen. Ich werde diesen
Zylinder gleich hier wählen. Ich werde
ihn auch sofort auf die Seite drehen, also stelle ich
die Drehung auf, ich habe einige
Einstellungen
im Voraus ausgewählt , minus 70. Das Y wird minus 90
sein, das Z wird minus 20
sein. Für die Skala
werde ich den Wert auf
0,750, 0,75 und dann auf
0,07 einstellen 0,750, 0,75 und dann auf
0,07 , was wirklich dünn weil ich meine Einstellungen für die
Skalensperre aktiviert hatte Immer wenn ich einen
dieser Parameter ändere
, werden alle geändert Wenn ich es entsperre, kann ich sie
alle einzeln einstellen. Also das waren 0,75 in der X
- und 0,75 in der Y. Ich möchte
0,75 in der Z-Richtung haben 0,75 in der Z-Richtung , damit es
dort in Z-Richtung schön dünn Ordnung, außerdem möchte
ich hier
ein Material einstellen ein Ich tippe eine Münze ein. Ich setze das auf das
neuere Münzmaterial, obwohl es nicht wirklich
wichtig ist,
welches ich unten im
Kollisions-Bereich auswähle,
ich werde
meine Kollisions-Voreinstellung
hier so welches ich unten im
Kollisions-Bereich auswähle,
ich werde
meine Kollisions-Voreinstellung ändern , dass es keine Kollision ist,
weil ich
sicherstellen will , dass niemand damit kollidieren kann , wie
mit einem Feind, den
wir später erschaffen. Ordnung, nachdem all das erledigt ist, gehen
wir zu
unserem Ereignisdiagramm über Und wir werden hier
in einem leeren Bereich mit der
rechten Maustaste eine Zeitleiste erstellen rechten Maustaste eine Zeitleiste Zeitleiste, weil es mehrere Dinge
gibt , die wir im Laufe der Zeit ändern
möchten. Also werde ich eine Zeitleiste hinzufügen. Ich nenne das meine Münze,
eine Zeitleiste, bei der man die Maus
gedrückt hält und nach
oben fährt, um sie zu vergrößern Ich werde
darauf doppelklicken, um es zu öffnen. In unserem Zeitleisten-Tab hier werde
ich sofort zwei
Titel hinzufügen. Auf Track klicken. Ich
werde es einmal drücken. Wir werden
einen Float-Track hinzufügen. Und ich werde
das als erste Bewegung bezeichnen. Dies wird die Bewegung unserer
Münze
im Laufe der Zeit bestimmen . Und dann werde ich hier
noch einen Track hinzufügen ,
einen Float-Track. Und das
wird
Rotation heißen, weil
wir unsere Münze im Laufe der Zeit rotieren
wollen . Wie viel Zeit? Nun,
wir werden unsere Zeitleistenlänge
hier auf 0,4 Sekunden festlegen. Ordnung, und jetzt arbeiten wir zuerst in unserer Zeitleiste, klicken
wir mit der rechten Maustaste und schwenken
sie in die Mitte. Zoomen Sie
mit meinem Scrollrad ein wenig nach oben. Ich werde
die Umschalttaste gedrückt halten und dreimal auf 123 klicken. Jetzt ist es eigentlich
egal, wo ich klicke, weil ich für jeden
dieser oder diesen letzten Keyframe, den ich hier
ausgewählt habe
, manuell
eine Zeit in einem Wert festlegen werde für jeden
dieser oder diesen letzten Keyframe, den ich hier
ausgewählt habe
, manuell
eine Zeit in einem Wert dieser oder diesen letzten Keyframe ich hier
ausgewählt habe
, Ich stelle die Zeit auf 0,4 und den Wert auf 200 ein Jetzt können Sie hier sehen, wie
es vom Bildschirm gesprungen ist. Das ist in Ordnung. Für das nächste setze ich die Zeit auf 0,25 und den Wert auf 300 Für dieses allererste Schlüsselbild werde
ich die Zeit
auf Null und den
Wert auf Null setzen auf Null und den
Wert auf Null Wenn ich jetzt genau hier auf
meine Pfeile klicken würde, Zoo-Linie ein wenig ausrichten. Ich kann all
diese Keyframes markieren, indem ich mit der linken
Maustaste klicke und sie ziehe Ich möchte, dass sie
alle hervorgehoben sind und
ich mit der rechten
Maustaste auf einen von ihnen klicke Sie sind alle hervorgehoben.
Wenn sie blau sind, klicke ich mit der
rechten Maustaste darauf. Und ich werde die
Tasteninterpolation auf Auto setzen. Dadurch wird diese
gekrümmte Linie hier
geglättet diese
gekrümmte Linie hier
geglättet Anstatt dass das eine
gerade Linie ist, gerade Linie, wird
es eine
glatte, kurvige Linie wie diese machen Jetzt, wo all diese hervorgehoben sind, werde
ich noch einmal auf
die Pfeile klicken Und Sie können diese Kurve
etwas genauer sehen. Diese Kurve
soll nun
einen Float-Wert im Laufe der
Zeit ändern einen Float-Wert im Laufe , um die
Bewegung unserer Münze zu bestimmen, im Wesentlichen
von ihrer
Startposition nach oben in die Luft geht . Und dann ein bisschen zurück. Okay, als Nächstes werden wir
unsere Rotationseinstellungen ändern , weil wir diese Münze haben wollen
, wenn sie reinkommt Nicht nur, um einfach in
die Luft zu steigen und dann
wieder ein bisschen nach unten zu fallen, sondern auch, um sich zu drehen Dafür
benötigen wir nur zwei Keyframes. Ich werde die
Umschalttaste gedrückt halten und mit der linken Maustaste klicken. Den ersten setze ich
auf eine Zeit von Null und einen Wert von Null. Und dann klicke ich einfach mit der
rechten Maustaste auf eine beliebige Stelle hier. Wir werden einen weiteren Schlüssel hinzufügen. Das ist eine weitere Möglichkeit, einen Keyframe für diesen
hinzuzufügen Ich werde die Zeit auf
0,4 einstellen , also das Ende
unserer Zeitleiste hier. Und der Wert, der beim Drücken
der Tabulatortaste zu dem
Wertefeld wechselt, setze
ich auf 720, also
im Grunde zwei Drehungen Ich werde hier auf
diese Pfeile klicken
, um jeden dieser
Schlüsselbilder anzuzeigen. Und mir geht es hier mit einer
geraden Linie gut. Ich muss das überhaupt nicht
krümmen. Meine Münze wird in
die Luft steigen und dann
wieder ein bisschen nach unten fallen. Und dann wird sie hier auch zwei volle Umdrehungen machen, 720 Grad im Laufe
von 0,4 Sekunden. Ordnung, jetzt
springen wir zurück zu unserer
Eventgrafik hier aus
unserer Münzzeitlinie Und Sie können sehen, dass wir jetzt zwei Ausgangspins
haben, zwei Float-Werte aus
unseren Float-Tracks. Dies wird also den Wert jedes Floats im Laufe
der Zeit
ausgeben jedes Floats im Laufe
der Zeit Es wird sich in Bezug auf Bewegung
und Rotation über 0,4
Sekunden
ändern Bewegung
und Rotation über 0,4
Sekunden Wir müssen
hier ein bisschen zurückweichen. Und wir werden unsere
Veranstaltung beginnen lassen. Spielen Sie in dieser Grafik nach
vorne. Dieser Knoten hätte
existieren müssen, als Sie diesen Blueprint
zum ersten Mal erstellt Falls nicht,
können Sie mit der rechten Maustaste klicken und nach dem
Ereignis Begin Play suchen Was wir
nach
Beginn des Events tun werden, ist, dass wir im Bereich „Mein Blueprint“
nach unseren Variablen Gehen Sie unter Komponenten
und Sie sollten jetzt
diese Münz-Anum-Komponente finden , die mit dieser
Zeitleisten-Münzen-Anum Wir ziehen das raus, lassen es fallen und holen es Und der Grund, warum wir das
rausbringen werden , ist, dass
wir
das in die Länge ziehen und eine festgelegte Wiedergabegeschwindigkeit eingeben werden. Derzeit
ist diese Zeitleiste 0,4 Sekunden lang. Und ich werde die Rate auf
1,0
setzen . Sie können sich das
wie ein Prozentfeld vorstellen, 0,5 wäre die Hälfte der
normalen Wiedergabegeschwindigkeit. Also werde ich es einfach mit der üblichen Geschwindigkeit spielen
. Beachten Sie jedoch, dass Sie, wenn Sie die Geschwindigkeit ändern
möchten, mit der
das Spiel abgespielt wird, diese Zahl hier
ändern würden, damit Sie das
Tempo
ändern können, mit dem das Spiel abgespielt wird,
ohne die
Timeline selbst anpassen zu müssen. Jetzt könnte ich das ins Spiel einbauen. Spiel. Ich werde von Anfang an spielen, weil ich möchte, dass es von Anfang
an abgespielt wird.
Immer wenn dieser spezielle
Plan beginnt, spiele ab Immer wenn dieser spezielle
Plan beginnt, spiele Jetzt wird es losgehen
. Beginne mit dem Spiel wann immer wir
das in unser Spiel einbauen Dann geh hier nach rechts. Bringen Sie einen Hinweis auf meine Münze aus dem
Komponenten-Panel mit, weil ich
die Position und die
Drehung dieser Münze im Laufe der Zeit anpassen möchte . Klicken Sie mit der linken Maustaste und ziehen Sie. Was ich dann tun werde, ist daraus
herauszuziehen
und Set einzugeben. Und ich möchte
die relative Position
und Rotation des Objekts im Laufe der Zeit ändern . Ich möchte den relativen Wert im
Verhältnis zum Standort
dieser Münze im Laufe der Zeit ändern Verhältnis zum Standort
dieser Münze im Laufe der , wenn wir unsere Werte im Laufe der Zeit
aktualisieren. Hier möchte ich aktualisieren,
wo sich unsere Münze befindet. Ich ziehe von
unserer neuen Position hier
rückwärts und tippe Vektor ein, weil ein Ort
aus X, Y und Z besteht. Und ich möchte nur einen
von diesen ändern und diesen kopiere ich Knotensteuerung C Steuerung V Steuerung D. Das hätte einfach sofort
dupliziert werden Entschuldigung, ich möchte keinen Vektor für diesen
erstellen. Ich möchte einen Rotator
für diese neue Rotation machen. Ich werde
Click Rotator schreiben. Das wird Teil unserer neuen Rotation sein. Jetzt nehmen wir unsere Float-Werte und fügen
sie in ein bestimmtes Feld ein. Auch hier möchte ich
meine Münze nur in der Z-Achse nach oben bewegen. wir unseren
Wert im Laufe der Zeit ändern, werden
wir unsere
Z-Position der Münze aktualisieren, die
Position der Münze nach oben und unten. Und denken Sie daran, dass
wir hier
in unserer Zeitleiste von unserer ursprünglichen Position um 300 unwirkliche Einheiten
aufsteigen und dann ganz am Ende
wieder auf
200 unwirkliche Einheiten
für unsere Rotation sinken 200 unwirkliche Einheiten
für unsere Ich nehme hier
die Drehung vor, und wir wollen
sie entlang der Z-Achse drehen Das wird es wie
ein Oberteil
drehen , wenn es in die Luft
steigt. Auch hier in unserer Zeitleiste werden
wir uns um 720 Grad
drehen. Das sind zweifache Umdrehungen
über 0,4 Sekunden. Das ist ein gutes Drehbuch,
um einfach unsere Münze zu bewegen, aber ich möchte hier ein
bisschen Jazz hinzufügen Also, was ich tun werde, ist unsere Zielnadel
abzuziehen. Wenn die Animation
fertig abgespielt ist, werde
ich sie von hier im
Spawn-Emitter an der Position wegziehen Spawn-Emitter an Spawn-System am Standort ist
der Name des Knotens, den Sie verwenden
möchten, wenn Sie ein Niagara-Partikelsystem
verwenden möchten ein Niagara-Partikelsystem
verwenden Dies ist das ältere
Partikelsystem. Ich möchte in
einem Emitter spawnen, der als
Underscore-Laute bekannt ist Direkt hier abholen. Dieser ist im
Infinity Blade Ef X Pack enthalten. Was wir dann tun müssten, ist einen Hinweis auf unsere Münze
hineinzuziehen, von hier wegzuziehen und
sagen, den Standort der Welt ermitteln. Und das hier einstecken. Im Grunde genommen, wenn wir
den Standort unserer Münze aktualisieren, wird
sie, sobald wir mit
dieser Zeitleiste fertig sind, sobald wir mit
dieser Zeitleiste fertig sind,
einen Partikeleffekt
dieses Puff-Partikeleffekts an der aktualisierten
Weltposition
unserer Münzen hervorrufen Bevor wir dieses Video
beenden, müssen
wir noch
ein paar Dinge klären. Ich hätte fast vergessen, nach unserem Spawn-Emitter
hier wir
nach unserem Spawn-Emitter
hier den Akteur
selbst über diesen Funktionsknoten zerstören müssen selbst über diesen Funktionsknoten Sie können einen davon erhalten, indem Sie
mit der rechten Maustaste auf eine leere
Stelle bei der
Eingabe klicken und den Akteur zerstören Die Idee ist, dass wir,
nachdem wir diese BP-Blockmünze
ins Spiel haben
und wir
mit der Münzanimation fertig sind, sie
loswerden müssen, um sie zu zerstören, sonst bleibt sie einfach in der Welt hängen Zum Schluss noch unser Münzgeflecht hier. Ich habe vergessen, dass wir unsere
Rotation hier auf minus
70 bzw. minus 90 in
X und Y eingestellt hatten . Wir müssen diese als
unsere Startrotatoren für X
und Y in diesem Rotatorknoten festlegen unsere Startrotatoren für X und Y in diesem Rotatorknoten Wenn wir das nicht tun, wird sich diese
Münze nicht so entlang der Achse
drehen, wie wir es beabsichtigt hatten Stellen Sie also sicher, dass
Sie Ihr X und
Y auf minus 70 und minus
90 setzen Y auf minus 70 und minus , damit sie mit unserer
anfänglichen Münzrotation übereinstimmen .
Das wird
für diesen Fall ausreichen. Wir sehen uns im nächsten.
36. Blockiere gefälschte Breakable (Münze innen): In diesem Video werden wir einen falschen zerbrechlichen Block
erstellen Das ist ein Block, der zerbrechlich aussehen
wird,
wie unser BP-Block, zerbrechlich, den wir bereits erstellt haben Wenn unser Charakter jedoch damit
interagiert,
wird er in unserer BP-Blockmünze erscheinen Unser Spieler wird
einige Punkte verdienen und seine
Münzsumme erhöhen Und dieser Block wird
nicht vollständig zerstört, er
wird bestehen bleiben. Und unser Spieler kann ihn als Plattform
nutzen. In Ordnung, lassen Sie uns
weitermachen und anfangen. Hier
klicken wir mit der rechten Maustaste auf unseren BP-Block Breakable Und wir werden
ein Duplikat davon erstellen ,
um Zeit zu sparen Wir werden diesen
BP-Block Fake Underscore Breakable nennen BP-Block Fake Underscore Breakable Und dann drücke ich die
Eingabetaste. Doppelklicken wir
darauf, um es zu öffnen. Wie wir nun sehen können, erbt
es von unserer
BP-Blockbasis, die unser übergeordnetes System ist Wie wir auch sehen können, haben
wir auch den
gesamten Code kopiert, der zu unserem
BP-Block Breakable
gehörte Hier ist unser Block
zerbrechlich und all das, weil wir
ein Duplikat davon erstellt haben, ist in unserem
gefälschten Breakable enthalten Das wird uns
ein bisschen Zeit sparen, obwohl wir hier einige Änderungen vornehmen
werden Ordnung, das Erste,
was wir tun werden, ist diesen Teil
des Drehbuchs hier nach oben zu verschieben Ich nehme unseren
Block Interact, FX. Wir müssen mit der linken Maustaste klicken
und das Ganze herumziehen. Ich tippe auf die
Taste und setze dann keine Klammern Das wird
unser Drehbuch vom Typ Play, Whoops, Play FX Ich werde hier im Detailbereich
die
Farbe Schwarz kommentieren , nur um ein
bisschen mehr Kontrast hinzuzufügen Dies dient nur dazu, die Dinge ein
bisschen ordentlicher und ordentlicher zu
halten bisschen ordentlicher und ordentlicher Jetzt wollen wir die Interaktionseffekte
dieses Blocks abspielen , wenn wir auf diesen Block stoßen Ich werde
unsere Funktionalität
hier jedoch ein wenig erweitern . Was wir zusätzlich zum
Spielen einiger
Blockinteraktionseffekte
tun wollen,
ist, dass wir
das
mit unseren Würfeln verknüpfte Material ändern wollen. Ich werde das per Drag &
Drop in unser Diagramm ziehen. Ich ziehe es von hier raus
und tippe das Set Material ein. Da ist es. Material festlegen. Wir zoomen nach oben, indem wir die Strg-Taste
gedrückt halten und mit dem
Mausrad nach innen scrollen Wir möchten das
Material dieses Blocks wenn wir mit ihm interagieren, in unser
Interact-Material umwandeln Denken Sie daran, dass wir all
diese Variablen von unserem Elternteil,
unserer BP-Blockbasis, geerbt diese Variablen von unserem Elternteil,
unserer haben. Und sie werden
genau hier angezeigt, zeigen
vererbte Variablen. Wenn Sie dieses Kontrollkästchen nicht aktiviert haben
, ziehe
ich es per Drag & Drop auf unsere
Materialeingabe hier. Wir sagen im Grunde, dass wir,
wenn wir
mit diesem Block interagieren, das mit unserem Würfel
verknüpfte Material
hier mit unserem Block
ändern werden. Dieser Typ, wir werden das zu diesem Material
ändern, dieser Block sieht gebraucht aus. Es wird nicht mehr diesen Ziegel-Look
haben. Es wird ein
solides braunes Aussehen haben. Okay, das wird
also vom Null-Pin
unseres Sequenzknotens kommen . Als Nächstes klicke ich mit der
linken Maustaste und ziehe mit der Maus herum und tippe auf die Taste. Ich nenne
das unsere Punkte. Eigentlich mache ich die
01, um zu zeigen, dass
das aus der einen Sequenz kommt. Wie wäre es mit nur einem? Das
werden unsere zusätzlichen Punkte sein. Wir werden in
diesem Punkte-Widget spawnen und sie hinzufügen. Wir werden das auch schwarz färben
. Das Tolle daran ist , dass wir ändern können wie viele Punkte wir für diesen Block
vergeben Derzeit sind es zehn, aber machen wir 100. Wir können das ändern, indem wir
unsere Variable hier auswählen, oder Sie können
die tatsächliche Variable
im Diagramm selbst auswählen . Ich werde das auf 100 setzen. Also etwas anderes werde
ich tun, da ich gerade
diese Punktevariable geändert
habe, werde ich auch
wieder hier hochfahren Und wir werden
den Soundeffekt modifizieren , der mit der Interaktion
mit diesem Block verbunden Interaktion
mit diesem Block Derzeit ist es
auf Brick Break eingestellt. Wenn wir damit interagieren,
spawnen
wir tatsächlich in einer Münze.
Also lass uns das ändern auf dieses Drop-down-Menü klicke, gebe
ich eine
Münze ein, um einen Soundeffekt zu erzeugen. Okay, ich komme
ein bisschen weiter runter. Ich werde gleich hier
noch ein paar Stecknadeln hinzufügen. Und ich werde
diesen Zerstörer löschen, weil wir nicht zerstören werden diesen Backstein nicht zerstören werden. Lösch das raus. Lass uns hier noch ein paar weitere Pins hinzufügen,
12, indem du auf diesen Button klickst. Als Nächstes spawnen wir einen weiteren Schauspieler, klicken
Sie mit der
rechten Maustaste auf den
Spawn-Schauspieler aus Was ich
hier spawnen möchte, ist unsere BP-Blockmünze. Bp unterstreicht Blockmünze. Lassen Sie uns das
sofort von unserem einstecken, dann um es zu pinnen, müssen wir dem eine Transformation
geben, die
eine Position in einer Rotation ist eine Position in einer Rotation an der wir das spawnen
werden Wenn ich also mit der rechten Maustaste
in ein leeres Feld klicke und
transformiere, werden
die Position und Rotation
unseres falschen Blocks abgerufen die Position und Rotation , wo auch immer
er sich auf der Welt befindet Wir werden das
so einstecken. Dann werden wir unsere Player-Controller-Referenz
per Drag-and-Drop einfügen. Wir werden es von hier
wegziehen und Münzen hinzufügen. Hier können wir die Münzen tatsächlich zu unserer Gesamtsumme
hinzufügen. Wie viele Münzen möchten
wir hinzufügen? Nun, wir haben diese
Variable hier drüben. Derzeit ist sie
standardmäßig auf eins eingestellt. Sie könnten tatsächlich
zehn Münzen wert
machen , wenn Sie möchten, dass ein Schuss zehn Münzen wert Ich lasse es bei eins und stecke das
einfach so ein. Jetzt werde ich diesen Teil des Skripts mit mir
herumschleppen. Linksklick, ziehen, nehmen. Ich nenne das auch „
Münzen hinzufügen “, ein bisschen Schrift,
das schwarz färben. Ich wollte hier auf
etwas hinweisen: Denken Sie
daran, dass wir in
unserem Player-Controller
unser Ad-Coin-Skript
erstellt haben . Und das wird
als benutzerdefiniertes Event bezeichnet. Hier ist sogar ein kleiner
Tipp, damit Sie wissen, dass, wenn wir hier auf diese
Werbemünzen doppelklicken, unser Player-Controller geöffnet wird und wir zu
diesem benutzerdefinierten Ereignis weitergeleitet werden. Dies ist das benutzerdefinierte
Event, das wir von unserem falschen
Block aus
aufrufen, Breakable, und hier die Münzen tatsächlich
hinzugefügt. Beachten Sie nun, dass wir unsere Münzen
einstecken, um sie hinzuzufügen. Dies wird in
diesen Aufruf einfließen und die hinzuzufügenden
Münzen werden genau
hier in unserem benutzerdefinierten Ereignis ausgegeben Also geben wir hier
die Nummer eins ein. Und hier in unserem benutzerdefinierten
Event wird es hier verteilt, um unsere Münzsumme
zu erhöhen. Also wollte ich das nur
klarstellen. Okay, als Nächstes
möchte ich unserem
Block
eine kleine Animation hinzufügen , sodass er, wenn wir ihn treffen, in die Luft stößt ein wenig in die Luft stößt
und
dann wieder herunterfällt Denn denk dran, dieser Block wird nicht zerstört werden Um diese
Blockanimation zu erleichtern, werde
ich eine Zeitleiste einfügen. Klicken wir also mit der rechten Maustaste
in eine leere Stelle. Fügen Sie eine Zeitleiste hinzu, rechten Maustaste und
suchen Sie nach Zeit. Ganz unten befindet
sich eine Zeitleiste. Und ich werde
das meinen Block Anum nennen. In Ordnung, lassen Sie uns das ein bisschen genauer zusammenfassen. Ich werde unseren
Sequenzknoten etwas weiter herunterfahren. Wenn wir also irgendwann das
einstecken, jetzt diesen Block anum, können
wir
darauf doppelklicken, um einige Anum-Tracks
zu erstellen Doppelklicken Sie darauf. Wir möchten hier eine Bewegungsspur hinzufügen. Es wird vom
Typ Float sein,
also lasst uns auf diese
Plus Track-Schaltfläche klicken. Es wird ein Float-Track sein. Wir werden
das Bewegung nennen. Unser Track hier
wird drei Zehntelsekunden
lang Also werde ich
unsere Länge
hier auf 0,3 Sekunden ändern hier auf 0,3 Sekunden Diese Blockanimation
wird ziemlich schnell sein. Ich werde die Steuerung gedrückt halten
und scrollen. Rad auf hoch. Dann
klicke ich mit der rechten Maustaste und schwenke, sodass ich unsere
0,3-Sekunden-Zeitleiste hier
sehen kann . Jetzt
füge ich unserem Diagramm hier drei Punkte, drei Schlüsselbilder
hinzu. Ich klicke mit der rechten Maustaste und füge ein Schlüsselbild hinzu. Den ersten setze ich
auf eine Zeit von Null und einen Wert von Null. Das heißt
im Grunde am Anfang unsere Bewegung
genau da sein wird , wo sie gerade ist. Ich werde erneut mit der rechten Maustaste klicken. Genau hier. Wir werden einen weiteren Schlüssel hinzufügen
und sagen, dass bei
der 1-Sekunden-Marke unser Wert 50 sein wird. Jetzt springt
er von oben nach oben, aber wenn ich hier auf diesen
senkrechten Pfeil klicke, wird er sichtbar. Ich sage im Grunde,
springen Sie in
einer Zehntelsekunde unseren Block
50 unwirkliche Einheiten hinauf Dann
klicke ich wieder mit der rechten Maustaste hier unten. Wir werden einen weiteren Schlüssel hinzufügen, und ich werde sagen, dass bei 0,3 Sekunden am Ende
unserer Zeitleiste
unser Wert
wieder Null sein wird
, unser Wert
wieder Null sein wird jetzt werde ich diese
beiden Keyframes hervorheben Ich habe genau dort den
ausgewählt, die
Strg-Taste gedrückt gehalten dann mit der linken Maustaste geklickt,
diesen hier. Dann können Sie mit der rechten Maustaste
auf eines davon klicken. Und ich werde die
Tasteninterpolation hier auf Auto einstellen Tasteninterpolation hier auf Auto Und was das bewirken wird
, ist, dass es
kurvig wird kurvig Also werden wir
diesen Block in einer
Zehntelsekunde hochschießen , sehr schnell, linear Und dann werden
wir es wieder lockern. Es wird schnell gehen, aber es wird es wieder
lockern Wenn Sie mit der linken Maustaste klicken und
ziehen, um all
diese Punkte so hervorzuheben , dass sie alle
ausgewählt sind Sie können auf diese beiden
Pfeile klicken, um es einzurahmen und
eine etwas bessere Vorstellung davon
zu bekommen eine etwas bessere Vorstellung , wie das aussehen
wird. Okay, jetzt springen wir aus
unserer Zeitleiste heraus und kehren
zu unserem Ereignisdiagramm zurück.
Wir können sehen, dass unser
Bewegungsstift jetzt sichtbar ist. Und wir können das
für unser Skript verwenden, um die Position unseres Würfels,
unseres Blocks hier,
anzupassen. Also werde ich hier einen Verweis auf unseren Würfel, unsere
Blockkomponente, einfügen. Lassen Sie uns das herausziehen und die relative Position festlegen
eingeben. Wir werden hier die Position
unseres Blocks im Verhältnis zu seinem
aktuellen Standort
ändern . Wenn wir
von der neuen Position rückwärts ziehen, können
wir make
vector eingeben, um X, Y und Z auf eine Art und Weise sichtbar zu machen Jetzt wollen wir das nur in
die Richtung
nach
oben und unten bewegen ,
nicht nach links und rechts vorwärts und rückwärts , um unser Skript zu beenden Hier lösen wir uns von
unserem Sequenz-Pin. Wir werden das von Anfang an
ins Spiel integrieren. Da dies in den
0,3 Sekunden, die wir in unserer Timeline
eingerichtet haben, aktualisiert 0,3 Sekunden, die wir in unserer Timeline
eingerichtet haben, wird, werden
wir die Position,
die relative Position
unseres Würfels,
aktualisieren . Ordnung, wenn das
erledigt ist, klicken wir mit der linken Maustaste, ziehen und tippen auf die Taste. Das wird unser Block
genannt werden. Ähm, das werden wir auch schwarz färben
. Jetzt können wir das tatsächlich
kompilieren und speichern. Unsere Skripte sehen gut aus und wir können das in unserem Level testen, aber es wird
ein Problem geben, das wir gleich
hier beheben werden. Aber nur um zu sehen, wie das aussehen
wird, habe
ich meine beiden D-Snap-Einstellungen hier
auf meiner Hauptebene. Lass mich den Kerl einfach reinbringen. Ich bringe sofort ein paar
davon mit. Es gibt also einen, bei dem Sie die Alt-Taste gedrückt halten , mit der
linken Maustaste klicken und ziehen, um ein Duplikat wie dieses
einzufügen. Los geht's, springen rein und
spielen und überprüfen, wie viele Münzen wir gesammelt haben. Und unsere Punkte, wir sollten beide
bekommen. Also los geht's. Ich habe eine Münze, ich
habe 100 Punkte. Das ist alles schön und gut, du
musst dich für den zweiten entscheiden. Ich habe jetzt zwei
Münzen und 200 Punkte. Aber hier sind ein paar Probleme. Ich kann einfach weiter damit
interagieren. Das ist also offensichtlich nicht erwünscht, also wird mehr Skript benötigt. Also gut, was müssen
wir tun, um das wieder in Ordnung zu bringen? Nun, wir springen
zurück in unseren falschen Block Breakable Wir werden ganz am Anfang ein
bisschen arbeiten ganz am Anfang Und dann werden wir auch etwas
davon hinzufügen , dann vierpolig. Fügen Sie hier also etwas
Abstand zwischen unserem Event-Trefferblock und
unserem Sequenzknoten hinzu. Wir wollen nur, dass diese
Sequenz im Grunde das tut was sie
tun wird, wenn wir diesen Block zum zweiten Mal treffen Wir wollen einfach einen Bank-Soundeffekt
abspielen,
einen Brick-Bump-Soundeffekt Wir können all das also vereinfachen,
indem wir unseren Booleschen Wert für die
Finishinteraktion einsetzen, den wir bereits in unserer Blockbasis
eingerichtet hatten bereits in unserer Blockbasis
eingerichtet Auch das alles
stammt von unserer BP-Blockbasis, die
wir vor langer Zeit eingerichtet haben Auch hier zeigen
wir diese vererbten
Variablen genau auf
diese Weise. Wir werden das
reinbringen, wir werden es bekommen. Standardmäßig ist dieser boolesche Wert auf
False gesetzt. Wir ziehen uns hier raus und bringen einen Verzweigungsknoten Wir werden das so
umverkabeln. Wir werden mit der linken
Maustaste klicken und ziehen. Und wir werden sagen, wenn diese Bedingung, die als falsch
beginnt, falsch ist, werden
wir dann all
diese Blockinteraktionen durchführen so wie Sie es gerade bei mir gesehen haben. Wenn dies jedoch zutrifft, ziehen
wir den Zweig „Richtig“ zurück. Wir werden Sound Two D
spielen . Stattdessen werden
wir einen Bump-Soundeffekt
abspielen Mario Brick, Bump, so ein
Balk-Soundeffekt. Okay? Also das ist
alles schön und gut. Dies wirft jedoch die Frage auf, wenn das als falsch
anfängt, wir
jedes Mal, wenn
wir auf diesen Block stoßen sollten wir
jedes Mal, wenn
wir auf diesen Block stoßen,
diese Branche verlassen und
all diese Dinge tun, oder? Wann wird
das jemals wahr werden? Nun, darauf
werden
wir aufbauen Dann vier Pins, wir werden
die Alt-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen. die Alt-Taste gedrückt halten, Wenn Sie die Alt-Taste gedrückt halten, wird sofort
ein Setter für diese Variable aufgerufen Und wenn wir von
den vier Pins wegziehen, sagen
wir, dass
der
Wert nach der ersten Interaktion
mit dem Stift auf „true“ umgestellt wird auf „true“ umgestellt Also können wir das hier unterbringen,
also das, was passiert ist das erste Mal, wenn
wir
auf diesen Block stoßen, wir werden sagen, hey, wir haben die Interaktion damit beendet Nein, das ist falsch. Also werden wir all das Zeug machen Wir werden
diese Effekte spielen. Wir werden diese Punkte hinzufügen. Wir werden diese Münzen hinzufügen. Wir werden
diese Blockanimation abspielen. Oh ja, und übrigens, wir werden
diese Variable jetzt auf true ändern,
sodass sie beim zweiten Mal
, wenn wir auf diesen Block stoßen, wahr ausgewertet wird. Und stattdessen werden wir
einfach aus
diesem Zweig heraus feuern , in dem wir diesen Sound
einfach abspielen. Lassen Sie uns das kompilieren und
speichern und ausprobieren. Jetzt interagiere ich einmal mit
diesem Block, wir bekommen 100 Punkte, wir bekommen eine Münze und ich
interagiere erneut damit. Der Block geht hier nicht hoch. Balk-Soundeffekt. Spring darauf Es ist immer noch interaktiv, ich kann das Ganze überarbeiten Alles funktioniert
jetzt wie erwartet. Alles klar. Arbeit. Gut gemacht. Nun, nur um
das alles einzurahmen falls du das Video
pausieren und einen
Screenshot machen oder die Arbeit ansehen möchtest, die
wir hier gemacht haben Das ist der obere
Teil unseres Skripts. Gehen wir einfach weiter nach unten, das ist der untere
Teil des Skripts. Der mittlere Teil des Drehbuchs, wenn Sie so wollen, und dann kommen wir wieder ganz nach unten. Ordnung Leute, wir haben hier gute Arbeit geleistet In Ordnung Leute, wir haben hier gute Arbeit geleistet
und das bereitet uns wirklich gut
auf den nächsten Stein vor, den wir
machen werden
, Leute, der reicht für diesen. Wir sehen uns im nächsten.
37. Block? (Münze innen): Willkommen. In diesem Video ist es
unser Ziel,
einen Fragenblock zu erstellen , der, wenn unser Charakter mit ihm
interagiert, eine Münze einbringt Die gute Nachricht
hier ist, dass dies das
kürzeste Video aller Zeiten sein
wird, denn im Grunde werden
wir ein Duplikat
unseres falschen zerbrechlichen Blocks erstellen und
nur ein Material ändern Also mach weiter und
klicke mit der rechten Maustaste auf deinen Block, fake breakable. Lass uns das
duplizieren Wir werden
diesen BP-Block Q umbenennen, Unterstrich wie bei einer Münze Also. Wir werden darauf
doppelklicken, um es zu öffnen. Wir werden
buchstäblich das
ganze
Drehbuch gleich lassen . Das einzige, was wir ändern
werden ,
ist hier drüben. Ich wähle unseren Viewport-Tab und dann unseren Cube Wir werden das damit verbundene
Material
so ändern , dass es unseren Block hat Frage eins, Matt. Das können wir sofort sagen. Wenn wir wollten,
könntest du ändern, wie viele
Münzen das wert sind. Ich lasse es bei einem. Der einzige Grund, warum wir
diesen Block erstellen , ist,
weil
er einfach ist und dem Level etwas mehr
visuelle Abwechslung bietet. In vielen Mario-Spielen gibt es Fragenblöcke,
die eine einzige Münze
einbringen . Deshalb
werden wir ihn hinzufügen. Lass uns das ausprobieren,
reinspringen und spielen. Wie Sie sehen können,
können wir damit interagieren, ändern das Material,
wir bekommen 100 Punkte. Wir kriegen eine Münze
fertig, fertig, Leute,
das wird alles für diese machen. Wir sehen uns im nächsten.
38. Blockiere unsichtbare Münze: Willkommen zurück alle.
In diesem Video werden
wir einen Block erstellen , der
zunächst unsichtbar sein wird. Wenn unser Spielercharakter ihn jedoch findet und mit ihm interagiert
, also ihn
von unten trifft, macht er ihn sichtbar
und erhält eine Münze Die gute Nachricht dabei ist, dass
wir vieles
von dem, was wir hier geschaffen haben, duplizieren können , um uns einen Vorsprung zu verschaffen Unsere BP-Block-Q-Münze hier.
Klicken Sie mit der rechten Maustaste auf diesen Typen. Wir werden das duplizieren. Und ich werde diesen BP-Block
Invisible Underscore-Münze nennen. Doppelklicken wir darauf
, um es sofort zu öffnen. Ein Großteil dieses Codes
wird gut sein. In der Tat
wird alles gut sein. Wir werden
ein bisschen mehr hinzufügen. Aber ich möchte in unserem Viewport
beginnen. Nun, das wird für den Spieler zunächst
unsichtbar sein. Der Designer
wird dies jedoch
sehen können, wenn er
im Level-Editor arbeitet. Lassen Sie mich das jetzt einfach per
Drag-and-Drop in unser
Level ziehen. Das Problem hier ist,
wenn Sie der Designer sind, wird
dieser Block
identisch mit unserem Q-Münzblock aussehen . Also alles, was ich hier tun möchte,
ist, diesem Block
ein anderes Bild
hinzuzufügen , nur um dem Designer klar
zu machen dass er unsichtbar ist,
ein Hinweis. Bevor ich dieses Video
gedreht
habe, bin ich in meinen Texturen-Ordner gegangen. Ich habe mit der rechten Maustaste auf unseren Block geklickt, Frage zwei, und
daraus ein Material erstellt Nachdem ich
das Material erstellt hatte, habe
ich es einfach per Drag-and-Drop gezogen. Und ich habe es in unseren
Materialordner verschoben. Und das können Sie hier sehen Ich werde das auf
unseren Würfel hier in diesem BP-Block anwenden ,
unsichtbar, sodass wir einen sichtbaren Unterschied
haben. Ordnung, wenn wir
unseren Würfel im
Detailbereich unter Materialien auswählen , wechseln
wir
zur zweiten Blockfrage nur damit das etwas anders
aussieht. Großartig, jetzt, wo unsere
Würfelkomponente ausgewählt ist, werden
wir hier eine
weitere Komponente hinzufügen. Wir werden eine Box hinzufügen, die nach einer
Box sucht. Ich suche nach einer Boxkollision, füge diese Komponente hinzu und drücke die
Eingabetaste, um den Boxnamen beizubehalten. dies
im Detailbereich ausgewählt ist, möchte
ich eine gewisse Box-Erweiterung haben. Es wird 100 mal 50 mal
100 sein. Also werden wir diese
unsichtbare Kiste darum herum bauen. Und ich möchte es
in Z-Richtung einrichten. Ich werde das auf 51 einstellen. Und der Grund, warum ich das aufstelle, ist, dass ich es so machen
will, dass es kaum
den Boden des Blocks durchdringt Der Boden des Blocks
ist tatsächlich freigelegt. Die Idee dabei ist, dass
unser Spieler die Unterseite treffen und
mit ihr kollidieren
kann Wenn sie jedoch von oben
hineinspringen oder so springen, werden
sie mit dieser Kiste
kollidieren und die
Kollision ausschalten Also in der Lage zu sein,
nicht damit zu interagieren. Diese Box wird von uns, dem Designer, verwendet werden
können, um
die Kollision für diesen Block aus- und
einzuschalten . Okay, dafür
springen wir zu unserem Event-Graph. Jetzt haben wir mit unseren Box-Komponenten die Box
ausgewählt,
die unsichtbare Box. Wir werden mit der rechten Maustaste
darauf klicken. Wir werden ein Ereignis hinzufügen, für den Fall, dass wir
beginnen, es zu überschneiden. Lassen Sie uns das
etwas niedriger machen. Dann klicken wir
erneut mit der
rechten Maustaste auf das Feld und möchten ein Ereignis
hinzufügen, für den Fall, dass wir es
überlappen Stellen Sie nun sicher, dass Sie
mit Ihrer Box-Komponente sprechen. Hier steht es in Klammern
. Box Box, nicht der Würfel. Wir wollen die Box überlappen
und am Ende die Box überlappen. Wir klicken hier mit der rechten Maustaste in ein leeres Feld
und geben Get Player Character Dann klicke ich mit der rechten Maustaste
in ein leeres Feld und gebe das Gleichheitszeichen ein. Und ich werde ein paar
Gleichheitsknoten hinzufügen,
um das zu duplizieren Und ich werde das wie jeder andere Schauspieler
einhängen ,
um
Spielercharakter zu bekommen Ein anderer Schauspieler, um
Spielercharakter zu bekommen. Dann füge ich einige Verzweigungsknoten
hinzu die Taste B gedrückt halte und links indem ich
die Taste B gedrückt halte und links klicke. 1.2 Alles klar, unser Code wird
so aussehen , wenn es unser Spielercharakter ist,
wenn unser
Spielercharakter der andere Akteur ist , der das Feld
überlappt, wollen
wir hier mit unserem Würfel sprechen
, dem Block, mit dem
wir sprechen wollen das in
unser Ereignisdiagramm zieht. Wir wollen nur
Kollisionen aktivieren. Wir wollen die Kollision deaktivieren indem wir bei diesem neuen
Typ keine Kollision einstellen. Die Idee dabei ist
, dass, wenn es der Spielercharakter wäre, der andere Schauspieler das Feld
überlappt. Wenn das stimmt, werden wir unserem Würfel
sagen, dass er die Kollision
ausschalten soll. heißt, unser Charakter
wird ihn mit
diesem ausgewählten Knoten direkt
durchqueren . Drücken Sie die Taste D, um es zu duplizieren. Umgekehrt werden wir sagen,
stellen Sie sicher, dass Sie Ihren
Würfel genau hier unten einhängen,
dass, wenn es unser
Spielercharakter
wäre, wenn Sie den anderen Akteur
verwenden das Feld überlappt hat, wenn das stimmt,
wir es unserem Würfel sagen Um
seine Kollision quasi wieder einzuschalten. Die Kollision ist genau dort aktiviert. Kollisionsfähige
Abfrage in der Physik. Klicken wir mit der linken Maustaste und ziehen
mit der Maus, tippen wir auf die C-Taste und ich hole das, unser
Kollisionsskript zum Umschalten von Block-Kollisionen Und ich färbe es
sofort im Detailbereich schwarz,
indem ich diesen Farbleisten auswähle. Ordnung, lassen Sie uns
das sofort
kompilieren und speichern. Und wieder sehen
wir hier
in unserem Level-Editor diesen Block. Mein Charakter wird
sozusagen direkt links
davon erscheinen Lass uns das spielen. Wenn wir es jetzt sehen können, wenn ich die Unterseite treffe, kann
ich damit kollidieren Aber wenn ich das noch einmal
spielen würde und dieses Mal
durch die Oberseite hindurchgehe, schneide
ich direkt
durch die Unterseite, könnte unten kollidieren,
aber ich würde es durchgehen
oder durchqueren,
wenn ich mich ihm von einer Seite
oder von oben nähere kollidieren,
aber ich würde es durchgehen
oder durchqueren, aber ich würde es durchgehen
oder durchqueren wenn ich mich ihm von einer Seite
oder von oben nähere Okay, also ein paar
Dinge, die hier repariert werden müssen. Gehen wir zurück in unseren BP-Block. Unsichtbare Münze, ich werde
feststellen, dass unser Event beginnt, das genau hier oben
existieren wird. Denken Sie daran, dass dieser Block letztendlich von unserer Blockbasis
erbt Deshalb gibt es dieses kleine
Skript genau hier. Darauf bauen wir
auf,
indem wir unseren Würfel so einsetzen. Wir
ziehen das in die Länge und geben die eingestellte Sichtbarkeit ein. Wir können dieses Skript hier erweitern. Wir sagen Hey Cube. Zu Beginn des Spiels wirst du
nicht sichtbar sein. Also wenn ich das
kompilieren und sagen würde, wenn ich
jetzt in mein Level
gehen würde, können
wir es hier
im Level-Editor sehen. Aber sobald ich mit dem Spielen anfange, kann
ich den Würfel nicht mehr sehen. Okay, ich kann noch damit
interagieren, aber wir können ihn nicht
von Anfang an sehen. Hier gibt es noch ein
bisschen mehr zu tun. Lassen Sie uns hier zurück zu
unserem Drehbuch springen. Wir werden zurückblättern. Wir werden
unserem Sequenzknoten hier
außerhalb des Event-Trefferblocks
einen weiteren Pin hinzufügen . Fügen wir noch einen Pin hinzu. Und ich
nehme diese
Finish-Interaktion , die
von den damaligen vier Pins entfernt war. Ich werde das einfach auf den damaligen Fünf-Pin
reduzieren. Halten Sie die Strg-Taste gedrückt, klicken Sie
links und ziehen Sie. Ich kann das Kabel
auf fünf herunterziehen. Lassen Sie mich meinen
Sequenzknoten ein wenig nach unten verschieben weil ich hier unten
ein Skript hinzufügen werde . Jetzt werde ich hier unten einen Verweis auf meinen Würfel
bringen. Ziehen Sie das noch einmal per
Drag & Drop hierher. Wir ziehen das
raus und geben nur die
eingestellte Sichtbarkeit ein. Dieses Mal werden wir dieses Kästchen
ankreuzen. Lassen Sie uns das mit
dem damals vierpoligen Anschluss so verkabeln. Unsere Idee ist, wenn
wir den Block treffen, sagen
wir, dass unser
Würfel sichtbar ist, wir werden ihn wieder sehen können
. Etwas anderes, was wir
hier
auch gerne tun würden , ist, wenn wir diesen Block
getroffen haben, und er ist jetzt im Spiel,
wo der Spieler ihn sieht. Wir werden
unserem Box Collider hier sagen, dieses
innere Diagramm
per Drag & Drop Wir werden sagen,
dass es zerstört werden soll, und die Destroyer-Komponente
eingeben, Destroyer-Komponente
eingeben denn wenn wir den versteckten Block erst einmal
aufgedeckt haben, wollen
wir ihn nicht mehr
durchqueren können Klicken wir mit der linken Maustaste und ziehen es
ab. Tippen Sie auf die Sitztaste Ich nenne das unsere
vierpolige Aktivierung der Sichtbarkeit. Machen wir also weiter und drehen diesen Block, um ein
bisschen mehr Kontrast zu erzeugen. Also das wird genau
unser Drehbuch sein. Ich werde unseren Sequenzknoten
ungefähr wieder an seine Position bringen. Lass uns weitermachen und das
kompilieren und sagen. Und geh zurück zu unserem
Level-Editor hier. Ich werde diesen
Block direkt über den Kopf
unseres Charakters verschieben , damit wir
wissen, wo er sein wird. Ich werde auf „Abspielen“ klicken.
Wenn ich jetzt springen würde, kannst
du sehen, dass der Block
aufgedeckt wurde und ich jetzt wie gewohnt mit ihm
kollidieren kann Das ist alles schön und gut, wenn ich wieder versuche, die
Unterseite zu treffen, keine Münzen mehr, das ist gut Versuchen wir nun,
das von der Seite anzugehen. Also werde ich das auswählen, ich werde
versuchen, es
von einem Seitenwinkel aus anzugehen , irgendwo
hier in der Nähe. Sie können sehen, dass wir es einfach
durchqueren , als ob
nichts da wäre. Wenn ich
es jedoch von unten angreife, können
wir damit interagieren. Da haben wir es, Leute. Wir haben einen unsichtbaren Münzblock
, der für diesen absterben wird. Wir sehen uns im nächsten.
39. Münzbox blockieren: In diesem Video werden wir
eine Münzbox erstellen. Und wenn du dir nicht
sicher bist, was das ist, es wird ein Block sein, aussieht wie ein normaler
zerbrechlicher Block, aber genau da ist er, er
wird Münzen enthalten. Und irgendwann wird es zu einem
Timeout
kommen und einfach so zu einem festen Block Darauf haben wir uns eingelassen.
Um hier anzufangen, werden
wir in unseren Ordner
Blueprints-Blöcke kommen Ich klicke mit der rechten Maustaste
auf unsere BP-Blockmünze. Wir werden
das sofort duplizieren. Und ich werde dieses
Asset BP Block Coin Box nennen. Und wenn das markiert ist, können
wir einfach
die Leertaste drücken oder darauf
doppelklicken, um es mit hervorgehobenem Inhalt zu öffnen
. Ich mache gerne die Leertaste
, um es sofort zu öffnen. Ich werde das Material,
das
mit unserem Würfel
verbunden ist, austauschen Material,
das
mit unserem Würfel
verbunden Wenn ich unser
Viewport, unseren Würfel, auswähle, möchte
ich, dass er so aussieht, als wäre er ein zerbrechlicher Block drüben
im Detailbereich Ich gehe jetzt zu
Materialien und ändere es dort in
Blockmaterial mit Unterstrich, das
zerbrechlich Und dann werde
ich auch im Bereich „Mein
Blueprint“ ein paar
Variablen hinzufügen im Bereich „Mein
Blueprint“ ein paar
Variablen Die erste Variable, die
wir erstellen
werden, heißt Timer-Betrag Dies wird bestimmen, wie viel Zeit wir haben, um so
viele Münzen wie möglich zu sammeln viele Münzen wie möglich bevor
daraus ein fester Block wird. Ich werde den
Typ hier in einen Float ändern. Und ich werde auch
hier auf
dieses kleine Augapfelsymbol klicken hier auf
dieses kleine Augapfelsymbol , um diese
Instanz editierbar zu machen Beachten Sie also, dass, wenn wir auf diesen Augapfel
klicken, auch dieses
Kästchen aktiviert wird. Das sind also dieselben, wenn Sie
dieses Kästchen ankreuzen , wird dieser Augapfel aktiviert Wenn Sie auf diesen Augapfel klicken, wird dieses
Kästchen aktiviert. Als Nächstes
erstelle ich eine weitere Variable. Diese wird
aufgerufen, wenn der Timer abgelaufen ist. Fragezeichen. Das wird
eine boolesche Variable sein Lassen Sie uns das sofort
kompilieren, damit wir einige Standardwerte
festlegen können .
Ist Tim er abgelaufen. Ich werde das für Zeit oder Betrag als
falsch belassen. Ich werde das auf einen
Wert von 5,0 setzen, um loszulegen. Als Nächstes springen wir zum Ereignisdiagramm
über. Und wir werden unser
Skript hier ein wenig modifizieren. Was ich tun möchte,
ist, dass
ich in diesem
Abschnitt des Drehbuchs, der dann Null ist, diesem
Abschnitt des Drehbuchs, der dann Null ist, diesen Draht
genau hier durchtrennen werde , wo wir das Material
verlegen Ich werde die
Alt-Taste gedrückt halten und mit der linken Maustaste klicken. Und ich werde das in
den Vordergrund unseres Drehbuchs
rücken . Wir werden hier
ein Skript an
der Vorderseite hinzufügen . Wenn Sie etwas Abstand
zwischen diesem Sequenzknoten
und unserem Ereignis schaffen möchten , klicken Sie auf Blockieren. Ich werde
das irgendwo
hier unten platzieren ,
mehr dazu gleich. Dann werde ich unsere
Verbindung lösen und die Interaktion hier ganz
unten
beenden Also werde ich die Alt-Taste
gedrückt halten
und mit der linken Maustaste klicken. Haken Sie das Dann werde ich all
diese Kabel ein bisschen nach unten verschieben weil ich ein neues Drehbuch haben will,
dann Null Also werde ich die
Kontrolle gedrückt halten und ich werde einfach das hier notieren,
unsere Zusatzpunkte. Ich werde
diesen Draht tatsächlich abschneiden, indem ich die
Alt-Taste gedrückt halte und mit der linken Maustaste darauf klicke Nun, eigentlich werde ich die Position
von all dem nicht ändern Ich hätte das einfach
nach unten verschieben sollen. Ich werde einfach die Steuertaste
gedrückt halten. Ich gehe runter oder füge Münzen hinzu. Ich werde das so einstecken, obwohl es Auswirkungen hat, werde
ich es herunterschalten. Strg gedrückt halten und mit der
linken Maustaste klicken. Das werden wir auch
runterschieben. Jetzt weiß ich, dass alle meine Zahlen
hier ein bisschen falsch sind. Ich kann diese zu gegebener Zeit anpassen. Vielleicht mache ich
das am Ende des Videos. Aber ich werde das
alles
vorerst einfach runterschalten , weil ich auf dem dann Null-Pin aufbauen
will. Wir wollen im Grunde genommen
einen Timer von unserem Null-Pin ausschalten weil wir nur
für eine bestimmte Zeit mit diesem Block
interagieren dürfen wollen . Also, was wir
hier tun werden, ist einen Once-Node einzufügen, die Taste
gedrückt zu halten
und mit der linken Maustaste zu klicken, das bringt Sie
in einen Once-Node. Und was ich dann
daraus machen
möchte, ist, dass ich den
Timer für jedes Ereignis in die
Länge ziehen und eintippen werde , der Typ hier. Und ich werde
einen benutzerdefinierten Event-Knoten hinzufügen. Klicken Sie also mit der rechten Maustaste auf Ereignis, ich nenne
diesen Timer abgelaufen. Also, was ich tun möchte, ist
das in unsere benutzerdefinierten Ereignisse einzubinden. Wir können es von
unserer eingestellten Zeit zurückziehen oder nach
Ereignis hier einfügen. Unsere Zeit wird von dieser
Zeit oder diesem Betrag
bestimmt Ich kann das hier
draufziehen und ablegen. Also, wenn
unser Timer abgelaufen ist, möchte
ich einstellen, dass
unser Timer abgelaufen ist. Wir können das
hineinziehen und sagen, stellen Sie es ein. Ich möchte überprüfen, ob das wahr ist. Was im Grunde
passieren wird, ist das erste Mal, dass wir mit diesem Block
interagieren, wir werden hier einmal
durch kommen. Wir werden einen Timer einstellen. Nach Ablauf dieser Zeit 5 Sekunden oder was auch immer wir dafür
eingestellt haben, abgelaufen. Es wird
diese Kundenveranstaltung auslösen. Und das wird unser abgelaufenes
Hes-Timer-Edelmetall in Wahrheit widerlegen Lassen Sie uns mit der linken Maustaste klicken und
ziehen und auf die Taste C tippen. Dies wird unser
neues Null-Pin-Skript sein, das Blockinteraktionszeit
festlegt. Und das werde ich auch
schwarz färben. Und jetzt, nur
aus Zeitgründen, werde
ich nicht all
diese Zahlen hier anpassen. Das ist nur optional
, nur um anzuzeigen,
dass das
von den dann einen oder
dann zwei Pins usw. kommt . Ich werde jedoch
weiter nach unten scrollen und
meinen fertigen interaktiven Setter
hier unten finden meinen fertigen interaktiven Setter
hier unten Ich werde das auch in den Vordergrund
unseres Skripts rücken ,
weil wir unseren Fokus auf den ersten Teil
dieses Skripts verlagern
werden den ersten Teil
dieses Skripts Wie Sie sich erinnern, versuchen
wir ganz
am Anfang, wenn wir auf diesen Block
stoßen, herauszufinden, ob
wir mit der Interaktion fertig sind, was dieser Goldbarren
hier unten zur Realität macht Standardmäßig ist das falsch. Also interagieren wir einfach
mit unserem Block. Wir wollen auf diesem falschen Zweig aufbauen. Also werde ich
dieses Kabel unterbrechen, indem die Alt-Taste und die linke Taste
gedrückt halte. Und ich werde unsere abgelaufenen Goldbarren mit
Haz Timer reinbringen. Also werde ich die
Strg-Taste gedrückt halten und mit der linken Maustaste klicken. Und wenn wir die Strg-Taste gedrückt halten und mit der linken Maustaste klicken und es hineinziehen
, wird ein Setter angezeigt Ich ziehe das dann raus und füge einen Verzweigungsknoten hinzu Wir werden so arbeiten. Standardmäßig
wird das falsch sein. wir also das erste Mal auf diesen Block stoßen, werden
wir sagen, hey, wir sind noch nicht fertig
mit der Interaktion. Finden wir heraus, ob der
Timer abgelaufen ist. Davon werden wir
einmal die Taste gedrückt halten und mit der linken Maustaste klicken. Wir werden
einmal etwas tun, wenn es wahr ist.
Wenn es falsch ist, dass der Timer
nicht abgelaufen ist, stecke
ich das
bis zum Ende in unseren Sequenzknoten und
füge sofort ein paar Umleitungsknoten hinzu. Doppelklicken Sie auf das Kabel. Wir werden einige
Umleitungsknoten einbauen. Nun, falls es wahr ist, nachdem wir
diesen Block zum ersten
Mal getroffen haben und dieser Timer abgelaufen ist, wodurch dieser
Goldbarren Wenn das stimmt, wollen wir, dass einmal
etwas passiert. Nun, was
wollen wir, dass passiert? Nun, wir wollen eigentlich, dass hier ein
paar Dinge passieren. Ich rufe
den Sequenzknoten auf, halte die S-Taste gedrückt
und klicke mit der linken Maustaste. Das Erste
, was wir
tun werden, ist unser Material hier abzulegen. Wir möchten, dass unser Material so
aussieht, als wäre es jetzt benutzt worden. Unser Würfel hier ist das, wofür wir das Material
einstellen. Das Interact-Material, das wir auf diesen gebrauchten
Block setzen
wollen, so wie wir es getan haben. Das ist das Erste, was
wir tun werden. Und dann werden wir das auch
so
einstellen , dass die Interaktion
gleich danach beendet Nachdem wir
das Material geändert haben, werden
wir sagen, hey, wir haben die Interaktion
hier beendet, wir sind fertig. Also mach weiter und ändere
diese Variable jetzt auf true. unser Charakter das nächste Mal
versucht, damit zu interagieren, wird
er einfach diesen
Bank Brick Bump spielen. Okay. Das erste,
was wir tun wollen, das zweite, was
wir tun wollen, ist einfach mit unserer Sequenz
fortzufahren. Tatsächlich geschieht das hier nicht nur im Interesse der
Organisation. Ich nehme unseren damaligen
Nullpol und stecke ihn hier ein. Den kann ich hier
unten so einstecken. Und wir werden einfach
versuchen, das aufzuräumen, damit unser überarbeitetes Drehbuch
so aussieht, als ob
wir zum ersten Mal auf unseren Block stoßen, werden
wir herausfinden, ob
wir mit der Interaktion fertig Standardmäßig
wird das falsch sein. Dann werden wir in unsere Filiale
kommen und herausfinden,
hey, ist der Timer abgelaufen? Standardmäßig ist es falsch,
was bedeutet, dass
wir nur unser erstes Mal damit
interagieren werden. Bei unserer ersten Interaktion werden
wir einmal diesen Timer einstellen. Die Uhr tickt also, in diesem Fall 5 Sekunden. Wir werden dann
all diese Sachen
sofort machen, nachdem
dieser Timer eingestellt ist Also all diese Dinge werden
sofort folgen. Dann, nach 5 Sekunden, wird
das wahr. Wenn wir also versuchen, den Block nach Ablauf
der Zeit zu
treffen ,
wenn es wahr ist, werden
wir, sobald wir
unser Material auf
diesen gebrauchten Block gesetzt haben, im Grunde eine weitere Beule,
eine weitere Interaktion zulassen ,
und dann werden wir auf wahr drehen,
sodass es so ist, dass wir
beim nächsten Versuch,
ihn zu treffen, einfach
darauf stoßen und diesen sodass es so ist, dass wir
beim nächsten Versuch,
ihn zu treffen das
auf wahr drehen,
sodass es so ist, dass wir
beim nächsten Versuch,
ihn zu treffen, einfach
darauf stoßen und diesen Sound abspielen. Lassen Sie uns weitermachen und das kompilieren. Lass uns das in unser
Level ziehen und sehen, ob das funktioniert. Und dann werde ich dieses
Drehbuch für
Sie alle vor der Kamera einrahmen , damit Sie es bei Bedarf
überarbeiten können Hier wird unsere Münzbox sein. Jetzt wirst du es merken, lass mich
einfach zwei davon reinbringen. Ich mache die Alt-Taste und
ziehe eine Sekunde. Also beide sind Münzboxen drüben im Detailbereich. Ich kann anpassen, lange diese Münzbox
aktiv bleibt. Also stelle ich die zweite, ganz links
hier, auf 10 Sekunden ein. Und ich sage, jedes Mal, wenn
ich
damit interagiere , werden
fünf Münzen statt
einer hinzugefügt und statt 100
Punkten für jede Münze werde
ich es auf 500 setzen. Also diese erste Münzbox, ziemlich normale
Standardparameter. Der zweite wird
etwas extremer sein. Lass uns
weitermachen und es versuchen. Gut, unsere normale
Münzbox wird hier für 5 Sekunden
am Leben bleiben , 12 Sekunden. Sie können sehen, dass es sich um
eine Münze nach der anderen erhöht ,
100 Punkte auf einmal Nach 5 Sekunden kann ich nicht mehr damit
interagieren. Dieser wird für 10 Sekunden
am Leben bleiben. Los geht's. Jeder von uns ist 500 Punkte wert, und wie Sie sehen können, werden fünf Münzen gleichzeitig
hinzugefügt. Nach 10 Sekunden läuft
das Timeout ab. Da haben wir es. Wir haben eine
hochgradig anpassbare Münzbox. Lassen Sie uns das einfach noch einmal auf den Bildschirm bringen
, damit Sie das Video
hier bei Bedarf anhalten können. Das ist der erste
Teil des Skripts. Dann, wenn wir hier von unserem
Sequenzknoten kommen, haben
wir unseren neuen Null-Pin. Stellen Sie sicher, dass Sie das
Kästchen genau hier angekreuzt haben. Zeitbetrag ist auf einen
Standardwert eingestellt und all dies wird der
Rest sein, wie er zuvor war. In Ordnung Leute,
das wird alles für diesen machen. Wir sehen uns im nächsten.
40. Blockiere die Feuerblume #1: Im Laufe der
nächsten Videos hier werden wir daran arbeiten
, unserem
Charakter Flower Power zu verleihen. Aber wir müssen damit
beginnen,
einen Block zu erstellen , der, wenn er mit
ihm interagiert, tatsächlich eine Feuerblume hervorbringt Darauf
werden wir uns im
Laufe der nächsten
beiden Videos konzentrieren Laufe der nächsten
beiden Videos Und dann werden wir uns darauf konzentrieren
,
unseren Spielern zuerst einige Feuerbälle
zu geben , mit denen sie einen Block abschießen können, dann die Fähigkeit,
tatsächlich Feuerbälle abzuschießen Lassen Sie uns gleich wieder
hier in unserem Inhaltsbrowser damit beginnen. Wir werden erneut eine
Abkürzung wählen, indem wir ein Duplikat
unserer B-Block-Q-Münze
erstellen. Sie können mit der rechten Maustaste
darauf klicken, um es zu duplizieren, oder Strg+D
dupliziert es ebenfalls. Beide Methoden reichen völlig aus. Ich nenne das BP
Block Fire Flower. Dann
doppelklicken wir wie gewohnt darauf, um es zu öffnen. Wir werden damit
beginnen, hier
ein paar Komponenten hinzuzufügen . Lassen Sie mich zu meinem Viewport-Tab wechseln. Und ich möchte sicherstellen
, dass diese Komponenten an unserem Würfel
hier, unserem Block,
befestigt sind an unserem Würfel
hier, unserem Block,
befestigt Wählen wir hier zuerst unseren
Würfel aus. Der erste, den ich hinzufügen
werde, wird ein Box Collider sein Und das wird
genau hier zu finden sein, eine Box-Kollision. Also mach weiter und wähle das aus. Ich nenne diese Box
Underscore Flower. Und wenn das ausgewählt ist, legen
wir
gleich die Größe
des Felds fest , damit ich einen Wert im Kopf habe Es wird 40 mal 40 mal 40 sein. Ich werde dort die Eingabetaste drücken. Ich werde auch
die Linienstärke festlegen. Ich werde das auf fünf setzen, nur damit es
etwas
auffälliger und leichter zu erkennen ist. Jetzt sehen wir
noch nichts, weil das in unserem Würfel
vergraben ist . Aber die Idee hier ist, dass, wenn wir auf die Unterseite
dieses Würfels treffen, dieser sich tatsächlich so
nach oben bewegt Jetzt möchte
ich dieser Komponente ein statisches Netz hinzufügen Stellen Sie also sicher, dass Sie Ihr
Kartonmehl hier ausgewählt haben. Lassen Sie uns eine statische
Mesh-Komponente hinzufügen. Diese können wir einfach Underscore Flour
nennen. Und wenn dieses ausgewählt ist, wird
unser statisches Netz eine Ebene sein Wir werden einfach
eine 2-D-Karte verwenden. Wählen wir diese Ebene
hier unten für das Material aus, das wir
tatsächlich benötigen, um
dieses Material hier
in unserem Inhaltsbrowser zu erstellen . Gehen wir zurück zu unserem
Texturen-Ordner. Ich habe hier einen für unsere vier, da ist er,
unterstreicht Fire Flour Wenn wir mit der rechten Maustaste darauf klicken, können
wir es
in ein Material umwandeln Lassen Sie uns weitermachen und diesen Namen
hinterlassen. Also werde ich einfach
die Eingabetaste drücken. Und dann verschiebe ich
das in
meinen Materialordner, indem ich es per Drag
& Drop hierher ziehe. Wir sagen, verschiebe es
hierher. Dann gehen wir in unseren Materialordner. Ich werde sofort
darauf doppelklicken , um
es zu öffnen, da ich hier einige Änderungen vornehmen
möchte. Ich möchte den Mischmodus
von undurchsichtig auf durchscheinend ändern von undurchsichtig auf durchscheinend Dadurch wird uns
dieser Opazitäts-Pin
zur Verfügung stehen Und wir werden diesen Wert nehmen und ihn
mit der Opazität
verknüpfen
wollen Wert nehmen und ihn
mit der Opazität
verknüpfen Und lassen Sie mich das stattdessen einfach auf eine Kugel
legen Ich werde es,
sagen wir, auf eine Kiste wie diese legen. Jetzt können wir sehen,
wie es dem Spieler
im Spiel tatsächlich erscheinen
wird. Wir werden das nur in ein Flugzeug
projizieren, also wird es so aussehen. Das wird ziemlich gut werden. Was wir hier auch tun können. Ich werde unseren
Master-Materialknoten auswählen. Wir können auch das
zweiseitige Kontrollkästchen aktivieren. Das sollten wir nicht brauchen
, weil es nur in eine Richtung zeigen wird. Aber dadurch wird es für uns leicht sein, es zu sehen, egal in welche Richtung
der Spieler schaut. Lass uns weitermachen und hier speichern. Dann können wir weitermachen und das wieder
schließen. Und dann lasst uns
wieder in unseren BP-Block eintauchen. Feuerblume mit unserer ausgewählten
Netzblume. Wir werden das in ein Flugzeug
bringen. Gehen wir zu unseren Materialien
und wenn ich Feuermehl so eintippe,
ist da unsere Feuerblume. Jetzt
möchte ich auch sichergehen, dass diese Karte, die hier
auftauchen wird , unserem Spieler zugewandt
ist Jetzt, nur um dir
zu zeigen, wovon ich spreche, werde
ich
mein Schachtelmehl auswählen Sobald wir die Unterseite erreicht haben, wird es
wieder so hochgehen. Beachten Sie jedoch, dass unser Netz
nicht dem Spieler
zugewandt ist , der das ausgewählt hat. Ich werde zur Sache mit den
Rotationseinstellungen übergehen. Und ich werde
meine X-Rotation auf
90 setzen , sodass sie dem Spieler
zugewandt ist sodass Sie sehen können, wie das funktionieren
wird , wenn
wir mit
diesem Block interagieren , der einfach so
nach oben geht. Und wir werden
diese Kiste verwenden , um zu erkennen, wann sich
unser Charakter
überschneidet, sodass
wir das Mehl einsammeln können Nun, noch eine Sache, die ich
hier mit unserem Maschenmehl machen muss hier mit unserem Maschenmehl Geh zurück und wähle das aus. Wir haben die Rotation auf 90 gesetzt. Wir haben das Material eingestellt. Wir müssen noch eine
Sache erledigen. Wir müssen hier die
Kollisions-Voreinstellung so einstellen , dass keine Kollision stattfindet. Wir wollen nicht, dass etwas damit
kollidiert, keine Kollision. Auch hier werden wir
einfach dieses Kistenmehl
verwenden, um zu überprüfen,
ob wir das
Mehl überlappt haben, und es so einsammeln Ordnung, wenn das alles erledigt ist, gehen
wir zu unserem Event-Graph und modifizieren unser Skript
hier ein wenig davon
werden wir behalten, einiges davon werden wir jetzt
loswerden, wir werden hier keine Münzen
hinzufügen. Also können wir diesen Teil
des Skripts einfach loswerden. Linksklick und Ziehen,
und wir können das
löschen einige Punkte hinzufügen. Wir werden das etwas später machen
, nicht in diesem Teil
des Skripts. Also werde ich diesen Draht einfach abschneiden
, indem ich die Alt-Taste
gedrückt halte und mit der linken Maustaste klicke Und ich werde das für unser Spiel X vorerst zur
Seite ziehen . Das Einzige, was ich daran ändern
möchte, ist unser
Interact-Soundeffekt Derzeit ist es auf Münze eingestellt, ich setze das
auf Gegenstand und dann gehe
ich weiter nach unten und sehe welche Änderungen wir mit unserem Block Anum
vornehmen können Okay, für den Anfang wird
das alles gut sein, wird
das alles gut sein außer dass ich ein
bisschen Drehbuch hinzufügen möchte Nachdem wir diese
Blockanimation beendet haben, möchte
ich einen kleinen Effekt mit leuchtenden Partikeln hinzufügen Also werde ich
einen
Verweis auf unsere
Netzblume einfügen, den ich per Drag-and-Drop hineinziehen Wir
ziehen das in die Länge und sagen „Ermitteln Sie Standort
der Welt“ so. Und wir werden das
an
einen Spawn-Emitter am Standort anschließen einen Spawn-Emitter am Spawn-Emitter am Standort. Auch hier wird das ältere
Partikelsystem verwendet ältere
Partikelsystem Spawn-System am Standort
würde einen
Niagara-Partikeleffekt nutzen Der Grund, warum
ich mich dafür
entscheiden werde, ist, dass ich
einen bestimmten
Partikeleffekt im Sinn habe einen bestimmten
Partikeleffekt im Und wenn ich hier klicke, kommt
das aus
unserem Infinity Blade-Paket. Das wird
Dead Man's, Dead Man's Lute unterstreichen Dead Man's, Dead Man's Lute Das werde ich
von unserem Ziel hier aus so spielen. Und dann
werde ich das auch zu einer Variablen hochstufen,
sodass es
diesen Emitter erzeugt Ich werde mit der rechten Maustaste
auf diesen Rückgabewert klicken. Und wir werden daraus eine Variable machen
, weil wir sie
später zerstören
wollen, sobald
wir
die Feuerblume gesammelt haben. Sobald ich also mit der rechten
Maustaste auf eine Variable geklickt
habe , kann ich ihr einen Namen geben Ich nenne das
mein Power-Up-Glow. Das klingt nach einem schönen Namen. Und noch einmal, wir werden das verwenden, um es später zu zerstören. Das wird alles
für unsere Blockanimation sein, unser Block bewegt
sich in die Luft. Ich werde einfach die Strg-Taste
gedrückt halten und mit der linken Maustaste klicken. Und ich werde das auf unsere damals eine Stecknadel verschieben. Ich werde das sogar als solches umbenennen. Jetzt muss ich an
unserer Blumenanimation arbeiten. Also das ist der Block,
der quasi in die Luft gestoßen wird Aber was ist mit der
Blume, die tatsächlich aus dem Block auftaucht Im Moment ist sie
im Block vergraben. Wir brauchen etwas,
um das daraus zu machen. Dieser nächste Teil
unseres Ereignisdiagramms wird
unterhalb unseres Blocks erstellt. Animation wie. Also klicke ich einfach mit der
rechten Maustaste in eine leere Stelle
und füge eine Zeitleiste ein. Wir werden eine Zeitleiste hinzufügen. Ich nenne das meinen An-Flow. Eine Blume, Anum. Lass mich das
mit meinem Scrollrad vergrößern. In diesem Fall werden wir auf diese Zeitleiste
doppelklicken. Wir haben unseren neuen Tab hier oben. Wir werden
einen Float-Track hinzufügen. auf Plus-Track klicke, ich auf Plus-Track klicke, nenne ich das Bewegung. Und ich werde unserem Track zwei
Keyframes hinzufügen. Hier noch einmal ein paar
Möglichkeiten, wie Sie sie hinzufügen können. Sie können sie hinzufügen, indem Sie die Umschalttaste und die
Umschalttaste gedrückt halten und mit der linken Maustaste klicken. Sie können auch mit der rechten Maustaste
in eine leere
Stelle klicken und eine Taste hinzufügen. So oder so, wir machen das für
unseren ersten Keyframe, ich
wähle ihn stattdessen einfach aus. Eine Zeit von Null und
ein Wert von Null. Dann wähle
ich für unser zweites Schlüsselbild das aus
und stelle
die Zeit auf 0,5 ein.
Das dauert also eine halbe Sekunde und ich setze
den Wert auf 100. Ich kann sie alle einrahmen,
indem ich auf die Pfeile Y 100 klicke. Nun, wenn ich zu
meinem Viewport gehe und hier meine Netzblume
auswähle, sieh dir das Ich werde hier
den Standort ändern. 100 unwirkliche Einheiten sind
letztendlich das, was wir tun
wollen, um das aus dem Block
zu Wir werden es um 100 in diese Z-Richtung nach
oben bewegen. Okay, stellen wir sicher, dass wir unsere Zeitleistenlänge
jetzt
auch auf
eine halbe Sekunde
einstellen auch auf
eine halbe Sekunde , damit sie
unserem letzten Keyframe entspricht Also setze ich das auf 2,5 und gehe
zurück zu unserem Event-Graph, lassen Sie uns das
von unserem Sequenzknoten Wir machen es mit
unseren dann zwei Pins. Wir werden das spielen. Wir wollen mit unseren vier sprechen. Unser Maschenmehl, unser Maschenmehl. Lass uns das Buchsmehl machen, das wir brauchen
, um die Buchsblume nach oben zu bewegen. Das ist erwähnenswert. Wir wollen
zwar, dass das
Maschenmehl selbst um 100
steigt, aber das wird mit der Zeit
kommen. Wenn wir die Buchsblume nach oben bewegen, ist
es wichtig, dass wir
die Buchsblume bewegen, weil wir irgendwann prüfen
werden, ob
sich dieser Collider überschneidet Die Buchsblume ist
das, was wir eigentlich nach oben bewegen wollen Die Mesh-Mehl-Karte
erscheint bei der Rückfahrt
in unserer Eventgrafik. Ziehen wir unsere Buchsblume so rein. Wir
werden uns das besorgen. Ich klicke mit der rechten Maustaste
darauf und rechne das in ein validiertes GET um,
was bedeutet, dass wir diese Bewegung nur
ausführen, wenn
bestätigt wird , dass diese
Buchsblume tatsächlich existiert. Wir werden das
vernichten, wenn wir es irgendwann hier abholen. Wir sagen im Grunde, es diese Komponente überhaupt? Und was wir tun werden
, ist, wenn wir unsere Zeitleiste hier
über eine halbe Sekunde
aktualisieren, werden
wir nur dann etwas
tun, wenn diese
Buchsblumen-Komponente existiert. Wenn es nicht existiert und es auch nicht mehr existieren wird,
nachdem wir es gesammelt
haben, werden wir nichts tun. Was wir
tun wollen, wenn es existiert. Also ziehen wir das die Länge und sagen:
Relative Position festlegen ist
relative Position. Jetzt ziehen wir
die neue Position rückwärts
von hier weg und geben make ein, da ist sie, make vector Wir wollen das nur in Z-Richtung nach
oben bewegen. Unsere Bewegung hier, wieder einmal, unsere Zeitlinie spezifiziert
, dass
sie über eine halbe Sekunde um
100 unwirkliche Einheiten steigen wird Das wird unsere Animation
sein Linksklick, Taste ziehen Das ergibt sich
aus unserem Two-Pin-Flow. Ähm, wir färben das sofort
schwarz. Okay, das
sieht alles gut und gut aus. Und zu guter Letzt werden wir hier
einfach
unseren
Finish-Interaktions-Setter aufstellen hier
einfach
unseren
Finish-Interaktions-Setter Wir können
diesen dann vierpoligen Anschluss tatsächlich eliminieren. Also werde ich einfach
die Steuertaste gedrückt halten und mit der linken Maustaste klicken. Schieben Sie es auf die
dann drei Pins. der rechten
Maustaste darauf klicke, entferne ich den Ausführungs-Pin. Das wird Teil eins
unserer Feuerblume hier sein. Ein bisschen mehr Arbeit liegt
vor uns. Irgendwann
werden wir Punkte hinzufügen, aber unser endgültiges Drehbuch
wird so aussehen. Lassen Sie uns versuchen, das
Stück für Stück zusammenzustellen. Es gibt im Wesentlichen
den oberen Teil und dann geht es weiter nach unten für
die zwei und dann für drei. Das wird
unser unterer Teil sein. Lass uns weitermachen und das kompilieren. Wir werden jetzt sparen. Wir müssen das spielen und testen. Nochmals, wir werden die Feuerblume noch
nicht
einsammeln können ,
aber wir sollten sehen, wie
die Feuerblume aus dem Block
herausspringt,
sobald wir mit ihr interagieren. Los geht's. Gehen wir zurück zu unseren Blöcken,
wir haben unseren Block, Feuerfluss, lassen Sie uns das hier
in Position bringen. Reinspringen und spielen. Ordnung, wenn wir
mit dem Block interagieren, steigt
die Blume auf, wir sehen das leuchtende Partikel. Offensichtlich können wir es noch nicht
abholen. Aber wir haben unseren ersten
Teil des Drehbuchs fertiggestellt. Job erledigt, Leute.
Gehen wir zu Teil Nummer zwei über und beenden
das Ganze. Wir sehen uns dort.
41. Blockiere die Feuerblume #2: Willkommen. Im letzten Video haben wir einen Bauplan für Blöcke erstellt
, aus dem
eine Feuerblume hervorgehen soll ,
wenn unser Charakter damit interagiert Wir haben jedoch kein Skript die Funktionalität zum
Sammeln der Feuerblume eingebaut. Das werden wir also in Teil Nummer zwei
tun. Machen Sie weiter und
doppelklicken Sie wieder auf Ihre BP-Block-Fire-Blume
, um wieder hier einzutauchen. Als erstes
möchte
ich hier eine neue Komponente hinzufügen. Und das wird einfach ein Punkt im Weltraum
sein. Ich habe hier mein
Standard-Szenen-Root ausgewählt. Ich werde eine Komponente hinzufügen. Das wird
eine Pfeilkomponente sein. Wenn ich zum Aussichtspunkt gehe, ist
das einfach dieser rote
Pfeil hier drüben. Ich möchte die Position
ändern und werde die Z-Position auf 150
setzen Meine einzige Verwendung für diese
Komponente, auch hier wird
der Benutzer diesen Pfeil nicht sehen,
wenn er das Spiel spielt,
besteht darin, einen Punkt im Raum an dem ein
Punktwert erscheinen soll Okay, bei all dem wählen
wir unsere Boxblume aus, das ist diese
Box-Collider-Komponente , die darin vergraben ist Ich werde mit der rechten
Maustaste darauf klicken. Ich werde
ein Ereignis für den Fall hinzufügen unser Charakter anfängt
, sich damit zu überschneiden. Das bringt uns
zurück zu unserem Ereignisdiagramm. Was wir tun wollen, ist zu
überprüfen, ob es
unser Charakter ist , der die Überlappung
macht Lassen Sie uns noch einmal ein Gleichheitszeichen einsetzen. Ich ziehe es rückwärts raus. Holen Sie sich einen Spielercharakter damit Sie auch auf Ihren Charakter casten können, anstatt diese Art von Konfiguration vorzunehmen Aber ich habe das die
ganze Zeit gemacht, entweder wir werden es tun, wir werden so
einen Verzweigungsknoten einbauen. Wenn es unser Spielercharakter ist
, der die Überlappung macht, werde
ich einen Sequenzknoten
einbauen weil es ein paar
Dinge gibt, die ich gerne tun würde die Taste S gedrückt halte, klicke
ich mit der linken Maustaste, um einen Sequenzknoten
einzufügen Dann
zoome ich wieder zurück. Und ich werde diesen
Teil des Skripts genau
hierher verschieben, wo ich über unseren Abschnitt zum
Hinzufügen von Punkten im Drehbuch gehe. Jetzt
möchte ich als Erstes ein paar Punkte für das Sammeln einer Feuerblume
hinzufügen. Also werde ich das einfach in die richtige Position bringen. Zoomen Sie ein bisschen nach oben, rahmen Sie das so ein, dass es
von unserem Null-Pin Wir fügen einige Punkte die wir klicken, um dort einen
kleinen Umleitungsknoten hinzuzufügen Ich muss etwas spezifizieren, ich werde da
eine Null eintragen Wo genau ich will, dass
das spawnen soll. Nun, ich habe diese
Pfeilkomponente aus diesem Grund hinzugefügt. Also werde ich das
per Drag & Drop auf unsere Get-Transformation ziehen. Und Sie können sehen, dass das
eigentlich nicht funktionieren wird , weil das kein Schauspieler
ist. Das muss ich löschen. Lass uns
unseren Pfeil hier reinziehen. Und ich werde hier
rausziehen und Get World Transform eingeben . Das ist also eine Szenenkomponente im
Gegensatz zu einem Schauspieler. Das ist die Stelle,
an der ich in unseren Punkten spawnen möchte. Da es sich um eine Feuerblume
handelt, kann
ich angeben, wie viele
Punkte ich dafür haben möchte Statt 100 werde ich
dafür sorgen, dass es 1.000 wert ist. Auch hier können
Sie das für
diese spezielle Variable anpassen. Das soll nun einige Punkte hinzufügen. Das zweite, was ich tun möchte,
ist einige Komponenten zu zerstören. Ich bringe meine Buchsblume mit. Lassen Sie uns das per Drag-and-Drop in
die Grafik ziehen. Ich ziehe es raus
und tippe de eine Komponente ein. Jetzt will ich nicht den ganzen Schauspieler
zerstören. Ich will, dass der Block rumhängt. Ich will nicht, dass die ganze
Sache verschwindet. Aber es gibt ein paar Komponenten, die ich daraus vernichten
möchte. Ich möchte meine Buchsblume zerstören, das ist übrigens die
Triggerbox. Ich möchte auch
unsere Netzblume zerstören. Ich werde
das hier reinziehen und wir können beide in
diese Destroy-Komponente einbauen. Und ich möchte auch
unser Power-Up-Glow wieder zerstören. Darauf haben wir hier in unserer
Blockanimation hingewiesen. Wir haben mit der rechten Maustaste darauf geklickt und das zu einer Variablen
hochgestuft. Und das haben wir gemacht, damit
wir es dann zerstören können sobald der Charakter die Feuerblume
eingesammelt hat, sonst bleibt
das Leuchten da draußen hängen Und wieder zerstören wir hier die Buchsblume. Also beim ersten Mal
wird das gültig sein
und der Spieler
wird sehen, wie diese
relative Position
unserer Buchsblume nach oben aufgeht. Aber beim zweiten Mal, nachdem es eingesammelt wurde,
wird es nicht mehr gültig sein, also gibt es
nichts, was nach oben verschoben werden könnte. Zerstöre die Buchsblume,
die Netzblume
und unser Power-Up-Glow, all diese drei. Ich wähle einfach all
diese aus und tippe auf die C-Taste. Ich nenne das meine Destroy
the Lock-Komponenten. Die Skriptfarbe ist ebenfalls schwarz. Wir haben das alles ziemlich gut auf
dem Bildschirm dargestellt. Lass uns weitermachen und
das
kompilieren und speichern . Jetzt lass uns weitermachen und es in unserem Level
testen. Jetzt sollten wir sehen, wenn
wir unser Spiel spielen, wir sollten sehen, wie die Blume daraus
aufsteigt. Und jetzt sollten wir sie so
einsammeln können, dass jetzt noch nichts
passiert. Wir gewinnen eigentlich keine
Flower-Power, wenn Sie so wollen. Also das kommt nächstes Video. Es muss noch mehr Arbeit getan werden, um
unserem Charakter Flowerpower zu verleihen.
42. Fire-Flower-Player-Transformation: In diesem Video
ist es unser Ziel, ein Drehbuch zu erstellen, unseren Charakter
darüber informiert,
dass er eine Feuerblume bekommen hat, damit der Charakter entsprechend reagieren
kann Jetzt wird dieses kleine
Drehbuch den Spieler
verändern, wenn er die Feuerblume
einsammelt In diesem Fall gibt es eine Menge Arbeit zu
erledigen. Lass uns gleich loslegen
und keine Zeit verschwenden. Ich fange
hier mit meinem BP, einem
Charakterplan für
Dritte Person, Charakterplan für
Dritte Person Also werde ich es einfach auswählen. Drücken Sie die Leertaste
, um es zu öffnen. Und hier drinnen
möchte ich anfangen. Gehen wir zuerst zu unserem Viewport. Und wir werden
unsere Kapselkomponente auswählen. Das ist
hier unser Hauptbestandteil , mit dem andere Dinge
verknüpft sind . Dieser Einzug zeigt eine bindende Beziehung. Ich werde das sofort
verkleinern. Und ich kann das im
Detailbereich
einheitlich skalieren , indem ich
auf diese kleine Sperrtaste Und dann 0,75 drücken und
dann Nor drücken, um unseren
Charakter insgesamt zu verkleinern Standardmäßig möchten wir, dass
unser Charakter, unser spielbarer Charakter, mit einer
kleineren Größe beginnt Jetzt werde ich
hier auch die halbe Höhe
unserer Kapsel
und den Kapselradius so einstellen halbe Höhe
unserer Kapsel
und den Kapselradius , dass sie etwas anders sind Ich werde die
halbe Höhe unserer Kapsel auf 96 einstellen. Und wir werden unseren
Kapselradius hier auf
34 einstellen , also
etwas dünner, etwas größer, nur um dort
ein bisschen mehr
Verzeihung zu bieten Ordnung, als Nächstes
gehen
wir in unser Ereignisdiagramm und erstellen ein benutzerdefiniertes Also schwenken Sie mit der rechten Maustaste darüber. Ich
klicke mit der rechten Maustaste, gebe benutzerdefinierte Ereignisse ein und füge ein benutzerdefiniertes Ereignis hinzu. Ich werde das
Got Flower Power nennen. Auch hier
müssen benutzerdefinierte Ereignisse manuell aufgerufen werden, also
müssen wir das irgendwann aufrufen. Aber jetzt haben wir das schon
eingerichtet. Also das ist alles schön und gut. Als Nächstes werden wir zwei Variablen
erstellen. Klicken Sie im
Bereich „Mein Blueprint“ auf die Plus-Schaltfläche. Der erste wird Player Scale Small
heißen. Das wird ein Vektor sein. Dann füge ich einen
weiteren hinzu, der heißt Has Fire Flower, und das
wird ein boolescher Wert sein Ordnung, wenn ich diese kompiliere, möchte
ich, In Ordnung, wenn ich diese kompiliere, möchte
ich,
dass das
Feuerblumenbarren hat , was standardmäßig
falsch sein wird , unser
Spieler skaliert klein, ich möchte, dass das auf
der ganzen Linie eins Okay, als Nächstes möchte
ich eine
Kategorie erstellen, in der diese leben Drüben im Kategorienbereich
des Detailfensters
können wir eine Kategorie erstellen. Deshalb nenne ich das
meine Kategorie „Spielergesundheit“. Player Health drückt die Eingabetaste. Jetzt könnt ihr also sehen, dass wir im
Bereich Mein Blueprint
eine Kategorie namens
Spielergesundheit hinzugefügt haben im
Bereich Mein Blueprint
eine Kategorie namens
Spielergesundheit Bereich Mein Blueprint und Player Scale
Small ist da drin Ich werde auch seine
Feuerblume da reinstellen. Bei dieser ausgewählten Kategorie
wird es um Spielergesundheit gehen. Ordnung, als Nächstes
möchte ich eine Zeitlinie erstellen
, die das Wachstum
unseres Charakters
steuert , wenn er die Feuerblume
einsammelt. Es wird diese
Art von sehr schnellem Schrumpfen und Wachsen sein,
eine Art Effekt Also
klicke ich mit der rechten Maustaste in eine leere Stelle Zeitleiste Und ich werde das
unsere Wachstumszeitlinie nennen. Und dies wird wahrscheinlich der schwierigste
Zeitplan sein , den wir in diesem
Kurs zusammengestellt Ich werde
darauf doppelklicken, um es zu öffnen. Wir werden
einen Float-Track hinzufügen. Spur. Float Track,
und ich nenne das unseren Wachstumsmultiplikator Jetzt setze ich
die Länge
auf 0,8 Sekunden. Dann werde ich die
Schlüssel alle 0,05 Sekunden einstellen. Ich werde versuchen, dies
auf relativ
organisierte Weise zu tun , und dann werden wir im Laufe
der Zeit die Schlüssel und
Werte dafür festlegen . Ich werde einfach die Strg-Taste
gedrückt halten und scrollen. Gut gemacht, nur um unseren Zeitplan hier
ein bisschen zu erweitern . Also unser erster Schlüssel, Rechtsklick,
wir werden einen Schlüssel hinzufügen. Dieser erste Schlüssel wird
auf eine Zeit
von Null und einen Wert von 0,9 gesetzt . Kann sie so reinbringen. Unseren nächsten werde
ich hier unten platzieren Klicken Sie mit der
rechten Maustaste auf Schlüssel hinzufügen. Dies wird
eine Zeit von 0,05 und
ein Wert von 0,65 sein. Auch dies wird
ein Skalenmultiplikator sein Möglicherweise müssen Sie
auf diese Pfeile klicken, um sie
ständig
anzuzeigen und ein- und auszublättern Bei unserem nächsten Mal werde ich
auf Schlüssel hinzufügen klicken. Dieser wird
0,1 Sekunden dauern. Der Wert wird 0,9 sein. Beim nächsten Klick mit
der rechten Maustaste klicken, Taste
hinzufügen, 0,15 und der
Wert wird
0,65 sein , sodass Sie
diesen Seesägeeffekt sehen können Als Nächstes klicke ich hier mit der rechten
Maustaste. Wir werden einen Schlüssel hinzufügen. Das sind 0,2
Sekunden und ein Wert von 0,9. Dann noch einmal, hier
unten, rechten Maustaste klicken, einen Schlüssel hinzufügen, 0,25
und einen Wert von 0,65 Okay, jetzt werden wir
es ein wenig erhöhen Wir werden ein
niedrigeres Wachstum, ein mittleres Wachstum
und ein hohes Wachstum haben mittleres Wachstum
und ein hohes Wachstum Beim nächsten Mal werde ich genau hier klicken
,
mit der rechten Schlüssel hinzufügen klicken. Es wird
eine Zeit von 0,3 und
ein Wert von 1,1 sein . Als Nächstes werde
ich genau hier klicken,
mit der rechten Maustaste klicken. Es wird 0,35
für die Zeit sein und der
Wert wird 0,65 sein Diese unteren Teile
unseres Sägeblattes hier werden im Wesentlichen 0,65 sein Scrollen Sie ein wenig
zurück, ich werde genau hier klicken, Taste
hinzufügen Dieser Wert wird
0,4 Sekunden lang sein.
1,1 Klicken Sie mit der rechten Maustaste auf Taste hinzufügen, 1,1 Klicken Sie mit der rechten Maustaste auf Taste hinzufügen, 0,45 und 0,65 für den Wert.
Klicken Sie mit der rechten Maustaste. Fügen Sie einen weiteren Schlüssel hinzu. Das
werden 0,5 Sekunden sein und 1,1. Wir werden
einen weiteren hinzufügen, genau hier. Rechtsklick, 0,55 ist die Zeit, 0,65 ist der Wert Dann haben wir hier noch ein paar
mehr vor uns. rechten Maustaste klicken.
Ich schiebe das um. Ich werde hier mit der
rechten Maustaste klicken . Wir
werden einen Schlüssel hinzufügen. Dieser Wert liegt bei 0,6 Sekunden, der Wert wird
1,3 sein . Wir
klicken auf Schlüssel hinzufügen,
0,650 0,65 Rechtsklick Schlüssel hinzufügen, 0,7 und 1,3
Klicken Sie mit der rechten Maustaste auf Schlüssel hinzufügen Das sind 0,75
und 0,65 Dann zumindest sind wir fast da, Leute, füge diese Taste hinzu, wird
0,8 und ein Wert von
1,3 sein . Also werde ich
all diese Scrollen,
Scrollen, Zurückrollen,
Linksklicken und Ziehen hervorheben . Alle meine Punkte hier
sind hervorgehoben und wir können
sie so einrahmen Jetzt hast du ein
Wippenmuster, das so aussieht. Also haben all diese unteren
Keyframes einen Wert von 0,65. Ich habe alle 0,5
Sekunden Sie können die
Uhrzeit beobachten. Du siehst quasi
das Muster hier, also alles klar, ich glaube,
du hast es von da. Ordnung, also raus von hier und zurück zu
unserer Eventgrafik. Also haben wir unsere
Got Flower Power. Was ich tun möchte, ist,
nachdem wir das anrufen, und wir werden uns später darum
kümmern,
ist, dass ich unsere
Hausfeuerblume anzünden will. Also werde ich
unsere rote Feuerblume reinziehen. Ich werde es einstellen und
wir werden sagen, ja, wir haben jetzt
die Feuerblume, also werden wir das wahr
machen. Lass uns weitermachen und
gleich
nach dem Abspielen von Sound zwei D einen Sound abspielen, und unser Sound hier
wird unser Power-Up Sound Power Up sein. Dann wollen wir
die Trefferpunkte anpassen, denn wenn wir
die Feuerblume haben, wir
im Grunde einen Trefferpunkt hinzu. Wenn ich also einfach mit der rechten Maustaste klicke und
Trefferpunkte anpassen
eintippe und falls du vergessen hast, wo
das hier ins Spiel kommt, lass mich das ein bisschen
rauszoomen. Wir werden das verkabeln. Wir werden in einer Sekunde darauf
zurückkommen. Ich werde darauf
doppelklicken. Das bringt uns dazu, dieses benutzerdefinierte Ereignis auszurufen, diese Änderung
unserer Trefferpunkte. Dieser ganze Teil des Skripts , den wir zu Beginn des
Kurses gemacht haben. Lassen Sie uns das
hier aufrufen, um unsere Trefferpunkte zu ändern. Jetzt muss ich zu dem Feuerblumen-Skript zurückkehren , an dem wir gerade arbeiten, denn wenn wir
die Feuerblume bekommen, wollen
wir unsere
Trefferpunkte genau hier um eins erhöhen. Trefferpunkte-Modifikator, fügen
wir eine Eins hinzu,
sodass der Wert von Eins hier
in diese Gleichung übernommen wird hier
in diese Gleichung Okay, danach passen
wir die Hüftpunkte an, wenn wir unsere Feuerblume
bekommen Hier werden
wir unseren Zeitplan einbauen. Lassen Sie uns von Anfang an spielen, um sicherzustellen, dass wir immer von vorne
beginnen. Beachten Sie, dass wir diesen
Wachstumsmultiplikator haben. Wir werden ihn
verwenden, um mit unserer Spielerskala zu
multiplizieren . Also werde ich die Strg-Taste
gedrückt halten, linken Maustaste klicken und ziehen. Das ist hier pauschal ein Wert von eins
, also werden wir ihn verwenden, um mit unserem
Wachstumsmultiplikator zu multiplizieren Ich klicke mit der rechten Maustaste
in ein leeres Feld und tippe die
Multiplikationstaste ein, um einen Multiplikationsoperator
einzufügen , und wir werden
unseren Wachstumsmultiplikator multiplizieren Was nach unten
und oben und unten und hoch und runter und
hoch oszilliert und oben und unten und hoch und runter und
hoch Die Werte dafür
ändern sich im Laufe der Zeit immer wieder schnell. Wir werden das hier auf der ganzen
Linie mit Eins multiplizieren . Jetzt werden wir das
verwenden, um um unser Mesh zu vergrößern. Ich spreche hier von
diesem echten
Drei-D-Mannequin-Mesh diesem echten
Drei-D-Mannequin-Mesh Gehen wir zurück zu
unserem Event-Graph und ich füge einen
Verweis auf unser Mesh hinzu Wir
ziehen das in die Länge und geben Set Relative Scale Three D ein. Da unsere Zeitleiste hier aktualisiert
wird, werden
wir
die Skalierung unseres
Meshs mit ein bisschen
Mathematik hier ändern die Skalierung unseres
Meshs . Das könnte die Frage aufwerfen, warum skalieren wir unser Mesh und nicht
unsere Kapselkomponente? Denn wenn wir
unsere Kapselkomponente skalieren würden, würde
sich
alles andere von selbst ergeben. Warum machen wir es nicht einfach so? Nun, der Grund
dafür ist, dass, wenn
wir das skalieren,
statt unseres Netzes, unser Federarm und
unsere Kamera, die wir
hier aufstellen , komische Dinge
bewirken werden. Also werden wir diesen Ansatz wählen und dann die Größe
unserer Kapselkomponente
manuell ändern. Also das wird gleich hier
her kommen. Und tatsächlich werden wir uns direkt nach
dem fertigen Pin
unserer Timeline
darum kümmern . Hier werde ich von unserer Richtung
abschweifen. Das kann uns
die Richtung
unseres Zeitplans geben , den wir von hier
wegziehen müssen. Und ich gebe
Schalter auf Timeline-Richtung ein. Jetzt haben wir eine Vorwärts
- und Rückwärtsrichtung , die unsere Timeline über diesen Finish-Pin
hier einspielen
kann , also wollen wir einen Verweis
auf unsere Kapselkomponente einfügen Ziehen Sie das nun hinein, was wir tun wollen, ist es
wegziehen und die halbe Höhe der Kapsel
einstellen eingeben halbe Höhe der Kapsel
einstellen Und dann
ziehe ich das auch weg und tippe Set Capsule Radius ein. Wenn wir mit dem Abspielen
unserer Timeline in
Vorwärtsrichtung fertig sind, wollen wir unsere
Kapselhöhe festlegen, weil unser Mesh im Grunde genommen größer sein
wird. Außerdem müssen wir die
Größe unserer Kapsel die unseren Charakter
umgibt, anpassen. Wir werden die
halbe Höhe unserer Kapsel auf 120 einstellen. Hoppla, 120. Wir werden unseren
Radius hier auf 40 festlegen Stellen Sie sicher, dass Sie
das so verkabeln. Das heißt, wir
spielen es vorwärts und im Grunde sind wir gewachsen. Etwas anderes, was ich hier tun
möchte, ist,
dass ich einen weiteren Hinweis auf unser Netz einbringen möchte.
Zieh das so rein. Wir ziehen das weg
und geben die festgelegte Position ein. Wir werden
auch
die Position unseres Netzes manuell anpassen die Position unseres Netzes damit es
gut in
diese verkleinerte
Kapselkomponente passt diese verkleinerte
Kapselkomponente Also habe ich all
diese Werte anhand
einiger Versuchserzählungen herausgefunden , um uns etwas Zeit
zu sparen Und ich werde
unseren neuen Standort
hier auf minus 90 setzen hier auf minus 90 Okay, das wird
also außerhalb
der Zeitlinie liegen.
Richtung vorwärts. Okay. Nun, wenn wir
diese Zeitlinie rückwärts abspielen, also dass wir getroffen wurden, wollen
wir diese Effekte im Grunde
rückgängig machen Ich werde also die
Strg-Taste gedrückt halten und
sicherstellen
, dass ich diese
Knoten genau hier auswähle, 1,234.5 Lassen Sie mich sie noch einmal
hervorheben Ich werde Strg
D drücken, um sie alle zu duplizieren. Und ich werde einen weiteren
Satz von ihnen aus dieser
umgekehrten Richtung entfernen Wenn wir
diese Timeline im Grunde rückwärts abspielen, also wir getroffen wurden, möchte
ich unsere
Kapselkomponente
wieder auf ihre normale Größe zurücksetzen wieder auf ihre normale Und unsere halbe Größe
war standardmäßig 96. Unser Radius war standardmäßig 34. Und unser Standort
hier war standardmäßig, ungefähr minus 8.060,86.
Das habe ich in Wie dem auch sei, das ist ein bisschen Drehbuch, das aus
dem fertigen Teil
unserer Timeline stammt dem fertigen Teil Offensichtlich wird
diese Zeitlinie hier
nicht rückwärts abgespielt diese Zeitlinie hier
nicht rückwärts , es sei denn, wir haben ein
Ereignis, das dazu auffordert Ich werde nun ein wenig auf „Schwenken“ klicken. Ich werde erneut mit der rechten Maustaste klicken. Benutzerdefinierte Ereignisse. Wir möchten diesen
Spieler als beschädigt bezeichnen. Wir haben also ein benutzerdefiniertes Event
namens Player Damage. Wir stecken das vom Ende her
in die umgekehrte Richtung, also müssen wir es manuell
angeben, wann wir es aufrufen wollen. Jetzt, wo das erledigt ist, können
wir zu unserem Skript zur Anpassung der
Trefferpunkte gehen und
die Dinge ein wenig modifizieren. Also werde ich darauf doppelklicken, um zu
diesem
Teil des Skripts zu gelangen. Unsere Anpassung der Trefferpunkte ganz
unten rechts. Wenn Sie das
alles interpretieren wollen, können Sie das, aber im Grunde genommen werden wir
hier beschädigt. Wo wir getroffen werden, werden
wir unsere
Feuerblumenbarren platzieren, lassen Sie uns das wie folgt auf diese
Stecknadel ziehen Da kommt automatisch ein
Setter rein. Das setzen wir wieder auf „
Falsch“ zurück. Und wir werden das auch in die
Länge ziehen und Spieler, der beschädigt ist ,
eintippen. Wir rufen das
benutzerdefinierte Ereignis auf, das wir gerade erstellt und in
die Rückseite der Timeline Wenn wir also quasi einen Hüftpunkt
verlieren, setzen wir den Wert für „Has Fire Flower“ auf „Falsch“ um
und rufen dieses benutzerdefinierte Ereignis
auf, sodass unsere Timeline rückwärts
abgespielt wird rufen dieses benutzerdefinierte Ereignis
auf unsere Timeline rückwärts
abgespielt In Ordnung, fast fertig. Jetzt müssen wir das Got
Flower Power Custom Event nennen. Lass uns weitermachen und hier
kompilieren und speichern. Sehr wichtig, dass wir kompilieren
und speichern und jetzt müssen wir das von unserem
Fire-Blueprint aus
aufrufen Also lasst uns unseren
Feuerblumenblock öffnen. Blueprint, wo ist unsere
Feuerblume? Da ist sie Lass uns
darauf doppelklicken. Geh da rein. Wir wollen
es irgendwo hier nennen. Derzeit prüfen wir,
ob es unser Spielercharakter ist der
das Überlappen macht und dann die
Feuerblume und den ganzen Jazz einsammelt Das ist alles schön und gut,
aber wir müssen tatsächlich
auf dieses benutzerdefinierte Got Flower
Power-Event zugreifen Und diese Einrichtung hier
wird es nicht tun. Das reicht aus, um eine Überlappung zu
erkennen. Aber wir wollen überprüfen, ob es
unser Charakter aus der dritten Person ist , der
die Überlappung vornimmt Der Grund dafür ist, dass wir
unseren Charakter aus der dritten Person benötigen unseren Charakter aus der dritten Person ,
um dieses benutzerdefinierte Ereignis auszurufen Wir löschen diese drei
einfach hier draußen, 12.3. Stattdessen ziehen
wir unseren anderen Schauspieler
so ab und casten für einen Charakter aus
der dritten Person Und der Grund, warum wir uns
für dieses Setup entscheiden, ist wir uns jetzt von hier
wegziehen und Got Flower
Power
eingeben können , um unseren Charakter aus der dritten
Person
anzurufen Und dann können wir das
an unseren Sequenzknoten anschließen. Okay, lassen Sie uns weitermachen und es uns versuchen, kompilieren und speichern. Und wenn ich zurück zu unserem
Level-Editor gehe, werde
ich direkt ins Spiel kommen . Du wirst feststellen, dass ich standardmäßig kleiner
bin, also lass uns weitermachen
und mit
dem Block interagieren und dann nach oben springen. Sie können sehen, dass ich an Größe
zugenommen habe und die Kollision bei meiner größeren
Größe scheint intakt zu sein. Jetzt lass uns weitermachen und getroffen werden. Mal sehen, ob es rückwärts
geht. Als wir beschädigt wurden, sind
wir
wieder geschrumpft und es sieht so aus, als ob auch unsere Kapitalkomponente wieder
geschrumpft Es scheint, dass alles wie
vorgesehen funktioniert. Lassen Sie uns einfach unser letztes Drehbuch
in
unserem
BP-Third-Person-Charakter zusammenstellen . Wenn Sie
es noch einmal überprüfen möchten, setzen Sie den echten
Power-Up-Hüftpunkt-Modifikator auf eins Und dann passen
wir hier Wachstumsgröße
unseres Charakters an und
ändern auch die Größe der
Kapselkomponenten und auch die
Position unserer Maschen innerhalb dieser In Ordnung, Leute, das wird
es für diesen Fall reichen. Wir sehen uns im nächsten.
43. Fireball-Blueprint: Ordnung, jetzt, wo wir
die Feuerblume einsammeln können und
unser Spieler sich verwandelt, ist
der nächste Schritt für
uns, sie so zu gestalten dass der Spieler einige Feuerbälle
abschießen kann Und um das zu tun, müssen wir einen
Feuerball-Blueprint erstellen. Das werden wir in diesem Video
erreichen. Und wir werden hier
in unseren Projekteinstellungen beginnen und etwas erstellen, etwas erstellen als Kollisionskanal
bekannt ist. Und das wird in
unserem Fireball-Blueprint
ganz oben rechts verwendet unserem Fireball-Blueprint
ganz oben rechts Wir haben diese Einstellungen, wir werden
auf dieses Drop-down-Menü klicken Wir möchten auf unsere
Projekteinstellungen zugreifen. In unseren Projekteinstellungen werden
wir hier auf
der linken Seite auf den Kollisionsbereich
zugreifen . Jetzt genau hier, wo es Objektkanäle
heißt. Wir werden
einen neuen Objektkanal erstellen. genau hier darauf klicken, werden
wir
aufgefordert, einen Namen anzugeben. Ich nenne das Fireball und belasse die
Standardantwort als Block Und ich werde auf Akzeptieren klicken. Jetzt werden wir das hier kurz
verwenden, aber vorerst können wir unsere Projekteinstellungen schließen
. Das ist alles, was wir hier tun
mussten, war einen neuen
Kollisionskanal
zu erstellen. Klicken Sie lieber hier raus oder auf einen neuen
Objektkanal. Gehen wir in unseren Ordner mit
Plattform-Blueprints und
suchen nach einem leeren Bereich Ich werde die
Strg-Taste gedrückt halten und das
Rad zurückblättern , um hier einen
leeren Bereich zu finden Klicken Sie mit der rechten Maustaste auf Blueprint-Klasse. Das wird ein Schauspielkurs
sein. Blaupause. Ich nenne das
BP Underscore Fireball Und wenn das ausgewählt ist, tippe
ich
hier auf die Leertaste, um es zu öffnen Als Erstes möchte ich
hier eine Kugelkomponente hinzufügen, also klicke ich unter und wähle
die Kugelkomponente direkt unter einem statischen Netz aus. Und ich lasse es
mit dem Namen Kugel belassen. Jetzt werde ich das tatsächlich zu meiner
Hauptkomponente
für Projektile machen meiner
Hauptkomponente
für Projektile Sie möchten machen, was auch immer
Sie projizieren möchten. In diesem Fall
wird es sich um eine Projektilwurzelkomponente handeln, also werde ich sie wie folgt auf
meinen
Standard-Szenenstamm ziehen
und dort ablegen wie folgt auf
meinen
Standard-Szenenstamm Und das wird es zur neuen Wurzel
machen. Jetzt drüben im Detailbereich, und ich muss meinen
Detailbereich wieder erweitern. Es gibt einige
Einstellungen, die ich hier für Sterne ändern möchte . Ich werde
das Material
dafür in meinem Abschnitt Material ändern . Ich werde auf
dieses Drop-down-Menü klicken. Und ich habe einen in
diesem Infinity Blade of X-Pack namens Lava
Underscore Hot Es wird dieses
M sein, das heiße Lava fließt. Und das
wird ihm einfach
einen Feuerball-Look verleihen ,
ziemlich cool Und dann unten
im Detailbereich haben
wir unseren Kollisionsbereich Und für Kollisions-Presets werde
ich
das hier erweitern Ich werde das so ändern
, dass es benutzerdefiniert ist. Und dann werde ich unseren Objekttyp
hier so
ändern , dass er ein Fireball Der Grund, warum das
existiert, ist, dass wir es einfach in
unseren Projekteinstellungen
eingerichtet Ich werde das auf Fireball setzen
. Jetzt wird dies
als Fireball-Objekttyp bezeichnet, und jetzt können wir
Kollisionseinstellungen
für verschiedene Objekttypen festlegen für verschiedene Objekttypen Jetzt werde ich dies so einstellen, dass es für die meisten davon
blockiert Ich werde dies jedoch so einstellen
, dass einige Trace-Kanäle hier
ignoriert werden. Ich werde dies auch so
einstellen, dass
die Spielfigur ignoriert wird, die wir,
unser Spielercharakter, Und ich werde das auch so einstellen, dass andere
Feuerbälle ignoriert werden. Das wird wichtig sein,
weil wir in der Lage
sein werden ,
mehrere Feuerbälle
abzufeuern und wir wollen nicht
, dass sie voneinander
abprallen können Das wird also genau
dafür wichtig sein. Um die
Kollisionsvoreinstellung zu überprüfen, setzen Sie diese Einstellung auf Benutzerdefiniert. Sie möchten, dass Ihr Objekttyp auf Fireball
gesetzt Das haben wir gerade in
unseren Projekteinstellungen erstellt. Und dann stellen Sie für die
Kollisionsreaktionen
sicher, dass Sie sie wie folgt
eingerichtet haben. Als Nächstes füge ich hier
eine weitere Komponente hinzu. Das sieht irgendwie brandgefährlich aus, aber ich werde
auch
ein Partikelsystem hinzufügen . Klicken Sie auf Hinzufügen Und was ich suche,
ist,
Partikel einzugeben und eine kaskadierende Partikelsystemkomponente
hinzuzufügen Das ist ein älteres
Partikelsystem. Die neueren Versionen von
Unreal verwendeten Niagara. Aber ich weiß, dass
dieses bestimmte Partikel , das ich hier reinschieben werde, in unserem
gestarteten Inhalt
hier existiert Ich werde mich für
dieses Partikelsystem entscheiden. Du kannst jedes Partikel
deiner Wahl für mich wählen. Ich werde
mit dieser ausgewählten Komponente hierher kommen. Und wo
Particles Template steht, wähle
ich
Underscore Fire Das ist wieder einmal in
meinem Starter-Inhaltspaket enthalten. Sie können jeden
dieser anderen ausprobieren, aber ich werde diesen ausprobieren. Jetzt wird es
also so aussehen. Also, nur damit es
ein bisschen gefährlicher aussieht, wenn Sie so wollen, werde ich
die benutzerdefinierte Zeitdilatation einstellen Das ist im Grunde
die Abspielgeschwindigkeit von jetzt mal zehn, denn
wenn wir das erledigt haben, wollen
wir sichergehen, dass unsere
Flammen nicht zu sehr hinterherhinken Hinter diesem Teilchensystem
verbirgt sich diese Kugel. Und wenn wir unser
Spiel genau hier einstellen, unsere benutzerdefinierte Zeitdilatation auf zehn, wird
es
so aussehen, als würde es ständig brennen Okay, noch eine Komponente, die wir hier oben links hinzufügen müssen die wir hier oben links hinzufügen Wir suchen nach einer Komponente für die
Projektilbewegung Und das ist es, was tatsächlich in der Lage sein
wird,
diesen Feuerball in
unserer Umgebung zu bewegen diesen Feuerball in
unserer Umgebung zu bewegen , diese Komponente der
Projektilbewegung diese Option ausgewählt ist,
gibt es mehrere Eigenschaften die
ich
im Detailbereich ändern möchte Die Anfangs- und Höchstgeschwindigkeit. So schnell wird es anfangs und dann maximal
gehen Ich werde diese jeweils auf
2.500 setzen .
Für beide. Ich sollte auch genau hier
abprallen, weil ich möchte, dass es vom Boden
abprallt Also kreuzen Sie das Kästchen an. Dann gehe
ich auch runter, es gibt eine Sprungkraft und es
gibt eine Reibung Ich stelle
die Sprungkraft auf
0,5 und die Reibung auf 0,5 und die Reibung Wir können also sehen, dass
diese Eigenschaften hier geändert wurden Das ist es, was dieser
kleine
Rückpfeil mit ihnen spielen kann, wenn
wir sie
in unser Spiel integrieren Ordnung, und zu
guter Letzt haben wir hier oben unsere
Schaltfläche „Klassen-Standardeinstellungen“, die
einige Eigenschaften dieses
Schauspielerklassen-Blueprints festlegt einige Eigenschaften dieses
Schauspielerklassen-Blueprints Ich werde
weit nach unten zu ihnen scrollen, nicht gerade nach unten Hier ist es, Initial Lifespan. Wir können die Lebensdauer
dieses Schauspielers genau hier festlegen dieses Schauspielers genau Auch hier ein Standardwert von Null. Wie Sie dem Tooltip entnehmen können bedeutet dies, dass es ewig
leben Ich werde das auf 2,0 setzen,
was bedeutet, dass es nach 2 Sekunden automatisch zerstört
wird Damit werde ich
weitermachen und diesen Entwurf speichern. Das ist alles, was wir in diesem
Fall erreichen wollten. In den nächsten beiden Videos werden
wir es
so machen, dass wir diesen Feuerball
abschießen können .
Wir sehen uns dort
44. Schieße auf Feuerbälle (Basic): Nun, da wir einen
Fireball-Blueprint erstellt haben, wollen wir darauf hinarbeiten, dass
unsere Spieler ihn abschießen Dafür werden wir
in unserem
Blueprints-Ordner arbeiten unserem
Blueprints-Ordner Wähle deinen
BP-Charakter aus der dritten Person, wenn er ausgewählt ist. Tippe auf die Leertaste, um ihn zu öffnen. Und ich werde
sofort
zu unserem Viewpoort-Tab kommen , weil
wir hier eine Komponente
hinzufügen werden hier eine Komponente
hinzufügen , die Sie alle Jetzt
wähle ich hier unser Ich aus. Und der Grund, warum ich
das auswähle, ist, dass ich eine weitere
Komponente an unser Netz anhängen möchte . Solange dies
zuerst ausgewählt ist und wir eine Komponente hinzufügen. Und ich werde auf Hinzufügen klicken, ich werde eine
Pfeilkomponente hinzufügen. Diese Komponente ist jetzt also an unser Netz
angehängt. Derzeit liegt es ihnen zu Füßen, aber ich werde die
Position hier gleich ändern . Ich werde das in
meine Fire Ball Spawn Points umbenennen, weil
wir es dafür verwenden werden Hoppla, ich habe dort den
On-Spawn-Punkt vergessen. diese Option ausgewählt ist, werde
ich
einige Details im Detailbereich
unter
der Y-Position einstellen einige Details im Detailbereich unter
der Y-Position Ich werde diesen Wert auf 240 einstellen. Ich werde es unserem Charakter nur ein bisschen
vor Bei der Z-Position werde
ich so auf 135 aufsteigen. Und dann drehe ich diese
Drehung, die Y-Rotation, ich
habe einen Wert von minus 30. Und für die Z-Rotation werde
ich sie auf 90 setzen. Im Wesentlichen wird
unsere Pfeilkomponente
in diese Richtung nach unten zeigen Es ist an unserem zweiten Netz befestigt. Wenn wir unseren Charakter in unserem Level
umdrehen, dreht sich
auch
dieser Pfeil. Das zeigt nicht nur den
Spawnpunkt an, er wird auch genau hier
spawnen Wenn wir auf eine Taste tippen, wird ein Feuerball erscheinen. Es wird ihn auch in diese Richtung
spawnen. Also wisse einfach, wenn
du
die Flugbahn deines Feuerballs ändern willst , kannst
du auch mit
diesem Winkel herumspielen Okay, als Nächstes
tauchen wir wieder in unseren
Inhaltsbrowser ein
und verwenden das Eingabesystem, und verwenden das mit unserem Charakter aus der dritten Person
geliefert wurde mit unserem Charakter aus der dritten Person
geliefert Dies wurde in
den letzten Versionen von Unreal eingeführt. Und wir werden hier in
unseren Aktionsordner fallen. Und was wir hinzufügen müssen, ist
ein neues Input-Action-Asset. Jetzt können wir das tun, indem rechten Maustaste in
den Inhaltsbrowser klicken. Hier in diesem Verzeichnis werde
ich unter Eingabe fallen und wir werden Eingabeaktionen
hinzufügen. Und ich werde
diesen Underscore Shot,
Underscore Fireball nennen diesen Underscore Shot,
Underscore Fireball Und wenn ich dann die
Leertaste drücke, um das zu öffnen, können
Sie sehen, dass unsere Eingabe vom booleschen Typ
sein
wird , als ob das War es nicht? Das ist
alles schön und gut. Lass uns weitermachen und das speichern. Und dann werde ich
wieder in den Inhaltsbrowser eintauchen. In unserem Eingabeordner hier haben
wir diesen IMC,
Underscore-Standard, Underscore-Standard, das sind die
Eingabezuordnungen, die Und ich werde das auswählen und auch die Leertaste drücken Mc default, das ist die Abkürzung
für Input Mapping Context. Ich werde hier die
Leertaste drücken, um das zu öffnen. Und jetzt muss ich
unsere Eingabeaktion einbauen ,
Fireball hier drinnen zu schießen Also werde ich
das plus Mapping anklicken. Ich setze
unseren neu erstellten
Unterstrich Fireball ein
oder schieße lieber Fireball oder schieße lieber Fireball Feuerball abgeschossen. Jetzt muss ich auch
entscheiden, welche Taste oder Buttons ich dieser Aktion
zuordnen möchte Ein paar Dinge, die wir hier tun
können, sind, wenn Sie diese Tastatur so
auswählen, können
Sie jetzt jede Taste auf Ihrer
Tastatur der Tastatur zuordnen. Wenn ich also auf die F-Taste tippen würde, können
Sie sehen, dass sie jetzt
genau dort zugeordnet wird. Die F-Taste wird also
dafür sorgen, dass diese Eingabe erfolgt. Ich werde die
Taste auch noch einmal drücken, und für diejenigen unter Ihnen, die
einen Controller
haben, können wir ihn
auch auf einen Controller einstellen , wenn Sie einfach diese Tastatur
auswählen. Und ich habe einen Controller
angeschlossen und werde die X-Taste auf
meinem Xbox-Controller
drücken, das ist die linke Taste Sie können sehen, wie er auch dort automatisch zugeordnet wird, wenn Sie die
Taste oder in meinem Fall meinen
Xbox-Controller der X-Taste drücken, die ich
aufrufen werde, damit dieser Eingang ausgelöst Lass uns weitermachen und das sofort
speichern. Nun, falls Sie sich nicht
von früher im Kurs erinnern, wo zum Teufel wurde das alles
benutzt? Nun, innerhalb unseres
BP-Third-Person-Charakters, innerhalb unseres Event-Graphen Hier, ich muss es finden. Hier
oben ist unser Eingabe-Mapping-Kontext mit unserem BP-Third-Person-Charakter
verknüpft. Das geht über diese Funktion
genau hier, diese IMC-Standardeinstellung. Hier wird
unserem Charakter aus der dritten Person sozusagen gesagt, er soll diese Sammlung von
Aktionen
verwenden In Ordnung, ich
werde das einfach zusammenbrechen lassen. Stellen Sie sicher, dass
Sie das speichern können genauso wie Ihre IA den Feuerball
abfeuern Okay, lassen Sie uns den ersten Durchgang unseres
Feuerballschießens durchführen Ich suche mir hier einfach einen
leeren Platz und ich habe meine Got
Flower Power genau hier. Ich werde sogar mit der linken Maustaste klicken und das alles mit der Maus herumziehen. Tippen Sie auf die C-Taste und geben Sie got ein. Flower Power. Nur damit
ich den Teil des Skripts leicht identifizieren
kann,
mach es schwarz. Und direkt darunter
schieße ich den Feuerball ab Also werde ich einfach die Steuerung
gedrückt halten und ein bisschen vergrößern Klicken Sie mit der rechten
Maustaste in eine leere Stelle. Ich gebe einfach Schießen ein, da ist mein
Eingabe-Action-Event für Abfeuern des Feuerballs.
Ich werde das reinbringen Ich möchte, dass,
wenn wir mit der Aktion beginnen, eine Filiale
herausbringen und ich möchte herausfinden ob sie in
meinem Blueprint-Panel unter
dem Bereich Spielergesundheit erweitert meinem Blueprint-Panel unter
dem Bereich Spielergesundheit Ich möchte herausfinden, ob wir die Feuerblume
haben. Ich ziehe
das per Drag-and-Drop. Zusätzlich zu unserer Bedingung wollen
wir nur spawnen
, also Feuerbälle abschießen
können ,
wenn wir die Feuerblume haben Wenn ich jetzt mit der rechten Maustaste auf
meine Feuerblume
hier klicke , diesen Goldbarren, kann
ich
in dieser Grafik Hinweise darauf finden und mir das ansehen Wenn Sie
auf eine dieser Optionen doppelklicken, können
Sie sehen, wo wir
den Feuerfluss, die Flower-Power bekommen , wenn dieses benutzerdefinierte Ereignis aufgerufen
wird, wir das auf „true“ umdrehen So können Sie
herausfinden, wo verschiedene Variablen verwendet
werden Sie können einfach auf
sie
doppelklicken , nachdem Sie mit der
rechten Maustaste darauf geklickt haben und die Referenz finden Okay, also
werden wir fragen, hat unser Spieler die Feuerblume Wenn das stimmt, werden
wir uns in
Spawn Actor aus dem Unterricht herausholen Spawn Actor aus dem Unterricht Nun, wir haben gerade
einen Fireball-Blueprint erstellt, also werde ich
hier klicken und Fireball eingeben Mein BP Fireball wäre
ein bisschen komisch in einer Feuerleiste
spawnen und jetzt muss ich uns sagen, wo er spawnen soll
? Nun, wir haben gerade einen
Fireball-Spawnpunkt erstellt. Lassen Sie uns weitermachen und diese Komponente
hineinziehen. Ziehen Sie also von hier weg und
geben Sie get transform ein. Wir wollen die
Welt verändern, die Welt verändern, genau hier. Welt verändern, wo auch immer sie sich auf der Welt befindet. Zu der Zeit drücken wir die F-Taste und lassen uns dann auch einen
Ton davon abspielen. Also werde ich mich einfach
von hier wegziehen und den Ton eingeben. Sie könnten einen Sound an
einem oder zwei Orten abspielen D Sound. Ich denke, ich werde
am Ort
unseres Charakters einen Sound abspielen . Ich kann mit der rechten Maustaste auf ein
leeres Feld klicken und
den Standort des Schauspielers abrufen eingeben . Das wird der Standort
unseres
Charakters aus der dritten Person sein . Für den Sound. Ich habe einen Fireball. In Ordnung, also hier wird
es unser Basisskript geben. Lass uns weitermachen und
kompilieren und speichern. Und dann springen Sie hier zurück zu
unserem Level-Editor. Bevor ich auf Play klicke, werde
ich auf Anhieb
ein Problem damit aufdecken , das wir beheben werden. Aber ich gehe in meinen
Blueprints-Ordner und lege ein paar Münzen
in den Pfad meines Charakters, um sicherzustellen, dass ich meine beiden
D-Snap-Einstellungen
auf der Hauptebene habe D-Snap-Einstellungen
auf der Hauptebene Ich werde hier eine Münze platzieren. Ich werde auch eine oben platzieren, weil ich versuche, das Problem
aufzudecken. In Ordnung, lass uns
reinspringen und spielen und schauen, ob ich, sobald ich
die Feuerblume
habe, einen Feuerball abschießen kann Ordnung, im Spiel hier, tippe auf die F-Taste und
schau, ob wir einen
Feuerball direkt vom Gecko abfeuern können Ich kann nicht. Lass uns
weitermachen und die verwandelte Feuerblume einsammeln. Ich tippe jetzt auf die F-Taste. Offensichtlich ist der
Feuerball ein
bisschen groß und wir konnten genau hier
ein Problem sehen, das ich erwartet
hatte Lass mich einfach runterkommen.
Hoppla. Wir sind dort gestorben Lass uns weitermachen und wieder
reinspringen und spielen. Du hast das erste Problem gesehen. Sie kollidiert mit der, mit unserer unsichtbaren Münze Damit müssen wir uns gleich befassen. Aber wenn Sie versuchen, hier runterzufallen werden
Sie auch feststellen
, dass es auch mit dem Kollisionsvolumen
rund um Ihre Münze
kollidiert auch mit dem Kollisionsvolumen
rund um Ihre Münze Also
hier ein paar Probleme zum Aufräumen. Problem Nummer eins, das
wir bereinigen werden, ist, dass unsere Feuerbälle mit einigen Dingen kollidieren
, mit denen wir nicht wollen, dass sie
kollidieren, wie diese Triggerbox genau hier und diese
Triggerlautstärke Und das können wir tun,
indem wir in
unsere Einstellungen, Projekteinstellungen gehen unsere Einstellungen, Projekteinstellungen Und wir waren gerade hier
drin unter der
Kollisionsabteilung. Wir werden
gleich hier unten auf unsere verschiedenen Voreinstellungen eingehen. Also klicke ich einfach hier auf dieses
Preset. Und es gibt ein paar
davon, die ich bearbeiten möchte. Die erste davon ist, dass sie
sich alle dynamisch überschneiden. Wenn Sie „
Alle dynamischen Überlappungen“ auswählen und dann auf „Bearbeiten“ klicken, können
Sie die
aktuellen Reaktionen auf
diese verschiedenen
Kollisionskollisionen sehen diese verschiedenen
Kollisionskollisionen Im Moment ist unser Fireball, also
alles, was als Feuerball bezeichnet wird,
wie unser BP-Feuerball, so eingestellt,
dass er blockiert . Dies ist so eingestellt, dass
eine Fireball-Antwort blockiert wird. Ich werde das auf Ignorieren setzen. Noch einmal, in
unserem BP-Feuerball können
wir sehen, dass unsere Kugel auf einen Feuerballtyp
eingestellt ist Zurück in
unsere Projektumgebung wollten
wir die
gesamte Dynamik überlagern, wollten
wir austauschen Außerdem werden wir
alles überschneiden und das werden
wir bearbeiten. Dies ist auch so eingestellt, dass es unseren Fireball
blockiert. Stellen wir das so ein, dass es
ignoriert und akzeptiert wird. Wir werden auch unser Preset
auswählen. Wir werden das
machen. Und wir werden dies auf
Ignorieren setzen und auf Akzeptieren klicken. Wir müssen das tun,
weil unsere
BP-Punkte-Widget-Komponente das UI-Kollisions-Preset verwendet. Möglicherweise
müssen Sie dies im
weiteren Verlauf des Kurses für andere Objekttypen tun. Seien Sie sich also bewusst, dass Ihr Fireball,
wenn er mit Dingen
kollidiert nicht mit anderen kollidieren
sollte Um in Ihren Projekteinstellungen hierher
zurückzukehren, gehen Sie in den Kollisionsbereich und ändern Sie einige Ihrer
Kollisions-Voreinstellungen hier,
wie ich es gerade damit gemacht Gehen wir zurück zu unserem
Level und klicken auf diese Taste. Da gleitet es nicht hin. Als Nächstes versuchen wir,
die Größe unseres Feuerballs anzupassen. Gehen wir also zurück zu
unserem Feuerball-Blueprint,
wobei unsere Kugel wobei unsere Kugel Gehen wir hier nach oben,
wo wir unsere Waage haben. Ich werde das
einheitlich skalieren, also stellen Sie sicher, dass wir
unser Schloss hier haben Sie können das ein- und ausschalten. Dadurch wird es so
, dass die Änderung
eines dieser Parameter den Rest
ändert Ich werde das auf
2.3 setzen. Lass uns das versuchen. Es wird also ein
bisschen kleiner sein. Wenn wir dann wieder
in unser Level zurückkehren, springen wir rein und spielen. Mal sehen, was wir hier haben. Okay, lass uns sehen. Ich werde die Taste drücken. Es kollidiert nicht mehr mit
dem Block. Das ist also ziemlich gut und es
scheint auch nicht mit unseren Münzen zu kollidieren Sie können
also natürlich Ihre
Fireball-Größe nach Ihren Ich werde das vorerst so lassen,
wie es ist. Aber Leute, das
wird alles für diese Basisversion von
Shooting Out Unseren Feuerball reichen In unserem nächsten Video werden
wir
einige Regeln hinzufügen, um
es noch stärker zu betonen . Wir
sehen uns dort
45. Feuerbälle schießen (Fortgeschritten): In Ordnung, heiße alle willkommen. In diesem Video
werden wir
unsere Feuerbälle auf die nächste Stufe heben, indem wir einige Regeln implementieren Und damit meine ich, dass
wir
die Anzahl der lebenden Feuerbälle, die
wir gleichzeitig haben, einschränken die Anzahl der lebenden Feuerbälle, die
wir gleichzeitig haben Wir werden auch
die Anzahl der Sprünge, die
der Feuerball machen kann, einschränken die Anzahl der Sprünge, die
der Feuerball machen Wir werden einige visuelle
Effekte erzeugen, wenn unser Feuerball zweimal
hier und unwirklich
abprallt Wir werden sowohl in
unserem BP-Feuerball als auch in unserem Charakter aus der dritten Person
etwas arbeiten unserem BP-Feuerball als auch in unserem Charakter aus der dritten Person Also solltest du vielleicht beide öffnen
. Wir werden mit unserem
BP-Third-Person-Charakter beginnen BP-Third-Person-Charakter und sofort eine
brandneue Variable erstellen . Dadurch wird die Anzahl der
Live-Feuerbälle gleichzeitig Das richtige Wort sagt hier also
Variablen. Klicken Sie auf diese Plus-Schaltfläche und
wir werden einen erstellen, der als Live-Fireballs bezeichnet
wird Und ich werde das in eine Ganzzahl ändern
. Dies wird verfolgen,
wie viele lebende Feuerbälle
wir gleichzeitig haben. Ich kompiliere hier,
wir beginnen mit dem Standardwert Null Komm jetzt und finde dein aktuelles
Fireball-Schießskript. Weil wir
das modifizieren werden, und insbesondere werden
wir diese drei Knoten nehmen sie hier
zur Seite
ziehen. Wir werden genau hier
eine Lücke schaffen. Also gib dir so
etwas Freiraum. Und wir werden es als solches
modifizieren. Nachdem wir hier einen Feuerball abgeschossen haben, ziehen wir,
wenn
wir die Feuerblume haben, den echten Ast
ab Und jetzt werden wir alle Schauspieler der Klasse haben. Und wir werden alle
Schauspieler unserer Fireball-Klasse bekommen. Wir geben einfach Fireball ein. Und dann klicken wir mit der
rechten Maustaste auf diese Stecknadel von unseren
Schauspielern Und wir werden
das zu einer Variablen heraufstufen. Wir werden das
unser Fireballs-Array nennen. Und wir werden das
so einhängen
, dass es jedes Mal, wenn wir einen Feuerball
abschießen, im Grunde genommen herausfinden wird
, hey,
wie viele Feuerbälle
es auf der
Welt gibt Und das werden wir in unserer Liste
speichern. Der Grund, warum
wir das tun werden, ist dass wir uns aus dieser Stecknadel
herausziehen werden. Und wir werden
die Länge unseres Arrays herausfinden, die Länge unserer Liste,
wie viele Feuerbälle auf dieser Liste
existieren Und der Grund, warum wir
das tun werden , ist, dass wir unsere Anzahl
an lebenden Feuerbällen festlegen also hier unten im Bereich „
Mein Blueprint“ Suchen Sie also hier unten im Bereich „
Mein Blueprint“ nach Ihrem
Live-Fireball-Array und wir können es einfach per Drag-and-Drop auf
diesen Outpin Wenn wir zum Beispiel schnell
zwei Feuerbälle abschießen würden, schnell
zwei Feuerbälle abschießen indem wir zweimal die
F-Taste drücken,
Bang, peng, dann kämen wir hierher Haben wir den
Fireball? Ja. Oder Feuerblume? Ja. Okay. Es gibt zwei
Feuerbälle auf der Welt Wir werden sie zu
unserer Liste hinzufügen. Die beiden sind da draußen. Das
wird die Länge sein. Diese Variable wird
die Zahl Zwei enthalten. Das wird wertvoll sein, weil wir uns dann hier
rausziehen und einen Knoten hineinbringen werden. Wir werden herausfinden, dass es weniger als zwei lebende
Feuerbälle gibt. Nur wenn wir weniger
als zwei lebende Feuerbälle haben werden wir
das Spawnen eines weiteren zulassen. Ich werde das in einen Zweig einbinden so wie unser Skript so aussehen wird Und ich werde hier nur
diesen mittleren Teil hervorheben . Tippen Sie auf die Seetaste und
dies wird
mein Skript zur Beschränkung der Anzahl von
Live-Fireballs-Skripten Das wird optional sein, aber ich hätte das gerne
hier drin und wenn du Mario-Spiele spielst, machen
sie das tatsächlich Ich färbe das vielleicht etwas dunkelblau, so
etwas. Nur um das zu vergrößern,
was wir hier haben, das wird unser Drehbuch sein. Wenn Sie
ein Video
hier jederzeit pausieren möchten , um es sich anzusehen, stellen Sie sicher,
dass Sie Nummer zwei haben. Und das hier ist weniger
als ein Knoten. Okay, lassen Sie uns das
schnell kompilieren
und dann können wir es sofort
testen. Also springe ich einfach rein und spiele. Also, jetzt gehe ich hier auf
meiner F-Taste zu Sam, schau mal, wie viele. Also, du kannst sehen, dass ich immer nur
zwei lebende Feuerbälle habe, und diese müssen erlöschen bevor ich neue
spawnen kann Als Nächstes werden wir
die Anzahl der Sprünge, die
ein Feuerball machen kann, einschränken die Anzahl der Sprünge, die
ein Feuerball machen kann Und dafür werden wir in unseren
BP-Feuerball gehen. Hier werden
wir
eine Variable hinzufügen, klicken Sie genau dort Das wird unser genannt werden. Fireball Bounce Counter, auch
das wird eine
Ganzzahl sein Wenn ich das sofort kompiliere, möchte
ich es auf
einem Standardwert von Null belassen Lassen Sie uns als Nächstes auf
unsere Komponentenliste eingehen. Also klicken wir mit der rechten Maustaste
auf unsere Projektilbewegung. Wir werden ein Ereignis hinzufügen und wir werden ein Ereignis beim
Projektilabprall hinzufügen Wenn wir das tun, springen
wir zu unserem Ereignisdiagramm über Jedes Mal, wenn unser
Projektil abprallt, wird
es von hier aus abgefeuert Was wir hier
tun werden, ist unseren
Fireball-Abprallzähler einzubauen unseren
Fireball-Abprallzähler Ich werde die
Strg-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen. Und wenn ich dann die Maus herausziehe kann
ich einen
Inkrementknoten einfügen Und das
wird unserer Variablen
hier
eine hinzufügen unserer Variablen
hier
eine hinzufügen und sie dann wieder hier Wir müssen uns keine Gedanken
darüber machen, unseren Fireball-Bounce-Zähler
am anderen Ende Dieser spezielle Inkrementknoten
wird einfach herausfinden,
welchen Wert das hat Er wird es hinzufügen
und dann wird
es wieder hier rein gesetzt Nun ziehe ich aus diesem Ausgangsstift heraus und ich
werde einen Wert
größer als oder gleich einziehen, wenn er größer oder
gleich der Zahl Zwei ist. Ich werde das
in einen Zweigknoten stecken B
gedrückt halte, und wenn ich mit der linken
Maustaste klicke, wird
ein Zweig angezeigt, bei dem der
Fireball-Abprallzähler größer oder gleich zwei
ist Ich werde den
Emitter am Standort spawnen. Spawn-Emitter, den
Emitter, den ich verwenden würde, ich verwende die Explosion
gerne für Er ist auch im
Startinhalt enthalten,
weshalb ich den P-Unterstrich Explosion A verwende. Auch hier können Sie ein Spawn-System
am Standort für ein Niagara-Partikel am Standort Ich muss dem einen Ort geben
. Ich werde
also den Standort unserer Sphäre hier herausfinden. Wir werden das so hineinziehen also wir werden es von hier
wegziehen und den Standort der
Welt ermitteln , wo auch immer sich das auf der Welt
befindet. Dort werden wir
diese Explosion auslösen. Natürlich ist es auch nett,
ein bisschen Sound zu haben auch nett,
ein bisschen Sound zu Was ich tun werde, ist, wenn wir den Ort des
Spawn-Emitters gefunden haben, werde
ich mich von hier
wegziehen und den Spawn-Sound als
Anhang eingeben Spawn-Sound als
Anhang Ich kann einfach
unseren Rückgabewert nehmen und so an die
Komponente anhängen Und das wird
hineinspawnen. Ich muss hier ein Explosionsgeräusch Ich werde einfach
den Explosionshinweis verwenden. Dann werde
ich ganz am Ende einfach wegziehen und sagen, welchen Schauspieler wir
zerstören,
also diesen Feuerball Ordnung, also
werde ich versuchen, das alles zusammenzustellen , damit
du es dir ansehen kannst Achte darauf, dass
du die beiden hast. Das ist eine Explosion, die größer oder
gleich einer Explosion ist. Damit wir das leichter testen können, wähle
ich unsere
Projektilbewegung Und vorübergehend werde
ich hier unsere Geschwindigkeit verringern, denn im Moment werden
wir diesen Sprung nicht zweimal sehen Lass mich das einfach auf
etwa 500, 500 ändern. Ich werde das
irgendwann wieder hier ändern , wahrscheinlich
zwischen den Videos. Also werde ich das kompilieren, wir werden hier spielen. Wie oft springt es? 12, bumm. 12. Es
wird automatisch zerstört, wenn diese Effekte und
so weiter beim zweiten Sprung sichtbar Ordnung, bevor ich es
vergesse, werde ich meine Geschwindigkeit hier wieder auf 2.500.2500
einstellen . Aber auch hier können
Sie
nach Belieben damit herumspielen Okay, das nächste, was ich hier tun möchte, ist
zu überprüfen, ob unser Feuerball auf eine
größtenteils vertikale Oberfläche trifft,
und wenn ja, werden wir sie sofort explodieren lassen Anstatt darauf zu warten, dass unser Feuerball
zweimal abprallt Um das zu tun,
ziehe ich mein Projektil etwas weiter nach oben und
wir können unser
Aufprallergebnis etwas weiter nach oben und
wir können unser ermitteln. Und das können wir tun,
indem wir es
hier rausziehen und
Pause, Hit Result eingeben Also werde ich das erweitern, tun. Ich will also unsere Normalität finden. Wir werden das in die Länge ziehen, ich tippe in einen
Vektor, mache Bauchmuskeln. Dann
nehme ich das und ich
werde es rausholen. Wir werden diesen Vektor
durchbrechen. Wir werden das Z daraus
herausfinden. Und wir werden
das in einen Knoten ziehen, der kleiner als ist, und wir werden
herausfinden, ob das weniger als
0,9 ist . Und wir werden
hier gleich
einige Beispielszenarien durchgehen . Ich werde die B-Taste gedrückt halten und mit
der linken Maustaste klicken, um
einen Zweig wie diesen einzufügen. Und ich werde das
so hineinziehen. Okay. Was wir dann tun werden
, ist herauszufinden welche Zahl hier
ausgegeben wird, indem einfach eine
temporäre gedruckte Zeichenkettennotiz einfügen. Also werde ich mit der rechten
Maustaste in eine leere Stelle klicken. Geben Sie die Druckzeichenfolge ein. Das wird nur eine vorübergehende Notiz
sein. Ich werde vorübergehend das Wahre und
das Falsche
hineinstecken und
dann diesen Z-Wert nehmen. Und stecke es direkt hier ein. Nur damit Sie sehen können, wie diese Nummer auf dem Bildschirm ausgegeben
wird Jetzt platziere ich hier unten
eine Fläche und schieße dann
einen Feuerball hinein Ich werde
es
hier sogar oben platzieren, damit wir einige Werte
sehen können, die hier sogar oben platzieren, damit wir einige Werte
sehen können ausgespuckt werden
, wenn wir unseren Feuerball
abfeuern Also werde ich hier einfach einen Würfel
reinbringen. Ich werde es einfach ein
bisschen so machen. Ich werde ein
bisschen so rotieren. Ich werde es so ein
bisschen nach unten bewegen. Ich werde
von einer Oberfläche wie dieser abschießen. Okay? Reinspringen und spielen. In Ordnung, also los geht's. Du bekommst diesen Feuerball.
Sie werden nach dem Mario-Symbol
ganz oben auf dieser Zahl
suchen die wollen, die auf dem Bildschirm
ausgedruckt Also los geht's, 0,5 0,5 0,5 Okay, Sie bekommen
also eine Vorstellung von den Werten, die hier ausgespuckt werden Lass mich einfach meine
Angular-Snap-Einstellungen ausschalten. Dreh das noch ein bisschen, okay, lass es mich so anwinkeln. 0.7 0.7 0.7 Ich drehe es jetzt so an, dass es ein bisschen
vertikaler Los geht's. Es ist, die erste Zahl ist 0,178 und dann bekommt
sie Wert eins, weil sie von der flachen Oberfläche
abprallt Der absolute Wert wird
sicherstellen, dass wir dort keine negative
Zahl haben Und was wir hier im Wesentlichen tun
wollen, ich werde diese Knoten einfach zerstören
, ist Folgendes. Ich möchte
unseren Absprungzähler erhöhen. Ich werde das tatsächlich ein
bisschen zurückziehen ,
und ich werde das sogar ein bisschen reduzieren Wenn sich das als wahr herausstellt, möchte
ich diese Effekte
sofort einblenden Okay, wir wollen den Absprungzähler nicht einmal erhöhen Okay, lass mich das einfach
fallen lassen. Ich werde mir das so
gut wie möglich ausdenken. Also lass uns weitermachen
und das kompilieren. Und dann ist der Test draußen, ich springe
zurück zu meinem Level und spiele. Also, du wirst sehen, ich werde das hauptsächlich vertikal drehen. Es wird es
sofort zerstören, ohne auf einen zweiten Sprung zu
warten. Ich werde
das ein bisschen
mehr so neigen . Lass uns das versuchen. Das werden wir sofort vernichten
. Wenn ich einfach sagen sollte, sollte
ich nicht hauptsächlich vertikal sagen, ich sollte eher vertikal sagen. Jetzt
werden wir uns also überhaupt keine Sorgen mehr über eine leicht geneigte
Umgebung Dadurch
kann es abprallen, aber solange wir
eine solche leicht abgewinkelte
Oberfläche haben , wird
es sie sofort zerstören Es wird nicht auf einen zweiten
Sprung warten. Ordnung, noch eine
Sache, die wir mit unseren Feuerbällen reparieren Bevor ich's vergesse, ich habe vergessen , unseren
unsichtbaren Block hier anzusprechen Hier ist das aktuelle Problem. Wenn ich wieder reinspringe
und spiele und
unsere Feuerblume hole. Und du kannst sehen, dass
ich hier unten unsichtbare
Blöcke habe . Wenn ich auf die F-Taste tippe, kannst
du sehen, dass sie bereits mit
dem
unsichtbaren Block kollidiert , also müssen wir
dieses Problem lösen Also werden wir uns mit
unserem unsichtbaren Block, der Blaupause, befassen unserem unsichtbaren Block, der Blaupause, Sie können jeden
dieser unsichtbaren Blöcke auswählen. Ich kann den unsichtbaren
Block bearbeiten, indem ich direkt dorthin gehe. Das aktuelle Problem ist, dass ich , an der
wir
mit dem Spielen beginnen, nach oben zoomen werde. Genau hier, unser Würfel. Wenn ich derzeit unseren Würfel
auswähle und in die Kollisionseinstellungen
gehe, kannst
du sehen, dass wir den
Feuerball hinzugefügt haben und er so eingestellt
ist in die Kollisionseinstellungen
gehe, kannst
du sehen, dass wir den
Feuerball hinzugefügt haben und er so eingestellt
ist, dass er den Feuerball hier blockiert, wenn das Event beginnt Was wir tun können, ist, unseren Würfel
herunterzuziehen und Set Collision Response
einzugeben, Set Collision Response
einzugeben um diesen Knoten genau hier zu kanalisieren Wir werden das verkabeln. Wir werden
den Kanal auf
Fireball einstellen und dann werden wir
die neue Antwort einstellen Stellen Sie sicher, dass dieser Wert auf Ignorieren gesetzt
ist. Fahren Sie fort und kompilieren
und speichern Sie das. Wenn ich dann reinspringe
und spiele und meine
Feuerleiste hier
aus dem Weg räumen lasse , habe ich
da eigentlich nur einen Block in den Feuerbalken, einfach aussieht, als würde
er darin liegen,
so dass er mich nicht mehr treffen sollte. Okay. Ich werde
reinspringen und hier spielen. Lass das Feuer an der Blume klopfen. Und du kannst sehen, dass es nicht
mehr
mit diesem unsichtbaren Block kollidiert mit diesem unsichtbaren Lass mich das holen. Lass uns sehen, ob ich daraus
einen Feuerball abfeuern kann. Sie können jetzt sehen, dass das
Problem darin besteht, dass es direkt durch diesen Block
geht,
nachdem ich mit ihm interagiert habe Also muss ich sicherstellen, dass
ich die Kollision wieder
einschalte, sobald wir den unsichtbaren Block
aufgedeckt haben. Um das zu tun, gehe
ich zurück in meinen BP-Block, die unsichtbare Münze. Und wir werden sagen, dass
ich, nachdem
wir damit fertig sind, wieder runter gehen werde ,
wo wir
unsere Unsichtbarkeit einschalten Lass es uns genau hier in diesem
Bereich platzieren. Ich ziehe das einfach an, um unseren Würfel
rüber zu bringen. Ich werde es
eintippen, eigentlich klauen ich einfach den
Knoten von hier oben. Es hieß Set Collision
Response to Channel. Ich werde diesen Knoten einfach
kopieren. Wir werden
ihn gleich wieder hier
unten einbauen und ich werde
diesen Knoten einfügen. Wir werden das genau hier
reinschleichen. Stellen Sie sicher, dass Sie
Ihren Cube als Ziel einstecken. Und dieses Mal werden wir sagen, dass
wir, nachdem
wir mit ihm interagiert haben, den Feuerball nicht mehr ignorieren werden, sondern ihn stattdessen blockieren
werden Also mach weiter und kompiliere und
sag das, lass uns das versuchen. Noch einmal, wieder
reinspringen und spielen. Sie können sehen, dass es
genau da
hindurchgeht, auf den anderen Block trifft und nicht mit diesem Block interagiert. Wenn ich jetzt versuche, auf diesen Block zu
schießen, interagiert
er mit ihm und
kollidiert dort, wo er sollte Ordnung, wir haben jetzt
eine erweiterte Version der Fireball-Jungs , die alles für diesen
machen wird Wir sehen uns im nächsten.
46. Basisblockkomponenten und Funktionen: Im Laufe
der nächsten Videos. Hier werden wir einen Block
zusammenstellen. Und was ein Block für diejenigen tut es nicht
kennen, ist,
dass
er normale Blöcke für
eine begrenzte Zeit in Münzen verwandelt . Sobald der Timer abgelaufen ist, die Blöcke, die zu Münzen wurden, wieder zu Blöcken. Damit wir das wieder in der Engine erreichen
können, werden
wir
einige Änderungen
an unserem BP-Basisblock vornehmen . Wählen Sie das aus und
drücken Sie dann die Leertaste, um es zu öffnen. Hier werden wir ein paar Komponenten hinzufügen. Lassen Sie mich hier zu meiner
Viewport-Ansicht zurückkehren. Lassen Sie uns eine Komponente hinzufügen.
Das erste wird ein Kind sein. Wenn wir Kind eingeben, wird
es ein Kinderdarsteller sein der
dann
unserem Kinderdarsteller zugeordnet wird. Stellen Sie also sicher, dass Sie dies ausgewählt
haben. Wir werden eine
Sphärenkollision hinzufügen. Und das finden wir
hier unten im Abschnitt
Kollision. Sphärenkollision, ich
nenne das meinen Coin Collider. unser Coin Collider ausgewählt ist, werde
ich
den Kugelradius ändern Ich werde ihn nur
ein bisschen größer machen auf 35. Es ist gerade auf der Innenseite
unseres Blocks vergraben, was wir wollen,
wir wollen nicht, dass es an der
Außenseite unseres Blocks
freigelegt wird . Und unser Kinderdarsteller drüben
im Detailbereich, wir können einen Kurs für
Kinderdarsteller buchen. Wir lassen
das vorerst leer. Nun, innerhalb der
Baupläne, dass wir eine Münze freilegen wollen,
wenn der Block getroffen wird, setzen
wir das auf
BP, nehmen Münze auf,
aber wir werden das nicht hier
innerhalb dieses übergeordneten Bauplans tun innerhalb dieses übergeordneten Bauplans Als Nächstes werden wir hier in unserer BP-Blockbasis ein paar
Funktionen
erstellen hier in unserer BP-Blockbasis ein paar
Funktionen Und diese werden dazu
dienen, die verschiedenen Effekte ein- und
auszuschalten , wenn
wir mit unserem Block interagieren. Also, genau hier in meinem Blueprint-Bereich unter Funktionen werden
wir
auf diese Plus-Schaltfläche klicken Diesen ersten nennen
wir Block. Beim zweiten rufen wir an, indem wir
auf diese Plus-Schaltfläche klicken. Ich werde es noch einmal Block Off
nennen. Einfach genug. Nachdem
jedes dieser Elemente erstellt wurde, haben
wir hier oben einige Tabs
für
unsere verschiedenen Funktionen hinzugefügt . Ich fange
mit meinem Block an, also stelle sicher,
dass dieser ausgewählt ist. Die Funktionalität, die ich hier hinzufügen
möchte, besteht darin,
dass ich einen
Verweis auf unsere Würfel einfüge. Sie können das wie folgt per
Drag-and-Drop hineinziehen. Dann ziehe ich das
raus und gebe „Sichtbarkeit
festlegen“ ein, wenn
unser Block aktiviert ist, wir mit unserem Block interagiert haben, ich werde die Sichtbarkeit unseres
Würfels ausschalten Also
lassen wir das unmarkiert. Dann werde ich hier noch einmal
aus unserem Würfel ziehen. Und ich gebe
Set Collision Enabled ein. Also werden wir
unsere Kollision so einstellen dieser Würfel keine Kollision hat,
weil die Blöcke an sind, wir nicht wollen, dass er
mit dem Würfel kollidiert Dann
wollen wir in der Lage sein, uns auf unseren Kinderdarsteller
zu beziehen Dann ziehen wir
diese Art von eingestellter Sichtbarkeit in die Länge. Wir schalten die Sichtbarkeit
unseres untergeordneten Schauspielers für unseren Funktionsblock ein. Ich klicke mit der linken Maustaste ziehe, um das Steuerelement
C dieser Knoten zu kopieren . Ich gehe jetzt zu meiner Block-Off-Funktion
, nur um hier etwas Zeit zu sparen. Ich werde hier
reinklicken und dann Strg V
drücken, um das alles einzufügen. Das wird größtenteils
ähnlich sein, außer dass wir hier nur all diese
verschiedenen Einstellungen umkehren
müssen Wenn unser Block
also ausgeschaltet ist, wollen
wir sicherstellen, dass
unser Würfel wieder eingeschaltet ist. Wir wollen auch
sicherstellen, dass wir die Kollision wieder aktiviert
haben. Dazu werden wir also eine
kollisionsfähige
Abfrage in der Physik durchführen . Und dann der Kinderdarsteller, den wollen
wir unsichtbar machen, sobald der
Block ausgeschaltet ist. Sobald der Timer abgelaufen ist. Ordnung, als Nächstes fügen
wir hier mit unserem Coin Collider
ein bisschen mehr Skript Wir werden mit der rechten
Maustaste darauf klicken. Wir werden ein Ereignis hinzufügen und Begin Overlap ausführen. Und wenn wir das tun, kehren wir hier zu unserem
Ereignisdiagramm zurück. Ich zoome nach
hinten und suche nach
einer leeren Stelle, um das zu
platzieren. Ich werde das hier unten hinstellen. Lassen Sie uns das wieder vergrößern. Und dann ziehe ich die
PIN
des anderen Schauspielers ab und tippe
das Gleichheitssymbol ein und wir
werden herausfinden, ob das unserem Charakter „
Spieler holen“
entspricht unserem Charakter „
Spieler holen“
entspricht Wenn es gleich ist, füge ich in eine Zweignote ein, indem ich B
gedrückt halte und mit der linken Maustaste klicke Wenn das gleich ist, gehen
wir einfach
zum Schauspieler, also zu diesem Block selbst. Dadurch wird
sichergestellt, dass, wenn Sie die Blockmünze darin
einsammeln, es
im Grunde Blockzeit ist. Diese Münze wurde freigelegt, dann
wird der Block selbst zerstört und kommt somit
nicht zurück. Sobald die Blockzeit abgelaufen ist, klicke
ich mit der linken Maustaste
und ziehe mit der Maus um
den Block herum . Die darin enthaltene Blockmünze wird eingesammelt. Und ich werde
das auch schwarz machen. Und Leute, das ist alles, was wir in diesem Film erreichen wollten
. Also werde ich das einfach
kompilieren und speichern. Und damit
haben wir einen Teil
der Grundlagen für unseren P-Block gelegt der Grundlagen für unseren P-Block Damit ist es für diesen erledigt. Wir sehen uns im nächsten.
47. Kinderblock-Tag und Kinderschauspieler: Willkommen zurück alle.
In diesem Video ist es
unser Ziel, ein Schlagwort hinzuzufügen und innerhalb von Blöcken eine
Klasse für Kinderschauspieler
einzurichten. Wir wären gerne in Münzen
verwandelt worden. Wenn unser Block aktiv ist, kannst du wählen, in welche Blöcke
du ihn setzen möchtest. Ich werde nur
zwei unserer Blöcke setzen,
unseren Block zerbrechlich und
unseren falschen, um Münzen darin
zu haben, wenn wir irgendwann
mit unserem Block interagieren Beachten Sie jedoch, dass Sie dies auch
für andere Blöcke festlegen können. Wenn ich diese
beiden jetzt öffne, drücke
ich einfach die Leertaste, damit
sie sich beide öffnen Was wir sehen können
, ist, dass
sie in jedem von ihnen, dem Block Breakable und
dem Fake Breakable, dem Block Breakable und
dem Fake Breakable, nun den Child Actor und
die Coin Collider-Komponenten übernommen haben ,
die wir in unserer Blockbasis eingerichtet Also haben wir sie in
unserer Blockbasis eingerichtet , die
Kinder davon, einschließlich unserer Block Breakable und Fake Breakable einschließlich unserer Block Breakable und Fake Breakable
.
Sie haben sie beide Okay. Bei beiden werde ich reinkommen und
den Kinderdarsteller einstellen
, also ist das mein vorgetäuschter Breakable Ich setze zuerst
den Kinderdarsteller ein, ich setze
das auf meine Münze, hole BP, nehme Münze Und dann mache ich
dasselbe innerhalb meines Blocks. Zerbrechlicher Kinderdarsteller,
Kinderdarsteller, Klassenmünze. Und wir setzen
es auf die aufgesammelte Münze. Dann werde
ich für jeden von ihnen unter die Klassenstandardwerte fallen Klicken Sie ganz oben auf Klassenstandards
, und wir werden dafür ein Tag
hinzufügen Und du wirst ein bisschen
später sehen,
wo das Tag
ins Spiel kommt , aber es wird uns das ermöglichen Und dann gehe ich einfach
hier in den Detailbereich und suche nach dem Tag. Erlauben Sie uns, hier ein Tag
hinzuzufügen , indem Sie auf
diese Plus-Schaltfläche klicken. Und ich werde einen erstellen, der einfach Block
heißt. Genau so werde ich hier Strg
C drücken , nachdem
ich das markiert habe. Und dann drüben in meinem
BP-Fake Breakable wähle
ich Klassenstandards aus,
suche nach einem Tag und erstelle ein Ich werde das nur hervorheben
und V kontrollieren, um Sap zu bezahlen Und das ist
im Grunde ein Etikett, das
wir jedem dieser Blöcke zuordnen Auch hier werden wir
das später für
jeden Block verwenden , in dem wir eine Münze
haben möchten.
Stellen Sie sicher, dass Sie auch dieses Etikett
hinzufügen Also werde ich nur diese beiden Blöcke
machen, aber wenn du es zu anderen Blöcken
hinzufügen willst, kannst
du sicherstellen,
dass du
danach die ganze Sache mit dem
Kompilieren und Speichern erledigt hast. Und das wird
alles für diesen einen machen, Leute. Wir sehen uns im nächsten.
48. Kamera-Shake-Blueprint: Willkommen zurück alle.
In diesem Video ist es
unser Ziel,
einen
Kamera-Shake-Entwurf zu erstellen , der
abgespielt werden kann, wenn wir
mit unserem Block interagieren Also ein bisschen mehr
Vorbereitungsarbeit, bevor wir unseren
Block-Blueprint selbst erstellen Wir werden das in unseren
Blueprints-Ordner legen. Rechtsklick, es ist
ein leerer Bereich. Das wird ein
Blueprint-Kurs sein. Dafür wir uns nicht für eine der
gängigsten Elternklassen entscheiden gängigsten Elternklassen Wir werden hier
in deiner Suchleiste alle Klassen finden. Suchen Sie nach Camera Shake. Was Sie
hier suchen, ist Camera Shake, Base. Mach weiter und wähle das aus. Und dann
wählen wir hier Select. Lassen Sie uns das gleich benennen. Bp unterstreicht Kamerawackeln. Und dann lassen Sie uns weitermachen
und die Leertaste
drücken es
hier zu öffnen.
Wir werden
einige Verwacklungseinstellungen im
Detailbereich vornehmen, wo es
Kamera-Verwacklungsmuster ,
Root-Shake-Muster heißt ,
Root-Shake-Muster Wir werden darauf klicken
und den Wellenoszillator wählen. Jetzt werden wir das
erweitern und wir haben viele Möglichkeiten
, wie wir das ändern können Ich werde das abwechselnd
schütteln. Sie können es ändern, indem Sie auch
den tatsächlichen Standort schütteln,
aber ich werde mich auf die Rotation
, die Tonhöhe,
das Gieren aber ich werde mich auf die Rotation
, die Tonhöhe, und die Rolle für jedes und die Rolle für Ich stelle die
Frequenz einfach auf fünf ein. der Kategorie
Timing bestimmt
das also bestimmt
das die Dauer der Ein- und
Ausblendzeit. Ich stelle die
Dauer auf 0,3 ein. Die
Einblendzeit 0,1 und die
Überblendzeit werden 0,2
sein. Das ist unser Shake, der
etwas kurz macht 0,2
sein. Das ist unser Shake, der
etwas kurz macht und weht, den wir zum Spielen
aufrufen, wenn wir auf unseren Block
stampfen,
Leute, das ist buchstäblich alles wir in diesem Spiel tun wollen Macht weiter, kompiliert und sagt wenn wir
mit diesem fertig sind, sehen wir uns im nächsten
49. Force-Feedback-Asset: Willkommen. Ich dachte, es wäre nett, ein bisschen
Force-Feedback zu haben. Das ist Controller-Grollen
, wenn wir auf unserem Block anhalten. Also für diejenigen unter Ihnen, die
einen Controller an
Ihren Computer angeschlossen haben , bleiben Sie dran Dieses Video ist für dich. Wenn Sie nur mit Tastatur und Maus
spielen möchten, können Sie diese Option gerne überspringen Unser Ziel ist es, ein
benutzerdefiniertes Force-Feedback-Asset zu erstellen. Da es sich um eine
Art einmaliges Asset handelt, werde
ich hier keinen ganzen
separaten Ordner erstellen . Sie könnten das tun,
aber ich werde dieses Asset hier in unserem
Block-Ordner speichern. Und um anzufangen,
schreibe ich Klick auf eine leere Stelle. Wir werden
unter Input fallen und einen
Force-Feedback-Effekt erzeugen. Wenn wir darauf klicken,
müssen wir nur einen Namen angeben. Ich werde meins anrufen, um Feedback zu erhalten. Und dann drücke ich einfach die
Leertaste, um das zu öffnen. Hier werden
wir hier auf
unsere Kanaldetails klicken und unseren Index erweitern Und wir werden einen Kurveneditor
finden. Und wie Sie bereits
in diesem Kurs mit
unseren verschiedenen Zeitplänen gesehen haben, werden wir unseren Zeitplänen
einige Schlüsselbilder hinzufügen, um
Feedback zum Wald zu definieren. Ich klicke hier einfach mit der rechten Maustaste in leere Stelle
,
um das ausgewählt ist, füge
ich
einen Zeitwert von Null
und einen Wert von Null hinzu. Und dann klicke ich erneut mit der
rechten Maustaste. Wir werden einen weiteren Schlüssel hinzufügen. Dieses Mal füge ich
einen Zeitwert von 0,2 hinzu, sodass unser Shake nur 0,2 Sekunden dauert, und dieses Mal
wird unser Wert zehn sein. Wir können uns
beide hier anzeigen lassen ,
indem wir auf diese
Pfeile klicken.
Wenn Sie also möchten, dass Ihr Ruck länger
anhält, können
Sie natürlich
mit dem Zeitwert herumspielen Und wenn Sie einen größeren Ruck
haben möchten, können
Sie Ihren Wert
höher oder einen kleineren Wert einstellen ,
wenn Sie einen geringeren Ruck wünschen Und genau hier oben haben Sie Ihre Aktuatoren, die Sie in
Ihrem Controller beeinflussen
können Derzeit werde ich
das auf ihren Standardeinstellungen belassen, also links groß, klein, rechts groß und klein Wir werden das
einfach speichern. Und wenn das erledigt ist, haben wir jetzt eine Feedback-Ressource
, die wir in unserem kommenden
P-Block-Blueprint verwenden
können , Leute , die
es für diesen erledigen werden Wir sehen uns im nächsten.
50. P Blockiere Materialien und Sounds: Willkommen. In diesem
Video werden wir lediglich sicherstellen, dass
wir alle Audio-
, Textur- und Materialressourcen
eingerichtet haben Textur- und Materialressourcen , bevor wir
unseren Blockplan erstellen , wie Sie in unserem Pausenvideo hier sehen
können So wird ein Block
aussehen. Es hat diesen bläulich
aussehenden Schalter an der Oberseite und es hat diese
silberne Unterseite Nur um sicherzugehen, dass
wir all das haben bevor wir
unseren Block-Blueprint erstellen, ,
bevor wir
unseren Block-Blueprint erstellen,
schauen wir uns an, was wir in unserem
Inhaltsbrowser haben Zurück in unserem
Inhaltsbrowser bin
ich in unserem
Audioordner und habe diesen Sumpfsound, den
wir in unserem
Block verwenden werden in unserem
Block verwenden Stellen Sie sicher, dass Sie
das haben. Stelle dann in unserem Texturen-Ordner
sicher, dass du
Zugriff auf den Block, den Block, der zerbrechlich ist,
sowie auf eine dieser Münzen Nun, wir hätten uns
bereits mit
dem zerbrechlichen Block
und der Münze befassen sollen, aber wir haben diesen
Block noch nicht in ein Material verwandelt Das wird
unser nächster Schritt hier sein. Ich werde mit der rechten
Maustaste darauf klicken. Wir werden daraus
ein Material erstellen. Ich werde
diesen Standardnamen beibehalten. Ich werde hier einfach die Eingabetaste
drücken. Und dann werde ich
das in unseren
Materialordner verschieben. Also werde ich
es aus unserem
Texturen-Ordner hier
in unseren Materialordner ziehen und dort ablegen es aus unserem
Texturen-Ordner hier
in unseren Materialordner . Wir werden es hierher verschieben. Und dann gehe ich
zu unserem Materialordner, wähle ihn aus, dann drücke ich die
Leertaste, um ihn zu öffnen. Jetzt gibt es hier
ein paar Dinge, die ich in unserem
Detailbereich
anpassen möchte . Im Mischmodus
möchte ich den Wert
von undurchsichtig auf durchscheinend ändern von undurchsichtig auf durchscheinend Ich möchte
dieses Kästchen auch für zweiseitig aktivieren. Nachdem ich unseren
Mischmodus hier durchsichtig gemacht habe, habe ich
diese Opazitätseingabe auch einfach auf unserem
Master-Material-Node hier
verfügbar gemacht auf unserem
Master-Material-Node hier
verfügbar Was wir tun wollen, ist unseren Alpha-Wert
aus unserer Textur zu
nehmen und ihn in die
Opazität einzufügen Bevor ich das mache, werde
ich hier unsere Vorschau ändern. Es befindet sich derzeit auf unserer Sphäre. Ich werde es in
einen Würfel umwandeln, damit Sie
sehen können, wie das aussieht. Und das
sieht offensichtlich schrecklich aus, oder? Sobald wir diesen
Wert jedoch in die Opazität unser Alpha in die Opazität
einbauen, wird es viel
schöner aussehen , indem diese Streifen entfernt
werden Sobald wir das im Spiel sehen, werden
wir nur eine Seite davon
sehen Es ist wie in einem Flugzeug. Etwas Ähnliches. Also habe ich hier einfach
ein Flugzeug ausgewählt , um zu sehen, wie
es aussehen wird. Toll, das ist alles schön und
gut. Also fahren Sie fort und klicken Sie auf Speichern. Dann können wir hier raus. Und jetzt wollen wir ein brandneues Material
kreieren. Denn wenn wir bei diesem Block
anhalten, wollen
wir, dass eine Art gequetschte
Version davon zu sehen ist. Also
wollen wir im Grunde einen Look für diesen Block haben, der etwas von dem Blau
beibehält, aber wir werden keinen Buchstaben sehen
und er wird wie
ein Stück Blau aussehen , seit wir auf den Schalter
getreten Also mach weiter und
verschwinde von hier. Und zurück in unserer
Materialmappe. Ich klicke mit der rechten Maustaste
in eine leere Stelle. Wir werden
ein brandneues Material kreieren indem wir gleich hierher kommen, ich werde es tun. Dieser Unterstrich-Block. Unterstrich blau. Lass uns weitermachen und die
Leertaste drücken, um das zu öffnen. Jetzt füge ich hier
einfach eine Farbe hinzu. Indem Sie die
drei Tasten Nummer
drei gedrückt halten und mit der linken Maustaste klicken. Dadurch entsteht ein
konstanter Knoten mit drei Vektoren. setze ich
gleich hier unten in unsere Emissionsfarbe Ich möchte, dass es ein
bisschen leuchtet. Ich habe erneut die Drei-Tasten
gedrückt gehalten
und mit der linken Maustaste geklickt, um den Knoten zu öffnen Wozu das gut ist,
ist, dass Sie einfach einen Farbwert eingeben können , indem Sie
in den
Bereich „Details“ gehen. Sie könnten
auf diese Farbleiste klicken und eine solche auswählen. Ich habe jedoch einige harte Werte, die ich
gerne eingeben würde, also lasse ich das
R, den Rotwert, bei Null. Der Wert werde ich
0,5 sein und den Wert, den ich
auf eins setzen werde , um eine Farbe zu erzeugen, die
ungefähr so aussieht. Und das nennen
wir vorerst gut. Wir werden in der
Lage sein, in
kurzer Zeit davon Gebrauch zu machen . Also werde ich
weitermachen und auf Speichern klicken, und dann können wir hier
schließen. Nachdem das Speichern abgeschlossen ist, sind
wir jetzt in ziemlich
guter Form, um mit der
Erstellung unseres
Blockplans zu beginnen , Leute, der wird
alles für diesen erledigen, den nächsten
gewinnen
51. P-Block-Blueprint: Willkommen. In diesem
Video ist es unser Ziel einen Plan der
Schauspielerklasse für
unseren P-Block
zu erstellen , mit dem wir
interagieren können der andere Blöcke
für eine bestimmte Zeit in Münzen verwandelt In diesem Video werden wir
einfach unseren Block-Blueprint
zusammenstellen unseren Block-Blueprint
zusammenstellen In der nächsten Version werden wir
das Scripting
tatsächlich implementieren , um all
diese Funktionen zu ermöglichen Um
hier anzufangen, möchte ich
meinen BP-Kamera-Shake, den wir im Vorfeld dieses Videos
erzeugt haben, verschieben meinen BP-Kamera-Shake, den wir im Vorfeld dieses Videos
erzeugt haben , Ich werde das
in unseren Blocks-Ordner verschieben. Ich werde das einfach per Drag & in unseren Blocks-Ordner
ziehen.
Wir werden es hierher verschieben. Dann gehe ich in
meinen Blocks-Ordner. Tatsächlich werde ich hier
einen separaten
Blockordner erstellen . Also werde ich
auf meinen Blockordner klicken, neuen Ordner, ich
werde diesen Block einfach nennen. Dann gehe ich in
meinen Blockordner. wähle ich
meinen Kamera-Shake und mein
Force-Feedback, diese beiden. Und ich werde die per
Drag-and-Drop da reinziehen. Wir werden sie hierher
in unseren Blockordner verschieben. Ich werde klicken, wir werden
eine neue Blueprint-Klasse erstellen Das wird eine Actor-Klasse
sein, und ich nenne das
BP-Score-Block-Underscore Dann lass uns weitermachen und hier
die Leertaste drücken , um es zu öffnen Ich glaube, wir
haben hier sechs Komponenten, die
wir hinzufügen werden All diese werden
an unsere Standardszene angehängt. Wurzel. Dieses Symbol genau hier. Stellen Sie sicher, dass alle diese Elemente an die
Standard-Szenenroute
angehängt sind . Wenn wir den ersten hinzufügen, wird er automatisch
an diesen angehängt. Das wird also
ein Flugzeug genau hier sein. Ich werde das im
Detailbereich einen
Block Unterstrich nennen im
Detailbereich einen
Block Unterstrich Ich werde gleich einige
Einstellungen dafür vornehmen. Das Material, das ich
dafür einstellen werde, wird unser
Block-Underscore-Material
sein, dieses mit dem Symbol darauf Ich werde es auch drehen
und ein wenig verschieben, sodass meine Drehung hier 90 sein
wird Es wird
es so hochklappen. Ich werde den
Standort auf 50 setzen. Ich werde es ein bisschen nach
oben verschieben. Dann werde
ich unten im
Detailbereich unter der Kollision die
Kollisions-Voreinstellung
so einstellen , dass es keine Kollision ist.
Ich möchte nicht, dass es
zu Kollisionen kommt Als Nächstes wähle ich unsere
Standard-Szenenroute aus, sodass die nächste Komponente
, die ich hinzufüge, daran angehängt
wird .
Wir werden hinzufügen gehen. Das wird
Blockkollision sein, also scrolle ich weiter nach
unten oder Boxkollision, nicht Blockkollision,
Boxkollision. Ich werde
diesen Namen einfach als Box belassen. Und wenn dies
im Detailbereich ausgewählt ist, werde
ich hier die Größe meiner
Box festlegen. Ich werde das
auf 42 mal 42 mal 100 einstellen. Noch einmal, ich habe
all diese Werte im Voraus bestimmt . Die Kollisionsvoreinstellung
für dieses Scrollen nach unten wird die Voreinstellung
Alle Kollisionen blockieren sein Stellen Sie diese Option ein, um alles zu blockieren. Als Nächstes wählen wir
erneut unsere
Standard-Szenenroute aus. Wir werden eine Komponente hinzufügen. Das wird ein statisches Netz
sein. Ich nenne das einen
Block Underscore, Underscore Base, Underscore Smashed Das wird ein Zylinder
drüben im Detailbereich sein. Suchen Sie nach einem Zylinder. Und ich mache das mit unserem Motor, Basic Shapes. Es hat die
ungefähre Größe von 100 mal 100 mal 100.
Also werden wir das einstellen. Ich möchte die
Position dafür festlegen, die Z-Position auf
7,85. Ich werde
die Skala auf 0,92 im X setzen . Ich werde tatsächlich verschiedene Werte für
all diese
haben, um deine Skala hier freizuschalten Auf diese Weise können wir für jedes Feld eindeutige
Werte festlegen. Es wird 0,92 mal
0,92 sein, bei
0,15 wird es etwas Zerbrochenes
sein ,
das so aussieht Und ich werde
das Material hier so einstellen, dass es
eine verchromte Kugel ist,
hier etwas Glänzendes Diese Chromkugel sollte im
Rendering-Bereich einfach gut funktionieren. Dafür werden wir
diese sichtbare Checkbox ausschalten. Das bedeutet, dass wir
dieses Spiel erst sehen können, wenn wir es sichtbar
machen. Was im Wesentlichen passieren
wird, ist,
dass
wir, sobald wir diesen Blockschalter betätigen, ihn wieder erscheinen lassen Okay, als Nächstes
wählen wir unseren Standard-Szenenstamm aus. Wir werden hier noch einmal eine weitere Komponente
hinzufügen. Dieses wird
ein statisches Netz sein und dieses wird
Block,
Underscore, Underscore,
Top, Underscore, Smashed heißen Underscore, Underscore,
Top, Underscore, Smashed diese Komponente ausgewählt ist, werden wir das statische
Netz so einstellen, dass es sich ebenfalls um einen Zylinder handelt Derselbe Zylinder aus dem Grundformpfad des
Motors. Und wenn Sie keinen
Zugriff auf Ihren Motorordner haben, können
Sie auf dieses
Zahnradsymbol klicken und sich den
Motorinhalt anzeigen lassen , um sicherzustellen
, dass Sie sehen , dass wir
das hier zu unserem Zylinder machen werden. Ich habe hier eine Größe im Kopf. Die Skala
wird 0,85 mal 0,85 mal 0,1 sein , also etwas
kleineres Dann werde ich auch den Z-Wert
dafür auf 20
setzen , ein wenig nach oben Ich werde das Material
dafür hier auch so
einstellen ,
dass es das ist, was wir gerade
erstellt haben. Es wird ein Blockunterstrich sein ,
dieses blaue Material So werden wir unseren Schalter im Wesentlichen aussehen
lassen, nachdem wir ihn betreten haben Dies soll hier
den blauen Teil
dieses Schalters darstellen hier
den blauen Teil
dieses Schalters Ich werde auch in den Bereich Rendern kommen , wo
es hier sichtbar steht. Ich werde
das vorerst einfach
deaktivieren , zwei
weitere folgen hier. Wählen wir also unsere
Standard-Szenenroute aus. Die nächste Komponente
, die wir
hinzufügen werden, wird Box Collision
sein. Ich komme wieder einmal
unter Box Collision. Dieses hier nenne ich Box
Underscore Two,
Box Underscore Smashed
, wenn dieser Ich werde
die Position auf
13 im Z setzen . Ich werde die Größe
der Box
hier unten auf 42 mal 100 mal 13 setzen ,
so etwas Kleines so etwas Das soll
den Kollisionsbereich darstellen , nachdem
wir den Block zertrümmert haben Sie auch unter den
Kollisionsbereich und wir werden die
Kollisions-Voreinstellung für diesen Bereich auf Block einstellen Eine weitere Komponente, die Sie hier hinzufügen möchten, klicken Sie auf die Standard-Szenenroute. Wir werden noch einmal hinzufügen, diese wird
eine Audiokomponente ganz
oben sein, Audio. Ich werde diesen Namen hinterlassen. Nein, ich werde es tatsächlich in Musik
ändern. Lass es uns stattdessen
in Musik ändern. Musik Wenn diese Option im
Detailbereich ausgewählt ist, wir
unseren Sound hier ändern, sodass er unser werden
wir
unseren Sound hier ändern, sodass er unser Starter-Musik-Qué ist. Wir scrollen weiter nach unten. Wir sollten unsere Starter-Hintergrundwarteschlange
finden. Etwas Wichtiges, an das wir uns auch erinnern
müssen
, ist, die automatische Aktivierung zu deaktivieren Andernfalls werden wir das sofort
hören. Unten im
Detailbereich genau hier. Du hast diese Aktivierung. Sie ist automatisch aktiviert, wir möchten
also nicht, dass
sie sofort abgespielt wird. Also lass uns das Häkchen entfernen. Und wenn das alles erledigt ist, können wir
weitermachen und kompilieren und speichern Hier sind wir fertig mit dem
Zusammenstellen unserer Komponenten. Im nächsten Video werden wir das Skript hinzufügen,
um
diese Funktionalität für
unseren P-Block-Switch zu ermöglichen diese Funktionalität für .
Wir sehen uns dort.
52. P-Block-Skript (Teil #1): Willkommen. In diesem Video ist
es unser Ziel, Variablen hinzuzufügen und ein Skript zu
erstellen, das erforderlich ist, um markierte Blöcke in Münzen
umzuwandeln. Wenn wir mit einem P-Block interagieren. In diesem Fall gibt es viel Arbeit zu
erledigen. Lass uns gleich loslegen, indem wir in unseren BP-Block
eintauchen. Hier werden wir
drei Variablen im Bereich „Mein Blueprint“ hinzufügen Bereich „Mein Blueprint“ indem wir auf diese Plus-Schaltfläche klicken Diese erste wird
Tag genannt. Der Typ wird ein Name sein. Der zweite wird
Blöcke heißen. Dieser wird
vom Typ Schauspieler sein. Unter den Objekttypen finden Sie die
Akteur-Objektreferenz. Der dritte Typ, den
wir
erstellen werden, wird eine Float-Variable
sein. Und wir werden das
Blockzeitdauer nennen. Lassen Sie uns das in einen Float ändern. Und wenn diese erstellt sind, wir weitermachen und einige
der Werte hier kompilieren und ändern, ebenso wie einige
der anderen Einstellungen. Beginnend mit unserer
Blockzeitdauer werde
ich unseren
Standardwert auf 8,08 Sekunden setzen Ich werde dieses
Kästchen auch ankreuzen, damit die Instanz bearbeitet werden kann. Im Editor können wir dies also
überschreiben, wenn wir dies in der Blockvariablen
möchten in der Blockvariablen
möchten Ich werde einfach
den Variablentyp von
einem einzelnen in ein Array ändern . Im Wesentlichen werden
wir
eine Reihe von Blöcken speichern . Welche Anordnung von Blöcken? Wir werden
eine Reihe von Blöcken speichern, A Share, ein ähnliches
Tag für das Tag. Wir wählen das aus
und fügen im Detailbereich unter dem Standardwert das Block-Tag ein. Falls Ihnen das bekannt vorkommt, liegt
das daran, dass dieser
Tag-Block
genau derselbe ist, den wir für verschiedene Blöcke eingegeben haben. Hier in unserem Inhaltsbrowser. Ich habe dies sowohl zu unserem Block
Breakable als auch zu unserem
Block Fake Breakable hinzugefügt Breakable als auch zu unserem
Block Fake Breakable Wenn ich nur eines davon öffne, bei dem ich mein Level habe
, habe ich einen Block, der
zerbrechlich Wir können sehen, dass wir, wenn ich bei
der Suche nach
einem Tag in die Standardklasse gehe , ein Tag namens Blocks hinzugefügt
haben Wir
werden im Grunde nach allen Blöcken
suchen , die dieses Tag
haben, und wir werden diejenigen, die dieses Tag haben
, zu dieser
Reihe von Blöcken
hinzufügen . In Ordnung, weiter mit unserem Drehbuch. Was wir hier
tun werden, ist
unsere Box-Komponente auszuwählen und wir werden schreiben,
klicken Sie darauf. Wir werden
ein Ereignis hinzufügen, wenn wir auf diese Komponente stoßen. Das wird uns
zu unserem Ereignisdiagramm hier weiterleiten. Und wir wollen überprüfen,
ob der andere Schauspieler unserem
Spielercharakter entspricht. Ich werde auf
Spielercharakter abrufen klicken. Okay, also wenn das wahr ist, stecken
wir das in einen Zweig ein die B-Taste
gedrückt
und klicken mit der linken Maustaste. Wenn das stimmt, werden wir auch
herausfinden , ob wir
das auf eine bestimmte Art getroffen haben. Also werden wir tatsächlich überprüfen
, ob hier
zwei Dinge wahr sind.
Lass mich das einfach unterbrechen. die
Alt-Taste gedrückt halten und mit der linken Maustaste klicken, werden
wir
einige Informationen darüber extrahieren , wie
wir das Kästchen gedrückt haben. Und das kann ich tun, indem ich aus unserem Hit-Output-Pin
herausziehe. Ich habe dieses Break-Hit-Ergebnis. Ich werde das erweitern
und wir werden die Wirkung bewerten, wenn
der normale Zug
von hier weggezogen wird Wirkung bewerten, wenn
der normale Zug
von hier weggezogen , und
ein Gleichheitssymbol eingeben. Wir werden überprüfen,
ob unser Einfluss
dieses Felds in Z-Richtung einen negativen Wert von Eins
hat. Im Wesentlichen
überprüfen wir hier , ob wir, wenn
wir dieses Kästchen getroffen
haben, es in
Abwärtsrichtung beeinflusst haben? Setzen Sie diesen Wert hier, einen
Z-Wert auf einen negativen Wert.
Wir werden das überprüfen. Wir wollen herausfinden, ob
das auch stimmt. Dies ist ein Toleranzwert. Ich werde das nur
auf einen sehr kleinen Wert setzen. Ich werde es einfach auf 2,01 setzen und wir werden
überprüfen, ob beide wahr sind Ich ziehe hier raus und tippe ein
und
suche nach einem Und-Goldbarren und ich stecke das auf der anderen Seite Und dann werden
wir den Ausgang
davon in unseren Zweigknoten stecken davon in unseren Zweigknoten Also überprüfen wir im Grunde, hey, ist etwas auf unsere Box gestoßen? Mal sehen, war es unser
Spielercharakter? War das der andere
Schauspieler, der es geschafft hat? Und oh übrigens,
haben sie es in abwärts
gerichteter Richtung getroffen ?
Haben sie damit aufgehört? Wenn beides zutrifft, wollen
wir etwas tun. Das erste, was
wir tun werden,
ist den Charakter zu starten. Dies ist eine Funktion, die
für einen Charakter spezifisch ist. Also ziehe ich aus unserer Option Spielercharakter
abrufen heraus und tippe Launch ein und du wirst
diese Funktion finden , wenn du aus deinem
Get-Player-Charakter
herausziehst . Der Grund, warum wir
das tun werden, ist, dass wir den Charakter nur ein
bisschen
auftauchen lassen, wenn er darauf herumtrampelt Es wird sie nur ein bisschen
in Z-Richtung auftauchen lassen ein bisschen
in Z-Richtung werde das auf 400 setzen
und ich werde hier
einen Knoten für die Umleitung einfügen,
damit wir
ein aussehendes Diagramm nicht desorganisieren
müssen ein aussehendes Diagramm nicht desorganisieren
müssen Okay. Dann, gleich danach, werden wir
das in einen Sequenzknoten
stecken, S-Taste
gedrückt halten
und mit der linken Maustaste klicken. Der Grund, warum ich
eine Sequenznotiz einfüge, ist, wir wollen, dass hier eine Vielzahl von
Dingen passiert. Die Sequenznotiz wird uns
helfen, alles zu organisieren. Also werde ich ein paar
Mal
auf diesen Anzeigen-Pin klicken , um
weitere Ausgangspins hinzuzufügen. Okay, das Erste, was
ich mit
unserem Null-Pin machen möchte , ist, rechten Maustaste zu klicken und einen Sound abzuspielen. Spielen Sie Sound zwei D ab, und der Sound, den
ich abspielen möchte, indem ich auf dieses
Sound-Drop-down-Menü klicke, wird
unser Thwamp-Sound sein Danach ziehe ich den
Spawn-Emitter heraus und tippe ihn
an der Wenn Sie
ein Nagra-Partikel erstellen möchten, wäre
es das
Spawn-System Das Partikelsystem
, das ich hier verwenden möchte, heißt Pot Das ist aus dem
Infinity Blades Pack, das ich zu
Beginn des Kurses hinzugefügt habe. Jetzt muss ich dem
einen Standort geben, ganz einfach. Wir können
hier eine
unserer Komponenten auswählen , aus der das generiert werden
soll. Ich wähle hier meinen
blockbasierten Smash, ziehe ihn rein, wir
ziehen ihn raus und
sagen, den Standort der Welt ermitteln Die Position dieser
Komponente ist der Ort, an dem wir
in diesem Emitter spawnen Was ich auch tun möchte, ich möchte sofort
Musik spielen Ich ziehe
unsere Musikkomponente rein, dann
ziehe ich von hier ab, tippe einfach Play ein. Wir wollen das von Anfang an abspielen, also lasse ich
die Startzeit außer Acht. Das ist das Erste
, was ich tun möchte. Sobald wir auf unserem Block stehen bleiben, klicken Sie mit der linken Maustaste und
ziehen Sie, tippen Sie auf die Taste. Ich werde sagen,
das ist unser Block. Hoppla, blockiere das X-Skript. Es wird gut
genug sein, dieses Schwarz zu färben. Okay, das ist gut und organisiert. Die zweite Sache, die ich machen möchte
, ist, ein
paar Kamerawackel - und Force-Feedback-Effekte abzuspielen . Dafür
ziehe ich die Maus runter und tippe World Camera Shake
abspielen“ innerhalb
meiner World Camera Shake ein. Klicken wir darauf und schon
haben wir unseren BP-Kamera-Shake. Übrigens, bevor ich es vergesse, eines
habe ich vergessen, als ich unseren World
Camera Shake Blueprint
erstellt habe unseren World
Camera Shake Blueprint
erstellt Lassen Sie uns weitermachen und sofort
zu diesem Thema navigieren. Das bringt dich dahin
, wo das ist. Ich drücke die Leertaste, um unsere Kamera
wackeln zu lassen Ich werde den kompletten
Blueprint-Editor auf
der rechten Seite unter
unseren Kamera-Shake-Parametern öffnen .
Ich habe vergessen, einen
Rotationsamplituden-Multiplikator hinzuzufügen, dieser ist derzeit Null. Stellen Sie das auf eins ein und speichern
Sie es dann. Das brauchen wir, um die
Kamerawackelung zu sehen ,
die unter Root
, Shake, Rotation, Rotation,
Amplitude und Multiplikator Stellen Sie das auf eins ein. Wenn wir
zurück zu unserem Block gehen
, wird das
unser Kamerawackeln sein. Ich muss ein Epizentrum angeben. Ich klicke mit der rechten Maustaste auf Spielercharakter
abrufen. Wir werden diesen Typ bei der Suche nach dem Standort des Schauspielers
in die Länge
ziehen . Das wird unser Epizentrum
sein, der innere und äußere Radius Wir werden das auf 1.000,2
Tausend setzen. Sie können anhand der
QuickInfos
genau angeben oder verstehen ,
was diese genau kurz zu machen
, bei einigen Tests
habe ich festgestellt, dass dies angesichts
meiner Kameraeinstellungen
ein guter Bereich ist, um diesen
Weltkamera-Shake abzuspielen. Ich werde den Rest
dieser Parameter unverändert lassen. Das wird unsere Kamera wackeln lassen. Als Nächstes
klicke ich mit der rechten Maustaste und hole den Player-Controller. Wenn wir dann aus
unserem Player-Controller herausziehen, ist
das nur für euch
Controller-Leute. Ein physischer Controller. Ich werde spielen, um Feedback zu erhalten. Wir werden das Feedback von Kunden
erzwingen. Das ist der Knoten, nach dem
wir suchen. Auch hier gilt: Wenn du mit Maus
und Tastatur
spielst , kannst du das weglassen Aber für diejenigen unter Ihnen, die einen Controller angeschlossen
haben, ist
dies ein netter Slot in
unserer Force-Feedback-Anlage Und da haben wir es mit
diesem kleinen Drehbuch. Ich werde das einfach weitermachen
,
die Taste von meiner einen Stecknadel hier drüber drücken. Das wird
mein Script für Kamera-Shake und
Force-Feedback heißen . Ich
färbe das auch schwarz. In Ordnung, habe
das Drehbuch fertig gemacht. Pausiere das Video hier,
falls nötig. Als Nächstes bringen wir unsere
Sequenznotiz hierher
, um auf den
dann zwei Pins hier aufzubauen. Wir werden
unsere beiden Blockmaschen auswählen. Ich werde beide hervorheben, indem ich
die Steuerung verwende
und sie anklicke. Ich werde
sie hier nach unten ziehen, damit ich einen Verweis auf beide habe. Dann können wir aus einem von
beiden herausziehen und ich kann festgelegte Sichtbarkeit eingeben. Und wir können sie
beide hier anschließen. Stecken Sie das auch hier ein, wir werden sie
sichtbar machen. Wir werden
hier im Wesentlichen
ein bisschen
visuell tricksen. Wir haben sie
hier in unserem Viewport unsichtbar gemacht. Wenn Sie sich daran erinnern, dass
wir sie unten im
Rendering-Bereich unsichtbar gemacht haben, sobald
wir damit aufhören, werden wir sie sichtbar
machen Zurück zu unserem Event-Graph wollen wir auch unseren Block und unsere Box,
diese beiden Komponenten,
nehmen und sie
hineinziehen. Wenn Sie von einer der beiden Komponenten wegziehen, können
Sie int eingeben Wir wollen
diese beiden Komponenten zerstören. Wenn ich zu unserem
Standpunkt zurückkehre, zu unserem Block, werden
wir im Grunde diese Komponente
zerstören Wir werden hier
unseren Box Collider zerstören. Wir zerstören die beiden und lassen sie
dann auftauchen Es ist also ein kleiner visueller
Taschenspielertrick , wenn Sie Klicken
und ziehen Sie mit der linken Maustaste und tippen Sie auf die Taste. Das wird unsere Show sein. Lass mich das drüber ziehen, damit du siehst, was ich hier drucke. Zeige Netze und
zerstöre Komponenten. Das machen wir
mit diesem Teil des Skripts. Dann werden wir den Sound runterschalten und auf
unseren damals drei Pins aufbauen. Hier fangen wir an zu erkennen , welcher unserer Blöcke das Tag hat. Bringen wir
hier unsere Variable ein. Das werden wir uns holen. Wir werden das damit verbinden
,
alle Schauspieler mit Funktion zu bekommen . Das bedeutet
, dass
alle Schauspieler, die diesen Tag haben,
mit all unseren Out-Schauspielern zurückgegeben werden. Wir können sie in unserer Liste speichern. Wir werden sie
in diesem Block-Array speichern. Wir können es also direkt hierher ziehen und dort
ablegen. Alle Blöcke in unserem Level
, die dieses Block-Tag haben, werden alle gefunden. Es wird
sie in dieser Liste speichern. Und dann ziehen wir
uns von hier für jedes Element in unserer Liste jeweils eine Vierer-Schleife ein. Stellen Sie sicher
, dass Sie das auch anschließen. Für jeden Artikel in unserer Liste ziehen
wir ihn hier
raus und werfen ihn auf unsere BP-Blockbasis. Wir werden
die Funktion innerhalb
unseres BP-Blocks aufrufen , Basisblock aktiviert. Lassen Sie uns für einen Moment wieder
hier oben sein. Ich habe mir angesehen, dass einige unserer
Blöcke dieses Block-Tag haben. Wir
finden sie im Grunde alle und stellen sie in dieser Liste wieder her. Was wir dann tun, ist, unsere Liste
hier nacheinander
durchzugehen . Und für jeden von ihnen überprüfen
wir, ob er
zur Blockbasis gehört. Ist das das Elternteil
unserer Blöcke hier? Lass mich gehen und
unsere Blockbasis hier öffnen. Hier ist unsere Blockbasis. Hier drin, unsere Blockbasis. Wir haben diesen Block mit
einer Funktion erstellt, die die
Sichtbarkeit unseres Blockwürfels ausschalten
wird. Es wird
unseren Blockwürfel verstecken. Es wird die
Kollision unseres Blockwürfels ausschalten. Und es wird auch die Sichtbarkeit
des Kinderdarstellers erhöhen. Da wir nun
unseren Block Breakable haben , der von
unserer Blutdruck-Blockbasis erbt, wird
er
diese Auswirkungen auf
die Kinder
unserer BP-Block-Blockbasis übertragen die Kinder
unserer BP-Block-Blockbasis Auch hier erbt Block
Breakable von unserer BP-Blockbasis
innerhalb unseres Blocks P, indem wir sagen:
Hey, lasst uns herausfinden, ob
unsere Array-Elemente von
dieser Art BP-Blockbasis Hey, lasst uns herausfinden, ob sind Wenn sie es sind, ja,
führe diese Funktion genau
hier aus, um
den Block auszublenden und die Sichtbarkeit
des darin enthaltenen untergeordneten Schauspielers einzuschalten des darin enthaltenen untergeordneten Schauspielers Das ist es, was hier vor sich geht. Machen Sie einen Linksklick und ziehen Sie mit der Maus
herum. Tippen Sie auf die Taste. Dies wird mein dreipiniges Skript sein,
das
sagt, finde alles mit Block-Tag und schalte Funktion ein,
die im übergeordneten Block gefunden wurde. Der übergeordnete Block ist
unsere BP-Blockbasis. In Ordnung, wir werden auch diesen Block
umdrehen.
53. P-Block-Skript (Teil #2): Noch ein bisschen Skript hier. Ich muss noch einen Stift hinzufügen. Das wird
ein wichtiger Punkt sein wir hier in die Länge ziehen werden. Und wir werden den eingestellten Timer
für das Ereignis
eingeben . Wir ziehen von diesem Event-Pin rückwärts
ab. Und wir werden ein benutzerdefiniertes Ereignis einführen. Wir werden dies unsere
Blockzeit für ein benutzerdefiniertes Ereignis nennen . Und das wird ausgelöst,
wenn unsere Zeit hier abläuft Unsere Zeit wird
durch
diese Variable bestimmt ,
derzeit 8 Sekunden. Sobald wir bei diesem Block anhalten, wir unter anderem werden wir unter anderem
einen Timer einstellen , der 8 Sekunden lang sein wird
. Nachdem dieser Timer abgelaufen ist, werden
wir dieses benutzerdefinierte Ereignis starten. So funktioniert das.
Wir ziehen das hier raus
und tippen
in jeder Schleife vier ein. Die Schleife, die wir
durchlaufen werden, sind unsere Blöcke. Der Drache, lass das hier fallen. Für jeden unserer Blöcke werden
wir
noch einmal auf Blockbasis werfen. Wir werden dann herausfinden ,
ob der Block in
der Liste gültig ist, ob er gültig
ist, weil wir die
Münze in den Block hätten stecken und diesen
Block
somit komplett zerstören
können . Wenn der Block noch gültig ist, also wir die darin enthaltene Münze nicht
eingesammelt haben, ist
er immer noch da, er
existiert immer noch, er ist immer noch gültig. Wir ziehen uns dann
von hier weg und sagen Block ab. Wir werden jeden
Block aufrufen, der noch existiert, wir werden die
Funktion Block Off aufrufen ,
die innerhalb unserer Blockbasis die unser Blocknetz,
unseren Würfel, wieder sichtbar macht . Es wird die Kollision
dafür wieder einschalten und das
Kind darin unsichtbar machen. Zurück zum BP-Block. Zum Schluss wollen wir noch eine
Sache machen, und das ist, unsere Musik
einzubringen. Dann ziehen Sie sich davon zurück und sagen Sie,
hey, hören Sie auf, diese Musik zu spielen. so willst, wird unsere Musik während
der Dauer
dieses Block-Events abgespielt der Dauer
dieses Block-Events Wenn du so willst, wird unsere Musik während
der Dauer
dieses Block-Events abgespielt, aber wir werden sie nach 8 Sekunden ausschalten. Wir klicken mit der linken Maustaste
und ziehen und tippen auf die C-Taste. Lassen Sie mich hier ein wenig
heranzoomen. Zieh den ganzen Block drüber. Sie können das einrahmen, als ob Sie das Video
pausieren müssen. Das wird mein
Block-Timer-Skript sein. In Ordnung. Färbe das auch schwarz.
Hier ist viel los. Ich weiß, dass ich das
sehr schnell durchgemacht habe, um zu versuchen,
das in mein Zeitlimit von 20 Minuten
pro Video einzupassen . Das wird
unser letztes Setup hier sein. Offensichtlich müssen
wir das testen. Also haben wir unser Skript kompiliert. Es sieht gut aus. Wir haben es gerettet. Was ich jetzt tun werde,
ist unseren Block reinzubringen. Ich werde das per
Drag-and-Drop auf unser Level ziehen. Ich werde die
Taste drücken, um es aufzuhängen. Beachten Sie, dass ich in meinem Level
12.3 drei
Blöcke habe, in denen sich eine
Kindermünze befindet. Wenn ich damit aufhöre, werden
diese drei Blöcke, 12,3, zu Münzen Ich werde
nur diese beiden sammeln und den Timer
ablaufen lassen, sodass dieser wieder zu einem Block Bevor ich das alles mache,
möchte ich darauf hinweisen, dass unser Block hier,
drüben im Detailbereich, zu
unserem Level hinzugefügt wurde , Sie sehen können, dass meine
Blockzeit derzeit angezeigt wird. Ich könnte das also ändern
, wenn ich wollte. Ich könnte diese
Standardeinstellung überschreiben. Und wenn Sie ein zweites Mal
davon hätten, wenn ich die Alt-Taste gedrückt halte, mit der linken Maustaste klicke und ziehe, könnte ich einen anderen Wert dafür
festlegen Sie müssen
nicht beide 8 Sekunden lang sein. Sie können sie so ändern,
wie Sie es möchten. Lass uns weitermachen und
uns hier einen kurzen Überblick geben. Sobald ich auf diesen Block trete. Musik ändert sich. Ich sehe, wie aus diesen
Blöcken Münzen wurden. Ich sammle die
beiden sofort ab. Ich lasse den Timer bei dem letzten
ablaufen.
Sie können sehen, dass ich
den neuen Blockschalter betätigen kann , der
aussieht, als wäre er kaputt
gegangen Dieser wurde tatsächlich wieder in einen Block
umgewandelt. Stellen wir sicher, dass
diese tatsächlich
unsichtbar sind und das sind sie Ich kann immer noch einmal
mit diesem interagieren und dann die
Münze darin einsammeln usw. Okay, das ist alles schön und gut.
54. P-Block-Fehlerbehebungen (Teil #1): Bei der Spieleentwicklung laufen die Dinge nie zu 100% nach Plan. Und so ist auch
bei unserem Block
etwas schief gelaufen bei unserem Block
etwas schief Wir haben ein paar Fehler
, die wir beheben müssen
, bevor wir
weitermachen Und Sie können tatsächlich einen
der Fehler genau hier in unserem
perspektivischen Viewport sehen. Und das heißt, wir
haben unseren Kinderschauspieler, unsere Münze ist in diese Blöcke
eingebettet erstreckt sich über unseren Block hinaus.
Das ist also ein Problem. Und lassen Sie mich einfach
einspringen
und hier ein paar Probleme aufdecken nur um damit zu prahlen
, dass die erste
dieser Münzen für Kinderdarsteller
sich darüber hinaus erstreckt, ich habe diese Blöcke tatsächlich überwunden. Sie können oben links sehen, dass
ich gerade dabei bin, diese Münzen zu sammeln. Das ist nicht wie gewünscht. Ein weiteres Problem ist, dass,
wenn ich bei diesem P-Block
anhalte, das eigentlich auch nicht
die Musik ist, die
ich spielen lassen wollte. Also hier einige Probleme, die
geklärt werden müssen, bevor wir weitermachen. Okay, lass uns
in unseren BP-Block springen. Ein paar Dinge
, die ich hier aufräumen möchte. Dieser erste ist hauptsächlich kosmetisch, weil
er gut funktioniert. Unsere Box-Komponente hier,
die Sie sehen können, habe
ich in meinem Viewport, sie
erstreckt sich tatsächlich auch ein bisschen unter den Boden Das ist wirklich nicht nötig. Also alles, was ich hier
tun werde, ist
meine Box-Ausdehnung Z
im Detailbereich zu ändern . Ich werde das auf 50 ändern, aber dann werde ich es auch
um 50 in Z-Richtung erhöhen Das wird
uns im Grunde das gleiche Ergebnis bringen ohne dass es irgendwie
unbeholfen Das ist also Problem Nummer eins. Ich wollte einfach aufräumen. Die zweite, die ich bereinigen
wollte, ist unsere Musik unsere Audiokomponente namens Music Over im Detailbereich Ich habe sie versehentlich auf den
Starter-Hintergrund-Cue eingestellt. Ich habe den ersten
Teil richtig verstanden, aber was ich hier einbauen wollte
, war Starter-Musik. Ich habe dieses Starter-Musiksignal. Das hätte es sein sollen. Also stell sicher, dass du
weitermachst und das aufräumst. Nun, ein weiterer Fehler
, den ich
beim Testen gefunden habe , ist in
unserem Event-Graph, der von unseren damals vier
Pins unseres Sequenzknotens
herrührt. Ich habe diesen Block-Timer so eingestellt, dass, wenn die
Zeitdauer abgelaufen ist, Blockzeit vorbei ist. Wir überprüfen, welche Akteure noch
in unserem Block-Array existieren. Und wenn sie noch gültig sind, schalten
wir die
Blockeffekte genau hier aus. Und das ist ein Sprung
auf unsere BP-Blockbasis. Ich doppelklicke einfach
darauf, um dorthin
zu springen , und das ist in Ordnung. Aber wenn
in dieser Liste keine Blöcke mehr
gültig sind , hört
die Musik nicht wirklich auf. Also, was ich hier eigentlich
machen möchte, ist es so zu machen , dass unabhängig davon, ob es Blöcke in dieser Liste gibt, ob es Blöcke gibt, die gültig oder nicht gültig
sind, ich die Musik beenden möchte. Das würde passieren
, wenn ich hier in
unserem Block anhalten und
dann Münzen sammeln würde,
12.3, wenn ich sie alle
gesammelt hätte Was dann passieren würde, ist,
wenn die Blockzeit abgelaufen ist, würde
die Musik weiterlaufen indem man das Ganze abschalten würde.
Auch das ist nicht gültig Wir sorgen dafür, dass diese Musik aufhört, egal was passiert, also stellen Sie sicher, dass Sie das auch
umsetzen Damit werde ich
kompilieren und speichern. Als Nächstes werde ich mich mit dem Problem befassen unsere Kinderdarstellermünze
quasi über
unseren Block hinausgeht. Das Problem
dabei ist innerhalb unserer BP-Pick-Up-Münze, wir haben hier einen
Kugelradius von 75, was viel größer ist,
als er sein müsste. Und das ist der Grund, warum
wir
diese Münze einsammeln können , wenn sie
als Kinderdarsteller für
einige unserer Blöcke hier eingesetzt wird als Kinderdarsteller für
einige unserer Blöcke hier Lassen Sie mich weitermachen und unseren Block hier und hier
auswählen , der
zerbrechlich In unserem Block Breakable
, der von
unserer Blockbasis geerbt wird, soll
unser Kinderdarsteller unsere BP-Münze
sein. Um
dieses ganze Problem zu verhindern, müssen
wir es
so gestalten , dass unser Radius
für unsere BP-Münze , die wir als Kinderdarsteller einsetzen ,
einfach
viel enger ist Lassen Sie uns also weitermachen und das tun. Das wird einfach genug
sein. Statt 75 werde ich es
auf 30 ändern, was mir
ein bisschen zu eng erscheinen wird. Aber das liegt wirklich nicht daran, dass die Kapselkomponente, die
unseren Charakter
umgibt , ein bisschen hervorsticht. Das wird
also ziemlich gut sein. Denken Sie jetzt an unseren Zylinder selbst, den wir auf die Seite
gedreht haben, ohne
dass es zu
einer Kollision gekommen ist, sodass wir uns keine
Sorgen machen müssen, dass wir darauf stoßen Also eine Kugel hier von 30, das wäre
ein ordentlicher Radius Also
kompilieren und speichern Sie das. Ich möchte, dass dieser Radius auch
unserem BP Block Coin
Collider-Radius entspricht unserem BP Block Coin
Collider-Radius Wenn Sie jetzt unseren Coin
Collider-Radius innerhalb
unseres BP-Blocks vergessen haben , wird er
verwendet, um den gesamten Akteur zu zerstören Der einzige Weg, wie wir
das wirklich
jemals überlappen können , ist, wenn
wir den P-Block getroffen haben und somit
den eigentlichen Block
selbst versteckt haben und wir
den mittleren Teil überlappen Lassen Sie uns also weitermachen
und den Radius der
Coin-Collider-Kugel
hier ebenfalls auf 30 setzen Radius der
Coin-Collider-Kugel
hier ebenfalls auf 30 Wenn wir ihn bei 35 belassen würden, würden
wir diesen Wert überlappen, bevor wir die Münze selbst überlappen würden heißt, wir würden den Block zerstören ,
bevor wir die Münze aufheben könnten. Indem wir beide auf 30 gleich setzen. Das bedeutet, dass wir gleichzeitig die darin
enthaltene Münze
aufheben und den
gesamten Block selbst zerstören. In Ordnung, lass uns weitermachen
und das kompilieren und speichern. Wenn wir jetzt reinspringen und spielen, renne
ich
zuerst über den oberen Teil, nur um sicherzugehen, dass wir uns nicht überlappen und sammle die Münzen
auf, die in
einigen dieser Blöcke vergraben sind. Und das sieht alles schön und
gut aus, dann lass uns weitermachen und
bei unserem Block hier anhalten. Ich werde das
Recht haben. Musikplan. Ich werde
hier einfach
ein paar Münzen einsammeln , wenn der
Timer abgelaufen ist. Hier gibt es nichts, womit ich kollidieren könnte. Ich sollte immer noch
damit kollidieren können
und alles scheint wieder zu funktionieren Die Musik ist auch ausgegangen.
55. P-Block-Fehlerbehebungen (Teil #2): Ordnung, noch ein paar Dinge, die wir hier reparieren
werden und die in tangentialer Weise
mit unserem Block zusammenhängen Einige von Ihnen haben zweifellos schon
bemerkt, dass wir
unsere Blockaden immer noch durchbrechen können , selbst wenn
wir so klein sind Und das ist nicht
wirklich so geplant. Wir wollen
es so machen, dass wir unsere Blöcke
nur durchbrechen können , wenn wir groß sind. Nun, das wird auch hier
ins Spiel kommen, denn wir werden unseren
zerbrechlichen Blöcken
ein Skript hinzufügen unseren
zerbrechlichen Blöcken
ein Skript , damit wir sie nur
brechen können, wenn wir groß sind Und nachdem wir diesen
ersten Teil des Skripts hinzugefügt
haben, werden Sie
einige andere Probleme
im Zusammenhang mit unserem Blocksystem feststellen im Zusammenhang mit unserem Blocksystem Nachdem das alles geklärt ist, springen
wir zu
unserem zerbrechlichen Block und fügen hier ein bisschen
Skript Wir werden hier ein
kleines Skript zwischen
unserem Event-Trefferblock und
unserem Sequenzknoten hinzufügen . Und zum Glück werden
wir in der Lage sein für einiges davon eine Abkürzung
zu Aber diesen ersten Teil
müssen wir neu schreiben. Also werde ich die
Steuerung gedrückt halten und nach oben zoomen. Als erstes möchte ich mit rechten Maustaste in eine leere Stelle klicken. Wir werden einen
Spielercharakter bekommen und dann ziehen wir das Ganze in die Länge und wir werden zwei
Charaktere aus der dritten Person casten. Der Grund, warum wir
das machen werden, lassen Sie uns das so zusammenfassen,
ist, dass wir innerhalb unseres Charakters aus der
dritten Person eine Variable haben, die Trefferpunkte
genannt wird. Lassen Sie uns also hier rausziehen
und die Trefferpunkte eintippen. Wir werden diesen Wert und ihn dann
auswerten. Also werde ich mich hier
hinziehen und sagen, ob unsere Trefferpunkte
größer oder gleich zwei sind. Ich habe nicht vor, dass wir
zwei Trefferpunkte überschreiten, null Trefferpunkte, dann bist du tot Ein Trefferpunkt, du bist klein. Zwei Trefferpunkte, du bist groß, du hast Fire Flower Power. Aber wir sagen,
wenn du darüber liegst, weißt
du, wenn du einen dritten,
vierten, fünften
Trefferpunkt hinzufügen willst , könntest du das tun. Also werde ich die B-Taste
gedrückt halten und mit der linken Maustaste klicken und wir werden
das als unsere Bedingung eintragen. Also, wenn unsere Trefferpunkte
größer oder gleich zwei sind, werden
wir
sagen, ja, wenn du groß bist, werden
wir
den Block durchbrechen und all
diese Dinge machen. Das ist alles
schön und gut. Was ist jedoch, wenn wir nur einen Trefferpunkt haben, also nicht größer oder
gleich zwei sind ? Was
machen wir dann? Was wir aus
diesem falschen Zweig aufbauen wollen. Also das Erste, was
wir tun werden, ist hier etwas
mehr Platz zu schaffen. Und ich werde das
anziehen. Und dann werde ich
in meinen Inhaltsbrowser springen und Code
aus unseren BP-Blockcoins stehlen . Also mach weiter und tauche
hier ein und wir werden diesen Block und eine Reihe von
Skripten
stehlen. Linksklick und Drag,
Strg C, zurück in
unseren Block Breakable Und ich werde auch
V von
unserem falschen Zweig aus kontrollieren auch
V von
unserem falschen Zweig aus Wir werden diese
Blockanimations-Timeline abspielen. Aber bevor wir das tatsächlich machen, möchte
ich auch hier einen
Sound reinbringen. Lassen Sie uns unseren falschen
Branchtyp im Spiel wegziehen. Sound Two D, ich werde sagen,
wir werden
den Brick Bump Sound spielen den Brick Bump Sound Dann spielen wir von Anfang an
unsere Timeline ab. Diese Zeitlinie wird es
einfach so
machen, dass wir
unsere Würfelkomponente in
Z-Richtung ein wenig nach oben bewegen. Wir werden auf sie
stoßen, anstatt sie
gleichzeitig zu zerstören Wir werden
diesen Sound auch hier spielen. Ich sage, der Spieler ist klein, zerstöre den Block
nicht. Okay, also wir werden
hier
das kleine Skript hinzufügen , das aus
dem falschen Zweig hier stammen wird. Stellen Sie sicher, dass Sie
kompiliert
und gespeichert haben und noch etwas anderes, das ich tun
möchte, während wir hier sind. Das wird auch nur der Optik
halber sein. Ich werde hier raufkommen, ich möchte eigentlich
die V-Effekte ändern , die mit
dem Durchbrechen unseres Blocks verbunden sind. Ich habe tatsächlich einen gefunden, der mir ein bisschen besser
gefällt. Und dafür
werden wir diesen Offset hier eigentlich nicht benötigen. Also werde ich das
loswerden und ich werde es hier so
einstecken. Und das V-Effekt-Partikel,
das ich abspielen möchte, könnte
ich auch hier einbauen. Allerdings werde ich
in
Kürze etwas an
unserer BP-Blockbasis arbeiten , damit wir es dort einbauen können. Und dann wird es
diese Änderung auf diesen untergeordneten Block übertragen diese Änderung auf diesen untergeordneten Block Also werde ich
hier sofort
unsere BP-Blockbasis öffnen , weil wir
sie hier in
nur einem Moment brauchen werden. Öffnen wir das. Und hier in
meiner BP-Blockbasis wähle
ich meinen
Interact VFX-Partikel Und hier werden wir unser Partikel im
Detailfenster so
ändern , dass es gemischt werden soll Dass ich dieses gemischte Set habe
, ein großes, das
gefällt mir sehr gut. Beachten Sie also, dass wir es
hier in unserer Blockbasis platziert haben. Wenn ich kompilieren und speichern und jetzt zu unserem
BP-Block Breakable zurückkehren würde
, der ein untergeordnetes Element
unserer BP-Blockbasis ist Wir können sehen, dass sich diese Änderung jetzt verbreitet
hat. In Ordnung, damit sollten
wir testen
können, ob dieser Block zerbrechlich
ist oder nicht Und dann werden wir uns mit einigen
der Blockauswirkungen dessen befassen ,
was wir gerade hier getan haben Also werde ich auf Play klicken. Kann ich diesen Stein brechen? Nein, ich kann nicht. Jetzt siehst du
die Auswirkungen des Blocks Ich kann die Münze darin sehen. Damit werden wir uns gleich befassen. Versuchen wir es jedoch jetzt. Nochmals, wenn ich jetzt ein bisschen bin, werden
wir
einen etwas explosiveren Effekt haben , wenn
ich diesen Stein zerbreche. Und das sieht
gut und gut aus. Ordnung, als Nächstes wollen wir uns mit dem Problem
befassen , die Münze hier auf der
Innenseite unseres Blocks zu
sehen. Nun, der Grund, warum wir diese Münze gesehen
haben ,
liegt in unserer BP-Blockbasis. Wir haben unseren
Kinderdarsteller gleich hier drüben. Hier haben wir
tatsächlich
die Münze in unsere Kinderdarsteller gesteckt Lassen Sie mich einfach zu BP
Block Breakable Child Actor übergehen. Sie können sehen, dass wir
dort unsere
BP-Pick-Up-Münze einwerfen Aber hier in unserer Basis,
unserer BP-Blockbasis, und wieder erbt
unser Block Breakable
von unserer BP-Blockbasis Gehen Sie weiter und wählen Sie
Ihren Kinderschauspieler aus. Und im Detailbereich möchten
wir sicherstellen, dass dies
standardmäßig nicht sichtbar ist. Ich habe vergessen,
dieses Kästchen hier zu deaktivieren. Darüber hinaus möchte
ich es jetzt auch so gestalten, dass möchte
ich es jetzt auch so gestalten, dass unser Kinderdarsteller
an unserem Würfel selbst befestigt ist Wenn wir also
unseren BP-Block zerbrechlich machen, wenn wir klein sind, wird
auch
unser Kinderdarsteller
im Münzbeschleuniger gebremst Sie bewegen sich nach oben,
wenn wir auf den Würfel treffen, also werde ich mit der
linken Maustaste klicken und ihn nach rechts über
unseren Würfel ziehen rechts über
unseren Und so siehst du jetzt unsere
Beziehung als solche. Wir haben unseren Würfel,
das ist unser Block hier, der Kinderdarsteller ist
daran befestigt. Und dann ist unser Coin Collider, mit
dem wir tatsächlich
den gesamten Block zerstören , wenn wir uns überlappen
, der an
unserem Kinderschauspieler befestigt ist Lassen Sie uns also weitermachen
und
diese Art von
Beziehung hier kompilieren und speichern diese Art von
Beziehung hier Da das daran angehängt ist,
was damit verbunden ist, sollten
wir auch sehen, dass unser BP-Block zerbrechlich ist,
jetzt, wo wir kompiliert und in unserer Datenbank
gespeichert haben, und das ist, machen wir weiter und speichern auch unseren Block
breakable Wenn ich jetzt zurück
in mein Level springe, lass uns weitermachen und hier spielen Beachten Sie, dass
ich klein bin, ich springe gleich nach oben. Ich belle das hoch. Ich
sehe die Münze nicht auf der Innenseite. Das ist wie beabsichtigt. Großartig. Ich werde hier in meinem Block
anhalten. Jetzt. Ich sehe die Münzen.
Ich kann sie sammeln. Ich lasse den nicht abholen,
bis der Timer
abgelaufen ist und ich kann mich gleich
wieder darauf einlassen Also noch ein paar Bugs behoben. Eine weitere Sache sollte ich erwähnen, nachdem wir diese
Partikeländerung
innerhalb unserer
BP-Blockbasis hier vorgenommen haben, nachdem wir diese Änderung vorgenommen
und wir kompiliert haben und gesagt haben, dass sich diese Änderung auf alle
untergeordneten Blöcke übertragen hat,
was Sie, wie ich weiß, vielleicht nicht in Ihren
verschiedenen untergeordneten Blöcken haben
möchten Wenn Sie dies also
hier in Ihrer Blockbasis festgelegt haben
, sollten Sie zunächst Ihre verschiedenen
untergeordneten Blöcke
durchgehen , z. B. Ihre unsichtbare Münze, Ihre BP-, Q-Münze usw. Und wenn du sie öffnest und unter die
Klassenstandards
gerätst, kannst du diese
interagierenden VFX-Partikel einfach löschen
, sodass du nicht diesen riesigen
Breaking-Effekt beim Spielen
hast Breaking-Effekt Außerdem habe ich vergessen,
innerhalb unseres BP-Blocks zu erwähnen, vorgetäuscht ist. Vielleicht möchten
Sie diesen Offset, den
wir hier drin hatten,
entfernen Ich habe das hier
zwischen den Takes gemacht, also solltest du das vielleicht auch
weglassen Hier bin ich damit einverstanden. Interagiere mit VFX Particle. Aber ich dachte nur,
ich würde sie
reinwerfen , bevor wir dieses Video beenden
56. P-Block-Skript (Teil #3): Ordnung, wir müssen noch ein Problem mit
Blöcken lösen, und zwar mit unseren
unsichtbaren Blöcken hier. Und wie Sie sehen können, habe
ich zwei davon direkt neben
diesen zerbrechlichen Ziegeln
platziert Und wenn ich reinspringe und spiele, wirst du sie
natürlich nicht von
Anfang an sehen können sie
natürlich nicht von
Anfang an sehen Und tatsächlich kannst du mit ihnen
interagieren, so wie ich es
jetzt mit einem von ihnen
tun werde . Das Problem kommt rein. Wenn ich mich jedoch einem dieser unsichtbaren Blöcke
von oben nähere, falle
ich durch ihn
hindurch und versuche
dann,
mit ihm zu interagieren. Ich kann nicht. Was ist hier los?
Nun, wenn ich zu meiner BP-Blockbasis zurückkehren würde, das die Blaupause
, von der alle anderen
Blöcke abgeleitet sind Sie haben sich vielleicht daran erinnert
, dass wir in unserem Basisblock
einen Kinderdarsteller in einem Coin
Collider hinzugefügt einen Kinderdarsteller in unserem Basisblock
einen Kinderdarsteller in einem Coin
Collider Und das hatte mit dem RP-Block zu
tun. Was nun in
unserer BP-Blockbasis passiert, von der all unsere anderen
Blöcke Code ableiten,
ist, dass, wenn wir diesen Coin Collider
überlappen würden, dieser Typ hier, wir den Akteur
zerstören würden,
also den gesamten Was passiert, ist
, wenn wir
durch die Oberseite
unseres unsichtbaren Münzblocks gehen, lassen Sie mich einfach diesen Bauplan
öffnen Da ist unser unsichtbarer Münzblock wenn wir
durch die Oberseite hindurchgehen, und alles ist unsichtbar.
Wir
überlappen tatsächlich diesen
Münzzähler, der sich in dieser Kiste
befindet, zerstören
so Wenn wir von oben nach unten fallen, zerstören
wir tatsächlich den Akteur,
was bedeutet, dass wir nicht wieder mit
ihm interagieren können Wie reparieren wir
das alles? Nun, die Lösung ist eigentlich ganz einfach. Stellen Sie also sicher, dass Sie in
Ihren BP-Block kommen , eine unsichtbare Münze. Finden Sie das in Ihrem
Inhaltsbrowser. Wir werden zum
Ereignisdiagramm dieses Ereignisses übergehen . Fangen Sie an zu spielen. Wir haben die Sichtbarkeit unseres
Würfels so eingestellt, dass sie unsichtbar ist. Wir werden
diese beiden Knoten einfach hier sichern. Ich werde sie sogar etwas
höher anheben. Ich werde direkt nach den ersten
beiden einen
Sequenzknoten einfügen , also werde ich
die S-Taste gedrückt halten und mit der linken Maustaste klicken. Und wir werden zwei
Dinge außerhalb von Event Beginplay tun. Als Erstes werden wir
weiterhin unseren Würfel,
den Block, verstecken , sodass er unsichtbar
erscheint Das zweite, was ich tun
werde,
ist, einen Hinweis auf
unseren Coin einzubringen , der
im Grunde unser Kinderdarsteller ist, unser Coin Collider Bringen wir das auch mit rein. Wir haben beide Referenzen. Wir ziehen einfach eine
davon raus und sagen dafür Komponente zerstören. Wir können im Grunde beide Komponenten
zerstören , weil
wir nicht versuchen,
diesen unsichtbaren
Stein in eine Münze
zu verwandeln. Wenn wir auf dem Block anhalten, klicken
wir mit der linken Maustaste und
ziehen die Taste um sie herum. Und ich würde sagen, wenn Sie die
Blockfunktionalität
implementiert haben , wenn Sie die
Blockfunktionalität implementiert haben, ist dieser Code für Sie dann wirklich
wichtig? Wenn Sie das noch nicht
implementiert haben, wäre das egal. Also lass uns weitermachen und das
kompilieren und speichern. Und springen Sie ein und spielen Sie noch einmal, nur um Ihnen zu zeigen, dass meine unsichtbaren
Blöcke genau dort sind. Ich werde genau da drin spawnen
. Wie Sie sehen können, kann
ich mit
einem von ihnen von
unten interagieren , etwa so Aber wenn ich jetzt von
oben runterfalle, wird
der Block nicht wirklich zerstört. Wenn ich jetzt also hochspringen würde, kann
ich immer noch mit
diesem unsichtbaren Block interagieren. So
behebt man das Problem. Ordnung, Leute. Damit
wäre alles für diesen erledigt. Wir sehen uns im nächsten.
57. Goomba Blueprint: Jetzt, wo wir ein
paar Blöcke an Ort und Stelle haben, wollen wir unsere
allererste Nation gründen, eine Goomba dafür, wir werden In Unreal
werden wir ihm
einige grundlegende Funktionen zur Verfügung stellen, damit er sich
entweder nach einige grundlegende Funktionen zur Verfügung stellen, damit er sich
entweder nach links oder rechts bewegen kann, anstatt gedankenlos am L zu
patrouillieren
oder den oder Wir werden es auch so
machen, dass unsere Knödel zerstört werden können Entweder wir halten an, weil wir beim Streik einen Feuerball
abgefeuert Lass uns weitermachen und anfangen. Jetzt, zurück in Unreal, solltest
du diese
acht verschiedenen
Goomba-Bilder haben , die wir schon
viel früher im Kurs importiert haben Und diese sollten in Ihrem Textures-Ordner
vorhanden sein. Als Nächstes klicke ich mit linken Maustaste auf meinen
Platformer-Ordner,
ich klicke mit der rechten Maustaste
und erstelle einen neuen Ordner, der einfach Sprites
genannt wird Dann gehe ich zurück
zu meinem Texturen-Ordner
und wähle alle
acht dieser Texturen aus Und wenn ich die Shift-Taste gedrückt halte nachdem ich hier
die erste ausgewählt habe, kann
ich dann die achte auswählen um alle dazwischen auszuwählen,
dann kann ich mit der rechten Maustaste
auf eine dieser Optionen klicken. Und dabei komme
ich unter Sprite Actions, Create Sprite Damit haben wir nun acht
Sprite-Assets erstellt Ich
nehme einfach all diese und Sie können sehen, dass sie jetzt alle
hervorgehoben sind Und ich werde sie mit der
linken Maustaste klicken und
sie in diesen Sprite-Ordner ziehen , den Sprites-Ordner, eher werden
wir sie hierher verschieben Und wenn wir dann in unseren Sprite-Ordner
gehen, können
Sie sehen, dass sie alle hier
existieren Als Nächstes werden
wir sicherstellen, dass wir alle acht
ausgewählt haben Auch hier wähle ich
den ersten aus, halte die Umschalttaste gedrückt und
wähle den letzten aus. Dann kann ich mit der rechten Maustaste klicken und ich möchte ein Flipbook
erstellen. Ich
nenne das einfach Goomba. Ich bin mir sicher, dass die meisten von Ihnen wissen was
ein Flipbook ist, aber wenn ich einfach auf
dieses Asset doppelklicke , um es
unten zu öffnen, können
Sie im Grunde sehen, dass ich
alle acht verschiedenen Sprites in
dieser Timeline habe alle acht verschiedenen Sprites in und dass sie
schnell abgespielt Auf der rechten Seite wo wir
unser Detailfenster haben, können
Sie sehen, dass ich hier unsere Keyframes erweitern
kann Wenn ich mit der rechten Maustaste darauf klicke, kann
ich all diese erweitern. Sie können all diese
verschiedenen Sprites sehen. Und es zeigt, dass
es alle
acht dieser Sprites
in schneller Folge abspielt acht dieser Sprites
in schneller Jetzt können Sie das
verlangsamen oder beschleunigen,
indem Sie diesen Wert für Frames pro
Sekunde hier anpassen Wenn ich also so etwas wie drei einstellen und die Eingabetaste drücken
würde, würden die Argumente so erscheinen, als würden sie viel langsamer
laufen Das funktioniert wie ein Flipbook für
Kinder. Wenn ich das beschleunige, indem ich
diesen Wert auf etwa 30 setze, wird
es so aussehen, als würde
Argumba viel schneller gehen Ich werde das auf den Standardwert 15
zurücksetzen,
aber das ist im Grunde das, was ein Flipbook ist Es ist ein Haufen von Bildern, die schnell hintereinander
abgespielt werden. Das werden wir
in unserer feindlichen Anlage verwenden, in unserem feindlichen Plan, um
es so aussehen zu lassen , als würde Argumba Mach weiter und sag das
und schließ hier wieder ab. Iss unseren Level-Editor. Ich gehe in meinen Blueprint-Ordner und suche nach
etwas leerem Platz Ich klicke mit der rechten Maustaste und erstelle eine
neue Blueprint-Klasse Das wird eine
Charakterklasse sein, weil ich möchte, dass sich
dieser Feind bewegt Das wird uns also die Fähigkeit
geben ihn im Charakter zu bewegen. Und ich werde BP Underscore
wählen, aber da der Name
dieses Unterstrichs ausgewählt ist, drücke
ich hier einfach die
Leertaste, um es zu öffnen Und drüben im
Komponenten-Panel
werden wir damit beginnen,
einige Komponenten hinzuzufügen Also, was ich
zuerst tun werde, ist,
die Komponenten in der richtigen
Anhangsbeziehung hinzuzufügen die Komponenten in der richtigen
Anhangsbeziehung hinzuzufügen Und dann gehe
ich zurück und lege die Details für jeden
fest Okay, der
erste,
zu dem ich gehe , wird hier an
meine Kapselkomponente angehängt. Ich werde auf Hinzufügen klicken. Das wird
Sphere Collision sein, und ich nenne das „
Meine Spielererkennungsreichweite“. Dann wähle ich erneut meine
Kapselkomponente und füge eine
weitere hinzu. Ich werde auf Hinzufügen klicken. Ich werde
weitere Sphärenkollisionen hinzufügen. Diesen werde
ich Collider nennen. Ich werde
verschiedene Collider verwenden, bei denen der Spieler die
Reichweite erkennt, und dieser heißt
aus verschiedenen Gründen Collider und du wirst sehen wofür sie da sind und in
Kürze hier Okay, wenn unsere
Collider-Komponente hier ausgewählt ist, füge
ich
Typ im Flipbook Wir werden ein Flipbook aus Papier mit
zwei D-Papieren hinzufügen. Ich lasse einfach den Namen des
Paper-Flipbooks übrig. Das ist in Ordnung. Dann
wähle ich noch
einmal unseren Collider aus, weil ich
möchte, dass eine weitere
Komponente an
unseren Collider angeschlossen wird noch
einmal unseren Collider aus, weil ich möchte, dass eine weitere
Komponente an
unseren Collider angeschlossen . Klicken Sie auf Hinzufügen Das wird Box Collision,
Box Collision
sein , genau hier. Das wird unsere Stomp-Box
sein. Wir werden
das nutzen, um zu erkennen, wann
unser Spielercharakter auf Argumba angehalten
hat Ordnung, lassen Sie uns damit beginnen, einige
Details für diese
verschiedenen Komponenten anzupassen Details für diese
verschiedenen Komponenten Ich fange mit meiner Kapselkollisionskomponente an. Das ist so ein
kapselförmig aussehendes Ding. Ich stelle die halbe Höhe der
Kapsel auf 55 und den Radius auf 45 ein. Beachten Sie nun, dass diese Komponente angibt, dass es sich um eine Spielfigur handeln
wird. Ich werde nach unten zum Kollisionsbereich scrollen
. Die hier voreingestellte Kollision
wird Pawn sein. Sie können also sehen, dass diese Voreinstellung
zwar als Bauernkollisions-Voreinstellung
eingerichtet ist , ihr Objekttyp jedoch als Bauer
bezeichnet wird Und was hier zur
Folge haben wird, ist, dass andere Objekte, die als
Bauer bezeichnet werden, damit kollidieren würden Das heißt, wenn wir
mehrere dieser Gumbas hätten , würden
sie quasi
miteinander kollidieren Was ich nicht möchte, dass sie tun. Ich möchte, dass sie sich gegenseitig
durchdringen können. Was ich hier eigentlich tun werde
, ist
unsere Kollisions-Voreinstellung von „Bauer“ auf „Benutzerdefiniert“
zu ändern unsere Kollisions-Voreinstellung von „Bauer“ und dann einige unserer
Kollisionskanäle hier
anzupassen Ich werde es
so einrichten, dass alles mit Ignorieren anfängt, aber dann werde ich
unsere Welt statisch
und weltdynamisch einstellen unsere Welt statisch
und weltdynamisch Ich werde das so einstellen
,
dass es blockiert wird, damit dieser Gumba nicht durch die Welt
fällt Stellen Sie sicher, dass
dies Ihr
Kollisions-Setup für Ihre
Kapselkomponente benutzerdefinierte Objekttyp ist Pawn, und dann diese verschiedenen
Kanaleinstellungen genau hier. Als Nächstes wähle ich
unseren
Spielererkennungsbereich und den Kugelradius Dafür werde
ich ziemlich groß einstellen. Ich werde das auf 2000 setzen. Und wir
werden das einfach verwenden, um zu erkennen, wann unser Spielercharakter diesen Radius erreicht
hat. Dann kann der Gumba beginnen , sich auf irgendeine Art,
Form oder Form zu bewegen Du kannst das so
einstellen, wie du willst, aber meins wird am Anfang
ziemlich groß sein Okay. Als Nächstes
wähle ich unsere Collider-Komponente Das ist dieser winzige
Radius genau hier drin. Dafür werde ich
den Kugelradius
etwas größer einstellen . Ich werde ihn auf 55 einstellen, also ein bisschen größer. Und dann werde
ich das in den
Kollisions-Presets auch nach unten erweitern Ich werde das so ändern, dass es benutzerdefiniert ist und nicht mehr Overlap
Ball, es wird benutzerdefiniert sein Ich werde
das so einstellen, dass es für
alles blockiert wird, außer dass ich es so ändern werde
, dass Spielfiguren, also
alles, was als
Pfandobjekt bezeichnet wird, überlappt werden können Wir werden erkennen, ob ein Spieler, der auch
ein Bauer ist, sich überschneidet,
um festzustellen, ob du,
der Spieler, stirbt Beachten Sie auch, dass diese
spezielle Komponente einen Feuerball blockieren
wird Wir werden
dies verwenden, um zu erkennen, ob ein Feuerball auf diese Komponente trifft,
da es so eingestellt ist, dass es einen Feuerball
blockiert um festzustellen, ob der Gumba Als Nächstes richten wir unser
Papier-Klappbuch ein. Fahren Sie fort und wählen Sie
diese Komponente aus. Drüben im Detailbereich haben
wir einen Bereich, in den wir ein Quell-Klappbuch einfügen können
. Klicken Sie darauf. Wir haben
unser Goomba-Flipbook Es wird ziemlich groß anfangen
, also lassen Sie uns weitermachen
und es verkleinern Klicken Sie auf diese Sperrtaste,
um dies einheitlich zu skalieren. Ich werde diesen Wert
pauschal auf 0,25 setzen, sodass das ziemlich gut
hineinpasst Ich werde auch herunterkommen und die Kollision so
einstellen,
dass sie keine
Kollisionskollision voreingestellt Wir stellen das so ein,
dass es keine Kollision gibt. Wir werden nicht überprüfen, es
irgendwelche Kollisionen Dafür
werden unsere verschiedenen
anderen Collider als Nächstes hier sein Klicken
wir auf unsere Stoppbox Und wenn das im Detailbereich ausgewählt
ist, stelle ich die Größe der Box
auf 40 mal 100 mal drei ein, also etwas
dünnes Ding Und dann werde ich
es in Z-Richtung nach oben bewegen. Ich werde das auf 60 ändern
, sodass es so auf Argumbas
Kopf
ruht Und dann muss ich bei der Kollision
runterkommen. Weißt du was,
bevor ich unter das Kollisions-Preset komme, werde
ich
die Linienstärke auch etwas
dicker einstellen. Ich setze das auf etwa drei,
nur um es
etwas deutlicher zu machen,
dass das unser Stopp-Box-Bereich sein wird. Okay, dann, wenn das ausgewählt ist, geh runter unter den
Kollisionsbereich. Wir werden
die Kollisionsvoreinstellung
hier so ändern , dass sie benutzerdefiniert ist. Und dafür werden wir das so
einstellen, dass
alles für alles blockiert wird, außer dass
wir Feuerbälle ignorieren,
also wollen wir nicht, dass Feuerbälle einfach
auf magische Weise damit
kollidieren Wir sind damit einverstanden, dass es hier durchkommt
. Wir werden
diesen anderen Collider überprüfen, um zu sehen ,
ob er von einem
Feuerball getroffen wird Unser Stopp wird ausschließlich
darin bestehen, zu sehen, ob eine Spielfigur darauf stehen
bleibt Und
irgendwann werden
wir anhand eines Skripts überprüfen , ob unser Charakter in Z-Richtung
darauf
herunterfällt in Z-Richtung
darauf Okay, eine weitere Sache
, die ich
hier anpassen möchte , betrifft unsere Komponente zur
Charakterbewegung. Das kam automatisch weil wir das als
Charakterklassen-Blueprint hatten Dies ist die magische Komponente
, die einen
Großteil der
Bewegungseigenschaften dieses
Charakterklassen-Bauplans bestimmen wird Großteil der
Bewegungseigenschaften dieses
Charakterklassen-Bauplans Wenn ich
im Detailbereich nach unten gehe, werde
ich irgendwann
diesen Abschnitt mit der Hobelbewegung finden diesen Abschnitt mit der Hobelbewegung Ich möchte unsere
Goombas-Bewegung auf eine bestimmte Ebene beschränken. Also
wähle ich hier aus
und ich möchte sicherstellen, dass wir
unsere Ebene auf die Y-Achse beschränkt haben unsere Ebene auf die Y-Achse Beachten Sie, dass, sobald ich dies auf Y setze, unsere
Ebenenbeschränkung auf eins in der Y-Achse gesetzt wird Ebenenbeschränkung auf eins in der Y-Achse Dadurch
wird im Wesentlichen verhindert, dass sich
unser Gumba in der Y-Achse bewegt Es ist jedoch
erlaubt, sich in
der X-Achse und der Z-Achse zu bewegen der X-Achse und der Z-Achse Jetzt helfe ich, dass sich
das Objekt nicht auf der
angegebenen Achse bewegen kann Lassen Sie mich das kompilieren
und sofort speichern. Und platziere eines
davon in unserem Level. Ich habe hier mein
Haupt-Two-D-Snaping-Set in meinem Viewport. Lassen Sie mich einfach weitermachen
und per Drag-and-Drop eine Goomba-Art einfügen. Also. Tippen Sie auf die Taste, um
sie auf dem Boden zu befestigen. Sie können also sehen, dass die Y-Ebene mit unserem
grünen Pfeil gekennzeichnet
ist Wir
sagen also im Wesentlichen, dass Sie
sich nicht entlang dieser grünen Achse bewegen können sich nicht entlang dieser grünen Achse bewegen Sie können sich entlang
der roten X-Achse
oder der blauen Z-Achse bewegen , aber nicht entlang der Y-Achse. Okay, wir haben hier einen ziemlich
guten Start das alles erledigt ist, stellen Sie
sicher, dass Sie alles gespeichert haben Du kannst unter die Datei gehen
und alle Leute speichern. Das reicht für diesen, den nächsten
gewinnst du .
58. Goomba schädigt den Spieler: Ordnung, willkommen
zurück. In diesem Video ist es
unser Ziel, es so zu gestalten, dass unser Goomba dem Spieler
Schaden zufügen kann Da dies nun ein kurzes Video sein wird
, werde
ich dir ganz
schnell zeigen, wie du auch hier
dein eigenes
Vorschaubild einrichten kannst hier
dein eigenes
Vorschaubild Denn im Moment hat unser BP Goomba nur dieses Gesicht
als Vorschaubild Wenn Sie mit der rechten Maustaste auf dieses Asset klicken und zu Asset-Aktionen wechseln, können
Sie ein Vorschaubild aufnehmen Sie können also sehen, dass ich
meine Gumba hier in meinem Viewport schon irgendwie
eingerahmt Ich tippe einfach auf die
G-Taste, um all diese Symbole auszublenden. Gkey kann
all diese Editor-Symbole ein- oder ausblenden. Ich werde mit der rechten
Maustaste darauf klicken. Wir gehen zu Act Actions
und nehmen ein Vorschaubild auf. Da haben wir also ein
schönes Vorschaubild. Lassen Sie mich jetzt in
unseren Goomba springen ,
indem ich ihn auswähle und die Leertaste
drücke Und jetzt lasst uns daran arbeiten,
es so zu machen, dass unser Gumba unserem Spieler innerhalb
unseres Goomba-Blueprints
Schaden zufügen kann Spieler innerhalb
unseres Goomba-Blueprints
Schaden zufügen Wir werden im Abschnitt Mein Blueprint eine
Variable hinzufügen im Abschnitt Mein Blueprint eine
Variable Klicken Sie hier auf die
Plus-Variablen-Schaltfläche. Ich nenne diesen Wert „Gesundheit zu subtrahieren“ und mache
daraus eine Ganzzahl Wenn ich das
im Detailbereich erneut kompiliere, setze
ich den Wert
dafür auf einen negativen Und du wirst hier in nur
einer Sekunde meinen negativen Wert sehen. Dann
klicke ich mit der rechten Maustaste auf unsere
Collider-Komponente, diesen Typen hier. Lassen Sie uns das vergrößern, damit Sie sehen
können, von welcher
ich spreche Also wollen wir es so machen
, dass unser Charakter Schaden
nimmt, wenn
er auf unsere Gumba trifft Dafür werden wir diese
Collider-Komponente verwenden. Klicken Sie bei der Veranstaltung mit der rechten Maustaste darauf, um die
Überlappung zu beginnen. Dadurch gelangen wir zu
unserem Ereignisdiagramm. Wir können überprüfen, ob unser anderer Schauspieler unser Charakter aus der
dritten Person ist. Ziehen Sie also hier raus und geben Sie den Charakter aus der
dritten Person ein, den wir in Charakter aus der
dritten Person ein, den wir unseren Charakter aus der
dritten Person übertragen
möchten. Denn innerhalb unseres Charakters aus der
dritten Person haben
wir, wenn Sie sich noch an den
Anfang des Kurses erinnern, ein benutzerdefiniertes Ereignis erstellt das als „Hüftpunkte
anpassen“ bezeichnet wurde. Hier können wir
dieses benutzerdefinierte Ereignis aufrufen und dann eingeben wie viele
Hüftpunkte wir
ändern möchten, und wir haben hier unsere Gesundheit , die wir abziehen können Es hat einen Wert
von minus Eins. Also können wir das
einfach so einstecken. Nur um zu verdeutlichen was hier
genau passiert, doppelklicke
ich hier auf
unseren Call mit angepassten
Trefferpunkten. Auch hier
handelt es sich um ein benutzerdefiniertes Ereignis , das in unserem Charakter aus der
dritten Person stattfindet. Und wenn ich darauf doppelklicke, öffnet sich mein
Bauplan für einen Charakter aus der dritten
Person und
ich komme Bauplan für einen Charakter aus der dritten
Person und direkt zu der Stelle, an der dieses
benutzerdefinierte Ereignis existiert In meinem BP-Goomba-Blueprint könnt ihr sehen, dass
wir gerade dabei sind,
unsere Trefferpunkte hier
in unserem BP Goomba wir gerade dabei sind,
unsere Trefferpunkte hier
in unserem zu modifizieren. Hier sagen wir, unser
Trefferpunkt-Modifikator, wir wollen den Wert von minus Eins weitergeben. Ein negativer Wert wird
zu diesem benutzerdefinierten Ereignis und
dann bis zu diesem benutzerdefinierten Ereignis und hierher weitergeleitet, um anhand der
aktuellen Trefferpunktzahl unseres Charakters
angepasst zu werden aktuellen Trefferpunktzahl unseres Charakters
angepasst Wenn unser Charakter zwei Trefferpunkte
hat wir negative 12 plus einen negativen Wert erreichen, ist das
natürlich eins. So funktioniert das. Ordnung, damit können
wir weitermachen und unseren
Goomba-Blueprint hier
zusammenstellen Speichern, lass mich einfach mit der
linken Maustaste klicken und ziehen. Ich werde ein Kommentarfeld rund um
diesen Spieler von Goomba Damages einrichten. Und dann werden wir hier schnell in die Tests
einsteigen. Bevor ich das mache, möchte
ich zu
meinem
BP-Third-Person-Charakter übergehen und sichergehen dass
ich damit alles geklärt habe Ich möchte sichergehen,
dass ich mir meinen Standpunkt ansehe. Derzeit
ist mein Charakter klein und sie haben diese blaue Färbung und das blaue
Material auf sie aufgetragen Ich möchte sichergehen, dass
unser aktueller Trefferpunktwert auch diesem entspricht Also werde ich meine
Trefferpunkte genau hier einstellen. Derzeit sind es standardmäßig zwei. Ich möchte das eigentlich
standardmäßig auf eins setzen. Wenn wir einen
Trefferpunkt haben, möchte ich blau sein. Lassen Sie mich hier zurück
zu meinem Ereignisdiagramm springen, in dem wir
unsere Trefferpunkte anpassen, was wir
dieses Kundenereignis nennen werden. Ich möchte sichergehen, dass
unsere Materialien, zu denen wir aufgrund
der Anzahl der
Trefferpunkte, die wir
haben,
wechseln , sinnvoll Auch hier haben
wir standardmäßig einen Trefferpunkt. Ich möchte sichergehen, dass
unser Material hier
tatsächlich blau ist, wenn dieser Trefferpunktindex eins ist. Ich möchte, dass es blau ist. Und
wir haben einen Trefferpunkt. Und ich möchte
sichergehen, dass, wenn unser Trefferpunktwert hier zwei ist, wir tatsächlich grün sind. Und ich teile
Grün und ich glaube , das ist die einzige Stelle, an der wir das Material angepasst
haben. Es scheint so zu sein. Okay. Also lass uns weitermachen und das
kompilieren und speichern. Und jetzt werde ich es
ins Spiel bringen. Ich bin jetzt blau, bevor
ich auf diesen Mistkerl stoße. Ich werde diese Feuerblume
hier tatsächlich
sammeln . Ich springe nach oben. Ich bin blau mit einem Trefferpunkt und ich habe zwei Trefferpunkte. Ich bin grün, das ist toll. Lass uns hier auf unsere Goomba treffen. Nichts ändert sich. Offensichtlich ist
das ein Problem. Der Grund für dieses
Problem ist, dass
wir derzeit nicht auf diesen Collider stoßen, diese Stomp-Plattform. Und
aus diesem Blickwinkel ist es schwer zu sehen, aber wenn ich aus der Perspektive unseres
Spielers gehe, können
wir sehen, dass unsere Gumbas hier
etwas von unserer Mittellinie entfernt sind, als wir
unsere Gumba
in unserem Level platziert haben Gumba
in unserem Level platziert Und lassen Sie mich einfach versuchen, eine neue zu
platzieren. Es platziert es derzeit in einer großen Tiefe von minus 63, was nicht das ist, was wir wollten, selbst wenn unsere Snap-Einstellungen aktiviert sind. Ich bin mir nicht sicher, warum ich das mache. Lass mich das einfach löschen. Aber ich werde das auf Null im Y setzen. Auf
diese Weise sollte unser Gumba
unserem Charakter entsprechen Wenn ich jetzt reinspringe und spiele, fangen
wir damit an,
die Feuerblume einzusammeln, Al, richtig? Und lass uns hier auf
unsere Goomba treffen. Ich verliere einen Hüftpunkt und genau genommen sind
wir jetzt tot. Also das scheint
in Ordnung zu sein. Also gut, ich habe alles
aufgeräumt, Leute, das reicht aus diesem Mal sehen, wann der nächste.
59. Zerstöre Goomba über Stomp: Willkommen. In diesem Video ist es
unser Ziel, es so zu gestalten, dass unsere Goomba mit einem Stampfen
zerstört werden kann Lassen Sie uns also gleich loslegen. Ich wähle
hier auf unserer Levelkontrolle unseren Goomba aus,
plus E, um unseren Plan zu öffnen Das erste, was ich tun werde
, ist eine Variable hinzuzufügen. Jetzt wird das eine Integer-Variable
sein , die einen Punktwert
enthalten wird. Also
wähle ich einfach unsere bestehende Gesundheit aus, um Ganzzahlvariable
zu subtrahieren Ich mache Control
plus D, um das zu duplizieren. Und ich werde das einfach Punkte
nennen. Drücken Sie die Eingabetaste. Dann kompiliere ich das und
sage, ein Stampfen oder
Zerstören unserer Guba ist hier im
Detailbereich 200 Punkte wert hier im
Detailbereich 200 Punkte Süß. Als Nächstes möchte
ich hier in unserem Diagramm eine leere Stelle finden. Ich werde etwas
außerhalb von Event Begin Play machen. Also werde ich mit der linken Maustaste auf diese beiden klicken
und die Maus ziehen. Entferne das direkt unter Event Begin Play.
Ich werde mit der rechten Maustaste klicken. Wir werden uns den
Player-Controller besorgen. Und wir werden es hier in die Länge ziehen
und wir werden unseren
BP Player-Controller zum Controller casten. Und der Grund, warum
wir
das tun werden , ist, dass wir
hier zu Beginn des Spiels
einen Verweis auf unseren
Player-Controller erstellen können zu Beginn des Spiels
einen Verweis auf unseren
Player-Controller . Also werde ich einfach
schreiben, klicken Sie auf diesen Pin. Wir werden
das zu einer Variablen heraufstufen. Ich werde den
Namen einfach auf Player Controller abkürzen. Und das reicht
für dieses Drehbuch. Also klicken und ziehen Sie mit der linken Maustaste, tippen Sie auf die C-Taste und ich
nenne das mein
F-to-Player-Controller-Skript und
färbe es schwarz, wie ich es tue. Mein Grund für das Hinzufügen dieser Player-Controller-Referenz ist, dass
wir hier
in
Kürze unser benutzerdefiniertes Ereignis für Werbepunkte
innerhalb unseres Player-Controllers aufrufen möchten Kürze unser benutzerdefiniertes Ereignis für Werbepunkte
innerhalb unseres Player-Controllers aufrufen innerhalb unseres Player-Controllers hier
in Aber zuerst wollen wir uns um die Erstellung unserer Interaktion, unseres Skripts
zum Stoppen der Interaktion,
kümmern Erstellung unserer Interaktion, unseres Skripts
zum Stoppen der Interaktion, Skripts
zum Stoppen der Interaktion Lassen Sie uns dafür zu unserem Viewpoort
zurückkehren ,
damit wir sehen können, womit wir es hier
zu tun haben Wir haben diesen
Stomp Box Collider entwickelt. So haben wir es jedenfalls genannt, es ist direkt auf unserem Goombas-Kopf Und wir nannten es Stomp Box. Das ist eine Boxenkollision
, die wir gerade abgequetscht haben. Wir
klicken mit der rechten Maustaste auf diese Komponente
und fügen dann ein Ereignis
hinzu, und fügen dann ein Ereignis
hinzu wenn wir auf diese Komponente treffen Danach werden wir
zu
unserem Ereignisdiagramm weitergeleitet. Und ich werde das einfach ein bisschen
herunterziehen. Und was wir tun wollen, ist von unserer anderen Schauspielermarke
abzuweichen, wir wollen sichergehen, dass es unser Spielercharakter
ist, der das Zeug hält. Also können wir Gleichwertigkeiten machen
und uns dann vom
Spielercharakter abkoppeln Alternativ
könntest du hier auch einen Cast für deinen
Charakter aus der dritten Person Um das zu überprüfen,
ziehe ich das in die Länge und füge
einen Verzweigungsknoten hinzu. Ich werde die
Bedingung automatisch einschalten. Aber es gibt tatsächlich
zwei Bedingungen , die wir hier überprüfen
wollen. Zu überprüfen, ob es der Spielercharakter
ist , der gestampft hat, ist eine Aber die andere Sache, die wir tun
wollen, ist herauszufinden , in welche Richtung wir diese Stampfkiste
schlagen Wir wollen nur
weitermachen, wenn wir hier
oben auf unserer Stop-Box herunterfallen Dafür können wir unseren Treffer hier
ausbrechen und Break-Hit-Ergebnis
herausziehen. Wir werden das
so nach unten erweitern. Wir werden uns genau hier aus
unserem normalen Aufprallverhalten zurückziehen. Und dann werden wir hier
einen Gleichheitsknotenpunkt für
unsere Toleranz einführen. Sie können das auf
etwas Kleines setzen, wie 0,1. Das ist im Grunde genommen, wie viel
Vergebung Sie
haben möchten, wenn es darum geht, wie
direkt unser
Absinken im Z ist Bei unserem Z wollen wir
überprüfen, ob wir darauf
herunterfallen , anstatt es von unten zu
treffen. Dafür fügen wir einen Wert von minus
Eins hinzu. Ein Wert von negativ Eins prüft , ob
wir auf der Z-Achse nach unten
oder nach oben fallen. Und das ist nur ein
bisschen Vergebung. Das ist also eine zweite Bedingung
, die wir überprüfen
wollen , weil wir
zwei Bedingungen haben , anhand
derer wir überprüfen wollen. Ich klicke mit der rechten Maustaste und füge
ein und Bullull hinzu. Da haben wir's. Und Goldbarren, wenn unser Spieler
das Erste ist , wollen wir überprüfen und prüfen , ob wir ein Top
herunterfallen Das ist die zweite Sache, die
ich überprüfen möchte, ob beide stimmen, das wird unsere
letzte Bedingung sein Wir werden überprüfen, ob
dies und das wahr sind. Was wir dann tun wollen, ist einen Sequenzknoten
einzufügen, die S-Taste
gedrückt zu halten
und mit der linken Maustaste zu klicken. Dadurch erhalten Sie einen Sequenzknoten. Und dann
füge ich noch einen Pin hinzu,
damit wir
unsere kommenden Drehbücher hier organisieren können. Nett und ordentlich, aber
das wird
der erste Teil hier sein .
Okay, ab unserem Null-Pin haben
wir mehrere Dinge
, die wir tun werden. Also werde ich hier ein bisschen
weitermachen. Das erste, was ich tun
werde, ist, hier
wegzuziehen und Play einzutippen. Sound Wir spielen einen Two-D-Sound, und der Sound, den ich
spielen möchte, wird Swish sein Okay, das zweite,
was ich tun möchte, ist unsere
Collider-Komponente zu nehmen Also werde ich
das in unser Diagramm ziehen. Wenn Sie sich nun nicht sicher sind, was
die Collider-Komponente hier in unserem Viewport
ist, ist
es das Ding, das gerade beschädigt
wird Spieler. Wir überprüfen, ob unser Spieler darauf stößt. Und es
reicht tatsächlich ein bisschen über die Seite
unserer Stampbox hier hinaus Wie geplant wollen wir,
dass wir dann unseren
Collider verlassen Wir wollen die
Kollision aktivieren. Es wird eine weitere
Kopie unseres Colliders hier reinbringen Kopie unseres Colliders hier reinbringen Sie können eines davon löschen. Wir wollen
das so ändern, dass es keine Kollision gibt, wir wollen nicht länger
damit kollidieren können Als Nächstes
wollen wir
unsere Stopbox-Komponente einbauen .
Das werden wir mit reinziehen. Wir werden
diese Komponente zerstören . Sobald wir bei unserem Gumbo
angehalten haben, wir weiter und
zerstören einfach die gesamte Stoppbox Wir brauchen es nicht mehr.
Als Nächstes bringen
wir
unser Papier-Klappbuch rein, ziehen den Typen rein und
wir werden
die Weltskala dieses Sets auf Weltskala drei D
einstellen, im Grunde werden
wir das zerquetschen Also, ich habe ein paar
hartbeschichtete Werte ich hier einfach eintippen werde Ich werde diesen Wert auf 0,25 mal
0,25 mal 0,1 setzen Vielleicht passen
wir das
irgendwann in der Zukunft an,
aber wir werden versuchen,
das als unseren Quesh-Wert zu Jetzt wollen
wir unser Flipbook nicht nur
zusammendrücken, sondern es auch in Z-Richtung
nach unten bewegen Denn wenn wir es einfach
zusammendrücken würden,
würde es es sowohl von der oberen als auch von
der unteren Grenze aus zerquetschen Und es würde so aussehen, als würde es im Weltraum
schweben,
was ich nicht will Wir ziehen
hier unser
Papier-Klappbuch ab und fügen Welt-Offset
hinzu. Und wir werden es
auf der Z-Achse ein
wenig nach unten verschieben , wie weit ich bei
einem Z-Wert von minus 35 gehen werde. Auch das können wir anpassen,
aber fangen wir damit an. Dann ist das Letzte, was ich tun
möchte, die Bewegung dieses
Gauners zu
deaktivieren. Im Moment bewegen sich unsere
Gumbas nicht, aber wir werden
unsere Gumba in Kürze hier in
Bewegung bringen . Und ich möchte sicherstellen, dass es sich nicht mehr bewegen kann,
wenn wir
einmal angehalten haben , auch wenn sich unsere Gumbas gerade
nicht bewegen Wir werden es so
machen, dass wir garantieren, dass sie ihre Bewegung gestoppt
haben sobald wir aufhören, wenn sie unsere Bewegungskomponente des
Charakters wegziehen Du findest diese Funktion zum Deaktivieren der Das ist also der erste Teil des Skripts, den wir hier machen wollen Ich werde das alles mit mir
herumschleppen. Linksklick, tippen Sie auf die Taste. Also sage ich aus unserem Null-Pin, das wird unser ME ha ha
squish X sein . Ich färbe
das sofort schwarz Als Nächstes würde ich
gerne unter den damals einen Teil
unserer Sequenz hier fallen. Lassen Sie mich nach oben zoomen,
indem ich die
Strg-Taste gedrückt halte und
das Scrollrad benutze. Ich werde mit der rechten Maustaste klicken. Wir werden Schauspieler holen. Wir werden
hier einige Punktearbeit machen. Wir werden unsere
Schauspielertransformation
verwenden , weil wir rechten Maustaste klicken und Schauspieler aus dem
Unterricht hervorbringen Wir brauchen
unsere Schauspieler-Transformation,
unsere Gumbo-Transformation , um unsere Punkte mitzuteilen,
unsere BP-Punkte zum Spawnen Ihr erinnert euch daran von früher, unsere BP-Punkte sind jetzt wieder
in unserem P-Punkte-Blueprint Ich werde einfach dorthin navigieren
, indem ich danach suche. Hier ist es, unten in unserem
Inhaltsbrowser, BP-Punkte,
wir haben es so gemacht, dass dieser
Hinweis auf das Hinzufügen einer Variablen, die sich hier
befindet, beim Spawn
verfügbar Das macht es
so, dass hier in unserem BP, wenn
wir
das erzeugen, dieser Punktwert
angezeigt wird Damit wir
es hier anpassen können, wo immer wir wollen. In unserem Goomba
wollen wir 200 Punkte hinzufügen. Lassen Sie uns also unsere
Variable per Drag & Drop ziehen, um Punkte hinzuzufügen. Wir passen das einfach so an. Das wird also
das Display ins Spiel bringen. Das ist nur der
Display-Teil. Jetzt müssen wir
die Punkte tatsächlich zu unserem
Player-Controller hinzufügen . Dafür haben wir also unsere
Player-Controller-Referenz. Zieh das rein,
wir werden es bekommen. Dann
ziehen wir das ab und geben Punkte hinzufügen ein. Auch hier haben wir
dieses benutzerdefinierte Ereignis in unserem
Player-Controller namens Punkte hinzufügen. Und hier können wir
auch eingeben, wie viele Punkte
du hinzufügen möchtest? Nun, wir haben eine Variable
dafür, die Sie daraus ziehen und sie
so einfügen könnten und sie
so einfügen , dass sie völlig gültig ist. Ich werde jedoch nur organisatorischen Gründen
eine neue hinzufügen. Also jetzt, wieder
einmal, nachdem wir hier
auf unseren Goomba getrampelt haben
und wir bestätigt haben, dass das stimmt, trampelt
unser Charakter auf ihnen herum, und wir stampfen Wir werden diese Punkte hinzufügen. Und wenn ich genau hier
auf das doppelklicke, dieses Aufrufen der Add Points, bringt uns das
aus unserem BP Goomba zu
dem Punkt, an dem dieses benutzerdefinierte Event tatsächlich in
unserem BP-Player-Controller Hier wird also
das eigentliche Hinzufügen von Punkten stattfinden Und denken Sie
noch einmal daran, dass unser Hud in unserem Hud an diese
Punktevariable hier,
in unseren
Player-Controllern, gebunden ist in unseren
Player-Controllern Das wird also
auch hier in Argumba aktualisiert. Ich klicke mit der linken Maustaste
und ziehe mit der Maus herum. Ich tippe auf die
Taste C und nenne das Meine Sendung“ -Skript „Punkte hinzufügen“ und färbe es schwarz wie meine Seele. In Ordnung, hier noch ein kleines
Skript zum Hinzufügen. Lassen Sie uns unseren Sequenzknoten etwas
weiter nach unten verschieben. Halten Sie die
Steuertaste gedrückt und vergrößern Sie die Ansicht. Mit diesem letzten Teil des Drehbuchs werden
wir
Argumba in aller Pracht vernichten Also werden wir es hier in die
Länge ziehen, wir werden einen Verzögerungsknoten
einbauen Und wir werden es um eine
halbe Sekunde hinauszögern, 0,5 wäre gut. Dann klicken wir mit der rechten
Maustaste und geben Interact ein. Jetzt habe ich diese Funktion
, die wir zu
Beginn des Kurses in
unserer Blueprint-Bibliothek erstellt Beginn des Kurses in
unserer Blueprint-Bibliothek Sie war für
Blockinteraktionen gedacht, aber wir können sie auch hier in
unserem Goomba verwenden . Bringen wir das
einfach rein Es fordert uns auf,
in einigen visuellen Effekten einen Soundeffekt sowie einen
Ort für den visuellen Effekt für unseren Soundeffekt einzufügen. Lassen Sie uns das einfach
so programmieren, dass es eine Explosion wird. Ich benutze die Explosionswarteschlange. Lassen Sie uns auch einfach einen Partikeleffekt fest
programmieren, ich gebe Flame Explode Dieser ist auch im Infinity
Blade Effects Pack enthalten Für unseren V-Effekt-Standort wähle
ich hier den Standort unseres Colliders Und dann werde ich das erledigen
,
sagen wir, den Standort der Welt ermitteln Wir werden die Position
unseres Colliders hier
als Ort verwenden , an dem
wir
in diesen visuellen Effekten spawnen in diesen visuellen Sobald das alles erledigt ist, ziehe
ich das in die Länge und tippe Destroy Actor wie folgt ein Klicken Sie mit der linken Maustaste, ziehen Sie und tippen Sie auf die
Taste, die ich zum Zerstören verwenden sollte. Also los geht's, das auch schwarz
färben. Das wird hier ziemlich gut
aussehen, also lassen Sie uns ein bisschen rauszoomen. Ihr endgültiges Drehbuch wird ungefähr so
aussehen. Lass uns weitermachen und
kompilieren und speichern. Und jetzt wollen wir tatsächlich
überprüfen, ob wir beim Spielen unseres Spiels
auf unserem Gumba herumtrampeln können. Los geht's Okay, offensichtlich
ist der Gumba gerade nicht mobil,
aber wenn er auf ihn herumtrampelt, scheinen
ein paar Hundert zu sein, als ob Guba
zerquetscht wurde. Guba ist gestorben. Dort schien alles wie vorgesehen zu
funktionieren. Außerdem möchte ich nur sichergehen, dass wir, wenn wir auf
die Seite stoßen, zuerst damit kollidieren und sterben, bevor
wir kollidieren und sterben, bevor
wir
die Stampfkiste treffen Wenn wir uns ihm
von der Seite nähern, ja. Sollte einfach so sterben. Aber wenn ich wieder reinspringe und spiele, sollte
ich ihn wieder
aufhalten können. Schau dir an, wie er dort unten
zerquetscht wird und er eine halbe Sekunde lang lebt bevor er völlig zerstört wird So lernen wir den
Quetscheffekt zu schätzen. Hervorragend. Wenn Sie diese
Drehbücher noch einmal ansehen
möchten, werde
ich
jeden Abschnitt hier hervorheben , wenn Sie das Video pausieren
möchten. Das ist ein Gleichheitsknoten, der eine negative Eins gegenüber dem Null-Pin
ist, ohne
dass
der Collider kollidiert Wir verwenden diesen Collider, um
Partikeleffekte
unten zu erzeugen Das ist unser Squish-Soundeffekt. 0,25 0,25 0,1 negativ 35. Und das Z für den Welt-Offset zeigt, dass zusätzliche Punkte zu unseren BP-Punkten
hinzukommen Wir haben unsere
Punktevariable erstellt, um eine Z-Anzahl von Punkten hinzuzufügen
, die derzeit auf 200 festgelegt ist Und dann
spielen wir endlich unsere Destroy-Effekte. Nach einer halben Sekunde
haben wir eine halbe Sekunde. Wir nutzen die Position
unseres Colliders, von dem
aus einen Partikeleffekt und
einen Soundeffekt erzeugen und dann den Schauspieler
zerstören In Ordnung, Leute, das wird für diesen
einen Abklatsch sein. Wir sehen uns im nächsten.
60. Zerstöre Goomba über Fireball: Willkommen. Jetzt, wo wir unsere Goomba zerstören können, indem wir darauf herumtrampeln, machen
wir es so,
dass wir
unsere Goomba zerstören können, indem wir unsere Goomba zerstören können, indem Also
wähle ich meine Gumba genau hier in meiner Viewport-Steuerung aus. Plus E ist ein Hotkey, um das sofort zu
öffnen. Und ich springe zu meinem Viewport-Tab und wähle
meine Collider-Komponente Und lassen Sie mich einfach darauf eingehen. Sie können auch auf die Taste tippen, um
sich darauf zu konzentrieren, nachdem
Sie sie ausgewählt haben. Schauen wir uns
noch einmal zur Erinnerung an, unser Collider
im Komponentenfenster ausgewählt war,
wie wir die Kollision dafür
im
Detailbereich eingerichtet hatten .
Wir haben ihn so eingerichtet, dass dieser
Collider Feuerbälle blockiert Auch hier ist unser Fireball-Blueprint als
Fireball-Objekttyp gekennzeichnet Jetzt haben wir das bewusst gemacht,
damit wir
Treffer erkennen können , wenn Feuerbälle
diesen Collider Wir werden also rechten Maustaste auf unsere
Collider-Komponente klicken Wir werden ein Ereignis für den Fall hinzufügen, dass
eine andere
Komponente darauf trifft Wir werden aus
unserem Viewport in
unser Event-Diagramm gesprungen unserem Viewport in
unser Event-Diagramm Ich klicke mit der rechten Maustaste
und schwenke hier nach unten. Hier ist unsere On-Komponente,
drücken Sie den Collider. Und wir wollen überprüfen
, ob der andere Schauspieler, der das
trifft, unser BP-Feuerball ist Wir werden auf BP-Feuerball werfen,
nicht
auf Feuerbalken-Feuerball nicht
auf Feuerbalken-Feuerball Also sei einfach vorsichtig damit. Dann wollen wir Feuerball auf das Klappern trifft, den Feuerball selbst zerstören Ich werde
meinen BP-Feuerball herunterziehen und sagen, zerstöre den Akteur, der den Feuerball zerstört Und dann werden wir eine
Sequenznotiz hinzufügen. Also werde ich den SK-Linksklick
gedrückt halten. Und wir werden verschiedene
Dinge von unserem Sequenzknoten
aus erledigen. Das Erste, was ich tun
möchte,
ist Punkte hinzuzufügen als ob wir
damit aufhören würden. Also werde ich schummeln
und herkommen und mir all unsere
Zusatzpunkte holen Ich werde einfach mit der linken Maustaste klicken
und das alles herumziehen. Drücken Sie Strg C, ich
werde das kopieren. Dann benutze ich die rechte
Maustaste, um wieder hier runter zu kommen, linken Maustaste genau hier. Und dann drücke V
, um das alles einzufügen. Wickeln Sie dort auch meinen Sequenzknoten
ein. Das wird also eine
kleine Abkürzung sein. diesem Skript gibt es sonst nichts zu ändern
, obwohl ich
den Kommentar einfach so ändern werde , dass
eine Null davor steht. Das ist also das Erste,
was wir tun wollen, ist Punkte zu zeigen und hinzuzufügen. Ich
doppelklicke auf dieses Kabel um den Umleitungsknoten aufzurufen Und das zweite,
was ich tun möchte, und wir können wieder
etwas Code von oben stehlen, ist mein Spiel Destroy Effects Ich will das meiste davon, obwohl ich diese Verzögerung hier nicht machen
möchte. Also wähle ich das alles aus, ich mache Steuerung C, dann werde ich hier mit der linken
Maustaste klicken. Und dann steuere V auf Tempo. Ich werde diese Verzögerung einfach auch
loswerden,
weil ich möchte, dass der Feuerball
sie sofort zerstört Und ich werde auch dieses
Kommentarfeld ändern. An unserem Collider-Standort werden
wir
das Explosionsspiel spielen lassen Dieses Flammenexplosionspartikel. Und dann werden wir
den Schauspieler selbst zerstören ,
also Argumba das alles an seinem Platz ist, werde
ich weitermachen
und kompilieren und speichern Und lass uns einsteigen und
spielen. Los geht's. Ich werde
meine Feuerblumen einsammeln. In Ordnung, und dann einen Feuerball
abfeuern. Und hoffentlich, nun ja,
müssen wir ihn zuerst treffen. Boom geht sofort in
Flammen auf. Das funktioniert also wie beabsichtigt. Hervorragend. Wir haben es jetzt
geschafft, unseren Umba zu
erschießen und ihn erneut
zu vernichten Das ist der erste
Teil unseres Drehbuchs. Wir werfen zum Feuerball. Wir zerstören den Feuerball. Und dann weg von
unserem Sequenzknoten. Hier zeigen wir einige Punkte und
fügen sie hinzu. Noch einmal, diese Funktion zum Hinzufügen von
Punkten. Dadurch wird dieses benutzerdefinierte Ereignis im Player-Controller selbst aufgerufen. Und dann
spielen wir diese Zerstörungseffekte ab. Wir haben den Delay-Node aus dem
Stomp-Skript oben In Ordnung, Leute,
das wird alles für diesen reichen. Wir sehen uns im nächsten.
61. Goomba Patroller (Teil #1): Ordnung, jetzt haben
wir es so, dass unser Goomba uns, dem Spieler, Schaden zufügen kann und wir
den Goomba zerstören Lass uns jetzt unseren
Goomba in unserem Level bewegen. Und wir werden
damit beginnen, ihm
ein grundlegendes Patrouillenverhalten zu geben ein grundlegendes Patrouillenverhalten Und das wird uns wieder dazu zwingen
, in unseren
Goomba-Blueprint Sie können es also auswählen
und eine andere Möglichkeit es zu
öffnen, ist hier in unserem
Outliner, wenn es ausgewählt Gehen Sie zu BP Gumba bearbeiten.
Wir werden
damit beginnen,
einige Variablen
im M-Blueprint-Bedienfeld zu erstellen im Sie also unter dem Variablenbereich
auf diese Plus-Schaltfläche auf diese Plus-Schaltfläche Den ersten Teil nenne
ich Geschwindigkeit. Wir
ändern ihn in einen Float,
und dieser Wert wird verwendet, um zu bestimmen, wie schnell sich unser Goomba bewegen
soll Die zweite Variable, die ich hier erstellen
möchte , wird Flipbook heißen Multiplikator für die Spielgeschwindigkeit. Je nachdem, wie schnell sich unser Goomba bewegen
wird, möchten
wir vielleicht anpassen, wie schnell
unser Flipbook Wir werden also ein
Skript einrichten, sodass wir im Wesentlichen die Geschwindigkeit unseres Goomba
einlesen und die Wiedergabegeschwindigkeit unseres Flipbooks
anpassen , sodass
unser Goomba hier seine Füße entweder schneller oder langsamer
anhalten kann seine Füße entweder schneller oder langsamer
anhalten Und dann füge ich hier
eine weitere Variable hinzu. Das wird Move Left
heißen. Das wird ein Edelmetall sein. Es wird
verwendet werden, um festzustellen, ob wir wollen, dass sich unsere Guba ursprünglich nach links
bewegen, wenn
sie hier zu patrouillieren beginnen Jetzt kompiliere ich,
damit ich
einige Standardwerte setzen kann ,
einige Standardwerte Es gibt tatsächlich
noch ein paar andere Kontrollkästchen , die ich ebenfalls ankreuzen
möchte. Fangen wir mit unserer Geschwindigkeit an. Ich werde das auf
einen Standardwert von 200 setzen, und ich werde auch
dieses Kästchen ankreuzen , zum Beispiel editierbar Wenn ich das
ankreuze, wirst du auch dieses Ballsymbol
sehen, komm schon Sie machen dasselbe machen diese
Variableninstanz
im Grunde bearbeitbar Das bedeutet, dass Sie
nach dem Kompilieren hier in Ihrem Level-Editor einen Goomba ausgewählt haben Sie können diese Eigenschaft jetzt
im Level-Editor sehen. Wenn ich in unserer Standardeinstellung einfach nach der Standardeinstellung suche, werde
ich sie finden. Okay. Es gibt eine Standardgeschwindigkeit. Lass mich einfach da raus. Okay, zurück
zu unserem Gumbo-Blueprint,
unserem Flipbook-Multiplikator für die
Spielgeschwindigkeit Wir werden tatsächlich
berechnen, wie hoch dieser
Wert Es ist also in Ordnung, dass
ich den Wert vorerst bei Null belasse ,
denn durch
ein Skript werden
wir hier standardmäßig einen Wert
haben. Und dann ist unser Zug
nach links boolescher Wert hier. Ich werde sagen, ja, wir
wollen standardmäßig nach links gehen Lassen Sie uns das also überprüfen. Und lassen Sie uns diese
Instanz auch editierbar machen ,
damit diese Eigenschaft
auch im Editor verfügbar ist Fahren Sie fort und kompilieren und speichern Sie. Als Nächstes springen wir zu unserer Registerkarte „
Konstruktionsskript“. Im Konstruktionsskript
können Sie nun
ein Skript einrichten , das Sie während der Entwurfszeit ausführen
möchten. Dies ist nützlich, um
einige Parameter festzulegen, die Sie möglicherweise in
Ihrem Blueprint haben möchten , bevor das
Spiel tatsächlich läuft Und wir werden
es für diesen Zweck verwenden. Das erste, was ich
tun werde, ist, unsere Komponente zur
Charakterbewegung
einzubeziehen . Nun, unsere Komponente zur
Charakterbewegung bestimmt eine Menge Dinge
darüber, wie sich unser Charakter bewegt, einschließlich einer sehr
wichtigen Eigenschaft hier die maximale Gehgeschwindigkeit genannt wird. Dieser Typ hier innerhalb der Komponente für
Charakterbewegungen namens Max Walk Speed bestimmt, wie schnell sich deine
Charakterklasse bewegen kann. Jetzt möchte ich das im Wesentlichen
außer Kraft setzen. Und ich kann das
überschreiben,
indem ich unsere
Charakterbewegungskomponente hineinziehe indem ich unsere
Charakterbewegungskomponente hineinziehe Sobald wir unsere Komponente haben, können wir mit diesen verschiedenen
Eigenschaften in unserem Detailbereich sprechen und sie bearbeiten diesen verschiedenen
Eigenschaften in unserem Detailbereich Also ziehe ich es hier
raus und
tippe die maximale Gehgeschwindigkeit ein. Also los geht's. Zieh dich hier raus. Stellen Sie die maximale Gehgeschwindigkeit ein. Und Sie werden feststellen, dass
unsere maximale Gehgeschwindigkeit ein Gleitkommawert
ist, und wir
werden hier im Wesentlichen
unsere standardmäßige maximale Gehgeschwindigkeit
durch unsere Geschwindigkeitsvariable überschreiben . Also werden wir hier während der Entwurfszeit sagen:
Hey, ich weiß, dass du diese
Standard-Gehgeschwindigkeit von 600 hast. Aber oh ja, bevor das Spiel überhaupt läuft, werden wir
das überschreiben. Wir werden
deine Geschwindigkeit so ändern, dass sie dem entspricht, was in dieser
Float-Variablen enthalten
ist. In Ordnung. Ich habe bereits erwähnt, dass wir diesen
Flipbook-Spielraten-Multiplikator hier in
diesem Konstruktionsskript
verwenden werden , und wir werden diesen Wert automatisch
berechnen Nun, wir werden
das so machen, dass wir unsere
maximale Gehgeschwindigkeit überschreiten, und wir werden teilen und wir werden
durch 100 teilen 100? Nun, das liegt daran dass
es ein Wert ist, den ich im Voraus
bestimmt habe und der ziemlich gut
ausgearbeitet ist. Und wir werden
das Ergebnis daraus nehmen und es eingrenzen. Wir werden Clamp Float machen. Wir werden sicherstellen
, dass der Wert, der mit dieser Mathematik
ausgegeben wird,
immer
zwischen 0,1 und
maximal drei liegt . Und das werden wir in unseren
Flipbook-Spielraten-Multiplikator einbinden Ziehen Sie das per Drag-and-Drop
in Ihr Diagramm. Wir wollen das einstellen. Hier werden
wir also unseren
Flipbook-Spielraten-Multiplikator
festlegen Ich habe erwähnt, dass es nicht bei einem Wert von Null bleiben würde
. Das Ergebnis dieser Berechnung werden
wir also als unseren Flipbook-Multiplikator für die Wiedergabegeschwindigkeit verwenden Wenn wir also diesen Wert nehmen,
unseren Geschwindigkeitswert von 200,
und ihn durch 100 teilen würden , würde
das in diesem Bereich liegen Das wäre also unser
Flipbook-Multiplikator für die Spielgeschwindigkeit.
62. Goomba Patroller (Teil #2): Jetzt haben wir
unseren Flipbook-Multiplikator für die
Playrate berechnet , aber wir
verwenden ihn noch nicht wirklich und dafür müssen wir zu unserem Event-Graph
springen Im Rahmen
unserer Event-Analyse werden
wir nun ein Skript hinzufügen, das erkennt
,
wann sich unser Spieler in Reichweite befindet Wir werden
unseren Spieler nur dann mit der
Patrouille beginnen lassen, wenn er sich in Reichweite befindet Lassen Sie mich jetzt zu
unserem Viewport hier gehen. Ich werde
hier ein bisschen weitermachen und ich
habe diesen riesigen Radius
um meine Guba Ich nenne das unsere
Spielererkennungsreichweite. Das
werden wir also verwenden, um zu
erkennen, ob sich der
Spielercharakter in Reichweite befindet. Wenn sie in Reichweite sind, werden
wir den
Kerl in Bewegung bringen. Machen wir also weiter und
klicken mit der rechten Maustaste auf unseren Player
Detect Range. Wir werden ein Ereignis hinzufügen, für den Fall , dass sich dieser Bereich überschneidet. Es wird uns zu unserem Ereignisdiagramm weiterleiten, was großartig ist. Und wo wir schon mal
hier sind, lassen Sie uns auch
gleich
ein Ende der Überschneidung hinzufügen. Klicken Sie mit der rechten Maustaste auf die Erkennungsreichweite Ihres
Spielers. Wir werden ein
Ereignis für die Endüberlappung hinzufügen. Dazu werden wir feststellen
, ob es
unser Spieler ist ,
der die Überlappung durchführt oder die Überlappung beendet Also kann ich mit der rechten Maustaste klicken, Spielercharakter zu bekommen Wenn unser anderer Schauspieler dem Spielercharakter
entspricht, könntest
du hier alternativ auch einen Charakter aus der zweiten dritten
Person spielen. Das ist nur die Methode
, mit der ich überprüfe
, ob es sich um unseren
spielbaren Charakter handelt Ich werde
diese Kontrolle D duplizieren, um den anderen Akt zu duplizieren Also werde ich zwei Notizen zu den
Filialen hinzufügen, indem ich B gedrückt halte, Linksklick, Linksklick usw. Also werden wir sagen, dass, wenn es
stimmt , dass sich unser
Spielercharakter überschneidet, dieser Spieler die Reichweite erkennt Wir werden das
im Grunde an einen Gate-Knoten anschließen. Um das Tor zu öffnen, werden
wir im Grunde in jedem Frame überprüfen , ob sich unser Spieler
in diesem Bereich befindet oder nicht. Dafür benötigen wir
einen Tick-Knoten. Wenn ich Click in
ein leeres Feld schreibe, füge
ich ein
Tick-Node-Event Tick ein, das
jeden einzelnen Frame auslöst. Und dann schreibe ich click in leeres Feld und füge
einen Gate-Knoten hinzu. Wenn Sie die G-Taste
gedrückt halten
und mit der linken Maustaste klicken, wird
sogar ein Gate-Knoten angezeigt. Bei jedem Frame,
den wir durch unser Tor betreten, können
Sie sich dieses Tor
wie ein echtes Eisentor vorstellen. Und du wirst hier an
diesem Tor eine Pause einlegen , bis dir gesagt
wird, dass das Tor offen sein soll. Jetzt öffnen wir
dieses Tor und kommen somit nur dann
über diesen Punkt hinaus, wenn unser Spieler die Erkennungsreichweite
dieses Spielers überschneidet Wir werden dieses Tor jedoch schließen
, wenn
unser Spieler diesen Bereich nicht mehr
überlappt Du siehst, wie
das funktionieren wird. Bei jedem Frame sind wir
quasi am Gate. Wir werden hier aber nicht weiterkommen
,
es sei denn, unsere Spieler überschneiden
sich in der Erkennungsreichweite. Und wir werden über dieses Tor hinaus
vorrücken. Wenn wir den Erkennungsbereich
überlappt
haben, werden wir das Tor schließen Das heißt, wir werden nicht
weiter
kommen, wenn wir diesen Bereich nicht mehr
überlappen Was wollen wir also tun, wenn wir hier
das Tor überschreiten? Nun, wir wollen mit der rechten
Maustaste klicken und wir werden Bewegungseingaben hinzufügen. Dieser Knoten, der
auf unseren Bauern abzielt, was ein Charakter ist, kann
unseren Charakter automatisch hierher bewegen Nun, in welche Richtung wollen
wir sie bewegen? Nun, wir werden eine Richtung
wählen, in der wir unsere Guba hierher
bewegen wollen ,
links oder rechts,
je nachdem, in welcher
Goldbarren es sich genau Jetzt ziehen wir den Goldbarren aus
unserer Bewegung nach links heraus und bringen einen ausgewählten Knoten
genau Je nachdem, wie hoch unser
Rückgabewert hier ist. Wir werden hier einen Rückzieher
von unserer Weltrichtung machen. Das sind die Vektoren X, Y und Z. Wir werden in der
Lage sein,
anhand unseres Goldbarrens anzugeben, wie hoch unser Rückgabewert ist Wenn das wahr ist, setzen
wir unseren
X-Wert auf einen negativen Wert Im Grunde
wird sich das im Level-Editor
nach links
in diese Richtung bewegen . Wenn Sie sich jedoch nach links bewegen dieser Boolesche Wert falsch ist, geben wir dies als
unsere Weltrichtung setzen den X-Wert auf Sie sehen, wie
das hier funktioniert,
abhängig vom Wert dieses Booleschen
Werts Wenn das stimmt, werden wir diese
Werte als unsere globale Richtung ausgeben,
um unseren Goomba
hierher zu verschieben Wenn das falsch ist, werden
wir
diesen Parametersatz
als unsere Weltrichtung wählen diesen Parametersatz
als unsere Weltrichtung Hier liegt noch ein bisschen mehr vor
uns, wir müssen es nur jetzt tun. Bringen Sie unser
Flipbook, die Spielrate, Multiplikator
und ziehen Sie das per Drag-and-Drop rein werden wir uns holen
. Und auch unsere
Papierflipbook-Komponente selbst. Lassen Sie uns unser Flipbook
aus Papier hineinziehen. Jetzt ziehen wir unser Flipbook
ab und sagen „Spielgeschwindigkeit festlegen“. Wie hoch ist die Geschwindigkeit, mit der wir unser Papier-Klappbuch haben
wollen? Das ist nur für den
visuellen Aspekt selbst. Nun, wir wollen es hier
in diesem Tempo spielen. Nochmals, das alles wird hier in unserem
Konstruktionsskript automatisch berechnet. Wenn wir die Geschwindigkeit
unseres Goomba auf sagen wir 300
erhöhen würden, wäre
es 300/100, was
drei wären Unser
Multiplikator für die Flip-Play-Rate würde erhöht, um unserer gestiegenen Geschwindigkeit
Rechnung zu tragen Das wird
unser Drehbuch sein, um die Guba in
eine bestimmte Richtung
zu bewegen Ich werde mit der linken Maustaste darauf klicken und mit der Maus auf die C-Taste ziehen Und ich werde das meine Bomba nennen. In einer bestimmten Richtung nur, wenn der Spieler in Reichweite ist, dann färbe ich das schwarz Es ist okay getroffen. Jetzt werde ich hier
kompilieren, nur um
sicherzugehen , dass unser Skript gut aussieht. Und das ist es auch, ich werde
auf Speichern klicken. Wenn du meine Einstellungen
hier im Level siehst, überarbeite
ich die Dinge zwischen den
Videos nur
ein wenig , um die
Länge dieses Videos zu verkürzen Ich habe meinen Player-Startdarsteller hier
weit nach links gestellt. Ich habe gerade
mein Level etwas erhöht und sie
außerhalb der Reichweite gebracht. Guba hier. Goombas Detect
Range ist genau hier Schauen wir uns jetzt das
Detailfenster an. Wenn ich Standard in den Suchbereich
eintippe, scrolle ich
jetzt weiter nach unten. Und hier ganz unten kannst
du sehen, dass mein
Geschwindigkeitswert auf
200 eingestellt ist und meine Bewegung nach links markiert ist. Sobald mein Spieler diesen Radius
überschneidet, sollte
er anfangen, sich nach links zu bewegen Damit wird es noch
ein Problem geben, aber lassen Sie uns weitermachen und
loslegen und es ausprobieren Also gut, in meinem Level
werde ich
diesen Bereich überschneiden. Hier kommt Mr. Gumba Nun, das Problem, das
Sie
hier feststellen werden , ist, dass er keine Möglichkeit
hat, umzukehren Er wird sich einfach weiter nach
links bewegen , bis er von der Klippe
fällt. Gibt es eine Möglichkeit, ihn
dazu zu bringen, dass er sich nach rechts bewegt? Nun, das gibt es tatsächlich. Wir werden zurück zu unserem
Goomba-Blueprint springen. Und wir werden das tun, indem
wir erkennen, ob unser
Goomba Und wenn sie etwas treffen,
während sie sich nach links bewegen, schießen
wir sie einfach in
die andere Richtung ab , indem wir diese Bewegung nach links
umschalten Dafür werden wir hier in unserem
Event-Graph ein wenig
weiter nach unten scrollen hier in unserem
Event-Graph ein wenig
weiter Und wir werden kommen und
uns unsere Kapselkomponente
ganz oben holen . Lassen Sie mich einfach zu
meinem Standpunkt springen, damit Sie sehen
können, wo sich unsere
Kapselkomponente befindet Ich
klicke hier mit der rechten Maustaste hinein und tippe auf die Taste, um darauf zu springen Also werden wir
diese Komponente genau hier verwenden, wir werden
einen Treffer bei diesem Typen erkennen. Wissenswertes: Zusätzlich
zum Klicken mit der rechten Maustaste und Hinzufügen eines Ereignisses über das Rechtsklick-Menü, bei dem
eine Komponente ausgewählt ist. Sie können im Detailbereich auch
ganz nach unten ziehen. Und eine
Liste der Veranstaltungen finden Sie hier. Ich suche eine
Komponente, klicken Sie hier,
klicken Sie auf diese Plus-Schaltfläche und
schon bin ich hier. Also werde ich meinen Treffer hier veröffentlichen. Steuerung gedrückt halten, nach oben
zoomen, wegziehen. Wir werden unser
Erfolgsergebnis knacken. Erweitere das. Wir werden unseren
Impact hier normal einsetzen. Ziehen Sie diesen Typ mit
dem Gleichheitszeichen weg. Wir werden hier ein
bisschen Toleranz hinzufügen. Wir machen 0,1
und wir werden sagen , wenn wir etwas
in dieser Richtung beeinflussen, setze
ich
unseren X-Wert auf 1,0. Dann ziehen wir davon ab und stecken
das Ganze in einen Verzweigungsknoten. Aber ich möchte auch
sicherstellen, dass wir das nur
einmal machen , damit nicht mehrere Treffer
registriert werden. Ich werde die Taste gedrückt halten und mit
der linken Maustaste klicken. Und wir werden sagen, wenn unser Goomba hier auf etwas
trifft, während wir einmal umschalten oder
nach links bewegen, es hineinziehen, werden
wir es einstellen Ich werde tatsächlich sofort ein Duplikat
davon reinbringen , weil unser Setup so aussehen
wird Ich werde hier auch einen
Flip-Flop-Knoten einbauen. Flipflop. Und wir werden so gehen, wir werden so gehen Und ich werde das
gleich hier
für euch alle übersetzen . Stellen Sie sicher, dass Sie mit der unteren Bewegung nach links dieses Kästchen ankreuzen Lassen Sie dieses Feld ganz oben stehen, ohne
das Häkchen zu setzen. Danach werden
wir einen Delay-Knoten einbauen. Also werde ich die Taste
gedrückt halten und mit der linken Maustaste klicken, um eine Verzögerung einzuleiten. Wir werden
beide hier einstecken. Ich werde eine Verzögerung
von sagen wir einer halben Sekunde haben. Wir werden sagen,
nach einer halben Sekunde wir das Ganze dann einmal
zurücksetzen. Und ich hasse diese
sich kreuzenden Kabel, also werde ich einfach ein paar
Mal darauf
doppelklicken , um das zu lösen Wir werden so immer wieder rauf gehen. Das wird im Grunde
unser Drehbuch sein , mit dem
wir unseren Zug nach links umschalten können. Eines
habe ich hier vergessen .
Unser Aufprall Ich schneide einfach
diesen Draht ab, halte die Alt-Taste gedrückt und klicke mit der linken Maustaste Ich möchte hier den
absoluten Wert ermitteln. Ziehen Sie bei normalem Aufprall ab, wir geben den
Vektor ein und erhalten Bauchmuskeln. Wir nehmen das
Ergebnis und
stecken es in den oberen Bereich,
also egal in welche
Richtung wir gehen, links oder rechts,
wir erhalten
den absoluten Wert der
normalen Wirkung. Wir werden sagen, hey, entspricht
das dem x-Wert von eins? Wenn das beim ersten Mal stimmt, werden
wir beim zweiten Mal „Nach links
bewegen“ überprüfen und dann um eine
halbe Sekunde warten. Wir werden das zurücksetzen.
Dann haben sie es wieder getroffen. Wir werden es wieder einschalten. Schlag wieder auf etwas anderes.
Wir werden es ausschalten. Schlagen Sie erneut auf etwas, schalten Sie
es wieder ein usw. Ich klicke mit der linken Maustaste und ziehe mit der Maus herum, tippe auf die C-Taste.
Das wird
als meine Erkennung bezeichnet, dass Goomba etwas
trifft, und ändere dann die
Richtung, wenn Ordnung, lassen Sie uns das schwarz
einfärben und das dann testen Kompilieren und
speichern Um das zu testen, ziehe
ich einfach einen Block hinein. Es kann hier ein beliebiger Block sein, aber ich mache einfach einen
Block, der zerbrechlich Ich tippe auf die Taste, um es
auf den Boden zu legen. Und ich werde es sogar ein bisschen nach
oben bewegen, damit es nicht durch
den Boden ragt. Da haben wir's. Ordnung. Reinspringen
und spielen. Ich befinde mich derzeit nicht
im Erkennungsbereich. Es bewegt sich nach links. Es
wird diesen Block treffen, es wird
ihn sofort abschießen. Mal sehen, ob es unsere Guba tatsächlich in
die andere Richtung zurückbringt Ich werde meine Guba einfach ein
bisschen mehr in diese Richtung bewegen. Geh mir ein
bisschen aus dem Weg und ich werde gleich dort
einen zweiten reinbringen Los geht's. Im
Sezierbereich trifft
Goma auf einen Block, geht in die andere Richtung, trifft einen Block, geht in die
andere Das wird also
eine ganz einfache Patrouille. Und auch hier können wir unsere Gumba
anpassen, indem wir festlegen, was ihre Standardrichtung sein
soll Ich habe meinen Gumba ausgewählt und hier
nur die Standardeinstellung eingegeben, um meine angezeigten Parameter zu
sehen Ich werde die
Geschwindigkeit dieses Mal auf 300 ändern. Und ich werde sagen, dass ich diesmal
nicht möchte, dass sie sich nach links bewegen Sobald
ich diesen Bereich überschneide, wird
er sich
tatsächlich nach rechts bewegen. Also lass uns weitermachen
und uns
schnell ein Spiel geben . Wir haben
angefangen, uns nach rechts zu bewegen. Wie Sie sehen können, bewegt
er sich schneller, sein Flipbook bewegt sich schneller. Und so haben wir hochgradig
anpassbare Gumbas, Sie können diese
Werte für jeden Fall ändern Ordnung Leute,
das wird
alles für unseren Gumba-Patrouillen erledigen alles für unseren Gumba-Patrouillen Wir sehen uns alle
im nächsten Video.
63. Goomba Seeker: Willkommen zurück. Nun, wir haben einen Goomba, der in unserem Level
patrouillieren kann Lasst uns eine Version machen , die etwas
aggressiver ist,
eine, die unseren Spieler
ausfindig machen kann Um das zu tun,
werden wir wieder
in unseren BP Goomba eintauchen in unseren BP Goomba Machen Sie weiter und
doppelklicken Sie darauf. Wir beginnen damit,
eine weitere Variable drüben im
Variablenbereich zu erstellen . Wenn wir auf diese Plus-Schaltfläche
klicken, auf diese Plus-Schaltfläche
klicken, werde
ich eine erstellen,
die Seeker Enemy ist Ich werde sofort kompilieren und diese
Instanz editierbar machen,
was bedeutet, dass ich das anpassen kann wenn wir unseren
Goomba im Level haben Und ich werde auch sagen
, dass es
standardmäßig kein
geheimer Feind ist Wir werden es standardmäßig als
Patrouille haben. Aber wenn wir das zu einem heimlichen Feind machen wollen, können
wir das mit dieser jetzt erstellten
booleschen Variablen tun Wir können hier auf unser
bestehendes Skript zurückgreifen. Und wir werden
hier oben einfach
ein Skript hinzufügen , um diese Variable auszuwerten. Also halte ich die
Strg-Taste gedrückt und
klicke mit der linken Maustaste und wir ziehen
das hier hinein. Und dann ziehe ich
es von hier raus
und stecke das in
einen Zweigknoten. Und wir werden unseren Spielfluss
aus diesem Tor
so
anpassen , dass
wir, anstatt unseren Spieler
automatisch
patrouillenweise
nach links oder rechts zu bewegen , unseren Spieler
automatisch
patrouillenweise
nach links oder rechts zu bewegen, abwägen, ob das ein suchender Feind
ist? das ein suchender Feind
ist Wenn es falsch ist, dass es sich nicht um einen suchenden Feind
handelt, machen
wir einfach die Patrouillenbewegung Wenn es jedoch wahr ist
, werden wir mit rechten Maustaste
in eine leere Stelle klicken Wir holen uns den Controller, den Bauern, den Controller Wir werden hier auch mit der
rechten Maustaste klicken und den
Spielercharakter aus
unserem Controller holen . Ich ziehe die Maus raus und
tippe einen einfachen Zug zum Schauspieler ein. Wen wollen wir hier
kontrollieren? Der Controller
unseres Goomba hier, das wird
unser Controller sein und das Ziel ist unser
Spielercharakter Anstatt
in einige Verhaltensbäume einzutauchen, was der richtige Weg ist um Feinde in deinem Level
zu bewegen, ist
das ein wirklich einfaches
Mittel, um eine wirklich einfache
KI zu
haben , wenn du Wir sagen, wenn es sich um
einen heimlichen Feind handelt, bewegen
wir einfach
unseren Gauner hierher, um unseren Spieler ins
Visier zu nehmen Das wird das Ziel sein.
Das ist einfach genug. Etwas anderes, was wir hier tun
wollen, ist, unter
die Standardklasse unserer Gumba zu fallen die Standardklasse unserer Gumba Wir werden das hier ein wenig erweitern Wir werden
Controller eingeben und das
Häkchen entfernen, verwenden Controller-Rotation ja Wenn das angekreuzt ist,
würde im Grunde genommen
Folgendes passieren: Wenn
unser Gumba auf würde im Grunde genommen
Folgendes passieren: Wenn einen Sucher eingestellt
wäre, würde
er sich umdrehen und
versuchen, hinter dir her zu gehen Wir wollen nicht, dass sich unser Goomba in irgendeiner
Weise dreht. Wir wollen, dass sie sich orientieren und quasi in die Kamera schauen Indem wir das Häkchen entfernen, wir
im Grunde sicher, dass wir unseren Charakter überhaupt nicht rotieren Wenn wir nun versuchen würden, das
Ganze zu testen, indem wir kompilieren,
speichern und
in unserem
Level-Editor sagen würden, dass Argumba hier eine feindliche
Sucher-Notiz ist, suche
ich nach Der Grund, warum all diese Variablen standardmäßig
existieren,
ist übrigens, dass all diese Variablen, die so eingestellt sind
, dass sie von ist übrigens, dass all diese Variablen, die so eingestellt sind
, dass sie Instanzen bearbeitet werden können Lassen Sie mich das
Detailfenster hier leeren Die darin enthaltene Kategorie
wird Standard genannt. Ich setze es
auf einen Suchenden Feind. Dabei macht diese
ganze Bewegung nach links eigentlich
gar nichts,
es ist nicht wirklich wichtig Überlegen Sie sich das, schneiden Sie ab. Was wir
jetzt tun werden, ist das zu testen. Und sobald sich mein
Spieler überschneidet, wird
die Guba angeblich
nach meinem Spieler suchen meinem Spieler Sie werden zwar ein Problem
feststellen, aber hey, ich scheine in Reichweite zu sein aber Gumba ist nicht hinter mir her.
Was ist los? Nun, damit
dieser einfache Wechsel zum Akteurknoten funktioniert, müssen
wir unserem Level
etwas hinzufügen, das
als Navigationsnetz bekannt ist. Um das zu tun, müssen
wir zurück zu
unserem Level-Editor hier und
im Panel Place Actors springen . Und wenn Sie das Panel „Schauspieler
platzieren“ nicht aktiviert haben, können
Sie es aufrufen, indem Sie hierher kommen, Bedienfeld „Schauspieler platzieren“
auswählen und Navi eingeben. Wir möchten
ein
sogenanntes Nav-Mesh-Bounds-Volumen hinzufügen ein
sogenanntes Nav-Mesh-Bounds-Volumen Und das macht
im Grunde genommen einen Bereich des Raums, in dem du
Feinde wie Argumba haben kannst, in dem sie navigieren können Sobald du das reingebracht hast,
wird es ziemlich klein sein. Ich werde das viel
größer machen, als es sein muss. Und das kann ich tun, indem ich
es im Detailbereich auswähle. Und ich möchte meine
Pinseleinstellungen hier finden. Wo ich eine Größe
dieses bestimmten Volumens definieren kann. Ich werde
das riesig machen in meinem, ich werde das zu
40.000 machen, etwas Riesiges wie das. Viel größer als ich
hätte sein müssen, um diesen ganzen Landstrich abzudecken. Ich werde den Y-Wert
hier so einstellen , dass er viel
breiter ist als nötig Also werde ich ihn auf
etwa 2000 setzen. Und ich werde das
Z auf
etwa 5.000 setzen , falls ich
dieses Level vertikal aufbaue, etwas Riesiges wie dieses. Es erstreckt sich im Wesentlichen über
meinen gesamten Spielbereich hier. Um nun
tatsächlich zu sehen, wo sich dieses
Navigationsnetz erstreckt, können
Sie wie in Paul auf die
Taste P tippen. Und alles, was
hier grün ist, wird im Grunde als Raum
identifiziert
, durch den navigiert werden kann Die Taste kann
das ein- oder ausschalten. Wenn Sie hier auf die Option
Anzeigen klicken, können
Sie außerdem sehen, ob die Navigation durch diese Taste ein- oder ausgeblendet
wird Sie können es auch
mit dieser Methode ein- oder ausschalten. Möglicherweise sind Ihnen jetzt einige
Bereiche aufgefallen, die nicht von unserem grünen
Navigationsnetz
abgedeckt werden. Zum Beispiel rund um unsere Blöcke auf dem Boden und sogar
um die Goomba selbst, diese bezeichnen Bereiche,
in die unser Feind,
unsere Guba hier, unsere Guba hier, Ich möchte
diesen Raum etwas enger machen, also habe ich hier in meiner Goomba
einen kleinen Trick. Lassen Sie uns hier wieder in
unsere Goomba eintauchen. Und ich werde
vier verschiedene Komponenten auswählen. Und ich gehe hier zu meinem
Viewport, damit Sie sehen
können, welche
Komponenten das sind Ich wähle meine
Kapselkomponente aus und halte dann
die Steuertaste
gedrückt
und lasse meinen Player die Reichweite, meinen Collider und
meine Stoppbox erkennen Collider und
meine Stoppbox Alle vier, das sind
verschiedene Kollisionsvolumen. Dann werde
ich im Detailbereich für
immer eine Suche durchführen. Ich habe dieses Kontrollkästchen
für die Navigation mit dem Effekt N ever effect. Ich möchte das Häkchen entfernen. Wenn ich das jetzt speichere und zu meinem Level
zurückkehre, kannst
du sehen, dass dieser
Raum unter unserer Gumba enger geworden
ist unter unserer Dadurch ist es
so, dass unser
Gumba, wenn er sich hin und her bewegt, nicht in
einem Bereich aufhört, in dem er ursprünglich
angefangen hat. Alles klar? Also bei all dem, stell
sicher, dass du
deinen Gumba
in deinem Level ausgewählt hast deinen Gumba
in deinem Level ausgewählt In Ihren Standardparametern hier, die Sie dem
Editor zugänglich gemacht haben Sie haben überprüft
, ob es sich um einen Sucher handelt. Beachten Sie, dass
dieser Zug nach links nicht
wirklich wichtig ist, wenn es sich um einen Sucher dieser Zug nach links nicht
wirklich Ich werde reinspringen und spielen. Wenn sich mein Charakter bei der Erkennungsreichweite
überschneidet, sucht
Argumba jetzt danach Der Spieler sieht im Moment nicht
viel anders aus, aber du merkst, dass er sehr
aggressiv
ist , wenn er nach mir sucht Selbst wenn ich herkomme, wirst
du mich auch aufsuchen. Jetzt werden Sie feststellen, dass er im Grunde anhält und sich im Handumdrehen bewegt. Und das liegt daran, dass
wir
in Argumbascript im Grunde
jedes Häkchen auswerten, wir
in Argumbascript im Grunde
jedes Häkchen auswerten ob es sich um einen geheimen Feind handelt oder
nicht Und wenn das stimmt, gehen wir
zu unserem Spielercharakter über. Wenn ihr nicht wollt, dass es
ganz so aggressiv wird, könntet ihr Standardwerte eurer Klasse unterschreiten Lassen Sie uns unsere
Suche nach dem Ken für immer beenden. Und du kannst
deine Tickrate anpassen. Aktuell tickt das. Das wird bei jedem Frame ausgelöst. Aber Sie könnten das
auf etwa 0,25 setzen , also jede
Viertelsekunde Jetzt musst du
vorsichtig damit sein. Und ich zeige dir ein Problem,
wenn du diesen Weg gehst. Denn im Moment legen wir
unser Tick-Intervall für
alle unsere Goombas hier auf
eine Viertelsekunde Wenn ich jetzt in ein Spiel
einspringen würde, könnte
das dazu führen, dass sich unser suchender Feind etwas
realistischer
bewegt, sodass er unseren Spieler nicht
auf einmal
verfolgt, wenn Sie so wollen Da gibt es eine kleine
Pause. Allerdings. Das Problem dabei ist wenn du gehst und deine Gumba
machst,
kein Sucher, und dann
springst du hinein und Jetzt ist es nur noch ein
regulärer Patrouillenfahrer, er wird sich nicht besonders gut
bewegen Ich empfehle entweder,
deine Tickrate hier nicht in der Standardeinstellung deiner
Gumba anzupassen ,
oder wenn du eine Sekumba
haben willst, die ein
modifizierteres Tick-Intervall
hat, vielleicht eine halbe Sekunde,
vielleicht jede Sekunde, dann
erstellst du ein Duplikat
dieses Goumbas, das einzig und
allein darauf
ausgerichtet ist, ein Suchender zu sein und überhaupt kein Patrouillenfahrer Auf diese Weise können Sie dafür eine modifiziertere
Tickrate festlegen. Damit können Sie weitermachen
und kompilieren und speichern, und Leute, das wird
alles für die
Erstellung einer
Seeker-Version unseres Goomba tun Erstellung einer
Seeker-Version unseres Goomba Hier. Wir sehen uns
alle im nächsten Video.
64. Warp-Pipe-Blueprint: Willkommen. Im Laufe
der nächsten Videos werden
wir
daran arbeiten, einen Entwurf für ein Warp-Rohr
zusammenzustellen Entwurf für ein Warp-Rohr
zusammenzustellen Und dieser Plan wird
in hohem Maße anpassbar sein , da wir
festlegen können wie hoch wir unsere Pfeife bauen
wollen, wir werden festlegen können
, wohin wir Wir werden in der
Lage sein, mit
der Leitung zu interagieren, die durch sie hinuntergeht Und zusätzlich werden
wir in der Lage sein,
mit dieser Leitung zu interagieren , indem wir auch durch sie
hinaufgehen. Um nun wieder mit
unserer Arbeitsversion
des Projekts zu beginnen , werden
wir nur das grüne Material erstellen, das auf
unsere Pfeife
kommen soll, sowie den Plan
für
die Schauspielerklasse für die Pfeife selbst zusammenstellen Plan
für
die Schauspielerklasse für die Pfeife selbst Abschließend fügen wir die für diese Leitung
erforderlichen Komponenten
hinzu und legen
die Details dafür fest Und so weit
werden wir in diesem Fall kommen. das grüne Material zu erstellen, fange
ich zunächst hier in meinem
Materialordner für die Inhaltsplattform an. Ich klicke mit der rechten Maustaste
in eine leere Stelle. Wir werden
ein brandneues Material erstellen. Ich nenne das
M, Underscore Green. Und dann werde ich einfach
die
Leertaste drücken , um es zu öffnen Das wird ein wirklich
grundlegendes Material sein. Der erste Knoten, den
ich
hinzufügen möchte, wird als
konstanter Knoten mit drei Knoten bezeichnet. Wir können einen
davon erhalten, indem wir die Drei-Taste
gedrückt halten und mit der linken Maustaste klicken. Auf diese
Weise können wir uns genau
hier mit
unserem Master-Material-Node verbinden und ihm eine Grundfarbe geben. dieser Knoten im
Detailbereich ausgewählt ist, können
Sie einen R-, G-,
B-Wert festlegen , d. h. einen Rot-,
Grün- oder Blauwert. Sie können
diesen Farbwähler
hier wählen , um eine Farbe auszuwählen Ich werde jedoch nur einen grünen Wert von eins
festlegen. Drücken Sie die Eingabetaste. Das
ist eine matte grüne Farbe, und ich möchte, dass meine Farbe
etwas metallischer aussieht. Wir haben diese metallische Eingabe auf dem Master-Materialknoten, und wenn wir einen Wert 0-1 eingeben, können wir angeben, wie
metallisch das sein soll Dazu füge ich einen konstanten Knoten
hinzu, indem ich die eine Taste
gedrückt halte und mit der
linken Maustaste einen davon
hinzufügen kann Ich werde das an den metallischen Eingang anschließen. Hier in diesem Knoten werde ich
den Wert eins angeben. Und Sie können
in der Vorschau hier sehen, dass es ein
bisschen metallischer aussieht Jetzt möchte ich auch
die Rauheit ändern ,
um diesen Effekt zu verstärken die eine Taste erneut gedrückt halte, klicke
ich mit der linken Maustaste und setze diesen Wert
in die Rauheit Und wenn Sie den Wert Null eingeben,
können Sie sehen, dass
wir es superglatt und somit
superglänzend und reflektierend gemacht haben superglatt und somit
superglänzend und reflektierend Ich möchte nicht, dass es
so reflektierend ist, also setze ich
den Wert hier stattdessen auf 0,5, etwas grob Das wird genau das Aussehen
unserer Pfeife sein. Grün. Ein Wert von
eins für metallisch, ein Wert von 0,5 für die Rauheit. Lass uns weitermachen und
das speichern und dann können wir hier
schließen Als Nächstes wähle ich
unseren Blueprints-Ordner unten
im Inhaltsbrowser Und wir werden
unseren War Pipe-Blueprint erstellen, indem wir
einfach mit der rechten Maustaste in eine Blueprint-Klasse mit
leerem Raum klicken Das wird ein Plan für
Schauspielerklasse sein. Ich werde das BP
Underscore Warp Pipe nennen. Dann
doppelklicke ich darauf, um es zu öffnen. Hier werde ich
alle notwendigen Komponenten hinzufügen . Und dann gehe
ich zurück und lege die Details für
jeden Teil fest. die Komponenten hinzufügen, achten Sie auf die
Beziehung zwischen den einzelnen Komponenten
, denn das wird wichtig sein Ich werde meinen
Standard-Szenenwurzel hier draußen lassen. Das ist dieses Symbol genau hier. Alle Komponenten, die
ich hinzufügen
werde , werden daran angehängt. Das erste, das ich
hinzufügen werde, wird
als instanziertes statisches Netz bezeichnet , nicht das hierarchische,
das instanzstatische Und ich werde diesen einen
Körper nennen. Damit legen
wir nun
ein statisches Netz fest , das eine zylindrische Form haben wird
. Und wir werden Abschnitte
davon per Skript hinzufügen. Je nachdem, wie groß
oder stumpf unsere Pfeife sein soll. Noch einmal, ich werde
diese Details später hinzufügen. Die zweite Komponente
, die ich hinzufügen möchte, möchte
ich auch zu
unserem Standard-Szenenstamm hinzufügen. Wir werden es daran anhängen.
Wir werden einen hinzufügen. Das wird ein
einfaches statisches Netz sein und ich werde es One Pipe Top nennen. Das
wird der obere Teil
unserer Pfeife sein, der etwas breiter
sein wird. Nachdem wir unser Rohroberteil ausgewählt
haben, werden wir
zwei Komponenten daran anbringen. Stellen Sie sicher, dass Sie das ausgewählt
haben. Das erste, das wir
hier hinzufügen werden, wird ein statisches Netz
sein und ich werde
dieses Rohr Inside nennen. Das wird der
Innenansicht unserer Pfeife dienen sie
im Grunde schwarz färben. Dafür
wird das sein. Lassen Sie uns weitermachen und erneut
unser Rohroberteil auswählen, da dieses nächste Bauteil ebenfalls an
der Rohroberseite befestigt und somit eingerückt Dieselbe Tiefe. Das wird
eine Kapselkollision sein, genau hier unter der Kategorie
Kollision werden
wir
das einfach Kollision nennen. Okay, wir haben zwei weitere
Komponenten, die ich hier hinzufügen möchte. Beide
werden zur Standard-Szenenroute hinzugefügt . Stellen Sie sicher, dass Sie
dies ausgewählt haben. Die erste, die
wir hinzufügen werden, wird als Werbetafel bekannt
sein Das
wird einfach ein Symbol sein , das
einen Punkt im Raum darstellt Also mach weiter und wähle das aus. Sie werden hier ein
Drachenkopfsymbol sehen. Das wird gewissermaßen unser Warp
genannt werden. Und dann füge ich
noch einen hinzu und er wird dieselbe Tiefe haben Wählen Sie Ihre Standard-Szenenroute aus. Ich füge hinzu und gebe Billboard ein, das wird
unser Warp-O-Punkt sein Diese Symbole stellen
einfach einen Punkt im
Raum dar , von dem wir
unseren Charakter anweisen werden , ein
- oder auszusteigen - oder Okay, nachdem unsere
Komponenten an ihrem Platz sind, lassen Sie uns weitermachen und
die Details für jede Komponente festlegen Ich fange
mit meinem Rohrkörper an und stelle
sicher, dass Sie
diesen ausgewählt haben. Ich werde die
Position dafür,
die Z-Position, auf fünf setzen . Und ich werde
die Skala sofort festlegen, noch bevor ich mein
statisches Durcheinander festlege. Lassen Sie mich sogar zuerst
das Mesh einrichten , damit
Sie einige dieser Änderungen tatsächlich
sehen können . In diesem Jahr
werden wir einen Zylinder verwenden
und diesen Zylinder aus der Liste mit den
Grundformen des Motors
auswählen . Das kannst du oben in
dem Tooltip sehen. Nachdem dies jetzt implementiert ist, werden
wir den Maßstab festlegen. Ich werde
die Skala auf 2,252
0,25 setzen und dann werden
wir 0,1 für die Z-Skala einstellen Ich werde diesen
Sperrknopf überprüfen oder ihn lieber entsperren. Wenn ich also
einen dieser Werte ändere, sie sich nicht alle gleichzeitig
ändern,
und dieser Wert wird 0,1 sein. Ich habe mich auch dort
falsch ausgedrückt, weil es sich
um ein statisches Instanznetz
handelt Wir werden nicht
sehen, dass irgendeines davon sofort zu unserem
Viewport
hinzugefügt Diese Typen werden
über unsere
Konstruktionsskripte hinzugefügt , du wirst hier
also noch
nichts sehen, aber warte
in zukünftigen Videos darauf Außerdem
möchte ich unser Material
hier so
ändern, dass es grün ist . Weil das grün sein
wird, das wird unser
Material hier sein. Das wird die
Länge unseres Rohres sein, der Rohrkörper selbst. Ordnung. Wenn das alles erledigt ist, machen
wir uns auf den
Weg zu unserer Pfeife. Fahren Sie fort und wählen Sie
das dafür aus. Wir werden auch einen
Zylindertyp im Zylinder hinzufügen. Es wird wieder aus dem Paket mit
den Grundformen für Motoren stammen. Ich werde das auch
auf Grün einstellen. Das gleiche Material M, grün
unterstrichen, weil es sich um ein statisches Netz
handelt Wir werden das in unserem Viewport
drüben im Skalenbereich sehen. Ich stelle die Skala für X und Y
auf 2,75 ein. Lassen Sie mich
hier ein wenig nach hinten zoomen In meinem Darstellungsfenster wird das
Z für die
Z-Position 0,5 sein für die
Z-Position 0,5 Ich werde diesen Wert auf 35 setzen. Es wird ein bisschen
weiter oben sein für unsere Pfeife
da drinnen. Lass uns weitermachen und das auswählen. Das wird auch ein
Zylinder für das statische Netz sein. gleiche gilt für den
Motor. Grundformen packen unser Material hier, ich werde es
auf etwas Schwarzes setzen. Wenn Sie
schwarz beleuchtetes Material eingeben, werden
Sie einen guten
Farbton von mattem Schwarz finden. Ich werde die Position
dafür im Z auf
25,5 setzen , sodass es nur ein bisschen
herausragt Jetzt siehst du, wie einige hier
um die Waage kämpfen. Lassen Sie uns unsere Skala auf 0,8 für das X und
0,8 für das Y
reduzieren , und unser Z wird
0,5 sein. Wenn ich das mache, Sie
so aussehen. Es wird also wie
das Innere einer Pfeife aussehen. Ziemlich clever, oder? In Ordnung, als Nächstes haben wir unsere Kollision,
unsere Kapselkollision Mach weiter und wähle das aus. Was wir hier tun werden, ist den Standort zu
ändern. Die Z-Position
wird 80 sein. Wir fangen an, es hier
über die Spitze unseres Rohres hinausragen zu sehen . Wir müssen das auch
vergrößern. Die halbe Höhe, ich werde
sie auf 300 setzen. Der Kapselradius
wird hier auf 40 gesetzt. Und wir
werden dies verwenden, um zu
überprüfen, ob sich unser Charakter
über der Pipe befindet oder ob
diese Pipe invertiert ist, ob das Zeichen
diese überlappt oder nicht So können wir überprüfen, ob
der Charakter
einen Knopf drückt , um auf diese Weise
mit der Pfeife zu interagieren und sie
wegzuziehen Außerdem müssen wir in den
Kollisionsbereich kommen. Kommen Sie unter das Kollisions-Preset. Wir werden das auf Benutzerdefiniert einstellen
. Wir werden alles
ignorieren. Wir werden
Überschneidungen durch die Spielfigur akzeptieren,
das heißt, wenn sich unser
Charakter überschneidet, werden
wir das gleich als Nächstes erkennen Lassen Sie uns weitermachen und
unseren Warp im Point auswählen. Auch hier
wird
ein Punkt spezifiziert, an dem wir
mit dem Warping beginnen werden Dafür werde ich
unsere Z-Position hier im Z festlegen .
Ich werde sie auf 70 setzen Es wird es genau dort platzieren, direkt über unserer Pfeife. Wir werden vielleicht daran herumspielen, aber ich werde
es vorerst bei 70 belassen Was unseren O-Punkt
angeht, wird er ein bisschen
darunter liegen Also werde ich das Z
dafür auf minus 35 setzen. Auch hier können wir
damit herumspielen, aber das wird ein guter
Ausgangspunkt sein Wenn Sie
also warpen, wir
das als Warppunkt verwenden Wenn wir aussteigen, werden
wir
das als Warp-Out-Punkt für Anfänger
verwenden das als Warp-Out-Punkt für Anfänger Ordnung, und
damit wir einen ziemlich guten
Start für unsere Offensichtlich gibt es hier
noch viel mehr zu tun. Was das Scripting angeht, ganz sicher. Mach weiter und speichere das und
wir nennen es Video. Wir sehen uns
beim nächsten Mal.
65. Warp-Pipe-Konstruktions-Skript: Willkommen. Wir werden hier
mit unserer BP-Kriegspfeife weitermachen. Und unser nächster Schritt wird darin bestehen Konstruktionsskript
einzufügen unser Konstruktionsskript
einzufügen, um
unsere Pfeife in hohem Maße anpassbar zu machen . Um es so zu machen, dass wir
den Rohrkörper der Länge
des Rohres anpassen können , wenn Sie so wollen. So groß oder stumpf,
wie wir möchten. Die gute Nachricht hier
ist, dass wir uns einige Skripte
von unserer Mushroom-Plattform ausleihen
können
, die wir zu von unserer Mushroom-Plattform Beginn des Kurses erstellt haben Lassen Sie uns also gleich loslegen. Der erste Schritt besteht darin
, eine Variable zu erstellen. Klicken Sie auf die Plus-Schaltfläche. Ich nenne das
meinen Pipe-Endpunkt. Stellen Sie sicher, dass es sich um eine Vektorvariable
handelt damit Sie sie genau dort auswählen
und in einen Vektor ändern können. Dann werde ich gleich weitermachen
und kompilieren. Weil ich dafür
einen Standardwert im Z setzen möchte , möchte ich
diesen auf minus 100 setzen. Und dann werde
ich diese Kästchen ankreuzen,
um diese Instanz editierbar zu machen und um
das Three-D-Widget anzuzeigen Damit kann ich jetzt weitermachen und hier
kompilieren und speichern. Und zieh diese Kriegspfeife irgendwo
in mein Level. Vorerst
werde ich es direkt
in der Nähe meines Spielerstarts platzieren . Jetzt, wo wir das in unserem Level haben, können
wir sehen, dass wir
diesen Pipe-Endpunkt haben, diese Variable, sie ist jetzt für den Editor sichtbar , wir
können es hier sehen. Und so könnte ich
diesen Wert hier
im Editor nach oben oder unten ändern . Lassen Sie mich das auf die Standardeinstellung zurücksetzen. Oder ich kann tatsächlich
auf dieses Drei-D-Widget
selbst klicken und es ebenfalls nach
oben oder unten verschieben. Lassen Sie mich weitermachen
und das auf den Standardwert von minus 100 zurücksetzen. Jetzt werden wir den Wert
dieser Variablen in
unserem Konstruktionsskript
verwenden . Lassen Sie uns also wieder
in unsere Warpipe eintauchen, unseren Tab
mit dem Konstruktionsskript. In unserem Konstruktionsskript möchten
wir im Wesentlichen
ein Skript
hinzufügen, das hier einige Abschnitte
unseres Rohrkörpers hinzufügt. Und das wird geschehen
, indem Teile
unseres Zylinders hier innerhalb unseres statischen Netzes
unseres Rohrkörpers hinzugefügt werden. Nun, falls Ihnen
das ein bisschen bekannt vorkommt, denn wir haben
etwas Ähnliches gemacht, das in unserem
BP-Plattform-Launcher identisch unserem
BP-Plattform-Launcher Jetzt können
wir hier eine kleine Abkürzung nehmen , indem wir hier
ein Skript
stehlen Aber lassen Sie mich
Sie daran erinnern , was wir zu
Beginn des Kurses getan haben Indem wir eine davon
in unser Level gezogen haben,
innerhalb unseres
BP-Plattform-Launchers, haben wir eine Variable hinzugefügt, die
als Trunk-Endpunkt bezeichnet wird Das war eine
Vektorvariable und wir haben sie instanzeditierbar gemacht und sie so gestaltet, dass sie
dieses Drei-D-Widget hat Und indem wir es hier
im Level-Editor ändern, wir tatsächlich Abschnitte
unseres Plattform-Launcher-Stammes
hinzu unseres Plattform-Launcher-Stammes Wir werden den gleichen
Aufbau hier in unserer Leitung
haben . Wir werden im Grunde
in der Lage sein,
diesen Diamanten für unsere
Rohrendpunktvariable auszuwählen . Wir ziehen
es nach unten und dann unser
Konstruktionsskript nur füllt
unser
Konstruktionsskript nur einige Rohrabschnitte aus. Dieselbe Methode hier, in
meinem Plattform-Launcher. Ich öffne
diesen Blueprint einfach , indem ich im Outliner
drüber klicke Wir werden das im
Konstruktionsskript unseres
Plattform-Launchers bearbeiten Konstruktionsskript unseres
Plattform-Launchers Ich werde hier drinnen ein
Skript stehlen. Ich werde hier klicken und
ziehen. Und dann werde ich
die Steuerung gedrückt halten und auch unsere vier Schleifen abrufen. Wir werden versuchen, diese Knoten
zu stehlen. 1.234.567,8, Wenn die ausgewählt sind, drücken
Sie C, um zu kopieren. Gehen wir zu unserem Skript zum Bau von Kriegsrohren. Ich klicke mit der linken Maustaste und drücke
dann V, um das Tempo zu erhöhen. Der Grund dafür
, dass das
fast genauso gut
funktionieren wird, ist, dass
wir
in unserem BP-Plattform-Launcher dieses
statische Instanz-Mesh für den Trunk haben Und siehe da, sieh dir
das Mesh an , das wir uns dort
angesehen haben Es war derselbe Zylinder
, den wir für unser Instant-Statiknetz
hier in unserem Warprohr Unser Rohrkörper wird diesen Zylinder ebenfalls
verwenden. Nun, eine Sache, die ich hier
aktualisieren muss , damit
dieses Skript genauso
funktioniert, ist der Hinweis hier in unserem
BP-Plattform-Launcher, dieser Mush-Trunk-Stamm, ich habe die Skala für
das Z auf eins eingestellt Lassen Sie mich zurückgehen und
das in unserer Kriegspfeife überarbeiten. Ich werde auch die
Z-Skala auf eins ändern, sodass dieser Teil des
Skripts hier
in unserer BP-Kriegsleitung
identisch funktioniert hier
in unserer BP-Kriegsleitung
identisch Dies wird eine Überarbeitung des
vorherigen Videos sein. Ich werde die Z-Skala
meines Rohrkörpers ändern. Vergewissern Sie sich, dass sie
entsperrt ist, damit Sie
die Z-Skala
unabhängig voneinander auf eins ändern können . Ordnung
, jetzt
muss ich nur noch meinen Pipe-Endpunkt
nehmen. Ich setze das
in meine Vektorlänge ein. Ich werde das da drauflegen. Ich werde mein
Konstruktionsskript anschließen,
damit es während der
Entwurfszeit hier ausgeführt werden kann. Wann immer wir
Änderungen an diesem Blueprint vornehmen, wird
er auch hier in unserem
Level-Editor aktualisiert Und dann müssen wir angeben,
welche Instanz wir hinzufügen möchten. Das wird unser Pfeifenkörper
sein. Das werden wir
so reinziehen. Diese Mathematik sollte
alle gleich sein. Dort durch 100 dividieren, hier mit minus
100
multiplizieren Lass uns weitermachen und das kompilieren, stellen wir sicher, dass alles
gut aussieht . Wir werden das speichern. Und jetzt, zurück in
unserem Level-Editor, können
wir sehen, dass wir
einige Abschnitte unserer Pipe hinzugefügt haben. Wenn ich jetzt diesen Endpunkt
hier nehme und ihn nach unten verlängere, können
Sie sehen, dass jedes Mal, wenn ich
ihn um zusätzliche 100 unwirkliche Einheiten verschiebe , ein Abschnitt einer Pipe hinzugefügt wird Tat hochgradig anpassbar. Und auch das funktioniert während der Entwurfszeit. Nicht während das Spiel läuft, sondern während der Entwurfszeit. Ordnung, das ist also
alles, was wir mit diesem
Teil unserer Kriegspfeife
erreichen wollten . Es liegt noch viel Arbeit vor uns, aber jetzt haben wir ein
Konstruktionsskript erstellt, das Teile unseres Rohrkörpers
hinzufügt ,
sodass wir
es stumpflänglich machen können. Wie groß wir es auch machen
wollen, Leute, das wird
es für dieses Ding reichen Wir sehen uns im nächsten.
66. Warp-Pipe-Eingänge: Ordnung, jetzt, wo unsere Pipe visuell
ziemlich gut aussieht den Komponenten, die wir hinzugefügt haben, und dem Konstruktionsskript
,
das wir erstellt haben, visuell
ziemlich gut aussieht, ist
es an der Zeit,
dass wir uns dem Warp-Pipe-Skript selbst
zuwenden dem Warp-Pipe-Skript selbst
zuwenden Das ist, dass unser Spieler
tatsächlich mit
dieser Kriegspfeife interagiert , um ihn dazu zu
bringen einen anderen Bereich des Levels zu Um das zu erreichen, brauchen
wir nun einen richtigen Input Und bevor wir mit dieser Diskussion beginnen, ist
es
an der Zeit, einen kleinen
Überblick darüber zu geben, wie unsere Beiträge
innerhalb unseres Projekts strukturiert sind. Wie ihr wisst,
kontrollieren wir unseren Charakter aus der dritten
Person in unserem Projekt und innerhalb
unseres Charakters aus der dritten Person. Dieses Drehbuch gab es bereits. Dadurch wird ein
Eingabe-Mapping-Kontext hinzugefügt. Dies bestimmt
alle Eingaben, die sich auf dieses
bestimmte Zeichen beziehen, die Eingaben, die dieses
Zeichen verwenden kann. Jetzt habe ich dieses Asset IMC standardmäßig
oben hier geöffnet In diesem Asset können
wir die verschiedenen
Eingabezuordnungen sehen, die zu dieser
IMC-Standardeinstellung hinzugefügt wurden Eines davon ist das
Abfeuern des Feuerballs,
das das Außerdem haben wir einen
für einen Spieler hinzugefügt, der nicht aktiv ist, und diesen verwenden wir innerhalb
unserer BP-Plattform, um durch zu springen Wir haben es so gemacht, dass
wir durch
unsere Plattform fallen können, wenn
diese Aktion ausgelöst wird . Und wir haben es so gemacht
, dass diese Aktion durch die S-Taste
als auch durch Drücken
der Y-Achse unseres
linken Daumensticks nach unten
ausgelöst als auch durch Drücken
der Y-Achse unseres
linken Daumensticks nach unten der Y-Achse unseres
linken Daumensticks Damit unsere
Warpipe-Interaktion jetzt funktioniert, werden
wir tatsächlich
diese Player-Down-Eingabe verwenden , die wir Wir werden die Dinge jedoch ein wenig
modifizieren, also werden wir
an dieser Stelle die Dinge wieder aufnehmen. Falls du vergessen hast, wo
dieser Athot existiert, findest
du ihn hier in
unserem Ordner für
Eingabeaktionen für Dritte Und hier haben wir
unsere A-Spieler-Down-Eingabeaktion erstellt unsere A-Spieler-Down-Eingabeaktion Falls Sie dieses Asset
von früher im Kurs nicht haben , haben wir es so erstellt
, dass Sie mit
der rechten Maustaste auf eine leere
Stelle unter der Eingabe klicken. Das war eine Eingabeaktion. Wir nennen es IA Player Down. Wir werden
das wieder öffnen, weil wir einige
Änderungen daran vornehmen werden. Derzeit setzen
wir in unserer
IA-Player-Down-Eingabeaktion den Wertetyp also auf eine digitale Kugel. Ist es passiert
oder nicht? Wir werden das
leicht ändern, indem wir unter
den Trigger-Bereich kommen. Derzeit ist es
einfach heruntergefahren. Drängen wir tatsächlich nach unten? In unserem Fall, dem
IMC-Standard, drücken
wir zum Beispiel den SQ nach unten Ist es passiert oder nicht? Jetzt werden wir das geringfügig
ändern
, sodass dieser Wertetyp
derselbe digitale Wert bleibt. Ist es passiert, nicht wahr? Allerdings werden wir
den Wert im Index von „Down“
auf „Hold“ ändern . Wir werden
prüfen, ob wir eine bestimmte Taste gedrückt
halten. Wenn wir das jetzt
etwas weiter ausbauen, werden
wir unseren Schwellenwert für die
Haltezeit
auf 0,2 Sekunden
ändern . Und unser Aktivierungsschwellenwert
wird bei eins liegen, im Grunde durchgehend, indem wir ihn auf einen Wert von 1,0
setzen Wir
wollen im Grunde
herausfinden, ob unser linker
Daumenstick
mindestens 0,2 Sekunden lang
ganz nach unten gedrückt ist mindestens 0,2 Sekunden lang
ganz nach unten Das ist im Wesentlichen das, was
wir hier sagen. Wir werden auch dieses Kästchen ankreuzen, da es sich um
einen Schuss handelt , der es
so macht , dass
wir, damit
es sich wieder registrieren kann, im Grunde
den linken Daumenstick loslassen müssen ,
um es erneut auszulösen Wenn das alles an Ort und Stelle ist, hält
Digital Bool die Auslöseschwelle von 0,21 auf eins
. Gehen Sie weiter und speichern Sie das und
zurück in unserer IMC-Standardeinstellung Aktuell haben
wir die Aktionszuweisung für die Eingabe von
Player-Down-Eingaben auf die Taste S
gesetzt Ich werde jedoch dieses Gamepad, den
linken Daumenstick und die Y-Achse
ändern linken Daumenstick Ich werde
auf dieses Drop-down-Menü klicken. Und im
Gamepad-Bereich ist
dies wiederum nur für
Gamepad-Spieler Ich ändere es auf
Gamepad links, Daumenstick runter. Also werden diese beiden das A
Player Down-Event auslösen Sowohl in unserer
Jump-Through-Plattform, wie es jetzt , als
auch in unserer War Pipe, ist
, als
auch in unserer War Pipe, wo wir
sie im nächsten Video verwenden werden. Jetzt wollen wir
hier im Action-Mapping tatsächlich noch
ein Spieler-Mapping erstellen . Wir haben diesen Spieler
wieder in unserem Inhaltsbrowser. Lass uns weitermachen und das
duplizieren. Und wir können das duplizieren, indem entweder mit der rechten Maustaste
darauf klicken und Duplizieren wählen, oder Control plus D
duplizieren das. Und ich werde das
so einrichten, dass es ein Spieler ist. Der Grund, warum ich hier oben
einen Spieler hinzufüge , ist einfach
, dass ich in der
Lage sein möchte , sowohl durch eine
Pfeife
runterzugehen als auch durch eine Pfeife hochzusteigen. Wenn ich das jetzt öffne, möchte
ich sicherstellen, dass es genau
die gleichen Einstellungen hat wie unser Player unten. Also ist es auf Digital Bull eingestellt und die Trigger sind so eingestellt
, dass sie 0,2 Sekunden halten. Ich möchte, dass dies auf einen Schuss
gesetzt wird die Auslöseschwelle
wird ebenfalls einer sein Lassen Sie mich noch einmal hier auf meinem Player unten
nachschauen, wir haben Digital Bull Hold 0,21 Digital Bool Hold 0,21 Schuss in 1,0 Das sieht
alles gut aus, also machen Sie weiter und
speichern Sie Jetzt muss ich auch diese
spezielle Eingabeaktion
innerhalb unseres
Eingabe-Mapping-Kontextes hinzufügen , dieser Und falls Sie vergessen haben
, wo sich dieser IMC-Standard befand, noch
einmal hier in
unserem Inhaltsbrowser zurück Diese gab es in der
Ordnerserie für Dritte,
und Sie finden diesen Ordner im Eingabeordner, IMC-Standard Also werde ich das wieder
öffnen. Ich muss es hier
von oben öffnen. Um diesen IA-Player
zu unserer Liste möglicher
Eingabeaktionen hinzuzufügen , müssen
wir auf
diese kleine Plus-Schaltfläche klicken. Es wird
ihn gleich hier unten hinzufügen. Jetzt muss ich diese leere Eingabeaktion tatsächlich eintragen. Also werde ich so
nach oben suchen. Jetzt muss ich herausfinden, mit welchen
Tasten oder Eingaben ich das
Eingabe-Action-Event im Player auslösen möchte . Nun, ich mache
ein Tastatur-Event für W. Wenn ich genau hier
auf dieses Tastatursymbol klicke. Wenn das orange ist, kann
ich jetzt einfach die W-Taste drücken und es wird
automatisch dem zugewiesen Ich klicke noch einmal auf diese
Plus-Schaltfläche, damit ich eine weitere Eingabe
hinzufügen Anstatt
dieses Mal
auf die Tastatur
zu klicken , werde ich tatsächlich
neben der Tastatur klicken und
zum Gamepad wechseln Ich suche nach Gamepad,
linker Daumen hoch. Das werden meine beiden Mappings sein, um auszulösen Lassen Sie uns damit weitermachen
und unser Eingabe-Mapping speichern. Kontext-Standard hier
und jetzt werden wir Position
sein, in der wir diese speziellen Ereignisse
hinzufügen können. Unser Spieler unten
und unser Spieler oben in unserem
Warp-Pipe-Ereignisdiagramm Das ist also alles, was da rein kommt. Im nächsten Video sehen
wir uns dort.
67. Warp-Pipe-Skript #1: Ordnung, also in unserem
letzten Video haben wir
unser
Input-Action-Player-Down-Asset modifiziert unser
Input-Action-Player-Down-Asset Und wir haben
das auch dupliziert und
eine IA-Player-Up-Input-Aktion erstellt eine IA-Player-Up-Input-Aktion Dann haben wir sichergestellt, dass
beide in unserer
IMC-Standardeinstellung enthalten Dies ist unser
Eingabe-Mapping-Kontext ,
sodass wir unseren
IA-Player hier unten einigen Eingaben
zugeordnet haben , ebenso wie
unsere Player-Up-Map einigen
Eingaben zugeordnet ist Eine Tastatur und ein Controller. Jetzt
werden wir sie in unserer BP-Kriegsleitung verwenden . Finden Sie Ihren Weg hier drüben, ich klicke mit der linken Maustaste, ziehe eine
Auswahlmarkierung heraus und lösche diese vorhandenen Ereignisse in unserem Ereignisdiagramm unserer Kriegspfeife Und wir werden unsere
beiden neuen Ereignisse genau hier hinzufügen. Unser Spieler unten rein,
unser Spieler hoch, um uns mit unserer
ersten Pipe-Interaktion zu beginnen. Also werde ich mit der rechten
Maustaste in eine leere Stelle klicken. Wir werden nach
Player-Up
suchen und nach
erweiterten Action-Events suchen. Haltet Ausschau nach dem Spiel mit
diesem Pfeilsymbol. Und dann
klicken wir mit der rechten Maustaste und ich suche nach Player down. Nochmals, die erweiterten
Aktionsereignisse, das Pfeilsymbol eins. Lassen Sie uns das so ausdrücken. Okay, wir werden also
ein paar Variablen
und einen Gate-Knoten und
einige Überlappungen verwenden ein paar Variablen
und einen Gate-Knoten und , um zu erkennen, ob
unser Spieler tatsächlich in
der Lage ist ,
mit unserer Warpipe zu interagieren Bevor ich nun mit diesen Ereignissen
weitermache, lassen Sie uns ein paar
dieser Variablen im Bereich „Mein
Blueprint“
erstellen dieser Variablen im Bereich „Mein , die
wir benötigen werden Im Abschnitt „
Variablen plus“ werden
wir also eine Variable für die Frage hinzufügen mit der Frage interagieren
kann Das wird ein Edelmetall sein. Im Grunde
werden wir diese Variable verwenden, um uns zu fragen, ob jede einzelne Pfeife, die
wir auf der Ebene platzieren, tatsächlich mit ihr
interagieren
können Vielleicht gibt es einige
Pfeifen, die wir nur Dekorationszwecken da draußen
platzieren. Es ist nicht beabsichtigt
, dass der Spieler tatsächlich
damit interagiert, also können
wir auf diese Weise darauf hinweisen, dass, ja, das ist eine Kriegspfeife, mit der wir unsere Spieler
verzerren wollen Die anderen werden
nur
dekorativ sein, da diese
Variable hier ausgewählt wurde Ich mache einfach Control
plus D, um es zu duplizieren. Und dieser
wird auch ein Edelmetall sein. Dieser wird
jedoch Pipe genannt werden. Es wird
ein Fragezeichen sein. Und das stellt im Grunde die
Frage, ist das eine Leitung, die
wir runtergehen wollen , oder ist es eine Leitung
, die wir hochgehen wollen? Das wird also verwendet, um
die Animation
unserer Spieler zu bestimmen , wenn sie
mit der Pipe interagieren. Werden sie es
hinuntergehen oder werden sie es hinaufgehen? Lassen Sie uns nun weitermachen
und diese kompilieren. Wir können also einige
Standardeinstellungen für diese festlegen. Das kann interagieren, wir
wollen es bei False belassen. Nehmen wir an, standardmäßig werden wir sagen, dass
wir mit all unseren Pipes nicht interagieren können. Wir können es jedoch überprüfen, wenn wir es im Editor aktivieren. Stellen Sie also sicher, dass Sie dieses Kästchen ankreuzen, zum
Beispiel editierbar, damit wir, wenn wir unsere
Pipe in unserer Ebene ausgewählt haben, dieses Kästchen
für eine bestimmte
Instanz davon aktivieren können für eine bestimmte
Instanz davon Vier ist Downpipe-Bollion, wir werden diese Option standardmäßig und auch sagen, dass das Exemplar
editierbar ist Wenn wir also wieder im
Editor sind,
können wir auch diese Variablen ändern Wenn ich nun weitermachen und das kompilieren
und speichern und meine War Pipe
wieder in meinem Level auswählen würde, kannst du
jetzt sehen, dass mir
diese beiden Variablen im Level-Editor zur Verfügung
stehen.
Ich kann das Kästchen „Ken interagiert “
oder „Downpipe“ auswählen, okay, springe zurück zu unserer Warpipe,
wenn unser Spieler nach oben drückt Wir wollen ein
paar Dinge überprüfen, um zu sehen, ob sie wahr sind, bevor
wir überhaupt weitermachen Und was wir überprüfen wollen, um
zu sehen, ob es wahr ist oder nicht, ist, ob wir
mit der Pipe interagieren können? Lassen Sie uns das also in unser Diagramm ziehen. Können wir mit der Pfeife interagieren? Wir wollen auch überprüfen,
ob es sich nicht um ein Fallrohr handelt. Ich werde mein
Fallrohr reinbringen . Wir
werden uns das holen. Ich werde das hinter mir
lassen und sagen, dass ich nach einem Booleschen Wert suche Dieser Knoten genau dort. Jetzt möchte ich überprüfen, ob beide
wahr sind. Dazu kann ich mit der rechten Maustaste in
eine leere Stelle klicken und einen Knoten einfügen. Ich suche nach einem Booleschen Wert. Ich werde diesen Can
Interact an die
Oberseite anschließen und dann die Downpipe an den
zweiten Eingang hier anschließen Und wir werden den Ausgang
in einen Verzweigungsknoten
stecken, indem wir die in einen Verzweigungsknoten B-Taste
gedrückt halten
und mit der linken Maustaste klicken Wir werden das
einstecken, also werden wir von hier aus
feuern Oder es interessiert uns nur, wenn
es von hier aus losgeht , wenn wir diesen Input gestartet haben. Kurz gesagt, Action
, mit unserem Spieler oben. Aktion eingeben. Das wird aus dem gestarteten Stift hier
hinten in unserer Kriegsleitung abgefeuert. Es wird von
hier aus feuern, von diesem gestarteten Stift aus. Sobald diese
Bedingungen erfüllt sind, haben
wir entweder
die WK auf unserer Tastatur oder den linken Thumbstick in
der aufwärts gerichteten Position für
mindestens
0,2 Sekunden gedrückt gehalten linken Thumbstick in
der aufwärts gerichteten Position für
mindestens
0,2 Sekunden Wenn wir diese Bedingungen erfüllt haben, wir uns die
Frage: Hey,
können wir überhaupt
mit dieser Leitung interagieren? Und oh,
übrigens, ist das
kein Fallrohr übrigens, ist das
kein Fallrohr Wenn das stimmt,
wollen wir durch ein Tor gehen. Ich ziehe mich hier raus
und tippe eine Gate-Suche ein. Ich suche nach einem Gate-Knoten. Wir werden durch ein Tor
gehen. Im Grunde nähern wir uns
einem harten Tor und wollen herausfinden, ob das Tor
offen oder geschlossen ist. Wenn das Tor nun offen ist und wir uns ein physisches Tor
vorstellen, wenn es offen ist, werden wir das Drehbuch machen , das uns hier als
nächstes einfällt. Wenn das Tor jedoch geschlossen ist, werden
wir hier nicht
weiterkommen. Bevor wir nun zum
Öffnen oder Schließen des Tores kommen, kümmern
wir uns um die Eingaben unseres
Spielers nach unten. Um ein wenig Zeit zu sparen, werde
ich
diese Knoten hierher kopieren. Also werde ich mit der linken Maustaste klicken
und ziehen, um diese vier zu bekommen. Ich werde auch die Strg-Taste
gedrückt halten und linken Maustaste klicken und mir diesen
fünften Knoten genau hier schnappen. Wenn also die ausgewählt sind, mache
ich
Strg+D, um sie zu duplizieren und sie gleich hier runter zu
bringen. Das wird jetzt weitestgehend dasselbe
sein, aber für die Eingabe durch den
Spieler brauche
ich diesen Knotenknoten nicht Das sind eine Menge Knoten.
Also werde ich das dafür
löschen Wir werden sagen, dass
wenn wir die Taste S
auf unserer Tastatur drücken,
oder
dass unser linker Daumenstick gedrückt ist. Sobald das begonnen hat, werden
wir prüfen, ob wir damit interagieren
können und ob es
sich tatsächlich um ein Fallrohr handelt . Wir wollen das herausfinden, ist es tatsächlich ein Fallrohr? Und wenn das stimmt, können
wir damit interagieren
und es ist ein Fallrohr, ein Rohr, das wir hinunterfahren können. Wir wollen auch durch ein Tor
gehen. Wir sind uns also im Wesentlichen darüber
einig, ob wir versuchen,
eine Leitung hochzufahren oder eine Leitung hinunter zu gehen. Das ist unsere Art, uns dem Tor zu
nähern, um zu sehen, ob eine Interaktion überhaupt möglich
ist. Um nun herauszufinden, ob eine
Interaktion überhaupt möglich ist, wollen
wir herausfinden,
ob wir tatsächlich
in der Lage sind , diese Leitung
hinunterzugehen. Und dafür werden wir unsere
Kollisionsüberlappung genau hier
verwenden. Lassen Sie mich jetzt einfach sehr
schnell
zu unserem Viewport springen und nach hinten zoomen Wir haben diese Kollision,
diese Kapselkollisions-Komponente , die wir
im Grunde überprüfen
wollen , hat unseren Spieler sogar
über dem Rohr, so wie hier Wenn sie es sind, wenn sie sich
in diesem Bereich befinden, werden
wir sagen, ja,
das Tor ist offen. Mach weiter. Wenn unser Spieler diese Kollision jedoch nicht
überschneidet, werden
wir im Grunde sagen
, nein, tut Du kannst über
diesen Torknoten hinaus überhaupt nicht vorrücken . Du kannst es also nicht tun. Ich kann mit
diesem Kollisionsknoten, der
hier in unseren Komponenten ausgewählt wurde, nicht die Kriegsleitung herunterfahren . Klicken wir mit der rechten Maustaste
in eine leere Stelle. Wir werden
ein Ereignis hinzufügen, für den Fall, dass sich das überschneidet. Sobald ich darauf klicke, wird dieser
Knoten genau hier unten platziert. Und lassen Sie mich einfach meinen Gang
nach unten bewegen und
ihn so einrahmen Also, was ich über die Überlappung von Komponenten herausfinden
möchte über die Überlappung von Komponenten Wir wollen herausfinden, hey, ist es unser Spieler, der das
überschneidet? Also kann ich wieder mit der rechten
Maustaste auf eine leere Stelle klicken. Ich könnte einen
Spielercharakter bekommen und wir könnten von hier aus alles
Gleiche machen. Ich möchte jedoch speziell
herausfinden, ob es unser Charakter aus der dritten Person
ist , der
sich hier überschneidet Denn wenn ja,
möchte ich tatsächlich
einen Verweis auf unseren Charakter in der
dritten Person
für später im Drehbuch speichern einen Verweis auf unseren Charakter in der
dritten Person für später im Drehbuch Stattdessen werde ich dieses
Mal Stecknadel meines anderen Schauspielers
herausziehen und eine Besetzung für eine Figur in der dritten
Person vornehmen. Wenn es also der Charakter aus der dritten
Person ist
, der die
Überlappung dieser Kollision macht, werden
wir das in
unsere Notizen zum Öffnen des Eingangs einbauen, also werden wir sagen, ja,
das Tor ist offen. Fahren Sie fort Sie können hier weiter gehen,
solange Sie entweder nach
oben oder unten gedrückt haben , je nachdem welcher Art von Rohr wir zu interagieren
versuchen. Okay, dann lassen Sie uns
auch hier
oben beim Ereignis mit der rechten Maustaste auf
unsere Kollisionskomponente klicken , um eine Überlappung zu beenden. Auch hier können wir unsere
Third-Person-Charakterbesetzung mit einbeziehen. Beachten Sie, dass ich Steuerung
D ausführen werde, wenn das ausgewählt ist. Schieben Sie es wie folgt in die gewünschte Position. Wir sagen, wenn Sie die Überlappung beendet
haben, also nicht innerhalb des
Kollisionsbereichs sind, werden
wir
die Tore schließen und
standardmäßig beginnen wir mit geschlossenem Tor. Im Grunde genommen wird
dies der Anfang
unseres Pipe-Interaktionsskripts sein unseres Pipe-Interaktionsskripts , weil es ein
bisschen umfangreich ist. Ich werde versuchen, es wie eine Zelle zu rahmen. Versuche, den
oberen Teil an seinen Platz zu bringen. Wenn du
das Video hier pausieren willst, kannst
du sehen, dass wir
unsere Variablen hier drüben haben, Spieler hoch, Spieler runter. Sie werden beide
in den Eingangsteil des Tores münden. Und das Öffnen und
Schließen
hängt davon ab, ob wir diese
Kollisionskomponente
tatsächlich überlappen oder nicht Nichts davon wird funktionieren wenn wir
nicht in
unsere Klassenvorgaben hier in
unserer Warpipe gehen und
diesen Parameter
hier unten im Eingabebereich ändern diesen Parameter
hier unten im Eingabebereich Im Moment wird diese Warpipe keines
dieser Ereignisse erkennen Selbst wenn wir das tun würden, würde die W- oder S-Taste auf unserer Tastatur diese überhaupt nicht erkennen. Und das liegt daran, dass innerhalb
unserer Klassenstandardwerte
ein
Darsteller-Klassen-Blueprint keine
Eingaben
erkennt, ein
Darsteller-Klassen-Blueprint keine es sei denn, Sie ändern in
der Eingabekategorie die Eingabe für den automatischen Empfang von
deaktiviert auf Spieler Null In unserem Fall, da
es sich um ein Einzelspieler-Spiel handelt, müssen wir nur
überprüfen, ob Spieler Null
, also unser Leihspieler, irgendwelche Eingaben eingibt, die WK, die S-Taste oder vielleicht auf
dem linken Daumen nach oben oder unten. Okay, wenn das alles erledigt ist, stellen Sie
sicher, dass Sie kompilieren, um
sicherzustellen , dass unser vorhandenes
Skript hier Lassen Sie uns weitermachen und das wird
uns den Ausgangspunkt
für unsere Warpipe-Interaktion geben . noch viel Arbeit vor uns, aber wir werden im nächsten Video
weitermachen. Wir sehen uns dort.
68. Warp-Pipe-Skript #2: Willkommen zurück in
unserer BP-Kriegsleitung, wenn sich
unser Charakter mit
dem richtigen Kollisionsvolumen überschneidet Und wenn wir
den richtigen Input eingegeben haben, kommen wir
über das Tor hinaus Wir müssen unseren Charakter durch die Pipe nach
oben oder durch die Pipe nach
unten bewegen ,
je nachdem, in welche Richtung wir mit der Pipe interagieren
wollen. Und um das zu tun,
benötigen wir einen Verweis
auf unseren Charakter. Also das Erste, was ich tun werde
, ist hier nach oben zu zoomen. Und wenn wir das Tor
hinter uns gelassen haben, müssen
wir einen
Bezug zu unserem Charakter herstellen. Ich werde schreiben, klicken Sie hier
auf diesen Pin. Wir werden das auf variabel hochstufen. Das wird hier
eine Variable erzeugen. Das werde ich meinen Spieler
nennen. Und wir werden
diese Referenz benötigen, um unserem Spieler
zu sagen, dass er sich durch ein Rohr in eine der
beiden Richtungen bewegen soll, nach oben oder nach unten. Okay, nachdem wir
das getan haben, wollen
wir als Nächstes sicherstellen, dass unser Spieler keine
weiteren Eingaben macht. Denn sobald
sich unser Charakter durch dieses Rohr bewegt, wollen
wir nicht versuchen zu springen oder einen Feuerball oder
etwas Ähnliches
abzuschießen. Um das zu tun, klicken
wir auf Eingabe holen uns
den Spieler-Controller Und dann
ziehen wir es raus und geben „Eingabe deaktivieren“ ein. Beachten Sie nun, dass, wenn wir das tun, der
Ausgabewert unseres
Get-Player-Controller-Knotens hier in das Ziel eingefügt wird. Das ist
eigentlich falsch. Was wir tun wollen, ist das
auf den Player-Controller zu verschieben . Wenn ich also die
Steuertaste hier gedrückt halte, kann
ich sie nach unten in
den Player-Controller-Pin bewegen. Und das Ziel hier ist,
dass ich mein Spieler sein möchte. Also
sagen wir im Grunde, hey Spieler, du darfst keine Aktionen eingeben solange wir uns durch unsere Pipe
bewegen. Damit möchte ich als
Nächstes eine Frage stellen. Ich möchte einen Zweigknoten aufrufen die Taste B
gedrückt halte
und mit der linken Maustaste klicke. Und die Frage, die
ich stellen möchte,
ist, ist
das ein Fallrohr , durch das wir fahren
werden? Denn je nachdem,
ob wir hinuntergehen
oder durch ein Rohr hinaufsteigen, wollen
wir
verschiedene Arten von
Charakteranimationen abspielen, um zu zeigen, wie
sie durch ein Rohr wollen
wir
verschiedene Arten von
Charakteranimationen abspielen, um zu zeigen hinuntergehen oder durch
ein Rohr hinaufsteigen. Ziehen Sie das also per Drag-and-Drop
auf unseren Zustand. Also, was wir dann machen werden, ist
vom wahren Ast abzuweichen, wir werden darauf
aufbauen. Zuerst werden wir eine Sequenz von Notizen hinzufügen. Also werde ich die S-Taste gedrückt halten und mit
der linken Maustaste klicken. Weil es ein paar Dinge geben
wird ,
die ich gerne passieren lassen würde. Wenn es eine Pfeife ist, gehen
wir runter. Als erstes möchte
ich hier eine Zeitleiste hinzufügen. Weil ich
eine Variable
im Laufe der Zeit manipulieren möchte ,
eine Float-Variable, um meinen Spieler um
einen bestimmten Betrag innerhalb
der Z-Richtung zu bewegen einen bestimmten Betrag innerhalb , damit er durch die Pipe
nach unten geht. Lassen Sie uns eine Zeitleiste hinzufügen.
Wenn ich mit der rechten Maustaste klicke,
suche ich nach einer Zeitleiste. Es wird
ganz unten sein. Wenn ich da nur das
Wort Zeit einfüge, rufe
ich
diese Zeitlinie an. Mal sehen, wir rufen es ein, lassen wir das nicht zu einem Fallrohr
verschließen Und dann
doppelklicke ich darauf, um es zu öffnen. Und hier
werde ich einen Float-Track hinzufügen. Klicken Sie also auf die Track-Schaltfläche. Wir werden
einen Float-Track hinzufügen. Ich nenne
das einfach Bewegungen. Und ich werde die Länge
unserer Zeitleiste hier
auf 1 Sekunde
ändern . Weil ich
unseren Charakter im
Laufe von 1 Sekunde in Z-Richtung bewegen möchte unseren Charakter im
Laufe von 1 Sekunde in Z-Richtung . Ich muss hier ein
paar Keyframes hinzufügen. Also werde ich die Umschalttaste
gedrückt halten und
dann ein- und zweimal mit der linken Maustaste klicken. Mit der ersten Taste wähle
ich
die Zeit aus und setze sie auf Null und
den Wert auf Null. Und dann das zweite Schlüsselbild,
ich werde das auswählen, ich werde die
Zeit auf eins und
den Wert auf minus 200 setzen . Jetzt, nachdem ich die Eingabetaste gedrückt habe, kann
ich diese
Pfeiltasten drücken, um das Bild einzurahmen. Das ist eine Art
visuelle Darstellung dessen, was hier
passieren wird. Wir werden
unseren Charakter innerhalb einer Sekunde um
200 unwirkliche Einheiten nach unten bewegen Sekunde um
200 unwirkliche Einheiten Nachdem dieser Track hinzugefügt wurde, können wir zu unserem Event-Graph
zurückkehren. Und jetzt können wir diese
Bewegungsausgabe genau hier sehen. Nochmals, wenn es sich um ein Fallrohr handelt, wenn es stimmt, dass wir mit einem beschrifteten
Rohr
interagieren, ja, es ist ein Fallrohr. Wir werden gleich hier
von Anfang an spielen. Dann werden wir
einen Hinweis auf unseren Spieler einbringen. Lass uns das per Drag-and-Drop ziehen. Wir holen uns das,
wir ziehen es aus meinem Player raus. Und wir werden sagen, die
relative Position und Drehung
für die Kapselkomponente festlegen . Dieser hier, er
wird zwei Knoten hinzufügen, unsere Kapselkomponentenreferenz, sowie diese festgelegte relative
Position und Drehung. Da dieser Zeitplan aktualisiert wird, möchten
wir unseren Spieler an
einen neuen Ort schicken . Welcher Ort? Nun, lassen Sie uns von diesem neuen Ortstyp
in Make Vector rückwärts
ziehen , damit wir ihn in die X-,
Y- und Z-Komponenten
aufteilen können ,
Y- und Z-Komponenten Was ich dann tun werde,
ist,
einen Verweis auf unseren Punkt einzubringen , diese Komponente genau hier. Ziehen wir das in unser Diagramm. Und nur um zu unserem Standpunkt zu kommen, das ist unser Warp-Punkt Dieser Drachenkopf genau hier. Dies wird im Grunde der Ausgangspunkt
sein
, von dem aus sich unser Charakter verzerren
wird. Okay, lassen Sie uns hier
rausziehen, eintippen, Standort der Welt
ermitteln, dann ziehen wir raus und geben Break Vector Das ist die Ausgabe der X
-, Y - und Z-Position, der
Position unseres Warppunkts Wir
zerlegen das in seine X-, Y- und Z-Komponenten Wenn wir unseren Spieler verzerren, wollen
wir das X
gleich lassen und wir wollen, dass das Y gleich
bleibt Wir
wollen jedoch den Z-Wert ändern. Wir wollen unseren Z-Wert von
unserem Warp-Punkt nehmen und aus dem Warp-Punkt
herausziehen, die Plus-Taste einen
Add-Node einfügen Was wollen wir dem
hinzufügen? Was wollen wir
zu dieser Bewegung hinzufügen? Auch dies wird
den Wert innerhalb von
1 Sekunde um
minus 200 ändern . Das wird
unser neuer Z-Wert sein. Lassen Sie uns das
etwas besser formulieren. So wird
es also sein. Und dann
klicke ich mit der linken Maustaste und ziehe auf die Taste. Und das wird unser
Enter-Down-Pipe-Skript sein. Ich färbe das sofort
schwarz. Also werde ich es
ein bisschen hier oben verschieben. Wenn es ein Fallrohr ist, wenn es ein Rohr ist, das in unserem Editor als
Fallrohr gekennzeichnet ist, wenn das stimmt, werden wir unseren Charakter auf diese
Weise durch dieses Rohr nach unten
bewegen. Auch jetzt müssen wir uns
Sorgen machen, dass sie, du weißt
schon, aus dem Rohr herauskommen, aber darüber
werden wir uns gleich Gedanken machen. Nun, die zweite Sache, die
ich möchte, dass passiert, wenn sie
durch die Röhre gehen, wird
das im Grunde
unseren Player bewegen , ist, dass ich auch
einen Soundeffekt abspielen möchte Deshalb haben wir diesen
Sequenzknoten genau hier. Ich ziehe das in die Länge,
füge einen
Verzögerungsknoten hinzu, einen Verzögerungsknoten. Und ich
belasse diesen Wert 0,2 und dann ziehe ich davon ab und füge einen Sound
Two-D-Knoten hinzu. Dafür werde ich nach einer Pfeife suchen. Nein, es ist keine Pfeife. Ich
glaube, ich habe es Warp genannt Warp. Das ist im Grunde der, den ich eingeben
möchte Wir werden auch
diesen Soundeffekt abspielen. Ich klicke sogar mit der linken Maustaste auf diesen Tapkey und nenne ihn so unser Warp X. Okay, ich werde das auch schwarz
einfärben, nur um es
schön und deutlich zu machen Nun, wir sind noch
nicht fertig wenn wir
damit fertig sind, wenn dieser Zeitplan hier
abgeschlossen ist. Nach einer Sekunde möchte ich, dass etwas
anderes passiert ist. Dafür leihe ich mir
diese beiden Knoten gleich hier aus. Ich wähle
meinen verzögerten Node, meinen Play Sound Two D,
und ich mache einen Control-D, bei dem beide
ausgewählt sind Ich werde sie von unserer fertigen
Stecknadel
hier drüben wegnehmen. Ich werde
diesen Verzögerungsknoten anschließen und unsere Dauer auf
0,4 Sekunden ändern. Das wird ziemlich gut sein, 0.4 Dann möchte ich
diesen Warp-Sound noch einmal spielen Im Grunde genommen werden wir, wenn wir mit dem
Durchgehen dieser Pfeife
fertig sind, diesen Soundeffekt erneut abspielen Also im Grunde ein
Soundeffekt zum Einspielen. Und wenn wir fertig sind, bevor wir rauskommen, zeigen
wir, dass unser Charakter quasi aus
der Pfeife kommt Wir werden den
Soundeffekt noch einmal abspielen. Jetzt wird es einen weiteren Knoten
geben, eigentlich zwei weitere Knoten
, die wir hinzufügen werden. Genau hier. Ich werde einen Zweigknoten
hinzufügen, also halten Sie die
B-Taste gedrückt und klicken Sie mit der linken Maustaste. Ich werde das auch
anschließen. Und wir werden eine
weitere Bedingung überprüfen. Und die Bedingung,
die wir hier überprüfen werden, ist, ob unser Spieler rauskommt und aus einem Rohr
steigt. Oder ob sie aus einem Rohr
fallen, bestimmt
das, wie wir
unseren Charakter manipulieren , der aus
einem Rohr aufsteigt oder aus einem Rohr
herunterfällt. Dafür
benötigen wir also eine boolesche Variable. Lassen Sie mich weitermachen und
diese vorhandene Option in
meinem Blueprints-Bedienfeld (
Steuerelement D) auswählen, um sie zu kopieren Und ich nenne diesen Ausgang, der aus einem
Rohr herausragt. Ich will auch, dass das aufgedeckt wird. Und ich werde weitermachen und
das kompilieren und standardmäßig
ja sagen, wir lassen das so. Das wird unsere Bedingung sein
, die wir überprüfen werden. Und wieder werden
wir
diesen Ast verwenden, um festzustellen, ob unser Charakter
aus einem Rohr aufsteigt oder durch ein Rohr
herunterfällt. Das wird in Kürze
hier sein,
aber ich ziehe diesen Teil des Skripts mit der Maus
herum,
tippe auf die C-Taste und der Name
wird kurz wird in Kürze
hier sein,
aber ich ziehe diesen Teil des Skripts mit der Maus herum,
tippe auf die C-Taste und der nach unserer Gewichtung benannt, bevor ich das Pipe-Skript verlasse Also gut, wir haben das vorbereitet
, Exzellenz. Also werde ich das
hier einrahmen, damit Sie sehen können, was von
unserem Zweigknoten
kommt, dann von unserem Sequenzknoten. Also, wenn es wahr ist, dass unser Spieler durch die Röhre geht, dann wird
das der Zeitplan sein damit unser Spieler durch die Röhre
geht. Die schlechte Nachricht ist, dass
wir im Wesentlichen
drei weitere Abschnitte wie
diesen haben , die wir dem Drehbuch hinzufügen müssen. Aber die gute Nachricht ist, dass wir diesen Abschnitt des
Skripts
ausgearbeitet haben und den größten Teil davon
für den letzten Teil dieses
Entwurfs wiederverwenden
können für den letzten Teil dieses
Entwurfs Also werden wir
es hier ein Video nennen. Also mach weiter und
kompiliere und speichere. Und im nächsten werden wir uns darum
kümmern, durch
ein Rohr hinaufzusteigen und dann auch wieder aus dem Rohr herauszukommen.
Wir sehen uns dort
69. Warp-Pipe-Skript #3: Willkommen jetzt, bevor wir mit unserem Skript
weitermachen, möchte
ich das
nur in unserem Level testen Und ich möchte nur, dass Sie
auf
unsere verschiedenen Variablen achten , die wir dem Editor zur Verfügung gestellt
haben. Wir haben das für, ist es ein Fallrohr? Das heißt,
sollen wir da runtergehen? Und wenn ja, in welche Richtung sollen wir die Leitung
hinuntergehen? Wir werden
das überprüfen lassen. Außerdem
werden wir den booleschen Wert von Can
Interact auch in unserem Editor
aktiviert haben booleschen Wert von Can
Interact auch in unserem Editor
aktiviert Wenn du dich an
unseren Interact erinnerst, überprüfen
wir,
ob das stimmt oder Um zu sehen, ob eine dieser
Eingaben überhaupt gültig ist. Wenn wir diesen Punkt überhaupt
überschreiten können. Das Rohr wurde in deinem Level ausgewählt. Hier haben wir das
Fallrohr bereits überprüft. Aber wir haben keinen
Interaktionscheck. Also werde ich
weitermachen und das überprüfen. Und das sollte
es so machen, dass
ich, wenn wir auf unserer Tastatur nach unten drücken, wir auf unserer Tastatur nach unten drücken, die S-Taste Das wird unsere Abwärtstaste sein. Wir werden
hier über
den ersten Teil des Skripts hinausgehen den ersten Teil des Skripts , weil das
auslösen wird , dass Interaktion
wahr sein wird. Und weil
das ein Fallrohr ist, werden
wir dieses Rohr
hinuntergehen. Wir werden dieses kleine
Skript tatsächlich hier
und genau hier
auslösen . Das wird noch nicht wirklich
ins Spiel kommen,
aber wenn das alles erledigt ist, sollten
wir tatsächlich sehen unser Charakter in die Pipe bewegt
. Also lasst uns das versuchen. Reinspringen und
spielen. In Ordnung, auf unsere Pfeife
springen Und wenn ich die
S-Taste auf der Tastatur drücke, kannst
du sehen, wie mein
Charakter ausfällt Aber sie können noch nirgendwohin
gehen. Das werden wir also in diesem nächsten Teil
reparieren. Okay, lassen Sie uns zuerst
diesen Teil gleich hier ansprechen. Wenn wir mit der Fertigstellung
unseres Fallrohrs fertig sind, werden
wir ein bisschen warten bevor wir aus einem Rohr herauskommen. Und wir werden uns die
Frage stellen, werden wir aus
einem Rohr
heraussteigen oder werden wir von einem Rohr
herunterfallen? Also lassen Sie uns hier ein bisschen
Drehbuch hinzufügen. Machen wir es so, dass wir zuerst aus einem Rohr
heraussteigen . Noch einmal, ich kann viel von
dem Code stehlen , den wir
hier gemacht haben, und so eine Menge Zeit sparen. Also werde ich
Linksklick drücken und genau dort
Strg C drücken. Dann gehe ich hierher
und drücke Strg V, um
Steuerung D einzufügen . Ich würde das einfach sofort
duplizieren, anstatt es zu kopieren und Und was ich
tun werde, ist, mich genau
hier aus dieser
Filiale zu genau
hier aus dieser
Filiale Werden wir aussteigen aus der Röhre
aufsteigen Wenn das stimmt, werde
ich das jetzt
von Anfang an ins Spiel einbauen Wir sind noch nicht fertig. Hier müssen wir ein paar
Dinge ändern. Für den Anfang möchte ich diesen Warp in Point
loswerden. Das ist nicht der Ort, an dem
ich beginnen möchte. Dafür möchte ich mit einem bestimmten Satz von Koordinaten beginnen einem bestimmten Satz von Koordinaten die wir einen
Warp zum Gebietsschema angeben Und dafür benötigen wir
eine neue Variable. Es wird eine
Vektorvariable sein, also werde ich
meine bestehende Vektorvariable
hier in meinem Blueprint-Panel auswählen meine bestehende Vektorvariable
hier in meinem Blueprint-Panel Ich werde Steuerung
D verwenden, um das zu duplizieren. Und ich nenne diesen
Warp to Locale. Und wenn ich
das sofort kompiliere, wird es
auf einen Standardwert gesetzt Lassen Sie mich weitermachen und es
flächendeckend auf Null setzen. Ich möchte sicherstellen, dass
dies von der Instanz bearbeitet werden kann , da wir dies in unserem Level
festlegen werden Ich muss
das Three-D-Widget
hier nicht zeigen , also werde
ich es loswerden Das wird also
unsere Variable hier sein. Wir werden
von einem bestimmten Gebietsschema ausgehen, von dem wir
irgendwann angeben
, dass wir es noch nicht getan haben Wir werden das so in
diesen Unterbrechungsvektor einfügen. Jetzt muss
auch unser Zeitplan hier festgelegt werden. Denn anstatt
in ein Fallrohr einzusteigen, lassen Sie mich einfach Titel unseres
Kommentarfeldes hier austauschen. Wir gehen raus und
steigen aus einem Rohr auf. Und weil
wir den Vorgang beenden werden, indem mit diesem kleinen Skript aus einer Pipe
aufsteigen, müssen
wir unseren Zeitplan ändern
, sodass unser Keyframe hier, unser zweiter Keyframe, nicht um 200 sinkt Stattdessen wird es
um 200 steigen. Alles, was wir hier
tun müssen
, ist mit dem letzten ausgewählten Keyframe das negative Vorzeichen
zu entfernen Es werden
plus 200 sein, ungefähr. Das ist die Richtung, in die
wir gehen wollen, ist aufwärts. Wenn wir nun irgendwann damit fertig sind, diese Pipe hinauf
- und wieder zu verlassen, müssen
wir die Steuerung unserer
Charaktere wieder aktivieren. Denn wenn Sie sich erinnern
, haben wir ganz am Anfang
dieses Skripts unsere Eingabe
deaktiviert. Lass uns weitermachen und hier unseren
Get Player Controller auswählen. Und wir werden Strg D
drücken, um das zu duplizieren, weil
wir das wieder brauchen werden. Ich werde
das bis
hierher verschieben und versuchen, Ihren Weg
in dieser Landschaft zu finden. Und ich
ziehe den Get Player-Controller von hier
raus und tippe Enable Input ein. Jetzt ist das wieder einmal nicht
an den richtigen Eingang angeschlossen. Ich muss den Player-Controller an den
Player-Controller-Eingang anschließen Also werde ich die Strg-Linksklick
gedrückt halten
und sicherstellen, dass das
in der Player-Controller-Eingabe ist in der Player-Controller-Eingabe Genau hier für das Ziel.
Ich möchte mit der rechten Maustaste klicken und Spielercharakter bekommen
eingeben.
Das wird unser
Ziel sein, wenn wir mit dem Aufstehen
aus der Pfeife
fertig sind . Wenn wir damit fertig sind, aus der Pfeife
aufzusteigen. Wir werden unseren Input aktivieren. Lassen Sie uns noch einmal mit der linken Maustaste klicken
und diese C-Taste um
diese Taste ziehen . Dies
wird wieder Benutzersteuerung
aktivieren genannt . Ordnung. Färbe das jetzt auch gleich
schwarz. Okay, jetzt haben wir die Szenarien
behandelt in denen wir überprüfen werden,
ob es ein Fallrohr
ist, ist es ein Rohr, das wir
hinuntergehen werden, und werden wir aus einem Rohr heraussteigen? Jetzt müssen wir uns also
mit den anderen Situationen befassen. Das heißt, wir steigen durch ein Rohr hoch und kommen durch ein Rohr
runter. Damit wir also in der Lage sein werden, etwas
mehr von diesem Code zu stehlen . In diesem Abschnitt
wollen wir regeln, was
passiert, wenn er falsch ist, wenn es sich nicht um ein Fallrohr handelt. Stattdessen werden wir durch ein Rohr
hochgehen. Noch einmal, wir werden hier eine weitere Sequenznotiz
benötigen. Also werde ich die Taste S
gedrückt halten und mit der linken Maustaste klicken, wenn das hier
falsch ist. Das Erste, was wir
immer noch tun wollen, ist ein paar Warp-Effekte zu spielen Wir können das
hier so einstecken. Aber jetzt wollen wir durch die Leitung nach
oben gehen. Nun, wenn du dich genau
daran erinnerst, was
wir gerade gemacht haben, wir haben diesen Zeitplan
so geändert , dass
wir statt
nach unten um 200 unwirkliche Einheiten
steigen werden Wir können tatsächlich mit der linken
Maustaste klicken und ziehen. Wir werden
diesen Teil des Skripts kopieren. Nachdem das kopiert ist, werde ich einfach
mal runterkommen. Control C, Control
V um es einzufügen, ich muss Control C machen, Control V, um das hier
unten einzufügen. Da haben wir's. Wir werden das von Anfang an
ins Spiel integrieren. Aus Zeitgründen
werde ich diese Zeitlinien nicht umbenennen,
obwohl ich
diese Zeitlinie noch einmal genau hier oben anordnen sollte , wir werden 200 unwirkliche Einheiten
aufstocken, was Aber zurück zu unserem
Ereignisdiagramm:
Wir wollen nicht, dass unsere
Variable sich auf den Ort verschiebt, den wir hier lesen Wir kommen gleich nach oben. Das wird dem
ähnlich sein und
unser Punkt ist das, was
wir nutzen wollen. Ich werde diese
beiden Knoten genau dort stehlen. Ich drücke Steuerung
C. Ich gehe hier
runter, mache Kontrolle V,
und das wird unser Ausgangspunkt
sein, und das wird von dem aus
wir beginnen werden,
und dann steigen wir auf, indem wir Bewegung unserer Spieler um
200 erhöhen. Okay, das ist alles schön und gut. Wir müssen auch
sicherstellen, dass wir hier
unser Ziel erreicht haben , eine Minute zu warten, bevor
wir das Rohr verlassen Auch hier müssen wir unseren Lack nehmen und ihn hier
einstecken Lassen Sie uns dieses
Kommentarfeld hier ändern. Dies wird ein
Rohranschluss sein , nur um die Dinge
etwas klarer zu machen. Nur um
hier ein bisschen rauszuzoomen. Sie können sehen, wie unser Skript
derzeit aussieht. Wie Sie sich vorstellen können, brauchen wir einen weiteren Abschnitt des
Skripts, um genau hier hinzukommen. Das wird rauskommen, aus einem Rohr
herunterfallen Nun, da wir von einem Rohr herunterfallen
werden, haben
Sie es vielleicht schon erraten Wir können uns dieses
Drehbuch ausleihen , denn dieser Zeitplan
hier wird uns 200
unwirkliche Einheiten schicken. Links, klicken, ziehen Ich drücke hier die Taste
C, um das zu kopieren. Ich werde weiter nach unten gehen, nur damit ich in diesen
Abschnitt hier runter gehe. Ich werde zum Einfügen
die Taste V drücken. Lassen Sie mich diesen
Abschnitt sofort umbenennen. Das werden unsere Ausgänge aus der Pipeline sein. Wir stellen die
Frage, werden wir hier
aus dem Rohr herausragen Wir sagen nein, das ist falsch. Wir gehen raus und
fallen aus einem Rohr. Stecken Sie das Falsche
von Anfang an in das Spiel ein, unsere Timeline. Hier
wird uns noch einmal gezeigt, 200 unwirkliche Einheiten nach unten
bewegen Großartig. Zurück
zu unserem Event-Graph. Aber auch hier werden
wir nicht von
unserem Warp-Punkt
herunterfallen Wir werden das löschen. Stattdessen werden wir diese Variable
genau hier oben
verwenden. Warp zwei Vektoren. Okay, also geben Sie unser
Warp-2-Gebietsschema ein. Das ist der, den wir wollen. Dann
vergiss nicht, dass von unserem fertigen Pin
aus wir von unserem fertigen Pin
aus auch
unsere Benutzersteuerung aktivieren müssen. Noch einmal, eine Menge Code
hier, eine Menge Kabel. Lassen Sie mich einfach noch einmal
zurückgehen, um
das allgemeine Aussehen dieses Skripts zu zeigen . Sie haben im Grunde vier Blöcke
, in denen Sie unseren Charakter bewegen müssen: durch das Fallrohr
hineingehen, in ein Hochrohr hineinfahren,
heraussteigen, aus einem Rohr aufsteigen
und wieder herauskommen, von einem Rohr
herunterfallen Wir deaktivieren die Steuerung genau hier. Und dann, ganz am Ende, aktivieren
wir die
Steuerung genau hier. Ordnung, nachdem das alles erledigt ist, können
wir weitermachen und
kompilieren und speichern. Nun, wenn ich hier in
meinen Level-Editor gehen würde,
hier ist meine Pfeife. Ich habe es
im Detailbereich ausgewählt. Ich habe es so eingestellt, dass ich damit interagieren
kann. Beachten Sie nun, dass mein Warp-Two-Gebietsschema derzeit auf 2000 gesetzt
ist. Im nächsten Video werde
ich Ihnen zeigen, wie Sie
mit der Einstellung eines richtigen
Warp-2-Gebietsschemas arbeiten mit der Einstellung eines richtigen
Warp-2-Gebietsschemas Aber wir können
das jetzt testen. Also werde ich weitermachen
und auf Play klicken. Ich drücke die S-Taste
, um nach unten zu gehen
, und ich werde zur Position
000 in meinem Level weitergeleitet Also hat es mich einfach dorthin gebracht,
wo auch immer das in meinem Level war. Und du kannst sehen, dass ich jetzt
wieder spielbereit bin, was offensichtlich nicht
gut aussieht, weil ich mich ins Nichts verirre Aber im nächsten Video werde
ich euch zeigen, wie man mit
diesen Pipes arbeitet und wie man einen Warp auf Locale
setzt, wie das alles funktionieren soll In Ordnung, Leute, das wird
für diesen absterben. Wir sehen uns im nächsten.
70. Warp-Pipe-Hookups: Willkommen zurück alle.
Nun, da wir unser riesiges BP War
Pipe-Skript erstellt haben, dachte
ich, ich wäre gut und
angemessen, um dir zu zeigen, wie genau du
damit arbeiten kannst, wenn du wieder
im Level-Editor bist. Nun, zwischen den Videos hier habe ich eine zweite
Version unserer Pfeife hinzugefügt ,
damit ich
verschiedene Interaktionen vorführen kann. Beachten Sie nun, dass ich hier in meinem Level eine Pipe
ausgewählt habe. Das ist der von vorhin. Ich habe im Detailbereich den Goldbarren von Ken Interact auf true gesetzt Das ist ein Fallrohr, das
heißt, ich
beabsichtige, es herunterzufahren das
heißt, ich
beabsichtige, es herunterzufahren Und ich habe auch
diesen Scheck,
wo ich aus einem Rohr herauskommen Ich habe vor, genau hier aus
dieser zweiten Röhre aufzusteigen genau hier aus
dieser zweiten Röhre Jetzt mein Warp-2-Gebietsschema, dafür muss
ich
etwas angeben Jetzt um die richtige Koordinate
einzugeben. Was ich hier tun kann,
ist diese Pfeife auszuwählen. Und unten im Detailbereich können
Sie all meine
verschiedenen Komponenten sehen, aus
denen meine zweite Kriegspfeife besteht. Wenn Sie sie nicht sehen,
liegt das daran, dass sie hier
zusammenbrechen könnten. Sie können sehen, wie ich das
gewissermaßen
zurückziehe , um alle Komponenten
zum Vorschein zu bringen. Ich möchte nur die Warp-Out-Punkte
auswählen An diesem Punkt ist es quasi
im Rohr selbst vergraben. Jetzt will
ich herausfinden, wo sich
dieser Warp-Out-Punkt weltweit befindet dieser Warp-Out-Punkt weltweit diese Option ausgewählt ist, können Sie sehen die relative Position
minus 35 ist Ich möchte jedoch den weltweiten
Standort dafür haben. Ich kann dieses
Drop-down-Menü auswählen und möchte, dass es sich als
Weltstandort ändert. Im Moment sind dies also
die Weltkoordinaten für diese spezielle Komponente. Für diese Pipe möchte ich diese Koordinaten
kopieren. Und dazu
kann ich einfach hier mit der rechten Maustaste klicken und Kopieren sagen. Jetzt habe ich diese
Koordinaten kopiert. Jetzt kehre ich zu
unserer ersten Pipe zurück, wähle sie aus und ich kann diese Koordinaten
genau hier in unserer
Warp-2-Locale-Variablen platzieren genau hier in unserer
Warp-2-Locale-Variablen Also werde ich
hier mit der
rechten Maustaste klicken und wir werden das Tempo
ändern Also, jetzt sagen wir
dieser Pfeife, dass hey, wir wollen in der Lage sein, mit dir zu
interagieren. Du bist eine Pfeife, die
wir runtergehen wollen. Wir werden aus
unserer Zielleitung emporsteigen und oh, das ist übrigens
der Zielort. Ich möchte, dass du nach all
dem warpst, lass uns weitermachen und das
testen Reinspringen und spielen. Und wir werden hier oben
weiterspringen. Ich tippe mit dem linken Daumen auf meinem
Controller nach unten, und wir kommen direkt nach Wenn ich jetzt versuchen würde, mit dieser
Pipe hier zu interagieren, würde
ich, du weißt schon,
auf die S-Taste tippen, die W-Taste Mein linker Daumen ist nach oben gedrückt, siehst
du, ich kann damit nicht
interagieren. Ich könnte aber
weitermachen. Diesmal
drücke ich S auf der Tastatur nach unten und dann nach oben
und los geht's. Ordnung, jetzt haben wir uns mit dem klassischen Szenario befasst
, ein Spieler durch
eine Röhre hinuntergeht und dann aus einer Pfeife
wieder aufsteigt. Lassen Sie uns die Dinge
hier ein bisschen ändern. Dieses Mal werden wir
zeigen, wie man durch
ein Rohr hinuntergeht und dann aus einem Rohr
fällt. Deshalb werden wir hier unsere erste Pfeife
auswählen. Wir werden sagen, ja,
wir können damit interagieren. Es ist eine Pfeife, die
wir hinuntergehen werden. Das ist es, was diese
Frage stellt. Ist es ein Fallrohr? Ja, wir werden diese Leitung
hinuntergehen. Werden wir aussteigen aus einer Röhre
aufsteigen Nein, sind wir nicht. Stattdessen werden wir aus einem Rohr
fallen. Nur um zu zeigen, wo dies
in unserem Diagramm auslösen würde, ist ein
Ausgang, der aus dem Rohr herausragt, falsch. Das heißt hier
in unserem Skript, wenn wir an diesem Punkt angelangt sind, wenn wir aus dem Rohr
heraussteigen. Wenn das falsch ist,
gehen wir
hier runter und wir werden wieder rauskommen, wenn wir durch das Rohr
herunterfallen. Okay,
damit das passiert, muss
ich das
Warp-2-Gebietsschema einstellen Hier ist meine erste Pipe, der ich interagieren
werde Ich muss das
Warp-2-Gebietsschema einstellen. Also werde ich
meine Zielpfeife auswählen. Dieser Typ hier
in der Detailansicht. Ich werde meine
Warp-Out-Point-Komponente finden. Da ist sie. Ich muss wieder einmal den Standort der Welt
finden. Ich werde hier
meinen Standort auswählen und ihn auf den Weltstandort
ändern. Ich werde mit der rechten Maustaste klicken.
Wir werden das kopieren. Und ich gehe zurück zu meiner interaktiven Pipe und wähle sie aus. Ich werde sie für
mein Warp-2-Gebietsschema hier einfügen mein Warp-2-Gebietsschema hier Einfügen. Okay, lassen Sie uns weitermachen
und dieses Szenario testen. Reinspringen und
spielen. Ich werde gleich hier auf meine Pfeife
springen Ich drücke die
S-Taste auf meiner Tastatur, gehe runter und komme wieder raus Wenn ich jetzt versuche,
mit dieser Pfeife zu interagieren, drücke
ich die Tasten, ich komme dem nahe. Ich werde das nicht durchgehen, weil
diese Pfeife
hier nicht interaktiv ist, wie
Sie hier sehen können. Lassen Sie uns jetzt versuchen, daraus
eine Einbahnstraße zu machen. Versuchen wir, das
so zu gestalten, dass ich auch mit
diesem Typen interagieren kann . Und wenn ich versuche, durch diese Leitung
hochzugehen, werde
ich tatsächlich wieder da
rauskommen. Lassen Sie uns dafür die Richtung umkehren,
wenn Sie wollen. Ich werde diese Pfeife
hier interaktiv machen. Also werde ich weitermachen und das Kästchen ankreuzen.
Ist das ein Fallrohr? Nein, ist es nicht. Ich meine, das ist kein Rohr
, das wir runtergehen, wir werden durch sie
hochgehen. Wo das ins Spiel kommt, ist
das Fallrohr schon
weit am Anfang
dieses Drehbuches. Wenn das falsch ist, werden
wir hier
runterkommen. Wir werden durch das Rohr nach
oben kommen. Okay, wir sagen also,
das ist kein Fallrohr, wir werden durch es
hochgehen. Werden wir aussteigen aus der Röhre
aufsteigen Ja. Es ist unsere Absicht, genau hier aus diesem
Rohr herauszukommen. Also lasse ich den Scheck liegen. Allerdings muss ich dafür ein
Warp-2-Gebietsschema einrichten. Ich wähle dieses Rohr aus,
ich wähle erneut den
Warp-Out-Punkt aus, es ist dort irgendwo in
meiner Leitung vergraben Ich werde
den weltweiten Standort
dafür finden . Ich werde mit
der rechten Maustaste klicken. Ich werde kopieren. Dann wähle
ich hier
meine interaktive Pipe aus und wähle diese aus. Ich werde sie
als mein Warp-2-Gebietsschema einfügen. Jetzt habe ich hier quasi
eine Einbahnstraße eingerichtet, wo ich durch
diese Leitung hinunterfahren und wieder herauskommen kann Und genauso kann ich
durch dieses Rohr hinaufgehen und auf diesem Weg
wieder herauskommen. Lass uns
weitermachen und es testen. Okay, ich mache meine ursprüngliche
Interaktion hier. ich runtergehe, benutze ich hier
die Tastatur, also habe ich dort einfach die S-Taste gedrückt Jetzt springe ich hoch und wenn ich den
Höhepunkt meines Sprungs erreicht
habe, drücke ich die WK Ich gehe durch das
Rohr hoch und komme raus, runter und hoch und hoch Und da haben wir es, Leute. Wir haben unsere
interaktive Kriegspfeife fertiggestellt. nur darauf, dass du
jedes Mal, wenn du diese Kriegspfeifen
in deinem Level
einrichtest, diesen Warp auf das Gebietsschema Das reicht
für die Jungs. Wir sehen uns im nächsten.
71. Blueprint des Spielmodus: Willkommen zurück alle.
Im Laufe der nächsten Videos hier werden
wir
einen Plan für den Checkpoint
zusammenstellen einen Plan für den Checkpoint Und dieser Checkpoint-Plan
wird so aussehen, dass, wenn wir
einen Checkpoint überlappen, Flagge gehisst wird. Ein bisschen
Partikeleffekte gehen los. Es wird unseren
Standort speichern, sodass wir, falls
wir sterben
, an ihrem Checkpoint wieder erscheinen Das ist es also, was uns im Laufe der
nächsten paar Ordnung, hier in unserer funktionierenden Version des Projekts werden
wir damit
beginnen, über
unseren
Third-Person-Spielmodus Blueprint zu sprechen unseren
Third-Person-Spielmodus Blueprint Ohne dass du es gerade weißt. Dieser
Spielplan für Dritte ist in
unserer Projekteinstellung als der Spielmodus-Blueprint angegeben unserer Projekteinstellung als ,
den Jetzt habe ich unsere Projekteinstellungen hier oben
geöffnet, aber nur um dir zu zeigen,
wie du dazu kommst, wenn du ganz oben rechts unter Einstellungen
,
Projekteinstellungen, kommst, so kannst du sie öffnen Ich möchte Ihre Aufmerksamkeit auf diese Option „Karten in Modi“ lenken. Also hier ist unser
Standard-Spielmodus,
der Spielmodus-Blueprint , den unser Projekt verwendet, unser
Third-Person-Spielmodus Dieser
Spielmodus-Blueprint bestimmt
nun anderen Baupläne
, die unser Projekt verwendet Und es spezifiziert Dinge
wie die Figur, die wir verwenden
, also unseren Charakter aus der dritten
Person, sowie unseren Das sind zwei große Dinge. Jetzt sprechen wir über den Gamo-Blueprint
, weil
wir dort unser Respawn-Skript unterbringen werden Weil dies ein Entwurf ist, der von unserem Projekt
verwendet wird. Es ist sinnvoll, es hier unterzubringen. Jetzt
springe ich zu unserem Gamo-Blueprint für BP,
dritte Person, über Gamo-Blueprint für BP,
dritte Person, Ich kann es hier finden,
indem ich auf diesen Ordner klicke. Es befindet sich auch hier in Ihrem Blueprint-Ordner für
Inhalte für Dritte Doppelklicken Sie darauf
, um es zu öffnen. Das erste, was ich
tun werde, ist,
eine brandneue Variable in
meinem Blueprint-Bedienfeld zu erstellen und
auf diese
Plus-Variablen-Schaltfläche zu klicken, um die Transformation zu starten. Wie Sie vielleicht vermutet haben, wird
dies die Variante „Transformation“
sein sein Jetzt ist es sehr wichtig
, hier zu kompilieren und zu speichern. Wir müssen noch keine
Standard-Spawn-Transformation festlegen,
denn diese wird noch kommen Unser allernächster Schritt hier, alles was wir tun müssen, ist
diese Variable zu erstellen und sie dann zu
kompilieren und zu speichern Der Grund, warum wir sie kompilieren
und speichern
wollen , ist, dass wir diese Variable in
unserem Charakter-Blueprint
setzen können diese Variable in
unserem Charakter-Blueprint
setzen Springe zu deinem Charakter-Blueprint in der dritten
Person. Und falls du vergessen hast,
wo sich das befindet, findest du es hier
in deinem Inhaltsbrowser Bp, Charakter aus der dritten Person. Jetzt, hier drinnen, springen
wir
zu unserem Event-Graph. Und wir werden mit der rechten
Maustaste in eine leere Stelle klicken. Geben Sie das Spiel ein. Sie können sehen, dass es hier
bereits
zum Einstellen unseres
Eingabe-Mapping-Kontextes verwendet wird. Sie können in diesem Blueprint nur eines
davon haben. Wir könnten unser Skript
hier erweitern, wenn wir wollten. Aber nur um das
ein bisschen übersichtlicher zu
machen, werde ich einen Sequenzknoten
einfügen, die S-Taste
gedrückt halten
und mit der linken Maustaste klicken. Und ich werde das hier
verkabeln. Und ich werde das hier
drunter verkabeln. Ich werde diesen Bereich genau
hier nutzen, um das
Event erneut zu nutzen, um mit dem Spielen zu beginnen. Lass das ein
bisschen sauberer aussehen. Jetzt werde ich rechten Maustaste auf eine
leere Stelle klicken und den Spielmodus abrufen eingeben . Und welchen Spielmodus
möchte ich bekommen? Ich ziehe mich hier raus und tippe
die
Third-Person-Besetzung in unseren
Third-Person-Spielmodus ein. Der Grund, warum ich
das mache , ist, dass
wir in unserem
Third-Person-Spielmodus gerade eine Variable
namens Spawn-Transformation erstellt Und jetzt möchte ich das einstellen
können. Wenn ich also hier aus
diesem Pin herausziehe, kann
ich Set
Spawn Transform eingeben Wir
kommen also in den
Third-Person-Spielmodus und sagen,
hey, du hast eine Variable namens Spawn-Transformation
in dir Ich möchte in der Lage sein, das einzustellen. Was möchte ich auch
einstellen? Ich möchte es so einrichten, dass unsere Schauspieler unsere Charaktere aus der dritten
Person
transformieren. Wenn ich also mit der rechten Maustaste
auf eine leere Stelle klicke, gebe
ich Get
Actor Transform so ein. Im Wesentlichen wird dadurch
unsere
Spawn-Transformationsvariable, die sich
in unserem Spielmodus befindet, so eingestellt , dass sie
der Ort ist , dass sie
der Ort , an dem unser Charakter
anfänglich spawnt Um das zu verdeutlichen,
klicke
ich mit der linken Maustaste und ziehe um diesen Punkt der C-Taste in meinem
Kommentarfeld wird die
Standard-Spawn-Transformation
unseres Charakters festgelegt Standard-Spawn-Transformation
unseres Charakters Spiel
auf diese Weise beginnt Ordnung, es gibt
noch eine Sache, die ich hier
erledigen möchte , bevor wir
das Video beenden. Und das ist, wir wollen hier eine neue Variable
innerhalb unseres
Third-Person-Charakters
erstellen . Also werde ich hier auf diese
Plus-Schaltfläche klicken. Und ich werde
das unsere Respawn-Größe nennen. Und ich werde hier
unsere Respawn-Größe einstellen, der Typ soll Wenn ich kompiliere, werde ich die Werte dafür drüben
im Detailbereich auf
0,75
festlegen . 0,7 5,0 0,75 Jetzt fragst du dich
vielleicht, warte, warum ich bei dieser Größe
respawn möchte Auch hier werde ich diese Variable
verwenden, um die Respawn-Größe unserer Charaktere
zu bestimmen Der Grund, warum ich
sie auf diese Werte setze, ist dass unsere
Kapselkomponenten vor einigen Videos verwendet wurden Wir haben unsere Standardskala
hier pauschal auf 0,75 Also gleichen wir das im Wesentlichen mit
dieser Variablen ab. Ordnung, wir haben jetzt unsere
anfängliche Arbeit an der Kontrollstelle In Ordnung, wir haben jetzt unsere
anfängliche Arbeit an der Kontrollstelle
erledigt. Lass uns weitermachen und das
kompilieren und sagen. Wir sind jetzt in der
Lage, auch
den Checkpoint nach dem
Klassen-Blueprint zu erstellen den Checkpoint nach dem
Klassen-Blueprint Das kommt als nächstes Video.
Wir sehen uns dort.
72. Checkpoint-Blueprint: Ordnung, willkommen zurück.
Hier
ein kleiner Vorgeschmack was wir in diesem Video
zusammenstellen wollen Das ist unser
Checkpoint-Plan. Wir werden so
weit kommen,
unsere Komponenten zusammenzustellen und
die Details dafür festzulegen Und dann
nennen wir das ein Video. Aber ich wollte dir nur
zeigen, was wir in diesem Video
anstreben. Nun ist es auch wichtig zu beachten, dass
Sie, während wir das hier durchgehen, Ihres nicht
genau so aussehen
lassen müssen , wie meins hier aussieht. Sie können hier in unserer
Arbeitsversion
des Kurses ein
wenig mit den Bildern herumspielen .
Ich werde unseren
neuen Entwurf für die Schauspielerklasse
hier in unserem
Plattform-Blueprint-Ordner erstellen hier in unserem
Plattform-Blueprint-Ordner Ich
klicke mit der rechten Maustaste hier in eine Blueprint-Klasse leerem Raum Dies wird eine
Schauspielerklasse sein und ich werde
diesen BP Underscore Checkpoint nennen diesen BP Underscore Lassen Sie uns weitermachen und
hier die Leertaste
drücken , um es
mit dem ausgewählten Objekt zu öffnen In unserem
Checkpoint-Entwurf können
wir unsere
Standard-Szenenroute sehen, dieses Symbol genau hier Wir fahren fort, indem die erforderlichen
Komponenten
hinzufügen und dann gehen
wir zurück und legen die Details für
jede Die erste Komponente, die
wir
hier hinzufügen wollen, wird ein Box Collider
sein Suchen Sie sich einfach einen Box Collider aus, ich werde dieser Box einen Namen geben Dieser Name wird in Ordnung sein. Wir werden ihn verwenden, um zu erkennen, wann
unser Spieler
dieses Feld überlappt,
um einen Spawnpunkt an
einem Ort in der Welt festzulegen und zu speichern , den wir wiederbeleben möchten In Ordnung, an unserer Kiste befestigt. Stellen Sie also sicher, dass Sie diesen Typen ausgewählt
haben. Wir werden eine
weitere Komponente hinzufügen. Dieses wird ein statisches
Netz sein und das wird sozusagen
unser Flaggendrehpunkt sein . Jetzt werde ich hier mehrere
weitere statische Meshes hinzufügen. das ausgewählt ist, klicke
ich mit der rechten
Maustaste darauf Wir werden
das sofort duplizieren. Sie können den Hotkey-Befehl
zum Duplizieren dieses Befehls sehen. Ich rufe meine Flagge Bas an und drücke dort die
Eingabetaste, wobei
das blau markiert ist Ich kann wieder Control
D ausführen. Dieser wird Arm heißen. Wenn das markiert ist, mache
ich wieder Steuerung D. Und dieser
wird einfach Flagge heißen. Jetzt möchte ich, dass meine Flagge an meinem Flaggenarm
befestigt wird. Also klicke ich mit der
linken Maustaste und ziehe auf meinen Flaggenarm,
sodass Sie anhand des Einrückens genau dort sehen können, wie sich die
Verbindung zusammenfügt Einrückens genau dort sehen können, wie sich die
Verbindung zusammenfügt Okay, als Nächstes gehe ich
zurück und wähle mein Feld aus, weil ich hier
eine weitere Komponente hinzufügen möchte Wenn Sie auf Hinzufügen klicken, wird
dies eine Pfeilkomponente sein. Und hier werde ich meine
Respawn-Transformation umbenennen. Im Grunde wird damit nur
ein Punkt im
Raum definiert , an dem wir den Spieler erneut spawnen werden In Ordnung, wenn alle
unsere Komponenten vorhanden sind, legen wir
die Details für jede Komponente fest Und ich werde die Liste hier einfach durchgehen. Beginnend mit unserer Box
werde ich die Größe der Box festlegen, das heißt, wie groß wird
diese Box sein? Der X-Wert wird 200 sein, der Y-Wert wird 200 sein, der Z-Wert wird 500 sein. Und ich werde die
Ansicht vergrößern, um Ihnen zu zeigen, dass es eine Nummer größer
ist. Ich stelle die
Linienstärke hier auf fünf ein, nur damit dieses
Feld
leichter zu erkennen ist , wenn wir es in unserer Ebene
platzieren. Und jetzt werde ich das
auch in
Z-Richtung
nach oben verschieben , also an der Position. Ich werde das auf 500
setzen. Richten Sie es ein. Und das
scheint im Moment kein großer
Unterschied zu sein. Aber ich werde auch
unsere Drehung hier in
der Z auf 90 ändern . Auch hier wird es nicht nach viel
aussehen, aber
wenn wir das drehen, werden auch alle daran
befestigten Komponenten gedreht. Und das werden wir
für die kommenden Komponenten benötigen. Jetzt ist es auch wichtig
, hier zu beachten, dass Sie Ihre
Box erweitern können, um sie höher Und das solltest du vielleicht ganz
am Ende tun, weil wir nur sicherstellen
müssen , dass der Spieler diesen
Checkpoint-Bereich
passiert Um zu garantieren, dass
sie das passieren, solltest du es vielleicht bis weit in den Himmel
ausdehnen Okay, nachdem das erledigt ist, gehen
wir zu
unserem Flaggendrehpunkt über. Wählen Sie das aus. Ich werde das
statische Netz sofort einrichten. einem Klick auf diese
Materialkugel
im Drop-down-Menü Ich suche nach einem Klick auf diese
Materialkugel
im Drop-down-Menü. Dieses statische Netz sollte in Ihrem
Startinhalt
vorhanden sein . Das kannst du im
Tooltip genau dort sehen. Das Material selbst, Wahl des
Händlers. Sie können entscheiden, was auch immer
das sein soll. Aber ich werde
meins als Grundboden einrichten. Dies ist das Material, das auch
im Startinhalt enthalten ist. Und wenn das alles erledigt ist,
werde ich es verkleinern. Ich möchte es
gleichmäßig in X, Y und Z verkleinern.
Um sicherzugehen, dass ich die Sperre überprüft
habe, mache
ich 0,5 im X und drücke
die Eingabetaste Und weil das
gesperrt ist, wird
es diese Änderung
auf Y und Z Dadurch wird
es
etwas kleiner Dann verschiebe ich die Position in Z-Richtung
nach unten und
setze den Wert
auf minus 400 Dann werde
ich das in X-Richtung auf minus 200 setzen. Das wird es nur ein bisschen
nach hinten schieben. Okay, als Nächstes wähle ich
unsere Flaggenbasis dafür aus. Ich werde das
gleiche statische Match haben. Es wird
Materie sein, Kugel, Kugel. Das Material, das ich hier
verwenden werde ist auch eine einfache Wand, obwohl ich das möchte. Ja, diese weiß
aussehende Wand, die Größe. Lassen Sie uns den Maßstab dafür festlegen. Ich werde
meine Waage entsperren, weil ich das nicht
einheitlich in X machen werde, ich werde 0,5, in
Y werde ich zwei wählen Und bei Z werde
ich auch zwei nehmen. Dann werde
ich für den Standort den
Z-Standort auf minus 500 setzen. Wenn ich das in das X setze, schiebe
ich es
wieder auf minus 200 zurück. Sie können also sehen, dass ich diese Basis
habe sich
im Grunde ein wenig
durch den Boden schneiden wird . Den unteren Teil werden Sie
nicht sehen, und das wird
im Grunde unser Dreh- und Angelpunkt sein. Die Flagge wird von diesem Punkt aus nach
oben schwenken . Okay, wenn das erledigt ist,
lassen Sie uns weitermachen und unsere
Flaggenarmkomponente Next
auswählen. Das statische Netz
, das wir für dieses
Modell hinzufügen werden, wird S M Underscore
Pillar Frame
heißen Auch hier verwende ich dieses
statische Mesh, weil es im
Startinhalt enthalten ist Sie müssen
dieses nicht einfach genau verwenden. Ich benutze ihn, weil er wie eine Art Arm
aussieht. Ich werde jetzt
auch an
der Größe und Lage
herumspielen der Größe und Lage
herumspielen Sie könnten das Material austauschen, ich belasse es
jetzt dabei Aber du könntest es so ändern
, wie du willst. Skala. Ich
nehme 0,5 in X, verdünne es ein wenig, ich lasse Y und Z
1,1 für die Position übrig. Ich setze die
Z-Position auf minus 390, also
nach unten im X. Ich muss
das etwas nach hinten verschieben, also gehe ich für die x-Drehung auf
minus zwei auf
fünf. Ich werde die
X-Drehung auf minus 90 setzen. Und dann drücken Sie dort die Eingabetaste
, um dies nach unten umzuschalten. Als Nächstes holen wir uns
hier
unsere Flaggenkomponente und legen
die Details dafür Für das statische Durcheinander hier klicke
ich genau
hier und wähle
eine Form aus, die Quad-Pyramide mit Unterstrich unterstrichen Ich entscheide mich
wieder für diesen , weil er in
den Stargard-Inhalten enthalten ist Wir werden
eine Dreiecksform haben. Das Material hier,
wieder nach Wahl des Händlers. Ich werde jedoch die Scheitelpunktfarbe
wählen. Ich werde
diese grüne wählen. Das ist im Inhalt
der Engine zu finden. Wenn Sie das nicht
noch einmal sehen , können Sie hier klicken. Klicken Sie auf dieses Zahnradsymbol und vergewissern Sie sich, dass der
Engine-Inhalt aktiviert ist. Dort
lebt das Material oder es ist der Ort, an dem es sich befindet. Ich werde die
Z-Position so einstellen, dass sie
350 am
Ende unseres Arms ist. Stellen Sie die X-Position auf zehn und die Y-Position
auf minus zehn ein. Auch hier habe ich
all diese Parameter
im Voraus bestimmt . Ich werde
dafür sorgen, dass die Waage entsperrt ist. Ich werde den Wert
auf 0,2 und 1,2 erhöhen. werde ich
die Drehung
hier auf minus 90 im X einstellen hier auf minus 90 im X sodass Sie sehen können, dass die
Flagge ausgeschaltet ist. Wenn sich das irgendwann hochdreht, wird
der Flaggenarm nach oben gekippt, und weil die Flagge am Flaggenarm befestigt
ist, wird
sie
mitgenommen. Ordnung, zu guter Letzt haben
wir unsere Respawn-Transformation Auch dies wird einen Punkt im Raum
definieren an dem unser
Charakter wieder erscheinen soll Dafür setze ich die Position auf minus 400 in der Z,
für die Rotation
werde ich sie auch auf
minus 90 in der Z setzen minus 90 in der Z Es ist also ein bisschen schwer zu erkennen, weil ich es ausgewählt
habe, also lassen
Sie mich es einfach abklicken. Aber genau da ist unsere
Pfeil-Komponente. Die Basis dieser Pfeilkomponente ist im Wesentlichen die Stelle, an der
wir unserem Spieler
sagen werden, dass er darin
respawnen soll. Genau dort. Okay, nachdem das alles erledigt ist, werde
ich
weitermachen und das speichern. Und lass uns weitermachen und
eines davon auf unserer Ebene fallen lassen. Nur damit wir eine
Vorstellung davon bekommen, wie das hier in meinem Inhaltsbrowser
aussehen wird . Wir ziehen das in die Länge. Ich hebe
es in die Luft, tippe auf die N-Taste und lege es
auf den Boden Also so wird
es im Grunde aussehen. Und du kannst sehen, dass unser Spieler auf dem Weg sein
wird, das zu überschneiden, wenn er
sich in unserem Level bewegt. In Ordnung, wir
haben einen guten Start hingelegt. Hier sind wir in der Lage,
mit dem Checkpoint-Scripting zu beginnen
73. Checkpoint-Skript: Ordnung, willkommen
zurück. In diesem Video werden wir
das Skript erstellen, damit unsere Flagge hochklappt, wenn unser Charakter dieses
Triggerfeld genau hier überlappt Außerdem legen wir in unserem
Spielmodus-Blueprint den
Respawn-Punkt unserer Charaktere Spielmodus-Blueprint den
Respawn-Punkt unserer Dazu müssen
wir
unsere Box-Komponente auswählen und dafür
ein Event erstellen Wir könnten das tun, indem wir mit der rechten
Maustaste klicken und ein Ereignis hinzufügen. Aber ich möchte
verschiedene Methoden vorstellen, wie man Dinge mit dieser ausgewählten
Komponente
machen kann. Komm in das Detailfenster. Scrollen Sie ganz nach unten. Wir
haben eine Liste von Ereignissen
, die wir hinzufügen können. Machen wir das bei Component
Begin, Overlap. Klicken Sie auf diese Plus-Schaltfläche. Das bringt uns zu
unserem Ereignisdiagramm. Okay? Wir wollen nachschauen , wer der andere Schauspieler hier ist. Wir könnten uns hier rausziehen und einen Spielercharakter auf Augenhöhe schaffen Aber ich
werde das einfach hinter mir
lassen
und
einen Cast für einen Charakter in der dritten
Person machen , das ist der Charakter
, den wir kontrollieren Dies ist eine einfache Überprüfung
, um sicherzustellen, dass es sich um
unseren Charakter aus der dritten Person handelt , der diese Box überlappt Wenn ja,
werden wir dann einen Spielmodus
bekommen Rechtsklick, Spielmodus aufrufen. Wir müssen herausfinden
, welcher Spielmodus. Also
ziehen wir das in die Länge und wechseln in den
Spielmodus, speziell in
unseren
Third-Person-Spielmodus wie diesen Spielmodus, speziell . Und wenn es stimmt, dass unser Charakter
aus der
dritten Person diese Box überlappt, greifen
wir innerhalb unseres Spiels oder
der Blaupause zu Und wir werden die
Spawn-Transformation einstellen. Denken Sie daran
, dass wir hier eine Variable namens
Spawn Transform haben hier eine Variable namens
Spawn Wir werden
sie hier einbauen. Und worauf werden wir es einstellen? Nun, wir werden das auf unsere Respawn-Transformation einstellen. Ich sage Transformation nicht Transformation. Lassen Sie uns zwei Fragen beantworten, diesen Namen
erstellen oder korrigieren. Um zu transformieren, ziehen
wir das rein. Wir werden einen Hinweis
auf unsere Respawn-Transformation erhalten. Das ist diese
Pfeilkomponente
hier unten in unserem Wir bekommen einen
Hinweis darauf. Dann ziehen wir uns hier
raus und tippen Get World Transform, Get
World Transform ein. Also
sagen wir im Grunde, hey, die Welttransformation
unseres Respawn-Punkts genau
dort für unseren Checkpoint Wir werden das
als unsere Spawn-Transformation festlegen,
sobald wir dieses Feld
mit unserem Charakter aus der dritten Person überlappen mit unserem In Ordnung, das ist
alles schön und gut. Nachdem wir das getan haben, werden
wir es einmal tun. Ich werde die Taste
gedrückt halten und mit der linken Maustaste klicken, um einen Once-Knoten aufzurufen. Was wollen wir einmal machen? Nun, wir wollen eine
Animation abspielen, in der unsere Flagge
hochklappt Um das zu tun,
werde ich eine Zeitleiste verwenden. Gehen Sie also zurück zu unserem Event-Graph. Ich klicke mit der rechten Maustaste und
suche nach einem Zeitleistenknoten. Ich
nenne das einfach Rotate Flag. Lassen Sie uns hier unser
Del-Befehl-Update loswerden. Sobald wir
das gemacht haben, werden wir es von Anfang an spielen. Jetzt ist unsere Zeitleiste hier. Wir werden hier
reinspringen. Wir werden
es sehr kurz machen. Es wird eine
Zehntelsekunde sein, 0,1 wird die
Länge unserer Zeitlinie sein. Hier werden wir einen Float-Track
hinzufügen. Klicken Sie also auf Track, Float-Track hinzufügen. Ich werde diese
Flagge im Laufe der Zeit einfach Alpha nennen. Sie werden sehen, warum ich
es nur ein bisschen so nenne. Es wird ein
bisschen sinnvoller wenn ich zeige,
an welchen Knoten das angeschlossen werden soll. Jetzt klicke
ich hier in unserer Timeline mit der rechten Maustaste
und füge einen Schlüssel hinzu. Und dann klicke ich
erneut mit
der rechten Maustaste und füge einen zweiten Schlüssel hinzu. Jetzt wähle ich hier
meinen ersten Schlüssel aus. dieser erste Schlüssel ausgewählt ist, Wenn dieser erste Schlüssel ausgewählt ist, setze
ich die
Zeit auf Null den Wert ebenfalls auf Null. Für meinen zweiten Schlüssel hier setze ich die Zeit auf 0,1 und den Wert auf eins. Es wird hier von oben springen
. Also werde ich auf diese
beiden Pfeile klicken, um es nach oben zu rahmen. Mein erster ist auf 0,0 eingestellt.
Mein zweiter Keyframe ist
auf eine Zeit von 0,1 eingestellt , was
der Länge meiner Timeline und
einem Wert von eins
entspricht . Der Grund, warum wir das
so eingestellt haben, ist, dass
hier in unserem Ereignisdiagramm unser Flaggen-Alpha-Wert im Zeitverlauf jetzt von unserer Timeline ausgegeben
wird. Wir werden diesen
Ausgang verwenden, um ihn an einen Lp-Rotatorknoten anzuschließen, der mit der rechten
Maustaste geklickt Lp-Rotatorknoten anzuschließen, der mit der rechten
Maustaste geklickt Dieser Knoten
funktioniert nun so, dass
wir, wenn A Null ist, bei einer Umdrehung
100% sein werden Wenn B eins ist, werden
wir uns in einer anderen
Rotation befinden, Alpha ist Null. Wir werden
ganz bei A sein. Wenn Alpha eins ist, wir
ganz bei B sein. Und irgendwo
dazwischen
werden wir uns in einem 45-Grad-Winkel befinden. Wir
werden das also verwenden, um die Drehung
unseres Flaggenarms zu bestimmen. Lassen Sie mich Ihnen hier nur
im Wesentlichen zeigen , was
wir in unserem Viewport
erreichen wollen Wir haben diesen Flaggenarm und werden wir
drehen Lassen Sie mich einfach bis hierher
unsere Rotation einbauen. Drücken Sie die Drehtaste. Unsere
Drehung für diesen Flaggenarm, unsere A-Rotation, wird
die Drehung sein , die wir
hier in unserem Viewport sehen Jetzt wird unsere Rotation ganz nach
oben gehen. Wenn unser Alphawert eins ist, wir hier an
dieser Position sein. Wenn unser Alpha-Wert nun bei
0,5 liegt , werden wir
die Differenz im Wesentlichen aufteilen Es wird also in einem
Winkel von 45 Grad
sein . Wenn Alpha Null ist, sind
wir hier, wenn Alpha eins ist Wir sind hier, wenn Alpha
0,5 ist . Wir sind auf halbem Weg
dazwischen So
wird das funktionieren, oder? Gehen wir jetzt zurück zu
unserem Event-Graph. Brauchen wir ein paar
Variablen, um unsere
verschiedenen
gewünschten Rotationen aufrechtzuerhalten? Dazu werde ich schreiben,
klicken Sie hier auf unseren Wert. Wir werden
das zu einer Variablen heraufstufen. Es wird ein
Rotator-Variablentyp erstellt. Jetzt muss ich uns einen
Namen geben, der besser ist als ein. Ich
nenne das Flag Rotate Fangen Sie mit dieser Auswahl an. Ich mache weiter und mache Steuerung
D. Um das zu duplizieren, ich meinen Flaggenarm um das Ende. Und ich setze
das in den Wert ein. Jetzt muss ich
das kompilieren, um hier einen Standardwert
festzulegen. Offensichtlich sind
beide momentan
auf 00,0 gesetzt . Wenn ich nun zu
meinem Viewport gehe und
meinen Flaggenarm nehme und ihn so nach oben drehe, können
Sie sehen, dass
meine Rotationswerte Nullen
sind Wenn es so heruntergefahren ist, sind
meine Rotationswerte negativ 900.0. Ich werde diese Werte hier kopieren. Klicken Sie mit der rechten
Maustaste auf Kopieren Ich möchte, dass dies
mein Startwert ist. Ich werde unter
Flagge
herkommen . Drehe, starte. Ich klicke mit der rechten Maustaste und zahle die Werte für die Bezahlung genau hier rein weil meine gewünschte
Endrotation 0,0 sein
wird. Ich werde
das so belassen hier zu meinem
Ereignisdiagramm zurückzukehren, muss
ich meinem Flaggenarm,
lassen Sie uns
einen Verweis darauf per Drag-and-Drop
in unser Diagramm ziehen, mitteilen , dass
es sich um , dass das Objekt handelt, das
ich drehen möchte Also ziehe ich es
raus und tippe Set Relative Rotation ein. Da unsere Zeitleiste aktualisiert wird, werden
wir auch die
Rotation unseres Flaggenarms aktualisieren. Auf welche Rotation
wollen wir ihn einstellen? Nun, wir wollen hier beginnen,
wenn unser Alphawert bei Null ist. Zu Beginn
unserer Zeitlinie ist
der Alphawert bei Null. Und dann wird sich
dieser Ausgabewert
im
Laufe von 0,1 Sekunden um
0-1 ändern , wenn wir bei Null sind Es wird diese Rotation sein. Wenn wir bei eins sind, also am Ende
dieser Zeitlinie, wir
bei dieser Rotation sein. Und das wird im Laufe
von 0,1 Sekunden
passieren . Das wird unser Skript sein, damit unsere Flagge
nach oben rotiert. Was wir dann tun müssen, ist
etwas Flash und
einige Effekte hinzuzufügen, wenn wir mit der Flaggenrotation
fertig sind. Wir werden auf
dieser fertigen Stecknadel genau hier aufbauen. Dafür werde ich mich zu einem Theaterstück
hinziehen. Ton Zwei D. Ich werde das einfach von der
Lackierung
anbringen , damit Sie sehen können,
wohin das Kabel für das Stück führen
wird. Hört sich wieder an, Wahl des Dealers. Hier mache ich Enter Simulate. Dies ist ein Sound, der in Ihrem Engine-Inhalt enthalten sein sollte
. Du könntest also auf dieses Zahnrad klicken und
sicherstellen, dass du Inhalte für die Engine
hast, aber genau das
werde ich wählen. Und dann
ziehe ich mich von hier fort und mache Spawn-System vor Ort Das System ist ein
Niagara-Partikelsystem. Nun, für meine Vorlage hier werde
ich
diesen Radialausbruch wählen, genau dort in diesem speziellen
Signalweg
existiert Du könntest
am Standort auch einen Spawn-Emitter machen. Nun zu diesem speziellen
Partikel, es ist ziemlich generisch. Es ist nicht besonders auffällig. Also werde ich es sehr groß skalieren, bis
es auf 101010 in der Jetzt muss ich
diesen Standort angeben. Ich habe einen Standort
in meinem, den ich in Respawn Transform ziehen werde in Respawn Transform ziehen Ich werde mich von hier wegziehen. Ich
werde sagen, den Standort der Welt ermitteln. Ich möchte
das eigentlich ein bisschen ausgleichen. Ich werde das erledigen und
auf die Plus-Schaltfläche tippen, damit ich etwas hinzufügen kann. Und ich werde das
um 200 in Z-Richtung ausgleichen. Das wird der Ort sein
, an dem dieses System erzeugt werden soll. Ich klicke mit der linken Maustaste und ziehe mit der Maus herum und tippe auf die C-Taste Ich werde das sagen lassen,
das ist mein Spiel FX und VX. Und dann, genau
hier oben, drehen
wir unsere Flagge selbst Ich lasse das unkommentiert, aber ich ändere dieses
Kommentarfeld hier auf Schwarz Ordnung, also werde ich
versuchen, das
hier in ein paar Ansichten zusammenzufassen hier in ein paar Ansichten zusammenzufassen Also werde ich hier bis
zu einem Punkt gehen,
falls Sie das Video
hier pausieren möchten, um zu sehen, was wir gebaut haben. Noch einmal, das ist
unsere Kiste genau dort. Diese Spawn-Transformation. Wir haben es geschafft, indem wir
hier draußen nach einer Spawn-Transformation
gesucht Das ist eine Variable
, die in unserem
Third-Person-Spielmodus vorkommt Dann ist hier der zweite
Teil unseres Skripts. Falls Sie das Video hier
pausieren möchten, konzentrieren
wir uns einfach auf
diesen oberen Teil, die Drehung der
Flagge genau hier, von 00 auf 0,11.
Und wenn wir damit fertig
sind, werden
wir genau das hier abspielen Okay, offensichtlich wird das noch nicht
vollständig funktionieren. Wir müssen immer noch an der Wiederholung arbeiten, den
Charakter selbst spawnen und das
Drehbuch zum Laufen bringen Aber zumindest sollten wir in der Lage
sein, das zu kompilieren, dieses spezielle
Feld mit unserem Charakter zu
überlappen und sehen, ob die Flagge hochkippt und
ob wir irgendwelche Effekte sehen Und sehen Sie sich einige Effekte an, und hier sind einige
Effekte. Also los geht's. Ich werde reinspringen und spielen. Ich habe meinen Checkpoint da,
versuche das zu überlappen Da haben wir es, die Flagge geht hoch, wir sehen ein bisschen dort,
hier, ein bisschen Jazz Und das scheint wie beabsichtigt zu
funktionieren. Ich werde versuchen, das noch einmal zu überlappen
. Sie können sehen, dass wir diesen
Effekt nur einmal erzielen. Und das ist alles schön und gut. Ordnung Leute, wir sind
jetzt in einer guten Position, um
an unserem Respawn-Skript zu arbeiten , das als Nächstes in unserem Spielmodus
Blueprint
erscheinen In Ordnung Leute, wir sind
jetzt in
einer guten Position, um
an unserem Respawn-Skript zu arbeiten, das als Nächstes in unserem Spielmodus
Blueprint
erscheinen wird.
Wir sehen uns dort
74. Respawn-Skript des Spielemodus: Willkommen zurück. Jetzt haben wir einen Checkpoint-Blueprint,
in dem wir
eine Spawn-Transformationsvariable
innerhalb unseres
Spielmodus-Blueprints setzen eine Spawn-Transformationsvariable innerhalb unseres
Spielmodus-Blueprints Lassen Sie uns weitermachen und in unseren
Third-Person-Spielmodus selbst eintauchen , um unser
Respawn-Skript einzurichten Dazu werden wir
in unseren Inhaltsbrowser eintauchen. Und ich werde in
meinem Third-Person-Spielmodus beginnen. Aber ich werde auch
sofort meinen
Third-Person-Charakter
öffnen . Weil ich
unterwegs auf etwas in
unserem
Charakterentwurf in der dritten Person hinweisen unserem
Charakterentwurf in der dritten Person Also mach weiter und
öffne beide hier in unserem
BP-Third-Person-Spielmodus Wir beginnen
im Event-Diagramm, indem wir mit der rechten Maustaste klicken und nach einem Startknoten suchen
. Auch dies wird ausgelöst, wenn wir mit dem Spielen beginnen. Und was möchte ich nach Begin Play
machen? Nun, ich werde
klicken, ich werde Spielercharakter bekommen. Und ich werde aus diesem Knoten
herausziehen. Und wir werden für einen Charakter aus der
dritten Person casten. Und Sie werden gleich hier sehen,
warum. Jetzt werde ich in
meinem Spielmodus-Blueprint von hier
zu meinem Charakter aus der dritten Person übergehen jetzt in unserem Charakter aus der dritten
Person Wenn du jetzt in unserem Charakter aus der dritten
Person auf dieses Zahnradsymbol
in der Leiste „Mein Blueprint“ klickst, zeige
ich vererbte Variablen Ich zeige all diese
verschiedenen Dinge genau hier. Wenn ich das ausschalte, werden Sie hier unten
keine
Event-Dispatcher sehen hier unten
keine
Event-Dispatcher vererbte Variablen anzeigen Ich lenke Ihre
Aufmerksamkeit auf diesen Event-Dispatcher-Bereich Der Grund, warum ich deine
Aufmerksamkeit hier unten lenke, ist wenn wir unter das
Event-Dispatch-Spiel fallen, wir haben diesen
Event-Dispatcher für unser Charakter zerstört wird Wenn unser Charakter zerstört wird, können
wir
mithilfe eines Event-Dispatchers in einem anderen Blueprint aufrufen, dass
etwas anderes
passiert Ich habe diesen
speziellen Event-Dispatcher nicht erstellt. Das geht mit unseren
Charakterklassen-Eltern einher. Der Grund, warum ich darauf hinweise
, ist, dass
dies in unserem Charakter aus der
dritten Person existiert. Wir können
innerhalb anderer Baupläne etwas geschehen lassen. Wenn unser Charakter aus der dritten Person zerstört
wird, stirbt er. Jetzt gehe ich zurück in unseren Third-Person-Spielmodus. Ich werde aus unserem
SBP einen Third-Person-Charakter herausziehen und nach
Destroyed suchen Und ich werde ein Schild mit der
Aufschrift Destroyed einbauen. Das wird zwei Knoten
einbringen. Was das mit sich bringt,
ist ein maßgeschneidertes Ereignis. Und ich werde dieses benutzerdefinierte
Ereignis bei seinem aktuellen Namen
Destroyed Event belassen , ebenso
wie bei diesem Bind-Knoten. Was wir
hier tun , ist, dass
wir zu Beginn des Spiels quasi in unseren
Charakter aus der dritten Person
hineingreifen und sagen, hey, wenn du zerstört bist, werden
wir darauf achten
, wenn das passiert. Wenn das passiert, werden wir dann aus dieser Stecknadel
heraus feuern. Dieses Ereignis, das Spiel beginnt
und dieses Ereignis an
dieses unzerstörte Ereignis für
unseren
Charakter aus der dritten Person zu binden dieses unzerstörte Ereignis für , bedeutet im
Grunde , darauf zu achten,
wenn das bei unserem Charakter aus der
dritten Person passiert Und wenn es passiert, dann das Baby gleich hier raus Das können wir für
unseren gewünschten Respawn verwenden. Wenn wir das in die Länge ziehen, können
wir einfach nach einem Spawn-Schauspieler aus der Klasse
suchen Spawn-Schauspieler aus der Klasse
suchen Der Schauspieler, auf den wir
antworten möchten, sind im Grunde wir
selbst, ein weiterer Charakter aus der dritten Person Hier unter Unterricht gebe
ich die dritte Person ein, ich suche nach einem Charakter aus der dritten
Person Natürlich muss ich angeben, wo ich antworten möchte. Nun, rate mal was. diesem
Third-Person-Spielmodus
haben wir diese Spawn-Transformation erstellt, haben wir diese Spawn-Transformation erstellt um sie mit unserer
Spawn-Transformation hier zu Beachten Sie, dass wir die Werte
dieser Variablen von unserem BP-Checkpoint
aus
auffüllen dieser Variablen von unserem BP-Checkpoint
aus Wenn wir dieses Feld überlappen, legen wir hier
tatsächlich die Koordinaten für
unsere Spawn-Transformation Wir setzen es auf
die Respawn-Transformation, unseren Großartig. Gehen wir zurück in
unseren Third-Person-Spielmodus. Das ist alles schön und gut, aber das würde nur beim
ersten Mal funktionieren. Und wir wollen das so machen, dass dieses Respawn-System funktioniert, wenn wir immer wieder
sterben Und es gibt noch ein
paar andere Dinge, um die wir uns kümmern müssen Das erste ist unser Charakter aus der
dritten Person Wenn sie erscheinen, wollen
wir sicherstellen, dass
sie klein sind Wir möchten, dass sie für unsere Kapselkomponente diese
Skala von 0,75 für unsere Kapselkomponente diese
Skala Um das auch hier in unserem Spielmodus zu gewährleisten, werde
ich
nach dem Respawn einen Charakter aus der dritten Person von diesem Rückgabewert entfernen Und ich werde die Kapselkomponente
eingeben. Wir holen uns
die Kapselkomponente und dann werde
ich hier rausziehen. Und ich werde auch die Respawn-Größe
finden, unsere Respawn-Größenvariable, die unserem
Charakter aus der dritten
Person existiert Wir sprechen hier von dieser
Variablen, die pauschal auf
0,75 gesetzt ist Was wir nun
tun werden, ist unserer
Kapselkomponente
herauszuziehen und ich
sage , Weltskala drei
D setzen . Und dann gebe ich unsere Antwortgröße ein, die auf
breiter Front auf 0,75 gesetzt ist, um sie so zu gestalten, dass
unsere Caple-Komponente garantiert flächendeckend 0,75 beträgt Im Grunde
wird unser Charakter so klein sein. Okay. Also das ist das Erste
, was wir tun müssen. Das nächste, was wir
tun müssen , ist sicherzustellen,
dass
wir tatsächlich Besitz, eine
gewisse Kontrolle über
diesen Charakter erlangen . Um das zu tun, schreibe ich
Klick auf eine leere Stelle. Den Player-Controller holen ist die erste Notiz, nach der ich suchen
werde. Dann ziehe ich das raus
und tippe Besitz ein. Bei dieser Besitz-Funktion müssen
wir nicht
nur den Controller angeben, sondern auch, welche Figur
wir besitzen wollen Nun, wir können
hier
einfach
unseren Charakter aus der dritten Person herausziehen , den wir gerade spawnen Stecken Sie es hier in unsere Spielfigur ein. Und dann doppelklicke ich einfach
ein paar
Mal auf diesen Draht, nur um
ein paar Umleitungsknoten einzufügen , damit das alles
schön und ordentlich aussieht Okay, das ist alles schön und gut, aber schauen Sie sich einfach unsere aktuelle Einrichtung
an Das funktioniert nur
beim ersten Mal. Zu Beginn des Spiels sagen
wir also im Grunde, hey, achte
darauf, wenn unser Charakter aus der dritten Person zerstört wird. Und wenn sie zerstört sind, werden
wir tatsächlich
einen Charakter aus der dritten Person hervorbringen und wir werden sie besitzen. Wenn wir jedoch sterben, haben
wir keine
Möglichkeit, darauf zu warten, dass sich dieses Ereignis erneut
ereignet Wie können wir
dieser Situation also Abhilfe schaffen? Nun, was wir hier
tun können, ist mit der rechten Maustaste in eine
leere Stelle hier oben zu klicken. Ich werde benutzerdefinierte Ereignisse eingeben
. Ich nenne das Respawn und füge es genau an derselben Stelle ein, an der
unser Event beginnt Im Grunde genommen, hey, lasst uns noch einmal
nach dem zerstörten Event-Dispatcher in unserem Charakter aus der dritten Ganz am Ende
, nachdem wir das benutzerdefinierte
Respawn-Ereignis erstellt
haben, können
wir es von hier wegziehen
und Respawn eingeben Im Grunde ist das, was wir
hier tun wir zu
Beginn des Spiels das
erste Mal darauf warten
, dass das
Event zerstört Und tatsächlich wird das
dann beim Spawn
eines neuen Third-Person-Charakters ausgelöst
, den wir dann kontrollieren können Dann sagen wir im Grunde, oh ja, das Letzte Achten wir darauf
, dass dieses unzerstörte Ereignis erneut eintritt Damit wir immer darauf achten können
, wenn unser Charakter zerstört wird,
damit wir ihn wiederbeleben können. Okay, lass uns weitermachen und das
kompilieren und speichern. Und lassen Sie mich
das hier zusammenfassen falls Sie
einen Screenshot davon machen möchten. Schau genau, was wir gemacht haben. Gleich springen wir rein und
spielen hier. Aber um das wirklich zu testen, muss
ich sicherstellen, dass wir hier
in unserem Level-Editor eine Möglichkeit
haben,
uns umzubringen . Lass mich sichergehen, dass wir hier
ein paar
Flammenarme haben . Das sollte uns früh
genug dazu bringen , reinzuspringen und zu spielen. Also gut, ich werde diesen Checkpoint genau hier
überqueren diesen Checkpoint genau hier
überqueren Wir haben unseren Respawn-Punkt festgelegt. Lass mich weitermachen und
auf einen Flammenarm stoßen. Hier bin ich gestorben
und wie Sie sehen können, antworte
ich genau dort,
wo ich hingehört habe.
Es scheint, als würde ich den gewünschten Job machen. Gut gemacht Leute. Wir haben jetzt ein Checkpoint- und
Reaktionssystem eingerichtet Wir sehen uns alle im nächsten Video.
75. Spieler-Death-Sequenz #1: In Ordnung, willkommen
zurück alle. In den
nächsten Videos werden
wir
daran arbeiten, eine Todessequenz für Spieler zu erstellen . Das wird so sein, dass unser Spieler in die
Luft geworfen wird, durch die Welt
fällt und am Checkpoint
reagiert Wir werden auch
daran arbeiten,
in diesem Abschnitt des Kurses
eine sofortige Todesgefahr
zu schaffen eine sofortige Todesgefahr in diesem Abschnitt des Kurses
eine sofortige Todesgefahr
zu Damit wir in eine solche Grube
fallen,
sterben und dann auch
wieder an diesem Checkpoint landen Aber wir werden
damit beginnen, diese Todessequenz für Spieler
zu erstellen Todessequenz für Spieler
zu Ordnung, zurück in unserer funktionierenden Version des Projekts werden
wir damit beginnen
, ein Drehbuch
in unseren
BP-Third-Person-Charakter einzufügen . Finden Sie also Ihren Weg zum Ordner mit den Blueprints der dritten
Person. Da ist unser
BP-Third-Person-Charakter. Doppelklicken Sie auf diesen
Typen, um ihn zu öffnen und zum Ereignisdiagramm zu gelangen. Wir haben hier schon eine Menge Drehbuch
drin. Ich zoome einfach mit dem Scrollrad
heraus und finde
vielleicht eine leere Stelle in dieser Region. Ich zoome nach oben
und erstelle zunächst ein benutzerdefiniertes
Ereignis. Klicken Sie mit der rechten Maustaste. Wir geben
Benutzerdefiniertes Ereignis ein
und nennen
dieses benutzerdefinierte Ereignis. Lassen Sie mich noch weiter vergrößern. Steuerung gedrückt halten
und heranzoomen. Ich nenne diesen Spieler stirbt. Wenn dieses benutzerdefinierte
Event aufgerufen wird, spielen
wir
eine Todessequenz. Jetzt möchte ich nicht warten müssen
, bis ich auf einen Feind stoße oder
in
eine Grube falle , um dieses Ereignis auszulösen. Ich möchte das im Editor
auslösen können. dieses benutzerdefinierte Ereignis . Wenn ich
das ankreuze hier
im Detailbereich
ausgewählt ist, habe ich dieses
Kontrollkästchen namens Im Editor aufrufen , mache
ich es so, dass
ich manuell aufrufen kann, dass
dieses benutzerdefinierte Ereignis ausgelöst wird ,
während ich das Spiel spiele. Darauf kommen wir
gleich zurück. Das ist einfach eine wirklich einfache Methode , die es uns ermöglicht,
diese Funktionalität zu testen, ohne auf diesen Feind
stoßen zu müssen oder eine Pip
hinunterfallen Okay, als Nächstes werden
wir hier eine Funktion erstellen Wir können eine Funktion drüben
im Bedienfeld „Mein Blueprint“ erstellen. Funktionen Klicken Sie auf diese
Plus-Schaltfläche, um eine Funktion zu erstellen. Und wir werden eine
Funktion namens destroy a x erstellen. Als wir diese Funktion erstellt
haben, haben wir hier oben einen neuen Tab geöffnet, in dem wir
die
gewünschte Funktionalität hier hinzufügen können . Das Erste, was ich tun
werde, wenn diese Funktion aufgerufen wird, ist, dass
ich von
hier wegziehe und play eintippe. Sound Two D, der Sound, den wir spielen werden
, ist der von Mario. Sound, ich werde Mario sterben lassen. Danach klicken
wir mit der rechten Maustaste auf Spielercharakter suchen. Wenn wir gestorben sind, wollen wir nicht mehr,
dass Eingaben
registriert werden. Also werde ich auch mit der rechten Maustaste klicken und Player-Controller holen, Spielercharakter
holen, Player-Controller holen. Und wenn ich aus meinem
Get Player Controller herausziehe, gebe
ich disable input ein. Beachten Sie jetzt, dass, wenn Sie das getan haben,
was ich gerade getan , es
automatisch mit dem Ziel verbunden wird. Eigentlich wollen wir
das Get
Player-Controller nach unten auf diesen
Player-Controller-Eingang verschieben , um die Steuerung
gedrückt zu halten und mit der linken Maustaste zu klicken. Und stellen Sie sicher, dass Sie das an
den
Player-Controller anschließen und den Spielercharakter als
Ziel eingeben. Okay, also spiel. Sound Wir werden den Eingang
deaktivieren. Als Nächstes ziehen
wir uns von hier
weg und wir werden den Emitter an der Position
spawnen Auch hier können Sie das
Spawn-System am Standort ausführen, wenn es ein Niagara-Partikelsystem handelt
, das Sie spawnen möchten Dafür werde ich die alte Explosion verwenden, die
im Starter-Inhalt zu finden ist Aber auch hier gilt die Wahl des Händlers, Sie können hinzufügen, was Sie wollen. Ich werde das Ganze hochskalieren, damit ich
in glorreicher Pracht ausgehe, es auf breiter Front
auf 3,3
hochskalieren Ich muss das mit einem Standort angeben. Wo würde ich diese
Explosion gerne erzeugen? Nun, ich kann aus „Spielercharakter auswählen Standort des Schauspielers
herausholen Das wird der Ort sein, an dem ich in
diesem Partikeleffekt spawnen möchte Okay, wir sind noch nicht fertig,
also halte ich die rechte Maustaste gedrückt und
schwenke einfach ein bisschen weiter Als Nächstes
möchte ich einen Verweis auf meine Komponente zur
Charakterbewegung einfügen. Gehe nach links klicken und ziehen. Und dann ziehe ich
es raus
und tippe deaktivieren ein. Wenn ich sterbe, möchte
ich im Grunde sofort aufhören. Und das wird sicherstellen,
dass jegliche Bewegung zum Stillstand gekommen ist. Darüber hinaus
möchte ich
hier oben einen Verweis
auf meine Kapselkomponente einfügen. Ziehen Sie das per Drag & Drop. Dann ziehen wir das
raus und setzen Kollision ein. Der Knoten heißt Set
Collision enabled. Ich möchte sichergehen, dass
dieser Wert auf Kollisionsfreiheit eingestellt ist ,
damit mein Charakter
einfach durch alles hindurchfällt. Dann werde ich mein Chaos
Re
reinbringen , das ist das eigentliche Mannequin
selbst. Zieh das rein Dann ziehe ich das
weg und tippe Animation ein. Dafür kann ich
eine neue Animation zum Abspielen einbauen. Wenn ich auf dieses Drop-down-Menü klicke, erscheint
eine Fallschleife. Sie können das
Verzeichnis genau dort sehen. Es ist im Spiel enthalten, Charaktere, Mannequins, Animationen, viele.
Das ist. Siehst du, wie das aussieht?
Wenn ich darauf klicke, ist
es irgendwie so, weißt du,
hey, ich falle irgendwie. Ich dachte, das
wäre ziemlich gut. Aber auch hier gilt die Wahl des Dealers.
Sie können wählen, welche
Animation Sie spielen möchten Sie können festlegen, dass es sich um eine
Endlosschleife handelt, wenn Sie möchten. Das wird also unsere Funktion sein , die wir
hier gleich aufrufen werden. All diese Funktionen sind
jetzt
in einer Funktion gespeichert , die,
wenn wir diese Funktion aufrufen, im Grunde genommen
viele
andere Funktionen aufrufen
wird .
Ziemlich praktisch, finde ich. Okay, als Nächstes werden
wir in unserem, meinem Blueprint-Panel hier, meinem Blueprint-Panel hier,
unseren eigenen Event-Dispatcher erstellen ,
genau hier unten Also klicken Sie auf diese Plus-Schaltfläche
und wir werden
das R Starts Death Sequence nennen das R Starts Death Also gut, das wird in
unserem
Event-Dispatcher-Bereich hier unten erstellt unserem
Event-Dispatcher-Bereich hier unten Mit einem Event-Dispatcher rufen
Sie das Ereignis auf, und dann können
alle anderen Blueprints
, die auf dieses Ereignis warten Auf diese Weise sind die
Empfangs-Blueprints,
die abhören,
wenn dieses Ereignis eintritt, in etwa
so , wie
Abonnenten, die darauf warten,
benachrichtigt zu werden , wenn ihr
Lieblingsstar oder -sportler einen Tweet verschickt,
Abonnement-Blueprints, die darauf warten, dass dieses Ereignis eintritt, dann entsprechend reagieren Das heißt, sie können
ihr eigenes Skript
als Reaktion auf dieses Ereignis ausführen,
das gerade eingetreten als Reaktion auf dieses Ereignis ausführen,
das Das wird gleich
ins Spiel
kommen wenn wir
unseren Block benachrichtigen , darauf zu achten,
wann dieses Ereignis eintritt. Okay, damit startet der Spieler Death Sequence Event
Dispatcher an Ort und Stelle Wir können jetzt
zu unserem Event-Graph zurückkehren. Im Grunde genommen verlassen
wir diesen Funktions-Tab und wir können anfangen, auf
unseren Spielerwürfen aufzubauen , dem benutzerdefinierten Event. Also das Erste, was ich tun
werde, ist, wenn unser Spieler stirbt,
wenn das aufgerufen wird, werden
wir
unserem Destroy-Akteur FX sagen, diese Funktion genau
hier aufgerufen werden soll. Als Nächstes ziehen
wir unseren
Event-Dispatcher hierher, klicken mit der
linken Maustaste und ziehen ihn hinein Und dann
bekommst du dieses kleine Untermenü. Wir wollen das
Event Dispatcher nennen. Es wird wieder
dieses kleine
Umschlagsymbol haben , das im Grunde einen Tweet für
alle anderen Blueprints aussendet , die auf dieses bestimmte Ereignis warten dieses bestimmte Ereignis Ordnung, und was
wir hier tun wollen, indem wir
einfach die
rechte Maustaste gedrückt und ein bisschen
weiterkeuchen,
ist, dass ich hier mit der rechten Maustaste
in eine leere Stelle klicke Und ich werde den Schauspieler transformieren
lassen. Welcher Schauspieler wird das tun, im Grunde
unser Charakter aus der dritten Person. Wir wollen wissen, wo sich dieser Schauspieler der Welt
befindet und wo er rotiert
. Und der Grund, warum ich das haben
möchte, ist
, dass ich mit der rechten Maustaste auf
diesen Rückgabewert klicken möchte und ihn
zu einer Variablen heraufstufen , dass ich mit der rechten Maustaste auf
diesen Rückgabewert klicken werde . Diese Variable wird Start Death Transform
heißen. Jetzt werden wir das etwas später
in diesem Skript verwenden ,
nachdem wir
eine Zeitleiste erstellt haben
, von der aus unsere
Todessequenz beginnen soll. Dieser herunterfallende Effekt. Okay, das nächste, was wir tun
werden, ist
einen Verweis auf unser Mesh einzubringen. Nochmals, das wird unser Mannequin hier
sein. Ziehen Sie das per Drag-and-Drop aus
dem Komponenten-Panel hinein. Und dann
ziehen wir das in die Länge und lösen uns von
den Komponenten Dadurch wird dieses Netz im Wesentlichen von den größeren Kapselbestandteilen des
Charakters in der dritten Person gelöst, sodass es aufgrund
dieser verschiedenen Regeln nach unten fallen kann Wir werden
all das ändern, um die Welt zu erhalten. Und das
wird der erste Teil unseres Death-Sequenz-Skripts sein. Und genau hier sind wir noch lange nicht
fertig. Als Nächstes müssen wir einen Zeitplan hinzufügen. Aber wir werden dieses Video
nennen und dann mit Teil zwei
weitermachen. Sie können weitermachen und
kompilieren und speichern, um sicherzustellen, dass Sie
Ihren Fortschritt hier gespeichert haben. Und dann
sehen wir uns alle im nächsten Video, in dem wir das
beenden.
76. Spieler-Death-Sequenz #2: Willkommen zurück zum zweiten Teil
unserer Player-Death-Sequenz. Lassen Sie uns wieder in
unseren
Charakterentwurf für Dritte eintauchen unseren
Charakterentwurf für Dritte Hier haben wir im
letzten Video mit unserer Funktion „
Von Komponenten getrennt“ aufgehört letzten Video mit unserer Funktion „
Von Komponenten getrennt Jetzt fügen wir eine Zeitleiste
hinzu, klicken Sie mit der
rechten Maustaste in eine leere Stelle. Wir werden eine Zeitleiste hinzufügen, eine
Zeitleiste hinzufügen. Ich werde diese
Zeitlinie meine Todesanimation nennen. Und ich werde das sofort
anschließen. Ich werde das von Anfang an spielen. Es ist nicht wirklich wichtig, wie wir
das alles miteinander verbinden werden Wenn der Spieler von Anfang an spielt, spielen
wir von Anfang an. Doppelklicken wir dann
darauf, um es zu öffnen. Dann haben wir hier oben gerade einen
neuen Tab geöffnet ,
damit wir
unsere Animation hier,
unsere Zeitleiste, anpassen können . Das wird ein Float-Track
sein. Lassen Sie uns also weitermachen und einen Float-Track
hinzufügen. Ich werde dieser Bewegung einen Namen geben. Ich werde meine
Gesamtlänge hier
auf 1,5 Sekunden festlegen . Dann werde ich
drei Keyframes hinzufügen. Also werde ich
die Umschalttaste gedrückt halten und ein-, zwei-
und dreimal mit der linken Maustaste
in das gleiche Muster klicken . Und dann mache ich weiter und
lege die Werte für
jeden dieser Werte fest. Ich wähle diesen ersten aus, die Zeit wird Null sein und der Wert
wird Null sein. Den zweiten hier werde
ich auswählen, die Zeit wird 0,5
Sekunden sein und der Wert
wird 500 sein. Und dann
wähle ich mein letztes Schlüsselbild aus, genau hier in der Zeit
wird es 1,5 Sekunden sein und der Wert wird
negativ 1.000 sein. Auch wird
es
weit aus dem Diagramm herausspringen. Wenn Sie also auf
diese Pfeiltasten klicken, sollten
Sie sie so einrahmen
. Ich benutze nur das
Scrollrad, um nach hinten zu zoomen. Nun, das ist ein
etwas hartes Diagramm. Es ist ****, ****. Ich möchte, dass es gekrümmt ist, also kann ich es krümmen,
indem ich mit
der linken Maustaste klicke und an all diesen verschiedenen Punkten ziehe Und dann kann ich mit der rechten Maustaste auf
einen beliebigen Punkt klicken und einfach die
automatische Interpolation durchführen Das wird diese
glatte Kurve wie diese erzeugen. Nun, das soll
unsere Mesh-Animation sein. Also im Grunde genommen
in die Luft geschleudert zu werden und
dann herunterzufallen Nachdem wir diesen Track hinzugefügt haben, können
wir direkt hier aus unserer Todesanimation,
unserer
Timeline, aussteigen direkt hier aus unserer Todesanimation,
unserer
Timeline, Gehen Sie zurück zu unserer Ereignisgrafik. Wir sehen jetzt diese Bewegungsausgabe. Und im Wesentlichen
werden wir
diese Bewegungsausgabe zum Hinzufügen verwenden . Wir werden
einen Operator
zu einer bestimmten Z-Position hinzufügen . Wir werden jetzt
einen Hinweis auf unsere
Start-Death-Transformation einbringen . Wenn wir das reinbringen,
werden wir das bekommen. Denken Sie weiter oben im
Drehbuch daran, dass wir, wenn
wir sterben, im Grunde unseren aktuellen Standort
abrufen und
diesen in einer Variablen speichern. Und der Grund, warum wir
diesen Koordinatensatz,
wenn Sie so wollen,
innerhalb dieser Variablen speichern diesen Koordinatensatz,
wenn Sie so wollen, ,
ist, dass wir ihn
hier als Startposition verwenden können hier als Startposition ,
von der aus
diese Todesanimation aus dieser
Start-Todes-Transformation
heraus beginnen soll . Ich ziehe es in die Länge
und sage Pause. Der Grund, warum wir das
aufbrechen, ist, dass uns wirklich nur die
Standortinformationen interessieren. Also werde ich mit der linken Maustaste klicken
und die Maus von hier wegziehen Wir werden
diesen Vektor in seine X-, Y- und Z-Komponenten aufteilen. Im Wesentlichen
wird das Z
unserer Starttiefentransformation
zur Wertausgabe
aus unserer Zeitleiste hinzugefügt unserer Starttiefentransformation . Wieder einmal
wird sich unser Zeitplan ändern. Dieser Wert wird
von Null bis 500 ausgegeben, einer
halben Sekunde
und dann nach 1,5 Sekunden auf
minus 1.000. Dieser Wert wird sich über einen Zeitraum
von
1,5 Sekunden ändern , wie wir
gerade hier erwähnt Okay, all das wird notwendig
sein, weil
wir es
letztendlich verwenden
werden, um eine Verbindung zu
einem bestimmten relativen Standort
und Rotationsknoten herzustellen Wir wollen hier die
relative Position
und Rotation unseres Meshs festlegen . Ziehen wir das in unser Diagramm. Da ist unser Netz.
Zieh dich hier raus. relative Position und
Rotation fest , wenn wir unsere Zeitleiste
aktualisieren. Genau hier. Da fließen
wir rein. Und den neuen Ort, den wir
hier rausziehen werden, werden
wir einen Vektor erstellen. Einen Vektor erstellen. Wir werden die X- und Y-Werte
von unserer Ausgangsposition aus beibehalten . Das ist alles in Ordnung. Wir
wollen nur die Z-Position ändern. Das Ergebnis dieser
Mathematik hier ist, dass unser Netz
im Grunde genommen in die Luft steigt und dann wieder nach unten
fällt. Jetzt, nach diesem kleinen
Skript hier, werde
ich einen Delay-Node
einbauen. Ich werde das um 2,5
Sekunden verzögern. 2,5 dann werde ich mich von
hier wegziehen und Schauspieler sagen. Gemeint ist unser Charakter aus der dritten
Person. Also, warum 2,5 Sekunden? Nun, durch einige Tests
habe ich herausgefunden, dass das ungefähr genug Zeit
war, um sicherzustellen, dass unser Spieler vom Bildschirm
gefallen ist. Das wird also im Grunde
unser Drehbuch sein. Und ich werde
hier einfach versuchen
, rückwärts zu arbeiten , damit Sie
das Video bei
Bedarf anhalten können , damit Sie alles
sehen können , was
wir hier zusammengestellt haben In Kürze können
wir weitermachen und versuchen, können
wir weitermachen und versuchen dieses benutzerdefinierte Ereignis
manuell aufzurufen Lassen Sie uns weitermachen und hier kompilieren und speichern, um
sicherzustellen , dass alles gut aussieht. Um das zu testen, werde ich hier zurück zu meinem
Level-Editor
springen. Ich werde hier im
Level-Editor auf diese
drei Punkte klicken . Und ich werde
von einem neuen
Editor-Wiedergabefenster zu meinem
ausgewählten Viewport wechseln Editor-Wiedergabefenster zu meinem
ausgewählten Viewport Ich
werde das jetzt tun, weil ich jetzt in meinem Viewport
spielen kann, aber auch meinen
Outliner sehe Alle Schauspieler in dieser
gelblich-orangen Farbe. Sie wurden
hier zu Beginn des Spiels automatisch generiert. Sie existierten nicht, bis
wir das Spiel gespielt haben. Dadurch kann ich meinen Charakter aus der dritten
Person
auswählen. Und Sie können sehen, dass ich hier
reinklicken und mich
bewegen könnte , um meinen
Mauszeiger zurückzubekommen. Es ist nur die Umschalttaste und
eine, die
meinen Mauszeiger zurückbringt , wenn der
Mauszeiger ausgewählt ist. Wenn du hier unten in
deinem Detailbereich nach einem Spieler suchst hier unten in
deinem Detailbereich ,
wie du gerade gesehen hast, kann
ich meinen Spielertod finden. benutzerdefinierte Ereignis wird jetzt hier im Editor angezeigt,
sodass ich es aufrufen kann. Das eignet sich hervorragend für
Testzwecke, also muss ich nur
darauf klicken und Sie werden
sehen, wie mein Spieler
diese Todessequenz spielt. Toll zum Testen. Los geht's. Behalte also diesen
Charakter im Auge, wenn ich
darauf klicke . Da haben wir's. Charakter fliegt
hoch, geht runter und es funktioniert wie
vorgesehen. Das ist großartig. Aber lassen Sie uns jetzt
dafür sorgen, dass das tatsächlich
in einem relevanten Skript funktioniert in einem relevanten Skript ,
denn das war nur zu
Testzwecken. Wenn wir nun wieder in
unseren
Charakter aus der dritten Person eintauchen und unser Skript zum
Anpassen der Trefferpunkte
finden. Und ich werde hier unter
mein
Panel „Ergebnisse suchen“ gehen . Ich könnte es einfach hier finden, indem
ich mich in meiner Grafik umsehe. Aber nur um zu zeigen,
was man hier alles machen kann, oben habe ich ein Fenster, ich habe Ergebnisse suchen aktiviert. Wenn ich also einfach anpassen eintippe, Punkte
drücke und dann die Eingabetaste drücke, siehst
du die Ergebnisse, die ich erhalte. Und wenn ich einfach darauf
doppelklicke, finde
ich mein Script zum Anpassen von
Treffern. Es wird mich
zu diesem benutzerdefinierten Event weiterleiten. Was ich jetzt tun möchte,
ist, dass ich in diesem Teil meines Diagramms auftauchen möchte. Was wir hier gemacht haben,
ist ,
dass wir einfach unseren Charakter aus der dritten Person zerstört haben, quasi sofort, als ihm die Trefferpunkte ausgegangen sind. Was ich tun möchte, ist
, dass ich das
hier oben, ganz oben in
diesem wahren Zweig, loswerden hier oben, ganz oben in will.
Lösch das raus. Stattdessen kann ich diese Destroy
Actor FX-Funktion eher nennen. Es tut mir leid, das ist nicht
das, was wir tun wollen. Wir möchten unseren
Spieler stirbt als benutzerdefiniertes Event bezeichnen. Lassen Sie mich hier einfach weiterziehen und Spieler stirbt
eintippen. Dies wird
das benutzerdefinierte Ereignis
im Wesentlichen dann aufrufen, wenn uns die Trefferpunkte
ausgegangen sind. Wenn das stimmt und ich darauf
doppelklicke, werde ich zu der Stelle
weitergeleitet, an der
wir dieses benutzerdefinierte Ereignis starten werden. Und innerhalb unserer
Destroy-Actor-Funktion werden
wir all
diese Effekte machen. Ich doppelklicke einfach auf diesen
Knoten und springe dann zurück. Wir werden
diesen Teil des Drehbuchs durchgehen. Irgendwann
werden wir diesen Event-Dispatcher verwenden ,
der Spieler startet die Todessequenz Wir werden unser Netz abnehmen. Wir werden
diese Todesanimation abspielen. Wir fliegen hoch in
die Luft und wieder runter. Und dann, nachdem diese 2,5
Sekunden vergangen sind, werden wir
unseren Schauspieler zerstören, indem wir unseren Charakter aus der
dritten Person treffen Lassen Sie uns das
kompilieren und speichern und testen Und das sollte wieder passieren,
wenn wir, sagen wir, auf
einen Gumba-Feind stoßen , oder unsere
Schusswaffengefahr reicht Lass mich hier oben einfach auf
meinen Gumba stoßen. Bum, ich bin tot. Mir gehen
die Trefferpunkte aus. Tatsächlich habe ich
an meinem Checkpoint geantwortet. Großartig, alles funktioniert
wie vorgesehen. Gut gemacht. Wir haben jetzt eine intakte
Todessequenz für Spieler. Wir sehen uns alle
im nächsten Video.
77. Todessequenz und der P-Block: Ordnung, im Laufe
der letzten beiden Videos haben wir das
Drehbuch für die Spielerwürfel zusammengestellt , damit unser Spieler eine Todessequenz spielen
kann Und das alles wurde innerhalb
unseres Third-Person-Charakters gemacht . Als Teil des Skripts
haben wir auch einen Event-Dispatcher-Aufruf namens Player Death
Start Sequence eingebaut Damit wir
allen anderen Blueprints, die wissen
mussten, dass unser
Spieler gestorben ist, eine Nachricht senden konnten allen anderen Blueprints, die wissen
mussten, dass unser
Spieler gestorben ist Jetzt können
wir innerhalb jeder
anderen Blaupause entsprechend reagieren Lass etwas passieren, was wir gerne geschehen lassen
würden. Das ist nur das
Aussenden der Botschaft. Jetzt müssen wir in
einem anderen Plan den Empfang
dieser Nachricht und eine entsprechende
Antwort einrichten einem anderen Plan den Empfang
dieser Nachricht und eine entsprechende
Antwort Und wir wollen das eigentlich innerhalb unseres Blocks einrichten
. Ich habe einen Block in
meinem Level eingerichtet und wie du weißt,
wenn du damit aufhörst, werden einige
meiner Blöcke hier in Münzen umgewandelt. Und was wir tun müssen, ist
unserem Block zu melden, dass, ja, der Spieler gestorben ist. Damit wir
diese Blöcke, die in Münzen umgewandelt
wurden,
wieder in Blöcke eintauschen können . Sobald unser Spieler gestorben ist, kannst du deinen Block wieder
öffnen, indem du ihn in deinem Level
und dann im Outliner
auswählst, indem du
einfach genau dort klickst Oder du findest ihn unten
in deinem Inhaltsbrowser. Wir haben es an diesem Ort. das geöffnet ist,
werden wir unser
Skript ein wenig modifizieren. Am Anfang
starten wir das ganze
Skript genau hier,
wenn wir festgestellt haben, dass unser Spieler die Box-Komponente
getroffen hat . Jetzt müssen wir das ein
wenig ändern, weil
wir herausfinden müssen,
ob es sich um den Charakter der dritten
Person handelt und nicht um irgendeinen Charakter
, der diese Box trifft. Und der Grund, warum wir das tun
werden, ist, dass wir aus diesem
Grund das Ereignis
finden müssen, dass der Dispatcher-Spieler die Todessequenz startet Okay, lassen Sie uns
unser P-Block-Skript
hier ein wenig modifizieren unser P-Block-Skript
hier ein wenig Ich werde das einfach
zurückstellen. Ich werde den Get Player-Charakter
loswerden, diesen Gleichheitszeichen und diesen Knoten. Ich werde auch
diesen Re-Route-Knoten loswerden. Genau in der Zwischenzeit
werde ich die Stecknadel
meines anderen Schauspielers herausziehen und wir werden für einen Charakter aus der
dritten Person casten. Und ich werde das einfach als solches
neu verkabeln. Ich werde die Steuerung gedrückt halten linken Maustaste das Ganze durch mein Casting an den Charakter aus der dritten
Person Wir stecken das in die Filiale
für unsere Filiale. Ich werde das einfach direkt
aus unserem Treffergebnis
herausnehmen und
herausfinden, ob unser Charakter
auch noch oben drauf landet. Und das wird an unsere Filiale
angeschlossen. Jetzt brauchen wir ein Ziel für
unseren Startcharakter. wir also sicher, dass wir
unseren Charakter aus der dritten Person nehmen und ihn dort einbauen. Aus unserem Charakter in der dritten
Person ziehen
wir uns
von hier raus und ich werde
nach dem Event-Dispatcher suchen,
das hieß Spielertod,
Spieler startet Todessequenz Spieler startet Todessequenz Jetzt werde ich genau hier
diese Option wählen. Der zugewiesene Spieler startet die
Todessequenz. Und es wird zwei
Knoten einbauen , was ich will. Es wird sowohl diesen Bind-Knoten als auch dieses benutzerdefinierte Ereignis einbeziehen. Und ich lasse
dieses benutzerdefinierte Ereignis einfach so, wie es ist wo ich sie von unserem Sequenzknoten
abhängen werde . Wir werden gleich hier
eine weitere PIN hinzufügen. Klicken Sie hier, um eine weitere
PIN von den damals fünf Pins hinzuzufügen. Ich werde das hier einstecken
. Was
wir hier also sagen ist, wenn unser Charakter aus der dritten
Person auf dieser Box
stehengeblieben ist und sich
unser Block im Blockmodus befindet, werden diese
Blöcke in Münzen umgewandelt. Wir werden
darauf achten, ob unser Spieler
gestorben ist und ob unser Spieler hier in unserem Charakter aus der dritten
Person
gestorben ist. Wenn dieser Teil des Skripts gestartet
wird, sendet er über
diesen Aufruf direkt hier eine Nachricht an alle
anderen Blaupausen, die darauf warten Das ist im Grunde, dass
wir genau hier mit
diesem Setup darauf achten. Wenn wir es an diesen Spieler
binden, beginnt die Todessequenz Wir achten darauf und sobald unser Spieler stirbt, werden
wir von hier aus feuern. In Ordnung, jetzt werde ich
diese beiden Knoten nehmen und sie
in diese beiden Knoten nehmen und sie Richtung unseres
Block-Timer-Skripts hier
herunterfahren. Ich werde versuchen, nach oben zu zoomen und das
etwas besser
einzurahmen. Nun, wenn
unsere Blockzeit vorbei ist, nehmen
wir all unsere Blöcke, die in Münzen umgewandelt
wurden, und
drehen sie einfach zurück. Jetzt wollen wir
dasselbe tun, wenn unser Charakter stirbt. Wir
wollen im Grunde alle
unsere Blöcke wieder
so machen , wie sie einmal waren. Um das zu tun, müssen wir
nur ein Kabel aus der Todessequenz
unseres Spielers herausnehmen Todessequenz
unseres Spielers und wir werden es daran
anschließen. Das Gleiche gilt für jeden Loop
hier oben. Auch das ist alles
in unserem Blockskript ganz unten, also so. Okay, nachdem das alles
erledigt ist, lassen Sie uns weitermachen und kompilieren und speichern. Und lassen Sie uns das testen, indem wir hier zu unserem Level
gehen. Ich werde auf Play klicken. Also was ich hier machen werde, ich werde
unseren Checkpoint überlappen und ich werde hier
auf diesen Block springen Du solltest sehen, wie sich einige dieser
Blöcke in Münzen verwandeln. Ich werde versuchen,
meinen Flammenarmen hier auszuweichen. Wie du gesehen hast, werden sie zu
Münzen. Ich werde sterben. Jetzt kannst du sehen, dass sie sich sofort wieder
in Blöcke
verwandelt haben , was genau das ist, was ich
wollte. Da hast du es innerhalb
unseres
Third-Person-Charakters , wenn dieser Spieler Todessequenz
startet
, die wir aufrufen. Wenn unser Spieler stirbt, wird benutzerdefiniertes Ereignis ausgelöst. Wir senden im Grunde genommen Nachrichten an alle Abonnenten, wenn Sie so wollen. Alle anderen Blueprints, die auf unseren Spieler
warten, starten den Death Sequence
Event Dispatcher Und für diejenigen, die zuhören
, wie unser Block hier, wird
es dann aus
diesem benutzerdefinierten Ereignis heraus ausgelöst und was
damit
verbunden ist, wird ebenfalls ausgelöst In Ordnung Leute,
das reicht für dieses Video. Wir sehen uns im nächsten.
78. Aktualisiere das Leben der Spieler: Ordnung, jetzt, wo wir die Todessequenz für
Spieler in der Hand haben , wollen wir weitermachen und unser Hud
reparieren Denn wie du oben links sehen
kannst, habe
ich angeblich drei
Marios Wenn ich derzeit sterbe, ändert
sich diese Zahl jedoch nicht Also werden wir
das in diesem beheben. Um das zu erreichen, werden
wir
innerhalb unseres
Player-Controller-Blueprints arbeiten innerhalb unseres
Player-Controller-Blueprints Finden Sie also heraus, dass sich in Ihrem
Plattform-Blueprint-Framework-Ordner unser
BP-Player-Controller
befindet Wir haben da
drinnen etwas gearbeitet. Lassen Sie uns noch ein bisschen mehr tun,
indem wir hineintauchen. Wir werden hier ein
brandneues Skript hinzufügen. Ich werde die
Steuerung gedrückt halten und die Ansicht vergrößern. Das wird unser
Live-Adjust-Drehbuch sein. Ich werde unter
„Punkte hinzufügen“ nach unten gehen und dann nach oben zoomen. Ich werde Click
in ein leeres Feld schreiben. Ich werde ein benutzerdefiniertes Ereignis hinzufügen
. Ich werde dieses Event
Adjust Lives nennen , wobei dieses
Kundenevent ausgewählt ist. Ich werde im Bereich „Details“ eine Eingabe
hinzufügen. Klicken Sie auf diese Plus-Schaltfläche und die Eingabe, die ich hinzufügen werde, wird Leben zum
Hinzufügen oder Entfernen heißen. Und ich werde den
Typ von Boolean auf Integer ändern. Was ich tun werde, ist von hier
wegzuziehen und einen
Add-Node einzufügen Und der andere Input
, den ich hier einfüge, sind Leben, mit denen
wir beginnen, in meinem Fall mit drei Leben. Wenn wir dieses benutzerdefinierte Ereignis aufrufen, können
wir bestimmen, wie viele Leben wir addieren oder subtrahieren
möchten, und dann werden wir
es zu unserer Anzahl von Leben hinzufügen Was ich dann tun möchte, ist,
dass ich die Maus von hier wegziehen will, und ich werde diese
Zahl klammern, wir werden diese ganze Zahl
klammern Und ich werde das bei
einem Wert von 0,100 belassen. Das wird mich
auf 100 Leben beschränken Sie müssen das nicht tun
, wenn Sie nicht wollen, aber ich würde
es gerne auf 100 Leben begrenzen und dann werde ich mein Leben in die
Länge ziehen Ich werde es auf
diesen Rückgabewert setzen
, um eine Setter-Version
unserer Lebensvariablen Ich nehme unser Adjust Life, Custom Event und füge
es dort ein Als Nächstes zoome
ich einfach ein wenig
heraus. Ich werde das
rausziehen,
das wird die
Anzahl der Leben ausgeben. Ich werde das Gleichheitszeichen eingeben
, um einen Gleichheitsknoten einzufügen Und ich sage, wenn unsere
Anzahl an Leben gleich Null ist,
stecke ich
das in einen Verzweigungsknoten ein Also halte ich die Taste gedrückt und klicke mit der
linken Maustaste, um einen Verzweigungsknoten
einzufügen Wenn das wahr ist, dass unser
Leben auf Null gesunken ist, dann
ziehe ich von hier ab und tippe Open Level nach Namen Jetzt habe ich derzeit
ein Level, LV 01. Ich könnte dieses Level
einfach wieder öffnen,
wenn mir die
Leben ausgehen dieses Level
einfach wieder öffnen,
wenn mir die
Leben Ich werde hier ein bisschen
weiterarbeiten. Wisse das, ich weiß, dass der
Editor
einige Fehler ausgeben wird , wenn wir das
irgendwann auslösen, wenn uns die Leben ausgehen. Irgendwann
werden wir in diesem Kurs
ein Hauptmenü erstellen . Und ich werde dieses Hauptmenü
LV
nennen und dabei Hauptmenü unterstreichen Jetzt möchte ich dieses Video nicht
verzetteln, indem das ganze Hauptmenü
erstelle
, das später kommen Aber wisse einfach, dass
ich
hier weiterarbeite und wir irgendwann ein Hauptmenü
erstellen Und das bringt uns
zu unserer Hauptmenüebene
, die wir eingerichtet haben. In Ordnung, also lass uns das
einfach zusammenfassen. Ich klicke mit der linken Maustaste
und ziehe auf die C-Taste. Und das wird
unser Adjust Lives-Skript sein. Ich werde den
Raum dazwischen loswerden
und ihn schwarz färben. Ich mag die schwarzen Kommentarfelder , weil dadurch
die Kabel herausspringen. Das wird also unser Live-Skript für
die Anpassung genau dort sein. Nochmals, wir werden dafür sorgen
, dass das später funktioniert. Okay, da diese
Kundenveranstaltung jetzt stattfindet, heißt
sie Adjust Lives. Ich gehe
zu meinem Ad-Coin-Skript innerhalb desselben Blueprints,
meines Player-Controllers Und hier ist unser Ad-Coin-Skript. Und was ich ganz
am Ende gemacht habe , ist, einen Hinweis auf
unser Leben
einzubauen und
das zu ergänzen , damit wir,
wenn wir 100 Münzen haben, ein Extraleben bekommen. Nun, da unser benutzerdefiniertes Ereignis „
Leben anpassen“ eingerichtet ist, muss ich
nur noch
dieses Kundenevent aufrufen und einfach die Zahl
eins eingeben , um unsere
Anzahl an Leben anzupassen. Also kann ich
diese beiden Knoten einfach
da draußen in unserem Ad-Coin-Skript löschen . Ich werde sie mit Atomwaffen ausschalten. Ich werde jetzt hier aus
meinem Münzensetzer herausholen und Leben anpassen
eingeben Also nochmal, das wird
dieses benutzerdefinierte Ereignis genau hier nennen dieses benutzerdefinierte Ereignis genau hier Ich kann einfach
diese harte Zahl von
Leben eingeben, um sie zu addieren oder zu subtrahieren Ich füge
positive Leben hinzu und spiele dann diesen Sound Beachten Sie also, dass, wenn Sie
die Zahl Eins genau hier eingeben, diese Zahl
durch das benutzerdefinierte Ereignis fließt. Wenn ich genau hier
auf diesen Knoten doppelklicke,
wird das benutzerdefinierte
Ereignis angezeigt, das dadurch aufgerufen wird. Diese Nummer eins wird also hier durchfließen, zu unserer Anzahl an
Leben hinzugefügt
werden, sie wird sie überfordern. Und es wird
diesen ganzen Jazz genau hier machen. Ordnung, wenn das alles erledigt ist, stellen Sie
sicher, dass Sie kompilieren und sagen Sie sehr wichtig
, dass Sie hier kompilieren. Weil wir
kompilieren müssen, um
unseren Aufruf „Leben anpassen“
innerhalb unseres
Charakterplans für Dritte zu finden unseren Aufruf „Leben anpassen innerhalb unseres
Charakterplans für Dritte Dort
werden wir als Nächstes hingehen. Finden Sie also Ihren Bauplan für einen
Charakter in der dritten Person. Finde das Drehbuch für diesen Spieler. Gegen Ende haben wir diesen Delay
und diesen Destroy-Akteur. Nun, wir werden unseren Destroy-Akteur
trennen. Bewegen Sie
das nach rechts, weil
wir hier ein
bisschen Drehbuch einfügen Wir klicken mit der rechten Maustaste
in eine leere holen uns den Player-Controller Und dann werden
wir das Ganze auf unseren Player-Controller
übertragen, unseren maßgeschneiderten
Player-Controller. Wir werden hier
weitermachen. Und der Grund, warum wir das
tun, ist, dass wir unseren
Spieler-Controller-Blueprint hineingreifen
und unser „
Leben anpassen“ -Event „Custom“ nennen
können und unser „
Leben anpassen“ -Event „Custom“ nennen Weil das Teil des
Player-Würfel-Skripts ist. Um zu addieren oder zu subtrahieren, nun ja, ich
möchte ein Leben abziehen, also gib genau dort
ein negatives ein Und dann können wir
den Schauspieler wieder vernichten. Wenn ich
auf diesen Aufruf „Leben anpassen“ doppelklicken
würde, würde ich zu
meinem BP-Player-Controller springen und mir zeigen, wohin die Zahl der negativen Eins
durch dieses benutzerdefinierte Ereignis fließen wird. Mache diese Mathe und mach diesen
ganzen Teil des Drehbuchs. Okay, noch eine
Überlegung, die wir berücksichtigen müssen, und
dazu müssen wir unseren
Spielmodus Blueprints aufrufen Ich gehe zum
Third-Person-Blueprints, zum
Third-Person-Spielmodus Third-Person-Spielmodus Übrigens, es liegt
an Ihnen, ob Sie diese beiden Blueprints
in Ihren Plattform
- oder Frameworks-Ordner
ziehen möchten diese beiden Blueprints
in Ihren Plattform
- oder Frameworks-Ordner
ziehen , das liegt ganz bei Ihnen Diese werden ebenfalls als
Framework-Blueprints betrachtet. Ich habe mich dafür entschieden,
im Spielmodus keinen eigenen Charakter für dieses
Projekt zu erstellen , aber du hättest es tun Ich werde
in meinen BP-Third-Person-Spielmodus eintauchen . Und im
Moment antworten wir dem
Spieler, egal was passiert,
egal ob
er drei Leben,
zwei Leben, ein Leben
oder gar keine Leben hat. Wir
müssen sicherstellen, dass unserem Spieler nicht die Lebenspunkte ausgehen. Bevor wir ihnen antworten, wollen
wir
ihnen nicht antworten, wenn sie kein Leben mehr haben. Also, um diesen
Teil des Antwortskripts anzupassen, werde ich
genau hier machen
, ich werde mit der rechten Maustaste
in eine leere Stelle klicken. Besorgen Sie sich den Player-Controller,
wie Sie vielleicht vermutet haben. Wir werden es hier schaffen. Wir werden auf
unseren BP-Player-Controller casten. Jetzt kann ich das ändern, ich kann diesen Node konvertieren indem ich mit der rechten Maustaste darauf klicke
und ihn in
einen reinen Cast umwandle , um diese Execution
In- und Out-Pins
loszuwerden . Du
willst das wirklich immer nur machen, wenn du weißt, dass deine Besetzung hier
nicht scheitern wird. Und ich weiß, dass das in
diesem Fall nicht der Fall sein wird, weil
ich keine anderen
Player-Controller
verwenden werde , die auf reine Besetzung umgestellt werden, es wird
diese Ausführungs-Pins auf diese Weise loswerden. Was ich dann tun kann, ist
aus meinem SBP-Player-Controller herauszuholen und unser Leben
variabel zu gestalten Ich kann es in die Länge ziehen und
schauen, ob es keine Leben gibt. Wenn wir mehr
als Null Leben haben, dann möchte ich reagieren Ich halte
die B-Taste gedrückt und
klicke mit der linken Maustaste, wenn sie aktiviert sind. Ich muss diesen ganzen Teil
des Skripts hierher verschieben. Und ich werde das
im Grunde ins
Spiel bringen , wenn unser Charakter zerstört
ist. Wenn unser Charakter zerstört ist, möchte
ich
hier weitermachen und die Frage stellen:
Hey, haben wir mehr
als null Leben? Und wenn wir mehr
als null Leben haben, dann ist das großartig, mach weiter und spawnen Sie
den Charakter erneut Sonst nicht. Das ist also alles in unserem
Third-Person-Spielmodus. Mach weiter und kompiliere
und speichere das. Bevor wir
das Spiel hier spielen, möchte
ich
in unserem Hud-Entwurf darauf hinweisen Hud-Widget-Blueprint,
der sich im UI-Ordner befindet ,
unserem Zu Beginn des Kurses unserer Registerkarte „Grafik“, nicht auf der Registerkarte „Designer“, sondern auf der Registerkarte „Grafik“, wir auf unserer Registerkarte „Grafik“,
nicht auf der Registerkarte „Designer“,
sondern auf der Registerkarte „Grafik“, dieses Skript hinzugefügt, um einen Verweis auf unseren Player-Controller zu erstellen Ich habe einfach mit der rechten Maustaste
darauf geklickt und es
zu einer Variablen heraufgestuft , um
einen Verweis auf unseren
Player-Controller zu erstellen einen Verweis auf unseren
Player-Controller zu Dadurch
konnten wir dieses Widget genau hier, dieses Text-Widget, an unsere
Player-Controller-Live-Variable
binden dieses Text-Widget, an unsere
Player-Controller-Live-Variable Das wurde hier gemacht, Player-Controller, und wir haben es einfach unserer Live-Variablen
zugeordnet Jetzt, da wir unsere
Lebensvariable mithilfe eines Skripts
aktualisieren , das wir in diesem Video hinzugefügt haben, sollten
wir sehen, wie sich diese
Zahl ändert. Aber ich
wollte nur auf all das
hinweisen , ein kleiner Rückblick, der
zeigt, dass wir
tatsächlich unsere
Lebensvariable von unserem
Player-Controller
auf dieses spezielle Widget gemappt haben Lebensvariable von unserem
Player-Controller auf dieses spezielle Widget In Ordnung, gehen wir zu unserem Level und lassen Sie uns einsteigen und spielen Ich fange dort gerade
mit drei Leben an. Lass mich einfach auf unseren Gumba
stoßen. Hier, da sind wir,
bis auf zwei Leben. Hier versuchen wir, in
die Flame Arm Bar zu rennen. Wiederum bis auf eins live gemacht. Und lassen Sie uns über Goomba
noch einmal auf Null Leben heruntertauchen. Und jetzt hast du gesehen, wie es einfach wieder
zurückgesetzt wurde und wenn ich entkomme, wird es das vorerst
tun Trotz der Tatsache, dass wir
in unserem Player-Controller haben, versuchen
wir, zum Hauptmenü
zurückzukehren. Wisst also, dass wir irgendwann mit der
Zeit
ein weiteres Level namens LV,
Underscore Main Menu, erstellen ein weiteres Level namens LV,
Underscore Main Menu, Und es wird uns zurück
zum Hauptmenü bringen, sobald uns die
Lügen ausgegangen sind Ordnung, Leute,
aber das reicht
für dieses Video. Wir haben jetzt die Anzahl unserer Leben in unserer Hud
Jobblende korrekt erhöht Wir sehen uns im nächsten.
79. Sofortige Todesgefahr: In Ordnung, willkommen
zurück an alle. Jetzt, wo wir eine
Player-Death-Sequenz haben und unser
Player-Live-System in unserem Hud funktioniert, all dieser Jazz, werden wir eine totale Todesgefahr
schaffen Und das wird
in einer Reihe von Anwendungsfällen nützlich sein. Sie können diesen
Schauspieler, den wir gerade erschaffen werden,
über einigen Stacheln platzieren , sagen wir, über einer
Lavagrube oder sogar einer Leere Und der Zweck
besteht darin,
dass unser Spieler sofort
stirbt und reagiert,
wenn er ihn so berührt sofort
stirbt und reagiert,
wenn Ordnung, zurück in unserer Arbeitsversion
des Projekts werde
ich in meinen
Platform-Blueprints-Ordner kommen Ich werde
hier mit der rechten Maustaste in eine leere Stelle klicken. Blueprint-Klasse. Das
wird ein Entwurf der Schauspielerklasse Es wird eines sein
, das wir in unserer Welt platzieren Und ich werde
weitermachen und
diesem neuen Plan den Namen geben, den BP mit
Tod unterstreicht Ordnung, und wenn
das ausgewählt ist, könnten
wir ignorieren, dass dieser
Server Diese
Quellcodeverwaltungsnachricht genau hier. Ich doppelklicke
auf meinen Blutdruck in den Tod. Und wenn das geöffnet ist, werden
wir
eine einzelne Komponente hinzufügen , die
unter dem Bedienfeld „Komponenten“ angezeigt wird. Wir werden eine
Box-Kollision hinzufügen. Und ich nenne das einfach mein Depth Volume. Und wenn das ausgewählt ist, gebe
ich
dem einfach einen Standardwert. Also werde ich die Größe der
Box auf 400
mal, sagen wir mal 400 mal 50, 50 einstellen mal, sagen wir mal 400 mal 50, 50 Und ich werde meine
Linienstärke
hier auf drei einstellen , ungefähr so Wir werden in der Lage sein,
diese Größe zu ändern , sobald wir sie auf unser Level gebracht haben, aber das wird uns
einen ziemlich guten Standardwert geben. Okay, wenn das an Ort und Stelle ist, werde
ich hier mit der rechten Maustaste auf
meine Death Volume-Komponente klicken . rechten Maustaste klicken. Wir
fügen ein Ereignis
hinzu, wenn wir beginnen, es zu überlappen. Dadurch werden wir aus unserem Viewport und
zum Event-Graph weitergeleitet Wenn sich nun etwas mit
diesem Todesband überschneidet, werden
wir herausfinden
, wer der andere Schauspieler Wir werden unseren Charakter aus dritten Person
innerhalb
unseres Charakters in der dritten
Person casten Wir ziehen uns
hier raus und tippen Spielersterbe ein. Wir werden
das benutzerdefinierte Ereignisse nennen. Also ein wirklich einfaches Skript und ich ziehe einfach mit der Maus herum,
tippe auf die C-Taste, das wird aufgerufen. Hier sterben benutzerdefinierte Ereignisse
innerhalb unseres Charakters BP. Jedes Mal, wenn Sie ein Skript
schreiben, sollten
Sie sicherstellen, dass Sie es kompilieren, um
sicherzustellen , dass es
keine Fehler findet und es auch nicht tut. Ich werde weitermachen
und das jetzt speichern. Lass uns weitermachen und
eines davon in unserem Level platzieren und einfach zeigen, wie man damit im Allgemeinen umgeht. Also gehe ich hier zurück
zu meinem Level-Editor. Hier ist mein Blutdruck im Tod. Ich habe
hier nicht wirklich irgendwelche Gruben oder so, also werde ich das hier irgendwie vom Rand
wegziehen Also los geht's. Ich ziehe
das nur rein Ich habe meine beiden D-Snap-Einstellungen hier auf meine Hauptebene
eingestellt Und ich werde meine
Snap-Einstellungen genau hier einstellen, Schritten von sagen wir 50. Ich werde das einfach so
weitermachen. Nochmals, wenn du
The Pit of Doom
spielst, möchtest du diese Art
von Level wahrscheinlich nicht zusammen mit deinen
wichtigsten spielbaren Levels platzieren von Level wahrscheinlich nicht zusammen mit deinen
wichtigsten spielbaren Also werde ich das nur ein
bisschen
festlegen , damit du
diese Standardgröße sehen kannst Beachten Sie jedoch, dass Sie,
wenn
dieser Akteur ausgewählt , im Detailbereich ist, im Detailbereich die Komponente
Todesvolumen auswählen können. Wenn Sie das nicht sehen, liegt
es vielleicht daran, dass Sie ein wenig
zurückziehen
müssen. Sie können Ihre
Death-Volume-Komponente
auswählen und ihre Größe hier Wenn Sie also diesen
X-Wert etwas größer machen möchten, wissen
Sie, dass wir
ihn auf 1.000 setzen wollen. Sie können das so machen Okay, also werde ich einfach
reinspringen und hier spielen
und dann einfach vom Rand springen
und schauen, ob das alles funktioniert. Los geht's. Alles klar, wenn hier vom
Felsvorsprung
springen und bumm, wir sterben wie beabsichtigt Also noch einmal, innerhalb
unseres Blutdrucks in den Tod, schauen
wir nur, ob es
unser Charakter aus der dritten Person ist , der sich mit
diesem Band überschneidet Und wenn ja, machen wir hier Drogen nennen
diesen Spieler
stirbt ein benutzerdefiniertes Event Und du kannst darauf
doppelklicken. Und das
wird tatsächlich
unseren Charakter aus der dritten Person öffnen und dir zeigen, welches benutzerdefinierte Ereignis er
aufrufen will Also noch einmal ein
paar Anwendungsfälle für diese sofortige Todesgefahr Du kannst es in
eine Grube wie diese legen. Du könntest
das über etwas platzieren , das stachelig aussieht, einer Lavagrube Es gibt viele mögliche Anwendungsfälle
dafür in deinem Level. In Ordnung, Leute,
das reicht für diesen. Wir sehen uns im nächsten.
80. Fahnen-Pole-Blueprint: Willkommen zurück alle. In diesem Video werden wir
an der Entwicklung und
Implementierung eines Flaggenmastes am
Ende des Levels im Mario-Stil arbeiten Implementierung eines Flaggenmastes am
Ende des Levels im Mario-Stil Und das wird so
funktionieren, dass unser Charakter, wenn er auf den Fahnenmast
springt, es aufschreibt Sie werden loslegen, wir werden
ein Feuerwerk sehen und es
wird einfach eine tolle Zeit Das wird einer der komplizierteren
Pläne sein ,
die wir im Laufe
dieses
Kurses zusammengestellt Ich gebe Ihnen nur
einen kleinen Vorgeschmack darauf,
wie das letztendlich aussehen
wird Hier ist der fertige Entwurf. Visuell gesehen, was wir
zusammenstellen werden. Also ziemlich viele Komponenten, viele Variablen
und
eine ordentliche Menge an
Skripten, und
eine ordentliche Menge an
Skripten um hier zu starten.
Eine Menge Drehbuch. Aber wir werden
das hier in mehreren Videos erläutern. Und wir werden das schaffen, ich verspreche, es wird
nicht allzu schlimm sein. Ordnung, zurück in unserer Arbeitsversion des Projekts,
gehen Sie in den Ordner „
Plattform-Texturen “ und stellen Sie sicher,
dass dieser Block
in der Mario-Flaggentextur verwendet wird. Dies sind einige Ressourcen, die schon viel früher
im Kurs
importiert wurden . Falls Sie dies noch nicht
getan haben, stellen Sie
sicher, dass Sie diese
importiert haben, da wir sie in
unserem Flaggenmast-Blueprint verwenden werden Jetzt, wo wir diese Texturen
haben, müssen wir sie in
materielle Ressourcen umwandeln , die wir in
unserem Flaggenmast-Blueprint verwenden können Jetzt habe ich das
schon vor dem Video gemacht. Aber nur um zu zeigen, wie man
diese Texturen in Materialien umwandelt , könnte
man einfach mit der rechten Maustaste
darauf klicken und dann
Material daraus erstellen. Wenn Sie das tun, werden Sie sehen, wie diese Material-Assets in Ihrem
Texturen-Ordner generiert wurden . Und dann habe ich sie
nur noch verschoben. Ich würde buchstäblich mit der linken
Maustaste klicken und sie so
in meinen Materialordner ziehen, um sie dorthin zu verschieben. Ich möchte die Texturdatei eigentlich nicht hierher
verschieben, aber so können Sie
verschiedene Elemente
zwischen Ordnern verschieben . Also nur um es dir zu zeigen, in meinem Materialordner habe ich
hier
mein Mario-Flaggenmaterial in meinem T-Block verwendetes Material. Nur um eines
davon schnell zu öffnen, ist es
nur ein
Texturmuster, das
in die Grundfarbe unseres
Mastermaterials eingefügt wird . Hinweis hier. nun zusätzlich zu
diesen beiden Materialien sicher, dass Sie
die Audiodaten von Mario Flagpole,
dem Typ da drüben
sowie Mario Jump haben die Audiodaten von Mario Flagpole, Typ da drüben
sowie Mario Jump Jetzt solltest du das schon wieder
haben, all diese Audiodateien wurden viel früher
im Kurs
importiert Wenn Sie diese also
noch nicht importiert haben, stellen
Sie bitte sicher, dass Sie dies tun. Okay. Nun, bevor wir weitermachen und unseren
Flaggenmast-Blueprint erstellen, werde
ich hier in
unseren Ordner für Dritte springen unseren Ordner für Dritte springen Gehen Sie in unsere Baupläne und
finden Sie unseren Charakter aus der dritten Person Ich möchte sichergehen, dass wir diese Tiefe
nicht vergessen. Ich doppelklicke auf
unseren Charakter aus der dritten Person. Öffne es und ich möchte unserem Charakter aus der
dritten Person
eine weitere Komponente hinzufügen . Ich wähle
unsere Kapselkomponente weil ich sie an unsere Kapselkomponente anhängen
möchte. Lassen Sie mich
hier zum Viewport gehen. Kapselkomponente Ich werde eine
Pfeilkomponente hinzufügen. Pfeil. Und ich werde
diesen Flaggenanschlusspunkt nennen. Dies wird verwendet, um zu
bestimmen, wo wir
unseren Charakter am Fahnenmast befestigen sollen unseren Charakter am Fahnenmast damit unser Charakter
ihn hinunterfahren kann. diese Komponente also im Detailbereich
ausgewählt ist, setze
ich die
X-Position auf 40 und die Z-Position
auf minus 55. Und ich bin gerade durch
viele Versuche und Irrtümer zu
diesen Zahlen gekommen . Also 40 und minus 55 bedeuten, dass wir
unsere Flagge an der Spitze haben werden. Okay, stellen Sie sicher, dass Sie das
kompiliert und gespeichert haben. Dann können wir
unseren Charakter aus der dritten Person beenden. Gehen wir jetzt zurück zu unserem
Plattform-Blueprints-Ordner. Und hier werden wir mit rechten Maustaste in eine leere Stelle klicken Wir werden
eine neue Blueprint-Klasse erstellen. Dies wird eine Blaupause für
Schauspielerklassen sein. Und wir werden diesen Vermögenswert BP
nennen. Unterstrich, Markierung für das Ende des
Levels. In Ordnung. Wenn Sie das ausgewählt
haben, können Sie
darauf doppelklicken oder die
Leertaste drücken, um es zu öffnen. Und was ich
hier tun werde, ist, dass ich
all meine Komponenten hinzufüge und
dann
zurückgehe und die
Details für jede Komponente festlege. Lassen Sie mich also weitermachen und die erste
hinzufügen. Das wird
ein Triggervolumen sein. Nun, eigentlich
wird es Trigger Volume heißen. Was ich eigentlich will, ist eine
Box-Kollision, eine Box-Kollision. Box-Kollisionskomponente, und ich werde
es Trigger-Volumen nennen. Sie werden dies
verwenden, um zu bestimmen, wann die
gesamte Flag-Sequenz ausgelöst werden soll. Jetzt füge ich hinzu, dass all
diese Komponenten an
meinen Standard-Szenenstamm angehängt werden. , dass Sie zwischen jeder
weiteren Komponente Stellen Sie sicher, dass Sie zwischen jeder
weiteren Komponente Ihren
Standard-Szenenstamm
ausgewählt haben , da all diese
Komponenten in
einer geraden Linie nach unten angeordnet sein müssen und nicht
an etwas anderes angehängt sein müssen. Als Nächstes werde ich hier eine
statische
Netzkomponente hinzufügen . Diese wird
einfach Flagge genannt werden. Und ich werde wieder meine
Standard-Szenen-Root-Komponente auswählen . Dieser wird Flaggenmast genannt
werden. Hoppla, ich
versuche einen Fahnenmast hinzuzufügen. Ich muss eine
statische Netzkomponente hinzufügen und sie dann Flaggenmast nennen Okay, wählen Sie den Standard-Szenenstamm. Fügen Sie noch einmal hinzu, dass
dies eine
statische vernetzte Komponente sein wird Diese wird Flag Base genannt
werden. Jetzt, wo eines davon ausgewählt wieder nur verschiedene
Möglichkeiten aufgezeigt werden, wie Sie Dinge tun können, wird
Control D das duplizieren, also wird es automatisch an meinen
Standard-Szenenstamm
angehängt. Dieser wird
ganz oben stehen. Als nächste Komponente wähle
ich meinen
Standard-Szenenstamm aus und klicke auf Hinzufügen. Diese Komponente wird
eine Billboard-Komponente sein. Billboard, es wird dieses Dragon Head-Symbol
haben. Ich werde das
meinen Flaggenendpunkt nennen. Hier möchte ich, dass die Flagge
landet , wenn sie den Fahnenmast
runtergegangen ist In Ordnung, wählen Sie die Standardszene. Noch einmal fügen wir hinzu, das wird
ein weiterer Box Collider sein,
Box Collision, und ich
werde das
mein Feuerwerksareal nennen Das ist im Grunde
der Bereich, von dem aus ich ein paar Feuerwerke sprengen werde. Wenn wir unsere Levelzeit innerhalb einer bestimmten Ziffer
beenden, die mit einer Sieben endet, also 87 Sekunden, werden sieben
Feuerwerke erscheinen,
so etwas Wir werden hier
drei weitere Komponenten
hinzufügen . Standard-Szenenroute. Ich werde hinzufügen, dass es sich bei allen um Pfeilkomponenten handelt, also
wähle ich die erste aus. Ich rufe den
Spieler Endpoint an. Hier wird unser
Spieler
landen, wenn er das ausgewählt hat. Ich werde Control D übernehmen. Dieser wird Player Explode Point
heißen Hoppla, ich
kontrolliere versehentlich die beiden da. Das wird der Explosionspunkt meines
Spielers sein denn nachdem sie vom Fahnenmast
gesprungen sind, lassen
wir sie in die Mitte
des
Feuerwerksbereichs
springen des
Feuerwerksbereichs Nur weil es Spaß macht
, wähle das aus. Ich mache noch
einmal Control D, um das zu duplizieren. Und dieser wird Startpunkt meiner Spieler
heißen. Ich habe einen Startpunkt für Spieler,
einen Endpunkt für Spieler und einen Explosionspunkt für Spieler Es ist nicht wirklich wichtig,
wie diese angeordnet sind, es spielt überhaupt keine Rolle Wenn Ihre Bestellung also ein
bisschen anders ist als
meine, spielt das keine Rolle. Alles, was zählt, ist, dass sie alle in
der Reihe sind, dass sie an
die Standard-Szenenroute angehängt sind. Wenn Sie nun
versehentlich so etwas eingestellt haben, lassen Sie mich einfach weitermachen
und
diesen kleinen Einzug hierher ziehen und dort ablegen diesen kleinen Einzug hierher Das ist derzeit
daran angehängt. Um das rückgängig zu machen, können Sie es einfach per Drag & Drop
wieder darauf ziehen.
Dadurch wird die Verbindung
zu dem aufgehoben, Dadurch wird die Verbindung
zu dem aufgehoben woran es
zuvor angehängt war Einrichtung der
Details für jede
dieser Komponenten in unserer
Komponentenliste Ich fange hier
mit der Flagge an. Ich werde nicht der Reihe nach vorgehen, aber ich werde zu gegebener Zeit auf
all diese eingehen wobei unsere Flaggenkomponente im Detailbereich
ausgewählt ist. Unser statisches Netz wird ein Flugzeug
sein, und ich werde im
Pfad für
die Grundformen der Engine nach diesem
suchen Detailbereich im
Pfad für
die Grundformen der Engine nach diesem
suchen. Ich werde
das Material
sofort so einstellen , dass es unsere Mario-Flagge ist. Tippe einfach Mario ein, da ist
unsere Mario-Flagge. Ziemlich süß. Jetzt muss ich
die Position und
Drehung anpassen und
das ein wenig skalieren. Lassen Sie uns also zuerst mit
dem Standort beginnen. Ich setze die
X-Position auf 85, die Z-Position auf 845 Es springt weit oben. Lassen Sie mich in meinem Darstellungsfenster die Ansicht vergrößern und
dabei die
rechte Maustaste gedrückt
halten, S und D, dann setze ich die
Drehung,
die X-Drehung, auf 90. Dann stelle ich hier den
Maßstab ein. Es wird so in
diese Richtung schauen. Die Skala soll etwa 1,5 sein. Ordnung, großartig. Als nächstes
die Komponente für den Fahnenmast. Wenn diese Option ausgewählt ist,
verschiebe ich ein statisches Netz aus einem Zylinder und wähle den
Motor, die Grundformen des Zylinders. Der Typ
da drüben. Das Material, ich werde nur eine einfache
Unterstreichwand machen, das ist im
Startinhalt, nochmal, es ist ein Fahnenmast, also kannst du entscheiden, wie
das aussehen soll Die Position, ich werde sie auf 500 im Z
einstellen.
Die Skala werde ich auf 0,2 mal 0,2 mal acht setzen Jetzt habe ich das alles wieder bekommen, indem die Waageneinstellungen
freigeschaltet Wenn Sie das
gesperrt haben, was auch immer Sie auf eine dieser
beiden Einstellungen setzen und die Mitteltaste drücken, werden
sie alle so eingestellt, dass sie
entsperrt Um diese einzeln einzustellen. Das kommt bisher
ziemlich gut an. Als Nächstes erstellen wir die
Flaggenbasis mit dem ausgewählten statischen Netz im
Detailbereich. Ich wähle A, das wird meine Engine sein, Grundformen wie dieser Würfel. Für das Material werde ich
uns in den Block einbauen. Ich finde, das sieht ziemlich gut aus. Auch hier gilt die Wahl des Händlers Sie können das machen,
was Sie wollen. Ich werde die
Z-Position auf 50 ändern, sodass es im Grunde
so aussieht, als ob der Fahnenmast darin
eingebettet ist. Das sieht ziemlich gut aus. Ordnung, dann machen
wir die Flagge In Ordnung, dann machen
wir die Flagge
oben auf dem Fahnenmast. Wir wählen
eine statische Nachricht. Das wird eine
Form sein, die Sphäre unterstreicht, das wird
im Startinhalt sein Wir werden das
Material dafür als Unterstrich, Würfel,
drei
Materialinstanzen festlegen ,
das ist im Engine VR
Editor, Basic Nochmals, du musst nicht genau das
haben, was ich habe. Ich finde, das sieht ziemlich gut aus. Also werde ich den Standort
dafür auf 8905895 setzen. oben auf der Skala
werde ich auf der ganzen Linie
0,5 einstellen,
also werde ich die Skala sperren, und dann werde ich 0,5
einstellen, drücken Sie die Eingabetaste, und das sieht oben ziemlich
gut Okay. Als Nächstes mache ich den Flaggenendpunkt, diese Billboard-Komponente, okay? Ich setze das
auf eine Position, 150 im Z, und dann setze ich die
Position im X auf 85. Und dann werde ich
die Drehung auch auf
90 im X einstellen .
Drücke rein oder da rein. Es wird hier visuell keinen großen Unterschied
machen, aber es wird wichtig sein, weil wir
dies als unseren Flaggenendpunkt verwenden werden. Dies muss auf die gleiche
Weise gedreht werden wie unsere Flagge. Das
wird wichtig sein. Das sind 90 für unsere Flagge. Wir müssen sicherstellen, dass
unsere Endpunktrotation dort dieselbe
ist, nur um das noch einmal zu überprüfen. Okay. Als Nächstes haben wir
unseren Feuerwerksbereich. Stellen Sie also sicher, dass Sie das auswählen. Und ich werde
mein Darstellungsfenster ein bisschen von
hinten vergrößern , weil ich es ein
bisschen hier drüben
haben werde es ein
bisschen hier drüben
haben Ich halte sowohl
die linke als auch die rechte
Maustaste gedrückt, um so zu schwenken Also werde ich diesen
Punkt auf eine Position von
850 im x 700 im Z setzen .
Die Ausdehnung der Box werde ich auf 500 mal 200 mal 300
festlegen. Ich werde diese Form im Wesentlichen verwenden, um
einen Bereich zu
definieren, in dem
Feuerwerkskörper erscheinen können Ich werde hier auch die
Linienstärke auf fünf einstellen, nur um das
etwas stärker hervorzuheben Dann werde ich
hier auch die Kollisionsvoreinstellung so
einstellen , dass keine Kollision angezeigt wird. Ich möchte nicht, dass etwas Mögliches
damit kollidiert. Weißt du, ich
will nicht, dass, wenn
unser Charakter
hier drüben ist oder so , versucht Feuerbälle
abzuschießen, dann
könnte alles Mögliche damit kollidieren Also schalten wir das einfach für
alles aus. Okay, als Nächstes wählen wir
unseren Spieler Endpoint, den Typen da drüben. Und dafür werden wir
einfach einen Standort festlegen. Also zoome ich hier nach oben zur Basis
unserer Flagge. Endpunkt des Spielers, es wird
minus 25 im X sein, es wird 30 im Y sein. Für das Z wird es
190 vor dem Flaggenpool sein, aber unten rechts
unten Okay, der Explosionspunkt unseres Spielers. Wir wählen diese
Pfeilkomponente aus. Als Nächstes wird
sie irgendwo in
dieser Region sein, also
wähle ich meinen Standort X wird 850 sein und
Z wird 500 sein. Das wird im Grunde
irgendwo genau dort sein . Das habe ich beschlossen. Das ist in Ordnung, Startpunkt der
Spieler ist ganz oben. Wir werden
diese Pfeilkomponente auswählen. Die X-Position wird
minus 25 sein, die Y-Position wird 30 sein und die Z-Position wird 845 sein Also egal, wo sie mit dieser Flagge
interagieren werden, wir werden sicherstellen, dass
sie genau
dort ankommen . Dort
werden sie anfangen. Sie werden hier unten
landen, um damit
sozusagen den Fahnenmast
runterzufahren Das Einzige, was ich
hier noch
nicht eingestellt habe , ist unsere Auslöselautstärke Lass uns weitermachen und das auswählen. Jetzt drüben im Detailbereich unsere
Triggerlautstärke ausgewählt ist, werde
ich hier unter
ein Kollisions-Preset fallen. Und ich werde das einfach auf Benutzerdefiniert
einstellen. Und ich werde
Kollisionen mit allem ignorieren,
alles außer ich möchte, dass unsere Spielfigur das überlappen kann Wir müssen erkennen, wann sich unsere
Spielfigur damit überschneidet. Und ich möchte, dass dieses
Triggervolumen sehr hoch ist und sich bis hoch in den Himmel erstreckt Wenn unsere Spieler also gerne über den Fahnenmast
springen, sie tatsächlich bis zu diesem
Punkt herunterfahren Und dann schreib es auf. Okay, dafür werde ich die Z-Position auf
1.000
setzen , ich werde
die X-Position auf 30 setzen. Das entspricht ungefähr unserem Fahnenmast
hier, also okay Und dann werde ich die Größe der Box
festlegen. Ich werde
diese Ausdehnung auf
1.000 setzen . Sie wird sich so nach unten
erstrecken, genau durch die
Mitte unseres Fahnenmastes,
Sie können sehen, dass sie
weit hoch in den Himmel reicht Und ich werde
das auch ein
bisschen breiter machen ,
auch wenn unser Charakter niemals offline gehen
sollte Nur um meiner eigenen Vernunft willen werde
ich die Y-Ausdehnung
auf etwa 200 setzen Das sollte ziemlich gut sein. Wenn ich nun aus
dieser perspektivischen Ansicht springen und das Ganze, sagen wir,
von rechts betrachten würde, würde ich
weitermachen und darauf klicken. Sie können sehen, wenn ich im Wesentlichen
nach hinten zoome, wo diese Auslöselautstärke im
Verhältnis zu unserem Fahnenmast liegt Jetzt werde ich es wahrscheinlich ein bisschen
weiter
anschieben, nur um
sicherzugehen ein bisschen
weiter
anschieben, nur , dass unser Charakter diesen Fahnenmast nicht
trifft Auch hier könnte ich es
hier im Detailbereich verschieben. Lassen Sie mich hier einfach
meine Snap-Einstellungen ausschalten. Ich werde es so verschieben,
dass es ungefähr dort steht. Ich werde den X-Standort festlegen
. Versuchen wir es stattdessen mit zehn. Aber wer weiß, vielleicht
spielen wir ganz
am Ende damit Eigentlich
wollen sie auch nicht, dass unser Charakter oben auf dem
Fahnenmast
kollidiert Also werde ich das
auf etwa fünf setzen, nur um es ein bisschen
mehr herauszuholen Ordnung,
damit werde ich zu meiner
perspektivischen Ansicht zurückkehren Das ist alles, was wir in diesem Fall
erreichen wollten. Lassen Sie uns weitermachen und
kompilieren
und speichern, und dann machen wir weiter und ziehen das Ganze in unseren Viewport Und ja, zwischen den
Kameraschnitten habe ich tatsächlich geschummelt und es
hat Stellen in meinem Level gemacht, sodass du sehen kannst, wie es aussehen
wird, wenn du es in deinem Level platzierst So ähnlich wird
es aussehen. Der Spieler wird damit
interagieren. Sie werden diesen Fahnenmast
hinunterfahren und dann werden sie an diesem Explosionspunkt
landen Das wird also alles per
Scripting erledigt werden. Es gibt noch viel zu tun, aber wir haben einen guten Start hingelegt Wir sehen uns alle im nächsten Video.
81. Flag-Pole-Skript #1: Willkommen zurück. In diesem Video werden
wir die Variablen hinzufügen
und mit dem Skript für unsere Flaggenmast-Sequenz für die
Endstufe beginnen Lassen Sie uns noch einmal in unser
BP- und Level-Endkennzeichen eintauchen. Als Erstes werde ich im Bereich „Meine Blueprints“ die Variablen
erstellen
, die wir für dieses umfangreiche Skript verwenden Das wird kommen, wenn Sie auf
diese Plus-Variablen-Schaltfläche klicken. Der erste,
den ich erstellen werde,
wird Startpunkt heißen. Es wird eine
Vektorvariable sein und sie wird verwendet, um den
Startpunkt unserer Flagge hier zu bestimmen. Idealerweise
beginnen wir oben, wenn unser
Spieler oben landet. Wenn unser Spieler jedoch ungefähr
in der Mitte landet, wird unsere Flagge automatisch
an diesem Punkt gestartet Es wird sich im Grunde bis
zu diesem Punkt verziehen und
dann weiter nach unten fahren Okay, wenn das ausgewählt ist, mache
ich Steuerung
D, um es zu duplizieren Und dieses wird Firework Locale heißen. Dies wird
verwendet, um
das Gebiet zu bestimmen , in dem wir unser
Feuerwerk erzeugen werden. Spoiler-Alarm, es wird in diesem
Bereich liegen. Als Nächstes werde ich eine
erstellen, ich werde auf die Schaltfläche mit den
Plus-Variablen
klicken Dieser wird mein Charakter
genannt werden. Der Typ hier
wird mein BP sein, Charakter aus der
dritten Person,
die Objektreferenz. Lassen Sie mich
das einfach erweitern,
damit Sie das
etwas klarer lesen können. nächste Variable, die
wir erstellen
werden, wird mein Controller heißen. Dieser wird unserem Player-Controller
zugeordnet. Es wird
Player-Controller sein. Unser BP, der Player-Controller
, ist der, den wir geschaffen haben. Objektreferenz, das ist
unsere Wahl. nächste,
den wir erstellen
werden, wird Firework Points heißen Es wird eine Ganzzahl sein. Und das wird zeigen
, wie viele Punkte jedes Feuerwerk wert ist Wenn wir eine
Feuerwerksshow bekommen, bei der das ausgewählt ist, mache
ich Steuerung
D, um es zu duplizieren Diese Nummer wird „
Firework Special Number“ heißen. Das
soll nun funktionieren, wenn unser Timer
mit einer bestimmten Zahl endet,
sagen wir, er endet mit 87 Sekunden Wenn er mit
der Zahl Sieben endet, zünden
wir
ein Feuerwerk ab Dies dient im Wesentlichen
dazu,
die letzte Ziffer der
verbleibenden Zeit auf Ihrem Timer zu speichern die letzte Ziffer der
verbleibenden Zeit auf Ihrem Timer Okay, wenn all diese erstellt sind, fahren Sie fort und kompilieren Sie, damit wir beginnen
können,
einige Standardwerte hinzuzufügen. Okay, unser
Flag-Point-Start wird überall Nullen
haben,
das wird in Ordnung sein Firework Local wird überall
Nullen haben ,
das wird in Ordnung sein Mein Charakter wird jetzt auf
Null gesetzt. Das wird auch in Ordnung sein. Mein Controller wird auch
auf Null gesetzt. Das
wird in Ordnung sein. Wir werden
diese Variablen in unser Skript einfügen, unsere Feuerwerkspunkte Wir werden das auf 500
setzen. Wissen Sie was? Wir werden das so einrichten, dass es von der
Instanz bearbeitet werden Wenn wir das ändern möchten ,
während wir
im Editor selbst sind, können
wir das tun Dann die Sonderzahl unserer
Feuerwerksshow, ich werde sie auf
sieben setzen Ich werde auch
dieses
Kästchen ankreuzen, das für Instanzen editierbar ist. Wenn
wir
das ändern wollen, wenn wir uns
im Editor befinden , können wir das auch
tun Okay, wenn das alles an Ort und Stelle ist, springen
wir
zu unserem Event-Graph Wir werden auf diesem Event aufbauen
. Begin Play. Lasst uns diese
beiden anderen Knoten loswerden, die hier draußen sind. Linksklick und Ziehen.
Aus dem Event löschen und mit der Wiedergabe beginnen. Ich mache einen Rechtsklick, wir holen uns den
Player-Controller und dann casten wir den Controller für
zwei Spieler, unseren BP-Player-Controller. Wir wollen das zu Beginn
des Spiels machen. Und dann
wollen wir das hier
in unsere
Player-Controller-Variable eintragen. Also können wir das einfach per Drag
& direkt über diesen Pin ziehen. Und das bringt
eine Reihe von Versionen mit sich. Also wird es
diese Variable mit unserem
BP-Player-Controller füllen diese Variable mit unserem
BP-Player-Controller Es reicht nicht aus, diese Variable einfach zu erstellen und auf diesen Typ zu
setzen Dies
wird tatsächlich
im Wertebereich angegeben , wenn wir es hier als
den eigentlichen Player-Controller
festlegen den eigentlichen Player-Controller , den wir
im Spiel verwenden. Also klicke ich mit der linken Maustaste und ziehe darauf und
tippe auf die C-Taste Dies wird wie in der Referenz Ref to
Player Controller
Ref sein . Ich mache weiter
und setze das auf Schwarz. Als Nächstes werde
ich im den Bereich „ Event-Dispatcher“ Mein Blueprint“ den Bereich „
Event-Dispatcher“
aufrufen.
Ich werde darauf klicken Um einen Event-Dispatcher hinzuzufügen. Und ich werde
dieses Level als abgeschlossen bezeichnen. Jetzt wird das genutzt
, um eine Nachricht an
andere Baupläne zu senden , die wissen
müssen, dass unser Spielercharakter das Level abgeschlossen
hat Ordnung, nachdem
all das erledigt ist, beginnen
wir mit der Erstellung
unseres riesigen Skripts Als Erstes überprüfen wir
eine Überlappung unseres Triggervolumens und
noch einmal unseres
Triggervolumens in unserem Viewport, das wird genau dieses
riesige Volumen sein. Wir werden überprüfen, ob unser Player das überlappt Jetzt können wir dafür ein
Überschneidungsereignis hinzufügen. es auswählen, können wir rechten Maustaste klicken und auf diese Weise
ein Ereignis hinzufügen. Aber nur weil ich gerne verschiedene Dinge zur
Schau stelle, wähle
ich
es aus und gehe bis
zum Ende
meines Detailfensters. Hier sind verschiedene Ereignisse
im Zusammenhang mit dieser Komponente. Wir haben keine Überschneidung am
Anfang der Komponenten. Ich werde auf
diese Plus-Schaltfläche klicken. Es wird uns
zu unserer Registerkarte „Ereignisdiagramm“ weiterleiten. Wir werden
das nur ein bisschen reduzieren. Gib mir hier ein
bisschen mehr Platz. Davon ausgehend werden wir
herausfinden, wer der andere Schauspieler ist. Wir werden zwei Charaktere aus der dritten
Person casten. Ordnung, wenn es
ein Charakter aus der dritten Person ist ein Charakter aus der dritten Person , der
sich hier überschneidet, werden
wir hier unsere Variable „
Mein Charakter“ auffüllen Variable „
Mein Charakter Derzeit ist das Null,
was bedeutet, dass es leer ist. Wir werden das anschließen,
also lass es einfach auf diesen Pin fallen. Und das wird es
so
verdrahten, wenn es sich überschneidet Wir werden
diese Variable mit unserem Charakter aus der
dritten Person füllen diese Variable mit unserem Charakter aus der
dritten Person Auch hier reicht es nicht aus,
nur diesen Typ festzulegen. Dadurch wird
die tatsächliche Instanz
unseres Third-Person-Charakters festgelegt , den
wir im Spiel kontrollieren. Okay, gleich danach werde ich
einfach hier
nach rechts gehen. Ich klicke mit der rechten Maustaste auf Player-Controller
holen. Und was wir sofort
nach der Interaktion mit der Triggerlautstärke tun wollen , ist
, dass wir die Eingabe deaktivieren
wollen. Auch hier wird es an
den falschen Pin angeschlossen. Eigentlich wollen wir
unseren Player-Controller an
den
Player-Controller-Eingang anschließen . Also werde ich die
Strg-Linksklick gedrückt halten. Wir werden das
unten einstecken. Sehr wichtig.
Verpasse das nicht, was das Ziel angeht, wir werden unseren Charakter
einbauen. Okay, als Nächstes werde ich einen Once-Knoten einbauen. Ich kann das tun, indem ich
die Taste gedrückt halte und mit der linken Maustaste klicke. Und ich möchte sicherstellen
, dass wir alles
, was folgt, nur einmal tun, um Probleme zu
vermeiden. Das Erste, was ich einmal
tun werde, ist unser Level Complete
Event Dispatcher
anzurufen Wir können das so hineinziehen sodass wir
hier ein Untermenü haben, das wir so nennen wollen Es hat also das
kleine Umschlagsymbol. Also, es wird jedem, der auf
dieses Ereignis zuhört
, eine
Nachricht senden , dass hey, unser Level abgeschlossen ist. Ordnung, mit
diesem Drehbuch werde
ich ein
Kommentarfeld darum herum einrichten. Ich möchte jeden Abschnitt, den wir hier haben
, gut kommentieren C-Taste, ich sage, das ist meine Auslöselautstärke bei der Erkennung von Spielern beim Lappen der
Fahnenstange Ich deaktiviere auch die Eingabe
und das Versenden von Nachrichten an andere BPs. Das Level ist
abgeschlossen, okay? Und ich finde, es ist
ziemlich wichtig, dass ich
all diese Dinge hier gut kommentiere Wenn wir also irgendwann herauszoomen und sehen, was wir gemacht haben, können
Sie
die verschiedenen Abschnitte irgendwie identifizieren Das wird hier also
Abschnitt Nummer eins sein. Sie können das
Video bei Bedarf pausieren , um im Wesentlichen zu sehen,
was wir hier gemacht haben. Wir beenden
es mit dem Aufruf an unseren Level Complete Event
Dispatcher, der uns das mitteilt Okay, das nächste Skript
, das ich
darüber hinaus hinzufügen
möchte , besteht darin,
die Position unserer
Startposition unserer Flagge festzulegen die Position unserer
Startposition unserer , wenn unser Spieler die Auslöselautstärke
überschreitet nun zu
unserem Standpunkt zu kommen Wenn
unser Charakter
diese Auslöselautstärke überschreitet, entweder ganz oben auf unserer Flagge oder darüber, wollen
wir, dass unsere Flagge
von dieser Position
aus den Fahnenmast
hinunterfährt dieser Position
aus den Fahnenmast
hinunterfährt Wenn unser Charakter jedoch diesen Fahnenmast
überquert, sagen wir hier oder unten, wollen
wir, dass diese Flagge an dieser Stelle herunterfährt, entweder in der Mitte
oder unten, oder wo auch immer unser Spieler
diese Auslöselautstärke überschreitet, werden
wir die Flagge
sofort
dort bearbeiten und sie dann
auf den Fahnenmast schreiben. Ordnung, um
das zu tun,
springen wir zum Ereignisdiagramm über Und wieder werden
wir das
Ganze auf dem Ende unseres
Anrufs aufbauen , bis der Level abgeschlossen ist. Als Erstes müssen wir einen
Bezug
zu unserem Charakter herstellen. Also mit der linken Maustaste klicken und ziehen. Wir werden das holen, wir
werden es hier rausziehen, wir werden den Befestigungspunkt für
die Flagge finden. Jetzt, zwischen den Kameraschnitten, habe ich meinen Charakter aus der dritten
Person geöffnet. Ich habe das getan, um euch
daran zu erinnern,
dass in unserem Bauplan für
Charaktere aus der dritten Person eine Flagge angebracht ist. Wir haben das gerade
im vorherigen Video hinzugefügt. Es ist eine
Pfeilkomponente und sie befindet sich genau dort
auf unserem Charakter. Das ist im Wesentlichen das,
worauf ich mich hier in meinem BP, Level
End Flag beziehe Wir schnappen uns diese Komponente
in unserem Charakter. Jetzt will ich es, um herauszufinden
, wo es sich auf der Welt befindet . Ermitteln Sie den Standort der Welt, okay. Also werden wir
herausfinden, wo sich das weltweit befindet. Dann werden wir
das herausfinden. Zerlegen Sie das in seine
X-, Y- und Z-Komponenten. Ordnung, wir werden uns hier
auch unsere Flagge schnappen
wollen . Hoppla, ich doppelklicke einfach darauf, um zum Viewport
zu gelangen Lass uns mit der linken Maustaste klicken
und das hineinziehen. Dann wollen wir auch die Position
der Welt ermitteln, Position
der Welt ermitteln diesen Vektor auch
dafür
durchbrechen. Also werde ich einfach diese beiden Knoten
duplizieren. Steuerung D, nur um hier eine
kleine Abkürzung zu nehmen. Wir werden das
so einstecken. Der Grund, warum wir sie hier in ihre X-, Y
- und Z-Komponenten
aufteilen, ist, dass wir hier die Z-Höhe unseres
Flaggenverbindungspunkts
vergleichen wollen . Wir werden das vergleichen, indem wir herausfinden, ob sie größer ist als die Position unserer Flagge. Steht unsere
Flagge an unserem Charakter? Ist das größer
als, in diesem Fall, höher als die
Position unserer Flagge auf der Welt? Wir nehmen den Ausgang und stecken
ihn in einen Zweig. Also werde ich die B-Taste gedrückt halten und mit
der linken Maustaste klicken. Das wird der
Zustand sein, den wir prüfen werden. Wieder einmal
bauen wir auf
der Call Level Complete auf. Wir verkabeln das so. Okay, wenn das wahr ist, möchte ich meinen Startpunkt für meine Flagge setzen. Kommen Sie hier unter Ihre Variablen. Ich werde die Alt-Taste
gedrückt halten, mit der linken Maustaste klicken und ziehen, um eine Setter-Version
unseres Flaggen-Startpunkts Wir werden hier die
Startkoordinaten
für unsere Flagge festlegen hier die
Startkoordinaten
für unsere Flagge Um das zu tun, ziehen wir es
rückwärts und geben make vector Und wir werden
unseren Vektor erstellen , indem wir im Wesentlichen die X -,
Y- und Z-Position unserer Flagge
beibehalten -,
Y- und Z-Position unserer Flagge Wenn
sich unser Spieler hier an der Flagge festsetzt, im
Grunde genommen
nach oben oder darüber geflogen Wir
sagen hier im Grunde, ja, lassen Sie uns unsere Flagge an
diesem Punkt starten , wo sie sich befindet Standardmäßig ist das im Wesentlichen das,
was wir hier sagen. Wenn das als falsch ausgewertet wird, kopieren wir diesen Knoten genau hierher. Ich werde einfach Control
D ausführen, um diese Variable zu kopieren. Wir werden hier
reinkommen und ich werde mein Drehbuch hier aufräumen. Nur ein bisschen
so , dafür werde ich auch
einen Vektor machen. Also werde ich die Taste
D drücken, um diesen Knoten zu kopieren. Dafür möchte
ich die X- und Y-Werte unserer
aktuellen Flaggenposition beibehalten . Die Z-Position, die
ich haben möchte,
stammt jedoch vom
Flaggenverbindungspunkt unserer Charaktere. Was ich
hier im Grunde noch einmal sagen will, ist, wenn unser
Flaggenanhang höher
ist als unsere Flagge ,
wenn wir die
Auslöselautstärke überschreiten werden
wir unseren
Flaggenstartpunkt
an der Stelle setzen , wo unsere Flagge beginnt. Wenn das
falsch
ist , setzen werden
wir unseren
Flaggenstartpunkt auf die Z-Höhe des Flaggenbefestigungspunkts unserer
Charaktere Das ist es also, was dort
passiert. Jetzt füllen wir nur
diese Variable,
diese Flaggen-Startpunktvariable Was wir tun müssen,
ist sie tatsächlich zu verwenden. Was ich also tun werde, ist hier einen Hinweis auf unsere Flagge einzubringen . Ziehen Sie das per
Drag & Drop, ziehen Sie es hierher. Und tippe den festen Standort der Welt ein. Stellen Sie den Standort der Welt genau dort ein. Und ich werde
diesen Knoten mit dem
ausgewählten Steuerelement duplizieren . D wird es duplizieren. Wir werden auch eine Kopie davon
herbringen. Verdrahten Sie das. Wir können diese Flaggenreferenz in diesen beiden Knoten
dort und da verwenden. Hier werden wir den Standort
festlegen. Dadurch wird die Position
unserer Flaggen sofort auf den Ort gesetzt , an dem sich
diese Koordinaten befinden. Ordnung, damit mache
ich weiter und klicke und ziehe diesen Teil des
Skripts mit der linken Maustaste und ziehe, tippe auf diese Taste und ich zoome für die Kommentare ein
wenig zurück. Das wird unser Gebietsschema für Zug
zwei sein , in dem der Spieler die Triggerlautstärke
überschritten Und wir werden es schwarz
einfärben, um
einen schönen Kontrast hinzuzufügen einen schönen Kontrast Okay, nachdem das alles erledigt ist, werde
ich
das noch einmal zusammenfassen. Damit ist unser
Anruf-Level abgeschlossen. Lassen Sie uns das kompilieren, um
sicherzustellen, dass unser Skript gut
und gut aussieht. Und speichere es. Und Leute, wir werden
das hier ein Video nennen. Sicherlich gibt es noch mehr zu tun, aber wir haben einen
ziemlich guten Start hingelegt. Wir sehen uns im nächsten Video.
82. Flag-Pole-Skript #2: Ordnung, bevor wir mit unserem Flaggen-Skript
weitermachen, wollte
ich einfach reinspringen und spielen und dir zeigen,
was wir bisher haben. Wir haben es so gemacht, dass
wir,
wenn unser Charakter irgendwann die Stange mit der Fahnenstange am Ende
des Levels
interagiert, diese Flagge so einstellen,
dass sie hinunterfährt,
wo sich unser Charakter mit der Auslöselautstärke überschneidet Hier gibt es noch mehr Arbeit
innerhalb unseres Blutdrucks, Flagge
am Ende des Levels und
einfach bis zu einer Art Frame in dem wir auf diesem
Skript aufbauen werden Als Nächstes
werden wir zunächst auf
diesem festgelegten weltweiten
Standortknotenpunkt aufbauen . Klicken wir also mit der rechten Maustaste
und schwenken wir nach unten
in diese Region. Ich zoome auf mehrere
Dinge heran, die ich tun möchte. Die erste besteht darin, sicherzustellen, dass mein Charakter gegen den
Fahnenmast schaut Und wir werden einen kleinen Versatz
hinzufügen, um sicherzustellen
, dass sich unser Charakter vor dem
Fahnenmast
befindet,
bevor er die Fahrt nach unten beginnt Deshalb werden wir auch die Animation
unserer Charaktere
auf
eine bestimmte Pose einstellen , wenn sie den Fahnenmast hinunterfahren Wir
beginnen damit,
einen Verweis auf unseren Charakter einzufügen, indem wir mit der
linken Maustaste klicken und ziehen Wir werden das herausfinden
und dann
ziehen wir es weg und holen uns
unsere Kapselkomponente. Die Kapselkomponente ist die
Hauptkomponente unseres Charakters, die andere Komponenten gebunden
sind. Und wir werden die
Komponenten
dieser Kapsel wegziehen und sagen, die
Weltrotation noch einmal einstellen . Ich sagte, wir
werden von
diesem festen Ort der Welt ausgehend
von diesem kleinen
Drehbuch hier aufbauen diesem festen Ort der Welt ausgehend . Warum ist das hier so? So. Jetzt wollen wir dem eine
Rotation geben. Auf was wollen wir die Rotation unserer
Charaktere einstellen? Wir werden zwar unsere
Spieler-Endpunkt-Komponente bekommen, nur um hier zum
Aussichtspunkt zu gehen Diese Komponente ist
gleich hier unten. Es ist eine Pfeilkomponente. Der Typ
da drüben. Wir werden hier unsere
Player-Endpoint-Komponente schnappen. Wir
ziehen es in die Länge und sagen: Holen Sie sich die Weltrotation. Das wird die
Rotation sein, bei der wir
garantieren werden , dass unser Charakter
in diese Richtung schaut, quasi mit dem Blick zum
Fahnenmast. In Ordnung. Als Nächstes
möchte ich sicherstellen, dass unser Charakter vor
dem Fahnenmast steht. Ein kleines bisschen Um das zu tun, ziehe
ich von der Kapselkomponente
meines Charakters ab und tippe lokalen Offsetdraht ein, also die Delta-Position, der Unterschied in der
Position ist, dass ich das Y
einfach auf 30 setze. Y 30. Ich bin zwar durch Versuch und Irrtum
dazu gekommen. Als Nächstes möchte ich
es so machen, dass
unser Charakter nicht sofort herunterfällt, wenn er
sich mit der Auslöselautstärke überschneidet , wie du es gerade ganz am
Anfang dieses Videos gesehen Vielmehr frieren sie ein. Sie schweben in der Luft. Um das zu tun, werde ich meinen Charakter hier
wegziehen. Bringe die
Bewegungskomponente in meinen Charakter ein, aber die
Bewegungskomponente des Charakters davon weg. Ich ziehe es in die Länge und
sage „Schwerkraft-Skala einstellen“. Wir werden unsere
Schwerkraft-Skala auf
Null setzen und ich werde
das so einbinden. Nur um dir zu zeigen, was
zur Hölle ich hier mache, werde
ich noch einmal zu
meiner
Figur in der dritten Person zurückkehren noch einmal zu
meiner
Figur in der dritten Person Wir verwenden hier unseren Charakter aus der dritten
Person in diesem Projekt. Wenn ich mir die
Bewegungskomponente meines Charakters schnappe, ist
das die Komponente, mit der
ich hier in
meiner Flaggensequenz am Ende des Levels spreche . Die
Bewegungskomponente meines Charakters. In dieser Komponente, der Komponente zur
Charakterbewegung, einen Skalenwert
, der derzeit auf
2,5 eingestellt ist. Hier in meiner Flagge am Ende des Levels sage ich
im Grunde, hey, lasst uns die Schwerkraft-Skala
für unseren Charakter auf Null setzen,
sodass er
quasi in der Luft schwebt und in der Luft
einfriert, wenn er die Auslöselautstärke
überschreitet Ordnung, also werde ich das einfach
herunterfahren, In Ordnung, also werde ich das einfach
herunterfahren,
also vielleicht auch hier einen
Re-Route-Knoten einbauen, nur
um diesen Ablauf ein
bisschen besser zu zeigen. Okay, das nächste, was ich
tun möchte , ist, dass ich meine
Charakterbewegung hier weiter in die
Länge ziehe. Und ich werde deaktivieren
eingeben. Und das wird funktionieren
, was es sagt, es wird
unseren Charakter daran hindern, sich zu bewegen. Übrigens, kurzer Tipp hier. Wenn du deine Kabel gerade machen
willst, weil sie vielleicht ein
bisschen
aus dem Gleichgewicht geraten sind, kann
ich
diese beiden einfach markieren und auf die Taste tippen Das E ist leise, um diese Drähte zu
glätten. Wenn ich weitermache, ein
bisschen nach rechts gehe, werde ich noch einen Hinweis
auf meinen Charakter hinzufügen, damit
ich das nicht dauernd durchziehen
muss und
überlappende Drähte haben Und eigentlich wollte ich diese
Routenkomponente nicht einbauen.
Lass mich nur Z kontrollieren. Okay, das ist,
was wir bis jetzt haben. Ich werde noch einen Hinweis auf meinen Charakter
hinzufügen, Drag & Drop. Und ich habe einfach
die Steuertaste gedrückt gehalten,
während ich das per Drag-and-Drop verschiebe. Um das besser zu machen
,
ziehe ich das ab und tippe Mesh Ich hole das Mesh. Und wenn ich wieder zu meinem Charakter aus der dritten Person
zurückkehre , sage
ich, dass ich diese
Komponente genau hier haben will, mein Mannequin-Mesh genau Ich möchte dieses Mesh weil ich es von hier
wegziehen möchte
und in der Animation
möchte ich , dass mein Mesh
eine bestimmte Animation abspielt Ich habe eine im Kopf
, die ich gerne abspielen würde. Wenn ich hier eine
neue Animation auswähle, die abgespielt werden soll. Ich gebe
M, M, Unterstrich Lauf, Unterstrich nicht N M, Unterstrich, Vorwärts Und wie ihr dem Pfad entnehmen könnt,
gibt es in der Spielfigur
Mannequins Mannequins Wenn du darauf klickst, wird das Asset im
Inhaltsbrowser
durchsucht Tatsächlich mache ich das jetzt, indem ich auf diese
Lupe klicke, hier ist sie, genau hier unten. Diese Animation. Jetzt
spielt es diese Animation ab. Ich werde
es einfach hier unten pausieren. Jetzt möchte ich, dass dies
an einem bestimmten
Punkt in der Animation im Wesentlichen zeitlich
eingefroren wird. Ich möchte im Wesentlichen
, dass es etwa bei
der 1,9-Sekunden-Marke,
irgendwo
gegen Ende, einfriert der 1,9-Sekunden-Marke, . Der Grund dafür ist,
dass die Hand
unseres Charakters zu diesem Zeitpunkt
in der Animation ungefähr zu diesem Zeitpunkt
ausgestreckt ist . Ich wollte also so
aussehen, als würde sich unser Charakter den Fahnenmast
schnappen
und ihn
aufschreiben , damit unser
Charakter diese Animation spielt An diesem Punkt kann ich hier tatsächlich zu meiner
Flagge am Ende des Levels
zurückkehren und so aus unserem Netz
ziehen und hier meine Animationsposition
festlegen eingeben meine Animationsposition
festlegen Ich spiele die Animation ab. Und mit dieser Funktion
lege ich die Position fest, die Position in der Zeit. Also werde ich das auf 1,9 setzen, so wie du mich gerade hier gesehen hast. Im Vorwärtslauf habe ich die 1,9-Sekunden-Marke erreicht. Ich
möchte im Grunde, dass
diese Pose abgespielt wird und ich werde das alles in Ordnung übertragen, also zoomen, ich bin wieder
ein bisschen hier , ist
dieser Teil des Drehbuchs Ich werde das anklicken
und herumziehen. Ich nenne das Standardcharakter und spiele ein
bisschen Drehbuch ab Formuliere das für alle
hier ein bisschen besser. Und jetzt, bevor wir dieses Video
nennen, werde
ich mich dem Anfang
dieses Drehbuches nähern. Wir entfernen den Fahnenmast zu dem Ort, an dem der Spieler
die Lautstärke auslöst Ich werde von
diesem festen Standort in der Welt ausgehen. Bitte beachten Sie ein wenig
, denn wir
wollen das Gebietsschema
der Spieler festlegen , wenn sie über den Fahnenmast
springen Um das zu tun, werde
ich einen Verweis auf meinen Charakter einbringen einen Verweis auf meinen Noch einmal, mein
Charakter zieht es mit rein. Ich hole mir den Charakter ich hier wegschleppen werde. Holen Sie sich noch einmal die
Kapselkomponente. Wir holen uns
die Kapselkomponente wir hier wegschleppen werden. Wir werden sagen, den Standort der Welt
festlegen. Und ich werde das so verkabeln. Was ist der Ort, den
ich dafür festlegen möchte? Nun, ich werde unseren
Spielern den ersten Startpunkt geben. Was ich
sagen werde, war der
Startpunkt meines Spielers genau hier. Nur um dir zu zeigen, wo das aus unserer Sicht
ist, der Startpunkt des Spielers
wird genau dort sein Wenn sie also
über den Fahnenmast springen, sagen
wir, Spieler, du fängst genau
dort an Wir werden uns
das schnappen. Startpunkt der Spieler, zieh ihn rein. Wir ziehen das in die Länge
und sagen Weltstandort. Wir werden den Standort dieser
Welt ermitteln, an
der
Weltregion werden wir den Standort unserer Charaktere
festlegen. Was wir dann tun
müssen, ist einfach das Ende der Sache hier zu
verdrahten und unsere Weltrotation
festzulegen. machen nur ein kleines Backup, damit Sie sehen können, wo das alles innerhalb
des größeren Schemas
unseres Blueprint-Skripts positioniert
ist des größeren Schemas
unseres Blueprint-Skripts Hier, ich werde das ein bisschen vergrößern
. Genau hier kann ich
einen Kommentar dazu schreiben, auf diese Taste tippen und ich
nenne das
mein festgelegtes Spieler-Gebietsschema Wenn sie über den Fahnenmast springen, nur um aus der Ferne
klar zu machen, was zur Hölle hier passiert In Ordnung, wenn
all das an Ort und Stelle ist, sollten wir
natürlich
unser Skript kompilieren und speichern Und lasst uns zurück
in unser Level springen
, nur um uns
das erste Mal hier zu spielen. Ich werde dafür sorgen
, dass ich nicht
über meinen
Fahnenmast springe . Also los geht's. reinspringen und planen, einfach das Triggervolumen überlappen. Wie du siehst, stehen wir jetzt
fest und müssen unseren Charakter wahrscheinlich
ein wenig nach vorne bewegen, damit es so
aussieht, als würde er sich den Fahnenmast
schnappen zu tun, können wir den
Standort
unseres Charakters ein wenig anpassen Standort
unseres Charakters ein Sie sind ein bisschen versetzt, aber aus
Zeitgründen werde ich vorerst
damit leben. Jetzt müssen wir das Szenario
testen dem
unser Charakter versucht,
über den Fahnenmast zu springen über den Fahnenmast Um dabei zu helfen,
werde ich hier eine
meiner Launcher-Plattformen
direkt vor mir einrichten hier eine
meiner Launcher-Plattformen
direkt vor Lassen Sie mich weitermachen und meinen Launcher
auswählen. Ich werde
den oberen Teil des Launchers
hier ein wenig vergrößern. Ich werde nicht genau
sein, ich
muss es nur so weit abprallen
lassen, dass wir in die Luft
fliegen und
am Ende an unserem Fahnenmast landen Also lass uns einfach versuchen,
reinzuspringen und zu spielen. Sie können sehen, dass es unseren Charakter
bis zur Spitze
unseres Fahnenmastes
verzerrt bis zur Spitze
unseres Fahnenmastes Und genau das
wollen wir dort geschehen lassen. Ordnung, es muss also offensichtlich
noch mehr Arbeit
getan werden , damit unser Charakter den Fahnenmast
hinunterfährt, von ihm
springt und
in glorreicher Pracht explodiert. Aber jetzt
friert unser Charakter an der richtigen
Stelle entlang des Fahnenmastes ein,
spielt die richtige Animation ab und
sieht aus, als würde er ein
bisschen aus dem Fahnenmast spielt die richtige Animation ab und
sieht aus, herausgreifen herausgreifen Außerdem wird die Bewegung unseres Charakters deaktiviert
. Leute, das
reicht für dieses Video. Wir sehen uns im nächsten.
83. Flaggenpole-Skript #3: Willkommen zurück. Unser
nächster Schritt besteht darin, es so zu
gestalten, dass
sowohl unsere
Flagge als auch unser Charakter am Fahnenmast animiert werden wenn unser Charakter diese Auslöselautstärke
überlappt Lassen Sie uns nun
aus einer Entfernung von 10.000 Fuß direkt wieder in
unseren Flaggenentwurf eintauchen nun
aus einer Entfernung von 10.000 Fuß direkt wieder in
unseren Flaggenentwurf eintauchen Das ist das gesamte Skript, das wir
derzeit haben. In unserer Markierung „BP,
Levelende“ stellen
Sie fest, dass wir
bestimmte Abschnitte
unseres Skripts
mit Kommentaren versehen haben , die
uns
helfen, herauszufinden, was zur Hölle wo passiert Ich dachte, ich würde
das erwähnen, wenn wir schon hier sind, dass du, wenn du in das Fenstermenü kommst und die Lesezeichen aktivierst, auf einen deiner Kommentarknoten
hier unten doppelklicken kannst einen deiner Kommentarknoten
hier unten , um zu dem Abschnitt
von Script F zum Spielercharakter zu springen von Script F zum Spielercharakter zu Doppelklicken Sie einfach
darauf. Und es vergrößert diesen
Abschnitt des Skripts, legt die Position des Charakters
fest
und spielt Anum ab Dieser Abschnitt des Skripts
wird hervorgehoben, das ist
also eine wirklich gute Möglichkeit Ihrem Bauplan
zurechtzufinden Jetzt beginnen wir damit, auf dieser festgelegten Position
aufzubauen,
uns von diesen festgelegten Charakteren zu trennen
und einen Abschnitt des Drehbuchs abzuspielen und einen Abschnitt des Drehbuchs abzuspielen Also werde ich hier unten nach
oben zoomen. Und bevor wir unseren
und unseren Charakter am Fahnenmast animieren , werden
wir eine Verzögerung
einbauen werden
wir eine Verzögerung
einbauen Also werde ich mit der rechten Maustaste klicken und
einen Delay-Knoten einfügen. Wir werden das
um 1 Sekunde verzögern Lassen Sie mich die Linie
etwas weiter vergrößern. Wir bauen wieder einmal auf
dieser Funktion zur Einstellung der Position auf. Wir werden es um 1 Sekunde
verzögern. Und dann
werden
wir einen Sound abspielen. Spiel Sound Two D, das wird unser Fahnenmast
sein Ton. Also werden wir eine Sekunde warten, bevor
wir diesen Sound auslösen. Und danach
werden wir ein paar Dinge tun. Da ich im Wesentlichen
ein paar
Dinge gleichzeitig erledigen möchte , werde
ich einen Sequenzknoten
einbauen. Und ich werde
das tun, indem ich
die Taste gedrückt halte und mit der linken Maustaste klicke Dadurch wird
ein Sequenzknoten angezeigt. Und ich werde einfach
ein Kommentarfeld um diese wirklich schnelle
Linksklick-und-Drag-Taste legen. Ich nenne das meine Pause, bevor ich
das Drehbuch
abspiele und den Hauptteil
des Drehbuchs heruntergehe . Nur eine kurze Pause, bevor
wir diesen Sound spielen. Und dann mach hier ein
paar Dinge. Ich werde auch schwarz färben. Nur um ein
bisschen mehr Kontrast
zwischen meinen Drähten zu erzeugen , lassen wir unseren Charakter am Fahnenmast
animieren Um das zu tun, werde
ich hier
einen Verweis auf meinen
Charakter einfügen. Also werde ich die Strg-Taste
gedrückt halten und mit der linken Maustaste klicken. Das wird meinen Charakter bekommen. Dann verlasse ich meinen Charakter
und tippe die Kapselkomponente ein. Ich nehme die
Kapselkomponente , weil, noch einmal, die Kapselkomponente, wenn ich in meinen Blutdruck, den Charakter
einer dritten Person, eingehe, das ist der Hauptbestandteil, von
dem alle anderen Komponenten , die
darin hinzugefügt werden, an unsere
Kapselkomponente
gebunden sind . Das ist hier im Wesentlichen
unsere Hauptkomponente. Ich möchte das haben, und
der Grund, warum ich
unsere Kapselkomponente wieder
hier in unserem Flag am Ende des Levels haben möchte unsere Kapselkomponente wieder
hier in unserem Flag am Ende des Levels ist, dass ich sie
wegziehen und
Move-Komponente zwei eingeben kann . Wir werden
diese Komponente verschieben. Und wenn wir diese Komponente bewegen, alle anderen Komponenten
unseres Charakters werden auch
alle anderen Komponenten
unseres Charakters mitbewegt. Lass uns das
direkt in Move einbauen. Ich werde einen Re-Route-Knoten einbauen, nur um das ein wenig
aufzuräumen Wohin wollen wir
das jetzt verschieben? Nun, wir wollen das
auf unseren Spielerendpunkt verschieben. Ziehen wir das also rein und holen das, nur um zu zeigen, wo es sich in unserem
Viewport-Player-Endpunkt
befindet Ich habe es gerade hier angeklickt. Sie können sehen, dass es
gleich da unten ist. Das ist im Grunde der
Punkt, an dem wir
unseren Charakter
in unserem Event-Graph hier nach hinten verschieben wollen . Wir werden das hier zur Seite verschieben, zu unserem
Spielerendpunkt. Lassen Sie uns hier rausziehen und
den Standort der Welt ermitteln. Das wird der Ort sein
, zu dem wir gehen wollen. Und dann ziehen wir
es
wieder in die Länge und geben get world rotation so ein. Jetzt können wir angeben,
über welchen Zeitraum das alles
passieren wird. Genau hier können Sie eine Zeit
angeben. Ich werde dafür sorgen, dass
das eine Sekunde dauert. Das wird unseren Charakter
dazu
bringen, den Fahnenmast runterzufahren. Lassen Sie mich einfach mit der linken Maustaste klicken und auf die Taste C
ziehen, dann sage
ich: Animiere den
Charakter an der Stange entlang Färbe das auch schwarz. Sie können sich vorstellen, dass
wir
etwas Ähnliches für unsere Flagge tun werden. Ich werde das nur ein bisschen nach oben verschieben
. Das wird das Erste sein,
was wir hier mit unserem
Sequenzknoten
machen werden . Das nächste, was
wir von
unserem Sequenzknoten aus tun werden , ist, uns einen Verweis darauf zu
schnappen, dass
unsere Flagge offensichtlich genau dort Das ist unsere Flaggenkomponente. Wir ziehen das per
Drag-and-Drop rein. Wir werden es von hier wegziehen. Wir werden auch eine zweite Komponente
einbauen. Wir werden das auf
diese Weise in den Eingangspin
einstecken. Wo wollen wir das nun
animieren? Nun, wir wollen das auf unseren Endpunkt verschieben
. Wir haben eine Komponente, die für diesen Flaggenendpunkt spezifisch
ist. Wenn Sie vergessen haben, wo sich das befindet, kehren Sie hier zu unserem
Viewport-Tab zurück Dieser Drachenkopf genau hier.
Das ist unser Flaggenendpunkt. Das wird also
von hier bis da so weitergehen. Ziehen Sie aus unserem
Flaggenendpunkt heraus und wir erhalten
die relative Position. Dies ist die Position
relativ zu unserem Ziel. Und dann
ziehen wir das in die Länge und
geben die relative Drehung ein. Also nochmal, wir werden hier 1 Sekunde
angeben. Okay, das wird also unsere Flagge animieren. Klicken Sie mit der linken Maustaste und ziehen
Sie diese Taste
, und schon wird die Flagge
animiert, die Stange herunterzufahren Hallo, dieser schwarze. Und dann lass uns weitermachen
und kompilieren und speichern. Und lass uns reinspringen und spielen und uns ansehen, was wir haben. In Ordnung, spring hier hoch,
Flagge animiert runter. Unser Charakter animiert nach unten. Jetzt wird unser Charakter irgendwann - und
aussteigen und explodieren Aber das ist im Wesentlichen das, was wir bisher erreichen wollten Nun, eine Sache, von der ich hier nicht gerade
begeistert bin , ist unser Charakter, wenn man es genau bemerkt und
beobachtet. Im Moment
sieht es so aus, als würden sie den Fahnenmast schnappen, aber als sie anfingen,
sah es so aus, als wären sie
etwas versetzt Also lass mich das jetzt einfach nochmal
machen. Beobachten Sie die Hand unserer Charaktere. Ganz am Anfang stehen sie quasi
vor dem Fahnenmast Und dann
animieren sie quasi bis dahin. Unsere Flagge funktioniert gut, aber unser Charakter
nicht ganz so gut Die Art und Weise, wie wir das beheben können besteht im Wesentlichen darin,
zu unserem Standpunkt zurückzukehren und sicherzustellen, dass unser Trigger
genau hier im Wesentlichen dem Endpunkt des Spielers
entspricht Wenn ich hier also in
eine Seitenansicht gehen würde, gehen
wir zur linken Ansicht Gehen wir jetzt zur rechten Ansicht. Die rechte Ansicht ist die, die
wir wollen, und ich muss genau dort
unsere Triggerlautstärke auswählen . Es sieht so aus, als ob es genau dort
in der Schlange steht. Aber anscheinend
wird das visuell nicht gut sein. Also werde ich
meine Auslöselautstärke einfach ein bisschen mehr erhöhen Allerdings möchte ich hier
meine Snap-Einstellungen ausschalten. Ich werde genau
in die Mitte gehen so wie ich dachte, ich
wollte es haben. Jetzt konnte ich mir ein Problem mit der Einstellung der
Auslöselautstärke genau hier vorstellen,
nämlich dass mein Charakter gegen
den eigentlichen Fahnenmast und
möglicherweise sogar gegen die Fahnenmastspitze selbst stoßen
könnte den eigentlichen Fahnenmast und
möglicherweise sogar gegen die Fahnenmastspitze möglicherweise sogar Aber lass mich einfach weitermachen und das
kompilieren und speichern und spielen. Mal sehen wie mein Charakter auf den Fahnenmast reagiert Du kannst im Moment sehen,
dass sie die Auslöselautstärke
nicht wirklich überlappen ,
weil unser Charakter gegen den
Fahnenmast selbst stößt Wie können wir dem also Abhilfe schaffen? Nun, was wir tun können, ist die Kollision sowohl für
unseren Fahnenmast als auch für unseren
Fahnenmastdeckel hier
auszuschalten unseren Fahnenmast als auch für unseren
Fahnenmastdeckel hier Wir wollen sicherstellen
, dass unser Charakter nicht auf diese stößt Stattdessen können sie sie durchdringen,
sodass sie die Auslöselautstärke beide ausgewählt sind, gehe
ich nur zu den Kollisions-Voreinstellungen und
aktiviere „Keine Kollision,
keine Kollision “ für unseren Fahnenmast
sowie für ein Flaggendach Ich werde kompilieren. Speichere das nochmal. Springe zurück ins Spiel. Wenn ich jetzt springen würde, würde
ich dort im Grunde
darauf treffen . Das ist ziemlich gut. Sieht aus, als ob unser
Charakter den Fahnenmast wie beabsichtigt
herunteranimiert hat,
ohne dass unser Charakter
mit dem Fahnenmast selbst kollidiert Passen Sie die
Auslöselautstärke also nach Ihren Wünschen an. Also, ich habe es irgendwie
genau in der Mitte
meines Fahnenmastes, genau dort Wenn Sie
den tatsächlichen Standort sehen möchten, habe ich
momentan den Standort N
eingestellt. Wenn Sie das tun,
stellen Sie sicher, dass Sie einfach
Ihr Flaggenoberteil und
Ihre Fahnenmasten ausschalten Ihr Flaggenoberteil und
Ihre Fahnenmasten Kollision. Und das haben wir
getan, indem unter eine
Kollisions-Voreinstellung geraten sind. Keine Kollision. Okay, wir werden
dieses Video beenden. Es liegt noch mehr Arbeit vor uns. Wir sehen uns alle
im nächsten.
84. Flaggenpole-Skript #4: Ordnung, weiter
mit unserer Flagge für das Ende des Levels, springen wir wieder rein, damit
wir den Spieler, auf dem
unsere Spieler gerade auf der Flagge
reiten, explodieren
lassen können unsere Spieler gerade auf der Flagge
reiten Machen wir es so
, dass sie gleich dort abspringen und explodieren Um zurück zu unserer Flagge
am Ende des Levels zu springen, zeige
ich Ihnen, wie
Sie einfach mit der rechten
Maustaste auf das Asset
in Ihrem Level klicken können Maustaste auf das Asset
in Ihrem Level klicken Hier können wir BP und
Levelende-Flag bearbeiten. Ein Klick darauf
reicht völlig aus. Steuern Sie auch die einfache
Hotkey-Kombination, um wieder reinzukommen. Das ist derzeit unser
Drehbuch aus einer Entfernung von 10.000 Fuß. Ich
klicke mit der rechten Maustaste und zoome bis zu der
Stelle, an der wir unseren
Charakter animiert haben. Lassen Sie uns also noch einmal genau
in diese Region eintauchen. Es ist genau hier nicht in unserer
Reihenfolge. Das erste, was wir tun
werden, ist,
einen weiteren Verweis
auf unseren Charakter
direkt drüben in das Bedienfeld „
Mein Blueprint“ einzufügen einen weiteren Verweis
auf unseren Charakter direkt drüben in das Bedienfeld „
Mein Blueprint“ Lassen Sie uns einen weiteren
Verweis auf unseren Charakter einfügen, indem Sie die
Strg-Taste gedrückt halten
und mit der linken Maustaste klicken Wir werden meinen Charakter bekommen. Und dann
ziehe ich das in die Länge und
tippe get mesh ein. Ich möchte das
Mannequin-Mesh aus dem Inneren unseres
Charakters holen Mannequin-Mesh aus dem Inneren unseres
Charakters Diese Mesh-Komponente. Ich
ziehe das dann raus und
tippe Play-Animation ein. Es gibt eine bestimmte
Animation, die ich
abspielen möchte, und es wird M,
M, Underscore J. Ump sein . Und wir werden das am Ende der zweiten Komponente
des Zuges
einhängen , nachdem wir die
Figur die Stange hinunter animiert haben Also zeigen wir nur, wo das
ins Spiel kommen wird. Sie sich jetzt einfach diese
Animation hier an, indem Sie auf dieses
Lupensymbol klicken, es wird so aussehen Als ob unser Charakter in
der Hocke liegt. Was
wir also im Grunde tun werden, ist, dass unser Spieler am
Ende sein wird Der Fahnenmast
unten, wenn Sie so wollen. Und sie
werden
nur für einen kurzen Moment eine Pause einlegen . Und hier werde ich wieder
zu meinem Drehbuch zurückkehren. Und ich werde
sagen, dass wir hier 0,3 Sekunden
verzögern werden. Also werde ich die
Taste für die Verzögerung gedrückt halten und mit der linken Maustaste klicken. Das wird einen Verzögerungsknoten einschalten. Also ich lasse meinen Charakter diese Animation
spielen, die hockt, während
sie springen Und dann werden wir das
um 0,3 Sekunden und 0,3
Sekunden verzögern , weil,
nun ja, meine Spieltests haben
ergeben, dass das ziemlich gut war Ich klicke mit der linken Maustaste
und ziehe sie herum, tippe auf die Taste und das ist
mein Player am unteren Rand des
Flaggenmast-Skripts Ich sage in Klammern, spring. Sie
werden nicht wirklich springen,
wir werden sie bewegen,
aber es wird
so aussehen, als würden sie abspringen Ich werde das auch noch einmal schwarz färben
. Okay. Als Nächstes lassen wir unseren Spieler tatsächlich vom Fahnenmast springen. Also drücken wir die
rechte Maustaste und schwenken einfach weiter. Wir werden auf diesem Verzögerungsknoten aufbauen
. Wir werden
noch einmal
einen Hinweis auf unseren Charakter einbringen . Ich werde die Strg-Taste gedrückt halten, linken Maustaste klicken und ziehen.
Da ist mein Charakter. Ich werde das noch einmal durchziehen und ich werde
die Mischung holen, Get ish. Wir werden auch
eine weitere Animation abspielen , eine
Drag-Play-Animation Und was das sein wird, lassen Sie uns das sofort einhängen,
das Ausführungskabel, sodass diese Funktion,
diese Funktion zum Abspielen von Animationen
, ausgeführt wird. Jetzt wird die Animation, die ich hier abspielen möchte
, Fall Loop heißen. Sie wird sich dort in derselben
Reihe von Ordnern befinden. Sie können den Pfad hier sehen, Fall Loop, nur um Ihnen zu zeigen, wie das aussehen
wird Es wird so aussehen, als ob unser Charakter ständig in dieser Schleife
feststeckt.
So etwas in der Art. Während sie
vom Boden
des Fahnenmastes bis zu
unserem Explosionspunkt animieren , werden
sie die Animation
im Grunde genau dort abspielen Sie könnten dies auf
Looping setzen, wenn Sie möchten. Ich meine, das wird alles relativ schnell
gehen. Das ist genau die
Wahl des Händlers. Und was ich dann
tun werde, ist, dass ich meinen
Charakter hier wieder
herunterziehe. Und wir werden uns noch einmal die
Kapselkomponenten besorgen. Die Kapselkomponente ist die Hauptwurzelkomponente
unseres
Charakters, zu der auch jede andere
Komponente gehört. Wenn wir also die
Kapselkomponente bewegen, werden
wir
alles andere bewegen. Der Grund, warum
wir das tun
, ist , dass wir das in die
Länge ziehen und sagen
werden, Komponente verschieben zu. Wir werden
diese Komponente verschieben und
sicherstellen, dass Sie sie so
verkabeln, wie sie waren. Nun, wir wollen es
an unseren Explosionspunkt bringen. Lassen Sie mich jetzt einfach zu
unserem Aussichtspunkt hier springen. Wir haben diesen
Explosionspunkt für Spieler. Und ich habe es
meinem Komponenten-Panel vorgezogen. Das ist im Wesentlichen
diese Pfeilkomponente genau hier in diesem Feld, genau dort,
wo wir die
Kapselkomponente unserer Spieler platzieren werden . Lassen Sie uns unseren
Spieler explodieren lassen. Richten Sie das Bauteil
genau dorthin. Wir werden das in die Länge ziehen, wir werden den Standort
der Welt ermitteln. Und das wird
der Zielort für unsere Kapselkomponente sein. Dann ziehen wir das auch und sagen noch einmal, holt euch die
Weltrotation, ihr könnt entscheiden wie lange
dieser Übergang stattfinden
wird, von der Stelle,
an dieser Übergang stattfinden
wird, von der Stelle, der unser Charakter
am Boden
der Fliegenstange hockt ,
bis hin zur Wahl dieses Händlers Ich werde das auf
eine halbe Sekunde einstellen, also 0,5 Sekunden. Lassen Sie uns eine Comic-Box
um diesen Linksklick legen, ziehen, auf die Taste tippen, und ich sage, ein Spieler
springt vom Fahnenmast. Wir werden das
auch schwarz färben. Zoomen Sie einfach eins heraus. Derzeit haben wir hier zwei Skriptblöcke , die wir in diesem
speziellen Video geschrieben
haben. In Ordnung, lass uns jetzt
die Spieler explodieren lassen, sollen wir? Also, um das zu
tun, gehen wir nach rechts. Auch hier wollen wir den Charakter in
die Kapselkomponente aufnehmen. Noch einmal werde
ich eine Abkürzung nehmen. Hier. Ich werde diese beiden Knoten hervorheben, indem ich sie ansteuere
und mit der linken Maustaste klicke. Ich mache Control D, um sie beide zu duplizieren und sie hierher zu
bringen. Was ich tun möchte,
ist, dass ich meine
Kapselkomponente hierher
ziehen möchte. Ich möchte
den weltweiten Standort
unserer Kapselkomponente ermitteln. Und der Grund, warum ich
die weltweite Position
meiner Kapselkomponente ermitteln möchte , ist
, dass ich von dort wegziehen
werde, um den Emitter an der Position zu
spawnen Auch hier erzeugt das Spawnen
eines Emitters die ältere Art von Partikeln Nun, der Grund, warum ich ein älteres Partikelformat
erzeuge ist, dass,
wenn ich hier draufklicke,
unser
Explosionspartikel sich gerade
in unserem ursprünglichen Inhalt befindet,
das ist das Legacy,
das ältere Kaskaden-Partikelsystem in unserem ursprünglichen Inhalt befindet,
das ist das Legacy, das ältere Kaskaden-Partikelsystem das ältere Wir haben es uns
im Startinhalt zur Verfügung gestellt. Wenn dir über das
Niagara-Partikelsystem eine Explosion
im neueren Stil zur Verfügung steht, könntest
du wählen, ob du ein
System am Standort spawnen möchtest So kannst du
ein Niagara-Partikel spawnen Wir müssen das als Ort angeben,
an
dem wir bei diesem Partikeleffekt spawnen
werden Ich werde
diese Explosion auch vergrößern , um
sie ein bisschen größer zu machen Also werde ich es auf der ganzen
Linie auf zwei festlegen. Ich werde
diesen Ort auf der Welt auch als Ort verwenden diesen Ort auf der Welt auch als Ort , an
dem ich einen Sound abspielen
möchte Ja, du kannst einen Sound
an einem bestimmten Ort abspielen. Also ziehe ich mich von hier
weg und tippe Play Sound am Standort ein. Wenn wir also
ein Bild für eine Explosion haben, wollen
wir wahrscheinlich auch einen Soundeffekt
für eine Explosion. Wir haben diese Explosion. Dabei
wird nach dem Zufallsprinzip ausgewählt, welche der beiden gegebenen Schallwellen sehr ähnlich wiedergegeben
wird, aber Sie könnten eine
dieser Schallwellen selbst wählen Dadurch wird die
rohe Schallwelle selbst abgespielt. Ein Sound-Cue bietet ein
bisschen mehr Flexibilität und kann solche
Randomisierungsmöglichkeiten bieten. Ich werde mich also für einen Sound-Cue
entscheiden. Eine weitere Sache, die ich hier tun
werde, ist, dass ich den Spieler
nicht wirklich
zerstöre, ich werde ihn nur
verstecken. Also werde ich
meine Kapselkomponente noch
einmal herausziehen . Und ich werde die
eingestellte Sichtbarkeit eingeben. Ich will den Spieler nicht
zerstören und ein Leben verlieren
oder so. Ich stelle die Sichtbarkeit ein und stelle
sicher, dass du
diese Ausführungsleitung einschaltest. Und wir werden
diese neue Sichtbarkeit
hier ungeprüft lassen diese neue Sichtbarkeit
hier ungeprüft Das heißt, wir werden
unseren Charakter nicht dadurch erkennen, dass wir unseren Spieler
explodieren lassen Wir werden unseren Spieler nicht wirklich los, wir zerstören unseren Spieler nicht Es ist alles ein bisschen
Taschenspielertrick einfach zu verstecken, sie unsichtbar
zu machen. In Ordnung, tippe auf die C-Taste. Ich nenne das mein
Explode the Players-Skript. Wir werden das auch schwarz färben. In Ordnung, lass uns weitermachen
und das kompilieren und speichern. Lass uns reinspringen und spielen
und sehen, wie das aussieht. In Ordnung, ich überspringe das. Einfach ins
Fliegenbecken springen, es aufschreiben, Pause machen, aussteigen und unser
Charakter ist dort nicht explodiert Also das ist offensichtlich ein Problem. Lass uns nachsehen, was falsch ist. Nun, und da hätten
wir es. Bei mir wirkt unsere
Kapselkomponente, aber ich muss das auch an
die Kinder Das sind all die anderen Komponenten , die daran befestigt
werden Wenn ich also dieses Kästchen ankreuze, springen
wir wieder rein
und spielen und einsteigen. Wir schreiben es auf, bumm, weg ist unser Charakter
in glorreicher Pracht Wie befriedigend in der Tat. Also ja, bitte denken Sie
daran dieses Kästchen auch für die Weitergabe
an Kinder anzukreuzen Ordnung, also in
diesem Video haben wir
diese drei Abschnitte des
Skripts zu unserem Flaggenmast am Ende
des Levels hinzugefügt diese drei Abschnitte des Skripts zu unserem Flaggenmast am Ende
des Levels Und das haben wir auf Basis unseres
animierten Charakters am
Fahnenmast aufgebaut animierten Charakters am
Fahnenmast Also nur, um bei jedem Teil
des Skripts ein
wenig nach oben zu zoomen , falls Sie das Video
hier pausieren möchten Das war unser Spieler am
Boden des Fahnenmastes, der sich auf den Sprung
vorbereitete, der Spieler, der vom Fahnenmast sprang Und zu guter Letzt haben
wir unseren Spieler explodieren lassen Ordnung, es liegt noch ein
bisschen mehr vor uns, aber damit ist dieses Video abgeschlossen Wir sehen uns im nächsten.
85. Flag Pole-Script #5: Ordnung, lassen Sie uns unsere Flagge für das Ende des
Levels
beenden , indem wir mit der rechten
Maustaste darauf klicken. Ich werde es bearbeiten. Control plus E bringt es gleich
wieder rein. Noch einmal, so sieht
unser Skript
aus einer 10.000 Fuß großen
vergrößerten Ansicht aus Wir werden hier unten rechts
weitermachen , also werde ich mit der rechten Maustaste klicken Zoomen Sie nach oben. Wir werden auf diesem festgelegten Sichtbarkeitsknoten aufbauen. Jetzt wird es unser Ziel sein
, nur dann ein Feuerwerk zu spielen , wenn unsere
Levelendzeit mit
einer bestimmten Ziffer endet Jetzt kam mir diese Idee, als ich
die allerersten Super Mario
Brothers auf dem Nintendo gespielt die allerersten Super Mario
Brothers auf dem Nintendo Und ich glaube, wenn ich mich richtig
erinnere, wenn du mit einer
Levelzeit mit einer Ziffer von sechs fertig wärst, also 86 Sekunden, würdest
du ein Feuerwerk bekommen, das
aus sechs Feuerwerken besteht Das ist also im Grunde das
, was wir hier anstreben. Nur ein bisschen mehr Jazz. Jetzt will ich herausfinden ob unsere
Feuerwerks-Sondershow-Nummer, in meinem Fall, ich eine Integer-Variable auf den Wert 7
gesetzt habe, wir ziehen das raus, also wenn unsere Zeit
im Grunde mit der Stufe 7 endet, holen wir uns diese Variable, wir wollen ein
Feuerwerk abspielen Ich möchte hier also im Wesentlichen auf
unsere Zahl sieben verweisen Jetzt möchte ich herausfinden, ob
unsere Levelzeit mit der Zahl
Sieben enden
wird . Also, wie mache ich das? Also, ich muss einen
Hinweis auf meinen Controller einbringen,
meinen BP-Player-Controller. Also werde ich die
Strg-Taste gedrückt halten, mit der linken Maustaste klicken und ziehen. Dann ziehe ich
hier aus meinem Controller
heraus und tippe die Levelzeit ein. Wir werden
unsere Levelzeit bekommen. Nun, das ist eine
Integer-Variable, die sich in unserem
BP-Player-Controller befindet. Lassen Sie mich einfach schnell zu
diesem Entwurf übergehen. Darin befindet sich meine Ganzzahlvariable Level
Time , die
derzeit auf 500 eingestellt Lass uns zurück zu unserer Flagge für das
Ende des Levels springen. Okay, und was wir tun
wollen, ist die Ziffer,
die am weitesten rechts steht, herauszufinden . Um dies zu tun, klicken
wir mit der rechten Maustaste auf
ein leeres Feld und geben
es direkt unter der Zeichenfolge ein. Klicken Sie nach rechts, um hier einen Funktionsknoten
einzufügen. Und was wir tun werden,
ist,
unsere Ganzzahl hier in diese Zeichenketteneingabe einzufügen. Dadurch wird unsere Levelzeit von einer
Ganzzahl in eine Zeichenfolge umgewandelt. Durch die Umwandlung
in eine Zeichenfolge haben
wir Zugriff auf weitere Funktionen wie diese Funktion hier , um einige sehr spezifische
Informationen darüber zu extrahieren. In diesem Fall
wollen wir nur herausfinden, was die letzte Ziffer
unserer Levelzeit
ist. Um das zu tun, wenn
ich mit der Maus darüber fahre, wird angezeigt, dass die Zeichenfolge rechts neben
der
angegebenen Position zurückgegeben wird . Von rechts rückwärts zählen. Wenn ich meine Zählung hier auf eins setze, erhalte ich quasi
die letzte
Ziffer, wenn ich von rechts von
unserer Zeit zähle Wenn wir mit einer
Levelzeit von sagen wir
87 enden , wird hier die
Zahl Sieben ausgespuckt Und wir werden das
mit unserer
Feuerwerks-Sondershow vergleichen unserer
Feuerwerks-Sondershow Um diese
beiden zu vergleichen, klicke ich mit der
rechten Maustaste in eine leere Stelle und füge einen Gleichheitsoperator ein Unsere
Feuerwerk-Sondershow wird, nun ja, wir stecken
sie in die Decke Unser Rückgabewert hier von unserer Funktion wird in den unteren
Teil eingefügt Es wird das sofort in
eine Zeichenketteneingabe umwandeln. Und dann fügen
wir
eine Verzweigungsnotiz ein, um die B-Taste gedrückt zu halten und
abzuzweigen und mit
der linken Maustaste zu klicken. Das wird unsere
Bedingung sein, dass wir
hier überprüfen , ob sie im Wesentlichen gleich
sind. Noch einmal, wir
werden mit unserem Explode the Player
weitermachen mit unserem Explode the Player
weitermachen Um den
Ausführungsfluss am Laufen zu halten, müssen
Sie
hier Ihren eingestellten
Sichtbarkeitsausgangspin nehmen und ihn
in den Zweig stecken Und damit werde ich mit linken Maustaste auf diese Knoten klicken. Ziehen Sie heraus und tippen Sie auf die C-Taste
, um die Comic-Box einzublenden. Und das wird mein Scheck sein
, ob letzte Ziffer der verbleibenden Zeit der Nummer der
Feuerwerksshow
entspricht, okay Und ich färbe
das schwarz
, damit du leichter erkennen kannst, ob du das
Video hier pausieren
möchtest Wir überprüfen also nur,
ob die letzte
Ziffer der
verbleibenden Zeit der gewünschten Sonderzahl für
das
Feuerwerk entspricht gewünschten Sonderzahl für
das
Feuerwerk Wenn das stimmt, werden
wir damit
weitermachen Der wahre Zweig, ich werde
einen Delay-Node einbauen. Halten Sie die Taste D gedrückt und klicken Sie mit der
linken Maustaste
, wir werden es nur um
eine halbe Sekunde, 0,5 Sekunden, verzögern. Dann werden wir eine bestimmte
Anzahl von Malen
tun . Wir klicken mit der rechten Maustaste
und fügen einen Knoten hinzu. Wir wollen etwas
mehrmals tun. unabhängig davon,
welcher Wert damit verbunden ist wollen wir tun
, unabhängig davon,
welcher Wert damit verbunden ist? N mehrmals? Nun, wie oft
wollen wir das machen? Nun, wir werden es machen,
unsere
Feuerwerk-Sondershow-Nummer in unserem Fall sieben Mal Was wollen wir, dass siebenmal
passiert? Nun, wir werden jetzt ein paar Feuerwerke
spawnen. Ich gehe hierher, wir
klicken mit der rechten Maustaste und wir werden den Emitter am Standort
spawnen Ich werde das noch nicht einhängen,
aber ich werde
meine Emitter-Vorlage
hier einbinden oder angeben Und das wird
unterstreichen: Spark Burst. Dieser Typ hier, er ist im Infinity Blade Effects Pack Unterstreichen Sie Spark Burst. Nun, wo soll der Ort dieses
Feuerwerks abgespielt werden Nun, wenn ich hier in
mein Viewport gehe, richte ich diesen ganzen
Box-Bereich genau Ich habe
es sogar Feuerwerksbereich genannt. Ich wollte einfach zufällig
irgendwo in diesem Gebiet spawnen. Mit dieser Komponente, die in meinem Event-Graph
ausgewählt ist. Ich werde
meinen Bereich für Feuerwerke reinbringen. Ich werde
es genau da hinschleppen. Lassen Sie uns
hier ein bisschen heranzoomen. Das ist mein Feuerwerksbereich. ziehe ich in die Länge und sage : Ermitteln Sie den Standort der Welt Ermitteln Sie den Standort der Welt wie. Also werde ich hier auch den Text in
der Ausdehnung rausziehen, die Größe der Box
ermitteln, mir
im Grunde diesen Bereich besorgen, wo unser Feuerwerk-Ausstellungsbereich befindet Dann klicke ich mit der rechten Maustaste
in ein leeres Feld und tippe zufälligen Punkt
im Begrenzungsrahmen Also werde ich das Zentrum unseres
Feuerwerksbereichs genau hier finden Und dann, was die Größe der Box
angeht, das wird an unsere halbe Größe
angeschlossen, und das
wird im Grunde genommen
ein Punkt innerhalb unseres
Feuerwerksbereichs heraussuchen ein Punkt innerhalb unseres
Feuerwerksbereichs Das wird der Ort sein, an
dem ich unser Feuerwerk starten möchte. Also, ich werde das nicht einfach direkt hier
einstecken. Was ich
stattdessen tun möchte, ist, dass dies als unser
Feuerwerks-Gebietsschema festgelegt Weil ich
das n-mal machen möchte,
sodass jedes Mal, wenn
unser Feuerwerk lokal ist, wenn es
mehrmals abgefeuert wird, in unserem Fall
sieben Mal, es ein anderes Gebietsschema wählt Jedes Mal, wenn ich
unser Firework-Locale
hierher nehme , setze ich es direkt über
den Rückgabewert, um einen Setter
einzufügen Und jetzt
wird mein Setup
so aussehen, dass wir jedes Mal, wenn wir von hier aus
feuern, ein neues
zufälliges Fireworks-Gebietsschema festlegen Und das wird das Gebietsschema
sein, in dem wir einen Funkenausbruch
erzeugen, also quasi ein Feuerwerk Nun, noch einmal,
wenn Sie
das Niagara-Partikelsystem verwenden möchten , wäre
dies der Standort des Spawn-Systems wäre
dies Dieses spezielle Partikel
ist ein bisschen klein, also werde ich es vergrößern, indem meine Skala hier
auf zehn erhöhe. Jetzt ist es ziemlich schwach,
einen Partikeleffekt
ohne Ton zu erzeugen Lassen Sie uns also weitermachen und danach auch
etwas Sound abspielen. Also, wenn wir uns von hier wegziehen, werden
wir den
Ton vor Ort abspielen Was wollen wir hier
für einen Sound? Nun, ich dachte tatsächlich, der
Mario Swamp-Sound klingt ziemlich gut
für diese Explosion Klingt nicht richtig. Ich fand das eigentlich
ziemlich gut Der Ort des Sounds. Nun, ich kann wieder mein Fireworks-Gebietsschema
verwenden. Wo auch immer unser
Feuerwerksort festgelegt ist, wir verwenden das als Ort, an dem unser Sound
abgespielt Was ich dann auch tun werde
, ist, dass ich auch ein paar Punkte
reinspawnen will paar Punkte
reinspawnen Lassen Sie uns das hier
in die Länge ziehen
und ich gebe Saw Act aus dem Unterricht ein, weil es
cool wäre , ein
paar Bonuspunkte
für das Sammeln von Feuerwerkskörpern zu haben paar Bonuspunkte
für das Sammeln von Feuerwerkskörpern wenn Sie so wollen, für unsere Klasse hier Ich werde unsere
BP-Unterstreichungspunkte eingeben,
die wir zu Beginn des Kurses erstellt haben Und natürlich müssen wir angeben, wo das erscheinen wird Ich kann einfach von der
Spawn-Transformation rückwärts ziehen und make
transform wie folgt für
das Fireworks-Gebietsschema eingeben transform wie folgt für
das Fireworks-Gebietsschema Ich könnte das einfach als Ort angeben , an
dem
dieses Punkte-Widget erzeugt werden soll,
was ziemlich cool sein wird Nun, wie viele Punkte
wollen wir für jedes Feuerwerk hinzufügen? Nun, ich meine, wir
können hier wählen. Wir haben unsere
Feuerwerkspunkte variabel. Ich habe
das momentan auf 500 gesetzt, also lass uns weitermachen und das
einfach einstecken,
deshalb haben wir diesen Typen geschaffen Dann werden wir
auch meinen Controller einbauen
, was sich darauf bezieht, sich darauf bezieht dass
unser Player-Controller
ihn hineinzieht Wir holen uns das, dann ziehen
wir es raus und geben Punkte hinzufügen Wir werden Punkte hinzufügen, und ich werde gleich
dazu springen. Wie viele Punkte möchten
wir hinzufügen? Nun, wir können die Anzahl
unserer Feuerwerkspunkte hinzufügen. Im Grunde genommen werden
wir jedes Mal, wenn ein Feuerwerk zündet, Punkte
anzeigen. Darüber hinaus nennen wir
das Add Points innerhalb
unseres BP-Player-Controllers.
Was macht das nochmal? Nun, wenn ich einfach darauf
doppelklicke, werde ich zu meinem
BP-Player-Controller weitergeleitet. Und es zeigt, dass wir
dieses Event als Custom Event bezeichnen werden. Und wir werden die Anzahl
der Punkte
, die wir eingegeben haben,
genau hier durchgehen Anzahl
der Punkte
, die wir eingegeben haben, , in diesem Fall 500 Das wird es durchgehen. 500 plus unsere aktuelle
Gesamtpunktzahl. Und das wird
unsere neue Gesamtpunktzahl ergeben. Auch hier ist unser Punktewert mit unserer
Punkteanzeige in unserer Ud
verknüpft, also sollte das in Dandy in Ordnung sein Ordnung, lassen Sie uns die Ansicht vergrößern und noch einmal
zeigen,
was wir hier haben. Ich klicke mit der linken Maustaste und
ziehe mit der Maus um
diese Taste, dann
nenne ich das mein Spiel. Fire Works, wodurch Spieler zusätzliche
Punkte erhalten, wenn sie die Zeit abgeschlossen haben Wenn Sie hier wirklich versiert sind, haben
Sie vielleicht bemerkt, dass
ich
noch etwas tun muss . Lassen Sie mich meine
Farbe hier auf Schwarz ändern Derzeit
lassen wir das mehrmals
passieren, um ein neues
Feuerwerk zu erzeugen Derzeit
würden wir allerdings nur einmal durchfahren,
aber wir haben nicht die Möglichkeit, aber wir haben nicht die Möglichkeit das Ganze
im Grunde
sieben Mal abzufeuern, wie wir es gerne hätten Was wir
hier tun müssen, ist, ein benutzerdefiniertes Ereignis zu erstellen. Genau hier oben. Benutzerdefiniertes Event, und ich
nenne es einfach eher Feuerwerk Und ich werde das in unsere
Verzögerung einbauen. Und der Grund, warum wir das
tun werden, ist, dass wenn sich das noch
einmal als wahr herausstellt, wir sagen werden, hey, lassen Sie uns das für eine halbe Sekunde
hinauszögern Dann werden wir in einem
Feuerwerk spawnen. Jetzt heißt es „Fälliges Ende der Zeit“. Das erste Mal, wenn wir es
durchgehen, wird es all diesen Code machen, aber dann, ganz am
Ende, brauchen
wir Feuerwerk, unsere
benutzerdefinierten Ereignisse, die
wir gerade erstellt Also, was
das im Grunde machen wird, ich habe es einfach doppelt angeklickt Es wird uns zu
diesem benutzerdefinierten Ereignis zurückleiten, sodass
wir es um eine halbe Sekunde verzögern können Sie erneut durch unsere D N, in diesem Fall ein zweites Mal, sodass wir in
einem neuen Feuerwerk spawnen Und das wird sich wiederholen,
bis wir unser Limit erreicht haben, in diesem Fall von sieben In diesem Fall wird es diesen Punkt nicht
mehr überschreiten Ordnung, lassen Sie uns weitermachen
und unser Skript hier kompilieren, speichern und sicherstellen, dass
alles gut aussieht. Das haben wir uns
darin ausgedacht. Ein bisschen, schwer zu erkennen, also muss ich
es hier vielleicht in zwei Aufnahmen zusammenfassen. Okay, da und
gleich hier drüben. Und jetzt lass uns ins
Spiel kommen und uns einen Test geben. Ordnung, los geht's. Versuch, dafür hoch zu
greifen. Oh, und natürlich habe ich meine Levelzeit nicht festgelegt, ich habe das System hier nicht gespielt. Derzeit
ist meine Zeit auf 500 eingestellt. Noch einmal, wir
werden
unsere Zeit in
den kommenden Videos sehr bald erhöhen , aber ich werde unsere Zeit fest programmieren müssen nur um sicherzugehen, dass
das wie beabsichtigt funktioniert Also werde ich meinen
BP-Player-Controller hierher bringen. Ich werde meine
Levelzeit hier so einstellen, wie sie ist. Lass uns 47 nehmen, also endet es
mit der Zahl Sieben. Okay, lass uns weitermachen
und das speichern. Gehen wir wieder rein und spielen
mein Spiel. Und los geht's. Und wieder endet es mit
der letzten Ziffer von Sieben. Wir haben
jeweils sieben Feuerwerke bekommen, was 500 Punkte ergibt. Sie haben gesehen, wie sich diese
Punkte erhöht haben und sie oben rechts zu
meiner Gesamtsumme addiert haben
, und das funktioniert wie beabsichtigt Gut gemacht Leute. Wir haben jetzt einen Fahnenmast am Ende
des Levels für einige Level-Einstellungen, mit denen wir Dinge wie
unseren Level-Timer tatsächlich
zum
Laufen bringen werden. Wir sehen uns dort
86. Blueprint für Level-Einstellungen: Willkommen im Laufe der nächsten Videos hier.
Die
Dinge werden sich wirklich zusammenfügen, wenn wir einen Plan für
Leveleinstellungen
implementieren Nun, das wird ein
hochgradig anpassbarer Plan sein
, den wir in unserem
Level platzieren können Und es wird Dinge für uns
bestimmen, zum Beispiel, welche
Level-Musik wir spielen wollen, welche Art von
Zeitlimit wir für dieses
spezielle Level
einführen wollen dieses
spezielle Level
einführen ändern nicht nur,
wann Musik abgespielt werden soll,
was darauf hinweist, dass
unsere Levelzeit bald abläuft, die Blockzeit. Musik All diese Art von Jazz. In diesem
werden also gute Dinge implementiert werden. Und dieser wird an einige andere Pläne anknüpfen , die wir im Laufe
des Kurses ebenfalls erstellt haben Bevor Sie also diesen
ganzen Videoabschnitt erstellen, stellen Sie
sicher, dass Sie
den Checkpoint-Blueprint, das Hud-Widget,
den Blueprint und den Block fertiggestellt
haben den Checkpoint-Blueprint, das Hud-Widget,
den Blueprint Hud-Widget,
den Weil sie sich alle
an das System anpassen
werden , das wir hier erstellen werden Ordnung, um uns den
Einstieg zu erleichtern, werden
wir wieder einen Plan für Schauspielerklasse erstellen Und das werden wir in unserem Blueprint-Ordner
tun. Der erste Schritt ist also, hier
runterzukommen . Wir klicken
mit der rechten Maustaste. Wir werden
eine neue Blueprint-Klasse
der Art Actor Parent
Class erstellen . Und ich werde dem einen Namen geben. Und wo hat es es hingestellt? Drinnen hier. Da
ist es, genau da unten. Wenn ich F zwei drücke, um das umzubenennen, nenne
ich es BP. Einstellungen für die Unterstrichstufe. Ordnung, wenn das ausgewählt ist, drücke
ich die
Leertaste, um es zu öffnen Das Ziel in diesem Video ist
nur,
die Komponente und die
Variablen an ihren Platz zu bringen , und dann werden wir das Drehbuch für
das nächste Video oder Video schreiben Bringen wir die Komponenten , die wir
dafür benötigen werden. Bei der ersten Komponente
, die wir hinzufügen werden, werden
wir hier eine Reihe
von Audiokomponenten hinzufügen. Die Audiokomponente befindet
sich ganz oben in Ihren Anzeigen. Diese erste werde ich Level-Musikkomponente
nennen. Als Nächstes werde ich
eine Audiokomponente hinzufügen. Und es ist nicht wirklich wichtig
, dass sie hier angehängt sind. Aber wenn es Sie verrückt macht , dass sie aneinander hängen
, können
Sie sie einfach per
Drag & Drop auf die vorhandene Audiokomponente Die nächste Warnung
wird
Time Running Out Warning heißen Time Running Out Warning Ich wähle meinen Standard-Senior aus. Fügen Sie
noch einmal ein Audio hinzu. Dieser wird Time Expired
heißen. Der Standardsensor wird
erneut auf Hinzufügen klicken. Dies werden
alles unsichtbare
Komponenten in unserem Spiel selbst sein Komponenten in unserem Spiel selbst Dieser wird
übrigens Level Complete heißen. Hoppla. Und ich habe Level Complete eingegeben Ich möchte nur
eine Audiokomponente hinzufügen und sie Level Complete nennen Okay, lassen Sie uns weitermachen und
die Einstellungen für jeden
von ihnen sofort festlegen , beginnend mit unserem Level. Musik Lass uns weitermachen
und das auswählen. Drüben im Detailbereich
, wo Sound We go
to slot in steht. Musik Ich
suche Mario Level. Musik Wir wollen nach unten scrollen. Das ist sehr
wichtig, wo Auto Activate steht. Wir werden uns dafür entscheiden,
das nicht automatisch zu aktivieren. Okay, als Nächstes wählen
wir aus, dass die Zeit abläuft. Auch hier werden wir sofort
die automatische Aktivierung deaktivieren. Aber was den Sound selbst angeht, werden
wir
Mario mit der Warnung, dass die Zeit abläuft, einbauen und
dann,
wenn die Zeit abgelaufen ist, weitermachen und diese Komponente
auswählen Stellen Sie sicher, dass Sie die Option
Automatische Aktivierung sofort deaktivieren. Für den Sound wählen wir Mario,
der abgelaufen ist. Die Zeit ist abgelaufen. Dann wählst
du das für
Level abgeschlossen aus. Stellen Sie außerdem sicher, dass die automatische
Aktivierung nicht aktiviert ist. Andernfalls wird es von
Anfang an abgespielt . Im Sound
wählen wir
hier ist Level gelöscht,
Mario, Level gelöscht. Ordnung, wir haben also vier
verschiedene Musikstücke,
wenn Sie so wollen, die
mit unseren Level-Einstellungen verknüpft sind. Und sie sind alle so eingestellt, dass am Anfang
nicht aktiviert werden. Lassen Sie uns runterkommen und einige Variablen
erstellen. Als Nächstes klicken Sie in meinem Blueprint-Bereich Variablen auf
die Plus-Schaltfläche Dieser erste wird als aktuelles Zeitlimit
bezeichnet. Dies wird eine Ganzzahl sein. Wir werden all
das mit einem Skript verwenden . Ich werde
dieses und mit dem
ausgewählten Steuerelement D auswählen , weil ich eine weitere Ganzzahl haben möchte Diese wird Time Limit Max
heißen. diese Option ausgewählt ist, mache ich Steuerung D, weil ich eine weitere Ganzzahl haben
möchte. Und diese Warnung wird
Time
Running Out Warning heißen ,
sie wird gelten. Das ist genau dasselbe
wie meine Komponente hier oben. Ich nenne das meine
Running Out-Warnung, das V, die variable Version. Dann füge ich eine
weitere Variable hinzu. Das wird Time-Play-Rate
genannt. Das wird ein Float sein. guter Letzt füge ich
eine weitere Variable hinzu und diese wird mein Level genannt. Musik Dafür stelle ich den Typ auf Schallwelle ein. Wir wählen den
Objekttyp Schallwelle, Objektreferenz. Jetzt werden
wir wieder all diese in einem kommenden
Drehbuch verwenden . Lassen Sie uns
hier weitermachen und kompilieren, damit wir
für jeden dieser Werte einige Standardwerte
festlegen können . Also mach weiter und kompiliere. diese Weise können wir
einige Standardwerte
für ein aktuelles Zeitlimit festlegen . Ich werde das für unser maximales Zeitlimit auf
Null setzen. Ich werde das auch auf Null setzen. Beachten Sie, dass diese Werte hier
nicht festgelegt werden müssen. Dieser Maximalwert wird im Level-Editor
festgelegt und mithilfe eines Skripts an
die aktuelle
Wertvariable übergeben . Wir werden irgendwann etwas erstellen
, was ich tun möchte, wobei
das Zeitlimit maximal darin besteht, dass ich sicherstellen
möchte
, dass ich es so einstelle Instanzen bearbeitet
werden kann, damit wir es
im Level-Editor bearbeiten können Als Nächstes, bei einer Warnung, die Zeit
abläuft, ist
dies das Zeitlimit ,
mit dem Sie spielen
möchten, eine Art Liedchen,
das den Spieler warnt, dass, hey, Ihnen bald die Zeit davonläuft Damit wollen wir das
auch offenlegen, um diese
Instanz editierbar zu machen Also können wir
das vom Editor aus bearbeiten, wenn wir wollen. Und wir werden das auf 50 setzen. Aber noch einmal, Wahl des Händlers. Ich werde den Spieler,
der noch
etwa 50 Sekunden übrig hat, warnen , dass ,
hey, dir bald
die Zeit davonläuft. Meine Spielrate werde ich auf 1,0
setzen, was 100% der üblichen Rate entspricht. Das wird also
verwendet, um zu bestimmen, wie schnell wir tatsächlich
Sekunden von unserer Uhr abweichen werden Sekunden von unserer Uhr Tatsächlich verringern nicht alle Mario-Spiele die Zeit
pro realer Welt Zweitens werden sie manchmal schneller
inkrementell. Ich nehme an, wir könnten diese
Instanz auch editierbar machen. Ich könnte dieses Kästchen hier ankreuzen, aber wenn Sie auch auf
dieses kleine Augapfelsymbol klicken wird genau das Gleiche tun einfach vorzuzeigen, das
anzukreuzen oder auf diesen Augapfel zu klicken , macht das
Gleiche für das Musik Hier werden
wir diese Instanz auch editierbar machen, das
heißt, wenn wir
unseren Leveleinstellungs-Akteur
hier auf Ebene zwei,
Stufe drei, Stufe
vier usw. platzieren würden, könnten
wir
die Standardstufe Musik tatsächlich ändern. Im würden, könnten
wir
die Standardstufe Musik tatsächlich ändern Moment
stelle ich das auf Level Music eins Und wenn wir
diese nun kompilieren und speichern, könnten
wir weitermachen und einen dieser Typen
platzieren Du brauchst nur eines davon. Die Art
und Weise, wie das innerhalb unseres Levels
entworfen wird , also ziehe ich das einfach per Drag & Drop auf meine beiden D, meine Hauptebene hier. Klar, lass mich auch
meine Snap-Einstellungen einschalten. Ich werde es
gleich hier fallen lassen. Und dann lass es mich einfach
irgendwie über allem
in die Luft hängen. Beachten Sie also, dass dies nur eine
Sammlung von Symbolen ist. Es sind ein Haufen von, du weißt schon, Audiosymbole,
die das
Standard-Szenen-Root-Symbol hier überlappen die das
Standard-Szenen-Root-Symbol hier Und was ich wirklich damit angeben
wollte, ist das im
Detailbereich hier. Jetzt werden wir in der
Lage sein,
verschiedene Dinge an diesem
speziellen Level, Stufe eins, anzupassen . Beachten Sie also, dass
Sie, wenn Sie eine Ebene
zwei,
drei usw. erstellen , wenn Sie eine Ebene
zwei,
drei usw. eine davon auf eine Ebene
zwei, Ebene drei usw. ziehen und
für
diese spezielle Ebene anpassen können Direkt hier
im Level-Editor wird
der Spieler
diese Symbole überhaupt nicht sehen Der Grund, warum wir diesen Plan als
einen Plan für die Schauspielerklasse
erstellen , der im Level platziert
werden
soll, ist , dass dies eine sehr
bequeme Möglichkeit sein wird, dies auch mit anderen
Bauplänen in unserem Level zu kommunizieren Okay, wir haben hier also
einen guten Start hingelegt. Es muss noch mehr getan werden,
vor allem was das Scripting angeht Aber wir haben unsere Einstellungen für den
Blutdruckwert zusammen mit
den Komponenten und Variablen zusammengestellt, die
in Zukunft benötigt werden In Ordnung, Leute,
das reicht für diesen. Wir sehen uns im nächsten.
87. Level-Settings-Skript #1: Ordnung, willkommen zurück.
In diesem Video haben wir uns zum Ziel gesetzt, ein Drehbuch innerhalb
unserer Level-Einstellungen zu erstellen, hier ein Plan für die
Schauspielerklasse Dadurch werden unser
Game-Timer gestartet und
je nach Situation im Spiel relevante
Audiokomponenten abgespielt Lass uns gleich wieder eintauchen,
indem wir darauf doppelklicken oder es auswählen lassen
und die Leertaste drücken. Wir werden hier
zu unserem Ereignisdiagramm übergehen. Und Sie sollten drei
Knoten hier benotet sehen. Wir werden diese beiden
eliminieren. Event-Häkchen und
Event-Beginn überschneiden sich. Wir werden jedoch die Option Event Begin Play
verwenden. Wenn du das
hier noch nicht siehst, kannst
du mit der rechten Maustaste in
eine leere Stelle klicken und danach suchen. Und was wir
nach dem Start des Events
tun ist, einen Sequenzknoten
einzufügen. Ich halte die Taste S gedrückt
und klicke mit der linken Maustaste, um einen Sequenzknoten
einzufügen. Und der Grund, warum
ich das einfüge ist, dass ich, wenn ich mehrere Dinge in diesem
Fall außerhalb des Spiels
erledigen möchte, sie aus organisatorischen
Gründen in eigene
separate Skripte unterteilen möchte. Jetzt werde ich hier fünf Dinge
tun. Also werde ich noch
ein paar Stecknadeln hinzufügen. Und wir
werden das wahrscheinlich im Laufe einiger Videos erläutern, nur um die Dinge
kürzer zu halten. Bevor wir nun mit diesem Null-Pin weitermachen, werde
ich hier
ein benutzerdefiniertes Ereignis erstellen, indem ich mit der
rechten Maustaste auf Benutzerdefiniertes Ereignis klicke. Und wir werden
diesen Spieler als Antwort bezeichnen. Weil wir zwar möchten, dass mehrere Dinge
zu Beginn des Spiels passieren, aber
wir werden auch die Dinge zurücksetzen
wollen , die passieren, wenn
unser Spieler reagiert. Deshalb werden wir
dieses benutzerdefinierte Ereignis gleich hier
nennen . Aber lassen Sie uns weitermachen
und das auch an den Sequenzknoten anschließen Okay, als Nächstes wollen wir aufbauend auf
unserem Null-Pin, einen
Verweis auf unseren Spielmodus einfügen Klicken wir also mit der rechten Maustaste auf Spielmodus
abrufen. Wir ziehen
das in die Länge und werfen zwei, unseren Spielmodus. Welchen Spielmodus verwenden wir? Wir verwenden unseren
Third-Person-Spielmodus. Und wieder einmal, das
ist der Teil
unseres
Third-Person-Blueprint-Ordners unseres
Third-Person-Blueprint-Ordners Wir nutzen diesen
Third-Person-Spielmodus. Und lassen Sie mich das
gleich öffnen denn hier
haben wir ein Respawn-Skript Und das
wird im Grunde
eine Art verbindender
Bauplan mit
unseren Level-Einstellungen
hier sein eine Art verbindender
Bauplan mit , wie wir sehen werden nur ein bisschen
von unserem damaligen
Null-Pin Lass uns weitermachen und
das sofort hier einstecken. Und sie einfach
etwas höher anheben. Nun, bevor wir damit
weitermachen, müssen
wir tatsächlich in unseren Blutdruckmodus
springen, in der
dritten Person schwul. Wir werden hier einen
Event-Dispatcher hinzufügen. Ich komme aus dem Panel „Mein
Blueprint“. Klicken Sie auf diese Plus-Schaltfläche
, um einen Event-Dispatcher hinzuzufügen. Und wir werden
diesen Spieler Respawn nennen. Nachdem dies erstellt ist, werden wir
tatsächlich ganz am Ende
unseres Respawn-Skripts hier
einen Aufruf dafür erstellen ganz am Ende
unseres Respawn-Skripts hier
einen Aufruf dafür unseres Respawn-Skripts In unserem Third-Person-Spiel. Die Modi kommen ganz am Ende. Und wir ziehen das in die Länge und nennen es so. Das wird eine Botschaft
an alle anderen Blueprints
senden , die darauf
warten Und dann
können diese
zuhörenden Blaupausen entsprechend reagieren Nachdem das hinzugefügt wurde,
reagiert dieser
Event-Dispatcher-Spieler und fügt dann diesen Aufruf am
Ende unseres Skripts
hier Lassen Sie uns weitermachen und
kompilieren und speichern. Sehr wichtig, dass Sie hier
kompilieren und speichern. So können
wir jetzt in
unseren Level-Einstellungen aus diesem
BP-Third-Person-Spielmodus herausziehen und nach einem
Spieler suchen , dem Event-Dispatcher Jetzt wollen wir den
Spielern Respawn zuweisen. Dadurch werden zwei Knoten
hinzukommen. Schau dir an, wie das funktioniert. Wir werden
dieses benutzerdefinierte Ereignis an
diesen Event-Dispatcher binden ,
sodass
wir darauf warten, wenn es hier in
unseren Level-Einstellungen aufgerufen wird es Dafür ist dieses
ganze Setup da, um abzuhören, wann das benutzerdefinierte
Event dieses Spielers aufgerufen wird Und wenn das aufgerufen
wird, werden wir dieses benutzerdefinierte Event starten. Im Grunde
wartet man darauf, dass der Event-Dispatcher, der auf
den Spieler reagiert, aufgerufen wird Und in dem Moment, in dem
dies aufgerufen wird und nur dann, wird dieses
benutzerdefinierte Ereignis ausgelöst Alles, was wir daraus machen werden
, ist unsere Level-Musikkomponente ganz oben in unsere
Komponentenliste aufzunehmen. Zieh das rein. Und dann
ziehen wir das ab und geben Set Pitch Multiplikator Und wir werden
den Wert auf
1,0 setzen, also auf die gewünschte Tonhöhe, die wir haben wollen Nun ist es wichtig, dies bei der Beantwortung
zu tun, damit wir sicherstellen können, dass unsere Level-Musik in dieser Tonhöhe
abgespielt wird. Weil wir diese Tonhöhe ändern
werden, wissen
Sie, dass uns die Zeit
davonläuft. Dann werden wir auch diesen Teil des Skripts
beenden,
indem wir einen Rückruf zu
diesem benutzerdefinierten Ereignis, auch Spielerantwort genannt, durchführen.
Lassen Sie sich also nicht verwirren. Dieses benutzerdefinierte
Event für Spieler unterscheidet sich von diesem Event-Dispatcher für Spieler , der in unserem
Third-Person-Spielmodus verfügbar Also
ziehen wir das in die Länge und
geben Spielerantwort ein,
rufen diese in die Länge und
geben Spielerantwort ein, Funktion auf,
Spielerantwort, und wenn ich darauf doppelklicke, wird verifiziert, dass es nur das benutzerdefinierte Ereignis aufruft Ganz am Anfang
dieses Drehbuchs. Machen wir weiter und
klicken mit der linken Maustaste und ziehen um
diese Knoten herum und tippen auf den C-Schlüssel um sie herum
, damit wir das kommentieren können Ich nenne das
in unserem Spielmodus den Event-Dispatcher „Hört auf
Spieler reagiert “ und
setzt unsere Level-Einstellungen Ich werde es noch einmal schwarz
einfärben,
nur um einen
schärferen Kontrast zu erzeugen Das haben wir also bisher. Vielleicht werde ich das
ein bisschen verschieben nur um es
ein bisschen besser zu gestalten. Okay, das zweite,
was
wir unserer
Sequenznotiz hier machen werden,
lassen Sie uns einfach unsere
Sequenznotiz einschalten ,
ist, dass ich mit der rechten Maustaste
in eine leere Stelle klicke und sage
, Player-Controller holen. Dann ziehe ich das Ganze
raus und casten auf den
Player-Controller, unseren BP-Player-Controller. Der Grund, warum wir
das tun, ist , dass
wir einige
Informationen daraus extrahieren wollen. Vielmehr wollen wir eine
Variable darin setzen. Aber bevor wir das tun, werde
ich hier mit der rechten Maustaste
auf diesen Pin klicken. Und wir werden
das zu einer Variablen heraufstufen. Ich nenne das einfach
meinen Player-Controller Ref. Wir werden
diesen Player-Controller wieder verwenden . Lassen Sie uns einfach weitermachen und das sofort zu einer Variablen heraufstufen. In dieser Variablen sind Player-Controller
gespeichert. Und jetzt möchte
ich unseren
Player-Controller
herausziehen und Levelzeit
wieder in unserem
Player-Controller
einstellen . Lassen Sie uns zu unserem
Player-Controller übergehen
, der in meinem
Plattform-Blueprints-Framework,
Player-Controller, enthalten Ich habe diese
Level-Zeitvariable genau hier, derzeit auf 500 zurückgesetzt Ich habe es auf 500 zurückgesetzt und ich
möchte das einstellen können. Jetzt ist diese Variable wieder an unsere
Level-Zeitanzeige in unserer Motorhaube
gebunden. Und hier in
unseren Level-Einstellungen sagen
wir, dass wir in der Lage sein
wollen, diesen Wert
anzupassen. Im Wesentlichen werden unsere
Level-Einstellungen genau hier eine neue Zahl an diese
Variable
übergeben. Was
möchte ich jetzt auch einstellen? Ich habe mein maximales Zeitlimit. Ich mache einfach weiter
und füge das
jetzt hier ein , wobei meine Blutdruckeinstellung hier in meinem Level
ausgewählt ist. Was auch immer ich
hier unten im Detailbereich als
Zeitlimit festgelegt habe. Lassen Sie mich einfach weitermachen
und das auf 300 setzen. Das würde
weitergehen und das über unsere Level-Einstellungen hier an die Levelzeit in
unserem Player-Controller weitergeben. Und um das zu beweisen, wenn
ich
jetzt einfach auf Play
klicken würde, können Sie ganz
oben sehen , dass wir jetzt den Wert 300
statt 500
sehen , weil
ich
hier in unseren Level-Einstellungen ein
neues Zeitlimit für die Variable, die sich in unserem Player-Controller befindet
, weitergebe die sich in unserem Player-Controller befindet
, Eine weitere Sache, die ich hier
tun möchte, ist,
unser Zeitlimit auf den aktuellen Stand zu bringen unser Zeitlimit auf den aktuellen Stand und es
per Drag-and-Drop zu verschieben Und platziere das ganz am Ende. Ich ziehe es einfach per Drag &
Drop auf diese Stecknadel hier um unser Zeitlimit auf den aktuellen Stand zu setzen. Jetzt wundern Sie sich vielleicht,
warum wir das jetzt tun. Nun, das liegt daran, dass
dies eine Variable
sein wird , die
wir weiter
unten
über einen Timer
erhöhen oder besser gesagt verringern werden erhöhen oder besser gesagt verringern weiter
unten
über einen Timer Also alles, was wir
hier tun, ist
unser maximales Zeitlimit zu nehmen und es dann auf diese Variable zu setzen, die unserem tatsächlichen Hud zugeordnet Und dann setzen wir
es auch hier ein,
weil das die
Variable ist, die wir über einen Timer dekrementieren werden Ein bisschen weiter unten. Ordnung, wenn das
erledigt ist, machen wir weiter und klicken mit der
linken Maustaste und ziehen
diesen Teil des Skripts. Ich werde hier nur ein bisschen
rauszoomen. Tippe auf diese Taste und ich nenne meinen F-Controller für zwei Spieler und
setze ein
Zeitvariablen-Skript ein. Ich sollte auch sagen, was an unser HUD gebunden ist,
das ist eine gute Erinnerung Und dann mach weiter und
wechselt ebenfalls zu Schwarz. Okay, das wird also unsere erste Einrichtung hier
sein. Wir haben noch mehr Arbeit vor uns, aber ich werde das hier ein
Video nennen, um es nicht zu überfordern und es
in mundgerechten Stücken zu halten. Aber wenn du das Video hier
pausieren möchtest, kannst
du dir ansehen, was wir bisher
entwickelt haben Fahren Sie fort und kompilieren
Sie und stellen Sie sicher, dass Ihr Skript soweit gut
aussieht, und speichern Sie es. Wir sehen uns alle im nächsten.
88. Level-Settings-Skript #2: Willkommen zurück alle.
Fahren Sie mit unserem Skript zur
Einstellung des Blutdruckpegels fort. Ich werde gleich hier
im Outliner klicken. Bearbeiten Sie die Einstellungen für die Blutdruckstufe, um sofort wieder
einzusteigen
und weiterzumachen In Ordnung, ich gehe weiter
nach unten. Wir werden wieder auf
unserem Sequenzknoten aufbauen, dieses Mal auf
den dann zwei Pins. Was ich mit
diesem Abschnitt machen möchte, ist das Skript, um das Audio
einzustellen, das in unserem Level abgespielt werden soll. Dazu werden wir einen Verweis
auf unsere Level-Musikkomponente einfügen. Lassen Sie uns weitermachen und das hineinziehen. Wenn wir davon wegziehen,
können wir Set Sound eingeben. Lass uns weitermachen und
das sofort verkabeln. Derzeit
habe ich standardmäßig die Musik eingestellt ,
die in dieser
Variablen abgespielt wird , genau hier, auf
unserem Level Music. Lassen Sie
uns das jetzt eingeben Wir haben diese
Level-Musik-Variableninstanz erneut editierbar gemacht ,
was bedeutet, dass
wir hier in unserem Level-Editor, wenn unsere
BP-Level-Einstellung ausgewählt ist, den Level unserem Level-Editor, wenn unsere
BP-Level-Einstellung ausgewählt ist, den Level tatsächlich
ändern können Musik genau hier, derzeit ist
sie standardmäßig auf Mario-Level eingestellt Musik Aber wenn du sie pro Level ändern
möchtest, musst du
nur die Einstellungen per Drag & Drop
in dein Und dann können Sie es hier so ändern , wie Sie es möchten. Und dann per Skript wird
hier tatsächlich
alles übernommen, was wir
in diesem Level-Editor eingestellt haben , wobei
diese Instanz editierbar Und es wird festlegen, dass das
die neue Level-Musikkomponente ist ,
was wir spielen wollen Ordnung, damit werden wir dann einen kleinen
Delay-Node einbauen. Halten Sie die Taste D gedrückt
und klicken Sie mit der linken Maustaste. Ich möchte nicht, dass diese Musik sie sofort
abspielt, also verzögere ich
sie einfach um 34 Sekunden,
0,75, und dann füge ich noch einen 0,75, und dann füge ich Hinweis auf
unsere Level-Musikkomponente Um das per Drag-and-Drop , sagen
wir einfach: Hey,
jetzt, da du mit der
Musik gefüllt
wurdest , die wir
innerhalb dieser Variablen eingestellt haben, lass uns weitermachen
und diese Musik abspielen Und natürlich können Sie
angeben, dass die Startzeit Null
ist, es wird einfach von Anfang an abgespielt. Klicken Sie mit der linken Maustaste und
ziehen Sie auf diese Taste. Ich nenne das „Meine Sets Audio , um unsere
Level-Musikkomponenten Jetzt stellen sich einige von Ihnen
vielleicht die Frage, hey, diese Level-Musikkomponente, wir haben hier tatsächlich einen
Standardsound eingestellt Müssen wir
das tun? Nein, haben wir nicht. Wir hätten dieses Feld leer lassen , weil wir
diese Level-Musikkomponente
im Grunde mit
der eigentlichen Level-Musik überschreiben diese Level-Musikkomponente
im Grunde mit , die genau hier angeschlossen
ist Ordnung, lassen Sie uns
weitermachen und das gesamte
Kommentarfeld hier
so einstellen , dass es schwarz ist Und dann lasst uns hier an dem
krassesten Abschnitt
unseres Drehbuchs arbeiten hier an dem
krassesten Abschnitt
unseres Drehbuchs unseren
Sequenzknoten einfach nach unten verschiebe, werde
ich für
eine Verzögerung sorgen, die wieder ausgelöst Ich erkläre gleich, warum,
aber das wird von Anfang an
keinen Sinn ergeben Also werde ich das so
einstecken also werde ich es auf
1,0 setzen und dann
werde ich mit der rechten Maustaste
darauf klicken, um einen leeren Bereich zu leeren, und „Timer nach Ereignis einstellen“ eingeben
. Und dann
werden wir das Ereignis rückwärts
verschieben Wir werden ein benutzerdefiniertes Ereignis einführen und das nenne ich
meinen Run-Level-Timer Es wird für
mich einfacher sein, diese alle einzubeziehen und dann zu erklären, wie
das alles funktionieren soll. Nachdem ich die
entsprechenden Knoten hinzugefügt habe und hier für
eine Weile ein paar Dinge
eingerichtet
habe, werde ich die
Time-Play-Rate wie folgt einbauen. Und dann werde ich es
auf Looping einstellen , also kreuzen Sie das Kästchen Stellen Sie sicher, dass Sie das Kästchen ankreuzen. Okay, also im Grunde genommen, wenn
wir das Spiel beginnen, werden
all diese Teile des Skripts
oben ausgelöst, und dann kommen wir runter
zu O. Dann drei,
wir werden
1 Sekunde warten und dann
werden wir unseren Timer starten. Das wird jetzt losgehen, in diesem Fall jedes
Zeitinkrement , das
ich momentan auf eins gesetzt habe Das ist es also, was
dieses Mal hier ist, um zu
bestimmen, wie lange gewartet werden muss bevor der Delegate ausgeführt wird Das ist dieses benutzerdefinierte
Ereignis genau hier. Da es sich um eine Endlosschleife
handelt, wird es weiter ausgelöst, in diesem Fall jede Sekunde Nun, der Grund, warum ich das auf
eine retriggerbare Verzögerung eingestellt
habe ,
im Gegensatz zu einer normalen Verzögerung, ist der Fall, dass unser Charakter stirbt und dann alles wieder von vorne beginnen
muss Eine retriggerbare
Verzögerung funktioniert im Gegensatz
zu einer normalen Verzögerung
so , dass, sobald
sie eintritt, der
Countdown beginnt, in Und
wenn wir während des
Rückwärtszählens von einer Sekunde sagen würden, sterben und
alles wieder von vorne beginnen würde, würde
das die Verzögerung wieder auf eine Sekunde
zurücksetzen Wenn dies also während des Countdowns erneut ausgeführt
wird,
wird dies erneut auf
eine Sekunde zurückgesetzt, bevor dann all dies
getan wird. Okay, was wir auch außerhalb unserer
festgelegten Timer für Event-Knoten tun
wollen , ist, dass wir
das genau hier bewerben werden. Wir
klicken mit der rechten Maustaste auf „Promoten “
und
nennen das unser Level. Timer, der jetzt variabel gespeichert
ist. Und
das tun wir im Wesentlichen, damit wir
diesen Timer löschen können , wenn uns die Zeit
abläuft. Wir werden das gleich
hier im Spiel sehen. Okay, was möchte ich nach
unserem Run-Level-Timer machen , ein
benutzerdefiniertes Event hier. Nun, ich werde einen Zweig hinzufügen
, also halten Sie die
B-Taste gedrückt und klicken Sie mit der linken Maustaste. Und wir wollen einen Zustand
bewerten. Nun
ist unser Zustand, den
wir auswerten wollen , unser Zeitlimit.
Ziehen wir das mit rein. Das werden wir uns
noch einmal holen. Oben haben wir
unser Zeitlimit so eingestellt , dass es zunächst unabhängig von unserem
Zeitlimit ist. Und auch dies wird
über den Level-Editor eingestellt. Derzeit liegt die maximale Zeitstufe bei 300. Wir sagen im Grunde, hey, was auch immer unser Standardwert hier in den
Level-Einstellungen ist, wir setzen ihn auf 300. Das geht bis
zu unserer Levelzeit durch, das ist unserer Umgebung zugeordnet. Und dann
füllen wir auch unser
aktuelles Zeitlimit mit dem
gleichen Wert von In diesem Fall nehmen wir
diesen Wert und werden herausfinden
, ob er gleich Null
ist Wenn das gleich Null ist, wollen
wir im Grunde unseren
Level-Timer hier löschen. Alles, was ich tun muss, ist hierher zu
ziehen und Timer löschen und ungültig machen nach Griff einzugeben Jetzt,
wann immer ich das mache, wird
es automatisch genau hier oben
eingesteckt Was wir tatsächlich tun können, ist
das Kabel genau hier abzuschneiden. Ich werde einfach die Alt-Taste gedrückt halten und mit
der linken Maustaste klicken. Wir können den Stecker drin lassen. Aber vom
eigentlichen Zweig hier kann
ich ihn einfach so einstecken. Wenn es nun falsch ist, dass unser Zeitbegrenzungsstrom
noch nicht Null ist, werden
wir einfach diesen Zeitbegrenzungsstrom schmücken diesen Zeitbegrenzungsstrom Ich kann das machen, indem ich es hier
rausziehe und
decment decorment int eintippe ,
was das machen wird Es wird diesen Wert annehmen
, den wir derzeit aufgrund dieses
Zeitlimits auf
300 festgelegt haben , maximal Dann wird dieser Wert
subtrahiert, 299300 Dann wird
es diesen Wert
wieder hier in dieser Variablen setzen wieder hier Dieser Vorgang, dieses
Dekrement dient uns also als Möglichkeit , sofort
eins von diesem angegebenen Wert zu subtrahieren , und dann wird er wieder
hier reingeschaltet Das ist jetzt praktisch,
weil ich auch möchte, dass
sich das in unserem
Hud widerspiegelt, denn auch hier ist
diese Variable nur lokal innerhalb unserer
Level-Einstellungen
hier Wir haben das nirgendwo
anders veröffentlicht. Ich nehme unsere
Controller-Referenz mit, wir holen uns das,
wir holen uns das. Dann ziehe ich mich hier
raus und tippe festgelegte Levelzeit ein. Wir
werden das im Wesentlichen an unsere
Levelzeitvariable in
unserem Player-Controller weitergeben an unsere
Levelzeitvariable in
unserem ,
da dies
die Variable ist , die unserem
Hud zugeordnet ist Okay, ich möchte
noch etwas tun. Wenn unser aktuelles Zeitlimit noch nicht gleich Null
ist, möchte
ich eigentlich
noch einen Vergleich machen. Jenseits von hier. Ich
werde die B-Taste gedrückt halten und mit
der linken Maustaste klicken. Also Taste und Linksklick. Und dieses Mal
möchte ich vergleichen, ob unser aktuelles Zeitlimit gleich
ist , was ist? Nun, unsere Zeit läuft
ab, warnend. Derzeit habe ich
diesen Wert auf 50 eingestellt. Aber auch hier
in den Level-Einstellungen können Sie
diese Standardvariable überschreiben . Ich habe es dort auch
auf 50 gesetzt. Es sind trotzdem 50, aber
wir werden herausfinden, ob unser
aktuelles Zeitlimit im Grunde genommen bis zur 52. Marke
gesunken ist bis zur 52. Marke
gesunken Wenn ja,
werden wir es gleich hier an
unsere Filiale anschließen Wir werden unsere
Level-Musik-Komponente so
einbringen . Dann
ziehen wir es raus und geben Set Pause ein. Also werden
wir diese Musik im Grunde pausieren. Stellen Sie sicher, dass Sie dieses Kontrollkästchen aktivieren,
um festzulegen, dass es angehalten wird. Dann werden wir uns die Zeit nehmen
, uns
davonzulaufen, Warnung Musik Das wird dieses
Musikstück hier sein,
Mario, die Zeit läuft ab. Wir nehmen diese
Komponente, ziehen sie hierher
und geben
Play ein, um die Wiedergabefunktion einzufügen. Wir pausieren im Grunde
unser Musiklevel, damit wir
die Zeit, in der die Zeit
abläuft, abspielen können Jetzt gehe ich einfach ein bisschen nach
oben denn wenn unser
Zeitlimit abgelaufen ist und sich das als wahr herausstellt , werden
wir diesen
Level-Timer löschen Aber es gibt noch
ein paar Dinge, die ich damit machen
möchte. Also werde ich auf diesem
Clear and Invalidate
Timer nach Handle Node
aufbauen Clear and Invalidate
Timer nach Handle Node Und was ich daraus machen möchte, ist, unsere
Level-Musik-Komponente einzubringen sie noch
einmal mit einzubeziehen Wir werden auch
unsere Warnung vor Zeitablaufende einziehen, beide für den Fall, dass einer von
beiden läuft. Und was ich hier machen möchte,
ist , Tippstopp einzutippen, wir wollen im Grunde jegliche Musik
hier
beenden , falls unser
Zeitlimit tatsächlich abgelaufen ist. Und zusätzlich
zum Stoppen der Musik möchte
ich auch, dass unser Charakter
stirbt, wenn ihm die Zeit davonläuft. zu tun, klicke ich mit
der rechten Maustaste in ein leeres Feld und suche
mir den Spielercharakter. Und wir werden für
unseren Charakter aus der dritten Person casten. Hier drin werde ich noch einmal
die Sterbefälle des
Spielers herausziehen und eintippen . Wenn ich darauf
doppelklicken würde, würde das
zeigen, dass wir
dieses benutzerdefinierte Ereignis innerhalb
unseres BP-Third-Person-Charakters aufrufen benutzerdefinierte Ereignis innerhalb ,
um all unsere Death-Effekte zu erzielen. Das ist unser Charakter, in
die Luft
geworfen zu werden und dann
durch die Welt zu fallen. In Ordnung, das Drehbuch
war also ein bisschen krass. Da ist alles. Versuche es auf den Bildschirm zu bringen. Ich komme von unserem
Sequenzknoten hier runter, okay? Und dann klicke ich mit
der linken Maustaste und ziehe das alles herum. Tippen Sie auf die C-Taste, ich verspreche, das war das Schlimmste. Und wir geben Run the
Timer ein und spielen angemessen. Musik
Je nach Situation werden
wir die Farbe des Kometen ändern Es ist sofort schwarz. Okay, und wenn ich mir meine Notizen hier ansehe, sehe
ich tatsächlich, dass mir hier unten
ein bisschen
Drehbuch fehlt , aber dieses Video wird
ein bisschen lang. Lassen Sie mich einfach weitermachen
und das zusammenstellen und sagen. Wir nennen das ein Video
und nehmen es auf und
beenden es im nächsten
, siehe da.
89. Level-Settings-Skript #3: Willkommen zurück. Lassen Sie uns
weitermachen und unser Skript zur Einstellung des Blutdruckpegels
fertigstellen. Und ich habe am
Ende des letzten Videos erwähnt , dass ich meine Notizen verpasst Ich hatte noch ein Drehbuch
, das aus unseren
damaligen drei Drehbüchern hier
runter musste . Lassen Sie uns also weitermachen
und das angehen. Was wir tun wollten, ist unser derzeitiges Niveau anzuhalten Musik Wir werden unsere
Time Running Out Warning spielen. Musik Aber was wir
tun müssen, ist sicherzustellen, dass wir unser Musiklevel
tatsächlich so einstellen , dass wir
nach diesem Spiel wieder ansteigen. Was wir also
tun werden, ist eine Verzögerung einzuleiten. Halten Sie die Taste D gedrückt
und klicken Sie mit der linken Maustaste. Ich werde diese
Verzögerung auf 2,8 Sekunden einstellen. Nun, warum 2,8 Sekunden? Nun, weil es
ungefähr so lange dauert, bis uns die Zeit ausgeht. Warne das Liedchen, es zu spielen, nachdem
wir 2,8 Sekunden gewartet haben. Was ich dann tun werde
, ist
unsere Musikkomponente noch einmal einzubringen unsere Musikkomponente noch einmal Dann
müssen wir uns einfach noch einmal von
hier wegziehen , Set eingeben, nur dass wir dieses Mal unmarkiert
lassen und
sagen, ja, wir
wollen nicht wirklich pausieren Dann legen wir
unseren Pitch fest. Multiplikator, der aus
unserer Level-Musikkomponente herauszieht. Multiplikator setzen, wir
werden ihn auf
1,05 setzen . Dadurch klingt es so, als ob unsere Musik ein
bisschen überstürzt
wird, also hey, die
Zeit läuft ab und
dann, oh ja, übrigens,
wenn wir das Level
Musik wieder hochfahren klingt es so, als ob unsere Musik ein
bisschen überstürzt
wird , also hey, Zeit läuft ab und
dann, oh ja, übrigens,
wenn wir das ,
lassen wir es auf einer höheren, schnelleren Tonhöhe abspielen Das ist auch der Grund,
warum das genau hier eingerichtet wurde, dass wir,
wenn wir am
Anfang sterben ,
dieses Drehbuch ganz am Anfang gemacht haben . Wir haben unsere
Level-Musikkomponente auf diesen Tonhöhenmultiplikator von eins gesetzt, also
im Grunde genommen auf eins zurückgesetzt unabhängig davon, wie die Musik
war, als sie starben In Ordnung, der letzte Teil des Drehbuchs
, den wir hier reinstellen müssen. Ganz weit unten unter
unseren damals vier Sequenz-Pins. Was wir tun werden, ist Click ins Leerzeichen zu schreiben. Wir werden uns
den Spielercharakter besorgen und wie ihr vielleicht schon vermutet habt, werden
wir uns
hier rausziehen und für unseren Charakter aus der dritten
Person casten Wir werden
das so einbinden. Und der Grund, warum wir das tun, ist, dass
wir unseren Charakter aus der dritten
Person in die
Länge ziehen werden. Wir werden
unsere Todessequenz nennen. Wir haben unseren Spielern die
Todessequenz zugewiesen. Es werden zwei Knoten
hinzugefügt, also
startet dieser Spieler erneut die Todessequenz. Wenn ich zu meinem Charakter aus der
dritten Person wechseln würde
, für den ich ganz oben einen Tab habe,
haben wir
einen Event-Dispatcher namens
Player Starts Death Sequence erstellt einen Event-Dispatcher namens
Player Starts Death Sequence Wenn ich mit der rechten Maustaste darauf klicke
und Referenzen finde, kann
ich herausfinden, wo
das hier
innerhalb unseres
Third-Person-Charakters heißt innerhalb unseres
Third-Person-Charakters Und da ist es in unserem Drehbuch für
Spielersterbe. Es wird sofort
aufgerufen, wenn das aufgerufen wird, alle anderen Pläne,
die darauf lauschen Und genau das macht diese
ganze Einrichtung hier in unseren
P-Level-Einstellungen Das ist im Grunde das Abhören darauf, dass diese Sequenz
aufgerufen wird. Wenn das ruft, werden wir das
dann rauswerfen. Das ist
im Grunde unsere Art, den
Charakter aus
der dritten Person zu abonnieren . Der Spieler startet die
Todessequenz, nennen wir das Wenn das passiert, wissen
wir innerhalb unserer
BP-Level-Einstellungen Bescheid, also hey, das ist passiert, lass uns
weitermachen und von hier aus feuern Nun, was
wollen wir tun? Nun, wir werden unsere
Level-Musik-Komponente einbringen. Holen wir uns das. Wir werden
auch unsere Zeit davonlaufen lassen, Warnung, das werden
wir verstehen. Wir wollen sichergehen, dass sich keiner von
beiden in die Länge zieht. Und tippe Stopp, Stopp all music hier ein, verkabeln Sie das, so. Dann auch unseren
Level-Timer genau hier. Ziehen wir das rein. Wir werden herausfinden, dass
wir sofort die Todeszeit eines Spielers
löschen und für ungültig
erklären wollen . Wir wollen immer sichergehen
, dass wir den Timer löschen. Ordnung, mit dem ganzen
Skript hier drin, wir weiter mit der linken Maustaste und ziehen die C-Taste um das
Tippen herum. Das wird Stop sein. Any Music Music Falls der
Spieler gestorben ist, dann nur um zu beachten, dass
dieser Event-Dispatcher in
unserem Third-Person-Charakter BP
aufgerufen wird in
unserem Third-Person-Charakter BP
aufgerufen unserem Third-Person-Charakter BP Es ist immer gut,
Notizen für sich selbst zu hinterlassen. einer Entfernung von 10.000 Fuß können
Sie sehen, was ist. Lassen Sie uns weitermachen und das in Save
kompilieren. Lassen Sie uns einen
Blick auf das werfen, was hier vor
sich geht. Das war unser damaliges Vier-Skript, falls Sie
das Video genau dort unterbrechen wollen, aber aus einer Entfernung von 10.000 Fuß haben wir
das alle zusammengestellt. Und aus diesem Grund hätte
ich wieder gerne
einen Sequenzknoten. Weil wir
hier auf einen Blick sehen können , wenn ich
ihn so zurückziehe, wie wir verschiedene
Skriptsegmente machen. Es passiert im Grunde
alles sehr schnell hintereinander,
eins nach dem anderen. Aber ich möchte es aus Gründen der Lesbarkeit
so segmentieren Gründen der Lesbarkeit
so Okay, lassen Sie uns weitermachen
und das testen zu erleichtern, werde
ich
jetzt das Spielen zu erleichtern, werde
ich
jetzt, wenn die
Zeit abläuft, jetzt wieder in unser Level
springen, wobei mein
Leveleinstellungen-Blueprint ausgewählt ist wieder in unser Level
springen wobei mein
Leveleinstellungen-Blueprint Drüben im
Detailbereich. Ich werde mein Zeitlimit auf
sagen wir mal 55 Sekunden setzen. Damit wir diese
Zeitablaufwarnung ziemlich schnell erreichen werden. Und dann werde ich das
testen, indem ich sterbe und
reagiere und sehe, wie alles funktioniert.
Ich drücke die Daumen. Los geht's.
Der Timer ist bei 55 Sekunden. Es schmückt wie beabsichtigt.
Die Zeit läuft ab. Unsere Musik spielt
ein bisschen mehr. Rush ist Mach weiter und stirb. Hier stoßen wir auf meine
Flammenarme. Da haben wir's. Oh, hey, die Zeit blieb
bei 36 Sekunden stehen. Und wenn wir antworten, sind
wir in
55 Sekunden zurück und der
Timer läuft sofort wieder. Hey, nicht zu schäbige Leute. Wir haben ein
Level-Einstellsystem eingerichtet. Und noch einmal, was das Ganze
so magisch macht, ist, dass du es in jedes Level
einordnen kannst , das du erschaffst. Und dann können Sie
die Einstellungen hier
im Detailbereich anpassen . In Ordnung Leute,
das wird alles für diesen machen. Wir sehen uns im nächsten.
90. Leveleinstellungen und der P-Block: Willkommen. In diesem Fall werden
wir uns damit befassen, unsere Leveleinstellungen mit unserem Block in
Konflikt Lassen Sie mich jetzt loslegen und spielen und Ihnen genau
zeigen,
was gerade passiert Derzeit
bestimmen unsere
Level-Einstellungen Dinge wie unser Level. Musik Wenn
ich jedoch auf dem Block anhalte, siehst
du jetzt, dass wir eine ganze Gruppe
von Do vor uns
haben . Und das wollen
wir nicht. Wir müssen uns mit
der Situation auseinandersetzen, hey, wenn unser Spieler auf dem Block
stehen bleibt, wir nur den Block spielen. Musik Wir werden
das Level Musik vorübergehend unterbrechen. Und wenn dann die
Blockzeit endet, werden
wir den Block beenden. Musik und einfach
unser Level verbessern. Musik Noch einmal, wie gehen
wir mit diesem Problem um? Nun, wie Sie vielleicht erwartet haben, werden
wir uns mit unserem BPP-Block
befassen Da ist es, da ist der
Ort, an dem wir es
derzeit in unserem
Projekt haben . Hier drin. Als Erstes erstellen
wir unten im
Bereich „Mein Blueprint“
eine brandneue Variable Klicken Sie auf diese
Plus-Schaltfläche und ich
nenne das Level Settings Und dann
klicken wir für den
Typ auf die Stelle, an der
derzeit Goldbarren steht Klicken Sie auf das kleine Drop-down-Menü. Wir werden nach
unseren Blutdruckwerten suchen. Denken Sie daran, dass wir einen Plan für
Schauspielerklassen
namens BP-Level-Einstellung erstellt namens BP-Level-Einstellung Stellen wir also diesen
Objekttyp ein. Die Bp-Ebene stellt die
Objektreferenz ein. Wenn ich jetzt hier
kompiliere, werden
Sie feststellen, dass unser
Standardwert hier Null ist. Da ist nichts drin, obwohl das ein Typ ist. So
werden wir also mit dem
Auffüllen dieser
speziellen Variablen umgehen Auffüllen dieser
speziellen Variablen Markieren Sie dieses Kästchen, zum
Beispiel editierbar, dann fahren Sie fort und kompilieren Sie es erneut
und speichern Sie es erneut jetzt wieder in unserem
Level-Editor Ihr Block ausgewählt ist, kreuzen Sie gleich hier
im Detailbereich Wir können einen Akteur für die
Leveleinstellungen hinzufügen Jetzt haben wir nur noch
einen
Plan für Level-Einstellungen in unserem Level
, weil wir nur einen benötigen Aber wenn ich dieses Drop-down-Menü
auswähle, kann ich
damit den Akteur mit den Einstellungen für
die Kreditstufe
in unserer Ebene auswählen Akteur mit den Einstellungen für
die Kreditstufe , was
wir tun möchten Stellen Sie also sicher, dass Sie das getan haben
. Nun, es ist sehr
wichtig, hier zu erwähnen,
ob es in Ihrem Level noch andere Instanzen
eines Blocks gibt,
also lassen Sie mich einfach weitermachen und eine weitere davon
hineinziehen. Es ist nicht wirklich
wichtig, wo ich
ihn platziere , weil ich ihn löschen werde. Aber für jeden
P-Block in deinem Level musst
du das tun, okay, damit wir
den gesamten Musik-Switcher
O richtig machen den gesamten Musik-Switcher
O richtig Stellen Sie also für jede
Instanz des Blocks in
Ihrem Level sicher , dass Sie diese Level-Einstellungen variabel einstellen Lass mich einfach weitermachen und
diesen löschen. In Ordnung. Lass mich jetzt zurück
in meinen Block springen. Wenn wir die Ansicht
vergrößern, bauen wir darauf auf ,
dann
gibt es momentan kein Bit
Skript. Das sind unsere Blockeffekte. Lassen Sie uns einfach auf
dem Ende aufbauen. Das wäre ein netter,
praktischer Ort dafür. Wir haben gerade Musik
gespielt, als wir auf den Block, das ist unser Block
, herumtrampeln Musik, wenn wir unseren Block
spielen. Musik Hier
wollen wir unsere
Level-Einstellungen einfügen. Wir verstehen das, dann können wir es hier
rausziehen und wir können die Level-Musikkomponente
bekommen. Wir werden also die
Level-Musik-Komponente bekommen, das ist diese Komponente, die in unseren
BP-Level-Einstellungen enthalten ist. Wir holen uns das und
dann ziehen wir es raus und geben Set paused Stellen Sie sicher, dass Sie
das so verkabeln. Und wenn du dieses Kästchen ankreuzt, sagen
wir im Grunde, hey Level-Musik, die
in unseren Level-Einstellungen abgespielt wird. Lass uns eine Pause einlegen, wenn
wir auf dem Block anhalten. Wenn wir nun die Musik pausieren
, nachdem wir auf dem Block
angehalten
haben, müssen wir sie natürlich Musik pausieren
, nachdem wir auf dem Block
angehalten
haben, auch wieder unterbrechen Ich werde diese
drei Knoten hier hervorheben. Ich werde einfach
Control C ausführen, um sie zu kopieren. Dann gehe ich
runter zu meinem Block-Timer-Skript hier
drinnen. Ganz am Ende, wenn die
Blockzeit vorbei ist und wir alle Blöcke wieder auf den
Normalzustand
setzen und unseren Block
stoppen. Musik Wir werden auf dem Ende
dieses Steuerelements V
aufbauen , um die Knoten
einzufügen, die
wir gerade so kopiert haben. Und das
Einzige, was wir
hier tun müssen, ist das Häkchen zu entfernen, im Grunde, hey, weiter auf der Ebene Musik Alles klar,
also wenn das erledigt ist, lass uns weitermachen und
kompilieren und speichern und dann einsteigen und spielen Okay, wir hören unsere Level-Musik. Sobald ich bei diesem Block
anhalte, sollte
unsere Level-Musik pausieren. Und das tut es. Und wenn dann unsere
Blockzeit hier vorbei ist, glaube
ich, habe ich den 8-Sekunden-Block
eingestellt, Musik endet und unsere
Level-Musik wird sofort wieder aufgenommen. Und so haben wir jetzt dafür gesorgt, unsere BP-Level-Einstellungen
gut zu unserem BP-Block passen. Das ist auch einer der
Gründe, wir einen Plan für
die
Schauspielerklasse erstellt haben
, den wir für
unsere Level-Einstellungen in
unserem Level platzieren konnten , sodass er gut mit unserem BPP-Block Hier haben wir eine Methode verwendet als direkte
Blueprint-Kommunikation bezeichnet wird In diesem Teil
meines BP-Blocks P habe ich eine Variable vom Typ Level-Einstellungen erstellt und dann eine
Instanz editierbar gemacht Und dann verknüpfe
ich in
meinem Level-Editor meine
BP-Level-Einstellungen direkt mit diesem
speziellen Blockjob Gut gemacht, in Ordnung.
Das reicht für dieses C aus, wenn das nächste
91. Leveleinstellungen und der Flaggenpol: Willkommen zurück alle.
Jetzt, da unsere Level-Einstellungen und unsere
Block-Blueprints
in diesem Spiel gut funktionieren, müssen wir sicherstellen
, dass unsere Leveleinstellungen und
unsere Flaggenpläne am Ende des Levels Denn was
momentan passiert, ist sobald ich das Level beendet habe,
indem ich auf unsere Flaggenausrüstung
springe Musik einfach weitergeht Unser Timer läuft weiter, es ist einfach ein großes Durcheinander. Also werden wir uns in diesem Fall
damit befassen. Dafür werden wir mit
unserer Einstellung für den Blutdruckwert beginnen . Stellen wir sicher, dass du das öffnest. Wir
beginnen damit, hier
eine Variable zu erstellen . Klicken Sie auf diese Plus-Schaltfläche und
wir nennen sie unsere
Level-Beinvariable. Für den Typ. Wir setzen das
auf unser Levelende,
unseren Blutdruck, das Levelende-Flag , die Objektreferenz,
die Blaupause Okay, genau wie du mich im letzten Video gesehen hast, in dem ich diese
Variableninstanz essbar
gemacht
habe, werde ich auch diese eine
Instanz essbar machen könnten wir also tun, indem wir auf dieses Kästchen drüben
im Bereich „Details“ klicken. jedoch auch auf
diesen Augapfel klicken, machen
wir diese Instanz auch
bearbeitbar Lassen Sie mich weitermachen
und das kompilieren. Sie können also derzeit sehen, dass der Standardwert dieses
End-of-Level-Flags leer ist. Wenn ich jedoch in
meinen Level-Editor gehe und meine Level-Einstellungen
auswähle, kann ich einfach direkt dorthin springen, indem ich
hier in meinem Outliner
nach Level-Einstellungen
suche hier in meinem Outliner
nach Level-Einstellungen
suche Und wenn ich darauf doppelklicke, werde ich einfach zu dem Punkt weitergeleitet,
an dem sich
das auf
meinem Level befindet, bei dem diese
Einstellung für die Blutdruckstufe in meinem Level ausgewählt Schauen Sie im Detailbereich nach unten. Wir haben jetzt diese Kennzeichnungsvariable für das
Ende der Stufe verfügbar gemacht. Sie ist derzeit auf „Keine“ gesetzt. Jetzt könnte ich
das auswählen und dann
meine Endmarkierung wählen, weil ich hier nur eine habe. Aber nur um eine
andere Methode vorzuführen, werde
ich zu
meiner Flagge am Ende des Levels rüberfliegen. Und ich könnte auch, wenn meine Einstellung für
den Blutdruckwert ausgewählt ist, auf dieses kleine
Pfeifensymbol klicken Also werde ich das
tun. Und dann bewege meinen Mauszeiger
in das Viewport Und jetzt kann ich meine Flagge für das Ende des
Levels auch manuell auswählen In beiden Fällen können Sie diese Variable
auffüllen. Im Wesentlichen wollen
wir, dass unsere Einstellungen für
den Blutdruckwert auf unsere
Level-Kennzeichnung reagieren und sie
darüber informieren, dass der Vorgang abgeschlossen
ist Dafür
werden wir
unseren Plan für die Endstufenmarkierung öffnen unseren Plan für die Endstufenmarkierung öffnen Lassen Sie mich einfach weitermachen
und das auswählen. Ich lösche meine
Levelsuche im Outliner. Ich werde diesen Bauplan
öffnen. Und wenn Sie sich erinnern, haben wir
in unserer Level-End-Flagge diesen
Level-Complete-Event-Dispatcher Was wir
in unseren Level-Einstellungen tun werden ist darauf zu achten, wann immer
dieser aufgerufen wird Wenn du vergessen hast
, wo das in unserer Levelende-Flag
aufgerufen wird, schreibe
ich einfach, klicke darauf. Wir werden eine Referenz
dafür finden, wann das aufgerufen wird. Und wenn ich in den Suchergebnissen darauf
doppelklicke, kannst
du sehen, dass wir dieses Level schon ziemlich
am Anfang dieses Skripts als
komplett
bezeichnen . Also ja, wir haben diesen
Event-Dispatcher zu einem
bestimmten Zweck hinzugefügt , und
das ist dieser Zweck, damit unsere Level-Einstellungen
darauf achten und dann entsprechend
reagieren können darauf achten und dann entsprechend
reagieren Ordnung, um das alles in unseren BP-Level-Einstellungen einzurichten In Ordnung, um das alles in unseren BP-Level-Einstellungen einzurichten, gehen wir da drüben weiter Fügen wir hier unten eine weitere Stecknadel
hinzu. Lassen Sie mich einfach weitermachen und
diese Sequenznotiz hier ganz nach
unten ziehen . Okay? Und was wir tun werden
, ist unsere Flagge für das Ende des
Levels einzublenden und wir werden
die Strg-Taste
gedrückt halten , um dort einen Getter
einzublenden Und dann werde
ich
diesen Typ in Level Complete durchziehen diesen Typ in Level Complete Da ist unser Event-Dispatcher, lassen Sie uns das
Assign Level Complete Es wird zwei Knoten einbinden. Lass uns das in den fünfpoligen Stecker einhängen. Im Grunde sorgt
das ganze Setup
dafür, dass
wir darauf warten, dass dieses komplette Event von unserer
Level-Endflagge aus aufgerufen wird. Wenn das als
unsere BP-Level-Einstellungen bezeichnet wird, was jetzt „Zuhören“ heißt, dann ist
das ganze Setup dafür da. Sobald das passiert, wird
es von diesem benutzerdefinierten Event ausgelöst. Okay, was wollen
wir also tun, wenn wir hier in
unseren Level-Einstellungen darüber informiert wurden, dass,
hey, wir mit dem Fahnenmast am Ende des Levels interagiert haben und
das Level abgeschlossen betrachten Nun, wir wollen
unsere Level-Musik-Komponente
einbauen , also lasst uns auch
unsere Warnung einbauen, dass die Zeit knapp wird,
falls diese auch abgespielt wird, weil sie es sein
könnte Dann
ziehen wir eine von
beiden in die Länge und sagen Stopp. Wir werden diese
beiden Musikstücke beenden,
falls eine von ihnen läuft Als Nächstes
werden wir hier unseren Level-Timer einbauen werden wir uns holen.
Und dann ziehen wir
das in die Länge und geben Pause Timer per Griff ein. Wir werden es einfach sofort
pausieren. Machen Sie eine Pause in diesem Timer und gehen Sie dann ein bisschen nach
rechts. Ich werde einen Delay-Knoten
einschalten, indem die Taste D
gedrückt halte
und mit der linken Maustaste klicke. Wir werden es für sagen wir 3 Sekunden verzögern.
Das klingt ungefähr richtig. Dann werde ich
meine Level-Complete-Komponente einbringen. Dies wird unser Typ mit
Level-Cleared sein. Musik Das werden wir mit
reinziehen. Wir werden dem sagen, dass
es aktiviert werden soll wie. Also. Dann
machen wir uns an die Dekoration, die verbleibende Zeit, bis
unser Level abgeschlossen ist Um das zu tun, werde ich einen weiteren Verspätungsschein einreichen. Also werde ich die Taste D gedrückt halten und mit
der linken Maustaste klicken. Und ich werde hier
eine kleine Schleife bauen, eine kreisförmige Code-Schleife. Ich werde
diese Zeitdauer
für unsere Verzögerung festlegen ,
etwas wirklich Kleines, wie 0,05. Dann füge
ich unsere Player-Controller-Referenz hinzu. Wir werden das erreichen, indem wir die Steuerung
gedrückt halten und mit der linken Maustaste klicken Das kriegen wir da raus. Ich will unsere
Levelzeit haben. Holen Sie sich unsere Levelzeit. Dann
ziehen wir das raus und tippen Dekrement Wir werden das
so einstecken , wir werden es sehr kurz
verzögern, dann werden wir herausfinden, wie
viel Zeit wir haben Wir werden es um
eins dekrementieren und dann wird
es wieder hier reingesetzt Das ist es, was dieses
Dekrement im Knoten bewirkt. Es subtrahiert eins und setzt es dann im Grunde wieder
hier rein Jetzt werden wir
diesen Wert dann auch mit
einem größeren Knoten vergleichen diesen Wert dann auch mit
einem größeren Knoten Fügen Sie einen Zweig hinzu, indem Sie die Taste B
gedrückt halten und mit der linken Maustaste klicken, wenn dieser Wert Null ist, oder ich sollte sagen, ob dieser Wert größer als Null
ist. Was wir tun wollen, ist, unsere
Player-Controller-Referenz genau hier
abzuziehen . Wir nennen das Hinzufügen von Punkten. Wir haben diese
Aufruffunktion Punkte hinzufügen, und ich werde gleich darauf
doppelklicken. Wenn unsere Levelzeit
größer als Null ist, werden
wir einige Punkte hinzufügen. Wie viele Punkte möchtest
du hinzufügen? Nun, lasst uns für jede Sekunde 50
Punkte hinzufügen, im Wesentlichen
auf unserem Timer verbleiben wenn wir das Level abgeschlossen haben. Lassen Sie uns dann zusätzlich noch einen kleinen Sound
spielen. Also, wenn wir
das in die Länge ziehen, spielen
wir zwei D für den Sound, hier werde
ich die Kamera machen, das sind die VR-Sounds der Engine Ich versuche nur, bei jeder Erhöhung der Punkte
ein kleines Geräusch zu hören Dann werde
ich das ganze nochmal
umkreisen Ich zoome
hier nur ein bisschen raus. Linksklick und Ziehen. Loop
das zurück zu meinem Delay. Und wenn ich ein paar Mal auf
diesen Draht doppelklicke, kann
ich einige
Knoten neu abrunden nur damit es ein bisschen
sauberer
aussieht , wie dieses ganze
Skript hier,
ich werde mit der linken Maustaste klicken und
herumziehen, auf die Taste tippen. Das ist meine verbleibende
Dekramentenzeit,
wenn das Level abgeschlossen ist,
und ich vergebe wenn das Level abgeschlossen ist,
und Lassen Sie uns auch dieses Schwarz
sofort füllen. Wenn Sie
das Video hier pausieren möchten, können
Sie im Wesentlichen sehen, wofür
das alles eingerichtet ist. Wenn Sie dann ein wenig nach links gehen, können
Sie
den Teil des Skripts sehen,
das alles kommt von
den fünf Pins hier, in unseren Blutdruck-Level-Einstellungen. Ordnung, damit können
wir weitermachen und kompilieren, um sicherzustellen, dass
unser Skript gut aussieht. Und jetzt beim
Spielen testen.
Wir wollen sicherstellen,
dass unsere Level-Musik aufhört, wenn wir das Level
abgeschlossen haben. Und wir wollen auch sicherstellen, dass unser Level-Timer herunterzählt und wir Punkte für die
verbleibende Zeit erhalten. Einfach reinspringen und hier spielen, hey, wir haben unser
Level. Es wird Musik gespielt. Lass uns weitermachen und das
Level beenden. Das Level Die Musik sollte aufhören
und wir sollten anfangen zu hören, dass das Level abgeschlossen ist.
Musik einschalten. Und wir sollten auch sehen, dass
unser Timer stoppt und dann irgendwann
anfangen, herunterzuzählen. Los geht's. Timer
stoppt, Level abgeschlossen. Musik Wir zählen runter, wir bekommen 50 Punkte
für jede Zeit
oder jede Sekunde, die wir noch auf der Uhr
hatten. Und das ist in der Tat ein netter
kleiner Bonus. Wir haben es jetzt so gemacht, dass unser Levelende-Flag
gut mit unseren
BP-Level-Einstellungen funktioniert . Gut gemacht, Leute. Stellen Sie sicher, dass Sie alles ablegen und speichern. Gelegentlich, nur um
sicherzugehen, dass Sie all
Ihre harte Arbeit gespeichert haben , reicht
das aus. Für dieses eine C,
gewinne das nächste.
92. Flag Pole und der P-Block: Ordnung, bevor wir weitermachen, werden
wir noch
ein Problem lösen, das damit zusammenhängt, dass unser Block und unsere Endlevel-Flagge nicht gut zusammenpassen. Das hat nicht unbedingt mit den
Level-Einstellungen zu tun, aber es hat mit
den anderen Blueprints zu tun, mit denen wir uns hier in letzter Zeit befasst haben mit denen wir uns hier in letzter Zeit befasst Ich werde das Problem vorführen und dann werden wir
weitermachen und es beheben Das Problem ist, wenn ich an einem Block
anhalten würde und wir
uns dem Ende des Levels nähern, würdest du feststellen,
dass sich die Münzen ändern. Sobald ich jedoch mit dem Fahnenmast am Ende
des Levels interagiere, die Münzen einfach weiter Wir müssen unseren Flaggenmast am Ende der Ebene bei unserem Block um diesen Block zu stoppen Musik und
den Blockeffekt in dem Moment rückgängig machen , in
dem wir
mit dem Fahnenmast interagieren Lass uns weitermachen und
damit weitermachen. Wir werden innerhalb
unseres Blockblocks
beginnen , anstatt eine neue Variable zu erstellen. Dieser wird
Level genannt werden. Dieses Mal werde ich den Variablentyp
auf
Levelendekennzeichnung, Objekttyp BP,
Ebenenendekennzeichnung,
Objektreferenz
setzen auf
Levelendekennzeichnung, Objekttyp BP,
Ebenenendekennzeichnung . Und genau wie zuvor werden wir
diese Instanz
editierbar machen, indem wir
entweder auf dieses Kästchen hier klicken oder indem wir auf dieses geöffnete
Augapfelsymbol klicken Lassen Sie uns weitermachen und das
kompilieren und speichern. Und wenn ich jetzt zu
meinem Level zurückkehre und meinen Block
ausgewählt habe, kann
ich unser
Levelende-Flag diesem Block zuordnen. Großartig. Nun, noch einmal, du wirst das für jede Instanz
deines Blocks
tun wollen , die du
vielleicht in deinem Level hast. Okay. Nun, was wir hier tun
können, ist in unseren
BP-Block zu gehen und wir können diesen Blueprint auf
unseren
Level-Complete-Event-Dispatcher warten , den wir in
unserem Level-End-Flag eingerichtet Jetzt hat
unser
Levelende-Flag wieder einmal Event-Dispatcher-Stufe abgeschlossen, die aufgerufen wird Wir müssen
also nur sicherstellen, dass unser Block auf das Innere unseres
Blocks
wartet, das herauszoomt auf das Innere unseres
Blocks
wartet, das herauszoomt Ich werde unseren
Sequenzknoten weit nach unten bringen. Vergiss diese Querdrähte. Wir werden hier unten
noch eine Stecknadel hinzufügen. Dafür werden wir unsere
End-of-Level-Flaggenreferenz hier unten einfügen. Halten wir die
Steuertaste gedrückt und klicken Sie mit der linken Maustaste. Das wird
unsere Flagge für das Ende des Levels einblenden. Wir werden diesen Typ in
Level abgeschlossen
wegziehen . Um
unseren Level als abgeschlossen zuzuweisen, werden die beiden Knoten hinzugefügt. Lassen Sie uns das sofort verkabeln. Also, wieder einmal, bei dieser Einrichtung haben
wir unseren
BP-Block P hier. Halten Sie Ausschau nach diesem
Level-Complete-Event-Dispatcher der in unserer Flagge
am Ende des Levels
läuft Sobald das passiert, werden
wir das
damit verbundene benutzerdefinierte Ereignis auslösen damit verbundene benutzerdefinierte Ereignis Die gute Nachricht ist, dass wir das eigentlich nur
in den Code stecken wollen ,
der von unserem damaligen Vierpin kommt. Lassen Sie mich nur anmerken
, dass das alles von dem damals
sechspoligen Anschluss genau hier
kommt. Ich werde unseren
Sequenzknoten wieder an seinen
Platz bringen , damit nicht zu
viele Kabel sich kreuzen Okay, und wir wollen das
im Grunde anschließen und es
nicht vermasseln Viele Leute vermasseln das
, indem sie dieses Kabel anschließen. Wir wollen, dass dieses
Level-Complete-Event direkt in diese Vierschleife eingeht,
unseren Block-Timer Beachten Sie also, dass wir an
dieser Stelle des Kurses drei Dinge
haben , die
in jede Schleife einfließen . Dieser Block-Timer,
er wird
die Blöcke wieder in den
Normalzustand versetzen und den Block
ausschalten Musik, wann immer die
Blockzeit vorbei ist. Also, was wir hier
tun, ist, auf den
Event-Dispatcher für Level Complete innerhalb des
Level-Ende-of-Level-Flags Und sobald das passiert, verbinden
wir uns einfach mit dieser Blockzeit über ein bisschen Skript, um alle Blöcke wieder auf
den Normalzustand zu setzen Stoppen Sie die Musik. Noch einmal, genau hier, dieser Draht ist der, der sich für jede Schleife
einhakt Mach weiter und kompiliere das. Lass uns weitermachen und speichern. Und als
gute Designer werden
wir das natürlich testen. Okay, wir werden bei diesem Block
anhalten, wir werden sehen, wie sich diese
Steine in den Münzen verändern, und wir werden diesen Block
hören. Musik Okay, und sobald wir den Fahnenmast am Ende des Levels berühren
, schalten
sie alle zurück Diese Blöcke wurden wieder
zu Blöcken, die diesen Block blockieren. Die Musik endet sofort. Gut gemacht, Leute. Das wird
alles für diesen tun. Wir sehen uns im nächsten.
93. Stufenübergang: Willkommen zurück. In diesem Video zeigen
wir,
wie Sie von
einem Level zum nächsten wechseln können, sobald
wir das Level abgeschlossen haben. Damit wir nicht einfach auf unseren Bildschirm
starren. Sobald alle Punkte
tabellarisch aufgeführt sind, können
wir tatsächlich unsere gesammelten Punkte, unsere Anzahl an können
wir tatsächlich unsere gesammelten Punkte, unsere Anzahl an Leben,
die
wir derzeit haben, und
unsere Anzahl an Münzen
auf das zweite,
dritte, vierte Level
übertragen Leben,
die
wir derzeit haben, und
unsere Anzahl an Münzen
auf das , unabhängig davon, auf welches Level nun zu überprüfen, wo wir
derzeit mit den Dingen stehen, Beginn des
Kurses
einen Spieler-Controller-Blueprint erstellt einen Spieler-Controller-Blueprint Und innerhalb unseres
Spieler-Controller-Entwurfs
, den ihr
hier auf dieser Seite finden könnt, haben
wir einige Münzen hinzugefügt, einige Punkte hinzugefügt,
andere Leben hinzugefügt oder
abgezogen Das ist genau hier unten und das wird in
diesen
Variablen wiederhergestellt Was wir nun tun
müssen, ist, wenn wir von einer
Ebene zur anderen
wechseln, wir müssen diese
Informationen an
eine andere Art von
Plan weitergeben , den
wir hier
in Kürze erstellen werden. Und dann werden wir
diese Informationen zurück an
unseren Spieler-Controller geben ,
sodass wir unsere Werte tatsächlich haben beibehalten und von der vorherigen
Stufe auf unsere neue Ebene übertragen Um das zu tun, gehen wir jetzt in unsere Projekteinstellungen. Sie können hier in
den Einstellungen oben rechts unter
Projekteinstellungen darauf zugreifen . Hier gehen wir
zu Karten und Modi. Und wir haben unsere verschiedenen Framework-Blueprints
hier oben. Aber wir haben auch
diesen speziellen,
einen Spielinstanz-Blueprint
hier unten Nun, das ist eine spezielle Art von Blueprint, der seine Werte
nicht erhält,
seine Variablenwerte werden zurückgesetzt solange dein Spiel
weiterläuft Sie können also von Stufe eins,
Stufe zwei, Stufe
drei usw. wechseln , und alle
darin enthaltenen variablen Daten können von einer Ebene zur anderen übertragen Ich werde
hier eine
neue Spielinstanzklasse erstellen , indem ich einfach
auf diese Plus-Schaltfläche hier Und es wird mich fragen,
wo ich es speichern möchte. Schauen wir uns unsere
Plattform-Blueprints an. Ich lege das in meinen Ordner Framework of Blueprint und gehe als Namen zu BP Underscore Game
Instance Und ich werde das speichern. Und jetzt sehen Sie wieder in
meinen Projekteinstellungen, dass es eingefügt wurde Dies wird der Bauplan für die
Spielinstanz , den wir hier verwenden werden Ich habe es geöffnet und was
Sie hier sehen können, ist dass
ich mein
Blueprint-Panel habe, in dem ich einige
Variablen erstellen kann, um
die Informationen von unserem
BP-Player-Controller zu speichern die Informationen von unserem
BP-Player-Controller Wir werden
hier im Wesentlichen die variablen Daten in
unserem Player-Controller weitergeben hier im Wesentlichen die variablen Daten in
unserem Player-Controller Wenn wir das
Level beenden, werden wir diese Daten — Münzen,
Leben und Punkte —
an unsere Spielinstanz
weitergeben . Dann werden wir es hier in
unserer BP-Spielinstanz
wieder zurückgeben . Lassen Sie uns diese
drei Variablen erstellen. Die erste werden Münzen sein. Ich werde dies auf eine Ganzzahl
setzen diese ausgewählt ist. Ich werde die
Taste D zum Duplizieren ausführen. Ich nenne den nächsten Punkt ebenfalls ein
Integer-Steuerelement D. Auch dieser Punkt wird Leben sein. Und wenn ich das kompiliere, können
wir sehen, dass wir 00.0
als Standardwerte haben Eigentlich werde ich
unsere Leben so ändern, dass sie
standardmäßig drei sind, um dem zu entsprechen, was wir derzeit standardmäßig
in unserem Player-Controller haben Und du wirst dich gleich
hier sehen. Okay, das nächste, was ich tun werde, ist zu unserem Level hier zurückzukehren. Und ich möchte in
unsere Blutdruckwerte gehen. Und das finde ich in
meinem Blueprints-Ordner. Meine Blutdruckwerte, wo ist das? Hier ist es. Einstellungen für den Blutdruckpegel. Ich werde in diesen Entwurf springen und eine
brandneue Variable erstellen Also werde ich
auf diese Plus-Schaltfläche klicken. Und ich werde
dieses Level zwei nennen. Und ich werde
das
in einen Namen ändern und du wirst dich gleich hier sehen. Ich werde diese
Instanz auch editierbar machen. Wenn du auf das
kleine Augapfelsymbol klickst, wird das Kästchen genau
dort aktiviert. Ich kompiliere das Derzeit ist dies auf „Keine“ gesetzt, aber wir werden das
gleich auffüllen. Ordnung, lassen Sie uns
weitermachen und das sagen und zu unserem Level zurückkehren Jetzt habe ich meine Level-Einstellung
irgendwo hier in meinem Level. Ich kann es tatsächlich sehen, ich
habe es genau hier
in meinem Viewport Aber wenn ich einfach
Level in meinen Outliner eingeben würde, würde mir
das helfen, es zu reduzieren
. Da sind meine Einstellungen für den Blutdruckwert und jetzt können wir sehen, dass wir dieses Niveau noch vor uns
haben. Die
Variablenanzeige ist
derzeit auf „Keine Jetzt wollen wir eigentlich ein anderes Level
einbauen, zu dem wir gehen können. Dafür gehe
ich in meinen
Levels-Ordner und möchte eine zweite Ebene
erstellen, eine
weitere Ebene, zu der ich wechseln kann. Also werde ich einfach mit der
rechten Maustaste darauf klicken. Ich werde das duplizieren und lassen Sie mich einfach weitermachen
und es sofort speichern. Irgendwann werde ich
wahrscheinlich
in Level zwei springen und
einige Änderungen daran vornehmen wollen , aber ich werde das als
LV in meinen Detailfenstern eintragen Mein Level, das ich erreichen muss, ist
LV-Unterstrich 02. Ja, ich
muss das
optisch ein bisschen
anders aussehen lassen optisch ein bisschen
anders aussehen Sonst
wird es so aussehen, hätten
wir das Level überhaupt nicht
verändert. Okay, das nächste, was wir hier tun
müssen, ist
in unsere BP-Level-Einstellungen zu springen . Und wir werden
ein Drehbuch ganz am Ende dieses Drehbuchs erstellen. also aus den fünf
Teilen Ihres Sequenzknotens herauskommen , haben
wir ein
vollständiges Typskript für dieses Level. Wir haben diese Reduzierung
der Zeit , wenn das
Level abgeschlossen ist Wir werden genau hier auf
diesem falschen Ast
aufbauen genau hier auf
diesem falschen Ast Hier werden wir
nun einige variable Daten
von einem Blueprint,
unserem Player-Controller, an unseren
Spielinstanz-Blueprint weitergeben variable Daten
von einem Blueprint,
unserem Player-Controller, an unseren
Spielinstanz-Blueprint Also fange ich an, indem ich mit der rechten Maustaste in eine leere
Stelle klicke Wir werden den
Player-Controller davon abschalten. Ich werde das Ganze auf unseren BP-Player-Controller ziehen und streamen. Das ist der
Player-Controller, den wir
in diesem Projekt verwenden , der
in unseren Projekteinstellungen eingerichtet ist. Bp Player-Controller
genau dort. Also, ich will nicht, ich
will da nicht wirklich einen
Hinrichtungs-Pin verdrahten. Ich weiß, dass das
der Player-Controller ist. Mein Projekt nutzt das,
was ich hier tun kann , um zu verhindern, dass ich mich hier verkabeln muss. Ich klicke einfach mit der rechten Maustaste
darauf und konvertiere einen reinen Cast, bei dem das Ein- und Ausziehen der Ausführungs-Pins entfällt. Damit kann ich mich dann hier
rausziehen und meine Münzen holen. Hol dir Münzen. Wir werden diese variablen Daten
aus unserem Player-Controller extrahieren. Wenn wir die Münzen holen,
werden wir Punkte bekommen. Wir werden Leben bekommen. Wir werden
diese Daten an
unsere Spielinstanz Blueprint weitergeben unsere Spielinstanz Blueprint Wie machen wir das? Klicken Sie hier mit der rechten Maustaste
in eine leere Stelle. Ich werde sagen, Spielinstanz
abrufen. Wir werden das in die Länge ziehen. Und wir haben eine
namens BP-Spielinstanz erstellt. Auch hier. Ich kann mit der rechten
Maustaste auf diesen Knoten klicken. Lassen Sie mich
hier ein bisschen nach oben zoomen. Klicken Sie mit der rechten Maustaste. Wir werden das
in eine reine Besetzung umwandeln. Anstatt diese Daten
zu erhalten, werden
wir diese Daten festlegen. Zieh die eingestellten Münzen heraus. Lass mich das ein bisschen
nach unten verschieben. Alle drei. Da haben wir's. Und wir werden
Punkte setzen und wir
werden Leben festlegen. Worauf wollen wir diese Werte also
festlegen? Worauf wollen wir sie setzen? Was auch immer gerade in
unserem Player-Controller vorhanden ist. Also werden wir unsere Münzen hier
einstecken, unsere Punkte hierher und unser Leben hierher. Wir geben diese Daten von
einem Plan zum anderen weiter. Jetzt müssen wir
eine Ausführungsleitung durch
diese verschiedenen Setter-Knoten Also können wir das
von diesem falschen Zweig aus machen. Also werden wir so vorgehen, genau hier, hier und hier. Und wir sind noch nicht ganz fertig. Wir werden von hier aus
aufbauen. Wir werden
unserem Spiel
tatsächlich vorschreiben , welches Level wir als Nächstes erreichen
wollen. Tun Sie das, wir werden hier eine
kleine Verzögerung hinzufügen. Also werde ich die Taste D gedrückt halten und mit
der linken Maustaste klicken, wir fügen eine Verzögerung hinzu
und ich werde
eine Verzögerung von sagen wir 2 Sekunden fest codieren . Dann bauen wir hier einfach
nach rechts auf, da ist ein Knoten, der nach seinem Namen
Open Level heißt. Und hier können wir
den Levelnamen eingeben, wie er in dieser Variablen angegeben
ist. Also ziehe ich das einfach per
Drag & Drop direkt oben drauf. Und Sie können sehen, dass
der Standardwert hier im
Detailbereich keiner ist. Ich werde weitermachen und das sofort
kompilieren. Aber denken Sie daran, dass wir dies so eingestellt haben
, dass es von der Instanz bearbeitet werden kann. Also hier in unseren
Level-Editor-Level-Einstellungen haben
wir das genau hier
ausgewählt Wir spezifizieren, dass
diese Variable mit dem
LV-Unterstrich zwei aufgefüllt
werden soll, genau
diese Ebene Okay, aber wir sind noch nicht fertig. Wir müssen uns tatsächlich an
unseren Spielmodus-Blueprint halten, um unser Setup hier
fertig zu stellen Also gehe ich zu unserem Ordner mit den Blueprints
für Dritte. Wir verwenden unseren
BP-Third-Person-Spielmodus BP-Third-Person-Spielmodus Also werde ich
weitermachen und das öffnen. Hier haben wir ein
Antwortskript im Gange. Ich werde
ein leeres Feld finden, vielleicht ein bisschen unten. Lassen Sie mich nach oben zoomen
und ich werde ein brandneues benutzerdefiniertes Ereignis
erstellen. Klicken Sie mit der rechten Maustaste auf eine
benutzerdefinierte Ereignissuche. Und wir werden dieses benutzerdefinierte Ereignis als Übertragung
von Spielstatistiken
bezeichnen . Okay, was wir hier
tun werden , ist in diesem
speziellen Blueprint, wir werden unsere Daten von unserer Spielinstanz zurück an
unseren Spieler-Controller
übergeben Spielinstanz zurück an
unseren Spieler-Controller Im Grunde wird
unser Spielmodus-Blueprint jedes Mal, wenn wir
ein brandneues Level zwei öffnen , wenn wir
ein brandneues Level zwei , von vorne beginnen Unser Begin-Spiel
wird stattfinden. Und was wir von E Begin
Play hier oben aus machen
werden ,
ist, dass wir irgendwann dazu aufrufen
werden dieses benutzerdefinierte Event gestartet wird. Und dabei werden wir allen Variablen innerhalb
unserer Spielinstanz
mitteilen, dass allen Variablen innerhalb
unserer Spielinstanz
mitteilen sie dann zurück auf unseren
Player-Controller
übertragen werden. Lass uns weitermachen und
das einrichten. Ich werde rechten Maustaste in eine
leere Stelle klicken hier mit der rechten Maustaste in eine
leere Stelle klicken, um die Spielinstanz abzurufen. Wir
ziehen uns hier hin und casten
auf unsere BP-Spielinstanz. Ich werde noch einmal mit der
rechten Maustaste darauf klicken und eine reine Besetzung
umwandeln. Eigentlich nein, ich werde das nicht eine reine Besetzung
umwandeln. Ich werde es als
unreinen Guss belassen,
diese Ausführungsdrähte
durchzuverkabeln , nur um zu zeigen , dass Sie das hier
so oder so machen könnten Und dann werde ich
weiterziehen und wir werden Münzen bekommen, wir werden Leben bekommen, wir werden Punkte bekommen Wir müssen das
alles auf unseren Player-Controller übertragen . Rechtsklick,
Player-Controller holen. Wir ziehen das in die Länge, wir werden zwei
BP-Player-Controller einsetzen. Ich wandle diesen in einen
reinen Cast um, indem ich mit der rechten Maustaste klicke. Konvertiere auf diese Weise in eine reine Besetzung. Dann ziehen wir das und
wir setzen Münzen,
bewegen das nach oben, legen
Leben fest, du hast es erraten Wir werden solche
Punkte setzen und dafür
sorgen, dass all
diese Kabel von dort nach dort nach dort verlaufen Und vergiss nicht, diese Daten von
deiner Spielinstanz zurück auf
deinen Player-Controller zu
übertragen . Noch einmal, dein
Spielmodus-Blueprint. Wenn ich auf Klassenstandards klicke, bestimmt
dein Spielplan welchen Spielercontroller du verwenden
wirst, unseren
BP-Spielercontroller Also geben wir all
diese Daten zurück an unseren BP-Player-Controller Okay, ich klicke mit der linken Maustaste
und ziehe das alles, tippe auf die C-Taste und mein
Kommentar lautet: Trends, Spielstatistiken von der Spielinstanz BP zurück zum Spielercontroller BP. Großartig, ausgezeichnet. Ich ändere hier auch
meine Comic-Farbe
auf Schwarz. Jetzt müssen wir
dieses benutzerdefinierte Ereignis tatsächlich
einberufen ,
da es nicht aufgerufen wird und keine dieser
Datenübertragungen stattfinden, es sei denn, wir
rufen das Kundenereignis ein. Ordnung, um das zu tun, müssen
wir nur dorthin gehen , wo
unser Event gerade beginnt. Wir haben unsere verschiedenen
Antwortskripte. Ich werde das nur ein bisschen untermauern. Ich werde also eine
Sequenznote hinzufügen, indem ich
die S-Taste gedrückt halte und mit der linken Maustaste klicke.
Ich werde so verkabeln. Und ich werde so verkabeln. Und alles, was ich mit
diesem Null-Pin machen
werde, ist , das benutzerdefinierte Ereignis
als Übertragung der Spielstatistiken zu bezeichnen. Also das wird
diesen Anruf tätigen. Wenn ich darauf doppelklicke,
wird es das hier aufrufen. Ich hätte, wenn ich ein wirklich hässliches Kabel haben
wollte, statt
diesen ganzen Aufbau zu haben, unser maßgeschneidertes Event
so auszurufen, ich hätte einfach ein
Kabel bis ganz unten drüben können, und das würde genauso funktionieren. Aber ich möchte, dass mein Code
ein bisschen sauberer aussieht. Etwas anderes möchte ich
hier erwähnen , bevor wir das testen Lassen Sie uns weitermachen und
kompilieren und speichern. Wisst noch einmal, dass unser
Spielmodus-Blueprint immer dann
ausgelöst wird, wenn
wir unser Level beginnen Was ich jetzt getan
habe,
oder ich habe mich bei der
Erstellung unserer Spielinstanz selbst ertappt,
ist, dass oder ich habe mich bei der
Erstellung unserer Spielinstanz selbst ertappt,
ist, ich meine Leben
standardmäßig auf drei gesetzt habe Und der Grund, warum ich das getan habe, ist , dass dieses Event in unserem
Spielmodus beginnt. Das Spiel wird
sogar für Level Nummer eins aufgerufen. Das wird
also als Übertragung
des Spielstatus bezeichnet werden . Ich möchte also sicherstellen, dass unsere drei
Leben, die
von unserer Spielinstanz
kommen von unserer Spielinstanz auch an unseren
Spieler-Controller
weitergegeben werden. Ordnung, eine Sache
möchte ich noch tun, bevor ich das teste. Ich muss hier aus Stufe
eins springen und tatsächlich zu Stufe zwei
gehen, damit es visuell etwas
anders
aussieht, sodass Sie
sehen können , dass die Dinge
tatsächlich passieren. Also werde ich hier einfach auf Stufe zwei
doppelklicken. Es wird sagen,
hey, willst du alles
speichern, was
du bisher geändert hast? Lassen Sie uns Ausgewählte speichern. Und das ist nur ein zusätzlicher
Speichervorgang , da er aus
irgendeinem Grund erscheinen wird. Da haben wir's. Und ich werde mein Level
zwei auch hier speichern. Spar dir das. Okay, lass uns zu Level zwei
gehen. Ich werde
darauf doppelklicken, um es zu öffnen. Ich werde diese
automatischen Einstellungen gleich hier deaktivieren. Lass uns weitermachen und das speichern. Und hier sind wir in Level zwei. Es wird einen Start für
meine Spieler geben
, den ich gleich gegen Ende setze. Lassen Sie mich hier einfach
einige Assets löschen .
Wir werden löschen. Löschen. Löschen. Löschen, löschen. Also werden wir hier eine
sehr karge Stelle haben wir für Level zwei spawnen Das wird
unser visueller Unterschied zwischen Level eins und Level zwei Lassen Sie uns weitermachen und
Stufe zwei speichern, dann
gehe ich zurück zu Stufe
eins, indem ich unter Datei, Letzte Ebenen, Stufe eins gehe.
Ich werde
diese temporären Objekte nicht speichern. Los geht's. Hier sind wir, wieder in Level eins. Lass uns
weitermachen und es versuchen. Okay, und bevor ich das
Level tatsächlich abschließe, sollte
ich ein paar Punkte sammeln. Ich habe hier ein paar Münzen. Okay, da habe ich
drei Leben, vier Münzen. Und mal sehen, wie viele
Punkte wir am Ende haben. Drei Leben, vier Münzen und ein paar tausend Punkte
hier, 4.500 Punkte Schauen wir uns also an, ob diese Daten auf Stufe zwei
übertragen werden. Hier sind wir auf Level
zwei und Sie können sehen, dass wir drei Leben,
vier Münzen und 4.500 Punkte haben vier Münzen und 4.500 Punkte Dieses System funktioniert in der Tat. Ordnung, Leute. Das wird
alles für diesen tun. Wir sehen uns im nächsten.
94. Wolken: Willkommen zurück. Nun, bis zu
diesem Punkt des Kurses haben
wir uns hier
so ziemlich ausschließlich
auf das Kern-Gameplay
unseres Mario-Levels konzentriert , das
muss zuerst geklärt werden. Aber irgendwann, wenn du genug
Gameplay-Elemente an Ort und Stelle
hast , kannst
du deine Aufmerksamkeit darauf
richten , dein Level zu verbessern. Darauf werden wir uns in diesem Abschnitt
konzentrieren. Und wir werden damit
beginnen,
unserem Hintergrund hier
einige zufällige Wolken hinzuzufügen . Und ich spreche nicht von diesen wunderschönen, unwirklichen
Wolken am Himmel Ich spreche von diesen Wolken, die
eher Mario-zentriert sind. Wenn ich jetzt einfach auf die G-Taste tippe, zeige
ich
Ihnen im Wesentlichen was wir hier bauen
werden. Was ich habe, ist eine Kiste, ein Volumen, wenn Sie so wollen, in dem wir nach dem
Zufallsprinzip diese verschiedenen Wolken Und das sind alles zufällige
Größen und wir können wählen, wie viele wir in dem
Raum haben möchten Es wird ein sehr
flexibler Plan sein , der es uns
ermöglicht , Wolken in
jeder Region unseres
Himmels hinzuzufügen , die wir möchten Das ist es also, was für diesen Fall
auf uns zukommt. Okay, zurück in unserer
Arbeitsversion des Projekts werde
ich ein
paar Texturen importieren, die nicht im
ursprünglichen Texturpaket enthalten
waren, obwohl ich
zurückgehen und
diese im
ursprünglichen Texturpaket verfügbar machen werde. Diejenigen, die sich diesen Kurs zu
einem späteren Zeitpunkt ansehen , sollten
sie bereits hier finden. Aber ursprünglich hatte ich sie
nicht hier, also werde ich
weitermachen und
sie in meinen Inhaltsbrowser bringen . Je nachdem, wo Sie
sich diesen Kurs ansehen, kann
ich auch diese
speziellen Texturen, die
ich gleich
hier erwähnen werde, diesem Video beifügen . Um es kurz zu machen, Sie
müssen sicherstellen, dass Sie diese beiden Texturen
importieren. Ich habe eine Wolke eins
und eine Wolke zwei. Ich werde nur eines davon
verwenden, aber ich werde
dir zwei geben, damit du
auswählen kannst , welches
davon du hinzufügen möchtest. Ich ziehe sie in meinen
Texturen-Ordner und los geht's. Ich habe quasi diese
NES-Version der Cloud. Ich werde diese
Version der Cloud verwenden. Zuallererst muss
ich die Textur,
die ich hier
verwenden möchte, in ein Material umwandeln Textur,
die ich hier
verwenden möchte, in ein Material Tatsächlich verwandle ich beide
in Material also beide auswähle und die
Strg-Taste gedrückt halte, kann
ich schreiben, darauf klicken und Materialien
aus diesen Texturen erstellen Lassen Sie uns also weitermachen und das tun. Hier sind meine beiden Materialien, die
es gerade erstellt hat. Ich ziehe
diese Material-Assets,
die Sie dort sehen können —
Materialien, weil sie unten
beschriftet sind — per Drag-and-Drop diese Material-Assets,
die Sie dort sehen können —
Materialien, weil sie unten
beschriftet sind in meinen Materialordner. Ich verschiebe
sie hierher und suche dann nach
meinem One-Cloud-Material,
meinem T-Cloud-Material. Mit dem möchte ich in meinem Projekt
arbeiten. Aber auch hier gilt: Wenn Sie
diese NES-Cloud der alten Schule wollen, können
Sie auch diese verwenden. Wir müssen nur darauf
doppelklicken, um es zu öffnen und hier ein
paar Änderungen vorzunehmen. Für den Anfang werde
ich diese
Wolke hier
in meiner Vorschau nicht auf einer Kugel platzieren Sie haben diese kleinen Symbole
in dieser Vorschau hier. Wenn Sie sich also dafür entscheiden würden, es in ein Flugzeug
zu bringen, können
Sie im Wesentlichen sehen, wie das aussehen wird. Jetzt siehst du diese komische Streifenbildung im Hintergrund.
Mach dir darüber keine Sorgen Wir werden das
hier ein wenig korrigieren, weil
wir
unseren Master-Material-Node
im Bereich Blend Mode auswählen werden. Wir werden das
von undurchsichtig auf Masken umstellen. Auf diese Weise können wir dann unseren Wert hier,
den Alphawert dieses Abschnitts, in die Eingabe der Opazitätsmaske Und das wird
die seltsamen
Streifeneffekte im Hintergrund beseitigen die seltsamen
Streifeneffekte im Hintergrund Jetzt beabsichtige ich,
diese Wolken nur aus einem
bestimmten Winkel
sichtbar zu machen Aber wenn ich nach hinten fliege,
merke ich, dass du es nicht sehen kannst. Das wird also
völlig optional sein. Wenn Sie
hier
ein zweiseitiges Material mit ausgewählten
Master-Materialknoten erstellen möchten, können Sie dieses
Kästchen für zweiseitig markieren. Dadurch können Sie
sie von beiden Seiten
sehen. Nur zu Ihrer Information, in Ordnung, damit werde ich
weitermachen und das speichern und es
dann wieder hier in
meinem Level-Editor schließen wieder hier in
meinem Level-Editor Ich gehe zum Ordner
Blueprints und erstelle
eine neue Schauspielerklasse, Blueprint, indem
ich mit der rechten
Maustaste auf
Blueprint-Klasse indem
ich mit der rechten
Maustaste auf
Blueprint-Klasse Es wird eine Schauspielerklasse sein weil
wir diese Klasse in unserem Level
platzieren werden ,
und ich werde sie einfach BP Underscore Clouds
nennen das ausgewählt ist, tippe
ich auf die Leertaste, um es zu öffnen Und ich werde hier einfach
zwei Komponenten hinzufügen. Die erste Komponente
, die ich
hinzufügen werde , wird
ein Box Collider sein, der bei der Boxkollision nach unten
scrollt Und ich werde das mein
Spawngebiet nennen. Dies
wird im Wesentlichen
den Bereich definieren , in dem ich einige Wolken spawnen
möchte Jetzt, wo dies ausgewählt ist, werde
ich die Größe der Box noch nicht wirklich
bestimmen. Ich werde sie
in unserem Konstruktionsskript festlegen. Aber ich werde unsere
Linienstärke
etwas dicker einstellen , sodass dieser Bereich leichter zu
erkennen ist , sobald wir diese
Stelle in unserem Level haben. Also die Linienstärke hier, ich
werde sie auf 20 ändern, was vorerst
sehr sperrig aussehen wird Aber sobald wir
unser Spawngebiet hier erweitert haben, wird
es viel einfacher sein, es
zu sehen, wenn es riesig ist Als Nächstes wähle ich
unsere Standard-Szenen-Root-Komponente Das ist diese Komponente
genau hier. Noch einmal dieses kleine Symbol, weil ich
eine weitere Komponente hinzufügen möchte, der eine weitere
Komponente angehängt habe. Und das wird zum Beispiel das Tippen
sein,
zum Beispiel statisches Mesh. Wenn das ausgewählt ist,
nenne ich es Clouds. Und dann drüben
im Bereich „Details“ füge
ich es als
unser statisches Mesh ein. Ein Flugzeug. Ich werde dieses Flugzeug wählen. Das wird aus dem Ordner
Engine Basic Shapes stammen. Und dann für das Material, das das Material sein
wird, an dem ich
gerade hier gearbeitet habe , Wolke eins. Jetzt sehen wir
hier noch nichts, weil wir Instanzen davon
über unser Konstruktionsskript erzeugen werden, das
nur ein bisschen reinkommen wird Aber ich muss das mit
Blick auf unser Kamera-Setup machen. Und um das zu tun, und das habe ich durch
Versuch und Irrtum hier
festgestellt, unsere Rotation hier im X auf 90 ändern, müssen
wir
unsere Rotation hier im X auf 90 ändern, sodass die Flugzeuge
mit dem Wolkenbild darauf
unserer Kamera zugewandt sind . Etwas anderes, das ich hier
gleich tun
werde , befindet sich
im Detailbereich. Ich tippe einfach Schatten ein und
schalte die Option „Schatten
werfen“ aus. Das schont unsere
Leistung ein wenig und verhindert, dass
seltsame Schatten aus unserer Cloud geworfen werden. Das ist also optional, aber
ich würde das gerne tun. Okay, als Nächstes werden wir einige Variablen
hinzufügen, die erneut
in unserem Konstruktionsskript verwendet werden . Das alles wird
im Konstruktionsskript erledigt, Skript,
das während der Entwurfszeit
ausgeführt wird , nicht während der Laufzeit.
Klicken Sie auf unsere Variablen. Die erste, die wir hier
hinzufügen werden,
heißt Instances to Spawn So viele
Cloud-Instanzen wollen wir haben. Dies wird eine Ganzzahl sein. Die nächste Datei, die
ich hinzufügen werde, indem ich auf diese Schaltfläche mit dem Plus der
Variablen klicke, wird
Spawn Extent X heißen. Das wird ein Float sein Dies wird
zusammen mit den beiden anderen
Variablen, die hier folgen werden
,
die Größe unseres Spawnbereichs bestimmen zusammen mit den beiden anderen
Variablen, die hier folgen werden
, die Größe unseres Spawnbereichs Das wirst du gleich hier
sehen. Wenn das ausgewählt ist, mache
ich einfach
Steuerung D, um es ein paar Mal zu duplizieren. Ich gehe zurück und benenne das um. Dieser wird
Spawn Extent Y heißen und dieser wird Spawn Extent Z
heißen.
Alles klar, den nächsten werden wir hier hinzufügen, indem wir Control D
drücken, um das zu duplizieren, heißt Scale Min und dann
Control D. Dieser wird
Scale Max heißen und er
wird nur eine Mindest- und Maximalgröße bestimmen Und wir werden zwischen
diesen Optionen nach dem
Zufallsprinzip wählen, um das in unseren
Cloud-Instanzen In Ordnung, lassen Sie uns
weitermachen und kompilieren, sodass wir
hier einige Standardwerte für die Instanzen
festlegen können , die erzeugt werden sollen Ich werde das auf 25 setzen, das wird ein ziemlich
guter Startwert sein Kreuzen Sie dieses Kästchen an, zum
Beispiel essbar. Das macht es so, dass wir diese Eigenschaft,
diese Variable, im
Leveleditor Spawn-Ausdehnung
x bearbeiten
können diese Variable, im
Leveleditor Spawn-Ausdehnung . Ich setze das einfach auf, wir sagen gleich
von Anfang an 5.000. Ich werde diese
Instanz auch editierbar machen,
Spawn-Ausdehnung Y, also auch Lass uns das auf, ich weiß nicht,
1.000 setzen und dann Spawn-Ausdehnung z. Wie hoch
soll das in die Luft reichen Wir sagen 2000,
wodurch diese Instanz auch editierbar ist. Skalieren Ich werde diese
Instanz auch editierbar machen. Und wir sagen, der
Maßstab wird
dreimal so groß sein wie
der Flugzeugmaßstab X wird das hier auf das
Zehnfache der Größe
unseres normalen Flugzeugs einstellen . Und wir werden es auch so einstellen
, dass es für die Instanz essbar ist. Beachten Sie, dass all diese
Augäpfel angekreuzt sind,
was bedeutet, dass sie als Instanz
essbar sind, was bedeutet, dass wir sie
im Level-Editor bearbeiten können, was wir gleich tun werden. Lassen Sie uns weitermachen und
zu unserem Konstruktionsskript übergehen. Hier werden wir das gesamte Skript ablegen,
um zu bestimmen, in wie vielen
Wolken wir spawnen wollen, die Größe unseres Spawnbereichs und auch die Größe unserer
Wolken Lassen Sie uns also zunächst
die Größe unseres Spawnbereichs bestimmen. Wir haben also diesen Spawnbereich, ziehen
wir ihn in unser Diagramm Lassen Sie mich einen
hier ein bisschen vergrößern. Wir ziehen
das in die Länge und geben dann int ein.
Lassen Sie
uns jetzt den Umfang der Box festlegen, nur um im Wesentlichen das zu verdeutlichen,
was wir hier tun,
wir haben diese
Spawn-Bereichs-Komponente hinzugefügt Das ist ein Box-Trigger, wir
wollen im Grunde die Ausdehnungen festlegen,
diese X-, Y- und Z-Ausdehnungen,
die standardmäßig auf 32 gesetzt sind Das können wir jetzt tun, indem von hier rückwärts
ziehen und Make Vector eingeben wir
von hier rückwärts
ziehen und Make Vector eingeben, der es
in seine X-,
Y - und Z-Komponenten
aufteilt Y Und wir haben Variablen
, die die X-, Y- und Z-Werte bestimmen werden die X-, Y- und Z-Werte bestimmen Lassen Sie uns
diese
also entsprechend auf
die richtigen Pins ziehen und dort ablegen die richtigen Pins Jetzt sind unsere Spawnbereiche und die Größe der
Boxen hier
nicht 302-30-2302, sondern im Jahr 2000
eher 5.000 mal 1.000 Aber auch hier
werden wir sie im Level-Editor
bearbeiten können ,
sodass wir sie
im Level-Editor ändern können Als Nächstes wollen wir darauf hinarbeiten
, hier Instanzen
unserer Wolken zu erzeugen, also ziehen wir unsere Wolken rein Und wir werden das in die Länge ziehen und eine Instanz hinzufügen
wollen und eine Instanz hinzufügen Nun stellt sich die Frage, wie vielen dieser Instanzen
wir spawnen wollen Und wo
wollen wir diese dann spawnen? Dafür werden
wir eine Viererschleife verwenden,
genau dazwischen klicken, mit der rechten Maustaste klicken
und eine Viererschleife einfügen Eine einfache Viererschleife
reicht aus. Also werden wir
so und so fließen. So
wird das funktionieren. Wir werden hier unseren
ersten Index auf Eins setzen, sodass wir mit der Nummer eins anfangen werden
zu zählen. Und unser letzter Index
wird durch die Anzahl
der Instanzen
bestimmt, die erzeugt werden sollen. Also werden wir
das auf den letzten Index setzen. Das funktioniert also
während der Entwurfszeit hier, wann immer wir das
in unser Level bringen, wird
es
die Größe der Box festlegen und dann werden
wir
diese vier Schleifen treffen. Im Grunde machen
wir das also, den Loop-Körper hier 25 Mal, angefangen bei der Zahl eins, dann gehen wir über 234 bis hin zu
unserem letzten Index, 25. Wir werden hinzufügen
, eine Instanz hinzufügen, eine Instanz
hinzufügen, beginnend
bei der Nummer eins bis zur Zahl 25. Wir führen das
immer wieder aus und wieder und wieder. Also müssen wir das jetzt sagen
, wo wir spawnen wollen? Dafür ziehen wir also von unserer
Instanztransformation nach hinten Wir werden hier make
transform für den Standort
unserer Wolken eingeben hier make
transform für den Standort
unserer Wolken Was wir tun werden
, ist
unseren Spawnbereich so einzufügen unseren Spawnbereich so Dann
ziehen wir das raus und ermitteln die Größe der Box. Dann ziehe ich
davon ab und tippe einen
zufälligen Punkt in das Begrenzungsfeld ein Standardmäßig wird es in unseren eingesteckt, das ist nicht der
Mittelpunkt, den wir hier haben wollen. Wir wollen, dass unsere Box-Größe hier in den
unteren Pin
gesteckt wird, also die halbe Größe für die
Mitte unserer Bounding-Box Wir können
hier einfach von unserem Spawnbereich
wegziehen und get
relative location wie folgt eingeben relative location heißt im Grunde,
wir wollen hier einen Punkt innerhalb unseres Spawn-Bereichs, einen Punkt innerhalb
unseres
Spawnbereichs, einen Punkt dort, wo wir lokal
spawnen sollten,
eine Instanz eine Nun zur Waage, wir haben Ich halte die Taste gedrückt und ziehe sie auf eine maximale Skala. Halten Sie die Taste gedrückt und stellen
fest, dass wir einen
zufälligen Wert zwischen
unserem Mindest- und unserem Maximalwert haben wollen . Und dafür klicke ich
mit der rechten Maustaste auf Float in Range ist das, wonach wir jedes Mal
suchen wir in einer
Instanz unserer Cloud spawnen Wir werden
es auch in einem zufälligen Maßstab spawnen. Hier, ich werde das
einfach hier einstecken. Es wird
unseren Float-Wert
in einen Vektor umwandeln , wenn es
beispielsweise den Wert Vier wählt , weil dieser zwischen dem Minimum und
dem Maximum liegt. Dadurch wird die Skala von vier so eingestellt, dass sie
für die X-,
Y- und Z-Werte, aus denen der Skalenvektor
besteht, einheitlich ist. Das wird unser
letztes Drehbuch hier sein. Lass uns weitermachen und diesen
Spielstand kompilieren, dann gehen wir zu unserem
Level-Editor und bringen einen davon
in unser Level. In Ordnung, wir ziehen unsere
Wolken hier raus. Bevor ich das mache, möchte
ich das eigentlich einstellen. Ich habe derzeit meine beiden
D-Snap-Einstellungen aktiviert. Das bedeutet das Blau da
drüben. Ich lege es in meine
äußerste Rückenschicht, und vielleicht
möchte ich es sogar dort drüben platzieren. Aber ich fange dort an. Also meine extreme hintere Ebene, wenn ich noch einmal darauf klicke, kann
ich zu Ebenen bearbeiten gehen. Ich kann sehen, dass die extreme Hintergrundebene
auf der Y-Achse
auf minus 1.000 gesetzt wird . Also lass uns weitermachen
und das hineinziehen. Und während
ich es verschiebe, können Sie sehen, dass jedes
Mal, wenn Sie an diesem Plan etwas
ändern, das
Konstruktionsskript ausgeführt wird Deshalb sehe ich immer wieder dieses
unterschiedliche Zufallsmuster. Denn jedes Mal, wenn ich
es ein bisschen verschiebe,
wird das Konstruktionsskript erneut ausgeführt. Okay. Und da habe ich es innerhalb meines Levels
platziert, offensichtlich keine gute
Platzierung für den Gecko Sie können sehen, wo
das
Cloud-Instanzen innerhalb dieses
Bounding-Box-Bereichs erzeugt Cloud-Instanzen innerhalb dieses
Bounding-Box-Bereichs Lassen Sie mich
das ein
bisschen zurückziehen , weil ich damit nicht
wirklich zufrieden war Okay, jetzt können Sie sehen, wie
ich, wenn dies
im Detailbereich ausgewählt ist, eine
Reihe von Instanzen angeben kann. Ich kann jede dieser
verschiedenen Eigenschaften ändern. Also setze ich die Anzahl
der Instanzen auf 100, was wahrscheinlich
verrückt sein wird. Ich kann die X-Ausdehnung des Spawns ändern, breiter
machen, also kann ich die Y-Ausdehnung ändern, ein
bisschen höher
machen, also die Z-Ausdehnung, ich kann das
auch ändern und sie
ein bisschen größer machen ein bisschen Entschuldigung, Y macht es, weißt
du, breiter, in unserem Fall macht Z es größer.
Und da hast du's. Sie können das einfach entsprechend positionieren damit Sie einige
Wolken am Himmel haben können. Fummeln Sie damit nach Ihren Wünschen. Aber jetzt haben wir einen
zufälligen Wolkengenerator. In der Tat ziemlich süß. Ordnung
, Leute, das reicht für diesen.
Hier ist das Drehbuch. Nochmals, wenn du das Video hier pausieren willst
, sehen
wir uns im nächsten.
95. Levelstücke: Willkommen. In diesem Video werden
wir hier lernen,
wie man diese
größeren Ziegelsteine erstellt, da sie den Großteil
unseres Levels und
wahrscheinlich viele Level ausmachen . Der Grund, warum ich das hier angeben
werde ist, dass sie so konstruiert
sein
müssen , dass, wenn man eines dieser
Materialien so
drauflegt, Schmutz, es nicht gestreckt aussieht. Und nur um
diesen Punkt zu
verdeutlichen, wenn ich
es so gestalten sollte, wie die Leute es wahrscheinlich denken
, lassen Sie mich
das ein wenig vergrößern. Ich werde hier draußen einen einfachen
statischen Mesh-Würfel platzieren. Und ich werde es einfach
auf eine riesige Größe skalieren . diese Weise denken viele Leute, dass
dies geschaffen werden könnte. Einer dieser riesigen Steine. Ich werde nur
ein schmutziges Material darauf legen. Wir haben unser schmutziges Material
aus unseren Ordnern hier. Jetzt können Sie sehen, dass es hier
sehr gestreckt aussieht. Während es hier nicht gestreckt aussieht, sieht
es gefliest aus. Also das
werden wir in diesem Video lernen ,
wie man es kreiert. Wie man ein größeres
Blockstück wie dieses macht, über dem sich kein
gedehntes Material befindet. Dies
wird im Wesentlichen dazu führen, dass
wir unsere eigenen statischen Netze erstellen Wir werden also
in unserer Arbeitsversion
des Kurses zeigen, wie
das geht in unserer Arbeitsversion
des Kurses zeigen, wie
das Bei meinem
Work-in-Progress-Level können
Sie also sehen, dass ich
diese riesige Plattform hier in meinem Viewport
ausgewählt habe.
Drüben im Outliner Bei diesem Bodenstück handelt es sich
um einen statischen Netzschauspieler. Wenn ich also unseren
Schmutz auf dieses Schmutzmaterial auftragen würde, würde
es
sehr gestreckt aussehen. Und wieder einmal, das ist
nicht das, was wir wollen. Ich werde
das löschen, tschüss. Und das werden wir durch
einen Geometriepinsel hier oben im Schauspielerpanel
des Ortes
ersetzen . Und falls Sie das Panel mit den
Schauspielern des Ortes nicht sehen , klicken Sie hier. Platzieren Sie das Schauspielerpanel. Wir werden zu
Geometriepinseln übergehen. Wir werden einen Kastenpinsel hinzufügen. Ich werde das
einfach reinziehen. Lassen Sie mich das hier auf
meiner Hauptebene machen, und ich werde
vorerst nicht
zu genau angeben, wo das platziert wird. Dann drüben im Detailbereich, anstatt dies
mit meinem
Skalierungswerkzeug wie diesem zu skalieren, werde
ich stattdessen
die Pinselgröße
im Detailbereich einstellen . Wie lange möchte ich das machen? Nun, ich schätze, ich werde
den X-Wert auf
etwa 20.000 setzen den X-Wert auf , etwas
sehr langes wie das, Y. Ich setze
das auf etwa 2000. Das Z, ich werde es
auf etwas wie,
ich weiß nicht, 5.000
oder 500 setzen ich weiß nicht, 5.000 . Lass uns gehen.
So etwas in der Art. Noch einmal, ich werde
das hier ein
bisschen herunterschrauben,
versuchen, unsere Spielbasis
so zu gestalten, wie wir sie vorher hatten Ich werde das
noch ein bisschen verfeinern. Okay, was
ich jetzt tun muss, ist diesen Box-Pinsel,
den man als Brush Actor bezeichnet,
in ein statisches Mesh umzuwandeln als Brush Actor bezeichnet,
in ein . Die Art und Weise, wie das gemacht
werden kann, befindet sich den erweiterten Pinseleinstellungen.
Wir haben die Möglichkeit, daraus ein statisches Mesh zu machen. Auch das war die Verbesserung der
Pinseleinstellungen, um ein statisches Mesh zu erstellen. Also werde ich
das tun. Dabei wird
es mich fragen, in
welchem Ordner ich das sagen
möchte. Lass mich also in meinen
Platformer-Ordner gehen. Ich werde mit der rechten Maustaste darauf klicken und einen neuen Ordner
erstellen Und ich werde dieses
Level einfach Pieces Level Underscore nennen. Ich nenne es Level
Underscore Meshes. Und ich nenne das einfach
meinen Beitrag Underscore One. Das wird
gut genug für
mich sein, um das statische Netz zu erstellen Jetzt wird
daraus ein statischer Mesh-Akteur. Nun, wenn ich
mein Material darauf auftragen würde, lass uns weitermachen und
nach Schmutz suchen. Es wird es auf eine
geflieste, gut aussehende Weise darauf auftragen . wird es derzeit
ein weiteres Problem geben Damit wird es derzeit
ein weiteres Problem geben, nämlich das zu demonstrieren. Ich werde
das nur ein
bisschen nach unten verschieben , um sicherzustellen, dass
ich meinen
Startdarsteller habe Startdarsteller ,
der ungefähr das richtige Level hat. Okay. Meine Spieler
fangen an, Schauspieler zu werden, okay? Und das Problem wird sein
, dass das Hineinspringen und Spielen darin
besteht, dass mein Charakter durch
die ganze Welt fällt. Und der Grund dafür
ist, dass, wenn wir einmal ein statisches Netz
aus einem Kastenpinsel
erstellt haben, es nicht zu
Kollisionen kommt. Um das zu beheben,
gehe ich zu der Stelle, an der sich dieses statische Mesh jetzt
in meinem Inhaltsbrowser befindet Und das kann ich machen,
wenn es ausgewählt ist. hier auf diesen
Ordner klicke, wird mir angezeigt, wo in meinem Inhaltsbrowser
existiert. Ich werde
darauf doppelklicken, um ihn zu öffnen. Aber bevor ich das mache, stelle ich fest, dass
in diesem Tooltip in Orange Kollision Primsero steht , was bedeutet, dass darauf
keine Kollision angewendet wurde Wir werden eine Kollision manuell
anwenden. Ich werde
darauf doppelklicken, um es zu öffnen. Und wenn wir
hier unter dem
Kollisionsbereich wieder hineinzoomen , können
wir verschiedene
Kollisionsarten hinzufügen Da es sich um
eine einfache Kastenform handelt, muss ich bei
Kollision
nur noch eine einfache
Box-Kollision hinzufügen Dabei
werde ich es hinzufügen. Sie werden jetzt diesen grünen Umriss
sehen dieses Netz
umgibt. Darauf wird jetzt die Kollision
angewendet. Das ist der
grüne Umriss. Nun noch etwas, das ich hier
beachten sollte, ist, mit diesem statischen Netz, das jetzt zu meinem Inhaltsbrowser
hinzugefügt wurde, ich
mit diesem statischen Netz, das jetzt zu meinem Inhaltsbrowser
hinzugefügt wurde, eine zweite
Version davon hinzufügen könnte. Lassen Sie mich einfach weitermachen
und einen hier platzieren. Beachten Sie nun, dass auf diese
Version mein Material nicht automatisch angewendet wird. Und vielleicht möchte ich das an anderen Stellen
in meinem Level wiederverwenden . Also, was ich hier tun kann, ist zurück
in meinem statischen Mesh-Editor
, den ich geöffnet habe.
Genau hier ist ein Slot in einem Standardmaterial
im Detailbereich. Und das können Sie tun,
indem Sie genau
hier klicken , einfach auf Dirt klicken. Wenn ich dieses Asset jetzt speichere, wird
es als Standardmaterial
für dieses statische Netz gespeichert. Außerdem wurde eine
Kollision darauf angewendet. Es zeigt
nur, dass, wenn ich
eine zweite Version
davon einbringe , das Material automatisch darauf angewendet wird. Und wenn ich jetzt reinspringe und spiele, mein Charakter kollidiert
mein Charakter wie immer mit dem
Boden Auf diese Weise können Sie also einige maßgeschneiderte,
statische Bodenelemente aus Netzmaterial
erstellen statische Bodenelemente aus Netzmaterial
erstellen Damit ist alles für diesen erledigt. Wir sehen uns im nächsten.
96. Level-Requisiten und Kameratuning: Ordnung. Also,
obwohl wir paar riesige Maschen
haben, auf denen sich ein
paar riesige Maschen
haben, auf denen sich gut aussehendes
Material befindet, sieht
es hier draußen immer noch
ziemlich langweilig Lassen Sie uns also weitermachen und Level hier
mit etwas Laub
bevölkern, und ich werde Ihnen eine wirklich
schnelle und einfache Methode
zeigen, wie Sie schnelle und einfache Methode Und dann können Sie
dieses Konzept nehmen und von dort aus
weitermachen Aber um hier anzufangen, gehe
ich zum Epic Games Launcher
und zeige dir
hier
ein nettes Paket, das du deinem Projekt hinzufügen
kannst und das helfen kann,
das Aussehen schnell und einfach zu verbessern. Also hier im Epic
Games Launcher habe
ich Unreal
Engine auf
der linken Seite
im Marketplace ausgewählt der linken Seite
im Marketplace Wenn Sie nach dem
Advanced Village-Paket suchen, ist
dies das Paket,
das ich zu meinem Unreal Engine-Projekt
hinzufügen werde zu meinem Unreal Engine-Projekt
hinzufügen Jetzt werden
die aktuell unterstützten
Engine-Versionen angezeigt die aktuell unterstützten
Engine-Versionen Beachten Sie, dass Sie diese trotzdem hinzufügen
können,
wenn Ihre
Engine-Version hier nicht unterstützt wird. Gehen wir hier zu Zum
Projekt hinzufügen. Wenn du dein Projekt nicht siehst, kannst
du
hier auf
dieses kleine Kästchen klicken , um alle
vorhandenen Projekte anzuzeigen. Und dann musst du nach
unten scrollen und
das Projekt finden , das du hinzufügen möchtest Dieses Inhaltspaket zwei für mich, das wird
diese Plattform eins sein Jetzt heißt es, hey, Assets sind
mit dieser Version nicht kompatibel, also wähle einfach die
neueste Version aus. Das sollten Sie
tun, wenn sich herausstellt,
dass das Asset Pack
nicht mit
Ihrer neuesten Version kompatibel ist nicht mit
Ihrer neuesten Version kompatibel Sie können es trotzdem hinzufügen. Wählen Sie einfach die neueste Version aus. Für mich wird es 5.3 sein und dann werde ich auf Zum Projekt hinzufügen
klicken. Wenn Sie das tun, werden
Sie diesen
kleinen Fortschrittsbalken sehen da all dieser Inhalt zu Ihrem Projekt
hinzugefügt wird. Also werde ich das Video
hier pausieren und wenn
wir fertig sind, zeige
ich Ihnen, wo sich dieser Inhalt jetzt in Ihrem
Inhaltsbrowser befindet. Okay, das Inhaltspaket
ist also fertig installiert. Und hier in meinem Inhaltsbrowser kann
ich sehen, dass ich
diesen neuen Ordner namens
Advance Village Pack habe . Und was ich hier
tun werde, ist, nach statischen Meshes zu sortieren Wenn Sie hier also keinen statischen
Netzfilter haben , können
Sie ihn umschalten oder ihn
verfügbar machen, indem Sie
direkt hier für statische Meshes klicken , weil ich diese Requisiten
finden möchte Also werde ich diesen Filter
einschalten. Und jetzt kannst du
all diese verschiedenen,
diese Requisiten sehen , die du in deinem Level
platzieren kannst Jetzt möchte ich hier ein paar
Grashalme quasi auf
meiner Oberfläche platzieren Grashalme quasi auf
meiner Oberfläche Die Art und Weise, wie ich das tun kann,
ist, in dieser
Suchleiste genau hier auszuwählen Ich werde nach Gras
suchen
, um
einige Grasflächen zu finden. Ich mag diesen Grasfleck v One. Und dann werde ich hier
den Editor-Modus vom
Auswahlmodus ganz
oben links in den Laubmodus ändern . Shift plus drei
Hotkeys, um dich hierher zu bringen. Okay, im Laubmodus können
Sie beliebige statische
Netze schnell und einfach platzieren Es muss nicht nur Gras oder Bäume oder Felsen
oder ähnliches sein Also genau hier heißt es
, Laub fallen lassen. Im Grunde können Sie jedes
statische Netz in diesen Bereich legen. Ich lasse
diesen Linksklick fallen und ziehen. Wir werden es
gleich hier drin ablegen. Also, was ich gerne mache,
ist,
diese Ansicht von der Miniaturansicht zur
Listenansicht zu ändern diese Ansicht von der Miniaturansicht zur
Listenansicht zu Wir könnten hier auch ein
paar andere spielen. Lassen Sie mich tatsächlich suchen und
sehen, ob es
Bäume in diesem Rudel gibt. Ich möchte etwas, das relativ gut
aussieht. Ich schätze, wir nehmen vielleicht einen
dieser Bäume genau hier. Gibt es eine
Pinie? Mal sehen, ob es bei Kiefern eine
Kiefernart gibt. Jetzt nehmen wir einfach
den normalen Baum, okay? Dieser Typ wird das prima
per Drag-and-Drop hier reinziehen. Das funktioniert mit allem, was
hier in Ihrer Laubliste angekreuzt ist . Solange du
dein Malwerkzeug ausgewählt hast, kannst
du mit der linken Maustaste klicken und
Instanzen zu deinem Level hinzufügen. Offensichtlich sieht das furchtbar aus, wenn ich
das mache , was ich gerade getan habe. Das ist viel zu dicht. Das gefällt mir nicht. Ich könnte
Strg Z verwenden, um das rückgängig zu machen,
aber ich werde stattdessen Umschalttaste
gedrückt halten,
wenn Sie linken Maustaste klicken, und
ich werde zu
diesem Löschwerkzeug wechseln ich werde zu und
es löscht alles, was
ich hier ausgewählt habe also die Umschalttaste gedrückt halten, können
Sie sehen, dass mein
Löschwerkzeug jetzt ausgewählt ist Jetzt klicke ich mit der linken Maustaste und
werde das Laub löschen. Jetzt hast du wieder gesehen, dass es
viel zu dicht war und ich möchte nicht gleichzeitig Bäume
und Gras hinzufügen, also werde ich
einfach Gras anmachen. Und jetzt kann
ich mein Gras auswählen. Und indem ich unten
mein Gras auswähle, kann
ich alle Arten von
Eigenschaften festlegen wie dieses Gras in meinem Level erscheinen
soll, einschließlich seiner Dichte. Lassen Sie mich diese Dichte
einfach genau hier festlegen. Ich werde zu so
etwas wie einem Punkt übergehen. Lassen Sie mich es eigentlich
einfach auf eins setzen. Im Moment war es auf 100 gesetzt, also wenn ich jetzt mit der linken Maustaste klicken würde, kannst
du sehen, wie spärlich
das sein wird Das ist zu dicht.
Also versuchen wir es nochmal bei 100. Und versuchen Sie es erneut, klicken Sie mit der linken Maustaste, damit Sie sehen können, wie
dicht es dort ist. Ich glaube, ich werde
das auf 200 einstellen. Jetzt kann ich hier auch alle
möglichen
anderen Eigenschaften einstellen ,
einschließlich einer Skala. Dies ist eine weitere gängige Methode, mit der
Sie vielleicht herumspielen möchten. Wenn ich jetzt mit der linken
Maustaste klicken würde, hätten
alle Exemplare
meines Grases exakt
die gleiche Höhe, was Sie vielleicht wollen,
vielleicht auch nicht Ich möchte hier ein
bisschen Abwechslung haben. Also werde ich einfach die Taste Z drücken
, um das rückgängig zu machen. Und ich stelle meine Mint-Skala auf 0,5 und meine Mac-Skala auf zwei ein. Ich habe also ein
bisschen Abwechslung
bei den Grasflächen und jetzt
können Sie sehen, was das bewirkt. In Ordnung, einige andere Dinge, die
Sie vielleicht hier anpassen möchten. Mit
zufälligem Neigungswinkel nach unten scrollen. Dieser
zeigt sich wirklich bei Bäumen. Lassen Sie mich sogar einen Baum einschalten. Jetzt habe ich gerade
meine Bäume ausgewählt. Wenn diese Option ausgewählt ist, kann ich die Eigenschaften
meiner Bäume
ändern. Lassen Sie mich einfach meine
Dichte auf etwa eins reduzieren. Der zufällige
Neigungswinkel ist der zufällige Winkel
, in dem der Baum wächst. Im Moment wächst er
gerade nach oben. Kontrolliere Z. Wenn ich einen zufälligen Neigungswinkel
von sagen wir bis zu 20 Grad auswähle
, dann
können meine Bäume leicht geneigt werden Es wird nach dem Zufallsprinzip ausgewählt, also klicke ich einfach herum, damit Sie sehen können, dass der eine
ziemlich gerade nach oben ist, der andere zur Seite geneigt ist usw. Es gibt dir nur ein
bisschen Abwechslung. Okay, also ich fange mit
Gras
an und lasse mein
Gras hier auswählen. Meine Eigenschaften in Bezug auf
mein Gras, die ich anpassen kann. Ich mache weiter und klicke
und ziehe mit der linken Maustaste. Jetzt könnte ich so vorgehen, um mein ganzes Level mit Gras zu bemalen. Allerdings könnte ich
hier auch meine Pinselgröße
erhöhen , um
einen größeren Blasenpinsel zu haben, mit dem ich überall in meinem Level
malen kann. Also lass mich das einfach schnell machen. Ich halte nur die linke Maustaste
gedrückt. Nun, das ist vielleicht das, was
Sie wollen, vielleicht auch nicht, aber ich
hätte gerne ein bisschen Gras oder besser gesagt Dreck diesem Hauptweg,
damit ich meinen linearen Reiseweg leichter erkennen kann. Also werde ich meine Pinselgröße auf
etwa 300
einstellen . Und wenn ich jetzt, sagen wir, in diese Ansicht
gehen und bei einem Linksklick die Umschalttaste
gedrückt halten würde, könnte
ich etwas Laub
entlang meines Hauptreiseweges löschen. Sie können sich also vorstellen, wie
Sie das
bis zum Ende
des Pfades so ausdehnen könnten . Einfach so die Shift-Taste gedrückt halten. Okay, sagen wir einfach, ich möchte ein paar
Bäume zu meinem Level hinzufügen. Jetzt könnte ich mit dem
Seifenblasenpinsel ein paar Bäume hinzufügen. Ich werde
jedoch meinen Baum auswählen, sodass ich nur Bäume haben möchte. Du wirst mein Gras
abwählen. Ich werde hier auch
die Skala ändern, sodass sie 0,2 und 0,8 liegt, etwas
Abwechslung Ich werde einen zufälligen
Neigungswinkel von bis zu 20 Grad haben. Jetzt könnte ich wieder mit der Seifenblase bürsten und ein
Vielfaches davon hinzufügen Sie können jedoch auch diesen Einzelmodus
verwenden. Wenn Sie diesen Einzelmodus wählen, befinden
Sie sich im Einzelinstanzmodus. Jetzt hast du diesen winzigen,
winzigen Seifenblasenpinsel genau da. Wo auch immer du
klickst, du wirst einen Baum spawnen. Das ist eine sehr schnelle und
einfache Möglichkeit,
dein Level mit etwas
Laub oder einem anderen Netz zu füllen dein Level mit etwas
Laub oder einem anderen Es müssen keine Bäume sein, es muss
kein Gras sein Es gibt also eine schnelle
Technik,
wie du dein Level dekorieren kannst. Jetzt findest du vielleicht Fälle
wie diesen, in denen du kein Gras in meinem Block haben
willst. Der Grund, warum es auf
diesen Block angewendet wurde, ist, dass ich
genau hier meine verschiedenen Filter
habe , um herauszufinden, was als gültiger Tar angesehen wird. Statische
Netze auf Pon zu platzieren ist eines davon. Wenn ich das hier
aus meinem statischen Netz löschen möchte, muss
ich mein Gras auswählen In diesem Fall verlasse ich den
Einzelinstanzmodus. Und jetzt, wenn ich nur die Umschalttaste gedrückt halte
, kann
ich mit der linken Maustaste klicken und das habe
ich gelöscht Wenn ich jetzt nicht möchte, dass es auch nur über dieses statische Netz geht
, würde
ich einfach das Häkchen bei statischem Netz entfernen, um das zu
verbieten Dieser Boden wird derzeit als
statisches Netzelement betrachtet, aber auf diese Weise können Sie
bestimmen, was zulässig ist , um
Landschaftsakteure
zu übermalen, worüber wir in diesem Kurs noch nicht
gesprochen haben Statische Netze? Ja.
Sogar anderes Laub. Ordnung, es
gibt also eine kurze Einführung , wie du deinem Level ein paar Blätter
oder Requisiten
hinzufügen kannst deinem Level ein paar Blätter
oder Requisiten
hinzufügen Ich möchte das
Laubwerkzeug verwenden, um schnell und einfach
Meshes jeglicher Art hinzuzufügen Es muss kein Gras sein,
es müssen keine Bäume sein. Es könnten Zäune, Häuser,
Kisten, Fässer, was auch immer sein. Ich möchte diesem Video einen kurzen
Nachtrag hinzufügen. Denn nachdem wir diese Levelteile hier
drin
haben und du dein Level gespielt hast, hast du vielleicht etwas,
das jetzt so aussieht Wo deine Kamera vielleicht weit unten
steht. Du willst
dein Level nicht noch einmal verlassen,
hier kannst du zu
deinem Charakter aus der dritten Person zurückkehren und die Kamera anpassen. Wenn du dich an einen
früheren Kurs erinnerst, haben
wir tatsächlich die
Möglichkeit, einige temporäre Kameraeinstellungen
direkt hier in unserem Level vorzunehmen. Ich möchte nur auf ein paar Dinge
hinweisen. Ich spiele gerade
im ausgewählten Viewport, während ich im
ausgewählten Viewport spiele, kann
ich unter meinen
Outliner gehen und meinen Spawn in
der Third-Person-Figur wählen Da diese Option in
der Kategorie „Allgemein“ ausgewählt ist, haben
wir
diese Variablen von
früher Um die Kamera
in Echtzeit einzustellen, gehe
ich vor und
aktiviere das, dann werden
all diese Einstellungen aktiviert. Jetzt kann ich also versuchen,
meinen Kameraversatz so anzupassen ,
dass ich das will. Vielleicht ist so etwas wie 300
in der Z das, was du willst. Vielleicht 400. Ich werde es einfach weiter
nach oben verschieben. Ich mag 400. Sobald ich hier raus bin, werde
ich auf Flucht klicken. Das ist nur eine vorübergehende
Einstellung, die ich genau dort hatte. Nochmals, das alles basiert auf diesem Drehbuch in meinem Charakter aus der
dritten Person. Wir haben den
Z-Offset unserer Kamera angepasst , als dieser Wert auf „true“ eingestellt
war. Wenn ich wieder reingehen und spielen würde, würde
es auf die alten Kameraeinstellungen
zurückgesetzt Wie gehen wir mit
dieser Kameraeinstellung um? Nun, nochmal, ich mag die Z 400. Das wirkt sich auf meine Kamera aus. Bum. Wenn ich also
meine Kamera-Boom-Komponente insektieren will, lass mich einfach zu meinem
Viewport gehen und zeigen, wo sich meine Kamera-Boom-Komponente
befindet. Es ist diese rote Linie Ordnung, wenn ich
meine Kamerabomponente
an der Z-Position auf 400 einstellen In Ordnung, wenn ich
meine Kamerabomponente
an der Z-Position auf 400 einstellen würde, würde
es
das so einrichten, wie ich
es
gespeichert habe , und wenn
ich jetzt wieder ins Spiel springe, wird diese Änderung beibehalten. So soll
das also funktionieren. Ich wollte nur diesen
Nachtrag hier zu diesem Video hinzufügen. Bitte haben Sie ein schönes Sichtfeld beim Spielen Wasser.
Sehen Sie im nächsten.
97. Hauptmenüebene: Willkommen. Im Laufe
der nächsten Videos werden
wir dieses Hauptmenü für unser Spiel erstellen, Hauptmenü für unser Spiel das über eine
einzige Schaltfläche verfügt. Wenn wir
darauf klicken, wird das Level einfach wieder hier
gestartet. In unserer Arbeitsversion
des Projekts werden
wir damit beginnen, ein brandneues Level zu
erstellen. Wir werden tatsächlich in diesem brandneuen Level
beginnen . Und in diesem brandneuen Level werden
wir ein Widget
generieren, unser
Hauptmenü entwerfen Und dann von diesem Hauptmenü aus, indem Sie auf die Schaltfläche „Los
geht's“ Wir werden von
unserer Hauptmenüebene
zu dieser Ebene übergehen . Lassen Sie uns also weitermachen und
dieses brandneue Level erstellen. Wird ganz oben
unter Datei angezeigt. neue Levelsteuerung ist der Hotkey zum
Erstellen eines neuen Levels. Sie werden diesen
kleinen neuen Levelwähler aufrufen Wir werden
ein leeres Level erstellen,
also fahren Sie fort, wählen Sie es aus und klicken Sie dann auf Erstellen Wir befinden uns in unserer
neuen leeren Ebene, sie hat derzeit keinen Titel. Lass uns weitermachen und das speichern. Wir können
hier klicken, um es zu speichern. Es zeigt uns, wo wir das speichern
möchten. Gehen wir zu unserem Ordner mit den
Plattformebenen. Und ich nenne das einfach
LV Underscore Main Menu. Und dann lass uns weitermachen
und das sofort speichern. Jetzt haben wir also unsere
Hauptmenüebene. Die einzige andere Sache, die ich in
diesem Video erreichen
möchte , ist, unter unseren Einstellungen
zu erscheinen. Gehen wir zu unseren
Projekteinstellungen und hier drin, lassen Sie mich das einfach oben andocken
, ich komme zu Maps und Modi und genau hier für
unsere Editor-Startmap werden
wir das von Stufe
eins auf unsere Hauptmenüebene
ändern eins auf unsere Hauptmenüebene Lassen Sie mich dort einfach main eingeben. Das bedeutet, wenn wir Unreal
das nächste Mal öffnen, öffnet
es sich automatisch auf
dieser Ebene des Hauptmenüs Also fügen wir hier ein
wenig Reibung hinzu und
springen in unser Spiel, indem in unserer
Hauptmenüebene
beginnen Und
von dort aus werden wir wieder zu unserer LV-Version
übergehen Okay, das ist alles, was ich mit diesem
erreichen möchte. Sie müssen
hier in Ihren Projekteinstellungen nichts speichern . Es wird sich nur daran
erinnern, wenn Sie den Editor das
nächste Mal
öffnen. Das wird es für diesen machen. Sieh dir an, wie du den nächsten gewinnst.
98. Hauptmenü-Layout: Ordnung, jetzt, wo wir
unsere Hauptmenüebene in dieser Version haben , ist es
unser Ziel, einen
Widget-Blueprint zu erstellen, der als Benutzeroberfläche
für das Hauptmenü unseres Spiels
dienen soll , also
im Grunde unser
Hauptmenü-Layout im Grunde unser
Hauptmenü-Layout Bevor wir uns wirklich
damit befassen, stellen Sie sicher, dass Sie
all die Schriften von
früher im Kurs importiert haben , die alle importiert werden
sollten, weil wir
sie verwenden werden Stellen Sie außerdem sicher, dass
Sie
alle Texturen importiert haben ,
die zu diesem Kurs gehören da wir einige davon
verwenden werden. In Ordnung, damit
gehen wir in unseren U-I-Ordner. Wir klicken mit der rechten Maustaste
in eine leere Stelle. Wir wählen
Benutzeroberflächen-Widget, Blueprint. Und wir werden
dieses Benutzer-Widget hier als
übergeordnete Klasse ganz
oben auswählen dieses Benutzer-Widget hier als übergeordnete Klasse ganz
oben Lass uns weitermachen und uns einen Namen
geben. Ich nenne das BP
Underscore Main Menu. Und wenn das ausgewählt ist, können
wir einfach auf die
Leertaste tippen, um es zu öffnen Okay, auf der
linken Seite haben wir verschiedene Widgets, die wir
hinzufügen können, um unser Hauptmenü zu bilden Das ist der
Designer-Bereich, genau hier. Hier unten wird die Hierarchie
gezeigt, die Beziehung mehrerer
Widgets zueinander. Und dann können
wir
im Detailbereich verschiedene
Eigenschaften für
jedes der Widgets festlegen , die wir hinzufügen. Die Widgets, mit denen ich hier
beginnen möchte , sind ein Canvas-Panel. Also werde ich einfach das Canvas-Panel
eingeben, ich werde es hineinziehen. Das wird im Grunde als eine Art Korkbrett
dienen, wenn Sie so wollen, das
Heftbrett, an das
wir andere Widgets anheften Das ist also der
erste. Das zweite wird ein Bild sein. Also werde ich das einfach hier
reinschreiben, damit
du es
hier unten in der Hierarchie sehen kannst Es ist an
unserer Leinwand befestigt. Ich werde dieses Bild
sofort
umbenennen , damit ich
mit meinem nächsten Bild nicht verwirrt werde. Wenn ich also die beiden
auswähle, wird dies der Hintergrund mit dem
Unterstrich des Bilds sein und ich werde die
Details für diese hinterher festlegen Aber der nächste, den
ich hinzufügen werde, wird ebenfalls an mein Canvas-Panel
angehängt Ziehen wir einfach
ein anderes Bild wie folgt hinein und
benennen es um, indem wir F zwei darauf
drücken Das wird mein Bild sein,
unterstreiche den Titel. Übrigens, wenn Sie eines
dieser Widgets ausgewählt
haben, können Sie es umbenennen, indem F zwei oder im
Detailbereich ganz oben drücken Sie können es dort auch umbenennen. Als Nächstes werde ich hier
ein Button-Widget einfügen. Mein Button wird
irgendwo in dieser Gegend erscheinen. Also lass es uns einfach dorthin ziehen und dort
ablegen. Ich benenne diese Schaltfläche um und
unterstreiche Play. Und dann
ziehe ich etwas Text auf meine Schaltfläche Ich könnte es also direkt
hier oben auf meine Schaltfläche „
Abspielen“ in der Hierarchie ziehen
,
oder ich könnte es direkt
über die Schaltfläche hier legen hier oben auf meine Schaltfläche „
Abspielen“ in der Hierarchie ziehen
, oder ich könnte es direkt
über die Schaltfläche hier In der Designer-Ansicht zeigt dieser Einzug
die Beziehung zwischen dem
Hinzufügen
und ich werde diesen
Unterstrich einfach umbenennen Ordnung,
lassen Sie uns als Nächstes die Details
für jedes dieser Elemente
festlegen Zuerst wähle ich
meinen
aktuellen Bildhintergrund genau dort
im Detailbereich aus. Ich werde den Anker
dafür setzen, im Vollbildmodus zu arbeiten. Das wird
meinen Ankerpunkt rundum
so setzen . Damit das wirklich im Vollbildmodus angezeigt wird, muss
ich
meine Offsets hier rückgängig machen Lassen Sie mich einfach auf
diese Zurück-Schaltflächen klicken, genau
rechts, genau
dort und genau dort Wir haben diesen Offset
hier immer noch auf 100 gesetzt. Lass uns weitermachen und das auf Null
setzen. Im unteren Bereich des Offsets wird
es ebenfalls Null sein. Unser Hauptdarsteller
wird dieser im Vollbildmodus sein. Und dann
werden unsere Offsets
auf der ganzen Linie Null sein , und das macht es
wirklich im Vollbildmodus Jetzt möchte ich hier tatsächlich
wieder ein Bild platzieren, also suche
ich im
Bereich Aussehungspinsel unter Bild nach dem
Hauptmenü und ich habe diese Textur, die wir in den Hintergrund
stellen können . Das
ist ziemlich nett Als nächstes unser Bildtitel, derzeit dieses weiße Feld. Lassen Sie uns weitermachen und
den Anker dafür setzen, dass
dies der obere rechte Teil ist, der versuchen wird diesen Titel in der oberen
rechten Ecke unseres Wiedergabefensters zu
belassen. Sollten wir versuchen, die Größe unseres Spielfensters für
die Position x zu ändern, setze
ich den Wert auf
minus 700, die Position Y. Ich setze den Wert
auf Null Und du kannst sehen, wie sich
das bewegt. Wenn ich diese Größe aktualisiere, werde
ich sie auf 700 und die Größe
auf 400 einstellen. Warum habe ich genau
diese Größe gewählt? Nun, das liegt daran, dass mein
Pinselbild genau hier ist, ich werde mich dafür entscheiden, mein Super Mario-Text zu
sein. Das hier. Und das passt einfach gut dazu. Beachten Sie noch einmal, dass
diese Positionen relativ
zum Ankerpunkt sind, weil die Ankerpunkte
hier oben rechts, diese Position x, das ist
relativ zu diesem Ankerpunkt. Ordnung, als Nächstes
wählen wir unseren Button, spielen und einige
Parameter dazu einstellen. Ich werde es mit
einem Anker versuchen, der sich
genau hier neben dem Anker auf der
rechten Seite befindet. Ich werde es mit dieser Kiste
hier versuchen, irgendwie so, oder? Feld für die Position x. Ich
werde minus 115 wählen. Ich habe all
diese Werte im Voraus bestimmt, die Position y. Ich werde
sie auf 256 setzen. Ich werde das auf 450 setzen, die Größe Y. Ich werde
das auf 130 setzen. Jetzt sieht es so aus, als
würde es
hier
vom Bildschirmrand überlaufen . Aber sieh dir das an. Ich werde
die Ausrichtung
dafür so einstellen , dass sie eins in X eins in y ist. Auch hier gilt: Wenn Sie jeweils
0,5 eingeben
, wird
der Unterschied relativ zu
Ihrem Ankerpunkt und
Ihren Offsets aufgeteilt Unterschied relativ zu Ihrem Ankerpunkt und
Ihren Offsets Wenn Sie dies auf 1,1 setzen, wird es für diese Positionierung auf die
Extreme gesetzt In Ordnung, für den Stil, unter den
ich fallen werde. Eigentlich kommen wir gleich
wieder auf den Stil zurück. Lass uns das machen. Farb-Endopazität, Aussehen,
Farb-EndopazitätIch bin. Stellen Sie dafür die Hintergrundfarbe und die
Hintergrundfarbe ein.
Ich werde einen Rotwert
von 0,2, einen Wert von Null,
einen B-Wert von Null
und den Wert festlegen , der der Alphawert von Eins ist Also ja, ich werde das
mit meinem Farbschema beibehalten. Für den Stil des Aussehens. Wir können jetzt den Stil
dieser Schaltfläche für verschiedene Status festlegen . Der normale Zustand, der
Hover-Status , wenn Sie den
Mauszeiger darüber bewegen Der Pressestatus, wenn Sie
darauf klicken, solche Dinge. Fangen wir also
mit unserem normalen Stil an. Wie
wird dieser Button normal aussehen? Nun, ich möchte
als abgerundetes Feld zeichnen. Das wird
alles schön und gut sein. Die Gliederungseinstellungen, die ich
dafür festlegen möchte, werden durchweg 444,4 sein. Allerdings
wird meine Breite hier auf sieben gesetzt,
dann auf den Rundungstyp, und hier wird es
wirklich stilisiert Ich werde den Radius auf
halber Höhe einstellen, das gibt
ihm
genau dort dieses abgerundete Aussehen , was mir gefällt So
wird der Button normalerweise aussehen. Stellen wir nun ein, wie
es aussehen soll, wenn
der Mauszeiger darüber bewegt wird wenn
der Mauszeiger darüber bewegt komme wieder zu
den Gliederungseinstellungen denn wenn wir
diese Kontureinstellungen nicht entsprechend ändern ,
denn wenn wir
diese Kontureinstellungen nicht entsprechend ändern, wird es
passieren, dass es anfänglich so
aussieht , aber dann wird es wieder zu seinem kastenförmigen Aussehen zurückkehren, wenn
wir mit
der Maus darüber
fahren , was wir nicht wollen, die Breite hier wird auf sieben gesetzt. Auch hier wird der
Rundungstyp auf Halbhöhenradius, den Umriss,
gesetzt Ich werde jedoch eine gelbliche Farbe wählen,
also nehmen wir Gelb,
etwas Ähnliches Ich stelle es auf
halbtransparent ein. Vielleicht ein Wert von 0,5 für die. Lass uns auf „Okay“ klicken.
Da hat der Händler die Wahl, was Sie das
einstellen möchten, wenn Sie
mit der Maus darüber fahren Ordnung, und dann
für unseren Pressestatus, das ist,
wenn wir darauf klicken, kommen wir wieder zu den
Gliederungseinstellungen Ich setze die Breite auf sieben. Der Rundungstyp wird der Radius
auf halber Höhe sein,
der Umriss, ich schätze, ich werde es bei dieser
Art von weißlicher Farbe
belassen Das wird in Ordnung sein.
Und, weißt du, nur um
das ein bisschen zu unterscheiden, ich schätze, ich werde meine Breite hier
auf zehn einstellen , um sie nur ein
bisschen dicker zu machen. Und dann haben
wir hier unten diesen Sound gedrückt und wir haben diesen Hover-Sound Schön, dass sie
diese Felder hier haben. So können wir automatisch
einige Soundeffekte einblenden , sowohl wenn
wir den Mauszeiger über diese Taste bewegen, als auch wenn wir auf diese Taste
drücken Lassen Sie uns also zuerst den Hover machen. Ich stelle das auf
Grab, V, R, Grab ein. Und für den Ton
drücken, wenn wir darauf klicken, werde
ich
das als meine Münze einstellen. Sound In Ordnung, als Nächstes stellen
wir unseren Text ein. Lassen Sie uns hier den
Textstil ändern. Zuallererst
werden wir uns dem Abschnitt „Polsterung“ befassen diesen etwas
erweitern Und ich werde
die Polsterung dafür festlegen. Weißt du
was, ich werde hier noch ein
bisschen auf
die Polsterung zurückkommen hier noch ein
bisschen auf
die Polsterung Lassen Sie uns zuerst den Schriftstil festlegen. Aber
bevor wir das tun, lassen Sie uns weitermachen und den eigentlichen Text
festlegen. Und ich ändere das in ein Ausrufezeichen. Lassen Sie uns die
Stelle loswerden, an der genau dort
Textblock steht .
Lösch das raus. Gehen wir zur Schriftfamilie. Ich werde das
als meine Super Mario-Schrift festlegen. Ich stelle es auf die Wahl
meines Super Mario- oder 256-Schriftartenhändlers was Sie dafür einstellen
möchten. Die Größe hier, lassen Sie uns die Größe
erhöhen. Ich gehe zu, versuchen wir es mit
45, so etwas. Und die Umrissgröße. Lassen Sie uns unsere Umrissgröße ändern. Deshalb skizzieren wir unseren
Text hier ein wenig. Ich ändere das auf sechs. Damit können Sie genau dort eine Konturfarbe
festlegen. Ich lasse es bei Schwarz. Das sieht nicht sehr
mittig in meiner Schaltfläche Deshalb gehe
ich zurück und repariere es, damit wir das über
diese Polsteroptionen
ganz oben hier tun können diese Polsteroptionen
ganz oben hier Ich habe das noch einmal erweitert. Ich werde meine
linke Polsterung auf Null setzen. Und beobachten Sie, wie sich dieser Text irgendwie bewegt, wenn wir diese Werte
aktualisieren Die obere Polsterung hat das auf zehn gesetzt, die rechte Polsterung, ich
werde das auf Null setzen Unten werde ich das auch auf Null setzen
,
und das sieht
gut und das sieht Okay, damit haben wir
ein ordentliches Layout des Hauptmenüs. Lass uns weitermachen und
das kompilieren und Leute retten. Das ist alles, was wir in diesem Fall
erreichen wollten. Wir sehen uns im nächsten.
99. Hauptmenü-Skript: Ordnung, in diesem werden
wir ein Skript hinzufügen , damit unser
Hauptmenü angezeigt wird. Und auch, um unser Hauptmenü
interaktiv zu gestalten , damit wir unser allererstes Level
starten können. Also hier bin ich in meinem LV-Hauptmenü. Diese leere leere Ebene. Wir kommen zu
unserem Level-Blueprint. Und ich habe
da oben auf Level-Blueprint öffnen geklickt. Und wir
werden auf der Grundlage
dieser bestehenden Veranstaltung arbeiten . Fangen Sie an zu spielen. Also werde ich das Event-Häkchen gleich hier loswerden
. Wenn Sie hier nicht die Wiedergabe von Event
Begin sehen, können
Sie einfach mit der rechten
Maustaste klicken und Event Begin suchen. Spielen Sie das ab, ich füge einen Sequenzknoten
hinzu, halten Sie die Taste S gedrückt
und klicken Sie mit der linken Maustaste. Wenn wir hier mit dem Spielen beginnen, werden wir
drei verschiedene Dinge
tun . Also klicke ich auf die
Schaltfläche PIN hinzufügen, um eine weitere hinzuzufügen. Das erste, was ich tun
möchte, ist,
diesen Punkt zu entfernen und den
Namen des Knotens in
Create widget, Create widgets einzugeben. Hier können wir das Widget einfügen
, das wir erstellen möchten Das wird
unser BP-Hauptmenü sein. Jetzt reicht es nicht mehr, das Widget
einfach zu erstellen, wir müssen es tatsächlich anweisen
, es zu unserem Viewport hinzuzufügen Um das zu tun, können wir von hier
wegziehen und „Zum Viewport hinzufügen“ sagen Wenn ich Add
to Viewport tatsächlich richtig buchstabieren kann , dann ist
es da Viewport hinzufügen. Dieses Widget erstellt das Hauptmenü-Widget Und dieser sagt , dass das Widget zu unserem Viewport
hinzugefügt werden Als Nächstes klicke ich mit der rechten Maustaste und tippe get player controller ein Und
damit ziehe ich es weg und
sage Mauszeiger anzeigen. Wir werden Mauszeiger
anzeigen einstellen. Wir werden das überprüfen, um das wahr zu machen Dadurch wird
unser Mauszeiger angezeigt, sodass wir
auf die Schaltfläche Lass uns gehen klicken können. Nun etwas, worauf ich hier
hinweisen sollte Woher wusste ich überhaupt, dass
diese Immobilie existiert? Nun, lassen Sie mich zu meinem
Framework-Blueprint, meinem BP Player-Controller und hier zu meinem
BP Player-Controller gehen.
Wenn ich zu den Klassenstandardwerten
auf der rechten Seite gehe, kann
ich Maus mit
der obersten Maus eingeben und da ist
es, Mauszeiger anzeigen Das ist eine der
Standardeigenschaften eines Player-Controllers Standardmäßig
zeigen wir den Mauszeiger nicht an, aber was wir dort in
unserem Hauptmenü-Skript
sagen , ist, dass, hey, egal welchen
Player-Controller wir verwenden, wir
sicherstellen wollen, dass wir
den Mauszeiger zeigen , damit wir hier mit
unserem Hauptmenü interagieren
können. Okay, das Letzte, was
ich tun möchte, ist, dass ich einfach ein
bisschen Musik spielen möchte. Also
ziehe ich das in die Länge und sage Sound to D. Sound ist an keiner bestimmten
Stelle in deinem Level
lokalisiert. Es hat keine X-, Y
- und Z-Position, von
der aus es abgespielt wird. Und dafür können Sie jede Musik
einspielen, die Sie mögen. Ich werde einfach
Starter Music eingeben . Dies ist Musik, die sich im Ordner
Starter Content befindet. Auch hier kannst du
alles hineinlegen, aber ich lasse nur ein
bisschen Musik spielen. Das wird also unser letztes Drehbuch
sein wenn wir dieses Level spielen. Lass uns weitermachen und hier kompilieren,
sicherstellen, dass unser Skript gut
aussieht, und speichern. Wenn ich jetzt spielen würde, erscheint
mein Hauptmenü auf dem Bildschirm. Aber Sie werden
ein paar Dinge sehen , die problematisch
sind. Zum einen sehen wir unseren
Hud auf dem Bildschirm, was wir nicht sehen wollen Nummer zwei ist, dass ich damit nicht
wirklich interagieren kann. Sie können sehen, dass dieser Button-Hover-Effekt wirksam
wird Und tatsächlich kann ich darauf klicken,
aber es passiert wirklich nichts Ich werde nicht
auf ein anderes Level gebracht. Lassen Sie uns also beide
Probleme beheben, indem wir damit
beginnen, dass unser
HUD angezeigt wird Nun der Grund, warum unser Hud angezeigt
wird, wenn ich hier zu meinem Haupteditor
zurückkehre Gehen wir zu unseren Einstellungen Und in unseren
Projekteinstellungen, wenn wir zu Karten und Modi gehen, können
Sie sehen, dass unser
Standardspielmodus für dieses Projekt unser
Third-Person-Spielmodus ist Wenn ich jetzt zu diesem
bestimmten Asset gehe, befindet es sich
dort in meinem Ordner „
Gestartete Inhalte “
oder „
Blueprints für Dritte Und ich öffne das, das ist der Bauplan, der bestimmt, welche anderen Baupläne unser
Projekt verwendet, wie zum Beispiel unseren Spielercontroller
und unsere Standardbauernklasse Jetzt befinde ich mich wieder in
den Klassenstandards unseres
Third-Person-Spielmodus unseres
Third-Person-Spielmodus Unser Spielmodus bestimmt also die anderen Baupläne, die unser Projekt
am häufigsten verwendet, die Spielerklasse und
unsere Standardbauernklasse Beachten Sie, dass dies
genau dieselben sind, die wir hier in unseren
Projekteinstellungen im Third-Person-Spielmodus
finden können , der
unsere Bauernklasse bestimmt Und unser Spieler-Controller. Jetzt fügt unser Player-Controller
, den ich hier geöffnet habe, das Hud zum Viewport hinzu Also gerade, wenn wir
unser Spiel spielen und unsere Hauptmenüebene aufrufen, wendet
unser Projekt
diesen
Third-Person-Spielmodus auf dieses Level an Und das wiederum
bestimmt, dass unser Spieler-Controller
als auch diese
Standard-Bauernklasse verwendet werden als auch diese
Standard-Bauernklasse Weil unser
Spieler-Controller benutzt wird, zeigt
das unsere Spielerhaube Wir wollen einfach nicht, dass
sich das zeigt. Was können wir also tun? Nun,
hier gibt es eine
sehr einfache Lösung und die besteht darin, einfach einen brandneuen Spielmodus zu erstellen nur
für dieses spezielle
Level verwendet werden kann. Im Grunde kann ich den Spielmodus in
unseren Projekteinstellungen
hier in diesem speziellen Level
überschreiben . Unser Level-Hauptmenü. Und das kann ich über
die World Settings machen. Wenn Sie
diese Registerkarte mit den Welteinstellungen nicht sehen, können
Sie unter Einstellungen alternativ zu den
Welteinstellungen wechseln. Window World Settings
, mit denen Sie dieses Panel auch mit unseren
Welteinstellungen hier einschalten
können . Wir können unseren Spielmodus überschreiben nur für diese Welt verwendet
wird. Nur dieses Level, diese Welt und dieses Level werden hier
synonym verwendet Also werde ich weitermachen und
einen brandneuen Spielmodus erstellen. Und das kann ich tun, ich könnte
hier im Inhaltsbrowser
klicken in eine leere Stelle schreiben . Aber ich kann es auch direkt
von dieser Registerkarte „
Welteinstellungen“ aus tun . Also gehe ich in den Spielmodus. Klicken Sie
hier auf diese Plus-Schaltfläche, um
einen brandneuen Spielmodus-Blueprint zu erstellen einen brandneuen Spielmodus-Blueprint Und ich wähle einfach einen
Ort aus, an dem ich das sagen möchte. Lass mich gehen und das in meinen Blueprints Frameworks-Ordner schreiben Und ich werde das
mein BP-Spielmodus-Hauptmenü nennen. Dann klicke ich auf Speichern.
Wieder einmal ist es der Gamo-Blueprint, der
all die anderen verschiedenen Blueprints bestimmen
wird , die wir hier verwenden Jetzt war unsere
Player-Controller-Klasse
standardmäßig einfach auf Player-Controller eingestellt Dies unterscheidet sich von
unseren Projekteinstellungen, denen unser benutzerdefinierter
Player-Controller verwendet wird Dieser verwendet also nicht
unseren BP-Player-Controller. Wie Sie sehen können, ist es nur der
Standard-Player-Controller. Wir haben hier keinen
Code drin. Wenn ich jetzt
einfach unser Spiel spielen würde, sehen
wir das Hud nicht mehr
auf dem Bildschirm, weil wir
einen brandneuen Spielmodus erstellt haben , unseren
maßgeschneiderten Player-Controller
nicht verwendet Das bedeutet, dass unser Hud auf
dem Bildschirm erscheinen soll. Wir überschreiben
den Spielmodus unseren Projekteinstellungen
, sodass Probleme behoben Als Nächstes machen wir weiter
und machen es so, dass unsere Hauptmenüoberfläche
tatsächlich funktioniert. Dazu
gehen wir in unseren Plattform-UI-Ordner. Suchen Sie unser Hauptmenü und doppelklicken Sie darauf, um es
zu öffnen , falls Sie es
noch nicht geöffnet haben. Und hier
gehen wir zur Registerkarte Grafik auf
der rechten Seite. der Registerkarte „Grafik“ können
Sie
ein Skript schreiben , das für dieses spezielle
Widget,
den Blueprint, spezifisch ist dieses spezielle
Widget,
den Blueprint, Jetzt gibt es
hier einige Event-Nodes, auf denen wir aufbauen könnten. Aber ich
will eigentlich keine davon, also werde ich sie
einfach löschen. Beachten Sie jetzt, dass
wir
im Bedienfeld „Mein Blueprint“ die Play-Taste haben Dies bezieht sich auf
das Button-Widget in
unserem Designer-Tab, unser Button-Play genau hier Beachten Sie, dass bei der
Auswahl dieses Widgets im Detailbereich automatisch
aktiviert wurde, ob
dieses Kontrollkästchen variabel ist Dadurch
kann es unter dem
Variablenbereich im
Bereich „Mein Blueprint“ angezeigt Variablenbereich im
Bereich „Mein Blueprint“ dies nun
ausgewählt ist, können wir
ein Ereignis für dieses
spezielle Widget hinzufügen ein Ereignis für dieses
spezielle Widget Und wir möchten
eines für einen Klick hinzufügen. Also haben wir diese
Plus-Schaltfläche genau hier. Wenn Sie darauf klicken, wird
ein Ereignis hinzugefügt , wenn wir auf diese Schaltfläche
klicken. Das heißt, wir wählen es hier mit
unserem Mauszeiger aus. Also, was wollen wir
tun? Nun, ich werde eine kleine Verzögerung
hinzufügen, weil ich nicht sofort in
unser Level springen möchte, nachdem ich darauf geklickt habe. Also werde ich die Taste D gedrückt halten und mit
der linken Maustaste klicken. Ich werde es einfach um, sagen
wir, eine halbe Sekunde hinauszögern . Und dann werde ich
diesen Typ im offenen Level nach Namen herausziehen . Und
welches Level möchte ich öffnen? Nun, wenn ich hier zu
meinen Levels zurückkehre, ist
das die Ebene, die
ich öffnen möchte. Lv, unterstreiche eins. Wenn
ich mit der rechten Maustaste darauf klicke und es
umbenenne,
drücke ich Strg C, um es zu kopieren Dann gehe in mein
Hauptmenü-Widget. Geh hier rein, drücke
V, um das einzufügen. Das ist das ganze Skript, das wir brauchen, um es
tatsächlich funktionsfähig zu machen. Lass mich einfach hier auf Speichern klicken. Wenn ich jetzt
reinspringen und spielen würde. Also gut, unser ganzes
Drehbuch ist da drin abgearbeitet. Sogar wenig Hintergrundmusik. Wenn ich auf meine Lets-Schaltfläche klicke, kommt es zu einer kleinen Verzögerung. Und dann gehen wir in unser Spiel. In Ordnung, jetzt haben wir
ein funktionierendes Hauptmenü. Wir haben wieder
ein leeres Level innerhalb
unseres leeren Levels eingerichtet . Wir gingen in den
Level-Blueprint und richteten ein Skript ein, um
unser Hauptmenü anzuzeigen , in
dem der Mauszeiger Wir spielen auch ein
bisschen Hintergrundmusik. Und dann haben wir es auch
so eingerichtet, dass wir
unseren Spielmodus-Blueprint
hier in der
Weltumgebung überschreiben unseren Spielmodus-Blueprint
hier in der
Weltumgebung , sodass unser Spielemodus nicht
angezeigt wird Und zu guter Letzt
haben wir in
unserem Hauptmenü-Widget einfach ein kleines
Skript für unsere Schaltfläche hinzugefügt , weil unsere Schaltfläche als
Variable eingestellt ist Damit fügen wir einfach ein
Ereignis hinzu, wenn wir darauf klicken. Wir werden es verzögern und
dann werden wir den Job
auf der entsprechenden Ebene eröffnen . Gut gemacht, Leute.
Machen wir weiter und speichern
alles, was wir
tun, machen wir es für dieses Mal aus. Wir sehen uns im nächsten.
100. Anims des Hauptmenü-Widgets: Willkommen zurück. In diesem Video werden
wir
unserem Hauptmenü ein
bisschen Jazz hinzufügen, indem wir zeigen, wie
man verschiedene Widgets animiert Jetzt könnte das für
unser Hauptmenü gezeigte Konzept auch auf Ihre Hütte
angewendet werden Lass uns gleich zur Sache kommen. Also, um hier eines der
Elemente in Ihrem Hauptmenü zu animieren, das heißt, es zu skalieren, es zu drehen,
es einzublenden All diese Dinge müssen
wir in unser
Animationsfenster bringen, das hier in unserem
WBP-Hauptmenü gemacht
werden kann hier in unserem
WBP-Hauptmenü gemacht
werden Fahren Sie fort und klicken Sie oben auf das
Fenster. Und genau hier haben wir dieses Animationsfenster
, das nicht aktiviert ist. Lass es uns einschalten. Dadurch wird ein Animationsfenster ganz
unten angezeigt. Okay. Das
wird so funktionieren, dass wir eine
benannte Animation erstellen werden. Wir werden hier
verschiedene Elemente
unseres Bildschirms anweisen , animiert zu werden,
und dann werden
wir über ein Skript sagen, dass
diese Animation abgespielt werden soll Lassen Sie uns also unsere
benannte Animation erstellen,
indem wir auf diese grüne
Plus-Animationsschaltfläche Ich werde dieses
Intro einfach aufrufen, drücken Sie die Eingabetaste. Jetzt, wo diese
Animation ausgewählt ist,
möchte ich
im Wesentlichen, dass unsere Play-Taste hier am Bildschirmrand beginnt Und dann animieren,
heißt reinrutschen. Stellen Sie also sicher, dass Sie das ausgewählt
haben, denn ich möchte, dass es vom Bildschirm aus
startet Ich werde hier eine neue
relative Position x festlegen Also setze ich
diesen Wert von minus 115 auf 600 und drücke Enter. Wie bin ich zu dieser Zahl gekommen? Nun, das war nur
durch eine Menge Versuch und Irrtum, bevor dieses Video
gedreht wurde. Also 600, es wird hier am Rand
meines Bildschirms
beginnen. Notieren Sie sich nun alle Eigenschaften
dieses Button-Widgets, die wir im Laufe der
Zeit mithilfe unserer Animation ändern möchten. Hier können Sie sehen, dass
das im Detailbereich mit
diesem kleinen Diamanten mit der Plus-Schaltfläche gekennzeichnet So können wir Keyframes für
diese verschiedenen Eigenschaften hinzufügen. Und hier unten gibt es noch mehr
, das Sie ändern können. Sie können diese
zu Ihrer Zeitleiste
hinzufügen indem Sie einfach darauf klicken. Deshalb möchte ich
die Position x hier
meines Buttons im Laufe der Zeit ändern . Also werde ich weitermachen
und genau hier klicken. Füge meiner Animation ein Schlüsselbild für diese
Eigenschaft hinzu. Da ist es also. Ich habe
gerade darauf geklickt Und jetzt können wir unsere Schaltfläche,
unseren
Canvas-Panel-Slot und unsere Offsets sehen Canvas-Panel-Slot und unsere Offsets Jetzt wird es ein
bisschen knifflig. Tastenwiedergabe, Tastenwiedergabe, Canvas-Panel-Slot, Offsets des
Canvas-Panel-Slots Okay, das werden alle
als Offsets betrachtet, aber wir haben nicht auf
etwas geklickt, das Position X genannt wird, sondern hier unten ist das
technisch gesehen unser Es gibt also eine kleine
Diskrepanz zwischen den ,
die viele Schüler
verwirren können Beachten Sie also, dass dies
die Eigenschaft ist , die ich hier
ändern möchte Sie hat derzeit
einen Wert von 600. Das wird
mit unserem linken Offset hier in Verbindung gebracht . Okay, also an der
Null-Sekunden-Marke in unserer Timeline wollen wir hier mit der Position unserer Buttons
beginnen. Wenn ich
hier unten mit der Maus fahre, kann
ich sehen, wie ich mit der Maus hier nach unten fahre Ich habe diese zwei Arten von
Schindeln ,
die den Anfang
und das Ende meiner Animation kennzeichnen und das Ende Ich möchte das Richtige auf die richtige Summe
übertragen Okay. Und wie Sie sehen können, wird
diese rote Linie auch
mitgenommen. Das wird
das Ende meiner Animation bedeuten. Sie können das also einfach hin und her ziehen
,
um die Dauer Ihrer Animation zu verlängern
oder zu verkürzen Übrigens, Scrollrad, wenn Sie die Steuerung
im Scrollrad
gedrückt halten, die Steuerung
im Scrollrad
gedrückt halten wird
Ihre Zeitleiste verkleinert oder erweitert Wenn Sie die
rechte Maustaste gedrückt halten, können
Sie nach links und rechts schwenken Nur ein kleiner Hinweis zur Navigation: Sobald wir
das Feld zurückgezogen hatten, konnten
wir dort unseren einzigen
Keyframe an
der Null-Sekunden-Marke
für unseren linken Offset sehen . Auch das ist unsere Position x. Jetzt möchte ich, dass diese
Animation ziemlich schnell ist. Also werde ich das
Ende dieser Zeitleiste
auf die 0,25-Sekunden-Marke ziehen die 0,25-Sekunden-Marke Dann werde ich die Strg- und
Scrollrad
gedrückt halten , um
das Ganze etwas weiter auszudehnen Im Grunde möchte ich, dass sich diese
Taste im Laufe einer Viertelsekunde in
diese Richtung bewegt . Also werde ich meinen
Zeitleisten-Schieberegler bis zur 0,25-Sekunden-Marke Und dann muss ich entscheiden , wohin ich das verschieben möchte Nun, ich habe festgestellt,
dass ein Wert , den ich
dafür haben möchte, negativ 115 ist. Ich kann also buchstäblich genau
hier klicken, wo links steht. Ich habe dort geklickt, wo die
Zahl 600 angezeigt wurde. Ich gebe minus
115 ein und drücke die Eingabetaste. Das wird also im Wesentlichen das Ende meiner Animation
bedeuten Wenn ich
das jetzt hin und her schrubben
würde, können
Sie sehen, wie es sich im
Laufe
einer Viertelsekunde bewegen im
Laufe
einer Viertelsekunde Wenn ich meinen
Zeitleisten-Schieberegler
hier
wieder ganz an den Anfang setze und dann auf Abspielen klicke, können
Sie sehen, wie das
weitergeht Beachten Sie nun, dass dies
die einzige Eigenschaft sein wird , die ich hier mit meiner Schaltfläche
im Laufe von 0,25 Sekunden
ändern möchte hier mit meiner Schaltfläche
im Laufe von 0,25 Sekunden
ändern im Laufe von 0,25 Sekunden Aber Sie könnten hier
auch andere Eigenschaften
mit Ihrer Schaltfläche anpassen hier
auch andere Eigenschaften
mit Ihrer Schaltfläche Die Farbe und Opazität, die Hintergrundfarbe, all
diese Dinge Für einige dieser anderen
Eigenschaften, die Sie möglicherweise erweitern
könnten, müssen
Sie möglicherweise auf einige
dieser Dropdown-Dreiecke klicken dieser Dropdown-Dreiecke Also könnten wir den Drehpunkt,
den Scherwinkel, die Skala und
all diese Dinge ändern den Scherwinkel, die Skala und
all diese Dinge ändern Könnte in
derselben Intro-Animation gemacht werden. In Ordnung, wir haben also
eine benannte Animation. Und wir sagen unserer Schaltfläche, etwas in dieser
benannten Animation
tun soll. Nun, wie
bekommen wir das eigentlich zum Auslösen? Nun, dafür müssen wir
zu unserem Grafik-Tab gehen, genau hier oben.
Lass uns hier rüber gehen. Wir haben dieses Skript
für Klicken auf Button, Klick auf Button,
Starten eines neuen Levels. Jetzt wollen wir ein Skript hinzufügen , das diese Animation abspielen
wird. Wir hatten hier schon einmal ein Event-Konstrukt
. Event-Konstrukt ist wie der Beginn eines Ereignisses,
ein Bauplan Ich werde mit der rechten Maustaste klicken
und das zurückholen. Und ich gebe einfach ein, dass
es ein Event-Konstrukt gibt. Das ist der, nach dem wir
suchen. Davon abgesehen werde
ich es
für eine kurze Zeit verzögern. Also halte ich die Taste D gedrückt und klicke mit
der linken Maustaste, um einen Verzögerungsknoten
einzuschalten. Ich werde das
für 2 Sekunden verzögern. Dann werde ich
diese Animation, die ich
gerade abspielen werde, auch mit einem Sound begleiten . Ich mache einen Sound zwei D. Der
Sound, den ich abspielen möchte, heißt Drop Drop Item aus dem Inhaltsbrowser, der sich
in den VR-Ordnern der Engine befindet. Wenn Sie das nicht sehen,
können Sie hier auf dieses
Zahnradsymbol klicken. Stellen Sie sicher, dass Sie den Inhalt der
Engine anzeigen. Das verschafft dir
Zugang zu dem Typen. Dann möchte ich
meine Animation einfügen, damit ich mit ihr
sprechen und ihr sagen
kann, dass sie abgespielt werden soll. Nun, in meinem Designer-Tab habe ich
diese Animation namens Intro Aber hier in meiner Grafik sehe
ich sie nirgends. Also, wie beziehe ich mich darauf? Direkt unter dem
Variablenbereich, wenn ich unter Animationen komme, gibt es den Namen der
Animation, die ich gerade erstellt habe. Intro, hier
geht es um diese
Intro-Animation Lassen Sie uns das in unser Diagramm aufnehmen. Ziehen Sie es per Drag & Drop,
wir werden das bekommen. Und wenn wir das dann wegziehen, können
wir sagen, Animation abspielen. Und jetzt haben wir viel
Kontrolle über diese Animation. Anhand dieser Funktion können wir
ihr sagen, zu welcher Uhrzeit in der
Animation wir abspielen wollten. Lass es uns von Anfang an spielen.
Also belassen wir das bei 0 Sekunden. Anzahl
der abzuspielenden Loops. Sie können damit mehrere Loops
abspielen lassen. Sie können das vorwärts abspielen,
Sie könnten rückwärts spielen oder es mit einem Ping-Pong hin und
her Und Sie können
die Wiedergabegeschwindigkeit auch
direkt von hier aus anpassen die Wiedergabegeschwindigkeit auch
direkt von hier aus Wenn Sie
also
mit dieser Viertelsekunde nicht zufrieden sind, können
Sie sie verlängern, indem Sie
eine langsamere Wiedergabegeschwindigkeit Oder beschleunigen Sie es. Okay, das wird also unser
Skript für das Abspielen
dieser Animation 2 Sekunden,
nachdem unser Hauptmenü angezeigt
wird, sein dieser Animation 2 Sekunden . Also lass uns weitermachen und das
kompilieren und speichern. Wenn wir jetzt spielen, schauen wir uns das
an, wir sehen unser Hauptmenü. Aber 2 Sekunden später, bumm, gibt es Folien auf unserem Button. Okay, jetzt möchte ich hier tatsächlich eine weitere Animation
hinzufügen. Weil ich es so
machen möchte, dass, wenn wir den Mauszeiger über unsere Schaltfläche bewegen
, die Größe
tatsächlich ein wenig vergrößert Lassen Sie uns also weitermachen und
eine weitere Animation dafür hinzufügen. Ich könnte noch einmal
zum Designer-Tab zurückkehren und eine
völlig neue Animation erstellen. Also klicke ich
auf diese Plus-Animation und nenne das meine Scale-Play-Button-Animation. Ja, zuerst muss ich
sicherstellen, dass ich meine Animation auswähle. Mit welchem
Ding möchte ich dann sprechen? Wieder einmal werde ich unsere Play-Taste
skalieren, obwohl sie sich hier neben
dem Bildschirm befindet. Es spielt keine Rolle, weil es
die Intro-Animation ist, auf die es übertragen wird Ich möchte jetzt einfach darüber sprechen , was
möchte ich daran ändern Ich möchte
die Skala dafür ändern. Ich werde im Detailbereich weiter nach
unten scrollen. Ich suche nach der
Render-Transformationsskala. Jetzt kann ich
das erweitern, um
nur den X- oder den
Y-Aspekt dieser Schaltfläche zu skalieren , aber ich möchte beide skalieren. Wenn ich einfach unter
Transformationsskala gerate, klicken Sie hier darauf. Das wird dem hier unten in meiner Zeitleiste einen Schlüsselrahmen
hinzufügen . Lassen Sie uns diese Skala erweitern. Wenn ich jetzt hier in meiner Timeline
runterkommen würde, könnte ich diese beiden Schindeln sehen Ich werde das hier einfach auf
etwa eine Zehntelsekunde
erweitern etwa eine Zehntelsekunde Das ist vielleicht zu kurz. Lass mich die Taste gedrückt
halten und nach oben zoomen. Okay, über die
Zehntelsekunde, und ich kann die
beiden Keyframes
für die Skala
X und die Skala Y hier sehen . Jetzt werde ich
meinen Zeitleisten-Schieberegler auf die
Zehntelsekundenmarke bewegen meinen Zeitleisten-Schieberegler auf die
Zehntelsekundenmarke Ich werde dafür weitere
Keyframes hinzufügen. Ich könnte das für X
und Y unabhängig voneinander tun, aber wenn ich auf diese
winzige Plus-Schaltfläche
mit der Aufschrift „Skalieren“ klicke , werden genau zu
diesem Zeitpunkt zwei
weitere Keyframes für
den X- und den Y-Wert hinzugefügt . Ich werde beide auf 1,11
0,1 setzen . Jetzt, wo ich diese Werte
auf 1,1 ändere , können Sie sehen, wie die
Schaltfläche vergrößert wird Sie können also sehen, wie
sich das im Laufe der Animationswiedergabe
vergrößern wird Okay, noch einmal, wie
bringe ich das zum Abspielen? Nun, ich gehe
zurück zu meinem Grafik-Tab. Lass uns runterkommen. Ich habe meinen Button ausgewählt,
also sieh dir das an. Ich habe ein paar Ereignisse. Wenn
wir den Mauszeiger über die Schaltfläche bewegen, bedeutet
das, dass sich unsere Maus darüber befindet, und wenn wir
die Schaltfläche aufdecken ,
befindet sich unsere Maus nicht darüber Fügen wir also Ereignisse
für beide hinzu. Da ist der erste,
lassen Sie mich den Mauszeiger hinzufügen. Da sind unsere beiden Veranstaltungen. Ich werde hier
unsere neue Animation einbauen, die Skalierung des
Play-Buttons. Holen wir uns das. Ich ziehe das raus
und tippe Play-Animation ein. Wenn wir den Mauszeiger über die Schaltfläche bewegen, müssen
wir hier unten
etwas Platz schaffen hier unten
etwas Platz Wenn wir den Mauszeiger über die Schaltfläche bewegen, möchten
wir diese
Animation vorwärts abspielen Lassen Sie mich weitermachen und das
auswählen und D
drücken, um das zu duplizieren Wenn wir die Schaltfläche aufdecken, stellen Sie sicher, dass Sie sie als Animation
einbinden, damit sie auch
hier unten abgespielt Wenn wir die Schaltfläche aufdecken
, bewegen wir sie also nicht mit der
Maus Wir wollen den
Wiedergabemodus rückwärts einstellen. Das wird einfach genug
sein. Schweben Sie vorwärts, schweben Sie, fahren Sie rückwärts. Lass uns weitermachen und
das kompilieren und speichern und spielen. Nach 2 Sekunden
werden unsere Knöpfe reinrutschen. Wenn ich jetzt mit der Maus darüber fahre, wird
diese Schaltfläche größer. Wenn Sie die Maus nicht bewegen, nimmt sie wieder ihre gewohnte Größe
an. Wir können darauf klicken, das Spiel
starten und schon haben wir
einige Widget-Animationen Gut gemacht, Leute. Das wird für diesen Kerl
taugen. Wir sehen uns im nächsten.
101. Interaktion mit dem Hauptmenü-Controller: In Ordnung, willkommen
zurück alle. Nun, wir haben jetzt ein
funktionierendes Hauptmenü. Und wir können auf
diese Schaltfläche „Los geht's“ klicken sobald sie angezeigt wird,
um unser Spiel zu starten. Aber wie einige von Ihnen
zweifellos bemerkt haben, können
wir diese
Taste nicht mit einem Controller bedienen. Wenn Sie also einen
physischen, Sie wissen schon,
Xbox-Controller
an Ihren Computer angeschlossen haben , können
Sie
das Spiel nicht wirklich starten , indem Sie die Taste drücken Also dachte ich, ich füge hier
noch ein Video hinzu, um zu zeigen, wie wir mit einem Controller mit unserem
Hauptmenü interagieren können also zunächst sicher, dass
Sie einen Controller,
z. B. einen Xbox-Controller, an Ihren Computer
angeschlossen haben z. B. einen Xbox-Controller, , und so
können wir das erreichen. Hier bin ich in
meinem WBP-Hauptmenü. Ich werde von
unserer Designer-Ansicht
zu unserer Diagrammansicht wechseln unserer Designer-Ansicht
zu unserer Diagrammansicht Was wir am
Ende unseres
Event-Konstrukts hier tun müssen ,
ist der Punkt, an dem wir
um 2 Sekunden warten Dann spielen wir einen Sound
und eine Animation auf unserem Intro-Widget Wir werden hier ganz am Ende zwei
Knoten hinzufügen. Der erste, den wir hinzufügen
werden, ist ein Verweis auf unseren Play-Button. Machen wir also weiter und
ziehen das per Drag-and-Drop hinein. Wir werden uns das holen, dann ziehen
wir das in die Länge und fügen eine Funktion hinzu, die als Set Focus
bekannt ist. Fokus setzen. Stellen Sie sicher, dass wir das so
verkabeln. Wenn ich jetzt die Play-Taste drücke, wirst
du etwas
bemerken. Wenn nun unsere Taste hineingleitet, sehen
wir dieses blaue Kästchen
neben unserer Let's Go-Taste , das anzeigt
, dass unser Controller jetzt den Fokus auf dieser Taste hat. Und wenn ich die Taste
drücken würde, ein
Xbox-Controller angeschlossen Dadurch kann
ich tatsächlich auf
diese Schaltfläche klicken und dann das Spiel
starten Offensichtlich willst du den blauen Umriss dort nicht sehen, wenn du dich tatsächlich in einer offiziell ausgelieferten
Version des Spiels befindest. Wie werden wir das also los? Nun, um das zu tun,
werden wir in
unser Projektumfeld springen. ich hier zu meinem
Haupteditor zurückkehre, kann
ich auf die
Projekteinstellungen zugreifen, indem
ich hier unter der
Option Einstellungen,
Projekteinstellungen, oder
unter Bearbeiten gehe kann
ich auf die
Projekteinstellungen zugreifen, indem hier unter der
Option Einstellungen, . Die Projekteinstellungen finden Sie hier. Suchen Sie einfach
nach Render Focus. Derzeit haben wir
diese Renderfokus-Regel, die auf „Immer“ gesetzt ist. Und das ist es, was
den blauen Umriss
um diese Schaltfläche herum erscheinen lässt, wenn sie animiert wird, um zu zeigen
, dass sie den Fokus hat Wenn ich also zu meinen Projekteinstellungen zurückkehren
und von „
Immer“ auf „Niemals“ wechseln
würde, würde ich
wieder
hineinspringen und von „
Immer“ auf „Niemals“ wechseln
würde, und spielen Schieben Sie jetzt auf meiner Schaltfläche in die Ansicht. Ich sehe den blauen Umriss nicht, obwohl ich immer noch die
Taste an
meinem verbundenen Xbox-Controller drücken
und das Spiel starten kann . Sehr gut damit Lassen Sie uns weitermachen und dieses Asset
speichern. Ich werde mit der rechten
Maustaste darauf klicken und speichern. Und Leute, das wird es für diesen
machen. Wir sehen uns im nächsten.
102. Menülayout pausieren: Nun, da wir
ein Hauptmenü
für unser Spiel erstellt haben ,
wäre es nicht schön, wenn
wir ein Pausenmenü erstellen würden? Ich denke, das wäre es.
Lassen Sie uns gleich zur Sache kommen. Ich fange gleich hier in
meinem U-I-Ordner an. Und wieder werde ich rechten Maustaste in eine leere Stelle klicken. Benutzeroberflächen-Widget, Blueprint. Wir werden dieses
Widget ganz oben auswählen. Und ich werde dieses
neue Widget Blueprint
Asset BP Underscore Menu nennen Asset BP Underscore Und dann doppelklicken wir darauf, um
es sofort zu öffnen Jetzt hier drinnen
werden
wir nur ein paar Widgets hinzufügen. Wir werden
wieder
mit einem Canvas-Panel beginnen . Das Canvas-Panel wird sich wie ein Heftbrett
verhalten,
ein Korkbrett, an dem auch andere Widgets
angeheftet Das Canvas-Panel wird
also das erste sein. Die zweite, die wir hier
hinzufügen werden, wird als Hintergrundunschärfe bezeichnet Wir werden also
quasi unser Spiel verwischen wenn wir
unser Spiel
mit unserem Paws-Menü überlagern Also könnte ich das so auf
mein Leinwand-Panel ziehen . Oder
ich könnte es hierher ziehen. Lassen Sie mich es
einfach hier oben
auf mein Leinwandfenster ziehen , um eine andere
Vorgehensweise zu zeigen. Ich werde sofort unsere
Hintergrundunschärfe
auswählen Und ich mache weiter und setze dafür
einen Anker drüben
im Detailbereich Das wird dieser
Vollbild-Anker sein. Jetzt werden sich diese Offsets alle auf unseren Vollbildmodus
beziehen,
weil wir wollen, dass es
sich um einen Vollbildmodus handelt Wir wollen diesen
Offset überhaupt nicht. Wir wollen, dass die Offsets links, rechts, oben und unten
alle Null sind Setzen Sie die Offsets also rundum auf
Null. Und jetzt haben wir
eine Hintergrundunschärfe für unseren gesamten Bildschirm Nun zu der Menge an Unschärfe , die durch diese
Unschärfenstärke gesteuert wird.
Sie können
damit herumspielen, sobald wir das in unserem Spiel sehen Ich habe festgestellt, dass eine Unschärfenstärke von fünf in der Regel genau richtig ist Okay, als Nächstes füge ich hier
eine Schaltfläche zu unserem Bildschirm hinzu. also unter
das Palettenfenster Gehen wir also unter
das Palettenfenster und ziehen wir eine Schaltfläche
direkt hierher. Und Sie können sehen, dass es an meine
Hintergrundunschärfe angehängt wurde, was ich eigentlich nicht wollte Und deswegen hat es meinen gesamten
Bildschirm ausgefüllt. Also werde ich das per Drag & Drop hier per Drag & Drop
wieder oben auf mein
Leinwand-Panel ziehen. Siehst du das skizziert? Und jetzt habe ich meinen
Button quasi wieder
angedrückt, er ist nicht mehr mit meiner Hintergrundunschärfe verknüpft Damit werde
ich gleich
einige Details dafür festlegen gleich
einige Details dafür Für den Anfang nenne ich
das im Detailbereich
meine Schaltfläche „Weiter“ Wir werden nur eine Schaltfläche mit der
Aufschrift Weiter in unserem Pausenmenü
haben Aufschrift Weiter in unserem Pausenmenü Jetzt haben wir den Namen
dieses Widgets geändert, den Anker. Ich werde den Anker so einstellen,
dass er dieser mittlere quadratische ist. Und das bedeutet, dass die
Positionsversätze relativ
zu diesem Anker sein werden Ich werde die
Position x auf Null setzen. Die Position y soll Null sein. Und wenn ich das jetzt vergrößere, kannst
du sehen, wie es
irgendwie an
der oberen linken Ecke
der Schaltfläche ausgerichtet ist. Schau dir das an. Wenn ich meine
X-Ausrichtung hier auf
0,5 setze , geht das im Grunde
auf die Hälfte der X-Ausrichtung über. Und das Gleiche gilt für die
Y-Ausrichtung hier. Wenn ich das auch auf 0,5 setze, wird
das die Y-Ausrichtung haben,
die Ausrichtung von oben nach unten. Das wird also ziemlich gut
sein. Jetzt stelle ich die
Tastengröße genau hier im X auf 450 im Y ein. Ich werde sie auf 130 setzen Wenn ich nach hinten zoome, bekommst
du ein Gefühl dafür, wie groß die Taste auf dem Bildschirm
sein wird Ordnung, als Nächstes
legen
wir unseren Stil für unseren Button fest. Dies wird dem, was wir hier für
unser Hauptmenü festgelegt haben, sehr
ähnlich sein , der normale
Stil. Ich werde unsere Breite
hier unter „Stil“ auf sieben einstellen. Beim Rundungstyp ändere
ich den Radius auf
halber Höhe Das wird ihm
diese Pillenform geben , die
ich irgendwie mag Das wird
mein normaler Stil sein. Also der Button, wie er normalerweise
aussieht, ohne dass wir Mauszeiger drüber bewegen oder ohne dass wir darauf klicken. Also
werde ich das zusammenklappen Lassen Sie uns nun den
Hover-Status für diese Schaltfläche festlegen. Dafür werde
ich die Breite erneut auf sieben einstellen Breite erneut auf sieben einstellen Der Rundungstyp
wird ebenfalls die halbe Höhe, der
Radius und der Umriss sein Radius und der Umriss Ich werde genau hier klicken. Wir werden das auf
eine Art gelbliche Farbe einstellen. Und ich setze den Wert, den Alphawert, auf 0,5
, so dass das
halbwegs durchsichtig ist,
also bleibe ich dabei,
das sieht ziemlich gut Das wird also
unser allerbester Button-Stil sein. Dann lass uns weitermachen und
unseren Pressed Style dafür festlegen. Ich werde die Breite auf zehn setzen, diesen Rundungstyp. Ich werde wieder den Radius auf halber
Höhe einstellen. Und ich werde diese Farbe belassen. Also werde ich hier
wirklich nur die Breite
dieser Kontur ändern . Und dann unten haben
wir unsere Presse. Sound und unser Schweben.
Sound für Hover Sound Lass uns weitermachen und das auf „Grab,
Grab, Unterstrich VR, Grab Q“
setzen . das ist
wieder
im Engine V Sound Wenn Sie also keinen
Zugriff auf diesen Pfad haben,
sollten Sie
durch Klicken auf dieses Zahnradsymbol, durch Klicken auf dieses Zahnradsymbol das den Inhalt der Engine
anzeigt, dorthin gelangen Aber da ist es. Mein V R Grab
Cue brauche ich für den Hover Sound Der Presssound, den
ich will, ist meine Münze. Mario-Münze. Oh, und
ich hätte es fast vergessen. Ich möchte dafür eine
Hintergrundfarbe festlegen. also hier
nach unten scrollen unsere
Schaltfläche „Weiter“ ausgewählt haben, unsere Hintergrundfarbe Ich wollte etwas Maroonisches Vielleicht ein bisschen dunkler, so
etwas
ist ziemlich gut Du darfst vorerst nicht davon
besessen sein. Klicken Sie auf Okay, jetzt möchten
wir etwas Text über
dieser Schaltfläche platzieren Wir können das tun, indem wir unser Text-Widget
hierher ziehen. Ich könnte es oben auf
diese Schaltfläche oder
hier in der Hierarchie nach unten ziehen diese Schaltfläche oder
hier in der Hierarchie nach unten Wenn ich in der Hierarchie nach
unten ziehe, sobald ich sehe,
dass die Schaltfläche „Weiter“ von diesem blauen Umriss umgeben ist , kann
ich sie per Drag-and-Drop
direkt darüber ziehen. Und ich kann dieses
Text-Widget im Bereich „Details“ auswählen Ich nenne es mit dem
Unterstrich Weiter Wenn ich im Bereich „Details“
den Text sofort nach oben scrolle, kann ich ihn so einstellen, dass er gelesen Fahren Sie fort. Und was
die Schriftfamilie angeht ,
so mag ich Roboto auch da nicht Das ist ein bisschen langweilig. Hier sind
diese importierten Schriften also wirklich nützlich. Ich werde das auf
meinen Mario 256-Schriftstil einstellen, irgendwie so. Ich werde die Schriftgröße
auf 45 setzen, meine Konturgröße, ich werde sie auf sechs setzen, also habe ich einen kleinen schwarzen Umriss um das herum. Ich habe die rötliche
Farbe vielleicht
etwas zu dunkel eingestellt Farbe vielleicht
etwas zu dunkel Es ist ein bisschen schwierig
, diesen Umriss zu erkennen. Und noch einmal, wenn Sie Ihre Konturfarbe
anpassen möchten, können
Sie genau
dort klicken und diese anpassen. Dann möchte ich
das in dieser Schaltfläche
ein wenig nach unten bewegen, weil
es ein
bisschen oben ist Ich kann das also ändern, indem ich
unter diesen Bereich für die Polsterung komme, ganz oben im
Detailbereich Ich werde das erweitern und
dafür setze ich links auf
,
ich werde mit der Tabulatortaste nach
unten nach oben klicken Ich werde das auf zehn setzen. Und dann für rechts
und für unten. In Ordnung. Und ich denke, das
wird ziemlich gut aussehen. Ja, das ist anständig
genug für mich. Damit werden wir
weitermachen und es speichern. Wir haben jetzt unser
Pausenmenü-Layout. Im nächsten Video werden
wir die Eingabe und
das Skript
erstellen, die erforderlich sind , damit es auf dem Bildschirm angezeigt wird
und interaktiv ist.
Wir sehen uns dort
103. Menüskript pausieren: Willkommen zurück. In diesem Video ist es
unser Ziel, es so zu gestalten, dass
wir unser Spiel pausieren und mit unserem Pause-Menü
interagieren können mit unserem Pause-Menü
interagieren ,
damit wir das Spiel wieder unterbrechen können Um das zu tun,
gehen wir zunächst
zu unserem Ordner für
Dritte Hier gehen
wir in den Eingabeordner und erstellen
eine Eingabeaktion, die
dafür verantwortlich ist
, unser Spiel zu pausieren Gehen wir in die Eingabe durch
Dritte ein. Gehen wir hier in unseren
Aktionsordner. Und ich werde die Steuerung
gedrückt halten und scrollen. Scrollen Sie zurück, um
die Größe dieser
Miniaturbilder zu verringern die Größe dieser
Miniaturbilder Das ist ein heißer Tipp für
dich. Kann die
Steuerung gedrückt halten und scrollen. Scrollen Sie nach oben und unten, um diese Vorschaubilder zu verkleinern
und zu vergrößern. Und ich werde mit der rechten
Maustaste in eine leere Stelle klicken. Wir werden in unserem
Eingabemenü unter Eingabe landen. Wir werden
unter Input Action fallen. Jetzt nennen wir
das eine Pause mit Unterstrichen. Und dann doppelklicken wir
auf diesen Typen, um ihn zu öffnen Ordnung, in diesem Asset definieren
wir einige
Dinge darüber, wie diese Eingabeaktion ausgelöst
werden soll und wann sie ausgelöst werden
kann. Lassen Sie uns also zunächst im Triggerbereich festlegen, wie dies ausgelöst werden soll. Lassen Sie uns weitermachen und das ein wenig
übergehen , damit Sie sehen
können,
was mit unserem Wertetyp verbunden ist, digital boole, ist es passiert, nicht wahr?
Auslöser genau hier. Klicken wir auf diese Plus-Schaltfläche
und in unserem Index Null erweitern
wir das nach unten. Und wir wollen etwas auslösen , wenn wir eine bestimmte Taste drücken. Und genau
hier steht, dass es Feuer nur einmal auslösen wird Feuer nur einmal auslösen wenn die Eingabe die
Auslöseschwelle überschreitet Wollen wir herausfinden, wann eine bestimmte Taste gedrückt wurde Nun, das ist sehr wichtig. Verpasse diesen Schritt nicht. Wir möchten, dass dies auch ausgelöst wird
, wenn das Spiel pausiert. Wenn du dieses Kästchen nicht ankreuzt, wird
es nicht funktionieren, wenn wir die
Pause des Spiels aufheben wird
es nicht funktionieren Digital Bull gedrückt für
den Trigger und dann Trigger, wenn Pause auf
true gesetzt ist. Fahren Sie fort und speichern Sie das Als Nächstes müssen
wir zu unserem
Charakterentwurf
zurückkehren Das ist ein kleiner Rückblick unseren Charakter aus der dritten
Person Scrollen Sie zurück
und scrollen Sie zurück nach oben, wo
unsere Veranstaltung beginnt. Spiel hier. Und im Moment teilen
wir den Beginn
unserer Veranstaltung Spielen Sie für einen Sequenzknoten. Genau hier
haben wir unseren Mapping-Kontext. Und das
bestimmt, welche Eingaben in unserem
Spiel alle funktionieren und welche nicht. Und derzeit verwenden wir dieses IMC-Standard-Asset in
unserem Charakter-Blueprint Jetzt kann ich dorthin navigieren, indem ich auf
diese Lupe klicke.
Und wieder ist es da. In unseren Ordnern
für Dritte. Und wenn ich auf dieses Asset
doppelklicke, das vielleicht aus dem
vorherigen Kurs bekannt vor. Hier fügen wir
im Wesentlichen
unsere verschiedenen erstellten
Eingabeaktionen Und dann ordnen wir ihnen
Schaltflächen zu. Wenn
wir also zum Beispiel die Taste auf unserer Tastatur oder
die linke Maustaste auf dem Gamepad drücken, wird
dadurch
unser Shot-Fireball-Event ausgelöst Okay, wir müssen hier
ein neues Mapping
für unsere IA-Pause hinzufügen hier
ein neues Mapping
für können wir tun, indem wir
hier oben unter Mappings diese winzige Plus-Schaltfläche Aus welchem Grund auch immer, es erweitert
all diese noch einmal, was ein bisschen nervig ist, aber es hat gerade
diesen Eintrag genau hier erstellt Hier können wir also unsere A-Pause einlegen, da ist sie. Jetzt
macht es wieder dieses Ding, bei dem es sie alle
ausdehnt. Auch hier können wir
einige Tasten damit verknüpfen ,
um das Spiel zu unterbrechen. Ich möchte es so einrichten, dass sowohl
die Taste auf unserer Tastatur als auch Starttaste auf einem Gamepad das Spiel pausieren, um Tasten festzulegen, mit denen dieses Ereignis
ausgelöst werden kann. Ich werde
auf diese Tastatur klicken
, dann färbt sie sich orange. Jetzt kann ich einfach auf eine
Taste auf meiner Tastatur tippen. Also werde ich die
Taste drücken und da ist die Taste. Und dann füge ich noch
einen für meine Controller-Eingabe hinzu
, um das Spiel anzuhalten. Also werde ich noch einmal
darauf klicken. Und natürlich macht es
diese nervige Sache, bei es all diese
Kategorien erweitert. Und jetzt kann ich eine zweite
Eingabe eingeben, um das Spiel zu pausieren. Also werde ich
darauf klicken, jetzt
habe ich einen Xbox-Controller
daran angeschlossen Ich werde die
Taste drücken, die sich direkt neben der X-Taste auf meinem
Xbox-Controller befindet Es wird also
als Gamepad Special bekannt sein. Stimmt.
Das war ursprünglich auf
traditionelleren Gamepads als Starttaste
bekannt. Okay, da diese nun verknüpft sind, können
wir weitermachen und
das Ganze speichern und schließen. Wir können auch unseren Charakter aus der
dritten Person schließen . Und auch unser Input Action
Pause-Asset. Okay, um jetzt unser Spiel zu pausieren, möchte
ich
dieses Skript tatsächlich in
unseren Player-Controller-Blueprint einfügen unseren Player-Controller-Blueprint , weil unser Charakter sterben kann Wir wollen das einfach
in einen Plan aufnehmen, der fortbesteht, unabhängig davon, ob
unser Spieler tot ist Lasst uns also weitermachen und
unseren Spieler-Controller-Blueprint finden unseren Spieler-Controller-Blueprint Und noch einmal: Wenn
du dir nicht sicher bist, welchen
Player-Controller-Blueprint du verwendest, kannst
du ihn in
deinen Projekteinstellungen finden, indem du unter Einstellungen > Projekteinstellungen
unter Karten und Wir haben genau dort unseren
Standard-Spielmodus. Und das ist unsere Player Controller-Klasse BP
Player Controller. Wir können direkt
dort im Inhaltsbrowser dorthin navigieren. Dort befindet es sich in unserem
Plattform-Blueprint-Framework-Ordner. Doppelklicken wir auf diesen Typen
, um ihn zu öffnen. Ich scrolle mit dem
Rad auf der Rückseite und finde hier eine leere Stelle. Und ich komme gleich
hierher. Also müssen wir das
Eingabe-Aktionsereignis
oder diese Pause finden . Also werde ich mit der rechten Maustaste
in eine leere Stelle klicken und eine Unterstrichpause eingeben eine Unterstrichpause eingeben Und das ist das, nach dem
ich suche, ein erweitertes Aktionsereignis, Eine Pause Es hat das Pfeilsymbol direkt daneben.
Und da haben wir's. Dies spricht mit
unserem Pause-Event , das wir gerade in unserem
Input-Mapping-Kontext eingerichtet haben. Also, was wollen wir
, dass passiert? Also, wenn wir damit beginnen
, die Taste zu drücken, schießen
wir aus dieser Stecknadel heraus. Ich werde das
über einen Zweigknoten laufen lassen. Du wirst Y gleich
hier sehen. Wir werden
das durch eine Filiale laufen lassen. Und die Bedingung, die
wir hier überprüfen werden, ist , ob wir den Mauszeiger
zeigen oder nicht. Also klicke ich mit der rechten Maustaste
in eine leere Stelle und tippe Mauszeiger anzeigen ein. Wir werden jetzt das Anzeigen
des Mauszeigers bekommen . Ich werde das einfach sofort
in die Filiale stecken. Das ist ein boolescher Wert, hier in unserer
Player-Controller-Elternklasse
existiert Wenn ich zu den
Klassenstandardwerten gehe und im Detailbereich
den Mauszeiger eintippe, erscheint
dort mein Boolescher
Mauszeiger erscheint
dort mein Boolescher
Mauszeiger Also werde ich überprüfen,
ob wir das zeigen oder wir jetzt zum ersten
Mal
die Taste drücken , wird der Mauszeiger nicht
angezeigt. Es ist standardmäßig falsch. Also, was wollen wir tun? Also, aufbauend auf
diesem falschen Zweig werden
wir ein Widget erstellen. Nun, welches Widget würden
wir gerne erstellen? Unser Pausenmenü. Offensichtlich das
WBP-Pausenmenü Jetzt reicht es nicht mehr aus
, es zu erstellen. Wir müssen es auch anweisen
, es zum Viewport hinzuzufügen. Aber bevor ich
das mache, klicke ich mit der
rechten Maustaste auf diesen
Pin hier. Und ich werde
unser Pausenmenü auf
eine Variable hochstufen . Es
hat gerade diesen Setter erstellt Und hier in unserem Abschnitt mit
meinen Blueprint-Variablen werden wir aufgefordert
, unserer Variablen einen Namen zu geben Also nenne ich das mein Pausenmenü. Und dann nehme
ich die Ausgabe und sage „Zum Viewport hinzufügen Das ist es, was
tatsächlich das Pausenmenü zum Viewport hinzufügen wird Und dann,
ganz am Ende, ziehe
ich die Maus ab und
tippe den Mauszeiger anzeigen Und dieses Mal möchte ich Mauszeiger anzeigen
einstellen. Und hier werde ich es
auf wahr setzen. Also hier ist die Idee. wir unser Spiel
zum ersten Mal pausieren, sagen wir, indem wir die
Taste auf unserer Tastatur drücken, wird es standardmäßig falsch sein. Also gehen wir das
hier durch, wir zeigen
unser Pausenmenü an. Und dann werden
wir sagen, ja, wir zeigen jetzt
das Pausenmenü an. Wenn wir
also erneut versuchen, die Taste zu
drücken, werden
wir aus dem richtigen Zweig
heraus feuern. Somit werden wir
am Ende nur eines
dieser Pausenmenüs erstellen. Wir werden nicht versehentlich eine zweite Instanz davon
erstellen. In Ordnung, aber wir sind noch
nicht fertig. Nachdem wir dieses Set aktiviert haben, zeigen wir den Mauszeiger auf true Was ich tun möchte, ist, einen Sound abzuspielen. Also spiele einen Sound ab, zwei D, wenn ich auf dieses Drop-down-Menü klicke, gebe
ich Pause ein. Ich habe diesen
Mario-Pausen-Soundeffekt. Und dann ist das
der wahre Clou. Ich ziehe das in die Länge
und tippe Spielpause ein. Es gibt eine Funktion
zum Einstellen der Spielpause und das ist es, was das Spiel tatsächlich unterbrechen
wird. Sobald Sie dieses Kästchen angekreuzt haben, ist es
sehr wichtig, dass Sie
dieses Kästchen ankreuzen. Okay, großartig. Also das wird das Spiel
tatsächlich unterbrechen. Wie pausieren wir es
mit derselben Eingabe? Nun, denken Sie daran, dass dies
beim ersten Drücken der Taste oder
der
Starttaste auf unserem Controller das erste Mal wahr wird beim ersten Drücken der Taste oder
der
Starttaste auf unserem Controller das erste Mal . wir also das zweite Mal
versuchen,
das zu drücken , werden wir den wahren Zweig
durchgehen. Was wir
hier also tun können, ist einen Verweis auf unser Pausenmenü einzufügen.
Das werden wir uns holen. Denken Sie daran, dass wir das
Pausenmenü genau hier erstellt haben. Und dann ziehen wir das
in die Länge und sagen „Eltern entfernen“. Aus dem Elternteil entfernen. Dadurch wird das
Pausenmenü im Wesentlichen vom Bildschirm
entfernt. So entfernen Sie ein
bestimmtes Widget vom Bildschirm. Sie erhalten einen Verweis
darauf und sagen, dass es aus dem übergeordneten Bereich entfernt werden soll. Sobald es entfernt ist,
was ich tun möchte, tippe ich
noch einmal Mauszeiger anzeigen ein und wir sagen nein, wir zeigen
unseren Mauszeiger nicht mehr. wir also das nächste Mal die Taste erneut
drücken, wird die Standardeinstellung ausgewertet, sodass
wir sie erneut erstellen können Lassen Sie uns auch Sound
für D abspielen. Sound Tot abspielen. Wir spielen den gleichen Pause-Sound , weil wir
unser Spiel genau hier Und dann ziehen wir die festgelegte Spielpause
heraus
und stellen dieses Mal sicher, dass sie Das wird also unser letztes Skript zum Pausieren
und Aufheben der Pause
sein . Wenn du
das Video hier pausieren willst ,
um das auszuwerten, versuche ich, das so gut wie möglich
einzurahmen Ordnung, lassen Sie uns das sofort kompilieren
und speichern. Und gib uns einfach einen kurzen Test. Also rein springen und spielen. Also gut, hier bin ich.
Ich tippe einfach auf die Taste auf meiner Tastatur. Ich sehe, dass das Pausenmenü angezeigt wird. Ich tippe erneut auf die Taste. Pause. Großartig. Ich werde es hier auf meinem Controller
ausprobieren. Also werde ich die sogenannte Start-Taste auf
dem klassischen Controller drücken sogenannte Start-Taste auf
dem ,
der den Controller pausiert Unterbrechen Sie es übrigens, Sie können diese Zeit sogar mischen und
anpassen Ich pausiere auf meinem
Controller und drücke die Taste auf meiner Tastatur
, um das Spiel anzuhalten. Nun, das ist alles schön und gut. Derzeit ist diese
Schaltfläche jedoch nicht interaktiv. Lassen Sie uns das auch
interaktiv machen. Damit wir das Spiel auch beenden können, indem wir
auf Continuum klicken Ordnung, um das zu tun, werden
wir unseren BP-Player-Controller
verlassen Wir kehren
zu unserem BP-Pausenmenü zurück. Wir gehen
zur Registerkarte „Grafik“ auf der rechten Seite,
direkt
drüben im Abschnitt „Meine
Blueprint-Variable Dort befindet sich ein Verweis auf
unsere Schaltfläche „Weiter“ Alles, was wir tun müssen, ist unter dem Detailbereich
nach unten zu gehen , wo „Klicken“ steht Fügen wir dafür ein Ereignis hinzu.
Also werde ich auf diese Plus-Schaltfläche klicken und sie
einfach wegziehen, wir sagen „Aus Eltern
entfernen“. Dadurch werden
wir quasi vom Bildschirm entfernt ,
wenn wir uns auf dem Bildschirm befinden. Und dann klicken wir mit
der rechten Maustaste holen uns den Player-Controller. Ich ziehe das in die Länge und
sage Mauszeiger. Ich werde Mauszeiger
anzeigen einstellen. Wir werden sicherstellen,
dass unser
Mauszeiger nicht mehr sichtbar ist. Wir werden dann Sound zwei
D abspielen . Ich bin sicher, Sie können sich
vorstellen, welchen Sound wir dieser Pause abspielen
möchten. Sound Und dann, um
diese Offset-Spielpause zu beenden. Wir werden das so setzen, dass ich sagen
wollte, dass es falsch ist, was auch falsch ist Stellen Sie also sicher, dass das falsch ist. Lassen Sie uns das kompilieren und speichern. Und dann reinspringen und spielen. Ich tippe auf diese Taste
auf meiner Tastatur. Mein Mauszeiger ist oben. Ich kann jetzt auf
diese Schaltfläche „Weiter“ klicken. Fahren Sie fort. Und es unterbricht das Spiel und los geht's. Pause einlegen. Arbeit. Gut gemacht, Leute. Wir haben ein
funktionierendes Pausenmenü, Leute,
das reicht für diesen. Wir sehen uns im nächsten.
104. BONUS - Spieler-Sprint: Ordnung, willkommen zurück. Ein Bonus-Video für euch alle.
Ich werde
euch zeigen, wie ihr eurem Spiel
eine Sprint-Mechanik hinzufügen könnt eurem Spiel
eine Sprint-Mechanik Und zu Beginn
befinde ich mich in meinem Ordner für
Eingabeaktionen für Dritte Dieses Verzeichnis genau hier, und wir werden
eine neue Eingabeaktion erstellen. Lassen Sie uns weitermachen und mit der rechten
Maustaste in eine leere Stelle klicken. Wir werden unter
Eingabe-Eingabe-Aktion fallen. Das ist das Asset, das wir schaffen
wollen. Einen Underscore-Sprint nenne
ich diesen Typen. Und da ist nichts drin
, was ich einstellen muss, also werde ich
darauf klicken und speichern. Jetzt
muss ich dieses Ereignis in
meinen Eingabe-Mapping-Kontext einfügen meinen Eingabe-Mapping-Kontext Und noch einmal, um zu verstehen welchen
Eingabe-Mapping-Kontext wir verwenden, können
wir in unseren
Charakter-Blueprint gehen Da ist mein BP, ein Charakter aus der dritten
Person. Das ist der, den ich für diesen Kurs
verwende Hier, wo dein
Event beginnt, zu spielen. Und ich muss mir da oben eine Sequenz
notieren. Wir haben unseren Mapping-Kontext. Dies ist die Liste der Eingabeereignisse, die unser
Spiel derzeit verwendet. Und wenn ich auf diesen
Browser und Inhaltsbrowser klicke, kann
ich sehen, dass es dieser
hier ist, mein IMC-Standard Also werde ich
darauf doppelklicken, um es zu öffnen. Und jetzt muss ich hier ein
Sprint-Event hinzufügen. Um das zu tun,
muss ich unter
dieser Plus-Schaltfläche für Mappings klicken dieser Plus-Schaltfläche für Mappings Das wird diesen
Eintrag genau hier unten erstellen. Und jetzt muss ich nur noch
meinen Sprint einbauen,
die Eingabeaktion, die
ich gerade erstellt habe. Jetzt muss ich nur noch etwas tun,
und aus welchem Grund
auch immer wieder diese
Art von seltsamen Effekten, ich muss dem
ein paar Knöpfe zuordnen. Also, wie möchte ich
meinen Charakter zum Sprinten bringen? Nun, ich werde auf
diese Tastatur klicken und sagen, dass das mit der linken
Shift-Taste erledigt wird. Ich werde noch einmal
darauf klicken. Es wird
diese seltsame Sache machen, und ich werde
auf diese Tastatur klicken. Und ich sage, die rechte
Umschalttaste kann das auch tun. Und dann werde
ich für
Controller-Benutzer da draußen noch einmal auf diese
Plus-Schaltfläche klicken. Und ich werde auch sagen
, wenn ich die Taste gedrückt halte, sage
ich, dass es die X-Taste auf meinem Xbox-Controller
ist, die als
Gamepad-Gesichtstaste links bekannt ist Dass das auch das auslösen
wird. Okay, da das hier zu
meinem
Input-Mapping-Kontext-Asset hinzugefügt wurde , lassen Sie uns weitermachen und das speichern. Und jetzt können wir wieder in unseren Charakter
aus der dritten Person zurückkehren. Und ich werde hier
wieder reinzoomen. Und ich glaube, ich werde
dieses kleine Drehbuch, das
ich gleich schreiben werde, einbauen. Es wird ziemlich kurz sein. Ich lege es hier direkt
neben meinen Sprungeingang. Also werde ich hier nur ein bisschen herumschwenken
. Ich werde in eine leere
Stelle klicken und nach
einem Sprint suchen. Es ist der mit dem
Pfeil direkt daneben. Da ist mein Action-Event, das ein bisschen vergrößert wird Ich möchte mit
der
Bewegungskomponente meines Charakters sprechen Bewegungskomponente meines Charakters Weil unsere
Bewegungskomponente hier unsere maximale Gehgeschwindigkeit ist , die derzeit auf 1.000 eingestellt ist.
Das bestimmt, wie
schnell unser Charakter gehen kann. Ich ziehe das rein,
dann ziehe ich es weg und
sage „Gehgeschwindigkeit festlegen“. Ich werde das auch auf eine neue Geschwindigkeit einstellen
wollen, wenn wir anfangen,
diese Aktion zu Lassen Sie mich einfach Control plus
D drücken, um diesen Knoten zu duplizieren, sowie wenn wir diese Aktion
abgeschlossen haben Das ist in unserem Fall, indem Sie eine der
Umschalttasten oder die X-Taste auf unserem
Xbox-Controller gedrückt halten. Was soll die
neue maximale Gehgeschwindigkeit sein
, wenn ich dieses Ereignis
initiiere? Nun, ich denke, ich werde
es einstellen und dazu muss ich tatsächlich meine Standard-Bewegungsgeschwindigkeit zurücksetzen Derzeit ist meine standardmäßige maximale
Gehgeschwindigkeit auf
1.000 eingestellt . Ich werde sie auf etwa 650 einstellen, wenn
ich nicht Und dann sage ich,
wenn ich sprinte, ich das auf 1.200 ein. Dann, weil ich das für meine
Charakterbewegungskomponente
standardmäßig auf 650
zurückgesetzt habe, sage
ich, dass, wenn wir
nicht sprinten,
wenn wir die Sprint-Taste gedrückt gehalten haben,
das die X-Taste auf einem Xbox-Controller
oder die linke oder rechte Umschalttaste ist . Ich setze das wieder auf den Wert von
650 zurück. Das sollte reichen.
Lassen Sie uns also weitermachen und hier
kompilieren, um sicherzustellen, dass unser Skript gut aussieht. Und speichern Sie dann, springen Sie
rein und spielen. Lass uns das mal spielen. Und wenn ich mich einfach
hin und her bewege, fahre ich
jetzt langsamer. Wenn ich jetzt
die Shift-Taste gedrückt halte, können
Sie sehen, dass
ich mitfahre Und wenn ich die Shift-Taste loslasse, gehe
ich zu einer langsameren Geschwindigkeit zurück So können wir unserem Spiel eine
Sprint-Mechanik hinzufügen. Hoffe ihr mögt
das, Leute. Das reicht für diesen aus. Wir sehen uns, ob du den nächsten gewinnst.
105. BONUS - Erweiterung der Feuerblumenzeit: In Ordnung, noch ein
Bonus-Video für alle hier. Ich möchte es so machen, dass, wenn unser Charakter
die Feuerblume einsammelt, aber die Zeit
etwas langsamer wird,
im Gegensatz
dazu,
dass unser Charakter einfach durch diese Feuerblume läuft und sofort
größer wird Ich möchte diesen Effekt
ein bisschen besser verkaufen .
Also, wie können wir das machen? Nun, dafür
können wir etwas verwenden, das als globale Zeitdilatation bezeichnet wird Das ist eine Möglichkeit, die Zeit zu verlangsamen. Das kann in unserem
Charakter aus der
dritten Person, Blueprint, geschehen Charakter aus der
dritten Person, Blueprint, Falls du vergessen hast, wo das ist, Baupläne für die
dritte Person, ist
da noch unser Charakter aus der dritten
Person Lass uns den Kerl hier drinnen
öffnen. Ich möchte zu dem
Drehbuchabschnitt gehen, in dem unser Charakter
die Feuerblume gesammelt hat. Das hat Flower Power. Sobald dieses benutzerdefinierte
Ereignis ausgelöst wird , ziehen
wir es von
hier aus und stellen die globale Zeitdilatation Und wieder
kann das die Zeit verlangsamen. Ein Wert von 0,0 würde
bedeuten, dass die Zeit gestoppt wird. 1,0 bedeutet 100% unserer gewohnten Zeit. Ein Wert von 0,5 würde bedeuten , unseren
Zeitfluss zu halbieren. Ich werde unsere
Zeitdilatation hier auf
0,2 einstellen und dann werden wir all diese Dinge genau hier
machen Wenn wir mit
dem gesamten
Charakterwachstumseffekt fertig sind , ist das wichtig Ich möchte unsere
globale Zeitdilatation so einstellen, dass sie wieder zum
gewohnten Zeitfluss Also, was ich hier tun kann, ist,
von diesem Zielstift
aus zu ziehen und zu sagen, globale Zeitdilatation
einstellen Ja, stellen Sie sicher, dass es vom Ende
unserer Zeitleiste
kommt und dann
in die Richtung unseres Schalters auf
Timeline geht in die Richtung unseres Schalters auf
Timeline Hier werden wir unsere
Zeit auf die übliche Zeit zurücksetzen, die 1,0 sein wird.
Das ist alles schön und gut. Es gibt noch eine Sache, die ich
tun möchte , ist, dass
ich hier innerhalb
unserer Zeitleiste auf diesen Knoten
doppelklicke. Hier drinnen haben wir
diese Knöpfe oben. Und das hier
ist Ignoriere die Zeitdilatation. Also wollen wir die
Zeitdilatation ignorieren , solange dieser
Effekt anhält Also werde ich das einschalten, und wenn es an ist und
es hier blau ist, dann können wir den
ganzen Effekt testen Lassen Sie mich einfach noch einmal zu
unserem Ereignisdiagramm zurückkehren Ganz
am Anfang der
Flower-Power-Funktion werden
wir die Zeit verlangsamen. Wir werden diesen Effekt
auf das Wachstum unserer Charaktere
ignorieren . Und sobald diese
Zeitleiste fertig ist, werden
wir diese Zeit
wieder auf ihren gewohnten Ablauf umstellen. Lassen Sie uns das kompilieren und speichern und loslegen und spielen. Und los geht's. Ich
werde die Shift-Taste gedrückt halten, um
meine neuen Sprint-Fähigkeiten zu nutzen. Und lass mich hier einfach
auf diesen Mistkerl herumtrampeln. Werde ihn wirklich schnell los. In Ordnung, und jetzt schau was passiert, wenn ich diese Feuerblume
einsammle. Ein bisschen
langsame Zeit und dann zurück zu unserem gewohnten Zeitfluss. In Ordnung, Leute,
das reicht für diesen. Wir sehen uns im nächsten.