Transkripte
1. UE5 FC01 01 Promotion: Hallo und willkommen
zum kompletten Anfängerkurs von Unreal Engine Five Mein Name ist Alona Bazade und
ich werde deine Lehrerin sein. Wenn du
mit Unreal Engine arbeiten
und Spieleentwickler werden möchtest , dieser Kurs
die perfekte Wahl
für ist
dieser Kurs
die perfekte Wahl
für dich. Folgendes wirst du lernen Grundlagen. In diesem Abschnitt lernst
du die Grundlagen
von Unreal Engine Wir werden uns zunächst mit
der Benutzeroberfläche, den wichtigsten Navigationstools und den
Tastenkombinationen befassen, mit denen Sie Ihren Arbeitsablauf
verbessern können Schauspieler. Schauspieler sind
die Bausteine jedes
Unreal Engine-Projekts In diesem Kapitel werden
Sie sich mit dem
Konzept von Akteuren,
Meshes und Objekten befassen Konzept von Akteuren,
Meshes und Sie werden verstehen, wie sie interagieren und wie Sie mit
ihren Abhängigkeiten umgehen können Materialien. Materialien sind der Schlüssel zu einem visuell
ansprechenden Projekt. In diesem Abschnitt erfahren
Sie, wie Sie Materialien
in Unreal Engine
erstellen und ändern Modellieren. Unreal Engine bietet
leistungsstarke Modellierungstools, Ihnen in diesem Abschnitt
vorgestellt werden. Sie lernen, wie Sie
direkt in der Engine
modellieren, Assets
erstellen und sie an die Bedürfnisse Ihres Projekts
anpassen können. Blitzsystem. Das
Beleuchtungssystem von Unreal Engines ist eine der
leistungsstärksten Funktionen Du lernst, wie du
Lichtkonfigurationen mithilfe von
Richtungspunkten und Scheinwerfern erstellst Lichtkonfigurationen mithilfe von
Richtungspunkten und Wir werden uns auch mit
dynamischer und statischer Beleuchtung befassen und lernen, wie Sie Ihre
Szene optimieren können Baupläne. Die
Blueprints ermöglichen es Ihnen, komplexe
Spielmechaniken zu
erstellen ohne eine
einzige Codezeile schreiben Wir werden uns ausführlich mit Visual
Scripting befassen und dir zeigen, wie du Interaktionen,
Ereignisse und Auslöser
zwischen Akteuren und Objekten
einrichtest ,
Ereignisse und Auslöser
zwischen Akteuren und Objekten Landschaft und Mastermaterial. In diesem Abschnitt dreht sich alles um die Schaffung von
Umgebungen. Du lernst, wie du
riesige Landschaften und
Terrains für deine Projekte baust riesige Landschaften und
Terrains für deine Projekte Wenden Sie dann das
Master-Materialsystem an, um Ihre Umgebung
automatisch
mit Biomen und Texturen zu füllen mit Biomen Spielweise. In diesem Kapitel konzentrieren
wir uns auf die
Spielmechanik. Du wirst lernen,
Interaktionen zwischen
deinem Charakter und der
Umgebung zu erzeugen . Minispiel. In diesem letzten Abschnitt wirst
du alles zusammenfügen, um ein Minispiel zu erstellen Dieses praktische Projekt
wird dir helfen,
den gesamten Arbeitsablauf zu verstehen ,
von der Einrichtung eines Projekts über die Erstellung von
Umgebungen
und die
Programmierung von Interaktionen bis hin Programmierung von Interaktionen zur Fertigstellung eines Dieser Kurs ist so strukturiert
, dass er Ihnen einen schrittweisen Ansatz
zum Erlernen der Unreal Anhand praktischer Beispiele aus
der realen Welt erwirbst du nicht nur
technische Fähigkeiten, sondern auch ein tieferes Verständnis dafür wie ein
Spieleentwicklungsprozess angegangen werden muss Lass uns eintauchen und anfangen mit Unreal
Engine five zu
kreieren. Mm.
2. UE5 FC02 01: Willkommen bei den
fünf Basisshops von Unreal Engine. In den nächsten Stunden werden
wir uns mit der
Projekteinrichtung, der
Schnittstellennavigation, der Einrichtung der
Umgebung und der Erstellung interagierbarer
Objekte und Akteure Am Ende dieses Kurses sollten
Sie in der Lage sein, Unreal Engine
5
bequem zu verwenden und über grundlegende
Kenntnisse aller Kernfunktionen
von Unreal Engine verfügen aller Kernfunktionen
von diesen Kurs sind
keine Vorkenntnisse über
Unreal Game Death oder
C Plus oder CSA erforderlich Unreal Game Death oder
C Plus oder CSA Bevor wir mit der
Vorlesung fortfahren können, müssen
wir UnreleEngine herunterladen Wenn du
Unreal Engine bereits installiert hast, dieses Video
gerne ignorieren
und die nächste Lektion überspringen Um Unreal
Engine herunterzuladen, müssen
wir zuerst Epicamesauncher herunterladen Sie können dies tun, indem Sie auf
unrealengine.com gehen und auf die Schaltfläche Herunterladen klicken Wenn Sie nicht wissen, wie das geht, oder wenn Sie Schwierigkeiten haben,
es zu verstehen, klicken
Sie bitte auf dem Bildschirm rechts auf WatchOWT Install ink Dadurch wirst du zu einem
YouTube-Video
weitergeleitet, in dem der Vorgang
erklärt und Schritt für Schritt erklärt wird weitergeleitet, in dem der Vorgang
erklärt und Schritt für Schritt erklärt Nachdem Epic Games installiert
ist, installieren
wir die Engine selbst. Klicken Sie auf die Unreal
Engine, tippen Sie auf der linken Seite und gehen Sie zur Bibliothek Hier kannst du auswählen, welche
Unreal Engine wir benötigen. Wir werden Unreal Engine
Five Dot Four für diesen Kurs verwenden Five Dot Four für diesen Zu Demonstrationszwecken werde
ich Five Dot Three herunterladen Aber hier müssen Sie auf Five Dot Four
klicken. Nachdem Sie auf Ihre Engine-Version geklickt und diese
ausgewählt haben, klicken Sie auf die Schaltfläche Installieren Und jetzt müssen wir einen
Ordner für die Unreal Engine auswählen. Stellen Sie sicher, dass Sie das
SSD-Laufwerk auswählen, falls Sie
eines haben , und klicken Sie auf Optionen Wenn Sie nach unten scrollen,
sind diese vier Optionen möglicherweise standardmäßig
ausgewählt. Sofern Sie nicht daran interessiert sind für diese
spezielle Plattform zu
entwickeln,
sollten Sie sie überprüfen, da dadurch
die für
Ihre Unreal Engine erforderliche Größe reduziert wird die für
Ihre Unreal Engine erforderliche Größe Achten Sie darauf, dass die
Starter-Inhalte, Vorlagen- und Feature-Packs sowie die Engine-Quelle aktiviert Für das Debuggen benötigen Sie keine
Editorsymbole. Klicken Sie auf Anwenden und dann auf Installieren. Real Engine Five installiert sich jetzt von
selbst auf Ihrem PC.
3. UE5 FC02 02: Lassen Sie uns nun mit der
Erstellung eines neuen Projekts beginnen. Klicken Sie auf die Startschaltfläche und warten Sie einen Moment
, bis es initialisiert Hier haben wir eine Auswahl an Vorlagen,
die wir verwenden können und die von Unreal bereitgestellt werden Wir haben hier mehrere
Auswahlmöglichkeiten für Spiele, Film, Video, Architektur,
Automobilindustrie und Simulation Für diesen Kurs verwenden
wir die Vorlage für Spiele mit
Zertifikatspersonen Stellen Sie sicher, dass Sie
Ihrem Projekt einen Namen geben, und denken Sie
daran, dass Sie kein
Leerzeichen verwenden
dürfen und der Name aus weniger als 20
Buchstaben bestehen Wir müssen jetzt die Standardeinstellungen für
das Projekt auswählen. Klicken Sie auf den Blueprint,
Desktop, Maximum und fahren Sie mit dem
Startinhalt fort Wir werden keine
Ratespiele verwenden, aber um zu bedenken, ob Ihr Projekt dies erfordert, sollten Sie
dies All dies kann nach der Erstellung
vom Projekt aus geändert werden . Falls Sie also
etwas ändern müssen ,
können Sie das später tun. Klicken Sie auf die Schaltfläche Erstellen. Nehmen Sie sich einen Moment Zeit, um Ihr Projekt zu
erstellen. Und jetzt ist dein unwirkliches
Projekt fertig. Wir sehen uns in der nächsten Vorlesung.
4. UE5 FC02 03: Lassen Sie uns nun über
die Fenster sprechen, die uns
zur Verfügung stehen. Auf der linken Seite haben wir das Fenster
Place Actors. Es ist ein Fenster, in dem Sie jeden Akteur, jedes
Objekt, jede Form oder jedes Licht,
alles, was wirklich ist, einfach
per Drag-and-Drop Objekt, jede Form oder jedes Licht,
alles, was wirklich ist, in
Ihre Szene ziehen können. Sie können
hier auch Ihr
eigenes SSP erstellen , das Sie
einfach per Drag & Drop
in die Szene ziehen können einfach per Drag & Drop
in die Szene Auf der rechten Seite
haben wir World Outliner. Was macht World Outliner? World Outliner ist eine
Liste aller Objekte oder Schauspieler, die in
Ihrer Szene im Level vorkommen Sie können sie hier anklicken und sie werden automatisch
im Level ausgewählt Sie können hier klicken und
Sie können den Namen sehen. Es ist sehr nützlich, Ihr Layout zu
organisieren. So
befinden sich beispielsweise alle Blöcke im Blockordner. Sie können sie in
Kombination ausblenden, anstatt sie
einzeln
anzuklicken und
sie aus der Ebene auszublenden oder sie zu
löschen oder zu verschieben. Du kannst auf
mehrere Objekte gleichzeitig klicken oder
auf diese Weise, um
sie
gleichzeitig zu verschieben . Das ist ziemlich nützlich. Sie können sich in Ihrer
Unreal Engine-Szene in
allen Fenstern bewegen in Ihrer
Unreal Engine-Szene in
allen Fenstern Sie können zum Beispiel
den Outliner nehmen, ihn abtrennen, ein separates Fenster
erstellen, ein separates Fenster
erstellen, oder Sie können ihn
an einer anderen Stelle anbringen, am unteren Bildschirmrand oder
vielleicht möchten Sie ihn Es liegt wirklich an dir. Du
kannst es entfernen. Wenn du willst. Und wenn du es zurück haben willst, kannst
du jederzeit zum
Fenster gehen, oben drauf tippen und das Fenster
finden, das
du gerade entfernt hast. Sie können auch mehrere Fenster
mit derselben Sache haben. Outliner ist jetzt also zurück und ich bevorzuge ihn auf der rechten Seite Wir haben auch Detailspanel. Wenn Sie also ein
Objekt ausgewählt haben, erhalten
Sie hier detaillierte
Informationen. Also lass mich das hierher verschieben. Obendrauf, wie ich es bevorzuge. Und jetzt haben wir Zugriff auf die Informationen
über dieses Objekt. Wie Sie sehen können, ändert sich der
Ort
der Transformation hier, wenn ich das verschiebe . Ich kann
jeden beliebigen Wert manuell eingeben. Ich kann ihn von
hier aus drehen, wenn ich möchte, oder ihn nach oben oder unten skalieren. Wenn ich es einheitlich skalieren möchte, kann
ich auf diese
Sperrtaste klicken und es auf diese Weise skalieren Hier gibt es auch Materialien und Mesh. Wenn Sie also ein Objekt in
der Szene
haben, für das Sie die
gesamte transformierte
Position und den überschüssigen Maßstab beibehalten möchten, Sie
aber das Mesh ändern möchten, können
Sie hier klicken und suchen oder einfach das Mesh auswählen, zu dem
Sie wechseln möchten. Jetzt möchte ich
es auf diesen Stuhl umstellen. Also habe ich auf den Stuhl geklickt. Jetzt haben wir einen Stuhl. Schauen wir es uns genau an. Und ja, jetzt haben wir
einen Stuhl in der Szene. Wenn ich es rückgängig machen will, kann
ich immer
Z kontrollieren . Jetzt habe ich meinen Würfel. Wenn ich das Material ändern möchte, kann
ich hier einfach ein
Material auswählen. Versuchen wir es mit dieser Königin 01. Und jetzt
sieht unser Würfel anders aus. Lass uns erstmal eine gelbliche Mischung
mit etwas Metallic nehmen. Es ist das gleiche Material, das für den Stuhl verwendet
wurde. Nun, da wir mit der
Betrachtung der
Details und der Gliederung fertig sind , lassen Sie uns über Content Drawer sprechen Sie können hier auf die
Inhaltsleiste klicken
, um sich
alle Ressourcen anzusehen , die
Ihnen in Ihrem Projekt zur Verfügung stehen Der Starterinhalt
enthält viele nützliche Meshes, Materialien, Requisiten und
Partikel, um die
Unreal Engine zu erlernen, und falls du nur einen
Prototyp eines Levels für dein Spiel erstellen möchtest Gehen wir hier zu den Requisiten,
und wir haben mehrere
Meshes, aus denen wir Also lass uns einen Tisch aufstellen. Und ziehen Sie es einfach per Drag &
Drop in die Szene und
geben Sie ihm einen Moment, um Shader zu
kompilieren Und jetzt hast du einen
Stuhl auf deinem Bildschirm. Wenn Sie möchten, dass
Ihr Inhaltsbrowser jederzeit
sichtbar ist und Sie nicht nach unten
gehen und sich verstecken möchten, können
Sie hier auf die Schaltfläche Dokument
im Layout klicken. Auf diese Weise haben Sie jederzeit
einen Inhaltsbrowser auf Ihrem Bildschirm. Sie können ihn in
Ihren zweiten Bildschirm oder wie alle anderen Fenster einfügen, Sie können
ihn einfach irgendwo anhängen. Deshalb bevorzuge ich es, es
unter meinem Bildschirm zu haben. Wenn Sie Probleme mit
Ihrem Layout haben oder
sagen wir, Sie haben die Fenster irgendwie gelöscht und sich nicht mehr an ihre
Namen erinnern oder
wissen, wie Sie sie wiederherstellen können, klicken Sie oben
auf die Registerkarte Fenster. Klicken Sie auf Layout laden und dann
auf Standard-Editor-Layout. Dadurch wird das echte Layout wiederhergestellt. Sie können auf Control Space klicken und schon haben Sie wieder Ihren
Inhaltsbrowser, Ihren Detailbereich
und Outliner Möglicherweise stellen Sie fest, dass wir den Tab „Schauspieler
platzieren“ nicht mehr haben. Das liegt daran, dass dies
das Standardlayout für Unreal Four Classic ist, das wir nicht wirklich benötigen Der Tab Place Actors kann
auch von hier aus aufgerufen werden. Alles, was sich
mehr oder weniger an
der Stelle befindet, kann hier aufgerufen werden, und Sie können jederzeit einfach auf eine
gewünschte Form oder ein Objekt
klicken gewünschte Form oder ein Objekt und es dann einfach in Ihrer Szene
auftauchen lassen. der Registerkarte Windows gibt es noch viele
andere Fenster, über die wir in den zukünftigen Vorlesungen
sprechen werden. Noch ein paar Details
zur unrealen Oberfläche. Wenn Sie ein Objekt ausgewählt haben
und es bewegen, werden
Sie sehen, dass es sich in
einem bestimmten Tempo bewegt ,
als würde es einrasten Das liegt daran, dass wir
diese Option hier aktiviert haben. Wenn Sie den Fangmodus erhöhen, wird
er nur in Schritten von 100
ausrasten Wenn du es wie eins
auslegst, wirst du sehen, dass du
eine sanfte Bewegung hast Und wenn Sie es einfach deaktivieren, haben
Sie noch mehr
inkrementelle Bewegungen Ich persönlich lasse es
gerne bei
eins oder zehn stehen eine einheitliche Position
für meine Objekte in der Szene zu haben Sie können dasselbe mit
Rotation und Skalierung tun. Wir haben hier auch
Viewport-Optionen. Wenn Sie hier auf die
Viewport-Optionen klicken, drei Zeilen auf der linken Seite, stehen
Ihnen viele
Optionen zur Verfügung Wir werden
in den nächsten Vorlesungen darüber sprechen,
aber den Punkt, den Sie
wahrscheinlich im Hinterkopf behalten sollten ,
ist die Prozentzahl des Bildschirms Wenn Sie den
Prozentwert für den Bildschirm aktiviert haben, können
Sie auf Benutzerdefiniertes Überschreiben klicken
und dann auf den gewünschten
Prozentsatz des Bildschirms klicken. Wenn du dir den Hintergrund
der Linien
auf den Objekten ansiehst und ich den Prozentwert meines
Bildschirms reduziere, werden
die Linien rot verschwimmen Das liegt daran, dass dadurch
nur noch 25% der im Skin
verfügbaren Polygone wiedergegeben nur noch 25% der im Skin
verfügbaren Polygone Wenn Sie 200 eingeben, werden
sie mit einer
höheren Auflösung gerendert Ich empfehle, es bei
100 zu belassen, um eine gute Qualität zu erzielen. Das ist ein guter Hinweis darauf,
wie dein Spiel aussehen wird. Wenn Ihr Spiel eine
niedrigere Auflösung hat und die
Einstellungen aktiviert sind, können
Sie
sich im Grunde auch ein gutes davon
machen, indem Sie beispielsweise angeben,
ob Ihr Spiel
eine Auflösung von 50% haben soll,
können Sie es einfach hier platzieren,
und jetzt sieht es so ob Ihr Spiel
eine Auflösung von 50% haben soll ,
können Sie es einfach hier platzieren,
und jetzt sieht es aus, wenn Ihr Spiel nur eine Auflösung von
50% hat oder 25 oder 200, sagen wir vier K. Wir werden das besprechen
In zukünftigen Vorlesungen gibt es auch die Registerkarten Auswahlmodus, Landschaft, Laub,
Netz, Modellierung ,
Bruch, Pinsel
und Animation, die wir auch
in der zukünftigen Vorlesung eingehen werden. Wenn Sie hier
die Play-Taste oder
OP auf Ihrer Tastatur drücken , wird der Play-Modus aktiviert Der Spielmodus simuliert
im Wesentlichen Ihr Spiel. Wir haben die
Vorlage für eine dritte Person ausgewählt, also haben wir alles
für eine dritte Person vorbereitet Sie können sich bewegen,
indem Sie WAST Jump verwenden. Und wenn
je nach Vorlage
einige Vorlagen eine Waffe, mit der Sie
schießen können, oder ein Fahrzeug, mit dem Sie
sich bewegen können , oder fliegende
Objekte enthalten, mit denen Sie fliegen können Lassen Sie uns nun über die unwirkliche
Benutzeroberfläche und Navigation sprechen. die rechte Maustaste
gedrückt, um sich in Ihrer Kamera rechte Maustaste
gedrückt Wenn Sie vorwärts gehen möchten, klicken Sie auf W S rückwärts, links, A, rechts, T, runter Q E für oben Sie können nach oben scrollen, um die
Bewegungsgeschwindigkeit Ihrer Kamera zu erhöhen oder zu
verringern Oder Sie können hier klicken und
Ihre Kamerageschwindigkeit auswählen. Wir haben auch Gizmos Sie sich
um die
Objekte in der Szene bewegen Wenn Sie Objects Gizmo
ausgewählt haben, werden
Sie standardmäßig werden
Sie Wenn Sie auf W oder oben auf
das Symbol
Objekte auswählen und übersetzen klicken , werden diese
Pfeile Diese Pfeile können verwendet werden
, um sich um das Objekt zu bewegen. Oder Sie können auf den Kreis klicken und ihn im Drei-D-Bereich
verschieben. Sie können auch auf
Iki oder dieses Symbol oben klicken, Objekte
auswählen und drehen
, sodass Sie
Gizmo verwenden können Es gibt auch Gizmo für skalierbare
Objekte. Klicken Sie auf R oder klicken Sie oben auf
dieses Symbol und Sie können Ihre
Objekte nach Belieben skalieren Um Ihr Gizmo auszublenden, können
Sie jederzeit
auf die Cue-Taste oder auf das Symbol „Objekte auswählen“ oben
klicken , um
Ihr Gizmo auszublenden und sicherzustellen, dass Sie Ihre Objekte nicht
versehentlich verschieben
5. UE5 FC03 01: Willkommen zur Vorlesung.
In dieser Vorlesung werden
wir uns eingehender mit
der Manipulation
von Schauspielern
und Objekten in der Szene befassen. Wir haben
das Thema bereits im vorherigen
Video angesprochen , aber in diesem Video werden
wir uns
eingehender damit befassen, wie man
die Hotkeys und Parameter verwendet, um es
zu manipulieren. Wir haben hier also eine Tabelle, die mit
unseren Gizmos manipuliert werden kann , wie
im vorherigen Video besprochen Bewegung, Drehung und Skalierung Wir können auch klicken und die
Alt-Taste gedrückt halten, um das Objekt zu duplizieren Sie können bei gedrückter Umschalttaste
auf mehrere Objekte klicken Alt-Taste auch
mehrere Objekte duplizieren. Wenn Sie die Umschalttaste gedrückt halten
und Ihre Objekte
bewegen, bewegt sich
Ihre Kamera mit. Wenn Sie die Umschalttaste und die Al-Taste
gleichzeitig drücken , während
Sie Ihr Objekt bewegen, erstellen
Sie ein Duplikat
und Ihre Kamera
bewegt sich mit einem neu erstellten
Duplikator des Wenn Sie mehrere Objekte auswählen, wie ich es jetzt getan habe, und
versuchen, sie zu drehen, erfolgt
die Drehung um
das zuletzt ausgewählte Sie können ganz einfach definieren
, um welches es sich handelt, indem Sie nachschauen
, wo sich Ihr Gizmo Wenn wir das Netz
des Objekts ändern und dabei
seine Position und die
Transformationsparameter der Parameter beibehalten möchten, können
Sie dies hier
im statischen Netz tun Nehmen wir an, wir möchten
diesen Tisch in einen Stuhl verwandeln. Zum Glück gibt es ihn als
Starter-Content, wir können ihn
also einfach
hier anklicken und schon haben wir einen Stuhl Wenn wir nun versuchen, den Standort
des Assets zu finden , für den
wir diesen Tisch oder Stuhl verwenden, und Sie sich nicht sicher sind wo er sich in
Ihrem Inhaltsbrowser befand, können
Sie jederzeit auf
dieses Symbol hier klicken und Sie werden direkt
zum Speicherort des Elements weitergeleitet So können wir jetzt den Inhalt, den
gestarteten Inhalt und die
Requisiten im Ordner sehen gestarteten Inhalt und die
Requisiten im Ordner Und was wir hier tun können, wir können auf ein Objekt klicken Lassen Sie uns den zweiten
Tisch einrichten und in unserem Inhaltsbrowser auf
die Couch
und hier auf das Detailfenster klicken in unserem Inhaltsbrowser auf
die Couch . Während dies
im Inhaltsbrowser ausgewählt ist, klicken Sie auf diese Arochie. Dadurch wird
das ausgewählte Mesh automatisch in ein Asset umgewandelt wir
im Inhaltsbrowser ausgewählt haben Dies funktioniert nicht nur für Netze, sondern auch für Materialien und andere Arten von
Objekten, deren Protokollierung den
Inhaltsbrowser verwendet werden
kann Nehmen wir an, wir wollen das in etwas anderes ändern
. Lassen Sie uns den Vorgang wiederholen. Nehmen wir an, nehmen wir eine Statue und verwandeln
dieses Objekt in eine Statue. Und jetzt haben wir eine Statue
, die wir auf den Tisch stellen können, was wir gut machen können. Und nehmen wir an, wir
wollen einen zweiten Stuhl. Einfacher Weg, das zu tun. Klicken Sie auf Automatisch
ausgewählt werden. Klicke darauf und sei. Jetzt haben wir unseren Stuhl und die Couch und die Lampe oder was auch immer dieses Glas sein
soll. Jetzt wollen wir darüber sprechen, wie man ihre Materialien
manipuliert. Also auf ähnliche Weise. Nehmen wir an, wählen Sie diese Couch und wir haben hier
einen Materialordner. Dies sind
Standardmaterialien, die
mit dem Startinhalt
der Unreal-Engine geliefert mit dem Startinhalt
der Unreal-Engine Und wir haben hier Optionen. Wie Sie sehen können, haben wir
ein Material namens Chair, das
für diese Couch verwendet wird. Lassen Sie uns dieses Material durch
etwas anderes ersetzen. Lass es uns jetzt versuchen. Wie Sie sehen können, muss
ich nur
auf das Material
und dann auf das Symbol klicken. Sie können das
Material aber auch auf das Objekt selbst ziehen. Sie können es auch aus der
Liste auswählen, wenn Sie dies wünschen. Möglicherweise müssen Sie warten, bis es kompiliert ist, und Sie können jederzeit, wie ich bereits sagte, einfach darauf klicken und
es über ein beliebiges Material
diktieren Lass es uns golden haben. gibt es zusätzliche Optionen Hier im
Detailbereich zu Ihrem Objekt gibt es zusätzliche Optionen. Zuallererst, wenn
Sie feststellen, dass sich eine Waage befindet und sich in der Nähe der Skala ein Schlosssymbol befindet. Wenn Sie es nicht
gesperrt haben und versuchen, ein Objekt
zu skalieren, wird
es, um genau zu sein, nur in
eine Richtung auf einer
Achse skaliert . Wenn Sie das Objekt fixieren und sich
während der Transformation fortbewegen, wird
es das gleichmäßig tun Denken Sie daran, dass
Sie jederzeit einfach die gewünschte Auflösung und die
gewünschten Werte eingeben können Und wenn Sie
es mit komplizierten Zahlen oder Skalen verwenden, denken Sie daran. Du kannst solche Sachen machen. Sagen wir eins plus 00 Punkt fünf. Das Unwirkliche wird
die Messe für dich erledigen. Wenn du die Skala verdoppeln willst, kannst
du einfach auf Multiplizieren
und Zwei klicken. Also verdopple es. Sie können sowohl dividieren als
auch multiplizieren. Sie können alle Massenoperationen
mit den Werten durchführen , die Ihnen das
Unwirkliche gibt Und es ist nicht
nur auf das Detail-Panel beschränkt. Es kann so ziemlich
überall im Unwirklichen verwendet werden. Wir haben hier
im Detailbereich weitere Optionen, auf die jetzt
nicht eingegangen Wir werden sie später behandeln. Lassen Sie uns jetzt eine Aufgabe erledigen. Sie haben Zugriff auf
Ihre Starter-Inhalte und alle darin enthaltenen Requisiten Gehen Sie zum Ordner Requisiten und wählen Sie die gewünschten Netze
aus, statische Ziehen Sie sie, legen Sie
sie in die Szene und erstellen Sie ein kleines Set nach
Ihren Wünschen Testen Sie einfach Ihre Tools
und gewöhnen Sie sich daran.
6. UE5 FC03 02: Ja. Lassen Sie uns jetzt darüber sprechen, wie wir unsere Szene organisieren können. Wie Sie sehen können, habe ich hier
eine einfache Szene mit
drei Stühlen, einem
Tisch und einer Lampe eingerichtet hier
eine einfache Szene mit . Also lasst uns sie
alle aufheben und wegbringen. Wenn du also
unsere Objekte als Set
während des Levels bewegen willst , müssen
wir
jedes einzelne Objekt
per Shift-Taste nacheinander anklicken oder sie einzeln bewegen, was zeitaufwändig
und ineffizient ist Stattdessen
möchten Sie mit Umschalttaste auf alle klicken. Und drücken Sie Strg G, um sie zu gruppieren. Jetzt sind sie eine Gruppe von Schauspielern, sodass sie als eine Gruppe verschoben
und als einer ausgewählt werden. Sie können G drücken, um die Gruppierung aufzuheben und
Strg G, um sie zu gruppieren Sie können mit der rechten Maustaste klicken, zu Gruppen und Gruppen
wechseln oder mit der rechten Maustaste klicken
und auf
Gruppe klicken Das Gleiche. Sie können es
auch vom Outliner von der rechten Seite hier
aus tun Wie Sie sehen können,
haben wir
hier einen Gruppendarsteller-Tab , nämlich diesen Bevor wir weitermachen, noch einen Tipp, den ich dir geben
möchte. Wenn Sie
ein einzelnes Objekt aus allen anderen Objekten
herausziehen möchten , Sie
aber nicht die Gruppierung aller Objekte aufheben und
sie wieder zusammenfassen möchten, was
zeitaufwändig sein kann, wenn Sie
vielleicht 40 Meshes in
einer einzigen Gruppe haben , können
Sie oben auf
diese Einstellungen klicken diese Einstellungen Gehen Sie zu einer Gruppenauswahl. Klicken Sie darauf, und jetzt ist die
Gruppenauswahl deaktiviert. Dies ist immer noch eine Gruppe von Schauspielern, aber jetzt können Sie
sie einzeln auswählen. Nehmen wir nun an,
ich möchte es
näher bringen und auch diesen. Und jetzt kann ich auf Gehe zu Einstellungen und dann auf Gruppenauswahl
zulassen klicken, und jetzt kann ich
sie wieder als Gruppe auswählen. Das ist sehr effizient
, wenn Sie viele Kennzahlen in der
Szene haben , die zu Gruppen
zusammengefasst sind , und Sie die Gruppierung nicht aufheben und
wieder zusammenfassen
möchten Und jetzt können wir es ganz einfach an eine beliebige Stelle
verschieben. Die Szene, behalten wir sie hier. Eine weitere Möglichkeit, unsere Schauspieler
zu organisieren ,
sind Ordner. Unreal-Szene dieser Stufe
hat bereits Standardordner, aber die Schauspieler, die wir hinzugefügt haben, wurden dem Ordner
nicht hinzugefügt Lassen Sie uns also einen Ordner erstellen. Sie können einen
Ordner erstellen, indem Sie oben rechts auf diesen Ordner mit einem
Plussymbol klicken. Klicken Sie darauf, und wenn Sie
das Objekt ausgewählt haben, wird
es automatisch zum Ordner
hinzugefügt. Benennen wir das um, sagen
wir, pro Möbel. Und lassen Sie uns auch diese
Couch hier hinzufügen. Was wir tun können, ist es größer und
sichtbarer zu machen .
Wir haben
diesen Ordner hier. Sie können ihn einfach in den Ordner ziehen
. Jetzt sind unsere Möbel
zusammen mit anderen zusammengefaßt. Aber diese Möbel sind nicht
Teil des gruppierten Akteurs. Es ist ein separater Akteur
im selben Ordner. Verwechseln Sie also nicht die Gruppierung von Schauspielern damit, dieselben Schauspieler
im selben Ordner zu haben . Es
gibt verschiedene Dinge Wenn Sie möchten, können Sie auf diese Weise
Unterordner erstellen. Sagen wir also Satz eins, und lassen Sie uns unseren
Gruppendarsteller in Satz eins einbauen Noch eine kleine Aufgabe. Lass uns ein bisschen aufräumen. Nimm deine zuvor erstellten
Szenen und organisiere sie. Erstellen Sie Ordner, erstellen Sie Gruppen, wenn es sinnvoll ist, sie zu
gruppieren, und stellen Sie einfach sicher, dass Sie eine einfach zu übersichtliche Szene
haben , in der Sie leicht
durch den Outliner navigieren können Wenn Sie fertig sind, fahren Sie mit
der nächsten Lektion fort.
7. UE5 FC03 03: Willkommen zurück. Wie Sie sehen können, habe ich
mit den Requisiten im Inhaltsordner für
Starter ein
einfaches Set erstellt mit den Requisiten im Inhaltsordner für
Starter Und ich habe draußen etwas Laub gemalt, sie
gruppiert,
einige Möbel im Inneren hinzugefügt und
sie natürlich
auch mit zusätzlichen Sonden,
Lichtquellen und Glaswänden,
einigen Säulen, wie Sie sehen können, gruppiert auch mit zusätzlichen Sonden, Lichtquellen und Glaswänden,
einigen Säulen, und einige Elemente aufgeräumt, indem ich viel
Unordnung aus der Szene
entfernt habe viel
Unordnung aus der Szene
entfernt eine Tür und einen Türrahmen hinzugefügt und diese einfache Box
mit unwirklichen Modellierungswerkzeugen Lassen Sie uns nun kurz
über Modellierungswerkzeuge
in Unrele sprechen über Modellierungswerkzeuge
in Unreal hat seine grundlegenden
Modellierungswerkzeuge, die Sie verwenden können, aber Unreal Five Dot Four bietet Ihnen zusätzliche
Modellierungswerkzeuge, die Sie jedoch über die Plugins aktivieren müssen
. Wenn Sie auf Bearbeiten klicken und
zum Plugin-Bereich gehen. Dies sind alles Plugins, die in Unrele
verfügbar sind. Einige sind eingebaut, was bedeutet, dass UnRel sie standardmäßig bereitstellt. Sie können ein- oder ausgeschaltet sein. Und einige werden über Marketplace oder
benutzerdefinierte Plugins installiert , die Sie oder
jemand anderes möglicherweise erstellt haben. Es gibt hier also eine
Menge Plugins, also werden wir sie nicht alle einzeln
durchgehen , Suchmodellierung. Nachdem Sie nach Modeling gesucht
haben, erhalten Sie mehrere
Modellierungstools. Ich empfehle
Modellierungswerkzeuge, den Editor-Modus und den
Modellierungsmodus des statischen Mesh-Editors. Beide. Sie sind beide Beta-Versionen, daher werden sie in Zukunft sehr wahrscheinlich
durch den unrealen Entwicklungstipp verbessert durch den unrealen Entwicklungstipp Nachdem du es aktiviert hast, bitte
ich um einen Neustart Da ich
es bereits aktiviert habe, muss ich es nicht tun, sondern einfach auf die Schaltfläche
Neu starten klicken und eine Minute warten, bis
es erneut initialisiert Nachdem Ihr Unreal erneut initialisiert
wurde, gehen Sie zur Registerkarte oben und
klicken Sie auf Modellierungsmodus Sie können auch auf fünf schalten,
um sofort zu diesem Modus zu wechseln. Bei den Modellierungswerkzeugen haben
wir eine Menge Dinge. Wir werden nicht auf jedes einzelne Detail
eingehen,
aber jeder, der sich mit
Modellieren auskennt , wird
viele vertraute Tools sehen. Wenn du also nur
eine Grundform für
Blockieren durch Blockieren erstellen willst , meine
ich nur Platzhalter-Meshes, die für die Gestaltung
deines Levels verwendet
werden für die Gestaltung
deines Levels verwendet
werden Du kannst einfach
Modellierungswerkzeuge innerhalb von Reel verwenden. So wie ich dieses erstellt habe, werden
wir es
in kleinerem Maßstab nachbauen Klicken Sie zunächst einfach
auf eine Form, die Sie möchten. In unserem Fall eine Kiste. Sie könnten auch ein Rechteck machen, aber wie Sie sehen, ist
es nur ein Flugzeug, das nicht nützlich ist. Wir bekommen eine Kiste. Und wir müssen die
Höhe und Breite des Buches definieren. Standardmäßig sind es
1-2 Tausend, aber Sie können bei Bedarf
höhere Werte eingeben. In unserem Fall machen
wir es also 500. Halte es einfach. Lass
es uns nach oben verschieben. Beweg es herum. Und ich will es nicht so klein haben, also machen wir es
vertikal und horizontal größer, und ich will nicht, dass es
so krank wird, damit ich die Höhe reduzieren kann. Also lass es uns 20 machen. Sie können die Unterteilung
erhöhen, um die Qualität
des Modells zu erhöhen, aber da wir es nur für das
Prototyping verwenden , müssen wir das
nicht tun Nachdem wir mit der
Auswahl der gewünschten allgemeinen
Form fertig sind Auswahl der gewünschten allgemeinen
Form Und wir haben einen Ausgabetyp, ein statisches Netz, das
genau das ist, was wir brauchen. Wir könnten hier sofort ein
Material zuweisen, aber wir werden es bis
später belassen und auf Akzeptieren klicken. , es sei denn, Sie klicken auf Akzeptieren Dieses Netz wird nicht generiert, es sei denn, Sie klicken auf Akzeptieren. Und nachdem wir auf Accept geklickt haben, ist es
jetzt ein generiertes Mesh
, das in unserem Level existiert. Und wenn Sie darauf klicken und hier
klicken, um dieses Mesh zu finden, sehen
wir, dass Sie einen
generierten Ordner und
Ihren generierten Ordner mit
allen Meshes haben , die Sie benötigen Gehen wir nun zurück
zur Modellierung. Wie Sie sehen können, ist
es nur eine Form. Sie denken vielleicht, dass der beste
Weg, dies zu tun, darin besteht, einfach
eine andere Form zu erstellen , um eine Wand
auf der rechten Seite auf der linken Seite zu erstellen. Aber wenn Sie aufpassen, ist
dies ein ganzes Netz. Wenn wir es
also verschieben würden, wäre es ein ganzes Netz. Es ist nicht nur ein Flugzeug. Wir tun das also auf die einfachste Art und Weise,
die möglich
ist, indem wir auf das Netz klicken
und mit der Modellierung beginnen. Nun, Formmodellierung, und
klicken Sie auf Poly Group Edit. Diese Optionen oben
und die meisten Optionen stehen Ihnen nur
zur Verfügung
, wenn Sie das nur
zur Verfügung
, wenn Sie Plugin-Modellierungs-Plugin im Plugin-Bereich
aktiviert Nachdem wir
das Mesh ausgewählt haben , klicken wir auf
Polygroup-Bearbeitung Was wir tun müssen,
ist auf ein Gesicht zu klicken. Zur Information werden diese
Punkte Eckpunkte genannt. Diese Linien werden Kanten genannt,
und diese Flächen, die der
Seite der Maschen zugewandt sind, werden
im Grunde Flächen genannt Also klicken wir hier auf die Fläche
und dann auf Extrudieren. Extrude erzeugt
ein neues Gesicht und lassen Sie es uns so
ausdrücken Der Grund, warum wir das gemacht haben, ist, wenn wir das Modell von unten betrachten.
Wenn wir versuchen, es hier zu extrudieren, wird
es als Ganzes extrudiert Wir brauchen etwas Kleineres. Also extrudieren wir es leicht, und jetzt haben wir eine Liniengeschwindigkeit , mit der wir unser Teil
extrudieren können Und jetzt haben wir eine
Seite der Wand. Wir können diesen Vorgang
hier wiederholen und erneut extrudieren. Und wieder, und wir haben
jetzt eine ähnliche Form. In diesem Fall habe ich die Rückseite
des
Modells nicht modelliert Es war dort schon eine Mauer, aber das können wir
hier machen, wenn Sie Sie können Extrusionswerkzeuge verwenden , um jede Art
von Form zu erstellen, die Sie möchten Wie Sie sehen, können Sie
komplexe Formen erstellen , wenn Sie möchten Hier gibt es viele Tools Sie Ihre Modelle
ändern können. Sie können Push Pull verwenden
, eine ähnliche, aber technisch
unterschiedliche Funktion , mit der Sie tatsächlich reduzieren können. Technisch gesehen, wie es heißt. Es zieht oder schiebt das Modell. Es gibt eine Abschrägung, was hier
nicht wirklich nützlich ist hier
nicht wirklich nützlich ,
weil ich keine Kanten
ausgewählt habe Klicken Sie und wählen Sie die Abschrägung Es gibt nicht
viele Polygone,
daher sieht es nicht gut aus,
aber wie Sie sehen können, haben
wir die Form des daher sieht es nicht gut aus,
aber wie Sie sehen können, haben
wir die Form Modells geändert Wir werden das nicht anfassen
und wir können es einfach stornieren und ich werde
es auch stornieren Nochmals, weil ich das Modell
nicht gespeichert habe. In dem Moment, als ich
es stornierte, wurden alle storniert. Achten Sie darauf, außer
auf Ihr Modell zu klicken, um gespeichert zu werden. Ich benötige dieses Modell nicht,
also werde ich es einfach entfernen. Aber ich würde gerne sehen,
was Sie geschaffen haben. Und vergiss nicht, deine Modelle
aufzuräumen. Da ich
es nicht mehr benutzen werde , werde ich es
einfach löschen. Ich könnte es wahrscheinlich in
etwas Vernünftigeres umbenennen, aber da ich das
nicht lange behalten
werde ,
werde ich mir nicht die Mühe machen. Jetzt haben wir ein einfaches Set , das
aufgrund der
Farbe und Beleuchtung nicht
wirklich ansprechend aussieht . Es ist einfach grau mit
Raster, sieht nicht besonders gut aus. Und das alles werden wir in
der zukünftigen Vorlesung ändern.
8. UE5 FC04 01: Willkommen zurück. In dieser Vorlesung werden wir über Materialien
sprechen,
wie man sie anwendet, wie man sie erstellt und wie
man bestehende Materialien modifiziert. Zum Glück
hat uns
Unreal Materialien im
Starter-Content zur Verfügung gestellt , die wir für
erste Demonstrationszwecke verwenden werden Danach werde ich Ihnen zeigen,
wie Sie Basismaterialien erstellen Wie Sie in diesem Level sehen können, das gitterbasierte Texturmaterial zwar nützlich für die Entwicklung um die Größe und Position der
von Ihnen platzierten Objekte im Auge zu behalten, aber
es sieht nicht sehr gut Also lass
es uns ändern. Zuallererst dieser Boden hier
nicht so gut aus. Ich würde
es gerne so machen
, dass es sinnvoller ist, vor Ort
zu sein, und wir haben hier einige Materialien. Ich könnte, glaube ich,
gemahlenen Beton gebrauchen. Lass uns sehen. Lass uns Kopfsteinpflaster verwenden,
glatt streichen und es hier platzieren. Hmm. Das sieht ziemlich komisch aus. Und der Grund, warum
das passiert
ist , ist, dass das Material gestreckt
ist. Wenn Sie das Material selbst öffnen, können
Sie es hier sehen,
es sieht okay aus. Und wenn du eine einfache
Grundform von, sagen wir,
einem Würfel hinzufügst und
das gleiche Material aufträgst . Das sieht auch ganz gut aus. Der Grund, warum dies passiert,
ist der UV-Unterschied. Dieser Boden ist nicht wirklich für dieses Material
optimiert. Was wir hier also tun können, wir können unser Material öffnen und das ist ein Materialknoten
für dieses spezielle Material. Das ist ziemlich kompliziert, aber von hier aus brauchen wir nicht
viel. Was wir finden müssen, ist den Texturkoordinatenknoten zu
finden. Alles, was Sie tun müssen, ist das finden und Ihr Material zu
kacheln. Je höher die Zahl, desto
zerquetschter die Texturen. Du kannst es hier oder hier machen. Klicken Sie außer. Warten Sie, bis es sicher ist.
Und jetzt wollen wir sehen. Es ist viel besser, aber
es ist immer noch viel zu groß. Also multiplizieren wir es noch einmal mit dem
Zehnfachen. Vielleicht 50 und 50. Und jetzt sicher. Geben wir dem einen
Moment Zeit. Im Idealfall sollten Sie die
Kacheln der
einzelnen Materialien nicht bearbeiten und stattdessen Instanzmaterial verwenden Aber ich werde später erklären, was
Instanzmaterial ist. Okay. Das könnte besser sein,
wenn wir
es randomisieren würden , aber das sollte zu
Demonstrationszwecken in Ordnung sein Jetzt haben wir ein glattes
Erdgeschoss. Und jetzt schauen wir uns das hier an. Ich mag
dieses Material nicht wirklich. Also lass uns etwas anderes benutzen. Wir könnten
hier etwas
Ausgefallenes wie dieses Material verwenden , um diesen
futuristischen Look zu haben Dieses Material verwendet
emittierendes Licht. Entschuldigung, emittierendes Material,
das Licht erzeugt. Wenn Sie zu dem Material gehen, werden
Sie feststellen, dass eine emittierende Farbe aufgetragen
wird Wir werden es
später genauer durchgehen. Aber lassen Sie uns vorerst die
Kachelung erhöhen. Nehmen wir an, fünf mal
fünf sollte in Ordnung sein. Lass uns akzeptieren. Nochmals,
gib ihm einen Moment. Sieht viel besser aus. Sieht aus wie etwas aus einem Science-Fiction-Film Da wir dieser Szene jedoch später
Lichter hinzufügen werden, möchten
wir nicht, dass dies zu Konflikten mit
den Lichtquellen Lassen Sie uns also,
obwohl es so cool aussieht, ein einfacheres Material
wählen Nehmen wir zum Beispiel an,
wie wäre es damit? Es sieht ähnlich aus, aber
es gibt keine Lichter. Oder vielleicht. Sollen wir es aus dem Holz machen. Wir könnten es auch aus
dem Holz machen. Lass es uns aus dem
Holz machen. Gib den Moment. Aber es sieht nicht
gut aus. Lass es uns einfach behalten. Schwarzes Metall, Gittermetall. Das ist ein bisschen zu groß, also lass es uns ein bisschen mehr kacheln. Also lass uns 88 machen und sehen. Sollte gut
genug sein. Dieser Boden. Entschuldigung, bei all dem muss auch
das Material geändert werden. Bewerben wir uns auch hier dafür. Das sollte in Ordnung sein.
Vielleicht ein bisschen zu dunkel, aber wen interessiert's. Gut genug. Wie Sie sehen können, haben wir das Aussehen
der gesamten Szene
geändert. Dies sind jedoch alles Materialien, die bereits
im Starterkit enthalten sind. Materialien werden nicht
immer zur Verfügung gestellt, und es wird Zeiten geben, in denen Sie sie selbst erstellen
möchten. Lassen Sie uns also ein Material erstellen. Gehen wir zu unserem Inhaltsordner. Erstellen Sie einen neuen Ordner
namens Material. Öffnen Sie ihn und klicken Sie mit der rechten
Maustaste oder klicken Sie auf Plus. Sie können mit der rechten Maustaste klicken
und ein Material erstellen indem Sie hier zu Material gehen
und auf das Material klicken. Hier gibt es viele Dinge , die für zukünftige Kurse bestimmt sind. Klicken Sie auf das Material.
Nennen wir es Basic M Understanding Score Basic. M steht für Material. Es ist gut, allgemeine
Namenskonventionen
für Ihre Materialien zu haben . M steht normalerweise für Materialien. Also öffnen wir es und
das bekommen wir. Wir haben im Wesentlichen Leistung, und vor der Ausgabe haben
wir Substrat. Substrat ist eine unwirkliche
spezifische Materialfunktion , die kürzlich hinzugefügt wurde
9. UE5 FC04 02: Möglicherweise stellen Sie fest, dass sich das Aussehen
Ihrer Materialien
geringfügig von meinen unterscheidet. Sie haben einen anderen
Ausgangsknoten, und das liegt daran, dass Sie keine Substratmaterialien aktiviert
haben. Sie müssen ihn nicht speziell verwenden
,
und unabhängig davon, ob
Sie ihn verwenden oder nicht, die grundlegenden
Materialfunktionen und die Art und
Weise, wie man ihn erstellt, sind dieselben. Substraten handelt es sich um eine erweiterte
Materialfunktion zur Herstellung von Schichtmaterialien
, die sehr nützlich sind und nur in Unreal Engine verfügbar Ich habe sie standardmäßig aktiviert. Ich würde empfehlen
, Ich würde empfehlen
, lernen, wenn Sie an der Erstellung von Materialien
interessiert sind Kommen wir nun zurück
zu den Materialien. Wir haben hier einige Optionen. Wir werden alles
auf der rechten Seite ignorieren, was sich hauptsächlich auf
das Substrat bezieht, und wir werden uns hauptsächlich
darauf konzentrieren. Grundfarbe, metallisch,
spiegelnde Rauheit, normale MSF-Farbe Grundfarbe ist, wie sie
auch genannt wird, Grundfarbe. Auf der linken Seite haben wir
eine Vorschau von SR Mesh. Wie Sie
richtig sehen können, ist nichts drin, also ist
es nur weiß. Lass uns dem eine Farbe hinzufügen. So wie Sie das machen können, können Sie rechten Maustaste auf das
Materialdiagramm klicken. Dies ist das
Materialdiagramm, wie hier erwähnt. Und Sie können versuchen, den
Texturknoten usw. zu finden,
aber Sie können einfach
drei auf Ihrer Tastatur und dem
Ziffernblock gedrückt halten und klicken Dadurch wird
ein konstanter Wert erzeugt , mit dem Sie eine Farbe auswählen
können Das ist also RGB-basiert. Wählen wir also Rot. Wir können die Farbe
hier so anpassen, wie wir wollen. Wenn Sie einen
X-Code oder einen X-RGB-Code haben, wissen
Sie bereits, dass Sie ihn
einfach kopieren, einfügen und eingeben können. Und sagen wir rot. Wie Sie sehen können,
hat sich hier nichts geändert, da wir unseren Node noch
nicht angeschlossen haben unseren Node noch
nicht angeschlossen Lassen Sie uns unseren
Basisfarbknoten hier einstecken. Und jetzt ist unser Material rot. Aber nehmen wir an, wir wollen es metallischer
machen. Wir müssen dem Metallischen
einen Mehrwert verleihen. Normalerweise
ist der Wert nicht immer, sondern normalerweise 0-1,
was bedeutet, dass wir einen
Ein-Float-Wert benötigen, um ihn einzugeben Das waren sechs Werte, die eine Farbe generierten Aber hier brauchen wir nur einen Wert. Wir müssen also einen
gedrückt halten und klicken, wodurch
ein einziger Wert entsteht, nämlich der Float. Setzen wir unseren
Nullwertknoten in den Metallknoten. Es hat sich nicht viel geändert, weil der Metallwert
derzeit bei Null liegt, was bedeutet, dass er so
unmetallisch wie möglich ist Und wie ich bereits erwähnt habe, ist
eins normalerweise der
Höchstwert Also lass uns hier eine Eins eintragen und
auf N klicken. Warte einen Moment. Jetzt, plötzlich,
ist es ganz anders. Wir können immer einen Wert
zwischen Null und Fünf setzen. Also lassen wir es bei eins oder jetzt. Wir wollen, dass es glänzt und wir
wollen, dass es anders ist. Übrigens, Sie können
die Standardwerte hier überprüfen. Wie Sie sehen können, ist der Standardwert für
Spiegelung Null Punkt fünf, was bedeutet, dass dies derzeit ein
Spiegelwert von 05 ist Lassen Sie uns zusätzliche Flüssigkeit hinzufügen
und sie in Spiegelglas umwandeln. Jetzt haben wir einen
Spiegelwert von Null. Und wenn Sie das tun, werden Sie vielleicht einen großen
Unterschied auf dem Bildschirm feststellen, aber es ist sehr nützlich für
nichtmetallische Oberflächen Da wir es metallisch gemacht
haben, werden wir es nicht sehen können. Machen wir also metallisch
Null und spiegelnd Eins. Und jetzt reduziere Spiegelung auf
Null, um den Unterschied zu sehen. Siehst du? Das Material
ist jetzt sehr matt. Es
glänzt nicht mehr, weil es ein nichtmetallisches Material
ohne Spiegelung Es wird also nicht leuchten
und das Licht nicht zurückreflektieren. Aber momentan bevorzuge ich es
, wenn mein Material metallisch ist,
also machen wir eins draus. Und Spiegelglanz spielt in den meisten Fällen keine Rolle , wenn das Material vollständig
metallisch ist Schauen wir uns nun die Rauheit an. Der Wert für die Rauheitsdifferenz
ist ebenfalls Null, Punkt fünf. Also setzen wir die Rauheit auf Null, was bedeutet, dass es so
glatt wie Glas ist
und sehr reflektierend ist, weil es sich um ein metallisches,
vollmetallisches Material mit
einer völlig glatten Oberfläche handelt vollmetallisches Material mit
einer völlig Wenn Sie den
Metallwert reduzieren, ist es
plötzlich nur noch
ein glattes Objekt Wenn Sie ein Spiegelglas haben, es etwas Glanz,
aber es ist nicht mehr so stark wie zu der Zeit, als es vollständig metallisch war Also lass uns jetzt eins fotografieren, Null. Und wieder ist dies eine sehr
glatte Metallkugel. Spiegelung spielt keine Rolle, wenn
wir ein metallisches Objekt haben, also werden wir es einfach auf Null halten Und was passiert, wenn wir
unsere Rauheit erhöhen? Wenn Sie einer von ihnen Rauheit hinzufügen, hat sie dieselbe
Textur wie eine Kreide
kommt dem Wert einer Farbe
im wirklichen Leben am nächsten kommt dem Wert einer Farbe
im wirklichen Leben Für diejenigen, die nicht
wissen, was Kreide ist, ist
es ein Werkzeug, mit dem man an die Tafel
schreiben kann Aber das ist zu viel. Lassen Sie uns also einen niedrigeren Wert angeben. Sagen wir 07. Wir wollen nicht, dass es sehr reflektierend ist, aber wir wollen, dass es reflektierend ist. Vielleicht ein bisschen mehr. Entschuldigung, wir müssen es niedriger machen
, weil es umgekehrt ist. Je weniger Wert wir haben,
desto reflektierender ist er. Nein, ein bisschen mehr. Und
ja, das ist in Ordnung Nicht zu reflektierend. Nein
und jetzt haben wir ein normales. In diesem Fall, weil wir nur
ein einfaches Farbmaterial herstellen, ist
Normal für uns nicht so
nützlich,
aber Normalen werden verwendet, um bestimmte Werte
im Tangentenraum zu berechnen Normalerweise werden normale Texturen in Verbindung mit normalen Texturen
verwendet, und der Wert Null,
Eins, wird standardmäßig selten verwendet Schauen wir uns also eine
Anwendung eines Normalen an. Nehmen wir an, oh ja,
dieses Kopfsteinpflaster, das wir kürzlich gesehen haben, schauen wir uns
an Wir haben also diesen normalen
Knoten, der hierher kommt. Wir haben also eine normale Textur. Diese normale Textur ist wichtig, damit die
Kopfsteinpflastertextur richtig zur Geltung Schauen wir uns jetzt die Karte an. Wir haben dieses Material, oder. Und
wenn wir uns bei diesem Material die normale Textur
ansehen,
ist das eine normale Textur für das Material, das wir auf dem Boden
verwendet haben. Und nehmen wir an, wir entfernen es oder ändern es
etwas anderes, oder? Lassen Sie uns also
einen anderen Kopfsteinpflaster oder
sogar einen anderen Kieselstein auf normal ändern . Und bewirb dich. Plötzlich sieht es
ein bisschen anders aus. Irgendwas stimmt nicht
mit dem Material. Lass es uns nochmal machen. Lassen Sie es uns dieses Mal
direkt
in die Textur eines
Betons umwandeln und auftragen Nun diese seltsamen Linien
auf dem Material,
die vom
normalen Kopfsteinpflaster Es ist sehr wichtig, dass
normale Farben zur Textur passen. Wir müssen es anwenden. Ich kontrolliere das zweimal, um
das wiederherzustellen, was wir ursprünglich hatten. Normale Texturen werden
normalerweise
von Texturkünstlern oder Modellierern erstellt von Texturkünstlern oder Modellierern Wenn Sie lernen möchten,
wie man es selbst macht, empfehle
ich, in unserer Kursliste nach Informationen
zum Modellieren und
Texturieren oder nach
den Kursen zu suchen Informationen
zum Modellieren und
Texturieren oder in unserer Kursliste nach Informationen
zum Modellieren und
Texturieren oder nach
den Kursen Es ist sehr tiefgründig und kann so
kompliziert wie möglich sein, weshalb wir
es in diesem Kurs nicht behandeln werden. Aber wenn Sie interessiert sind, geben
Sie bitte Ihr Feedback. Wir könnten überstürzt einen neuen Kurs zu
diesem speziellen Thema herausbringen. Lassen Sie uns das schließen und zum Material
zurückkehren. Jetzt sieht es
genauso aus wie zuvor. Kehren wir zu
unserem Grundmaterial zurück. Wir haben hier etwas geschaffen, wir
haben etwas Interessantes. Wir haben eine emittierende
Farbe. Was bedeutet das? Emissionsfarbe ist im Wesentlichen ein Material, das leuchtet
und Licht erzeugt Wenn wir also einen Wert hinzufügen
und ihn hier auf Null setzen, hat das nichts zur Folge Wenn du es auf vielleicht fünf setzt, leuchtet es
jetzt hell Wenn du es, sagen wir, auf
5.000 setzt, könnten wir erblinden Wie Sie sehen können, strahlt
es im Moment
viel Licht aus. Und dieses Material soll
nicht glänzend sein, also werden wir das einfach nicht tun. Und lassen Sie es auf Null stehen, was standardmäßig ist. Also entfernen wir das. Wir haben
auch Opazität Wenn Sie eine
Float-Note hinzufügen, entschuldige ich mich Ich füge einen weiteren Float-Wert und setze ihn auf Opazität
und setze ihn auf Null.
Die Materialfarbe wird einfach
nicht angezeigt, Die Materialfarbe wird einfach weil
sie auf Null ist Wenn Sie es auf,
sagen wir, Null, Punkt Sieben setzen, haben
Sie eine etwas undurchsichtige Farbe Es ist ziemlich schwer zu erkennen, also bleibt
es bei Nullpunkt zwei. Es ist weniger undurchsichtig. In diesem Fall werden wir es
nicht verwenden, aber trotzdem ist es
wichtig zu verstehen, wie
Materialien im Allgemeinen funktionieren Wenn Sie ein undurchsichtiges oder
translutiertes Material herstellen möchten, schauen wir uns das
Material des Glases an Das Glas, das wir hatten,
ist also ein Ausgangsmaterial, das
Glasmaterial Schauen wir uns
das Glasmaterial an. Wir haben den
Reflexionsindex, die Brechung. Ich entschuldige mich. Wir haben unser Modell zur Schattierung von
Substraten Und hier haben wir Opazität, und die Opazität Wir haben auch zusätzliche
Refraktion usw.,
wodurch zusätzliche
Änderungen vorgenommen werden, um des
Objekts zu bearbeiten Das liegt weit über der
mittleren Ebene, also werden wir das überspringen Wenn Sie sich das hier ansehen, haben
wir ein sehr
interessantes Material , das fast ausschließlich
schwarz ist . Wir haben einen
Spiegelwert von zehn Wie ich schon sagte, normalerweise liegt er
auch zwischen Null, aber manchmal kann man auch höher gehen Im Fall von Specular ist
es ein Wert von Zehn Wir haben eine Rauheit von Null,
weil es sich um Glas handelt, und wir haben eine Opazität
von Null Punkt 35. Da es sich um ein schwarzes
Material mit Opazität
handelt, sieht es aus wie ein Glas Und wenn Sie
diese Brechung hier entfernen, hat sich, wie Sie sehen können, fast nichts
geändert sich im Moment also nicht zu
sehr
mit der Refraktion Und wenn wir
diese Opazität auf eins ändern, ist
das keine
transparente Klasse mehr Wir ändern das
Spekulative auf eins, es ist viel zu schwach. Es gibt keinen
garantierten Weg
, mit einem Material das
gewünschte Ergebnis Die beste Vorgehensweise besteht also darin,
einfach die grundlegenden
Funktionen des Materials zu verstehen,
was sie bedeuten, und
zu versuchen, so lange herumzubasteln, bis
Sie das bekommen, was Sie wollen Lassen Sie uns das vorerst schließen. Wir werden nicht sparen. Und
lass uns darauf zurückkommen. Also hier sind wir zurück und wir haben jetzt dieses Material. Und wir wollen
, dass dieses Material im niedrigen Bereich aufgetragen wird. Hier gibt es zusätzliche Optionen für maskierte
Zusatzstoffe usw., die in den zukünftigen
Kursen behandelt werden Und wir werden das retten
und die Liebe verderben. Nehmen wir nun an, wir
möchten,
dass diese Boxen dieselbe Farbe haben wie das
neu erstellte Material. Wir gehen hierher und wählen es aus und wir wenden es an. Oh, jetzt
haben wir plötzlich zwei Boxen mit einem
Material, das wir gerade erstellt haben. So einfach ist es, das erstellte
Material auf das Level
anzuwenden. Aber nehmen wir an, wir wollen ein metallisches Material
haben, aber wir wollen, dass sie
jeweils eine andere Farbe
oder ein anderes Maß an
Rauheit oder Spiegelung haben oder ein anderes Maß an
Rauheit oder Spiegelung Wir wollen, dass einige, vielleicht
dieser gelb, dieser grün, dieser weiß ist Es spielt keine Rolle. Bedeutet das, dass wir für jedes einzelne
Material, für
jeden einzelnen Typ und jede Variante ein neues Material entwickeln ? Nein. Hier kommen materielle
Fälle ins Spiel. Wenn Sie also ein Material haben und
zum Beispiel mehrere
Versionen dieses Materials haben möchten, möchte ich, dass , wie gesagt, alles
hier genau gleich ist, mit Ausnahme
der Farbe. Ich möchte also die gleiche
Menge an reflektierender Oberfläche,
metallisch usw., und das Einzige, was ich möchte,
ist die Farbe selbst Was ich tun kann, ist, mit der rechten Maustaste auf
das Material zu klicken und
eine Materialinstanz zu erstellen Nun, was bedeutet das? Materialinstanz
ist einem Material untergeordnet und bezieht alle ihre Parameter
aus dem Material selbst. Lassen Sie uns das nun
auf all diese Maßnahmen anwenden. Jetzt haben wir also eine
wichtige Instanz. mehrere Vorteile Eine materielle Instanz hat mehrere Vorteile
. Sie ist optimierter und lässt sich während der Laufzeit leichter
ändern. Lassen Sie uns das jetzt für eine
Sekunde trennen und uns das
ansehen, richtig? Korrekt. Im Moment haben
wir also nichts
in unserem Material. Weil wir
keine Eigenschaften hinzugefügt haben, die wir
dem Material hinzufügen und ändern sollten . Es gibt einige
Standardoptionen, die Real für Sie hat, aber sie sind nicht das, was wir wollen. Wie fügen wir hier also Optionen hinzu, um sie während des Vorgangs zu ändern? Wir gehen zum Material selbst und finden die gewünschten
Parameter. Und in diesem Fall wollen
wir die Farbe ändern. Also klicken wir mit der rechten Maustaste darauf. Und in Parameter konvertieren. Also müssen wir es benennen. Das ist Farbe, also ist
es einfach, sie zu benennen. Und jetzt haben wir einen Parameter
namens Farbe, richtig? Und der Standardwert für
dieses Material ist Rot. Das ist alles, was wir
tun müssen. Beachten Sie, dass Sie dies für alle
anderen Parameter tun können. Sie könnten es für Rauheit,
Metall usw. tun. Wir gehen zurück und öffnen das Material erneut.
Lass es uns größer machen. Jetzt haben wir eine Farbe. Wenn wir also darauf klicken und die Farbe hier
ändern, ändert
sich sofort
die Farbe
aller Maschen, die mit genau
diesem Material aufgetragen Sie können es einfach ändern. Du fragst dich vielleicht, warte, aber ich möchte nicht, dass
sie alle dieselbe Farbe haben. fair genug. Erstellen Sie weitere
Exemplare desselben Materials. Und dieses kann eine
Materialinstanz sein, zwei, und dann dieses anwenden. Und dieser kann die dritte
materielle Instanz sein. Und nehmen wir an, das gilt für diesen und
dieser ist gelb. Lassen Sie uns noch einmal eine
Materialinstanz erstellen und ihr einen Namen geben. Machen wir den Namen vier, öffnen wir ihn, ändern wir ihn, grün. Und lassen Sie uns das darauf anwenden. Jetzt haben wir vier Materialien
unterschiedlicher Farbe. Sie fragen sich vielleicht, was der Vorteil
davon ist, dies zu tun? Weil wir im Grunde mehrere
materielle Instanzen
geschaffen haben. Könnte ich nicht einfach
mehrere Materialien erstellen? Nein. Zuallererst sind
Materialinstanzen also optimierter,
was bedeutet, dass sie
weniger Ressourcen
beanspruchen, als wenn Sie
mehrere Materialien hätten. Zweitens
haben wir jetzt vier Materialien,
Instanzen, um richtig zu sein, die
auf diese Boxen angewendet werden. Nehmen wir an, wir nehmen dieses materielle Beispiel und
wollen etwas ändern. Aber es gibt einen zusätzlichen Vorteil , wenn Sie alle
ändern möchten. Nehmen wir an, es gab später Meinungsverschiedenheiten, und wir möchten sicherstellen, dass keines
dieser Farbmaterialien
metallisch ist. Also wollen wir, dass sie grob sind, und wir ändern das in der
übergeordneten Version, speichern es einen Moment. Gehen wir zurück und jetzt sind
sie alle nichtmetallisch. Jetzt haben wir also die Flexibilität , Materialien im übergeordneten Element
zu bearbeiten, wodurch sofort
alle Werte geändert werden , die nicht in Instanz geändert wurden, oder wenn Sie ein
bestimmtes Material
nur an einer bestimmten
Instanz des Netzes ändern
möchten , können
Sie
das einfach bearbeiten. Wie gesagt, können
Sie
das einfach bearbeiten. Wie gesagt,
wir können das nicht nur mit Farbe tun, wir können
es mit allem Nehmen wir an, es handelt sich um ein Metall, also können wir mit der rechten Maustaste darauf klicken und
es in einen Parameter umwandeln. Nennen Sie diesen Parameter
metallisch und speichern Sie. Denken Sie daran, dass dies
ein übergeordnetes Material ist. Wenn Sie nun eine der Instanzen öffnen ,
die wir
zuvor erstellt haben, haben
wir hier eine Option oder eine
metallische Option, die wir ändern können. Denken Sie also daran. Machen wir es sichtbarer. Behalte das blaue Kästchen im Auge und lass uns das Metallische wechseln. Jetzt haben wir nur noch
eines davon, nicht metallisch. Offensichtlich ist es besser,
einfach Null
statt negativ zu haben. So können wir
unsere Materialien und unsere
Materialinstanzen auf diese Weise einfach modifizieren . Und das ist der empfohlene
Weg, dies zu tun. Also jetzt speichern wir das und
schauen es uns an. Es ist ganz einfach. Es ist nicht allzu schwierig
und es sieht ziemlich gut aus für
etwas, und es sieht ziemlich gut aus für das wir
in ein paar Minuten erstellt haben. nun, bevor wir
zur nächsten Vorlesung
übergehen, eine weitere Aufgabe erledigen. Mit dem Wissen, das Sie erworben haben, erstellen Sie Materialien und
dekorieren Sie Ihre Szene. Viel Glück und wir sehen uns
in der nächsten Vorlesung.
10. UE5 FC05 01: Willkommen zurück zum Kurs. In dieser Vorlesung werden wir
über Blitze,
ihre Unterschiede und darüber, wie
man sie in der Szene platziert, sprechen . Bevor wir uns mit Blitzen
befassen die in der Szene eingerichtet werden können, werfen
wir einen Blick auf
den Blitz, der in dieser Vorlage bereits standardmäßig in der Szene
vorhanden ist, nämlich gerichtetes Licht. Und dieser Blitz
hier ist die Sonne. Wenn Sie zu den Einstellungen gehen, Detailbereich
genauer sein und
die Intensität ändern. Ich werde die Sonneneinstrahlung erhöhen oder verringern,
je nachdem, welchen Wert Sie eingeben. Bei Null gibt es im Grunde kein
Licht. Und bei eins ist es sehr niedrig. Ich persönlich bevorzuge drei, wie Sie sehen, aber Sie können den Wert nach Belieben
ändern. Die Lichtfarbe
verändert, wie
der Name schon sagt, das Licht der Farbe. Entschuldigung, Farbe des Lichts. Sie können sehen, wir können
unserer Szene eine andere Atmosphäre verleihen,
oder wir werden sie jetzt so lassen, wie sie ist Der Winkel der Quelle spielt nicht
wirklich eine so große Rolle. Der Standardwinkel hier, der Quellwinkel, ist
derselbe wie die Sonne selbst. Und wenn Ihre
Hauptlichtquelle die Sonne ist, können Sie
sie genauso gut bei diesem Wert belassen. Darüber sollten
Sie sich auch keine Sorgen machen. Sie können die
Temperatur erhöhen oder senken, was sich auf den Farbton auswirkt. Nochmals, nichts,
worüber Sie sich zu diesem Zeitpunkt wirklich Sorgen machen
sollten . Und
den Rest können wir ignorieren. Wir könnten Schatten entfernen, wodurch alle Schatten entfernt werden , die von dieser Lichtquelle
geworfen werden. Wenn Sie mehrere Lichtquellen in
der Szene haben, bevorzugen
Sie möglicherweise einen
bestimmten Schatten aus dieser bestimmten
Blitzquelle. In diesem Fall können Sie also einfach andere
deaktivieren
und diese beibehalten,
oder Sie können mehrere Lichter so einrichten, dass oder Sie können mehrere Lichter Schatten aus
mehreren Quellen geworfen werden. Und dieses Objekt wird
mehrere Schatten von ihnen haben. Aber es ist besser, nicht Hunderte von Lichtern zu
haben, die alle
Schatten auf engstem Raum werfen , denn das ist
reine Rechenverschwendung,
wie bei der Optimierung Ihres Spiels Und natürlich ist
Affect World in den meisten Fällen quasi
Pflicht Okay, lassen Sie uns jetzt über
die Lichter sprechen , die Sie einfach kleiner
in der Szene platzieren können . Wenn wir also zu dem Set zurückkehren ,
das wir hier haben, ist
es sehr dunkel. Und sagen wir, wir wollen die Sonne nicht so
hoch in der Luft steht. Wir wollen so etwas wie Sonnenuntergang. Wir können die Richtung
der Sonne einfach ändern , indem wir Control E,
sorry, Control L
drücken und
die Richtung der Sonne drehen. Also lass uns so etwas wie das hier machen. Ich bewege mich mit der Maus während ich die
Steuertaste gedrückt halte. Ja, lass es uns machen, Lexis. Jedes Mal die dunklere Seite, und jetzt ist es sinnvoller, hier Blitze
zu haben Du könntest jederzeit Lichter spielen, indem auf dieses Symbol
oben
klickst und zu Lichtern gehst. Oder du kannst hier auf
den Fenster-Tab klicken , Schauspieler
platzieren und
zum Leuchtkasten gehen. Ich behalte es bei
Lexis, nur um leichter erklären zu können,
was jeder von ihnen tut Wir haben bereits über
gerichtetes Licht gesprochen. Sie persönlich würden nicht zu viele gerichtete
Lichter in der Szene
haben wollen . In der Regel reicht also ein gerichtetes Licht von
der Hauptlichtquelle, der Sonne, aus, aber vielleicht möchten Sie
mehrere kleinere Lichter haben. Lassen Sie uns also zuerst über
Punktlicht sprechen. Das ist Punktlicht.
Dieses Licht hat einen Radius. Lass es uns nach draußen bringen,
die Kamera für eine Sekunde. Der Kreis um ihn herum
definiert seinen Radius. Verstecken wir unser
Sonnenlicht für eine Sekunde, damit wir
besser sehen können. Der Radius der Quelle und der
Radius der weichen Quelle sind miteinander verknüpft. Wenn Ihr Quellenradio Null ist, Softsource-Radio nichts also zu Demonstrationszwecken Lassen Sie uns also zu Demonstrationszwecken den Wert verkleinern und das Quellradio
vergrößern. Es muss nicht so groß
sein, um eine Wirkung auf Funkgeräte mit weicher
Quelle zu haben Wirkung auf Funkgeräte mit weicher
Quelle Es kann buchstäblich eins sein. Wenn ich es erhöhe
oder verringere, werdet ihr
den Unterschied in
den Blitzen auf
diesen weit entfernten Objekten bemerken . Lass es uns so machen. Was sich geändert hat, ist der Rückgang,
ab dem Radius, ab dem es
immer weniger Licht bekommt. Normalerweise ist es nicht etwas, das man zu stark nachformen muss. Du kannst es einfach halten. Lassen Sie uns zunächst
einen Blick auf den letzten Wert werfen, nämlich
die Länge der Quelle. Wenn wir also den Quellradius
so angeben, ist das zu groß. Lassen Sie uns das machen. Gibt ihm im Wesentlichen die Höhe. Also statt einer Glühbirne ist es
jetzt ein Riese, es sieht aus wie ein riesiger
Aufzug, der Licht ausstrahlt Es ist nicht wirklich etwas, in das
Sie sich zu sehr einmischen müssen, und Sie können
es die meiste Zeit ignorieren Und lassen Sie uns aus diesem
Licht wieder etwas Richtiges machen. Es wird größer. Lass
es uns ein bisschen größer machen, schätze ich. Und wieder ist es
dasselbe wie zuvor, ob die Affektwelt beschattet wird oder nicht. Das alles können wir ignorieren Schauen wir uns nun
die nächste Art von Licht an , nämlich
das Scheinwerferlicht. Sie fragen sich vielleicht,
was Spotlight macht. Es ist eine Blitzquelle , die, wie Sie an der Form
sehen können erhöhen
wir die
Intensität. Ist ein Licht, das
nur einen bestimmten Bereich beeinflusst. Xis. Verschieben wir das Detailfenster oben, damit es besser zu sehen ist. Sie können den
Aufmerksamkeitsradius vergrößern
, wodurch die Linse vergrößert wird. Sie können es drehen.
Wie Sie sehen können, die X-Achse nicht
wirklich viel. Aber Sie können
es in der Y- und Z-Achse drehen. Schauen
Sie sich M an, um
Ihr Licht so zu platzieren, wie Sie es möchten. Es ist die am häufigsten
verwendete Art von Licht in Spielen, im Allgemeinen in
Szenen, denn wenn Ihre Lampe in eine
bestimmte Richtung gerichtet ist oder Ihre Lichtquelle auf einen bestimmten
Schauspieler oder eine bestimmte Richtung gerichtet sein soll , ist
es am einfachsten, Licht für diese Zwecke zu
verwenden. Und wir haben hier noch weitere
Dinge, nämlich den inneren Kernwinkel, der, wie Sie sehen können, den Co-Winkel vergrößert
oder verkleinert. Was Innenkegel und
Außenkegel bewirken, ist dass das
Licht im
Innenkegel am hellsten ist Die Intensität von 160, die wir hier
haben, wird also auf den inneren Kegel angewendet Also lass es uns 40 machen? Und der äußere Nachteil ist
der Punkt, an dem der Fall beginnt. Wenn wir also 40 40 sind, werden
wir einen sehr starken Fluss haben. Wenn wir den inneren Kern bei 20 haben, während f bei 40 ausgeschaltet ist, haben
wir ein weicheres Licht dem das f ausgeschaltet ist, wenn der
innere Kern
bei 20 liegt Wenn wir bei Null sind, wird alles
weich sein. Man könnte also quasi fünf
daraus machen , um sich auf ein bestimmtes
Objekt zu konzentrieren, falls es eines gibt. Nehmen wir an, wir haben
diese Würfel hier. Und wenn ich aufhöre,
auf das Licht zu
klicken, haben wir jetzt ein Licht
, das sich auf die Objekte konzentriert. Wir können also den Radius vergrößern , weil er uns
etwas zu klein erscheint, und wir können den äußeren
Kegelwinkel noch kleiner machen. Aber nicht so klein, wir haben ein Objekt, das in Ihrer
Szene verdächtig
beleuchtet Die übrigen Optionen
sind dieselben wie zuvor. Die Längenquelle macht in diesem Fall nicht
wirklich viel aus. Und wir können mit unserer nächsten Leuchte
weitermachen, die rechteckig ist. Was rechteckiges Licht
macht, ist also eine Lichtquelle in
Form eines Rechtecks. Lassen Sie uns das also drehen, damit
das Licht auf den Boden fällt. Und lassen Sie uns die Quelle
vergrößern, damit sie besser zu erkennen ist. Und lassen Sie uns auch das
Akzentationsradio ändern. Und leichter zu sehen. Im Gegensatz zu früheren Folien
handelt es sich hier um eine besondere Form. Wenn wir also die
Höhe oder Breite der Quelle ändern, erhalten
wir eine bestimmte
Form für unsere Lichtquelle. Das Licht ist jetzt also
in diese Richtung fokussiert. Wenn du das zweitens
so änderst und den Winkel deines
Scheunentors kleiner machst, entsteht ein sehr scharfer
rechteckiger Schatten Verkleinern
oder vergrößern Sie dann die Länge , je nachdem, wie scharf oder quadratisch
Ihre Schatten sein sollen Und du kannst es so machen , um eine ganz bestimmte
Art von Schatten zu erhalten Bevor wir
zur nächsten Vorlesung übergehen, fügen Sie Ihrer Szene einige Lichtpunkte
hinzu. Das wird vorerst deine Aufgabe sein. Wenn Sie
keine Lichtquellen haben,
stellen Sie sicher, dass Sie nur einige hinzufügen. Sei kreativ. Du kannst
alles hinzufügen. Es kann eine Lampe sein. Es kann eine Fackel sein. Es
kann ein Kamin sein. Mach damit, was du willst
, werde kreativ. Denke nicht zu viel darüber nach und
werde es viel zu komplex. Halte es einfach. In der nächsten Vorlesung
werden wir darüber sprechen, wie man
komplexe Blitze mit
Interaktivität macht nächsten Vorlesung
werden wir darüber sprechen, wie man
komplexe Blitze mit
Interaktivität also vorerst
sicher, dass Sie etwas Platz haben , in dem Sie Ihre
Lichter hinzufügen und verschieben können Vielleicht fügen Sie Ihrer Szene etwas Farbe
hinzu. Vielleicht möchtest du eine Disco machen,
Farbe, was auch immer dir überlassen bleibt. Viel Spaß und wir sehen uns in
der nächsten Vorlesung.
11. UE5 FC06 01: Willkommen zurück. In diesem Vortrag werden
wir
über Baupläne sprechen Also, da,
wo wir aufgehört haben, mit diesen Lampen in der Wand, wollen
wir ihnen Licht hinzufügen, aber wir wollen Licht hinzufügen, sagen
wir, in verschiedenen Farben
, unterschiedlichen Stärken oder vielleicht sogar Formen Wir könnten einfach manuell zu jeder Lampe eine
hinzufügen, wie wir es mit dieser
Lampe in der Decke gemacht haben. Aber das ist sehr zeitaufwändig. Und was ist, wenn Sie nicht sechs, sondern 600 Lichter
in Ihrer Szene haben? Hier kommen Blueprint und
Funktionalität ins Spiel. Um aus diesem Objekt
eine Blaupause zu machen, klicken
wir hier auf diese Schaltfläche Dadurch wird dieser Akteur in eine
wiederverwendbare Blueprint-Klasse umgewandelt .
Also lass uns das anklicken Dadurch wirst du
nach einer Unterklasse gefragt. Sie können einfach auf Auswählen klicken. Das ist ein statischer Masacor
und das ist ein Schauspieler, sowieso ein statischer Mahcor sein
wird, also ist Und wir haben diese Ansicht. Dies ist ein Viewport, in dem wir unser Objekt betrachten, es
ändern usw.
können , es
ändern usw. Und was vielleicht noch
interessanter ist , ist dieses Ereignisdiagramm Wir haben auch ein
Konstruktionsskript, über
das ich
in der nächsten Vorlesung sprechen werde. Das ist also unser Event-Graph. Bevor wir weitermachen, muss ich
erklären, was ein Blueprint ist, was ein Schauspieler ist und
wie das alles funktioniert Blueprints sind ein
visuelles Codesystem Menschen, die Zeit sparen wollen oder
Probleme beim Programmieren haben, helfen soll, ihre Arbeit zu erledigen,
ohne in C plus
plus oder C sharp in
einer anderen Engine programmieren plus oder C sharp in
einer anderen Das funktioniert so,
dass diese Blueprints im Wesentlichen eine Funktion
sind, die in Ihre
Schauspieler eingebaut Und die Frage,
was sind Schauspieler? Jedes Objekt in deiner
Szene ist ein Schauspieler, und die Szene ist dein Level. also, diese riesige Leere, Sie sehen also, diese riesige Leere, die meine
Ebene ist, jeder einzelne Würfel, jedes
Glas, jedes Licht,
alles, selbst
die verderbten
Grasstücke , sind allesamt Schauspieler Auch wenn es bei Schauspielern wie
Schauspielern, Menschen oder Charakteren in
der Sprache des
Codes in der Engine zu einem
Missverständnis führen kann Schauspielern, Menschen oder Charakteren in
der Sprache des
Codes in , sind
Schauspieler in
Ihrer Drei-D-Szene alles , bis auf
einige kleine Ausnahmen Zum Beispiel ist dieses Material, die Farbe, kein Schauspieler Es ist nur eine visuelle
Ergänzung zu deinem Schauspieler. Das Gleiche gilt für Abziehbilder oder Partikel, die erzeugt werden, wie alle Nebenprodukte
anderer Schauspieler in der Szene, mit
denen nicht wirklich
interagiert werden Oder Zweck, auch
wenn sie interaktiv sind,
können Sie sie nicht einfach so in
Ihrem Level platzieren Nehmen wir zum Beispiel an, wir haben einen Charakter, der Feuerbälle abfeuert
. Der Charakter
selbst ist ein Schauspieler. Der Feuerball, den er abgeschossen hat ist ein Schauspieler, wenn er als Projektil erzeugt
wurde Aber die Flammenbilder
rund um das Objekt, bei dem es sich um ein Projektil
handelt
, sind Sie sind nur Komponenten, und diese spezielle
Komponente ist Partikel Die nächste Frage ist, was ist der Zweck der
Akteure auf dem Level? Schauspieler
können, wie ich bereits sagte, alles auf deinem Level sein. Es gibt Gras, ihre Wände, ihre Böden, ihre Charaktere. Sie sind alles, was du in deinem Level haben
musst. Und Schauspieler sind anders. Manche Schauspieler sind
nicht einmal sichtbar. Schauspieler müssen nicht
sichtbar sein, um relevant zu sein. Und was sind Baupläne? Und lassen Sie uns sehen, was der
Unterschied zwischen dieser Lampe, die nur ein statisches
Netz ist, und dieser P-Lampe, die jetzt eine Blaupause ist Der Unterschied besteht darin, dass
dieses statische Netz in seiner Funktionalität auf das
beschränkt ist ,
was ein statisches Netz leisten kann Wie Sie sehen können, haben
wir unser Detailfenster. Wir haben unsere Parameter,
Transformation usw.,
einige Grundeinstellungen dafür, wie Engines
mit diesem Objekt interagieren sollen Es kann ziemlich kompliziert
sein , sie plötzlich alle
durchzugehen, deshalb werden wir im Moment nicht
darauf eingehen Und ganz ehrlich, Sie
müssen die meisten Dinge
im Detailbereich nicht anfassen im Detailbereich es sei denn, Sie wissen genau,
was Sie tun. Aber Schauspieler, bei denen
es sich um Blaupausen handelt, können jede Art
von Funktionalität enthalten Wenn ich zum Beispiel diese Lampe
explodieren lassen will, kann ich das. Wenn ich will, dass sie sich
bewegt oder fliegt oder was auch immer,
dann kann ich
das alles mit Hilfe des Bauplans machen Offensichtlich gibt es
Einschränkungen, was Sie tun können und was nicht und
wie Sie es tun möchten Aber Sie
haben die Freiheit , mit diesem Objekt zu tun, was Sie
wollen. In unserem Fall wollen wir, dass dieses Objekt
Licht aussendet. Das ist eine Lampe. Und was wir
dafür tun können , ist dasselbe wie
in der vorherigen Vorlesung, wir können ein Licht hinzufügen. Fügen wir also ein
gerichtetes Licht hinzu. Oh, ich entschuldige mich. Scheinwerferlicht. Und wir wollen, dass das
Scheinwerferlicht nach oben gerichtet ist und wir wollen, dass es genau
dort ist, wo sich die Lichtquelle befindet. Wenn Sie Probleme haben, sich mit der
Maus zu
bewegen und zu zoomen, können
Sie nach unten scrollen, die Mausgeschwindigkeit
reduzieren oder erhöhen, oder Sie können einfach
hier oben klicken und sie hier reduzieren Lass es uns so ausdrücken. Sie werden sehen, dass die Mundgeschwindigkeit jetzt niedriger ist, was sehr nützlich ist, wenn
Sie mit
kleineren Objekten arbeiten. Wenn Sie sich
verirren und nicht sicher sind,
wo sich Ihr Objekt befindet, können
Sie auch verirren und nicht sicher sind,
wo sich Ihr Objekt befindet, jederzeit
darauf klicken und die Taste FK drücken. Und wenn du einfach auf FK drückst, wird
es vergrößert und du
kannst dein Objekt sehen. Diese Funktion
funktioniert offensichtlich auch in der Liebe. Wenn Sie also das Objekt
ausgewählt haben und sich bewegen, drücken Sie FK, es springt zurück zum ausgewählten Objekt. Das ist sehr
nützlich
, wenn Sie
mehrere Objekte in der Szene haben oder Ihr Level zu groß ist um sich zu merken, wo das Objekt befand, oder wenn Sie
das Objekt verloren haben, während Sie es
herumgezogen Vielleicht befindet es sich unter
dem Boden und du verpasst die Auswahl und du
kannst es nicht mehr sehen Und du kannst einfach diese Taste drücken oder dein Objekt ist korrekt. Gehen wir jetzt zurück
zum Bauplan. Und wir haben der Szene dieses Licht
hinzugefügt, richtig? Korrekt. Möglicherweise stellen Sie fest, dass sich dieses Spotlicht unter
der statischen Netzkomponente befindet, was bedeutet, dass das Spotlicht
jetzt mit dem
statischen Netz selbst verbunden ist . Wenn wir das Objekt verkleinern usw.
, bewegen sich die ältesten untergeordneten Objekte
des Objekts umher Fügen wir also einen Würfel hinzu. Dieser Würfel ist zu groß, also machen wir ihn etwas kleiner. Dieser Würfel ist jetzt an
die Stack-Mesh-Komponente angehängt. Wenn Sie also die
Stack-Mesh-Komponente vergrößern, obwohl sie fünf ist, vergrößert
sich auch dieser Würfel. Das ist also sehr nützlich,
weil Sie
im Grunde einen skalierbaren,
einheitlich skalierbaren
Akteur erstellen , alle seine Eigenschaften vom
übergeordneten Objekt
erbt , wenn Sie ihn in der Ebene
ändern Lassen Sie uns diesen
Würfel löschen und kompilieren, speichern wir für alle Fälle Jetzt haben wir die Lampe und die Lichtquelle
selbst, den Scheinwerfer. Wir können es hier und
jetzt bearbeiten , indem wir
die Radios usw. ändern. Also lasst uns den Radius reduzieren. Ich möchte nicht, dass es zu
starke Lichter gibt. Geben wir den Wert
500 ein und kompilieren wir. Nachdem wir kompiliert haben,
können Sie zum
Level zurückkehren und einen Blick darauf werfen. Oh, wir haben ein sehr schwaches Licht. Ich hätte gerne, dass es
vielleicht ein bisschen stärker ist. Also erhöhe
die Intensität auf, sagen wir mal, t. und komm hoch. Es ist
immer noch etwas stärker, aber die Form gefällt mir nicht. Vielleicht liegt es daran, dass
ich es verlegt habe. Ein bisschen, ja. Ein bisschen besser. Und sagen wir, ich möchte, dass es rot ist. Jetzt ist es rot. Aber wir hätten das auch mit der üblichen
Methode machen können,
indem wir es einfach anhängen, richtig? Hier. Warum sollten wir es so machen, wenn es
zu lästig ist Weil wir Funktionen hinzufügen
können. Anstatt sie standardmäßig
rot zu machen, mache ich
sie weiß und ich stelle die
Intensität auf 20 K ein,
nur damit sie der Lampe entspricht,
die verkauft wird . Verzeihung. Der
Attentiationsradius ist für mich in Ordnung, und ich werde ihn kompilieren und zum
Ereignisdiagramm übergehen Und hier passiert das
Interessanteste. Bevor wir weitermachen, werde ich
erklären, was Ereignisse sind. Dies sind also die
drei Standardereignisse , die Unreal sofort
für Sie bereitstellt. Und Ereignisse sind im Wesentlichen
Auslöser, die als Skript starten. Zum Beispiel beginnt das Spiel mit dem
Ereignis, wenn
sich dieser Akteur im
Level befindet und das Level beginnt. Wenn dieser Schauspieler also nicht im Level
ist, wird
das nichts bewirken. Der Schauspieler muss im
Level sein, damit das beginnt. Also das fängt an,
sagen wir, fügen wir einen Print-String-Knoten Wir können
hier einen Print-String-Knoten hinzufügen und
ihn einfach Hallo sagen lassen. print string
ist also eine Fehlerfunktion , mit der Sie die Funktionen debuggen und
im Wesentlichen testen können ,
ob sie ausgelöst werden oder nicht In diesem Fall werden wir es einfach
bei Hello
Hello belassen und kompilieren und
dann zum Level zurückkehren Wenn wir auf Play drücken, bekommen
wir Hallo, weil das Event in dem Moment
begann, in dem das Level Wenn ich es aus dem
Level entfernen und Play drücken würde , gibt es kein Hallo,
weil der Level den die Lampe selbst hat,
nicht im Level ist, also wird das nicht ausgelöst. Wenn ich in der Mitte
des Levels irgendwie spawne oder
diesen Bauplan erstelle in der Mitte
des Levels irgendwie spawne oder
diesen Bauplan , fängt er
wieder von vorne Im Wesentlichen
passiert das, wenn dieser Akteur initialisiert
und erstellt wird Als nächstes folgt die Überschneidung der Ereignisakteure. Um Überschneidungen zu verstehen, müssen wir also zunächst Kollisionen
verstehen. Wenn wir uns das Objekt ansehen, wir uns diesen Laden aus. Sagen wir diesen Laden. Dieser
Laden hat eine Kollision. Sie können es also ganz einfach sehen, indem Sie hier klicken und auf Spielerkollision
klicken,
was eine Kollision bedeutet, die
sich auf den Spielercharakter auswirkt. Es gibt auch
Sichtkollisionen. Möglicherweise haben Sie bemerkt, dass
es einen geringfügigen Unterschied zwischen sichtbarer Kollision
und Spielerkollision gibt. Das liegt daran, dass dieses Gras auf dem Boden nicht mit dem Spieler
kollidiert. Wenn wir uns also bewegen, sie uns nicht aufhalten, sie
können nicht mit ihnen interagieren. Aber bei dieser Geschichte
und ganz ehrlich, den
übrigen Objekten
in der Szene schon. Das liegt an der Art und Weise, wie die Kollision für diese Objekte vorbereitet wird, auf
die wir
im nächsten Kapitel eingehen werden. Aber egal,
zurück zum Punkt, dieses Objekt hat eine Kollision. Und standardmäßig macht dieses
Objekt nichts. Wenn Sie dem Shop
Funktionen hinzufügen möchten, müssen
wir
zunächst den Shop
in einen Blueprint konvertieren Was wir also tun können, ist, wir hier auf diese Schaltfläche klicken und ich werde
den Namen jetzt einfach so lassen, wie er ist Es ist eine gute Praxis,
unsere Namensdateien nach Namenskonventionen zu erstellen. Normalerweise werden Baupläne BP genannt. Und jetzt haben wir
diesen neuen Plan, und dieser Plan ist eine Tür Wenn Sie das Projekt schließen und
Ihren Blueprint nicht finden können, können
Sie jederzeit zu
Ihrem Inhaltsbrowser gehen
und Ihren Blueprint suchen In diesem Fall gefällt es mir
nicht, dass es sich speziell in diesem Ordner
befindet Also was ich tun werde,
ich werde es in
den Inhaltsordner verschieben und
hier zu meinen Inhalten gehen. Und nochmal, es ist nicht
organisiert, wenn wir hier mehrere Blueprints
haben, alle Platz beanspruchen, also erstelle ich einen Ordner, den ich Blueprint
nenne Ähm, machen wir daraus
Blaupausen, einfach um zu sein. Und lassen Sie uns auch
diese Lampe umbenennen. Und lege sie in unseren
Blueprint-Ordner. So ist es für uns in Zukunft einfacher
, sie zu finden. Also, diese Tür
hat keine Kollision. Genauer gesagt,
es gibt eine Kollision, aber sie
blockiert nur den Spieler. Wir können die Tür nicht wirklich öffnen. Wenn wir die Tür öffnen wollen, sie sich
idealerweise einfach öffnen,
wenn wir uns ihr nähern sollte sie sich
idealerweise einfach öffnen,
wenn wir uns ihr nähern. Wir hätten
etwas Interaktivität hinzufügen können, zum Beispiel E
drücken, um die Tür zu öffnen, wie in den meisten Spielen, aber wir könnten
es auch zu einer automatisierten Tür machen Also, wie machen wir das? Also zuerst gehen
wir zu Event Craft und wir werden weder das Ticken
noch das Event beginnen. Also lasst uns sie entfernen.
12. UE5 FC06 02: Bevor wir hier einfach
anfangen zu programmieren, was auch immer, ist es eine gute Praxis einfach
zu testen, ob Ihre
Annahmen richtig sind. Lassen Sie uns also eine gedruckte
Zeichenfolge mit der Aufschrift Hallo eingeben. Wir hoffen also, dass wir
den Hallo-Trigger bekommen,
wenn sich der Schauspieler
mit der Tür überschneidet sich der Schauspieler
mit der Gehen wir also zur Tür
und nichts passiert. Wir fragen uns vielleicht warum? Weil es einen Unterschied zwischen
Kollision und Überlappung gibt. Bei der Überlappung wird davon ausgegangen, dass sich die Objekte gegenseitig
durchdringen und an
einem bestimmten Punkt
im Wesentlichen überlappen. Eine Kollision verhindert
jedoch, dass dies geschieht. Also was wir tun, wir gehen zurück zum Bauplan und
schauen uns den Viewpo an Da es sich bei dieser Tür um ein festes Objekt handelt, können
wir sie nicht einfach so
durchdringen , dass sie sich mit
unserem Spielercharakter überschneidet Übrigens habe ich gerade bemerkt, dass
die Tür umgedreht ist. Also lass uns einfach. Das
ist peinlich, aber entschuldigen wir uns einfach Schau, dreh es in
die richtige Richtung. Ich weiß nicht, vielleicht
gibt es ein paar Türen , die eine auf der linken Seite hatten. Ich habe noch nie einen gesehen.
Abgesehen von Doppeltüren. Okay, lass uns
zurück zur Tür gehen. Und hier müssen wir eine Kollisionsbox
hinzufügen. Wir werden diese Box nicht speziell
für Kollisionen verwenden. Dies ist nur eine Box
, um ein Ereignis auszulösen. Skalieren wir es also
auf die gewünschte Größe. Wo es ausgelöst wird, wenn der
Spielercharakter es trifft. Du kannst es einfach so machen. Und ich möchte nicht, dass dieses Ereignis ausgelöst wird, nachdem
wir den Raum betreten haben. Ich möchte, dass es geöffnet bleibt. Also lass uns das einfach so machen, damit ich mir keine
Sorgen um die andere
Seite der Tür machen muss. Also logisch gesehen,
der Zweck ist, wenn wir als Spielercharakter mit dieser unsichtbaren
Kiste
überschneiden, öffnet sich die Tür Aber bevor wir das tun können, entfernen
wir das und klicken
auf das Feld, das wir erstellt haben Das ist die Box, die wir erstellt haben. Und auf der rechten Seite unten
im Detailbereich sehen
Sie, dass wir Veranstaltungen haben. Diese werden automatisch von
Unreal erstellt , um Ihnen
das Leben zu erleichtern, sodass Sie einfach Zeit sparen und
einfach auf das klicken können, was Sie benötigen In unserem Fall müssen wir die Überlappung der
Komponenten beginnen. Sie fragen sich vielleicht, was
Sie mit Komponente meinen und diese Komponente ist
alles innerhalb des Schauspielers. Dieser Bauplan selbst
fungiert als Akteur. Diese statische Netzkomponente ist
hier der Kern, im Grunde die
Wurzelkomponente des Akteurs. Sie kann nicht gelöscht werden.
Sie kann nicht entfernt werden. Es kann geändert werden, aber im Idealfall ist
die Wurzel der Komponente das worum sich alles
dreht. Und der Türteil selbst
ist Teil der Tür, und der Türrahmen ist eigentlich
die Wurzel der Szene. Dieser innere Teil
der Tür ist also nur eine berührte
statische Netzkomponente. Und das Gleiche gilt für die Box. Wir könnten
unendlich viele, aus rechnerischen Gründen
nicht wirklich unendlich viele,
aber viele
zusätzliche Komponenten hinzufügen rechnerischen Gründen
nicht wirklich unendlich viele, , aber in diesem Fall brauchen
wir sie nicht Und wir können hier sehen, dass
es heißt, wenn die Komponente
anfängt, sich zu überlappen, und ganz am Ende können
Sie sehen, dass es eine Box gibt Das ist nur der Name der
Kollision, die wir erzeugt haben. Wenn wir also den Namen ändern, sagen
wir mal, bekommst du das. Mir gefällt die Box besser, sie
macht mehr Sinn. Wir legen das jetzt
hier hin, geben die Zeichenfolge aus
und testen, ob
dies tatsächlich
das Überlappungsereignis auslöst. Also gehen wir zurück zum Level, drücken Play, gehen zurück zur Box. Oh, wir haben das
Hallo oben links. Wir haben, wie Sie sehen können, dass dies
jedes Mal, wenn wir die Überlappung eingeben, mehrfach ausgelöst wird. Gehen wir also zurück
zum Bauplan. Jetzt bestätigen wir, dass dies
tatsächlich so funktioniert, wie wir es wollen. Wir könnten viele Grenzen setzen, was genau das Öffnen
dieser Tür auslösen kann oder wie
oft sie geöffnet und
geschlossen werden kann, oder wollen wir
sie danach
automatisch öffnen und schließen? Wir können jedes
einzelne dieser Szenarien durchführen, aber wir werden es einfach
halten. Wir werden einfach
die Tür öffnen, wenn wir uns der Tür
nähern. Also, wie würdest du sagen, dass
sich die Tür hier öffnen soll? Damit sich die Tür öffnet, nehmen wir an, wir wollen, dass sich diese Tür
öffnet, sagen wir in Worten, Sie müssten sie nur in einem Winkel von 90 drehen
. Realistisch gesehen
wäre es vielleicht etwa 80, aber ich bevorzuge 90 Grad. Was wir also tun können,
ist hierher zu gehen diesen SM-Türknoten hier zu
zerstören Übrigens ist dieser
Tor-Knoten jetzt eine Variable. Handeln Sie hier im Event-Graph. Und bevor wir Mond machen, lassen Sie mich
erklären, was Variablen sind. Variablen sind der grundlegendste
Teil des Codierungsprozesses, nicht nur in Unreal, sondern auch in SimplusPlst Sharp Variablen sind im Grunde genommen,
man könnte sagen, Ortslote oder Inhalte von Informationen
, die Nehmen wir zum Beispiel an, bei
der Masse wäre
man wie X plus Y oder
X multipliziert mit Y, Y ist gleich Z. Das ist dieselbe Logik.
Das ist unser X. Das ist unser Y. Das andere
wird unser Z sein Und wenn wir programmieren,
müssen wir nicht jedes Mal irgendwie
alle mit dem Objekt
verknüpften Informationen referenzieren oder eingeben alle mit dem Objekt
verknüpften Informationen Wir können das einfach
als Handle oder als Etikett
oder wie auch immer Sie es akzeptieren
möchten , verwenden, damit Sie es leichter
verstehen Das ist jetzt unsere Tür. Die AEM-Tür hier, das ist ein Verweis auf diese AMDR und diese ASM-Tür wird jetzt hier
im Blueprint referenziert Nun, was wir damit machen können bevor wir verstehen müssen,
was wir versuchen zu Wir wollen diese Tür um 90 Grad
in der Z-Achse drehen. -90 Grad, um genauer zu sein die
Z-Achse. Wie können wir das machen? Dafür brauchen wir also
einen Zeitplan. Also Zeitleiste und füge sie hier hinzu. Jetzt fragen Sie sich vielleicht,
was ist der Zeitplan? Im Grunde lösen die Überstunden
wie Ereignisse die Tür aus. Wir wollen nicht, dass die Tür
plötzlich aufgeht. Wenn wir also zum Beispiel diese SM-Tür
nehmen und sagen wir, wir machen uns eine Notiz daraus und
setzen Sorry, Rotation ein. Und setze die
relative Drehung auf
-90, wenn das Ereignis ausgelöst Es wird sofort geöffnet, aber das ist nicht
der Look, den wir wollen So
einen
plötzlichen Auslöser würdest du nicht an deiner Tür haben wollen. Also, wie können wir das jetzt reparieren? Also wollen wir, dass
sich diese Tür mit der Zeit öffnet. Also über, sagen wir, 2 Sekunden. Und so machen wir
das mit einem Zeitplan. Wir haben also diesen
Knoten, der die
relative Drehung der
Komponente, an die er angehängt ist, eingestellt ist. In diesem Fall handelt es sich um eine SM-Tür. Diese Tür ist das Ziel
für diese Funktion. Und diese Funktion
dreht das Objekt um
jeden Wert, den wir eingeben Wir können es für
die zusätzlichen Knoten vergrößern, aber das ist jetzt nicht relevant Schauen wir uns also an,
was wir hier ändern. Wir modifizieren die Z-Achse. X und Y sind uns nicht wirklich
wichtig. Was wir
also tun können, ist, mit der rechten Maustaste zu klicken und diesen Strukturpin zu teilen Also haben wir
diesen Vektorwert der Rotation
im Wesentlichen
in drei Gleitkommawerte aufgeteilt , die dann automatisch wieder in Rotation
umgewandelt werden Der Grund, warum wir
das auf diese Weise tun, ist wir nur einen bestimmten
Wert von drei
ändern, sodass wir nicht drei Werte eingeben müssen
. Wir nehmen diesen
Hinrichtungsstift und setzen ihn ins Spiel. Der Grund, warum ich es
ins Spiel bringe und nicht von
Anfang an spiele , ist,
dass wir wollen, dass das
im Grunde nur einmal passiert. Das wird abgespielt, es wird enden und es wird beendet bleiben. Wenn wir es von Anfang an ins
Spiel bringen, wird
es jedes
Mal beginnen, wenn es ausgelöst wird, diese Zeitlinie würde von vorne
beginnen, aber wir wollen es nicht, also werden
wir es einfach im Spiel haben. Und jetzt haben wir die relative Position der
ASM-Türsets, und wir müssen
diese eingestellte relative Position
mit einem Wert aktualisieren diese eingestellte relative Position , den wir aus der Timeline
erhalten. Wir müssen also entscheiden, welchen Wert wir daraus in
diese
relative Flotation ausgeben in
diese
relative Flotation Wir doppelklicken auf die
Timeline und sie
öffnet sich wie folgt und wir
klicken auf diesen Plus-Track Weil wir
nur einen Wert ändern. Wir
brauchen nicht wirklich eine Vektorspur , die drei Werte enthält. Sie können einfach einen
einfachen AT-Flow-Track verwenden. Wir haben also diese Spur und wir benennen sie in Z-Achse um. Und hier müssen wir eine Zeit hinzufügen. Die Länge der Zeit
beträgt also derzeit 5 Sekunden. Testen wir es mit 5 Sekunden. Und der Wert, wir
haben hier keine Werte. Es ist nur eine gerade
Linie, nichts passiert. So wie wir es machen, klicken
wir einmal bei gedrückter Umschalttaste
, um einen Knoten hinzuzufügen. Also wird der Anfang Null
sein. Es ist keine Rotation. Also setzen wir es auf Null, der Wert wird auch Null sein. Und lassen Sie uns einen zweiten Knoten hinzufügen, der sich an der Markierung fünf befinden wird. Lass uns rauszoomen. Es
wird 5 Sekunden hinzufügen. Kann die Zeit manuell eingeben, und der Wert wird zwischen 90 90 liegen, weil wir
eine negative Zahl Das ist also ein sehr geradliniger Graph von Null auf
-90 in 5 Sekunden Und lassen Sie uns das kompilieren, zurück
zum Event Graph gehen. Und jetzt haben wir diese
Z-Achse aus der Timeline. Es ist eine Ausgabe des Werts , den uns diese Funktion jede Sekunde
geben wird , nicht nur jede Sekunde,
wie bei jedem Bild in
das wir hier eingeben
müssen. Jetzt wird dieser Z-Wert, diese eingestellte relative
Rotationsfunktion
verantwortlich ist , durch diese Zeitleiste
aktualisiert. Also stellen wir für alle Fälle diesen Tresor zusammen und
kehren zu unserer Liebe zurück. Wenn wir das jetzt auslösen, öffnet sich
die Tür langsam, sehr langsam. Und jetzt sind wir hier. Wenn wir nicht gespielt haben, sondern von Anfang an für
den Auslöser spielen und drücken, zurück zum Testen,
hätten wir diese seltsame
Situation, geöffnet wird
und ich gehe raus und komme zurück und okay,
es öffnet sich wieder. Ich komme zurück und okay, wie du siehst,
ist das bestenfalls ein Streich Zuerst eine defekte
automatische Tür. Also wollen wir das nicht. Also machen wir dieses Stück. Und du denkst vielleicht,
was ist, wenn ich die Tür
schließen will? Und das ist eine vernünftige Frage. Was ist, wenn ich das erste Mal durch
das Ich gehe, wenn ich reingehe, möchte
ich, dass es sich öffnet, und wenn ich nach draußen gehe, möchte ich, dass es sich schließt Es ist machbar. Die Art und Weise, wie es gemacht werden
kann, ist ziemlich einfach. Wir könnten also
zusätzliche Variablen hinzufügen , die angeben, ob es
wahr ist oder nicht, dass wir uns
drinnen oder
draußen befinden usw., falls es
mehrere Ausgänge
aus dem Gebäude gibt mehrere Ausgänge
aus dem Gebäude In unserem Fall haben wir
nur einen Eingang, also werden wir es
einfach halten Wenn ich an diesem Punkt aussteige und ich auch
von diesem Punkt aus wieder aussteigen muss, richtig? Und wir werden dafür sorgen, dass
die Tür offen bleibt. Vielleicht wollen wir nur, dass
es etwas Luft hat. Was wir tun können, ist,
hier einen Knoten namens Flip
Flop zu erstellen .
Flipflop Was dieser Knoten tut, ist wenn dieses
Ereignis zum ersten Mal ausgelöst wird, wird von Anfang an abgespielt Und wenn dieses
Ereignis zum zweiten Mal ausgelöst wird, wird
es vom Ende an rückgängig gemacht. Lassen Sie uns es jetzt testen
und einen Blick darauf werfen. Wie Sie sehen können, wird dies jedes Mal
ausgelöst. Der Schauspieler überschneidet sich, und das ist nicht das, was
wir von unserer Tür erwarten Was können wir also tun, um das Problem zu beheben? Wie immer gibt es mehrere Möglichkeiten
, dies zu tun. Wir können eine
sehr einfache Variable hinzufügen, angibt, ob die Tür gerade geöffnet
ist oder ob
die Animation nicht mehr
abgespielt wird oder nicht. Wir können also eine Variable
erstellen, die sagt, dass ich Türen
öffnen und schließen kann .
Der Goldbarrenwert Die Goldwerte
sind also Werte , die
einfach Ja oder Nein sagen Können wir in diesem Fall also den Schlusskurs und
den Bulim-Wert öffnen? Wir möchten, dass dies „Ja“ ist , wenn die Animation
nicht mehr abgespielt wird Wie implementieren wir das also? Sie können P drücken und klicken, wodurch ein Verzweigungsknoten erstellt wird. Also, was ein Zweig macht, ist
, diesen Zweig in einen Zweig zu legen. Und füge diesen Wert hier hinzu. Wir möchten, dass der
Standardwert
wahr ist, da die Tür normalerweise geschlossen
ist. Ganz am Anfang wollen wir, dass
dies mindestens einmal ausgelöst wird. Und wenn es wahr ist, wollen
wir, dass es abgespielt wird. Und wenn es abgespielt wird, wollen
wir, dass es falsch ist,
sodass es kein
zweites Mal ausgelöst werden kann. Also, was wir tun, bevor
wir hier weitermachen, wir erstellen das und
ziehen es und öffnen die geschlossene Tür hierher und
geben den Wert von I too fs ein. Erstellen Sie eine Kopie
davon, eine zweite, und machen Sie dasselbe. Wir möchten, dass dies in
beiden Fällen falsch ist, da dies auf
diese Weise nicht beim zweiten Mal ausgelöst
werden kann, aber wir möchten, dass es geschlossen wird, nachdem es bereits geöffnet wurde. Also was wir tun, wir machen das wieder. fertig sind, wird dies auf wahr
gesetzt, und das ist das
Ende dieser Zeile. Testen wir es jetzt
auf diese Weise. Und lass uns gehen. Antwort: Wie Sie sehen, wird es nicht
erneut ausgelöst. Und als ich
es erneut auslöse, wurde es geschlossen. Also können wir
das auslösen. Geh rein. Und wenn wir nach draußen gehen, lösen
wir es erneut aus und
es wird wieder geschlossen. Offensichtlich ist dies nicht die
idealste Lösung dafür. Du würdest nicht wollen, dass
deine Tür offen ist und, okay, ich gehe zurück und komme zurück, und jetzt
schließt sich die Tür vor deinem Gesicht. Es gibt vernünftigere
Möglichkeiten, dies zu tun. Wir können Auslöser auf
beiden Seiten der Tür hinzufügen Sie können dies
beispielsweise duplizieren und hier einen weiteren
hinzufügen. Dieser öffnet sich,
wenn wir reinkommen, wird ausgelöst und
wir schließen die Tür wir drinnen sind
oder umgekehrt, oder wir können sie rückgängig machen, indem wir
die Kombination von
Bauplänen oder Knoten verwenden die Kombination von
Bauplänen oder Knoten Aber das ist gut genug für das, was wir hier erreichen
wollen Das ist eine sehr einfache, nicht optimierte
Art, eine Tür zu öffnen. Und das ist so, dass
diese einfache Funktion, bei der es nur darum
geht, den Laden zu
öffnen, zu viele Details diese einfache Funktion, bei der es nur darum
geht, enthält. Wir hätten es
viel einfacher machen können, aber es gäbe
weniger zu erklären, also mussten wir bei
dieser seltsamen,
überkomplizierten Lösung bleiben . So haben wir die Tür geöffnet und
sind hineingegangen. Wie Sie sehen können, ist das den Bauplänen zu
verdanken. Die Blueprints ermöglichen es uns , Funktionen
so zu erstellen, wie wir es wollen Ich könnte das machen, das ist nur eine einfache Tür mit Animationen zum
Öffnen und Schließen Wir könnten es auf verschiedene Arten machen. Wir können dafür sorgen, dass diese Tür diesen Charakter
erkennt und nur für diesen Charakter
geöffnet wird. Ihr könntet, sagen wir,
MPCs oder nicht spielbare
Charaktere im Spiel haben ,
und diese Charaktere können den Store auslösen oder
auch nicht,
je nachdem, welche
Zugriffsebene sie haben Vielleicht möchtest du, dass ein
bestimmter Charakter diesen
Shop durchsucht, aber andere Vielleicht benötigst du dafür einen bestimmten
Gegenstand. Es hängt alles davon ab, wie Sie es machen möchten
und von Ihrer Kreativität.
13. UE5 FC06 03: Nun, das wird normalerweise im Wesentlichen nur
als Offenlegen
der Variablen für den
Editor bezeichnet im Wesentlichen nur
als Offenlegen
der Variablen für den
Editor Das ist nicht wirklich der
richtige Name dafür. Es ist instanzeditierbar. Sie fragen sich vielleicht, was
Eposon Spawn macht? Also, wenn wir einen Schauspieler haben , der andere
Schauspieler in das Level bringt in diesem Fall zum Beispiel Lassen Sie uns in diesem Fall zum Beispiel einen Schauspieler aus der Klasse spawnen und den
Spawn-Schauspieler als dieselbe Lampe auswählen Jetzt haben wir diese Lampe
, die wir spawnen können, oder? Und wenn wir das einstellen. Ich entschuldige mich. Wir
müssen hier nur einen Wert angeben. Und in diesem Fall überspringe
ich den
Vorgang einfach und mache ihn beim Spawn verfügbar Wenn ich kompiliere, aber dieses Expose
on Span ist nicht verfügbar. Nehmen wir an, ich wähle es einfach aus. Das wird hier nicht angezeigt, selbst wenn ich es kompiliere. Aber wenn ich Exposed Spawn setze, habe ich
jetzt plötzlich
diese Funktion Das bedeutet, dass ich einen Schauspieler
erstellen kann, der einen bestimmten Schauspieler
mit den gewünschten Parametern Wie nützlich ist das, fragst du dich vielleicht? Nehmen wir an, Sie haben ein Spiel,
in dem Sie Projektile,
Feuer, Eis, elektrische, ich
weiß nicht, Laserstrahlen abfeuern Feuer, Eis, elektrische, ich
weiß nicht, Laserstrahlen Die Farbe ist das einzige
, was sich zwischen
Ihren Projektilen unterscheidet Und diese Farbe wird
pro Akteur beim Spawn definiert, ähnlich wie wir es hier haben Wenn sie entstehen, legen sie ihre
Lichtfarbe fest und so weiter Wenn du jedoch die Lichtfarbe
für das Projektil beim
Spawnen
festlegen möchtest , insbesondere
abhängig von den Parametern und
bestimmten Parametern, die du
möglicherweise in deinem Spiel hast, kannst du diese Option beim Spawn anzeigen verwenden, um
dir diese Option zur Verfügung
zu haben, wenn du es belichtest Option zur Verfügung
zu haben, wenn du Und wenn
du das nicht brauchst, lässt du es natürlich weg Okay, lass uns jetzt zu dem zurückkehren, was wir
hier in unserem Level versuchen zu tun. Zurück zu den
Entwürfen, die wir haben,
was ist, wenn Sie sie nicht einzeln
einstellen möchten, sondern jedes Mal eine zufällige Farbe haben
möchten Vielleicht möchten Sie einfach danach
suchen und nach einer
zufälligen Farbe suchen , und
Sie werden das bekommen Linearer Farbsatz, zufälliger Farbton. Sie müssen hier lediglich
Ihre Lichtfarbe angeben. Und das hier hinten und die s
hier hinstellen und Play drücken, und sie werden
jedes Mal zufällig Um zu verstehen, was
dieser Knoten tut, jedem Start legt
er bei
jedem Start einen zufälligen Wert
für diese Variable fest, und diese Variable wird bei Beginn der Wiedergabe
eines
Ereignisses als helle Farbe gesetzt Beginn der Wiedergabe
eines
Ereignisses als helle Farbe Sie fragen sich vielleicht, warum das Farbset nicht für alle
gleich ist. Wir haben nur eine Option bearbeitet, einen Blueprint, und sie befinden sich
alle im selben Blueprint Warum ist der Wert also für jeden
unterschiedlich? Das liegt daran, dass dieser Prozess für jeden
Akteur einzeln aufgerufen
wird. Also wenn du spielst, spiel und gehe zum Blueprint Sie werden diesen Knoten sehen. Lassen Sie uns diesen Vorgang wiederholen. Diese rote Linie ist eine Funktion
, die gerade ausgelöst wurde. Und wenn Sie sich die obere Seite hier ansehen
, haben
wir verschiedene Labore, und Sie können eines davon auswählen. Wählen wir das zweite aus und
klicken Sie auf die Lichtfarbe
usw., alles
ist an seinem Platz und Sie werden vielleicht einen Unterschied feststellen Und Sie können sogar die anderen
überprüfen. Aber wenn du hier aufpasst, wenn ich mit der Maus über
die Lichtfarbe fahre, sind
die Werte hier für jeden
unterschiedlich Und das liegt daran, dass sie
zwar alle
dieselbe Blaupause
haben, aber
ihre individuellen
Akteure in der Szene individualisiert sind ihre individuellen
Akteure in Wenn also ein Ereignis ausgeführt wird, wird das
Ereignis für
jedes Ereignis separat ausgeführt Wenn Sie also ein Objekt mit, sagen
wir, diesem speziellen,
sehr einfachen Ereignis mit zwei Knoten haben
und Sie 100 desselben
Objekts haben, müssen
Sie
beim Start des Ereignisses beachten, dass Sie nicht zwei Knoten der
Komplexitätsfunktion ausführen, sondern 200. Achten Sie also darauf, dass Sie Ihre Szene nicht zu sehr
überladen. Es gibt
natürlich Möglichkeiten, dies zu optimieren . Sie können sequenzieren. Sie können alle
Schauspieler zu Gruppenschauspielern zusammenfassen. Anstatt beispielsweise
100 einzelne
Lichtpläne zu haben, könnten
Sie vielleicht
ein Lichtsystem für Ihre gesamte Stadt haben dem
alle Lichter
den gleichen Plan In Wirklichkeit
wird daraus ein einziger Plan
, der auf
alle Lichter in Ihrer Stadt angewendet wird Aber auch hier gilt: Ob es optimiert
ist oder nicht, ob es
einfacher zu bedienen ist oder nicht, ob es notwendig ist,
hängt von deinem Spiel,
deiner Kreativität und, was noch
wichtiger ist, deinem Einfallsreichtum ab,
wenn es um
Optimierung geht Jetzt haben wir diese Funktion
, die nicht schlecht ist. Jedes Mal, wenn wir uns diesen Raum
ansehen, hat
er eine andere Farbe, und vielleicht ist das edel genug Vielleicht ist das alles, was du willst. Ich möchte, dass es etwas
heller ist, also 240. Mal sehen, ob das etwas
geändert hat. Nur ein bisschen. Lassen Sie uns den Radius und den
Winkel des Atentans ein bisschen ändern, vielleicht 16. Ja, das gefällt mir eher. Aber ich möchte, dass das nicht
abgestanden wird. Also das wird für
den Rest des Spiels genauso bleiben , bis ich es herunterfahre und neu
beginne Das war ein Spiel,
das als würde
man einen Raum betreten, und der Raum hat all
diese verschiedenen Farben, und jedes Mal, wenn du
diesen Raum betrittst und dieser Raum ins
Spiel geladen
wird oder ein Level geöffnet wird, bekommst
du verschiedene Farben. Es könnte ein bisschen langweilig sein. Lassen wir sie also ständig ihre
Farben ändern. Wenn wir uns an das Event-Häkchen erinnern, wenn du alles
hinzufügst, was wir haben, anstatt dass Events beginnen zu spielen, bekommen
wir etwas
ganz anderes. Aber ich glaube, wir sind uns alle
einig, dass das zu viel ist. Das tut meinen Augen weh. Das ist also nicht ideal. Ja, es ändert sich ständig, aber ich möchte nicht, dass es
sich so sehr ändert. Und das tut es nur einmal. Wir brauchen einen Mittelweg
zwischen Überstunden, Umschulung und nur Einzelüberstunden
am Anfang. Es gibt eine ganze Reihe
von Möglichkeiten, dies zu tun. Sie können Zeitleisten hinzufügen, Ereignisse aufrufen usw. In
diesem speziellen Fall ist es jedoch am einfachsten , eine
Verzögerungsnotiz hinzuzufügen Was eine Verzögerung bedeutet, ist, dass sie
eine bestimmte Zeit wartet, und auf diese Zeit wird
hier verwiesen, Dauer für Dauer Und nach Ablauf dieser Zeit
wird sie ausgeführt. Nehmen wir an, lassen Sie es uns in
1 Sekunde erledigen. Schauen wir uns das jetzt an
und überlegen wir, was es bewirkt. Während der Startphase, d. h. wenn dieser Schauspieler in der Szene
ist und Spiel beginnt, oder
wenn dieser Schauspieler
erstellt wird oder spawnt, wird dies ausgelöst Wir legen eine zufällige Farbe für
unsere Lichtfarbenvariable fest, die
als Lichtfarbe für unsere
Spotlight-Komponente festgelegt ist als Lichtfarbe für unsere
Spotlight-Komponente Und es gibt eine Verzögerung. Hier. Und 1 Sekunde vergeht und diese Verzögerung wird ausgeführt,
aber hier ist nichts Wir wollen diesen Vorgang wiederholen. Wir möchten
eine neue zufällige Farbe auswählen
und sie
als neues Licht festlegen auswählen. Was wir also tun können, ist diese
Hinrichtungsnadel zu
nehmen und sie hierher zu legen. Aber plötzlich ist es sehr
unangenehm, sich das anzusehen. Was wir hier tun können, ist einen umgeschriebenen Knoten
hinzuzufügen. Fügen wir diesen Knoten hier und verfolgen wir
ihn bis hierher. Verfolge diesen Knoten
von hier bis hier. Und organisiere das ein bisschen besser. Jetzt haben wir einen Knoten, hier
verzögert nach 1 Sekunde wieder
ausgeführt Und lass uns sehen, was passiert. Gehen wir zurück zum
Level und drücken Play. Das ist viel
angenehmer für die Augen. Lassen Sie uns nun ein wenig
über die Organisation von Entwürfen sprechen. Wenn Sie nicht der
Einzige im Team sind oder wenn Sie es einfach organisieren möchten
, was
im Allgemeinen eine gute Praxis ist,
Ihren Code immer zu organisieren,
gibt es Dinge, die Sie tun können Einer davon
ist, wie
ich bereits gezeigt habe, ein neu geschriebener Knoten, damit man leicht erkennen kann, wo sich die
Ausführungspins befinden In diesem Fall wurde der
Ausführungspin also vom Delay-Node zum linearen Farbsatzknoten mit
zufälligen Farbtönen geändert Aber das
erklärt nicht wirklich, was das macht. Und wer es sich zum
ersten Mal ansieht, muss
den Code durchgehen, um ihn zu verstehen. Und wenn Sie einen
sehr komplizierten Code haben ,
der Hunderte von Knoten enthält,
was nicht ungewöhnlich ist, werden
Sie feststellen, dass die Person,
die sich den Code ansieht, es was nicht ungewöhnlich ist, werden
Sie die Person,
die schwer haben
wird. Um es ihnen einfacher zu machen, können
Sie
Ihren gesamten Code auswählen und auf die Schaltfläche
C klicken . Das ist üblich. Für Leute, die
mit der Codierung in Plus
Plus oder C Sharp
oder einer anderen Programmiersprache vertraut sind mit der Codierung in Plus
Plus oder C Sharp , macht
das genau das Gleiche. Dadurch entstehen keine zusätzlichen Kosten für
das Projekt, das für die Bereitstellung bereitgestellt wird
. Hier im Kommentarbereich. Wir nennen das einfach. Sagen wir Licht, aber ändern Sie die Funktion. Ich bin mir nicht sicher, was mit meiner Tastatur
los ist. Und jetzt haben wir das und wir
können auch die Farbe ändern. Wir wollen es anders machen oder nur den Farbcode oder die Funktionen. Ich bevorzuge Grün, und wir
wollen das Event
Begin Play nicht dazu hinzufügen , weil das
Event Begin Play unabhängig
von diesem Code
funktioniert . Und jetzt, da das alles
in diesem Befehlsbereich ist, können
Sie
sie einfach alle zusammen verschieben. Das ist nützlich, wenn
du viele
Notizen in deinem Slave haben wirst. Es gibt noch eine
Sache , die ich
erwähnen muss, bevor wir weitermachen. Dieser Verspätungshinweis hier, Sie müssen aufpassen. Das hat ein Symbol hier. Wenn Sie es lesen,
steht am
Ende ein Text . Latente Notizen können
nur in Ereignisdiagrammen platziert werden Sie fragen sich vielleicht, warum das hier ist. Für diese Hinweise, die mit Programmieren
vertraut sind, muss
ich erklären,
was ein Makro ist. Ein Makro und
seine Funktionen sind so ziemlich
identisch mit dem, was wir hier haben, aber der Unterschied besteht darin, dass
sie
sofort ausgeführt werden und nicht
zeitabhängig sein können. Damit meine ich, nehmen wir an
, wir haben eine Funktion, und ich meine das nicht. Das sind Knoten in einer Sequenz. Eine Funktion, wenn wir hier eine
erstellen würden, sagen wir,
wir erstellen, klicken wir auf dieses
Plansymbol und erstellen eine Funktion und nennen
diese Funktion.
Nennen wir sie einfach Test, während wir testen. Jetzt haben wir eine
Funktion namens Test. Eine Funktion kann als Ereignis oder
Knoten
aufgerufen werden, um genauer zu sein,
in Ihrem Blueprint Und ich möchte, dass das alles innerhalb der Funktion
passiert. Ich könnte das einfach kopieren und in den Test
ziehen. Aber es ist viel einfacher,
dies zu entfernen und auf alle zu klicken und mit der rechten Maustaste zu klicken und zu
reduzieren, um zu funktionieren. Sie werden feststellen, dass dies fehlschlagen wird. Der Grund, warum dies
fehlgeschlagen ist, liegt am Verzögerungsknoten. Wir lehnen das ab Lass es uns nochmal machen. ohne Verzögerung wurde der Knoten ausgewählt, die
Funktion wird heruntergefahren. Jetzt haben wir eine neue Funktion, und lassen Sie uns einfach deren Namen kopieren
. Und benenne diese neue Funktion
in Lichtänderungsfunktion um. Und dann mit dem Spielen beginnen, das
sieht übersichtlicher aus, und es ist auch
eine sehr gute Möglichkeit,
dies zu tun , wenn Sie
diese Funktion gezielt
an mehreren Stellen wiederverwenden möchten. Stellen Sie sich vor, Sie haben ein Licht und Sie haben mehrere mögliche
Auslöser, um die Farbe zu ändern. Normalerweise
müssten Sie das, was
Sie tun müssten, kopieren und einfügen. Sie können diesen
umgeschriebenen Knoten wirklich entfernen. Sie müssten diese Funktion kopieren und
einfügen. Zu jedem dieser Auslöser. Für jedes Ereignis, bei dem die
Möglichkeit besteht, die Lichtfarbe
in eine zufällige Farbe zu
ändern, müssten
wir sie
kopieren, einfügen und sie um
das Ereignisdiagramm herum
platzieren, wodurch es sehr schnell sehr unorganisiert wird wodurch es sehr schnell sehr unorganisiert Aber was noch
wichtiger ist, ist optimiert. Eine optimierte Funktion ist eine langsame Funktion und eine langsame Funktion sorgt für ein langsames Spiel, und niemand mag ein langsames Spiel. Jetzt haben wir diese
Lichtänderungsfunktion, und wir können genau
denselben Code auf verschiedene Weise austricksen. Vielleicht haben Sie ein
Spiel, bei dem, sagen wir, wenn Sie das Licht berühren, es eine zufällige Farbe annimmt. Wenn Sie vielleicht
eine bestimmte Aktion ausführen , z. B. Sprung, nimmt sie
eine andere Farbe an. Oder vielleicht erschießt du es. Und nehmen wir an, Sie haben alle drei genannten Möglichkeiten
im selben Spiel und
möchten alle drei mit
demselben Schauspieler machen. Wollt ihr drei
separate Events erstellen und dieselben Code-Spaghetti
überall hin
kopieren und einfügen Nein. Was Sie verwenden werden, ist
diese Lichtwechselfunktion. Sie fragen sich vielleicht, aber okay, wenn ich mehrere Möglichkeiten hätte, diese Funktion
auszulösen, würde
ich
mehr Kontrolle darüber haben wollen zum Beispiel im
letztgenannten Szenario Wenn Sie zum Beispiel im
letztgenannten Szenario als Licht fotografieren können
und möchten, dass das
Licht, sagen
wir, rot wird,
als ob es beschädigt wäre, können
Sie das
mit dieser Funktion nicht tun weil wir es
jedes Mal zufällig einstellen Es würde also
keinen wirklichen Unterschied zwischen dem Abfeuern
dieser, sagen wir, Lampe, die diese Funktion auslöst, oder sagen wir einfach,
herumlaufen oder vielleicht gibt es nur einen anderen
Auslöser, das ist egal. Du bräuchtest mehr
Kontrolle darüber. Sie sollten
diese Lichtfarbe
je nachdem einstellen , wie das Ereignis
ausgelöst wird , ohne all
diese Funktionen überall hin zu kopieren. Hier kommen die Ein - und Ausgänge der
Funktionen ins Spiel. Wie Sie hier sehen können, haben
wir eine Lichtwechselfunktion, und es gibt dort keine Eingänge. Ziel ist in
diesem Fall natürlich Selbst, aber es kann auch etwas
anderes sein, wenn es gecastet Cast Cast wird
in der nächsten Struktur erklärt. Wir können auf
die Lichtänderungsfunktion klicken und eine Eingabe hinzufügen. Wir können auch eine Ausgabe hinzufügen, aber in diesem Fall konzentrieren
wir uns auf die Eingabe. Lassen Sie uns eine Eingabe hinzufügen. Die Eingabe
ist in diesem Fall eine Variable. Diese Lichtfarbe
ist nun eine Variable, die als lineare
Lichtfarbe bezeichnet wird. Also wollen wir,
dass das genau dasselbe ist. Also können wir
es einfach in linearer Farbe eingeben. Und nennen wir es einfach Farbe. Und jetzt haben wir plötzlich eine Lichtänderungsfunktion mit einem Farbknoten, den
wir in die
eingestellte Lichtfarbe setzen können , anstatt die Lichtfarbenvariable zu
verwenden. Ich werde das vorerst abnehmen. Wir können es später wiederverwenden. Und wir können kompilieren. Wenn Sie jetzt
zu Ihrem Ereignisdiagramm zurückkehren, werden
Sie feststellen, warten Sie,
wir haben eine Farbe. Wir haben jetzt eine Möglichkeit, über eine Funktion zu bestimmen, welche Farbe es haben
soll Also lass es uns machen. Nehmen wir an, wenn Ereignisse
zu spielen beginnen und die Funktion aufgerufen
wird, färbt sie sich rot. Speichern, kompilieren,
zurück zum Level, Play
drücken. Okay, es funktioniert. Aber früher hatten wir
zufällige Farben. Das hat uns also
ermöglicht, das zu tun. Also, was wir tun können, wir können das von
hier aus schneiden, kompilieren und zurückgehen. Und das ist vorerst hier angekommen.
14. BP-Funktionen: Jetzt haben wir das
als separate Funktion. Also das ist eine
zusammengeklappte Funktion,
nennen wir sie zufällige Farbe. Und wir haben jetzt
diese zufällige Farbe. Und für diese Funktion mit zufälligen
Farben wollen
wir Ausgaben
statt Eingaben haben. Jetzt haben wir diesen
Ausgangsrückgabeknoten. Und wenn wir das hierher ziehen
und die Kompilierung mit hellen Farben versehen, speichern wir das für alle Fälle. Und jetzt haben wir diese
Funktion mit einer Ausgabe. Zum Testen können wir das ganz einfach machen. Stellen wir sicher, dass
alles angeschlossen ist. Lassen Sie uns sichergehen. Okay.
Gehen wir zurück zum Level. Ja. Es funktioniert wie es sollte. Aber es gab keinen wirklichen Grund , sie
zu trennen, denken Sie vielleicht. Sie waren eine Funktion. Es wurde eher auf eine Funktion
als auf zwei Funktionen optimiert . Aber hier kommt der Nutzen ins Spiel. Was ich jetzt versuche zu tun, wenn wir die Tür öffnen, werden
alle Farben rot sein. Wenn sich die Tür schließt, werden
alle Farben grün sein. Und wenn Sie
gerade im Raum
oder sogar draußen sind und nicht mit
der Tür
interagiert wird, ändern
sie ihre
Farben zufällig von Zeit zu Zeit, sagen
wir, mit einer Verzögerung von
fünf Sekunden Damit das passiert, sollten wir unseren Code
neu organisieren. Wir haben eine Lichtwechselfunktion, und diese Lichtwechselfunktion,
alles, was sie benötigt, ist eine Farbeingabe Wir haben das Event gestartet und wir können
das hier reinbringen und hier eine Verzögerung von fünf
Sekunden hinzufügen. Vielleicht sogar keine Verzögerung von fünf
Sekunden, lassen Sie uns das tun. Ja, wir werden
später daran arbeiten. Wir können hier
also ein neues Ereignis hinzufügen, und es muss
ein benutzerdefiniertes Ereignis sein. Und wir werden
diese Veranstaltung Open Door nennen. Tür. Lassen Sie uns
ein weiteres Ereignis und erneut ein benutzerdefiniertes Ereignis erstellen und es Closed Door
nennen. Stellen wir sicher, dass es gut aussieht. Hier haben wir diese Funktion,
die diese zufällige Farbe annimmt. Müssen wir diese Funktion jetzt hier
haben? Ist die Frage. Nicht wirklich. Du kannst das und das
entfernen. Und lassen Sie uns sie
alle voneinander lösen und logisch darüber
singen Das Spiel beginnt, wir bekommen
eine zufällige Farbe. Also bekommen wir diese zufällige Farbe. Wir werden vorerst keine
Randomisierung hinzufügen. Die Tür öffnet sich und
wir bekommen grüne Farbe. Okay? Also brauchen wir wieder diese kleine
Änderungsfunktion. Aber dieses Mal haben wir es so
vordefiniert, dass
wir sagen, offene Tür haben, rote Farbe
als Warnschild, dass jemand
den Raum betritt Und bei geschlossener Tür nehmen
wir an, es ist einfach grün Ja, ich stimme zu. Nehmen wir an, wir können die Farbe nicht ändern oder,
um genauer zu sein, die Farbe der Lichter beim Öffnen oder Schließen nicht nach
dem
Zufallsprinzip anordnen Lichter beim Öffnen oder Schließen nicht nach
dem Fügen wir also eine Variable hinzu. Die Tür ist interagiert. Und füge es als Stier hinzu. Und lass uns verzweigen. Bis zum Ende dieser Farbe. Wenn gerade mit der Tür
interagiert wird,
sollte der Standardwert für „
Pitch“ auf „False“ gesetzt sein Wir ordnen unsere Farbe nach dem Zufallsprinzip an
und ändern sie mit Verzögerung in zufällige Farben F-Verzögerung. Und lassen
wir diese Verzögerung 30 Sekunden
betragen, das sollte in Ordnung sein. Oder ja, es sollte in Ordnung sein. Wenn mit der Tür nicht
interagiert
wird , tut sie nichts Für offene und geschlossene Türen. Wenn diese Ereignisse ausgelöst werden, wollen
wir festlegen, dass diese Tür
interagiert wird wahr wird Was wir also tun, ist, dass wir zwei
Arten von Interaktionen erhalten. Wir setzen sie auf „true“, sodass sie nicht in der Mitte
zufällig ausgewählt werden, und setzen unseren Prozess fort Und wenn wir unseren
Türplan überprüfen, hatten
wir einen Zeitplan von 5 Sekunden also 5 Sekunden, bis die Tür vollständig
geöffnet oder geschlossen Es dauert also 5 Sekunden, bis die Tür vollständig
geöffnet oder geschlossen ist Wir können also
eine Verzögerung von 5 Sekunden hinzufügen. zweites Mal oder du kannst sie
einfach kombinieren, weil diese beiden Operationen
nicht gleichzeitig ausgeführt werden können, wie
wir es im
Tor-Blueprint
mit diesem Plop eingerichtet haben ,
da mit ihm nicht interagiert werden kann solange eine Funktion
noch nicht abgeschlossen ist Gehen wir jetzt zurück. Und nach 5 Sekunden Verzögerung lösen
wir das Set erneut aus. Und nachdem wir es auf „fällt“ gesetzt haben
und 5 Sekunden vergangen sind, wollen
wir
zufällige Farben zurückbekommen. Also lassen Sie uns das für einen neuen Zweck verwenden und es auf eine zufällige Farbe
ziehen. Und damit es gut aussieht, vielleicht sogar an einem roten Knoten
, um
die Kurven ein bisschen
leichter für die Augen zu machen die Kurven ein bisschen
leichter , nur
um es einfacher zu haben. Okay. Also, wird das funktionieren, ist die Hauptfrage?
Die Antwort lautet nein. Warum? Ja,
die Lichter ändern ihre Farbe, aber sie haben nicht mit der Tür
interagiert. Der Grund, warum das passiert ist, ist, dass
wir die Tür nicht wirklich
ausgelöst haben. Wir haben es offene
Tür, geschlossene Tür genannt, aber das ist nur eine Sache mit der Benennung. Wir haben es einfach so benannt. Wir haben nicht wirklich
etwas hinzugefügt, um das auszulösen. Die Frage ist nun, wie lösen
wir diese Funktion aus? Hier werden wir der
Einfachheit des Kurses halber einfach keine
Schnittstellen verwenden und Casts verwenden. Und ich werde gleich erklären
, was sie sind. Aber vorher nehmen
wir das und das, wenn wir
diesen Plan hier haben, wir haben auf dem A, spielen von Anfang an und auf
dem B, rückwärts vom Ende Wenn also B passiert, schließen
wir die Tür
und A passiert, öffnen
wir die Tür Wir wollen rote Farbe beim
Öffnen und grüne Farbe beim Schließen haben . Dazu müssen wir hier eine
Ausführungs-PIN hinzufügen , die uns das ermöglicht, aber sie wurde bereits abgerufen. So wie wir das machen, indem wir sequenzieren, klicken Sie mit der
rechten Maustaste auf die Sequenz
und klicken Sie darauf rechten Maustaste auf die Sequenz
und klicken Sie Und was wir tun, ist, es
hier rein zu legen und zuerst
unser Spiel von Anfang an einzufügen Wir wollen, dass das zuerst passiert, und wir machen es wieder,
und zwar in einer Reihenfolge und
ohne Umkehrung vom Ende bis zu unserem Plan Das wird zu
Spaghetti-Code, aber wir machen
das nur , um zu
lernen, also ist es Im Idealfall würden Sie den gesamten Code
optimieren, aber er ist gut für
schnelles Prototyping Jetzt haben wir das an Ort und Stelle. Die Frage ist, was wir hier machen. Mit der Reihenfolge können wir bestimmte
Ausführungen nacheinander durchführen. Es wartet nicht wirklich darauf dass
eine fertig ist, startet
die andere Es ist eher ein Auslöser. Ich werde diese Auslöser zuerst
auf Null setzen, 1 Sekunde. Natürlich
wollen wir die Tür öffnen, also setzen wir von Anfang an Null auf Sieben
. Und in einer müssen wir diese beiden Funktionen irgendwie
aufrufen. Wir müssen diese Funktion als Funktion der
offenen Tür bezeichnen. So wie wir das machen können,
auf unserer speziellen Ebene, dieser Laden und diese Lampe werden
dieser Laden und diese Lampe immer
gleichzeitig existieren. Daher befinden sie sich bereits
im Speicher Ihres PCs. Also können wir Casting verwenden. Lassen Sie mich zuerst den Entwurf für zwei
gegossene Lampen gießen. Klasse. Der Grund, warum
wir nicht auf
Lampe und Unterricht gehen , weil wir es an allen Lampen verwenden wollen , nicht
an einer bestimmten. Also wechseln wir zur
Blueprint-Klasse,
und da brauchen wir natürlich
Lampll Blueprint und da brauchen wir natürlich
Lampll Das tut es. diesem Casting Bei diesem Casting wird die
Lampe immer in den Speicher geladen, auch wenn Sie am anderen Ende nichts
tun ,
oder auch wenn Sie es
einfach
so belassen ,
ohne Execution-Pin . Daher müssen Sie
vorsichtig sein, wenn Sie es verwenden, nicht nur beim Casting in eine Klasse, sondern auch beim Casting in einzelne Instanzen desselben Schauspielers. Beim Laden
in den Speicher befindet sich die Lampe
jedes Mal, wenn der Speicher in
der Szene vorhanden ist, im
Speicher und nimmt etwas Platz ein. Und selbst wenn Sie
keine Lampen in der Szene haben, wenn Sie diese
spezielle Tür im Bauplan haben, bei der
die Lampe, die sich im Speicher befindet
, einen Abdruck hat Wenn du also mit der rechten Maustaste klickst
und zur Größentabelle gehst, wird dir angezeigt, wie viel
Platz in deinem Spiel benötigt Das ist nicht viel, denkst du vielleicht. Das sind nur 3 Megabyte. Auch das ist ein sehr
einfacher Plan, aber das hängt von der Festplattengröße ab Im Wesentlichen, wie viel Speicherplatz
es auf Ihrer Festplatte benötigt. Und wenn Sie überprüfen möchten, wie viel Speicherplatz in Ihrem RAM,
Ihrem Speicher,
benötigt wird, klicken Sie hier
auf Speichergröße. Und wie Sie sehen können, benötigt es
11 Megabyte Ihres Speichers. Wenn Sie nur
ein solches Objekt haben, ist das keine große Sache, aber wenn Sie
Hunderte von Objekten haben die alle auf
verschiedene Objekte übertragen werden
und normalerweise größer
als 11 Megabyte sind werden
und normalerweise größer , ist
Ihr RAM plötzlich
mit Dateien und
Daten gefüllt, ist
Ihr RAM plötzlich
mit Dateien und
Daten gefüllt die es nicht einmal verwenden
wird, weil diese Klassen nicht
immer im Level sind Sie müssen also sicherstellen, dass, wenn
Sie für
etwas casten ,
immer etwas im Level ist, unabhängig davon, welcher Schauspieler das Casting
tatsächlich übernimmt. Zum Beispiel ist das Casting für den
Spielercharakter normalerweise immer in Ordnung, weil
dein Spielercharakter in den meisten Spielen immer
als dein Charakter in das Level geladen wird , als der
du spielst. Es kann ein Problem sein, wenn du
mehrere Charaktere hast und jeder deiner Charaktere
anders funktioniert und
seine eigenen Pläne hat Aber
wenn du nur einen Spielercharakter hast,
also denselben Spielercharakter für alle Level, kannst
du
deinen Spielercharakter ohne Bedenken casten Aber wie gesagt, in diesem Fall diese Lampe, auch wenn Sie sie aus der Szene
entfernen, kann
diese Lampe, auch wenn Sie sie aus der Szene
entfernen,
die Tür bleiben, aber die Lampe wird trotzdem in den Speicher
geladen. Sie müssen also sicherstellen, dass
Sie das im Hinterkopf behalten. Okay, jetzt werfen wir
es auf die Lampe und von der Lampe wollen
wir eine bestimmte Funktion. Aber Sie werden vielleicht feststellen, dass wir
das nicht direkt machen , weil diese Blueprint-Klasse alle Baupläne der Lampe enthält Es ist keine Instanz oder
eine bestimmte Instanz. Also müssten wir stattdessen alle
Schauspieler der Klasse hinzuziehen. Was genau dasselbe macht, aber wir werden stattdessen
ein Array bekommen. Also machen wir genau das Gleiche, was wiederum sehr einfach ist. Dadurch wird auf sie alle
Bezug genommen , auf
alle Schauspieler. Dadurch wird einfach nicht
direkt auf
die Klasse selbst verwiesen . Also machen wir Lampe und wir
haben jetzt alle Lampen hier, aber jetzt sind sie ein Array
in Form eines Arrays. Was ist also ein Array? Ein Array ist ein Satz mehrerer
Variablen an einem Ort. Zum Beispiel kann ein
Array von, sagen wir, Meshes eine
unendliche Anzahl von Meshes enthalten, und sie sind ein Array, das bei Null
beginnt, etwa durch Indizierung von Null, Eins, Zwei, Drei, Vier usw.
bis unendlich. Und Arrays sind sehr
wichtig, um zu verstehen, ob Sie
ein komplexes Spiel oder
sogar ein einfaches Spiel machen wollen ein komplexes Spiel oder
sogar ein einfaches Spiel In diesem Fall bezieht
dieses Array, das
von dieser Funktion generiert
wurde ,
alle Assets, alle Blueprints dieser Klasse Also alle Referenzen
dieser Klasse in der Ebene. In unserem Level haben wir sechs Lampen, und dadurch werden wir sechs
Schauspieler im Array haben. Was wir tun werden, werden
wir für jeden Loop hinzufügen,
was bedeutet, dass
wir für jedes
Objekt in der Reihe einen Plan
nach Lampe werfen werden Plan
nach Lampe Möglicherweise stellen Sie fest, dass dies eine andere Farbe
hat da es sich jetzt
nicht um eine bestimmte Klasse handelt Dies ist ein bestimmtes
Objekt im Array. In
der ersten Schleife werden
wir zum Beispiel die
Lampenwand auf den Index Null setzen. Lampe mit Index Null,
das gibt eine Note, aber der Grund, warum uns das
diese Note gibt , ist dass
wir auf etwas casten, das bereits geworfen wird. Möglicherweise stellen Sie jedoch fest, dass keine anderen Fehler vorliegen. Du könntest es
direkt so formulieren, und um dich daran zu erinnern, dass es sich immer noch um Casting
handelt. Aber das ist nur eine Möglichkeit, das Casting
auf einen einzelnen Schauspieler anzuwenden. Wenn du nur eine
Lampe im Level hast, Vol Blueprint, kannst du einfach Direct Cast verwenden.
Es gibt kein Problem Wenn Sie jedoch mehrere haben, möchten
Sie vielleicht
ein Array-Element verwenden und prüfen,
ob es sich um dasselbe Objekt handelt. Zum Beispiel, wenn Sie, sagen wir,
ein Array von mehreren Akteuren
haben , aber nicht alle Akteure gleich sind. Zum Beispiel haben wir
ein Array, das
fünf Türen und fünf Lampen enthält . Wenn Sie das einfach
so hierher ziehen, findet
es möglicherweise nicht den
gewünschten Akteur. Aber wenn wir es so
und so machen, wird
das nur ausgelöst, wenn
die Besetzung erfolgreich war. Und wenn die Besetzung damit
erfolgreich ist, ich meine, wenn die Besetzung eine Lampe ist und nicht
die Tür, wird das funktionieren. Und wenn es etwas anderes
in der Reihe ist, wird das fehlschlagen. Denken Sie jedoch daran, dass Sie Ihre eigenen Variablen
in Form eines Arrays
erstellen können . Sie können auf die Variable klicken. Wählen wir eine
Float-Variable aus. Und hier oben rechts können
Sie darauf klicken und es in ein Array
umwandeln. Und Sie können verwenden, nachdem
Sie dieses Array kompiliert
haben, können Sie so viele Instanzen
dieses Arrays hinzufügen, wie Sie möchten. Wir wollen also, sagen wir, ein Array von Werten, fünf, 12, 14, acht,
zwei und eins. Und wenn Sie dieses Array zum
Low hinzufügen und neues R bekommen,
zum Beispiel so, können
Sie für
jede p-Funktion für
jede Schleifenfunktion verwenden, können
Sie für
jede p-Funktion für
jede Schleifenfunktion verwenden um den
nächsten Wert in
der Reihenfolge Null, eins, zwei,
drei, vier, fünf zu erhalten nächsten Wert in
der Reihenfolge , für jeden anderen Zweck, den
Sie als solchen benötigen, daran, Arrays, ja, Sie können
ein Array von Elementen erhalten, im Wesentlichen mehrere
Elemente von irgendeiner Art funktionieren als Information und werden für jede Schleife
verwendet, oder Sie können Ihre
eigenen Arrays mit bestimmten Werten oder Akteurreferenzen erstellen
und diese verwenden. Wie dem auch
sei, in diesem Fall werden
wir diese Notiz verwenden weil ich überprüfen möchte, ob das Array, das ich erhalte werden
wir diese Notiz verwenden,
weil ich überprüfen möchte, ob das Array,
das ich erhalte, tatsächlich der Plan für den
Fall der Lampe ist, auch wenn das
in diesem Fall unnötig ist, weil wir alle wissen, dass wir
speziell
die spezifischen Array-Elemente erhalten und
alle diese dann Labore sein werden Und wir werden
jetzt kompilieren, was macht das? Wenn wir die Tür öffnen, bekommen
wir alle Akteure der Lampen,
und alle Lampen befinden sich eine nach der anderen
in derselben, im Grunde genommen
Rahmeninstanz Sie durchlaufen diese Schleife, und diese Schleife ruft die Funktion
Not All Function auf, mein Ereignis der offenen Tür
im Blueprint Gehen wir also zurück zum
Lampenmast und drücken auf Play. Okay, jetzt sehen wir, dass
alles in Ordnung ist, alles wird zufällig ausgewählt Oh, während sich die Tür
öffnet, ist sie rot. Lass uns jetzt warten. Nachdem sich die Tür geschlossen
hat, fängt es von vorne an. Und sagen wir, warten Sie 5
Sekunden und es funktioniert. Und wenn wir nach draußen gehen, funktioniert
es noch nicht
, weil wir nichts
hinzugefügt haben. Also lass es uns noch einmal sehen und machen. Wir können das einfach kopieren
, um etwas Zeit zu sparen. Wir können dasselbe
Ereignis ausrufen und es am Ende auf „Tür schließen“
ändern. Ich glaube, ich habe es benannt. Und wenn Sie jetzt kontextsensitiv
sehen, ist das ein Problem. Wenn Sie diese Option aktiviert haben und nach einem Funktionsnamen oder
einem Ereignisnamen suchen, der
für einen anderen Blueprint spezifisch ist, wird dieser möglicherweise nicht angezeigt Also können wir es einfach deaktivieren und Sie sehen den Blueprint der Klasse Pvolve, und wir werden das verwenden und wir können das
tun Sie können es auch
direkt hierher ziehen und die Tür schließen. Wie Sie sehen können, wird
es auch hier nicht angezeigt. Also das
funktioniert jetzt auch
und alles ist
so, wie es sein sollte. Und wir haben das. Die Tür
öffnet sich. Wenn wir es betreten. Jetzt sind es wieder zufällige Farben. Wenn wir das beenden, ist es grün. Jetzt fügen wir einfach
noch eine kleine Änderung an unserer Tür hinzu, damit wir
eine funktionierendere Tür haben können. Wir haben zu Beginn der
Komponente eine Überlappung. Und wenn wir sie zum ersten
Mal betreten und verlassen, ist das ein Flip Flop. Wir hatten zwei Ausgänge oder wenn wir die Tür schließen wollen,
nachdem wir den Raum betreten
haben, müssten wir es anders machen , weil der
Auslöser dafür draußen ist Und selbst wenn es nicht so wäre,
würde die
Tür, die sich vor unserer Nase schließt, nicht wirklich viel Sinn
machen Wenn wir versuchen,
etwas Seltsames zu tun, also lass uns das einmal machen, dann warte darauf. Nehmen wir an, wir öffnen die
Tür, gehen woanders hin, und wenn wir das nächste Mal zurückkommen, schließt sich
die Tür vor unserem Gesicht. Das ergibt nicht wirklich Sinn. Stattdessen
wollen wir eine Tür haben, die
sich öffnet, wenn wir uns nähern, und automatisch
schließt,
wenn wir weggehen. Wie machen wir das? Wir verwenden etwas Ähnliches wie
Competent Begin Overlap. Stattdessen klicken wir auf diese SM-Tür, gehen hierher zurück und
Uncompetent End Overlap Das macht
dasselbe wie diese Funktion. Aber wir müssen sicherstellen, dass wir es für die richtige Veranstaltung
besorgen. Wir brauchen es für die Box. Das ist genau dieselbe Funktionalität. Aber jetzt, wenn wir mit der
Überlappung fertig sind, wird dies ausgelöst. Das heißt, wir
brauchen diesen Zweig am
Anfang oder diesen Flipflop nicht mehr wirklich brauchen diesen Zweig am
Anfang oder diesen Flipflop Weil es nicht mehr
darum geht, ob wir es schaffen können oder nicht, wenn wir in einer bestimmten Reihenfolge einen
Flipflop hinlegen Jetzt haben wir ein
anderes Problem. Wenn wir mit
dieser Funktionalität beginnen wollen, benötigen
wir
jetzt zwei Zweige. Also kopieren wir das und
fügen das hier hinzu, und wir machen das und machen das. Aber lassen Sie uns es
testen und sehen, wie es funktioniert,
nachdem wir unsere Box bearbeitet haben. Nun, da wir wollen, dass sie die Tür
auf beiden Seiten enthält, müssen
wir sie präzisieren und
sie einfach vergrößern,
falls uns jemand sagt: Lass uns nicht zu groß machen und es bis zur Achse machen und
testen, wie es funktioniert. Wenn wir uns nähern, öffnet es sich. Wenn du in die
Nähe kommst, fängt es wieder an. Der Grund
dafür, dass das passiert ist, dass wir nicht unsere vorherige haben, es kann einen richtigen Auslöser dafür haben. Werfen wir einen
Blick auf unser Event-Diagramm. Wenn es sich also überschneidet, wenn es die Tür öffnen oder
schließen kann ,
löst es das aus und legt Nein, du kannst nicht öffnen und schließen. Und diese Zeitlinie beginnt und wenn sie
erneut ausgelöst wird, passiert das. Aber was wir jetzt brauchen,
ist ein bisschen anders. Wir wollen nicht, dass das
mehr auf diese Weise passiert. Wenn wir unser Fenster hier trennen und es erweitern, ist es. Hier ist Ihr zweiter
Monitor sehr praktisch wenn Sie mit
unrealen Bauplänen arbeiten Sie könnten ihn an Ihren Bildschirm
andocken. Ich persönlich mag es, einen
Bildschirm zu haben. Mir selbst. Fangen wir an. Und es ist schwer zu erkennen, aber
wir öffnen die Tür. Okay, jetzt öffnet es sich. Und wir bewegen uns, es wird geschlossen. Aber wenn wir wieder reinkommen,
wird es nicht ausgelöst. Aber es fängt wieder an. Und jetzt lass uns eine
Sekunde warten und zurückkommen. Es wird uns sofort ins Gesicht
geschoben. Nun, der Grund,
warum
das passiert ist, dass wir
immer von Anfang an
spielen und vom Ende rückwärts spielen, was in diesem Fall nicht viel
Sinn macht,
denn was ist, wenn die Tür halb offen
ist, wenn
wir uns ihr nähern Stattdessen werden wir
es spielen und rückwärts spielen. Was jetzt passiert, ist, wenn
wir spielen oder jetzt spielt und dann gehen wir die Strophen durch. Aber jetzt haben wir ein
anderes Problem. Wenn ich weggehe, schließt es sich nicht sofort.
Es beendet es. Und wenn ich das nächste Mal
weggehe, wird es geschlossen. Vielleicht möchtest du es so
lassen. Das ist mehr als funktionell und es schließt und öffnet sich. Aber lassen Sie uns das ein bisschen ändern. Anstatt jetzt
diesen Zweig zu haben
, der uns sagt, wann wir die Tür
öffnen oder schließen können, sollten wir ihn entfernen und ihn
direkt in eine Reihenfolge bringen wie diese Dadurch wird jegliches bedingte
Öffnen der Funktion entfernt
und wir werden sehen, was jetzt passiert. Wir drücken auf Play, wir sind geschlossen und es öffnet sich, und wenn
wir weggehen, wird es geschlossen. Und wir können reingehen. Es ist lippenlos und wir steigen ein und es öffnet sich Das einzige Problem ist, dass wir es zu langsam
gemacht haben. Gehen wir also zurück
zu unserer Zeitleiste und machen wir es auf 3
Sekunden statt auf fünf. Und wir müssen auch den Wert der
Sekunde einmal
ändern und daraus drei machen. Es dreht sich also in den 3 Sekunden. Aber das bedeutet auch, dass wir die Verzögerungen beim Öffnen der Tür
bearbeiten müssen , und wir sollten es auch für
3 Sekunden tun Das ist eine
Bull-Funktion im Inneren der Lampe. Also lass uns sehen, was jetzt passiert. Wir beginnen das Spiel. Wir sehen, wie die Farben der Lichter
zufällig ändern. Wir schließen die
Tür. Es öffnet sich. Beim Öffnen ist alles rot. Wenn es geschlossen wird, ist es grün. Und jetzt sind wir am Webstuhl
mit vielen Lichtern. Jetzt können wir hier auch
das Material für
diese Box ändern und
sagen wir, diese hinzufügen Mit reduziertem Emissionsvermögen. Emissionsfähiges Material ist, wie bereits
erwähnt
, ein helles Wie Sie sehen können, wird die materielle Helligkeit hier
multipliziert. So können wir es reduzieren. Wir teilen diesen Wert einfach auf. Etwas, das ich
empfehlen würde, mit
der materiellen Instanz
statt mit dem Material selbst zu tun . Aber nehmen wir an, wir
teilen es durch das Zehnfache. Mal sehen, was passiert. Ja, es ist weniger hell. Es gibt also weniger Helligkeit, aber vielleicht ein bisschen zu viel. Also lasst uns
viermal weniger essen, auftragen. Ich möchte immer noch, dass etwas
Helligkeit da ist. Ja. Und lassen Sie uns das
gleiche Material auch hier anwenden. Vielleicht nicht. Auch hier liegt es am Geschmack. Ich lasse es hier
so wie es ist, spar dir das. Und jetzt haben wir eine komische
Szene, in der wir
zu unserem Vergnügen diese zwei zufälligen Lichter mitten
im Nirgendwo
haben zu unserem Vergnügen diese zwei zufälligen Lichter . Die Baupläne sind ein sehr,
sehr teures Thema. Du kannst alles
im Bauplan machen. Es gibt unzählige
Knoten, an denen du zucken, herumdrehen und
deiner
eigenen Kreativität freien Lauf lassen kannst herumdrehen und
deiner
eigenen Kreativität freien Lauf Wir haben diese einfache
Türfunktion auf verschiedene Arten ausgeführt. Wir haben uns die Lichter angesehen, wie wir das auf verschiedene Arten machen
können. Und das Wichtigste, was
Sie verstehen müssen, ist, wie flexibel alles in der Spieleentwicklung
ist. Sie werden keine
einfachen Lösungen finden, und selbst wenn Sie in Zukunft
versuchen, Informationen darüber zu finden,
wie man eine bestimmte Sache macht, zum Beispiel haben wir
diese Würfel hier, und wenn ich
sie berühre, fallen sie herunter. Das sind einfache Würfel mit aktivierter Physik
und ohne Baupläne Du könntest das aber auch mit Bauplänen
machen. Der Unterschied, wann
du das machen musst Blueprints und wann du Physik einfach aktivieren
kannst, was
in der nächsten Vorlesung erklärt
wird, unterscheidet einen guten
Entwickler von einem schlechten Sie müssen verstehen,
wann Sie was und wie und warum verwenden müssen was und wie und warum verwenden Es gibt unendlich
viele Möglichkeiten, dasselbe zu tun. Und die Komplexität, mit der
Sie dies tun möchten,
hängt davon ab, was Sie benötigen und
wie Ihr Zeitrahmen aussieht. Schauen
wir uns in diesem Fall unsere Lampen an. Ja, das funktioniert, und
so habe ich es gezeigt. Aber das ist nicht ideal. Wir haben viele Knoten. Auch hier haben wir sie nicht organisiert. Wir haben Variablen, die
wir,
anstatt hierher zu kommen, von woanders hätten erben können. Wir mussten dafür nicht wirklich Casts
verwenden. Wir hätten Schnittstellen verwenden können, die
in der nächsten Vorlesung erklärt werden. Und all das diente dazu, Freiheit
zu schaffen. Sie haben mehrere
Dinge auf verschiedene Arten getan, und alles läuft
darauf hinaus, was Sie tun möchten und
wie Sie es tun möchten Beschränken Sie sich
nicht auf Ihre Baupläne. Und wenn Sie in Foren
oder Community-Formularen nach
Informationen suchen , vielleicht auf YouTube oder Google, und Sie
genau das finden, was Sie benötigen, daran, dass Sie möglicherweise
eine bessere Möglichkeit haben, dies zu tun Wie ich
in diesem Vortrag gezeigt habe, diesen Laden und
diese Lampe,
und wir haben es auf verschiedene Arten gemacht Es ist so einfach, aber es gibt immer noch unendlich viele
Möglichkeiten, es zu tun sehen uns in der nächsten Vorlesung,
in der wir interaktive, kleine Szene erstellen werden, die als
Prototyp eines einfachen Spiels verwendet werden kann, und Sie werden völlig frei entscheiden können, was Sie machen möchten und wie
Sie es erstellen möchten Aber vorher
werden wir eine Aufgabe haben. Diese Aufgabe wird
etwas schwieriger sein. Und bei dieser Aufgabe werden wir
all unser Wissen, das wir
bisher gelernt
haben, einsetzen und eure Szene weiter gestalten und beleben Ich habe dir anhand von Bauplänen ein paar Dinge
gezeigt wie du
das machen kannst Es war nicht viel, da Baupläne ein sehr teures Thema
sind. Aber du kannst das,
was ich bisher in
der Vorlesung gezeigt habe, auf
deine Szenen anwenden bisher in
der Vorlesung gezeigt habe, auf , die du
zuvor erstellt hast, oder du kannst einfach
kreativ werden und
mit der Blueprint-Funktionalität experimentieren mit der Blueprint-Funktionalität und erstellen, was immer du willst Hab keine Angst davor,
Fehler zu machen oder zu experimentieren. Die einzige Möglichkeit, Unreal wirklich zu
lernen
, besteht darin ,
es tatsächlich zu versuchen und zu sehen, ob es funktioniert Selbst die besten Entwickler werden
Dinge mehrmals testen , bevor
sie sie zum Laufen bringen können Wir sehen uns in der nächsten
Vorlesung. Und viel Spaß.
15. UE5 FC07 01: Willkommen zurück. In diesem Kapitel werden
wir erklären, wie man eine
Szene von Grund
auf neu erstellt. Wir werden versuchen,
einige Gameplay-Elemente mit
all dem Wissen, das wir bisher erworben
haben, zu erstellen einige Gameplay-Elemente mit . Außerdem werde ich
einige weitere Funktionen
der einzelnen Aspekte von Unreal behandeln einige weitere Funktionen
der einzelnen Aspekte von Unreal Bis zu diesem Zeitpunkt
haben wir Materialien erstellt. Wir haben gelernt,
sie anzuwenden und zu inszenieren, wie wir die
Blitze in unserer Szene einrichten, wie man Blaupausen erstellt
und wie man Interaktivität
zwischen Entwürfen und Schauspielern schafft zwischen Aber wir haben das alles
zusätzlich zu unserer bereits Was ist, wenn Sie
etwas von Grund auf neu erstellen möchten? Lassen Sie uns dazu zunächst
entscheiden, was wir von
dieser Kreation, die wir bereits gemacht haben, behalten wollen . Wenn Sie einen Schauspieler oder
ein Objekt in Ihrer Szene haben, möchten
Sie zum nächsten wechseln. Behalte es im Hinterkopf. Und in meinem Fall möchte
ich einige
dieser Würfel mit
aufs nächste Level nehmen . Und ich werde
sie als Blueprint verwenden, also klicke ich einfach darauf,
verwandle sie in einen Blueprint, verwandle sie in einen Blueprint, den Namen und nenne ihn
einfach Cube Ich werde es speichern. Der Grund, warum ich das mache
, ist, dass ich es im
nächsten Abschnitt der Vorlesung brauchen werde . Um also eine neue Map zu erstellen , müssen wir sie
zunächst organisieren, einen Ordner
erstellen und ihn Level nennen. Und jetzt
erstellen wir ein neues Level. Sie könnten von
hier aus ein Level erstellen und einfach auf Level klicken, aber das wird immer
leer sein , da es
nichts in dem Level gibt. Wenn du eine
Vorlage für ein Level haben möchtest, kannst
du oben auf
Neues Level klicken und du wirst eine Auswahl haben. Möchtest du eine
Open-World-Partitionsebene? Möchten Sie eine leere
Open-World-Partitionsebene? Sie möchten einfach oder mit einigen Elementen darin oder ein
leeres Basislevel. Der Unterschied zwischen
Partitionen und Basisebenen Partitionsebenen
normalerweise für
offene Welten gedacht sind, die zu groß sind. Und du möchtest dein Gameplay
optimieren, indem diese
Welt
im Wesentlichen in Partitionen unterteilst. Die Teile, die du
entladen und in
das Spiel laden musst, hängen
im Wesentlichen von der Nähe
oder dem Zustand des Spiels In unserem Fall werden wir das
nicht tun. Wir könnten einfach Basic verwenden,
aber ich werde
Leere Ebene auswählen, um Ihnen zu zeigen, wie
es von Grund auf neu gemacht wird. Klicken wir auf Erstellen und speichern. Und jetzt sind wir in
der leeren Ebene. Vielleicht schwer zu erkennen, aber hier
gibt es nichts anderes
als dieses Gitter. Und die erste Idee, lassen
Sie uns vielleicht etwas Licht in die Szene bringen. Aber wenn Sie einfach Licht hinzufügen, sagen
wir reaktionales
Licht, wird das nicht viel bewirken Wir müssen die Sonne,
die Himmelskugel und alles hinzufügen , was im vorherigen Level standardmäßig vorhanden war Dazu müssen Sie zum
Fenster- und
Umgebungslichtmischer gehen . Klicke darauf und
du wirst das bekommen. Lassen Sie uns zuerst das
Oberlicht erzeugen, atmosphärisches Licht. Sie könnten die Einstellungen
bereits bearbeiten, wenn Sie möchten, aber ich werde
sie vorerst nur auf den Standardeinstellungen belassen, Atmosphäre
erzeugen, eine volumetrische Menschenmenge
erzeugen
und Höhennebel erzeugen Und plötzlich
haben wir etwas, das dem, was wir
im vorherigen Level hatten, sehr ähnlich ist Dies sind nur Platzhalter für den Outliner, in dem
wir unseren hellen Himmel haben Also legen wir sie
alle in einen Ordner. Und nennen wir diesen
Ordner Skylight. Als Nächstes werden wir
lernen, wie wir eine Umgebung
für unsere Szene schaffen können Es gibt zwei Möglichkeiten, wie wir unsere Umgebung
gestalten können. Zunächst müssen Sie nur
einige grundlegende Maßnahmen verwenden , um Bodenwände wie
in der vorherigen Vorlage zu erstellen. Oder Sie können eine Landschaft erstellen. Um eine Landschaft zu erstellen,
klicken Sie hier oben auf den Auswahlmodus und
klicken Sie auf Landschaft. Sie erhalten dieses Raster in
Ihrem Viewport. Und auf der linken Seite haben wir
unsere Optionen für das Raster. So groß wird Ihre
Landschaft sein. Das mag klein erscheinen, aber wenn Sie bedenken,
dass Ihre Maschen von
vornherein nicht zu groß sein sollten , ist das ziemlich groß Und Landschaften, obwohl sie optimiert sind, sind auf
deine Leistung trotzdem erlaubt Wenn Sie sie also nicht benötigen, sollten
Sie sie nicht zu groß
machen. Ich will das kleiner haben. Also lass uns
diese Größe reduzieren, indem wir durch
dividieren und wieder
durch zwei teilen. Das ist mehr als genug für mich. Wir könnten es kleiner machen, aber im Moment sollte es in Ordnung sein. Und wir können unsere Materialien auch vorab
auswählen. Lassen Sie uns also den Boden auswählen. Lass uns sehen, Kies. Ich mag Kies besser. Und lass uns auf Fill World klicken. Ich entschuldige mich. Nein, Fill World. Erschaffen. Klicken wir auf Erstellen. Wenn Sie auf „Welt füllen“ klicken, wird die ganze Welt
mit der Landschaft gefüllt , was nicht das
ist, was wir wollen. Großartig. Und jetzt
haben wir eine Landschaft. Wie Sie sehen können, ist es jetzt
offensichtlicher , dass es ziemlich groß ist. Aber das ist zu geradlinig. Und ich möchte ein paar
Berge und so
an der Seite hinzufügen , damit ich die
Sicht blockieren kann, um es klar zu machen. Das ist es nicht. Es gibt kein südliches
Ende der Erde. Dies ist keine flache Erde. Was wir also tun können, ist
, Bildhauereien zu verwenden. Also lass uns darauf klicken. Und wir haben einen Pinsel.
Ich will es größer haben. Also werde ich
die Pinselgröße erhöhen und einfach
mit der linken Maustaste klicken. Vielleicht war mein Pinsel zu groß. Ja. Lass uns die Zeichenkette für das
Pinselwerkzeug erhöhen. Und lassen Sie uns diese
Landschaft einfach nach dem Zufallsprinzip formen. Alles, was ich brauche, ist, keine Endlinie zu haben , die schlecht aussieht
und so Vielleicht ein bisschen mehr hier. Nun, wenn wir
von dieser Vision aus schauen, lassen wir sie hier größer machen. Ich habe versehentlich auf diese
Stelle geklickt, aber wir werden es reparieren. Ich konnte kontrollieren, um es rückgängig zu machen. Ich kann aber auch Umschalttaste darauf klicken,
um umzukehren und stattdessen diese Grube zu erstellen. Oder ich kann hier oben auf dieses Tool zum Abflachen klicken und es anklicken Nun, so wie das Tool zum Reduzieren funktioniert, klicken
Sie auf eine
Stelle und nachdem Sie die Maus
bewegt haben , während Sie die Maustaste
gedrückt halten, werden
sie auf eine Ebene geglättet Also klicken wir
hier und bewegen uns,
und wie Sie sehen können, wird alles bis zu diesem Punkt
abgeflacht abgeflacht Fy Word zuerst hier klicken
und meine Maus bewegen, es würde sich auf
die Ausgangsposition reduzieren Jetzt haben wir also dieses Land. Jetzt fügen wir einfach zufällige Hügel und Gipfel hinzu, nur irgendwelche Fälschungen
, die wir machen Fügen wir hier einen großen hinzu. Vielleicht ist es ein bisschen zu groß, also lasst uns ein paar Dellen
auf dem Boden hinzufügen, herunterfallen Und jetzt haben wir eine Landschaft, die
Sie für unsere Zwecke verwenden können. Natürlich habe ich
das in
wenigen Minuten gemacht, wenigen Minuten ohne viel
darüber nachzudenken oder Mühe zu investieren, aber Sie können
alles erstellen, was Sie wollen. Hier
stehen Ihnen viele Tools zur Verfügung.
Du kannst es aushöhlen. Sie können Hydro verwenden, um
eine Erosionssimulation zu erstellen. Wählen wir zum Beispiel diesen Stein hier aus, und Sie werden vielleicht sehen, dass er seine Form leicht
verändert Dies simuliert die
Erosion durch Regen. Dabei handelt es sich lediglich um Erosion, wenn sich der
Boden
von höher nach unten bewegt Das sind also einfach eine
Menge Tools, die Sie verwenden können. Sie können einfach Geräusche verwenden. Sie können wählen, welche Art von
Geräusch Sie möchten usw. Sie könnten Höhenkarten verwenden, wenn Sie wissen, wie Sie
sie bekommen oder verwenden können. Es gibt viele Dinge, die du
tun und kreieren kannst. Und vorerst werden
wir es hier behalten. Und was wir auch tun können, wenn wir nicht
nur diesen Boden haben wollen und vielleicht wollen wir eine andere Farbe oder einen anderen
Berg und vielleicht
wollen wir , dass höher oben
dieser Kies ist, aber unter etwas Gras können
wir das tun. Für diese beiden müssen wir ein mehrschichtiges Material
erstellen, was wir in Kürze tun werden.
16. UE5 FC07 02: Lassen Sie uns nun unser Material erstellen. So wie wir das machen werden, werden
wir
ein Mastermaterial für die Landschaft erstellen . Gehen wir also zum
Materialhalter. Wir haben zuvor ein
neues Material
namens M underscore erstellt ein
neues Material
namens M underscore MM steht für Master Material und nennen wir es Landschaft Unterstreichen Sie Matt. Speichern Sie das. Wenn wir etwas im neuen Level zum ersten Mal
etwas im neuen Level speichern,
wird es nach einem Namen fragen. Stellen Sie sicher, dass Sie dies
tun, falls Sie echte Abstürze haben und
alle Ihre Fortschritte im Level verlieren . Und wir werden es nennen, es steht dir frei, es zu nennen, wie du willst. Und
jetzt ist das gespeichert. Speichern Sie erneut, nur die Basis
oder speichern Sie alle Materialien. Wir öffnen diesen Materialschlitz. Das
Substrat interessiert uns derzeit nicht wirklich. Wir lassen es für später stehen. Wir müssen jetzt ein Material
erstellen. Also habe ich beschlossen
, Kies
und Gras zu verwenden und wir werden zwei Schichten
haben. Sie können so viele
Schichten haben, wie Sie möchten. Denken Sie jedoch daran, es aus Leistungsgründen nicht
zu komplex zu gestalten . Wir machen das so, dass wir
Ebenenmischungen oder Landschaften benötigen. Mischungen von Landschaftsebenen. Wir fügen das hinzu und ziehen
es auf unsere Grundfarbe, erhalten eine und fügen Elemente hinzu,
die den Ebenen entsprechen , die wir
in unserem Fall wollen. Und wir duplizieren das und
kopieren Pass erneut für Normale. Wenn dein Spiel also
keine Normalen hat, wenn alles einfach
flach ist,
wie zum Beispiel in Minecraft, brauchst
du
Normalen nicht wirklich so sehr Und weil es sich um ein
Landschaftsmaterial
handelt, ist es gut, wenn die Landschaft nicht zu stark glänzt Lassen Sie uns also einfach den Wert von eins
herabsetzen. Das kann wie
alle anderen Dinge auch mit der
Ebene Billions geändert werden, aber wir werden es sehr einfach
halten. Und jetzt haben wir zwei Ebenen. Sagen wir Kies
für den ersten. Ich hätte sie
wahrscheinlich
vor dem Duplizieren benennen sollen, nur um diesen
Vorgang
nicht zweimal durchführen zu müssen Und das zweite nennen wir Messing. Kopieren Sie vorerst einfach Pass nach
hier und T. Wir speichern das, und ich habe bereits das Gras
- und Kiesmaterial
geöffnet , das
ich verwenden werde. Und was ich wirklich tun
muss, ist zu kopieren was hier für
Grundfarbe und Normalen Diese beiden Materialien werden standardmäßig von Unreil
hergestellt. Sie haben sie also praktischerweise für
uns bereits getrennt. Alles, was
hier unten steht, wird
zusammen mit der
Textkoordinatennotiz normal . Was wir also tun können, wir können das alles einfach kopieren. Gehen Sie zu unserem Landschaftsmaterial und fügen Sie das alles hier ein. Stellen wir sicher, dass wir
alles richtig haben. LARP-Knoten heraus müssen
wir also Basisfarben wählen Also machen wir genau das Gleiche. Wir fügen es der
Grasschichtmischung hinzu. Oder der LARP-Knoten. Und von
diesem LP-Knoten unten haben
wir es normal Das mag ein bisschen
unorganisiert erscheinen, weil dieses unreale Standardmaterial viele Knoten
enthält Aber lassen wir
sie einfach ein bisschen zur Seite. Und lassen Sie uns sie alle etwas
weiter unten platzieren, um einen Freiraum zu haben. Schließt das Grasmaterial sofort. Ja, dieses Material ist
uns egal. Und lassen Sie uns
dasselbe für Kies tun, und wir machen genau dasselbe. Wir kopieren das. Wir
fügen das hier ein. Ziehen wir es auf das Material. Und hier ziehen wir das. Schauen wir uns das an. Wir müssen bis zur Grundfarbe multiplizieren. Und mal sehen, was wir hier hatten. Wir haben die Rauheit modifizieren lassen. Und das ist normal. Vielleicht wussten wir das, weil
dieses Kiesmaterial Rauheit hat und Gras eine
Standardrauheit Wir können es nicht so verwenden, wie es ist, also werden wir dieses Mal eine zusätzliche Schicht hinzufügen , um die
Rauheit zu Wir werden dem Kies diese
Rauheit hinzufügen. Und weil Gras eine
Rauheit von eins hat, werden
wir einfach
den Wert von eins hinzufügen Wir brauchen das nicht zu verkomplizieren und
wir sparen. Wir geben uns eine Sekunde Zeit, wir
kehren zu unserer Demo-Karte zurück und wählen
unsere Landschaft aus Wir gehen das Detailfenster und wir
haben ein Landschaftsmaterial. Klicken Sie auf unser Mastermaterial
und fügen Sie es hier ein. Sie werden sehen, dass unser
Mastermaterial eigentlich
keine Farbe hat. Lass uns in die Landschaft gehen
und malen. Wenn wir derzeit versuchen zu
malen, wird es nicht funktionieren. Dazu müssen
wir Ebeneninformationen erstellen. Klicken Sie auf das Plus-Symbol. Sie können eine gemischte Schicht mit
Gewichtung und eine Mischschicht ohne Gewichtung erstellen In diesem Fall ist uns das
Gewicht nicht wirklich wichtig. Also lass uns eine Demo-Map machen. Wir können es der Einfachheit halber
auch in den
Materialordner legen . Und wir machen es wieder
für das Gras. Und wieder werde ich
es in das Material aufnehmen. Und jetzt kann ich ein Material auswählen, sagen
wir, Kies und Farbe. Dir ist klar, dass das komisch aussieht. Wenn ich hier drücke und Gras reinlasse, ist
das sehr glänzend. Das ist ein bisschen zu
glänzend für meinen Geschmack. Gehen wir also zurück zum Auswahlmodus und klicken
auf gerichtetes Licht, reduzieren wir es auf drei, wie ich es bevorzuge. Und jetzt haben wir weniger Licht. Spar es dir für eine Sekunde auf. Und werfen wir einen Blick auf
unseren Glanzwert ,
Metall und Rauheit Unsere Rauheit sollte
gut sein, besonders bei Gras. Wir müssen uns das Gewicht der Karte ansehen. Wir haben also Kies, aber lassen Sie uns zuerst die
Stellen streichen, an denen wir Gras haben wollen. Wir können uns später darum kümmern. Ich möchte, dass in diesen Gebieten unten Gras
mit geringerer Höhe vorhanden ist. Die Höhen von Ira können
einfach voller Kies sein. O.
Interessant. Ich werde einfach mit der Shift-Taste darauf klicken
und diesen Teil entfernen. Die Tatsache, dass Kies nicht richtig
aussieht, ist besorgniserregend. Sehen wir uns eine Vorschau des Knotens an. Sie können eine Vorschau des Knotens
des Materials anzeigen,
indem Sie auf dieses Symbol Wir haben ihn schwarz dargestellt. Was besorgniserregend ist. Schauen wir uns
das Kiesmaterial an. Okay. Wir haben einen Knoten
, der nicht angeschlossen ist. Oh, uns fehlt eine Notiz. Ich habe es vielleicht vermasselt
und den Knoten kopiert. Nicht vielleicht, ich habe den
Knoten durcheinander gebracht. Mal sehen, wie es jetzt aussieht. Das sieht immer noch
nicht richtig aus. Schauen wir es uns noch einmal an. Der Einfachheit halber werde
ich
diesen Teil des Knotens einfach entfernen . Gehe zurück zu diesem Crowd-Node, kopiere das alles noch einmal, gehe zurück zum
Material. Pass kopieren. Wir haben ein Okay, A muss daraus kommen und B muss daraus kommen. Ich glaube, ich habe
diese Notiz hier beim letzten Mal verpasst. Bewerben Sie sich. Lass uns einen Blick darauf werfen. Ja. Das entspricht eher
dem, was ich wollte. Und ich kann jetzt mit der Shift-Taste klicken , um diese Ebene zu löschen,
oder einfach klicken, um sie hinzuzufügen. Wir werden
es hier nicht perfekt malen. Aber wie Sie können,
haben wir immer noch diese Werte hier, Broschen, Platten und so weiter Wenn Sie möchten, können Sie auch
Laub zuweisen , das auf einer bestimmten Ebene erzeugt werden soll In diesem Fall werden wir
das vorerst nicht tun. Wir werden sparen. Und vorerst sollte
das in Ordnung sein. Im Moment sollte das in Ordnung sein.
17. UE5 FC07 03: Also, dieses Feld hier
sieht sehr unfruchtbar aus. Das liegt daran,
dass wir kein Laub haben. Wir haben kein Gras, wir
haben keine Büsche, wir haben
nichts. Wir könnten auch Blattwerk anlegen und ein Laub anlegen
oder ein aktives Laub anlegen.
Wir könnten es schaffen. Wir könnten es selbst herstellen und sie
überall manuell anpflanzen. Das ist nicht schwer zu tun. Wir können einfach, sagen
wir, statisches Mesh-Laub erzeugen . Und lass uns sehen. Lassen Sie uns einen neuen Ordner erstellen. Nenn es. Blätter. Und nennen wir es Folage Mm. Wolage-Schauspieler
unterstreichen Bush Lass uns das öffnen und zu
Mesh gehen und etwas Bush auswählen. Jetzt speichern wir das. Und wenn es klickt
und mit dem Malen beginnt, malen
wir diesen
Push manuell durch das Level. Warte eine Sekunde,
bis der Download abgeschlossen ist. Kompilieren Sie Shader,
seien Sie genauer. Und jetzt können wir
sie einfach überall platzieren. Wir können sie entfernen, wenn wir wollen,
und sie löschen usw. Das Entfernen ist etwas ganz
anderes als das Löschen. Und Sie können hier Parameter hinzufügen. Nehmen wir an, wir wollen
weniger Dichte. Sagen wir also zehn Radien oder 100. Und was ist es jetzt hier? Ich entschuldige mich. Ich
hätte Farbe wählen Jetzt haben wir weniger Laub. Wir haben hier zusätzliche
Parameter, oder es ist Skalierung. Möglicherweise haben Sie nicht den Mittelwert und den
Höchstwert. Dies dient der Randomisierung Nehmen wir an, wir
haben Null Punkt Fünf und nur zur Veranschaulichung sagen
wir acht Manche Folien sind jetzt sehr groß, manche Narren sind sehr klein Wir können sie beweglich machen usw.
, aber ehrlich gesagt ist
es nicht empfehlenswert, sie beweglich
zu haben Es ist besser, sie statisch zu haben. Und wir haben Kollisionen.
Sie möchten
nicht wirklich Kollisionen im
Laub haben , weil es offensichtliche
Optimierungsprobleme gibt. Sie möchten nicht, dass Ihr
Auto herumfährt und auf einem Stück Gras hängen bleibt es sei denn, für die Kollision ist eine bestimmte
Laubart erforderlich Sie sollten Kollision nicht verwenden. Wie dem auch sei, ich
möchte das nicht auf diese Weise nutzen. Was ich stattdessen tun werde, Teil der Strahlen zu entfernen. So wie das Entfernen
funktioniert, müssen Sie das Bild
auswählen
und auf Entfernen klicken, aber wir haben
es dort nicht gespeichert Also werden wir es einfach
manuell löschen, um die Szene zu bereinigen. Wir könnten damit
das ganze Level manuell malen, aber das ist keine wirklich
effiziente Art unserer Zeit. Wenn Sie versuchen, eine wunderschöne Landschaft zu
schaffen, möchten
Sie natürlich eine wunderschöne Landschaft zu
schaffen, jedes Detail bis ins kleinste Detail verwalten Die manuelle Platzierung
ist sehr sinnvoll. Sie können sie einzeln platzieren , indem Sie einfach auf
diese einzelne Schaltfläche klicken, oder Sie können sie vollständig platzieren, Sie
einfach den gesamten
Bereich damit füllen. Aber ich möchte keine Zeit
damit verschwenden. Also werden
wir stattdessen Laub mit dem Material spawnen Dafür müssen
wir zunächst
einen Schauspieler vom Typ
Landscape Grass erstellen einen Schauspieler vom Typ
Landscape Ich habe bereits einen erstellt, werde
ihn aber noch einmal vorführen. Lass uns zu Foolage gehen. Gehen Sie zum Bereich Foolage, und wir haben den
Gras-Typ Landschaft Wir schaffen das.
Nennen wir es LG. Nennen wir Grass und T
und nennen es Push. Der Grund, warum ich es Push nenne, ist dass
wir nur Push haben werden, aber Sie können hier mehrere
Graselemente haben. In unserem Fall werde ich einfach Bush
hinzufügen , also habe ich es einfach Bush
genannt. Aber du könntest
verschiedene Grasarten zusammen haben, sodass du
sie einfach mit einem Gras spawnen kannst Hier wählen wir unseren Busch-Schauspieler aus. Und der Grund, warum ich es
verwende, ist, dass es nur einen gibt, der
im Starter-Content verfügbar ist. Sie können Ihre eigenen Büsche erstellen. Sie können etwas
aus dem Asset Store oder
von Fab hinzufügen , wo immer Sie möchten. Und lass uns das speichern. Wir können die
Dichte des Grases bearbeiten. Wir können
hier wieder
dasselbe ähnliche Konzept verwenden , Maxmin-Größe. Und lassen Sie uns die maximale Größe zwei machen. Die Entfernung zum Telefonieren ist wichtig. In welcher Entfernung
möchten Sie Ihr Gras sehen? Ich lasse es
vorerst auf zehn K stehen, aber Sie möchten es vielleicht
reduzieren oder erhöhen je nachdem, wie wichtig
diese Grasart für Sie ist. Und Sie werden vielleicht feststellen, dass
es hier keine Kollision gibt. Der Nachteil, naja,
vielleicht
der Nachteil,
je nachdem, in welchem Spiel Sie damit
Ihr Gras oder Laub spawnen ,
können Sie ihnen keine Kollision hinzufügen Gehen wir also zurück zu
unserem Mastermaterial. Ich weiß es nicht einmal.
Das war Kies. Gehen wir also zurück zu
unserem Mastermaterial. Klicken Sie mit der rechten Maustaste und rufen Sie Grass
Landscape Grass Output auf. Möglicherweise stellen Sie fest, dass dafür kein Platz
ist. Dafür gibt es keinen
Ausgangsknoten. Dies fungiert als zusätzlicher
letzter Ausgangsknoten. Und wir müssen hier unser
Gras hinzufügen. LTG drücken Schauen wir uns jetzt
unsere Mal kurz an. Möglicherweise stellen Sie fest, dass nichts
wirklich passiert ist. Das liegt daran, dass wir im Eingabebereich
nichts haben . Jetzt müssen wir den Materialien
erklären,
wo die statischen
Nachrichten für den Busch generiert werden sollen. Wir haben es zuvor auf Grasarten
umgestellt. Wir können
diese Informationen nicht einfach
hier eingeben , da eine Kombination
von Ebenenmischungen handelt
und es keine wirkliche Möglichkeit gibt, handelt
und es keine wirkliche Möglichkeit gibt Platzierung
anhand unserer vorherigen Knoten
zu generieren. Dazu benötigen wir einen
Musterknoten, einen Sampler. Oder Beispiel für die Ebene Landscape. Und das müssen wir einbauen. Und hier müssen wir
den Namen der Ebene eingeben. Diese Schicht ist in diesem
Fall Gras. Sie können Elemente einfach
kopieren, einfügen oder eingeben. Und sicher. Lass uns sehen. Plötzlich ist dort, wo
unser
Grasmaterial war, viel Gras entstanden. Ich finde es immer noch
ein bisschen zu hell. Lassen Sie mich die
Helligkeit etwas weiter reduzieren. Ja. Und wie Sie sehen, musste
ich das nicht malen, und Sie könnten argumentieren, dass
es zu dicht ist. Wir können die Grasdichte reduzieren. Nehmen wir an, ich will nicht viel, ich will nur zehn und spare. Und jetzt habe ich etwas Gras. Ich möchte, dass
sie generell etwas kleiner sind. Also lass uns 02 und maximal eins meinen. Jetzt haben wir Gras, das bis zu einem gewissen Grad
optimiert ist, und wir können es einfach
automatisch platzieren , indem wir ein Material
verwenden. Natürlich können wir
mehrere Ebenen erstellen und jede davon kann ihre eigenen Notizen haben. Um Netze herzustellen. Also lass uns
dieses Mal noch einen für Kies machen. Ich will kleine Steine. Mal sehen, ob ich Steine als Maschen im Startinhalt Fels. Ich glaube, wir haben einen Stein. Lass uns einen
Blick darauf werfen. Es ist ein Stein. Lassen Sie uns den Vorgang
noch einmal durchgehen, diesmal schneller. Gehen wir zu unserem Blattwerk und
kreieren ein Kleid vom Typ Filage
Landscape Nennen wir es LGTUnderscore, Rock. Öffne das, füge ein Element hinzu, lass dieses Element rocken, reduziere, sagen wir, Größe
0-2 auf eins wie zuvor, und ich möchte nicht, dass es
auch dicht ist, sondern Speichern Sie das und gehen wir zu
unserem Landschaftsmaterial. Hier können wir
ein zweites Element hinzufügen. Und wir können einen
neuen Parameternamen,
Sampler, erstellen und ihn eingeben Wir könnten direkt
zwei verschiedene Arten von
Folige-Spawn in einer Schicht erzeugen ,
aber wir wollen, dass sich Schmutz auf der
Kiesschicht und dem Gras befindet Kiesschicht und dem Gras oder speziell in diesem Fall
Büsche in Was wir also tun müssen,
ist dasselbe wie zuvor, wir kopieren den Gravel, den
Parameternamen, setzen ihn in einen zweiten Knoten,
gehen hierher, gehen zu unserem zweiten
Element, genannt Eingeben, speichern. Gehen wir zurück zu unserem Level. Es gibt nichts.
Vielleicht frage ich mich warum. Wir kehren zu unserem Material zurück. Wir haben Kies, Gras und Landschaft,
aber wir haben nicht diesen zweiten
Landschaftstyp ausgewählt, LGD-Gestein ausgewählt
und wir haben Felsen Nun stellen Sie vielleicht fest, dass es
auch Steine im Gras
produziert , weil diese Materialien übereinander geschichtet
sind Es sind Schichten. Das bedeutet, dass die Informationen, die
das Material hier bekommt, falsch sind. Wir haben Steine, und wir haben Felsen und Gras. Sie fragen sich vielleicht, warum
das passiert. Lassen Sie uns zunächst die Menge der
Steine
reduzieren und ihre
Größe ist zu groß. Machen wir vielleicht vier daraus und die
Größe kann Null Punkt eins sein. Es scheint, dass ich es
versehentlich rückgängig gemacht habe und Null Punkt f.
Ich will keine großen Steine Ich will kleine Steine. fügen
wir
hier ein bisschen mehr Steine hinzu oder vielleicht zu viel. Ja, kleine Steine
hier und da. Sie sehen nicht
gut aus. Die Tatsache, dass sie alle dieselbe
Skala haben, gefällt mir nicht, also fügen wir ein kostenloses hinzu,
indem wir es kostenlos machen, das bedeutet, dass ihre Skalierung in alle
Richtungen zufällig
ist Lass uns das so machen, speichern, und wahrscheinlich
werden Steine anders aussehen Und ich mag es nicht, wenn
sie groß sind, also lassen Sie uns diese
Skala auf Null d Zwei einführen. Wir haben also keine hohen Steine. Ja. Wir haben jetzt
Kieselsteine usw. und lassen uns auch ihre
Cluster bearbeiten, was wir hier vielleicht tun können Nein, das ist kaum, ich brauche
kaum einen Unterschied. Lass es uns so wiederherstellen, wie es ist. Mach ein bisschen mehr. Ich will keine kühle Distanz. Ich will zufällige Rotationen. Leider ist das mehr oder weniger
eine Einschränkung, da wir
nicht viele Rockvariationen haben nicht viele Rockvariationen Wie dem auch sei,
lassen wir es so wie es ist. Und jetzt ist die Hauptfrage warum wir Steine auf Gras haben? Das liegt an der
Art und Weise, wie Schichten funktionieren. Als wir gemalt
haben, hatten wir diese beiden Stärken
hier auf Null Punkt drei,
was bedeutet, dass dieses Gras
hier gewichtet ist. Obwohl wir nicht
gewichtete Schichten verwendet haben, ist
das Gras hier
tatsächlich gewichtet und wir haben jetzt den Wert
Null Punkt drei auf dem Gras und Null Punkt sieben
auf dem Kies. Der einfachste Weg
, das Problem zu beheben, besteht darin, die
Kiesinformationen von hier zu entfernen oder mit der ersten Werkzeugleiste auf Gras zu klicken
und es
einfach erneut zu streichen. Aber selbst wenn wir ein Gras haben, ist
es immer noch nicht ideal. Wir möchten die
Kiesinformationen entfernen. Also klicken wir auf Shift und entfernen
die Kiesinformationen. Wenn wir nun die
Kiesinformationen entfernen, haben
wir keine Steine mehr und unser Gras wird grüner. Unreal kombiniert unsere
beiden Materialien miteinander, was eine großartige
Funktionalität darstellt Aber wenn Sie damit Steine und Gras
herstellen, kann
das ein Nachteil sein Es liegt also an dir, ob
du sie
als Material für die
Herstellung des Laubs verwendest ,
oder ob du Laub verwenden wirst, um die Toilette zu bemalen und
sie manuell im Level zu platzieren Lassen Sie uns die Szene jetzt schnell
ein wenig aufräumen. Lass uns kein
Gras hier an der Seite haben wollen. Wir werden ein Hauptleck haben lassen Sie uns hier den Kies entfernen. Wir entfernen auch das
Gras, es wird schwarz sein. Es bedeutet also schwarz, was bedeutet, dass es hier
keine Informationen gibt. Also, wenn ich hier Kies
und Gras lege, wirst
du sehen, dass
sie in der Mitte miteinander verschmelzen. Wir können das zunächst
verwenden, lassen Sie uns das entfernen. Klicken Sie mit der Umschalttaste, um
die Ebeneninformationen zu löschen. Ich will nicht, dass hier Kies ist. Was wir hier tun können, ist, eine Kiesschicht hinzuzufügen. Die Seiten. Die Hügel und die Grasschicht auch
an den Seiten und nur Gras in der Mitte. Was wir uns geben werden, ist eine
Schicht mit
nur Graslaub als Mischung aus
Gras und Kies. Also Felsen und Laub
und nur Steine. Sie können wiederum
mehrere Ebenen verwenden, sie
verwenden, wie Sie möchten,
erstellen, was auch immer Sie erstellen
möchten. Jetzt werden wir das speichern. Wir werden keine Zeit
mehr mit dieser Landschaftsgeneration verschwenden . Und denken Sie daran, dass es sich bei
den Ebeneninformationen für diese Platzierung des Gemäldes in der Landschaft um
diese beiden Dateien handelt. Achten Sie darauf, sie nicht zu löschen oder von dort zu verschieben, wo
sie sollen. Im Allgemeinen ist es keine
gute Idee, sie zu berühren. Normalerweise musst du wirklich
nichts mit ihnen machen. Fassen Sie
sie daher nicht an, es sei denn, es ist absolut notwendig und Sie wissen,
was Sie tun. Jetzt können wir mit dem
Kreieren in unserer Szene fortfahren. Jetzt haben wir also eine Landschaft. Und als Nächstes möchte ich etwas
erstellen, mit dem wir
unsere Spielelemente erstellen können , aber
wir haben keine Meshes Und damit meine ich, wir
haben keine Blöcke usw., und ganz ehrlich, ich
möchte dafür nicht mehrere Boxen verwenden Also gehen wir
zurück zum Modellierungstool. Und ein Modellierungswerkzeug,
lassen Sie uns selbst erstellen. Schaffen wir
uns eine Plattform. Wir können mit einem Würfel
oder einer Kiste beginnen , wenn Sie es nennen
möchten. Stellen wir ihn hier hin und wir
können seine Höhe auf 100 erhöhen. Ich entschuldige mich. Tausend.
Vielleicht ist es ein bisschen zu groß. Machen wir 500 draus. Mal sehen, wir können es auf den Boden
ausrichten. Wir richten die Ziele direkt
im Boden aus. Sollte ich es einfach lokal
behalten? Sie müssen hier nicht zu
kreativ werden. Jetzt haben wir das aktiviert. Lassen Sie uns das etwas genauer unter
die Lupe nehmen und wir können das weiter modellieren, um unsere eigene Plattform zu
schaffen Wir können das in Polygruppen bearbeiten wir können es vergrößern, um
genau zu sein,
dieses Tempo extrudieren Wählen Sie den Raum aus und lassen Sie uns sehen. Was wir hier tun können, ist dieses Gesicht hierher zu drücken
oder zu ziehen. Lass uns das weiter machen. Machen wir daraus eine große Plattform. Kein wirklicher Grund
, es klein zu machen. Und extrudiere es erneut. Ich habe vielleicht etwas falsch angeklickt. Klicken wir erneut auf dieses Tempo, extrudieren es leicht und klicken wir darauf, extrudieren wir es Dies wird unser Teil
unserer Plattform sein. Lassen Sie uns nun diese Phase vorantreiben. Vielleicht hätte ich etwas
mehr Druck machen sollen. Ich mache es groß, nur für
den Fall, dass wir es brauchen. Aber ganz ehrlich, steht
dir frei, es zu tun, wie
du willst, in jeder Form, die du willst. Sie haben vielleicht bemerkt, dass
ich einen Fehler gemacht habe. Ich habe keine Beine für diesen Teil, weil ich
kein richtiges Gesicht extrudiert habe Ich könnte zusätzliche Kanten hinzufügen
usw., aber was ich jetzt tun werde, werde
ich darauf klicken und bis zum Rand
extrudieren Und ich werde wieder
leicht extrudieren , einen zusätzlichen Durchgang erstellen Ich werde auf
die Unterseite
der neu erstellten Phase klicken , um sie erneut zu
extrudieren, den Und jetzt habe ich das hier, das ich ganz einfach wieder extrudieren
kann. Schau, denk dran Der Grund, warum ich das mache, ist nur, um etwas Zeit zu
sparen. Da ich nicht die gesamte Plattform modellieren möchte. Das ist sehr nützlich
,
um die Samples
für die Umgebung zu blockieren und zu
erstellen Später können Sie
Ihre Modellierer oder
Kreativen damit beauftragen Ihre Modellierer oder
Kreativen damit beauftragen oder, wenn Sie sich selbst
bewundern wollen , auch
selbst machen Nun, wir haben das und
die Ideen, die hier mit dem Berg
verbunden sind, und haben
das Wir sollten
diesen Teil wahrscheinlich nach innen verschieben. Also lass uns das machen. Was wir tun können, ist, all diese Gesichter
auszuwählen. Und verschiebe sie einfach hierher. Jetzt haben wir eine Plattform
, die auf Akzeptieren klickt. Und wir können weitere
Polygruppen bearbeiten,
wodurch Säulen geschaffen Wenn du willst, wie du siehst, kannst du das einfach nicht bewegen Sie können extrudieren, nachdem Sie es richtig ausgewählt haben,
im Gegensatz zu dem, was ich getan habe Also lass uns das extrudieren, einfach
eine Art Arena daraus machen Das ist die Idee,
zumindest in meinem Fall. Es ist nur ein bisschen größer. Erneut extrudieren, um
zusätzliche Polygone zu erzeugen oder
um teurere Flächen zu bekommen, ich muss hier bis zum Äußersten pushen Das mag zu lange gedauert haben, aber wir werden es gleich wissen Du kannst es noch einmal drücken. Bearbeiten Sie das nur ein bisschen. Kann hier dasselbe tun. In diesem Fall betrachte ich nur
den ganzen Prozess. Also ist es nicht ideal. Nein. ich werde
das einfach hier machen. An der Säule wird leicht extrudiert, eine untere Fläche
wird wieder extrudiert Tief in die Wand hinein.
Es ist ein bisschen falsch ausgerichtet, so ist es auch und lassen Sie uns alle zusammen verschieben Und es
sollte in Ordnung sein Lassen Sie uns nun Polygruppen
bearbeiten und das Gesicht extrudieren. Wählen Sie die Säule aus und
extrudieren Sie sie erneut. Die Höhe ist etwas anders. Also lass es uns ein bisschen größer machen. Sie können auch die Kanten auswählen. Um sie zu verschieben, müssen
Sie die Größe ändern, und Sie können sie bei
gedrückter Umschalttaste auswählen, um mehrere
Kanten gleichzeitig auszuwählen. Sie möchten
die Größe des Gesichts ändern. Dies ist allgemein bekannt, wenn Sie Erfahrung
mit Modellieren haben. Und jetzt können wir extrudieren. Auch hier ist es ein bisschen falsch ausgerichtet, aber wir versuchen nicht, hier perfekt
zu sein, also können wir das einfach machen Und ich werde es
dabei belassen. Ich werde die
Platzierung dieser Scheitelpunkte ein
wenig modifizieren, indem ich die Anzahl der Scheitelpunkte hier reduzieren Ja, ich bin nicht der beste
Architekt, aber das ist in Ordnung. Aber lassen Sie uns jetzt ein
Material für diese Plattform auswählen. Ich denke, so etwas wie eine
Murmel sollte in Ordnung sein. Wir könnten mal sehen, wie es aussieht. Nicht ideal, da wir keine richtigen UVs
haben. Also lass uns einfach ein
neues Material dafür erstellen. Gehe zu Materialien. Mal sehen wie unser Basismaterial darauf
aussieht. Ja, einfache UVs sind in Ordnung. Sie können ein Material erstellen. Nennen Sie es Underscore Plat Form. Speichern Sie Loss als Plattformmaterial. Und jetzt können wir an
Material für diese Plattform arbeiten. Speichern.
18. UE5 FC07 04: Jetzt werden wir ein
Substratmaterial für unsere Plattform herstellen. Sie fragen sich vielleicht warum? Weil wir das Thema nie
angesprochen
haben,
und das ist eine gute Gelegenheit. Substratmaterial ist
ein neuer Materialtyp oder man könnte sagen, eine
Materialfunktion sie in Unreal eingeführt haben. Es ist eine Möglichkeit, Materialien zu schichten, ohne tatsächlich mehrere Materialquellen zu
verwenden, und es betrachtet und berechnet die
Schichten mit ihren Alphas, zusammen
mit den Lichtern und
Reflexionen, um uns Ergebnisse von sehr hoher
Qualität zu liefern Zuallererst benötigen
wir eine Platte, da ich
die vorherigen
Standard-Materialeingaben entfernt habe , und wir benötigen eine zweite, wenn wir zweischichtige Platte herstellen
, was wir tun werden. Und wir brauchen eine vertikale
Substratschicht. Wir stellen es so hin, das
hier und das hier. Das
werden wir vorerst tun. Nun, das hat einige ähnliche Optionen wie
das Original. Fügen wir also zuerst unsere Farben hinzu. Die diffuse Albedo entspricht
Ihrer vorherigen Farbnote. Also machen wir es
vorerst blau, fügen ein anderes hinzu und fügen
es hier zur diffusen Und lass es uns vorerst gelb
machen . Wir werden es später
ändern. Fügen wir eine Rauheit hinzu
, weil ich möchte, dass dieses Obermaterial
sehr glänzend ist Lass uns 05005 draus machen. Und wir haben es
wie ein leuchtendes Blau. Aber wir können
das Gelb nicht wirklich sehen. Um das zu tun. Wir müssen diesen
speziellen Node-Helfer hinzufügen. Es gibt zwei davon. Wir brauchen den zweiten. Und
hier legen wir sie hier hin. Und gib ihm einen Moment.
Jetzt sieht
dieses Material plötzlich
ganz anders aus. Lass es uns speichern. Sie können sehen, dass dies eine
Schicht aus zwei Materialien ist. Und wenn Sie von
oben hinschauen, wo Licht reflektiert wird, können
Sie den
Glanz ganz leicht erkennen. Und wenn Sie nach unten schauen, haben
wir eine dunklere Farbe. Wir könnten die Farbe ändern
, um sie klarer zu machen. Sagen wir, dunkelblau und sagen
wir, tiefviolett. Es ist ziemlich einfach, das so zu sehen. Aber was noch wichtiger
ist, ist, dass wir Normalen hinzufügen können. Normalen dienen zum Hinzufügen von Texturen, also können wir einfach ein Beispiel für einen
Texturknoten hinzufügen und eine Normale hinzufügen Und ich glaube, wir hatten welche von Unreal Sartbrek für
Kopfsteinpflaster Oh ja, wir haben Normale. Für Kopfsteinpflaster haben wir auch
glatte. Fügen wir glatte hinzu
und warten wir eine Sekunde. Und jetzt haben wir ein geschichtetes
Material, das glatt ist. Lassen Sie uns nun Farbe zu etwas machen, das wir wirklich gerne sehen würden Ich möchte hellere Farben
mit dunkleren Farbtönen. Lass es uns auf Blau machen. Ich möchte im Wesentlichen zwei Schichten. Jetzt wenden wir das an. Lass uns zum Level zurückkehren
und sehen, wie es aussieht. Lasst uns den Moment verschenken. Und lass uns unser neues Material
auswählen
und es hier einfügen. Natürlich müssen wir die Fliesen
anpassen, aber jetzt haben wir ein ganz
anderes Material Es ist eine angepasste Kachelung. Signifikant. Also
extra koordinieren. Füge TUE hinzu, den
einzigen, den ich hier habe. Machen wir eine sehr hohe Zahl draus. Lass uns zehnmal fesseln. Speichern Das automatische Speichern gilt
ebenfalls. Und wir haben jetzt dieses Material. Es sieht aus, als ob
es eine
Glasscheibe gibt und man sie
aus einer Richtung betrachtet, der Richtung
, in der sich
Substratmaterialien befinden. Es wäre sehr schwierig,
diesen spezifischen Effekt zu erzielen , wenn Sie ihn mit
normalen Materialien erzielen würden. Aber das kann ziemlich
anstrengend für die Augen sein. Also, was wir tun können, lasst
es uns mit verschiedenen Farben testen. Aber wir haben Schwarz mit etwas, sagen
wir, leuchtendem
Rot darunter. Gehen wir zurück zu Nun, Schwarz selbst ist keine
große Farbe,
aber die Tatsache, dass wir
hier
diesen Rauheitsparameter haben , beeinflusst, wie es aussieht Wenn wir also die Rauheit
erhöhen würden, sagen
wir, auf einen Stoff und tragen dieses Material auf einmal auf, dann
haben wir ein raues Aber so grob wollen wir es nicht haben. Machen wir es rückgängig und wir wollen
nicht, dass es schwarz ist. Lass uns etwas
Ausgefallenes machen und zwei leuchtende Farben als solche
miteinander kollidieren Und wir haben diesen Styling-Hinweis. Lass es uns noch weiter erhöhen. Ich will noch mehr kleinere
Steine auf dem Bürgersteig haben. Und lassen Sie uns einen Moment Zeit haben. Und jetzt haben wir dieses Material, mit
dem ich glaube, einverstanden bin. Sie könnten mehrere
Farben und mehrere Schichten hinzufügen und kreativ sein. Offensichtlich bietet
das Substrat selbst mehrere Optionen. Sie könnten zum Beispiel auch
die Rauheit der
zweiten Schicht bearbeiten die Rauheit der
zweiten Schicht Wenn Sie also die zweite
echte Rauheit auf Null setzen, wird
die zweite Schicht sehr glänzend sein Jetzt ist plötzlich mehr
Glanz auf der zweiten Schicht, und wenn wir das ein
bisschen umkehren , wird die obere Schicht keinen Glanz
haben,
aber die untere Schicht Also wird sie den Glanz auffressen. Aber wenn wir das auch tun können, kann
die Rauheit hier einen ähnlichen Wert Und füge der Schicht eine Krankheit hinzu. Also wie dick ist die oberste Schicht. Wenn wir also
diese höchste Krankheit
bei Null haben , bedeutet das, dass die
höchste Krankheit im Grunde nicht existiert, wir werden sie nicht wirklich sehen Also lasst uns einfach etwas
beweisen, uns bewerben und schauen. Wir haben ein sehr glänzendes
gelbes Material. Aber wenn wir es in so
etwas hineinlegen,
ist es zu krank,
um das Gelbe zu sehen. Aber wenn wir Null Punkt
fünf machen, ist das immer noch zu krank. Nullpunkt eins. Vielleicht ist
es immer noch zu groß. Die Logik hier ist zu krank
, um das Objekt zu durchschauen. Bei Null.01 kann man
es kaum sehen und auch kaum Gelb Und wenn du etwas
mehr reduzierst, meine ich bestimmt zehnmal. Jetzt ist alles gelb. Du könntest es
einfach auf etwas Fünf setzen und du kannst einstellen, wie stark
das Material Cro sein soll. Aber es sollte eine
sehr kleine Zahl sein. Leider hat Unreal
keine Dokumentation darüber, wie klein der
Standardwert sein sollte, aber wir können ihn einfach testen und ihn uns ansehen, während
wir herumgehen. 02 ist zu dick, und vielleicht sollten wir einen Wert von 7
haben Und
auch hier könnten wir ihn deaktivieren und den Unterschied
sehen, wie Sie sehen können, etwas mehr
Gelb, etwas mehr Leider weiß
ich nicht, was die
Standardkrankheit ist,
aber ich gehe davon aus, dass
es irgendwo 1-2 ist Höchstwahrscheinlich eins.500 15. Ja. Etwas an den Seiten. Ich möchte, dass es gelber
ist, also setze ich es auf 05. Bewerben Sie sich. Schau es dir an. Nun, Blau und Gelb
sind keine gute Kombination, aber wir werden es
vorerst belassen, weil ich
testen und Ihnen zeigen möchte testen und Ihnen zeigen wie es aussieht, wenn ein
anderes Normal aufgetragen wird. zweite Schicht, die wir
haben,
sieht also im Grunde wie eine
Gesteinsschicht aus, weil wir hier eine
normale Textur haben. Wir können der ersten Ebene aber auch eine
Textur hinzufügen. Also, wenn wir das hier platzieren
und es normal einschalten, entschuldige
ich mich, wir
brauchen einen Texturknoten Wir haben ihn hierher gestellt. Und lassen Sie uns einen anderen
Texturknoten hinzufügen, damit wir
einfach nach N suchen können .
Wir wollen keinen Ton. Gibt es eine interessante Normalität? Schauen wir uns Rust an. Rost als normale Textur. Lass es uns anwenden. Möglicherweise
müssen wir Fliesen hinzufügen Jetzt haben wir dieses komische Ding aus
Rost oben drauf. Mir gefällt das Kacheln nicht, also werden wir einen Texturknoten
hinzufügen Lassen Sie uns das auch
zahnärztlich behandeln. Wende es an Normale Rostknoten sind
vielleicht nicht die besten, aber plötzlich haben wir diese
Unvollkommenheiten im Material Es fühlt sich an, als ob ein
Wasserblock über dem
Kopfsteinpflaster
gefroren ist ,
aber der Weg selbst aber der Weg Und das alles geschieht mit einfachem
Material. Wenn Sie dieses Material einfach
entfernen würden, sieht
es aus wie ein Blockstein. Aber hier. Jetzt können wir stattdessen etwas auswählen
, das sinnvoller wäre. Mit Kopfsteinpflaster,
Basalt-Normalen. Und lass uns auch
die Farben ändern. Blau ist keine gute Farbe. Lass uns so etwas wie
braunbraune Farbe machen braunbraune Farbe gemischt mit Mal sehen. Lassen Sie uns eine Farbe
auf das Material auftragen. Vielleicht ist
es ein bisschen zu hell. Ja, das ist ein bisschen zu hell. Lassen Sie uns also
die Sättigung reduzieren und
es etwas
dunkler machen, vielleicht ein bisschen mehr. Sie können auch hier die
Farbe wählen. Nehmen wir die Sättigung
und setzen sie darunter. Sie sind
Farben sehr ähnlich , was für unseren Zweck völlig
in Ordnung ist. Ja, das sollte in Ordnung sein. Das sieht jetzt so aus, als ob das
Farbschema nicht so weit weg ist. Wir könnten es in beiden Fällen etwas
dunkler machen. Wir können, was
noch wichtiger ist ,
die Rauheit reduzieren, erhöhen ,
damit es weniger glänzend Machen wir es also so weit. Und dieser kann
direkt sein. Speichern Okay, jetzt ist es
viel weniger glänzend. Wir wollen nicht, dass es
metallisch ist oder so. Es gibt zusätzliche
Parameter, wie zum Beispiel, ob Sie hier die Fuzz-Rauheit eingeben
und sagen wir, die Unschärfe-Menge Schauen wir sie uns an und setzen
sie auf
eins und die Fuzz-Rauheit Machen wir auch eins
daraus und fügen
eine Farbe hinzu . Sagen wir rot. Wir werden einen zusätzlichen Farbton bekommen. Aber das ist ein bisschen zu viel, also reduzieren wir die Unschärfe
auf Null Punkt fünf, vielleicht sogar auf Null Punkt zwei, um dem Material nur etwas
Rötung zu verleihen Und jetzt haben wir ein Material
, das eine Kombination
aus drei Farben, zwei normalen Farben Es hat mehrere
Parameter für die Rauheit. Und wir haben hier nicht
viele zusätzliche Einstellungen berührt. Und dann gibt es mehrere
Möglichkeiten, wie Sie das tun können. Wir können eine zusätzliche
vertikale Schicht und
eine weitere Substratplatte hinzufügen eine weitere Substratplatte und sie erneut schichten und noch mehr Normalen,
noch mehr Farben, noch mehr
Rauheit,
UVs usw.
hinzufügen noch mehr Farben, noch mehr Rauheit,
UVs Es gibt unendlich viele Möglichkeiten, damit gut
aussehende Materialien zu erstellen,
und Unreal hat eine Demoversion zum
Substratmaterial, die du damit gut
aussehende Materialien zu erstellen, und Unreal hat eine Demoversion zum
Substratmaterial kostenlos herunterladen und sie
dir in ihrem Bildungs-
und Tutorial-Bereich im
Fab oder im
Unreal Lunch ansehen kannst, es ihrem Bildungs-
und Tutorial-Bereich im
Fab oder im gibt Beispiele Abschnitt,
auf den du klicken und sie dir ansehen kannst. Ich glaube nicht, dass Unreal
Substratproben
im Starter-Inhalt hat Substratproben
im Starter-Inhalt Ja, sie haben es nicht, aber du kannst sie herunterladen
und sie dir ansehen. Wie dem auch sei, nehmen wir vorerst an, wir sind
mit unserer Szene fertig. Als Nächstes möchten wir der Szene
ein Gameplay-Element hinzufügen. Also müssen wir zuerst
sicherstellen, dass unser Charakter funktioniert. Drücken wir Play und unsere Charaktere erscheinen in
der Mitte des Bildschirms Warum? Wenn wir höher gehen
und Play drücken, unser Charakter dort,
wo sich unsere Kamera befindet Der Grund, warum das passiert,
ist, dass wir keinen bestimmten
Indikator in der Szene
haben Und dieser Schauspieler heißt
hier, lass mich sehen. Charakter. 1 Sekunde. Startknoten des Spielers, dieser. Dieser
Spieler-Startknoten definiert also , wo dein
Charakter wieder anfängt. Natürlich kannst du ihn wie im
Spiel
überschreiben , indem du Dateien
speicherst oder nur einige Trigger benutzt Aber normalerweise ist das
nur ein Startpunkt. Und jetzt
spawnen unsere Spieler immer an diesem Punkt, egal
wo sich
unsere Kamera befindet spawnen unsere Spieler immer an diesem Punkt, egal
wo sich
unsere Stellen Sie sicher, dass das nicht
wirklich in der richtigen Position ist. Wenn du so etwas
hineinlegst, fällst du
durch den Boden. Du musst also darauf achten, dass dein Spielerstart
in der richtigen Position ist sich nicht
zu sehr mit
anderen Objekten überschneidet. Und ja, wir haben das, jetzt
können wir einige Gameplay-Sachen machen. Wir können uns in unserer Szene bewegen , weil wir diese
Steine mit unseren Materialien herstellen. Sie stoßen nicht zusammen, was
wir, um ehrlich zu sein, von
vornherein nicht wollen. Und bevor wir beginnen, fügen
wir eine Möglichkeit hinzu, diesen Teil zu erklimmen, auch wenn wir ihn nicht
nur für visuelle Zwecke verwenden werden. Gehen wir also zu unserem
Hauptdarsteller-Tab. Gehen Sie in den Fenstern zum
Platzieren von Schauspielern. Und lass uns zu den Grundformen gehen. Ich glaube, wir hatten irgendwo eine
Treppe, ja. Curve Air Lines, Sir.
Und lass uns das benutzen. Das ist ein Pinselnetz. Das ist also nicht wirklich ein Netz. Es ist eher ein Modellierungswerkzeug in
Kombination mit einem statischen Netz. Und Sie können einfach
die Anzahl der Schritte erhöhen. Erhöhen wir die Höhe für 80 und die Anzahl der Stufen
auf, sagen wir, 50. Oh, ich habe es vielleicht übertrieben. Nehmen wir an, die Anzahl der Schritte
sollte
etwa 35, 32, eins Mach es. Es sollte in Ordnung sein. Vielleicht machen wir es breiter. Es ist weniger Teil der Szene. Und lass uns benutzen, lass es uns
einfach behalten, Lexis. Und nachdem wir es so
ausgerichtet haben, wie
wir wollen, können wir ein statisches Netz erstellen und es
im generierten Netz behalten Und jetzt wird es
in Mesh umgewandelt, und wir können unser Material verwenden, das wir hier verwendet haben. Sie
können einfach auf Bowe
klicken, auf dieses Mesh klicken und Browser
auf Select Asset
verwenden Und jetzt haben wir das
gleiche Mesh hier angewendet. Da dieses Netz viel kleiner
ist, auch
die Kacheln sehr klein
, aber es ist in Ordnung Und jetzt, falls wir herunterfallen sollten, wie ich es gerade getan habe, könnten
wir klettern, aber dieses Netz kollidiert
nicht Also klicken wir darauf,
klicken auf die Kollision
und müssen die
Kollisionsvoreinstellung auswählen, um alles
zu blockieren, da es sich um ein Netz Und ich wollte es einfach. Wir haben da einen leeren Raum. Wir können es in einer Sekunde reparieren. Aber es funktioniert immer noch nicht. Nun könnte die Frage sein, warum das nicht funktioniert, was ich Ihnen gleich vorstellen werde. Das ist also ein Pinsel. Wir haben ihn aus dem
einfachen Pinsel erstellt, oder? Und wenn du das Licht anklickst und zur Spielerkollision wechselst, gibt es hier
keine Kollision. Das ist der Grund, warum wir dieses Mesh
erstellt haben, aber nie
Kollision darauf gesetzt haben. Sie können also das von uns
generierte Mesh öffnen und
auf Spielerkollision klicken,
und da ist nichts, und dann
unten oben auf die Kollision klicken, um eine zu erstellen. Es gibt also eine Kugelkollision. Da ist eine Kapsel, da ist eine Kiste. Wenn du also auf das
Feld vereinfachte Kollision klickst, ist
das nicht ideal. Um zu zeigen,
wie es aussehen wird, legen
wir unseren
Spielstart in die Nähe, damit wir nicht zu viel laufen
müssen. Jetzt bewegen wir uns auf Sendung. Der Grund dafür ist, dass es eine Kollision
gibt, sie hat die Form einer
Kiste unter uns. Und das ist nicht ideal
für unsere Zwecke. ist nur eine allgemeine
Regel. Denken Sie daran, dass Sie in der Szene nur Dinge anfassen können, in denen es zu Kollisionen kommt. Unreal generiert standardmäßig bestimmte
Kollisionen,
vorausgesetzt, Sie benötigen sie Aber es gibt bestimmte
Fälle, in denen
es nicht generiert wird, weil es normalerweise für das Prototyping
verwendet wird,
nicht für das tatsächliche Layout der Szene Um dafür eine richtige
Kollision zu erzeugen, würden
Sie sie idealerweise in
einer Modellierungssoftware individuell erstellen oder
Ihre Kollision einfach selbst
mithilfe einiger Tools,
Modellierungswerkzeuge usw. umgehen Ihre Kollision einfach selbst
mithilfe einiger Tools, Modellierungswerkzeuge usw. Stattdessen werden
wir unsere ineffiziente Kollision beseitigen C auf die Kollision und das
Konvertieren-Bookis-Kollision und wir klicken auf
Oto-Box-Kollision,
Out-Convex-Kollision, Out-Convex-Kollision, Und auf der rechten Seite wählen
wir die Qualität aus, und diese Qualität ist uns nicht wirklich wichtig
, und wir Möglicherweise möchten Sie
bestimmte Kollisionen bis jetzt reduzieren ,
aber jetzt ist das Ganze falsch geformt Wenn du es sehr niedrig machst, wird
das sehr schlecht aussehen. Wie Sie sehen können, handelt es sich
nicht einmal um eine vollständige Kollision. Lassen Sie uns also einfach die
Standardwerte und die Vorversorgung eingeben. Das ist nicht wirklich ideal. Wie Sie sehen können, gibt es
zusätzliche Scheitelpunkte usw. Es gibt Kollisionslinien
, die keinen Sinn ergeben, aber das ist nur für
Prototyping-Zwecke, also können wir es einfach so
lassen, wie es ist, und jetzt können wir uns bewegen Jetzt haben wir diese Leiter,
die
wir, um ehrlich zu sein, nicht wirklich
benutzen werden, weil ich beabsichtige, das gesamte
Gebiet mit einer Kollisionskammer Der Spieler kann also nicht einfach aus der Ebene
springen. Viele Spiele, an die Sie sich
vielleicht erinnern, wenn Sie ein erfahrener Spieler sind, haben Bereiche außerhalb der Grenzen mit
unsichtbaren Wänden usw. Und der Grund, warum es gemacht wird, ist die Entwickler nicht wollen, dass du dorthin gehst, wo du nicht
hingehen In diesem Fall klettere
ich zum Beispiel auf diesen Berg und wenn ich über
diesen Berg hinausgehe, ist
dort nichts,
und ich werde aus den
Grenzen fallen und wenn ich einen
bestimmten Punkt auf der Karte erreiche, wird
der Schauspieler zerstört Ich werde unendlich
in einer folgenden Animation feststecken. Offensichtlich ist das nicht ideal und wir wollen nicht
, dass das passiert Daher fügen wir normalerweise
unsichtbare Kollisionen hinzu, sodass Sie sich nicht außerhalb des Systems bewegen können Auch das
geht ganz einfach, indem wir Schauspieler platzieren und
wir können einfach
danach suchen , indem wir Blockieren eingeben Wir haben jetzt die Lautstärke blockiert. Also fügen wir dem Level diesen
Rückgang hinzu, können unsere Spielsektoren entfernen. Du könntest auch
hier klicken und zu
Volumes gehen und dann zum Sperren der
Lautstärke gehen oder einfach hier suchen. Wir haben jetzt also dieses
Sperrvolumen, das wir eigentlich
nur vergrößern und vergrößern müssen genauer zu sein, und lassen Sie uns das machen. Und nur zu
Demonstrationszwecken werde
ich es an
allen Seiten sehr groß machen und diese
unsichtbare Wand in der Mitte platzieren. Drücken wir also die Play-Taste
und versuchen wir, in
die Mitte der Szene zu gelangen. Möglicherweise sehen Sie etwas Bekanntes. Ich bin nicht in der Lage,
über diesen Punkt hinauszugehen. Optisch macht es
keinen Sinn, aber
hier ist eine blockierende Lautstärke , die
meine Bewegung behindert. Was wir stattdessen tun müssen, ist, es zu verkleinern, es
zu verlängern und es
so zu platzieren, dass es das Level umfasst Am einfachsten ist es, mithilfe der
Spielerkollision genau zu sehen , wo sich der Spieler nicht
bewegen kann Und wir wollen nicht, dass sich der Spieler weiter
bewegt. Machen wir sie größer. Und wir können die
Klicks überall hin verschieben. Wir können die Shift-Taste erneut drücken. Dreht sich um 90%. Nett. Abschluss und dann wieder
raus und
alles bis hierher verlegen. Und jetzt, obwohl das wie ein Schlüssel
aussieht,
weil sie nicht perfekt aufeinander abgestimmt
sind , sind sie ehrlich gesagt
nicht
so wichtig , weil wir sie hier nicht
sehen werden. Natürlich
möchten Sie, dass Ihre Kollisionsboxen präzise sind. Aber was das Prototyping
angeht, sollten
Sie
sich darüber keine Gedanken machen Zum Thema Prototyping:
Während der Spieleentwicklung ist
es sehr wichtig, ihre Spiele schnell zu prototypisieren und zu testen In den meisten Fällen liegt der Grund, warum das Spiel veröffentlicht wird
und keinen Spaß macht darin, dass es in der Anfangsphase nicht richtig
prototypisiert
und getestet wurde richtig
prototypisiert
und getestet Und wenn die Entwickler feststellen, dass ihr Spiel
nicht wirklich Spaß macht, stehen
sie vor einer Wahl Sie müssen entweder das Spiel
weiterentwickeln , von dem sie wissen
, dass es keinen Spaß macht, oder sie müssen versuchen, es
irgendwie unterhaltsam zu machen. Oder sie setzen es einfach durch
und veröffentlichen es so, wie es ist, oder obwohl es
vom moralischen Standpunkt her am idealsten ist,
müssen sie das ganze Projekt neu starten Der beste Weg, um herauszufinden, ob das, was man macht, Spaß macht
oder nicht, ist ein Spiel zu machen Und um dein grundlegendes
Gameplay-Konzept zu entwickeln, auch wenn deine Modelle wie nichts
aussehen, musst du einfach das
verwenden, was du zur Hand hast, einen schnellen Prototyp dessen
erstellen,
was du zu
machen versuchst , und daraus ein Spiel machen. Was wir jetzt hier machen, wir haben einfach eine zufällige
Umgebung mit zufälligem Laub und
Trümmern usw. Felsen und dieser sehr
zufälligen, nach Meinung der meisten Leute höchstwahrscheinlich sehr hässlichen Plattform, die wir
als Spielbereich verwenden werden. Ich versuche sicherzustellen, dass ich jede Gelegenheit
nutze, um die zusätzlichen
Funktionen
der Tools zu erläutern , die Ihnen in der Szene
zur Verfügung stehen Daher werden wir einige Dinge anders
machen. Wir wollen nicht, dass
es hell ist. Wir werden
also L
kontrollieren und es dunkler machen. Ich werde es später
noch dunkler machen. Wir werden hier auf all diesen Linien
zusätzlich
Lichtquellen hinzufügen . Und diese Lichtquellen
werden unsere
Hauptlichtquellen sein. Und das wird
hauptsächlich ein visuelles Element sein, und die Lichtfarbe wird sich ändern, je nachdem,
was wir im Spiel tun. Meine Idee
ist derzeit also sehr einfach. Wir werden einige
physikalische Objekte wie Kugeln haben, und wir werden diese physikalischen
Objekte in einen bestimmten Teil
der Arena
schieben Objekte in einen bestimmten Teil
der , der sich bewegt. Und dein Ziel ist es,
eine bestimmte Anzahl
von Bällen in die Arena zu bekommen , und wenn du damit
fertig bist, kannst du dich
für diese Plattform entscheiden. Und das wird das
Ende unseres Spiels sein. Wir werden
einige interaktive Objekte haben. Und wir werden
hier
, wo unsere Leiter ist, ein Tor haben hier
, wo unsere Leiter Und höchstwahrscheinlich
werden wir
hier einige Wände hinzufügen , um sicherzustellen, dass
Sie nicht wirklich
rausgehen können, ohne sich zu sehr
auf das Sperrvolumen zu verlassen auf das Sperrvolumen , das hier nur Blocks
hoch ist Wir werden im Wesentlichen einen
Rahmen hinzufügen, und wir werden hier einige Türen
hinzufügen,
etwas, das wie eine Tür
funktioniert,
wie etwas, das ein Tor oder ein Zaun ist Ja, ein Zaun ist das meiste also lass uns jetzt besprechen,
was wir dafür brauchen. Wir brauchen eine Lichtquelle. Wir werden
unseren vorherigen Entwurf
mit einigen Unterschieden wiederverwenden unseren vorherigen Entwurf
mit einigen Unterschieden Wir werden
einen Zaun verwenden, um einfach
eine Illusion hinzuzufügen , die besagt,
dass eine Kollision unsere
Bewegung nach draußen blockiert Wir werden
Requisiten verwenden, die wir zur
Hand haben, und wir werden
physikalische Objekte benötigen, bei Hand haben, und wir werden
physikalische Objekte benötigen, denen es sich um normale
Grundformen wie Kugeln Und wir werden
einige Pläne erstellen müssen, um uns in
unserer Zone bewegen zu können, die im Grunde als Tor dienen
wird Sie müssen Punkte sammeln. Und das wird das grundlegende
Gameplay-Konzept dieser Demo sein. Im Grunde genommen handelt es sich um einen sehr
einfachen Prototyp eines Spiels nur
um zu sehen,
ob es sich um einen handelt ist wahrscheinlich
der wichtigste Teil
der Spielentwicklung, um zu sehen ob man etwas machen kann Ich zeige dir zwar,
wie das alles geht, du bist nicht gezwungen,
meinen Schritt für Schritt zu wiederholen Du kannst sofort etwas
Lustiges kreieren. Ich versuche
sicherzustellen, dass wir so
viel wie möglich über den
Spieleentwicklungsprozess
im Unwirklichen lernen können viel wie möglich über den
Spieleentwicklungsprozess ,
naja, versuche auch, nicht zu viel Zeit zu
verschwenden Und um nicht zu vergessen, das
sind alles bloße Grundlagen. Jedes einzelne Element
im Unwirklichen ist sehr kompliziert, wenn man genug, tief genug
gräbt Zum Beispiel, wie Licht funktioniert, wie Schatten funktionieren? Wie funktionieren die Materialfunktionen? Wie kann ich Materialien erstellen
, die sich bewegen? Stellen Sie sich jedes einzelne Spiel vor, das Sie jemals in Ihrem Leben gespielt
oder gesehen haben. Jedes einzelne, auch
relativ einfache Zeug in den Spielen, Logiken und Funktionen, wenn Sie versuchen,
es in einem Spiel zu implementieren,
tauchen plötzlich viele Punkte auf, von denen Sie keine Ahnung haben,
wie sie funktionieren sollen oder wie sie funktionieren Als Spieleentwickler ist es am wichtigsten zu
verstehen, wie Zahnräder
zusammenpassen Wie ein Objekt mit einem anderen
interagiert, wie ein Material Licht reflektiert, wie Schatten mit
dem Licht zusammenwirken, wie die Landschaft, die Maschen, die statischen Netze, die Charaktere alle
miteinander interagieren können Wie kann man einfach
eine einfache Tür öffnen , ist bei jedem
Spiel anders? Denken Sie daran,
wie das alles gemacht wird. Und in der nächsten Vorlesung werden
wir
unsere Spielelemente erstellen. Lassen Sie uns vorerst die
Einrichtung unserer Szene abschließen.
19. UE5 FC07 05: Lassen Sie uns nun damit beginnen, unserer Szene
einige Lichter hinzuzufügen. Ich habe unsere
zuvor erstellte Lampe bereits verwendet, sie
vergrößert, nach unten gedreht und je nach Ihrer Szene können Sie das auch tun Nur um eine relative Position zu finden , an der Sie Ihre Lichter haben
möchten Vielleicht wirfst du
einen Blick auf den Bildschirm
und stellst plötzlich fest
: Oh, da gibt es eine
Menge Platz zu verdecken. Ich müsste dieses Licht manuell
hinzufügen, sagen
wir, alle hundert Einheiten
oder alle 500 Einheiten , um meine gesamte Szene
abzudecken. Das können Sie auf jeden Fall tun. Aber das Problem ist dass
diese Lichter, die wir zu unserer Szene
hinzufügen werden aufgrund der Größe der Szene,
die ich gemacht habe, viele davon geben werden, und es würde
viel Zeit in Anspruch nehmen sie alle manuell
zu platzieren. Stattdessen
werden wir eine Funktion erstellen und
ein
Konstruktionsskript erstellen, das für
diese Funktion ausgeführt wird und das für
diese Funktion ausgeführt diese Schauspieler in unserer Szene platzieren kann. Also lass uns das machen. Lassen Sie uns zunächst
einen neuen Schauspieler erstellen. Und es wird nur ein Schauspieler
sein. Wir werden es
BP Light Spanner nennen. Öffne es, speichere es für alle Fälle. Für visuelle Zwecke fügen wir hier
etwas hinzu , das wirken kann. Fügen wir einfach einen Pfeil damit wir sehen können,
in welche Richtung das X zeigt. Falls du dich fragst, wie es in dem Level aussehen
würde, wenn wir das
hier einfach hinzufügen würden, dann würde das Standardsyn root, kompilieren Wir werden
diesen roten Pfeil haben zeigt
, wohin dieser
Blueprint schaut, was nützlich sein wird Wir können das vergrößern, damit es leichter zu erkennen ist Der Schauspieler selbst spielt
keine Rolle, da dies nur für den Bau verwendet wird. Der Grund, warum wir
diesen Schauspieler geschaffen haben, ist, dass, wenn wir ihn hier im
Konstruktionsskript erstellen, auf jeder
Kopie dieses Entwurfs läuft Aber ich will nur einen
Schauspieler, bestimmte
Anzahl an leichten Schauspielern spendet, und danach werde ich diesen Schauspieler einfach
entfernen, damit ich das
nicht aufstacheln Also, was wir
tun werden, ist, zum Baudrehbuch
zu gehen, und einige von Ihnen
haben es vielleicht schon versucht, aber wenn Sie vom
Unterricht zum Spa-Schauspieler gehen , denken Sie vielleicht, vielleicht werde ich einfach auf Lampe,
Blueprint klicken und für, sagen wir,
Schauspieler transformieren lassen , es hier und hier
anhängen. Sie denken vielleicht:
Okay, alles was ich tun muss, ist das Und wenn ich zu meiner
Levelkarte gehe und Play drücke, leuchtet ein zweites Licht auf. Ich werde es simulieren, damit ich mich
nicht so abkühlen muss. Nun, Sie haben technisch gesehen
Recht. Es ist gespawnt Natürlich haben wir nicht gesagt, wie
man spawnt, aber es gibt ein Problem Ich habe immer noch nur einen Schauspieler ausgewählt und dieser Schauspieler gehört
zu diesem Schauspieler Also haben wir es einfach
mit einem zusätzlichen Schritt gemacht. Nun, deine Idee könnte sein, okay,
was ist, wenn wir ein
Konstruktionsskript verwenden? Darum geht es. Sie können den Spawn-Schauspieler nicht
direkt in das
Konstruktionsskript kopieren Spawn-Schauspieler nicht
direkt in das
Konstruktionsskript Das hat kompositorische und
rechnerische Gründe, weil dadurch leicht kaputt gehen
kann Wenn Sie einen Schauspieler erstellen , der einen Schauspieler erzeugt
, der einen Schauspieler erzeugt, so ist das normalerweise
keine gute Idee Was können wir nun tun
, um das zu erreichen? Wir können das nicht verwenden, und wir können es nicht verwenden, weil wir
nicht wollen, dass es im Spiel ist, wir wollen, dass es vor dem Spiel ist. Und das Konstruktionsskript bevor der Schauspieler geschaffen wird. Es passiert, bevor
das Spiel gestartet wird oder überhaupt etwas
im Gameplay getan wird. Um dies zu tun,
müssen wir eine Funktion erstellen. Lassen Sie uns also eine Funktion erstellen. Wir werden es Spawn-Schauspieler nennen. Sie haben es irgendwie geschafft
, es durcheinander zu bringen. Und wir gehen zum Konstruktionsskript und
rufen die Spawn-Actor-Funktion Und wir werden das kopieren und in unsere
Spawn Actor-Funktion einfügen Nein hier. Spanischer Schauspieler. Wir machen es vorerst einfach so, kompilieren und
zurück zum Level gehen, und Sie werden vielleicht sehen, warte, es passiert
nichts. Das liegt daran, dass diese Funktion nicht von
vornherein
vom Konstruktionsskript
aufgerufen werden sollte vornherein
vom Konstruktionsskript
aufgerufen werden vom Konstruktionsskript Was wir also tun
müssen, ist, auf Spawn Actor
und dann auf Call zu klicken Das bedeutet, dass dies jetzt
aufgerufen werden kann , bevor das Event im Editor
abgespielt Also gehen wir zurück. Und wir haben diesen Schauspieler für Light Spawner
ausgewählt. Und wir haben jetzt eine Schaltfläche
namens Spawn Actor. Du klickst darauf, wir
haben Schauspieler, die spawnen. Das ist genau das,
was wir brauchen, und du kannst diesen Schauspieler jetzt einfach
bewegen, erneut
klicken
und wieder spawnen Das ist immer noch nicht
genau das, was wir brauchen. Aber zuerst wollen wir den Wert ermitteln oder
uns der Rotation und Skalierung widersetzen. Hier müssen wir sicherstellen, dass wir
die richtigen Werte für
den Spawn-Akteur erhalten die richtigen Werte für
den Spawn-Akteur Also Schauspieler, den wir versuchen zu spawnen. Um zu verstehen, wie es funktioniert ,
schauen wir uns
zunächst diesen Knoten an Dieser Knoten heißt
Get Actor Transform. Transform bezeichnet die Rotation, Position und Skalierung
des Schauspielers. In diesem Fall das Ziel
für diesen Knoten selbst. Es bedeutet also, dass es
diese Schauspieler erwischt. Damit meine ich diesen
Arrow-Schauspieler, den wir geschaffen haben. Und er erhält seine Werte für Rotation,
Position und Maßstab, und wir fügen sie hier
in diesen neuen Knoten ein
, der den Lampenknoten
mit den Parametern Descent erzeugt . Es kopiert also im Grunde die exakt gleichen Werte
vom Akteur selbst. Aber das ist nicht
immer das, was wir brauchen. In diesem Fall müssen
wir also insbesondere die
Rotation und den Standort bearbeiten. Wir können die Skalierung
unverändert lassen, weil
die Standardskala für
diesen Schauspieler fünf ist,
wie wir es die Standardskala für
diesen Schauspieler fünf ist, hier zuvor
eingerichtet haben, und die Skala für die
Lampe ist ebenfalls fünf, sodass wir sie nicht wirklich ändern
müssen, aber wir könnten es von der
Funktion hier aus tun, wenn wir wollen. Lassen Sie uns zunächst
Split Strick machen. Der Grund, warum wir
das tun, ist, dass wir nicht einfach all
diese neun Werte
gleichzeitig bearbeiten können. Also teilen wir sie und haben jetzt
einzelne Parameter , die wir miteinander verknüpfen
können. Wir können den
Maßstab einfach so anpassen, wie er ist, aber wir müssen unseren
Standort und unsere Rotation ändern. Was wir also für die Rotation tun können, möchtest
du vielleicht: Oh, okay, ich füge einfach den gewünschten Wert hinzu und vielleicht sogar einfach ein Plus. Aber vielleicht stellen Sie fest,
dass dies bei Rotation nicht funktioniert. Wenn Sie es mit
Vektor machen, wird es funktionieren. Der Grund dafür ist,
dass Rotation normalerweise nicht nur ein Wert
ist. Rotation der Schauspieler erfolgt also normalerweise
in Grad und nicht in
Form von Gleitkommawerten. Was wir stattdessen tun müssen, ist, dass
wir das hier
so hinstellen, wie es vorerst
ist, und wir werden Strtin
weiter aufteilen und wir werden Strtin auch
hier Wenn Sie sich also unsere Rotatoren
ansehen, haben wir
hier eine
Drehung von -180 für die Lampe und 179,
naja, was eigentlich
nur ein Float-Fehler ist, 180 für unser Z.
Aber wenn wir unseren Schauspieler
hierher bewegen und ihn, sagen wir,
um 90 haben wir
hier eine
Drehung von -180 für die Lampe und 179,
naja, was eigentlich
nur ein Float-Fehler ist,
180 für unser Z.
Aber wenn wir unseren Schauspieler
hierher bewegen und ihn, sagen wir,
um 90 Grad drehen. Jetzt ist es 90, 180 Wir wollen
also, dass es immer -180 ist,
aber
wir wollen, dass die Achse
veränderbar aber
wir wollen, dass die Achse Was wir also tun werden, wir werden Y so lassen, wie es ist Es gibt keinen wirklichen Grund, es zu ändern. Und für X können wir einfach den Wert -180
eingeben. Z betrifft, werden wir
hinzufügen . Und was wir hier hinzufügen
werden, ist,
lassen Sie uns einen Blick darauf werfen Wenn wir Z rückgängig machen würden, würde das nach oben schauen und
wir müssen nach unten schauen Also mach 108 draus. Ich habe vielleicht einen Fehler gemacht, aber wir werden es früh genug wissen. Schauen wir uns das an
, indem wir zu unserem Level gehen. Das ist für den Moment. Und klicken Sie
darauf und klicken Sie auf Spawnctor Ja, ich habe einen Fehler gemacht. Möglicherweise stellen Sie fest, dass dies
ein falscher Wert ist. Es ist 90. Der Grund dafür ist, dass der
Standardwert dafür 90 ist. Also hätte ich stattdessen
den Unterschied
zwischen ihnen berechnen sollen, und zwar für 180 und 00 hundert 80. Damit es also genau
so ist, wie ich es mir
wünsche, müsste ich es extra
rotieren. Ich brauche zusätzliche -90 Grad. Also lass es uns -180 machen und
sehen, wie es jetzt funktioniert. Auch das ist nicht korrekt. Wir erhalten das richtige X, aber wir erhalten
hier nicht
die richtige Drehung , weil wir zusätzlich
die -180 hinzufügen Versuchen wir es mit -170. Kompilieren Sie und versuchen wir es jetzt. Lassen Sie uns diesen entfernen und
einen Schauspieler hervorbringen. Jetzt ist es so, wie es sollte. Das Problem war also, dass wir bei diesem Akteur
standardmäßig
positive 90 Grad hatten bei diesem Akteur
standardmäßig
positive 90 Grad und dass die
Differenz zwischen diesem und diesem Spanvektor 270 sein muss. Gehen wir nun zurück und versuchen, diesen Akteur zu
nutzen. Wenn ich also will
, dass alle Schauspieler mit diesem hier mithalten, brauche
ich die Asse
dafür und lege sie hier hin . Kopieren und einfügen. Und
lass es uns jetzt versuchen. Ja, es ist mehr
oder weniger dasselbe. Um sicherzugehen, dass unsere anderen
Exzesse auch korrekt sind, kopieren
wir sie einfach und platzieren sie, bis sie
übereinander liegen, und danach verschieben
wir sie einfach Jetzt sind ihre
Ausgangspunkte dieselben, und wir können sie jetzt verschieben
und auf Span actor klicken Jetzt ist es nur noch sektorübergreifend und es ist voller funktionaler
Akteure, die wir verwenden können. Jetzt ist es immer noch nicht
genau das, was wir brauchen. Das bedeutet immer noch, dass es
technisch etwas einfacher ist, als den gewünschten Akteur
jedes Mal
zu ziehen.
Es bedeutet immer noch, dass wir diesen Pfeil
rundum ziehen und diesen
Vorgang wiederholen müssen rundum ziehen und diesen
Vorgang wiederholen Es gibt eine Möglichkeit, es noch einfacher zu
machen. Nun, da wir diesen
Sektor spawnen können, wo immer wir wollen, sollten wir ihn hier als
Ausgangspunkt platzieren und
unseren Plan weiter modifizieren Ihr habt vielleicht bemerkt, dass wir
diesen Knoten für die Transformationsposition haben diesen Knoten für die Transformationsposition Wenn wir hier also einen
zusätzlichen Wert eingeben, nehmen
wir an, dass er sich derzeit auf der
Y-Achse befindet. Wenn Sie also eine zusätzliche
Y-Achse hinzufügen, 500 Einheiten, und Spawnctor drücken, erzeugen
wir Nehmen wir an, wir wollen alle
500 Stück pro Lampe erzeugen. Einheiten. Schauen wir uns jetzt hier unseren Bauplan
an. Wir haben das hier
, das für
unsere Y-Position, die Position der Y-Achse verantwortlich ist unsere Y-Position, die Position der Y-Achse Und wir wollen, dass es
für den ersten Schauspieler, der
geschaffen wird, bei 500 sein wird. Der zweite ist bei 1.000, der
dritte bei 1.500 und
so weiter und so weiter. Das bedeutet, dass wir bei jeder Wiederholung 500 zu
diesem Wert hinzufügen müssen , aber wir müssen ihm auch eine Grenze hinzufügen , weil wir nicht wollen, dass es
unendlich passiert Also was wir hier tun können, wir können die Taste N drücken und auf den
Plan klicken Dadurch wird dieser
Knoten namens D N erstellt,
was bedeutet, dass Sie eine bestimmte
Anzahl von Malen ausführen,
und diese bestimmte
Zeit ist dieser Wert hier. Wir werden uns das besorgen und gleich loslegen
. Und das wird
unser Zähler sein. Was wir tun werden, ist, sagen
wir, vorerst dreimal. Und jedes Mal, wenn wir es tun, wird die Ganzzahl offensichtlich Null,
Eins, Zwei, Drei
sein. Der Grund, warum es bei der Ganzzahl mit
Nullen beginnt und ganze
Zahlen bei Null beginnen Und wir müssen sicherstellen, dass
wir diesen Wert bearbeiten, oder? Also werden wir diese Struktur
aufteilen, und wir werden
diesen Wert mit 500
multiplizieren und ihn hier eingeben. Was
jetzt passiert,
hängt davon ab, um welche Iteration
dieses Prozesses es sich handelt Es nimmt diesen Wert, multipliziert ihn mit 500 und
setzt diesen Akteur in den Wert dieser Position Gehen wir also zurück zur
Ebene und sehen wir uns an, wie es funktioniert. Lassen Sie uns zuerst diese Lampe entfernen
und auf Spawn Actor klicken. Jetzt stellen Sie möglicherweise fest, dass
dies nicht richtig funktioniert. Weil wir nicht haben, dass
das auf die zurückgeht. Dieses Spa selbst wiederholt es
nicht. Du musst das Ende
haben Das begrenzt nur, wie
oft das passieren kann. Also, was wir hinzufügen werden, wir werden hier einen
Re-Root-Knoten hinzufügen, um ihn sauber zu machen, und wir werden ihn
wieder hierher stellen und wir werden ihn
verschieben, um einige
Organisationssymbole zu haben, von
denen wir mehr
in diesem Projekt verwenden können Und jetzt gehen wir zurück, kompilieren und lassen Sie uns
das jetzt entfernen und auf
Spactor klicken , wir haben jetzt wenn Sie sich
den
Standortwert hier ansehen, wird
der Unterschied genau 500 sein. Nun, das ist genau das,
was wir brauchen. Jetzt brauchen wir nur eine Art Berechnung wie viele dieser
Schauspieler wir brauchen. Nehmen wir an, ich schaue es mir einfach an und sagen
wir, ich will 15. Ich kann hier einfach auf 15 klicken, es
kompilieren, speichern, nur für den
Fall, dass ich es auch speichere Spawnen mehrerer Schauspieler kann Ihren PC
zum Absturz bringen, abhängig von Ihrer Logik, die Sie eingegeben haben und den Spezifikationen Ihres PCs, Spawn-Akteur Und ich glaube, ich habe richtig
fett gedruckt. Ja, jetzt haben wir
15 Lampen mit einer. machen etwas Glanz Die Lichter, die wir aufgrund
der Materialien, die wir zur Verfügung haben, erzeugt haben, Wir werden
das alles später reparieren. Jetzt wollen wir, dass
sich das noch einmal wiederholt, aber dieses
Mal an anderen Wänden, und wir können einfach den
Schauspieler nehmen, den wir haben, bewegen. Und dieses Mal werden wir
es hier ganz
links platzieren . Wenn wir jetzt wieder auf
diesen unteren Rand klicken, wird dieser Spawn
in dieser speziellen Zeile Sie fragen sich vielleicht: Okay, warum ist es auf
diese Weise und nicht
in derselben Richtung wie beim vorherigen Mal wie bei
Pfeil gespawnt in derselben Richtung wie beim vorherigen Mal wie bei
Pfeil Der Grund dafür
ist, dass wir bei der Rotation dieses Akteurs in dem von
uns erstellten Plan die Thesen
kontrollieren Entsteht aus der Transformation des Schauspielers. Wir fügen die
Transformationsposition gewaltsam auf einer anderen Achse Wir
verwenden nicht wirklich eine Direktionalität bei der Angabe, wo es
erscheinen soll Wir könnten es schaffen. Wir könnten die
aktuelle Drehung des Schauspielers
ermitteln, zum Beispiel die Drehung des Pfeils , und
sie als Wert eingeben. Aber alles, was wir hier versuchen, ist,
sie in einer geraden Linie zu machen. Und diese grüne Linie ist die Y-Achse, blaue ist die Z-Achse und die rote Linie ist X, und unser großer roter
Pfeil ist auf der X-Achse Wenn Sie
also im X
spawnen wollen, müssen wir sie nur hier platzieren, kompilieren und Spa-Nektar drücken Nun, die Platzierung
meines Pfeils ist etwas fließend. Also lass es uns noch einmal
so korrigieren. Mal sehen, ob sie
okay aussehen. Ihnen geht es gut. Und was wir jetzt tun können, wir können es einfach ganz
dorthin verschieben. Jetzt müssen wir das rotieren und sicherstellen, dass Sie
die Lichtschwankungen ignorieren. Das liegt an den Einstellungen für Oberlicht
und Belichtung. Und jetzt müssen wir
es wieder auf der Y-Achse tun. Aber dieses Mal, wenn
wir es so machen, kompilieren und auf Spawctor klicken, wird
es umgekehrt Der Grund, warum dies passiert
, ist , dass wir einen
positiven Wert haben und vom positiven
Y X zu einem negativen Wert übergegangen Ich entschuldige mich von
negativ eins auf positiv, höherer Wert Stattdessen können
Sie hier ein Minus setzen,
kompilieren, wie Spactar
und jetzt haben wir Lichter Offensichtlich sind sie momentan nicht
richtig platziert. Ja, viel besser. Und jetzt machen wir
genau das Gleiche. Auch hier bewegen wir es. Der Grund, warum
wir das rotieren und uns bewegen,
ist,
dass wir die tatsächliche Rotation durch
die Rotation des Schauspielers erhalten. Auf diese Weise müssen wir ihn nicht jedes Mal neu
drehen. Und jetzt werden wir wieder spactieren, und es wird offensichtlich falsch sein Sie müssen sich jetzt auf
der X-Achse befinden. Also, was wir
wie bisher machen werden, wir werden das einfach von Xxxs
entfernen und wenn wir es noch einmal versuchen, nun ja Also, indem ich einmal ein
Bauskript gemacht habe
und ich glaube, ich habe
diese Lampen etwas falsch platziert, sodass ich sie manuell
abstellen muss Oh nein, ich habe die Geometrie ein bisschen falsch gemacht.
Es sollte in Ordnung sein. Wir streben hier nicht
nach Perfektion, wir sind nur in einem Prototyp. Und das Beste dabei ist, ein
Konstruktions-Skript zu machen, nur ein Spa-Schauspieler, wie wir es jetzt gemacht haben ist, dass der Span-Schauspieler selbst nicht notwendig ist
, um im Level zu bleiben. Wir können ihn aus dem Level entfernen, und wir haben all diese Lichter
für die Schauspieler eingestellt und jetzt können wir sie anpassen. Bevor wir das tun, wählen
wir sie alle aus. Und ich möchte
sie alle zum Ordner hinzufügen. Lichter. Und jetzt können wir einfach
in jeden beliebigen Bauplan gehen. Leider kein Bauplan, klicken Sie auf einen beliebigen Lampenplan, wir springen direkt hinein und können jetzt das Spotlight einstellen Passen wir also die Werte an. Wir könnten diese Werte
editierbar machen und das
vom Editor aus machen
usw., aber wir können es hier auch mit Programmen
machen Also lass es uns machen. Mal sehen, wie es aussieht, wenn
wir es auf diese Weise machen, kompilieren. Da wir
viele Vektoren haben, kann die
Kompilierung viel Zeit in Anspruch nehmen. Und lassen Sie uns die Reichweite der Kegel reduzieren. Ich möchte, dass sie wie
Scheinwerfer wirken und es auf 30 machen. Ich möchte, dass es auch 30 sind. Kompilieren. Schau, wie sie jetzt aussehen. Ich möchte
diesen Scheinwerfer ein
wenig drehen , also wähle diesen Scheinwerfer speziell aus und drehe ihn. Sehen wir uns die Gesichter
hier auf diese Weise an. Also, wenn du sieben Grad hast, kompiliere mit dem
Moment, ich will nicht. Ich glaube, wir haben hier
zusätzliches Licht. Entferne es. Nur um zu überprüfen, ob sie hier zusätzliche
Lichter haben. Das tun wir. Und jetzt haben wir das Licht-Setup vielleicht sogar etwas mehr als 60. Diese Folien benötigen jetzt
etwas mehr Radius. Also lass uns 35 draus machen. Und was die Adhäsion
angeht, machen wir 35. Der innere Kern kann sein Lasst uns nur einer sein. Leid kann 25 sein. Kompiliere es, geh zurück. Das erwarte ich nicht
von dem Kegel. Gehen wir zurück zu vielleicht 25
und 2.500 sollten funktionieren. Und wenn du jetzt spielst, gibt es verschiedene Farben, und sie sollten ihre Farben ändern,
weil wir sie in unserem
vorherigen Plan so
eingerichtet haben sie in unserem
vorherigen Plan so
eingerichtet Schauen wir uns nun unser Spotlight
an 2004 habe ich meine Werte für
15 15 geändert. Und jetzt haben wir
dieses Ergebnis Scheinwerfern,
diesen Farben Und jetzt werde ich versuchen, sie zu bewegen, während
sie die Szene bewegen Aber vorher gefällt mir
nicht, dass unser Material diese Farbe hat. Wenn Sie bewegliche
Lichter haben, würde
ich mein
Material gerne etwas dunkler haben. Und vielleicht ist das von vornherein etwas
zu dunkel. Lass es uns ein bisschen heller machen,
aber nicht so hell. So können wir alles sehen, ohne dass uns etwas die Augen
verblendet Ich will keine Schatten
von der Sonne, also verschieben wir sie bis wir die Position erreicht haben, mit
der wir zufrieden sind Etwas in der
Art? Nein. Bei so etwas tickt man einfach herum bis man es so
hinkriegt, wie man will. Ja, das ist viel besser. Ja, ich will nicht, weil wir viele
Farben für Lichter haben werden.
Ich möchte nicht, dass die
Farben kollidieren, also mache ich
eine dunklere Farbe. Und lass uns
die Rauheit auf eins reduzieren, weil ich nicht möchte, dass das Material
zu stark glänzt Lass es uns eine dunklere Farbe
für das Lass uns wissen, lass uns C-Blau machen Lass uns sehen.
Dunkelblau. Der erste. Die zweite Farbe
kann viel dunkler sein. Vielleicht könntest
du es noch dunkler machen. Speichere es und schau es dir an. Es ist in Ordnung. Und jetzt drücken Sie Play. Jetzt haben wir Farben, die ziemlich leicht zu erkennen
sind, und jetzt möchte ich
sie leicht verschieben. Also werden wir
eine neue Funktion dafür erstellen. Und lass es uns hier
mit einer Zeitleiste machen. Wir werden hier
also eine Zeitleiste
erstellen
und hier
einen Sequenzknoten hinzufügen. Wir werden eine Sequenz haben. Wir werden das einmal machen und wir werden einen
Do Once-Knoten hinzufügen. Einmal machen. Warte, Entschuldigung. Wir müssen das kein einziges Mal tun.
Wir brauchen nur einen Zeitplan. Zeit : Ja. Ich entschuldige mich Ich bin mir nicht sicher, warum ich
so lange danach suchen muss. Aber lass es uns so machen,
damit es nicht im Weg ist. Wir werden einen Zeitplan haben. Und diese Zeitleiste,
wir werden es von
Anfang an abspielen und wir werden
es, wenn es fertig ist, mit einer
Verzögerung von, sagen wir, 1 Sekunde und wir werden es erneut abspielen. Jetzt werden wir ein Theaterstück spielen. Der Grund, warum wir das tun werden
, ist, dass
wir eine Spur hinzufügen und wir werden eine Vektorspur
hinzufügen. Und wir werden mit der Timeline ein bisschen
kreativ werden. Also
können wir jetzt Z,
X und Y haben und wir werden etwas
ganz anderes machen. Wir werden eine
Variable erstellen und diese
Werte in der Zeitleiste nach dem Zufallsprinzip anordnen
20. UE5 FC07 06: Wenn wir uns nun diese
Zeitleiste ansehen, die wir gerade erstellt haben, haben
wir einige Vektoren, die
wir hier einfügen können, und wir können
diese Vektoren auf die Rotation
unserer Lichtscheinwerfer übertragen, um sie um die Lichter herum
zu bewegen Aber da es sich nur um
eine Reihe von Werten handelt, die Sie eingeben , wären sie jedes Mal
dieselben Also würde jeder einzelne
Zeitplan enden. Wir würden von Anfang an spielen oder dort, wo es beim letzten Mal aufgehört hat, und es wird wieder von vorne beginnen. Das ist nicht das, was ich für dieses Level
will. Ich möchte, dass sich die Lichter
zufällig ein wenig in
eine bestimmte Richtung
bewegen ein wenig in
eine bestimmte Richtung
bewegen und dann zurückgehen. Also werden wir die Art und Weise ändern
, wie wir unsere Zeitleiste verwenden. Wir öffnen unsere Timeline
und entfernen diese
Spur, die wir gerade für
Verte-Vektoren erstellt haben, und
fügen eine Float-Track Und dieser Float-Track wird dazwischen liegen, sagen wir vorerst,
lassen wir ihn so, wie er ist Wir werden es Alpha nennen. Wir werden es kompilieren und zurück
zum Event Graph gehen. Und jetzt haben wir einen Float-Wert , der im Moment nirgendwohin führt. Wir werden es machen Lass
es uns in Lass uns es machen. Lichter drehen sich 8 Sekunden lang, und in 8 Sekunden wird
der Wert durch Klicken mit der einfachen
Umschalttaste wieder eingestellt. Der Wert steigt von Null auf 28. Acht Sekunden. Acht Sekunden, wir gehen auf acht. Und stellen wir sicher, dass wir es richtig eingerichtet
haben. Ja, wir haben es
richtig eingerichtet. Also klicken wir mit der Umschalttaste auf den Keypoint bei Null, auf Wert Null
bei 8 Sekunden auf Wert eins Dieser Alpha-Knoten ermöglicht es
uns nun , den Wert 0-1 zu
setzen, und der Wert wird in 8 Sekunden auf 0-1
steigen Nun, lassen Sie uns diese
Zeilen entfernen, um die Übersicht zu behalten. Und wir werden
einen Arp-Vektorknoten hinzufügen. Also ein Arp-Vektor. Und wir werden hier unsere Alpha einsetzen
. nun zu erklären, was arp macht, geht die
arp-Funktion im Wesentlichen schrittweise von Wert A zu Wert B,
abhängig vom Alpha-Wert Alpha ist normalerweise ein Wert von 0-1. Und bei Null ist es
A, bei Eins ist es B.
Und das ist nützlich, wenn man diese Zeitleiste
benutzt , um die Position
oder Rotation schrittweise zu ändern oder so. Sie möchten im Laufe der Zeit auf Eventi
verzichten. Eventi wird zunächst einmal nicht so
flüssig sein wie
die Verwendung von LAP Und zweitens ist es
mehr Leistung. Also werden wir es vorerst
testen, wir werden
einen Wert haben. Wir spielen von Anfang an und geben die Zeichenfolge mit diesem Wert aus. Oh nein, wir können es nicht vorhersagen. Wir haben zu viele
Lichter in der Szene. Stattdessen
werden
wir die Lichter bewegen. Jetzt brauchen wir eine Rotation, aber durch meinen Fehler habe ich einen LARP-Vektor
erstellt Lasst uns stattdessen diesen
Arp-Rotator reparieren, da wir mit Rotation
arbeiten werden Und wir werden die
Rotation des Scheinwerfers erreichen. Lass dich nicht bereuen, ich entschuldige mich. Drehung einstellen. , die relative Drehung Ich glaube, die relative Drehung ist die richtige. Der Unterschied zwischen
einer relativen Rotation und einer Weltrotation besteht darin dass
die Drehung relativ
zu ihrem übergeordneten Objekt der Rotation des Scheinwerfers
relativ zum statischen Netz entspricht. Aber eine Weltrotation wäre eine Rotation in der Welt selbst. Es mag etwas kompliziert sein, es sofort
zu verstehen, aber es ist einfach das, was es ist. Sie müssen
die Unterschiede testen, wenn Sie Unreal verwenden, also werden wir das hier veröffentlichen. Also was das machen wird, wir werden einen Wert zwischen Null
und B
bekommen und Alpha wird das für uns
tun, langsam rotieren Lassen Sie uns vorerst feste Werte
eingeben. Der Spotlight-Wert ist
derzeit 90 Y, und der Rest ist Null, Null. Nehmen wir an, wir wollen
, dass es zwischen 90 und 30 liegt. Wir kompilieren es, speichern es, gehen zurück zum Level
und drücken Play Es passiert nichts.
Die interessante Frage ist, nichts passiert, weil
wir
den Wert oder Interessant nicht ändern . Lass uns aufhören. Ja. Das Problem ist, dass die Scheinwerfer derzeit nicht beweglich
sind. Gehen wir also zurück,
klicken und bewegen. Nun, das ist
rechenintensiver,
aber für das, was wir
versuchen zu Jetzt haben wir Scheinwerfer,
die sich bewegen. Da sie verschwunden sind, weil sie nicht genug Radius haben, können
wir diesen
Radius ganz einfach vergrößern Gehen wir also zum Viewport. Und derzeit haben wir 2000. Lass uns vorerst 8.000 draus machen, Rest kompilieren, zurück gehen Lass uns sehen, wie es jetzt funktioniert. Und schauen wir uns an, wie
die Lichter derzeit eingerichtet sind. Wir bekommen also
dieses seltsame Licht. Auch hier liegt es hauptsächlich an
der Art und Weise, wie es gedreht wird. Lassen Sie uns nun einen Blick auf unsere Lichter werfen und herausfinden,
warum diese seltsamen
Artefakte auftreten. Wir bekommen keinen richtigen Schatten. Wenn wir also
das Licht selbst drehen, ist das in Ordnung, aber
wir drehen eigentlich nur
den Blueprint-Scheinwerfer Wir
drehen die Lampe nicht wirklich. Wenn wir das tun, bekommen
wir einen Grenzwert und der
Grund für diesen Grenzwert ist
, dass das Licht mit dem Netz
kollidiert und wir dadurch
diesen seltsamen Um dies zu verhindern, können wir
Lichtkanäle usw. so modifizieren, dass sie nicht mit dem Licht
des Netzes kollidieren, es bei Lichtkanälen
ignorieren
und vielleicht können wir
sogar ein neues Netz erstellen, und vielleicht können wir das uns dieses Problem
nicht bereitet Der einfachste Weg, das Problem zu beheben, besteht darin
, das Objekt ins Rampenlicht zu stellen
, es etwas außerhalb des
Netzes zu platzieren, zu speichern und Und jetzt werden wir eine
solche Reichweite haben. Jetzt deckt es
das gesamte Gebiet ab, was genau das ist, was ich wollte. Aber wir wollen nicht, dass das
jedes Mal
genau auf die gleiche Weise passiert . Was wir jetzt tun werden, zunächst werde
ich das ein bisschen organisieren. Mir hat nicht gefallen, wie
überladen es ist. Und wir werden
diesen Lenode haben und wir
werden das
alles herunterziehen . Hier im Rampenlicht. Der Wert, den wir gewaltsam eingegeben haben
, ist die ursprüngliche Position oder
Drehung des Lichts,
die 90 ist, und wir reduzieren sie auf 30, um
sie in der Szene zu bewegen Wenn wir jedoch einen größeren Bereich
angeben wollen, müssen
wir auch andere Werte
ändern Wenn Sie es also so ausdrücken
und die
Drehung auf der Z-Achse erhöhen , können
wir es auch nach links
und rechts bewegen. Schauen wir uns jetzt an, die Drehung, die wir ihr geben
möchten
, liegt zwischen 90 und -90 Wir haben also einen Rotationsbereich. Was wir also tun können, ist
zum Beispiel
eine Z-Minus-Rotation und eine P-90-Drehung. Auch dies ist nicht endgültig. Ich mache es nur
zur Demonstration. Und wenn wir Play drücken, haben
wir jetzt rotierende Lichter.
21. UE5 FC07 07: Wir haben unser Licht
hier, und wir wollen all unsere diesbezüglichen Referenzen durch
dieses
ersetzen Wir können also zu unseren Lampen gehen, sie alle
auswählen, mit der rechten Maustaste klicken und die ausgewählten
Schauspieler durch bLight ersetzen können Eigenschaften kopieren
oder ignorieren, wir
werden keine Eigenschaften kopieren, also klicken wir einfach
darauf und wir werden
sie ersetzen Wir werden dem eine Sekunde Zeit geben, und jetzt haben wir sie alle
ersetzt. Sie sind alle mit
zu viel vergrößert. Also lasst uns sie verkleinern. Lass uns eine Skala machen Und jetzt
sind sie alle auch stark skaliert. Ich würde sie auch gerne ein
bisschen machen , ja, lass uns einfach etwas davon
weglegen und lass uns ändern Keine Rotation, Rotation zurücksetzen. Lassen Sie uns außerdem um 90
Grad -90 Grad drehen. Und jetzt haben wir alle unsere
Lichter neu ausgetauscht und können unsere
Würfellogik erneut testen Sagen wir es so
und wählen unsere Lichter erneut aus. Und wir können einfach auf Target klicken
und auf diesen Würfel zielen. Drücken Sie Play. Nichts passiert, da wir das Häkchen hier entfernt haben. Lass es uns einfach für eine Sekunde hinzufügen. Ruhen Sie es aus, kompilieren Sie es,
speichern Sie es auch. Jetzt folgen alle Lichter in unserer
Szene diesem Würfel. Was ganz nett ist. Nun, wir lassen diese Eventiq diese
Notizen vorerst in Ruhe Es ist unsere Aufgabe
, dem Ziel zu folgen. Fügen wir sie alle
unter einem Kommentar hinzu. Folgen Sie den Zielen. Wir werden
es vorerst so belassen. Und wir werden zu
unserem Lampenentwurf zurückkehren und anfangen, einige Funktionen zu
kopieren Lassen Sie uns das entfernen, da
wir es nicht benötigen. Wir werden das für
zufällige Lichter als solche benötigen. Lass uns das benutzen. Ich möchte dafür kein Array
verwenden,
da ich stattdessen zufällige Integer- und
Float-Werte dafür verwenden werde . Also werde ich
das kopieren und hier einfügen. Wenn ich kompiliere, werde ich einige Fehler
bekommen, Variable
erstellen, Variable erneut erstellen
, erneut kompilieren. Jetzt funktioniert es so
, wie es soll. Und jetzt haben wir ein Scheinwerferlicht, also macht es sich einfach bezahlt von unserem Spotlight hier, da
sie den gleichen Namen haben. Und lassen Sie uns das einfach testen
und sehen, wie es funktioniert. Von Anfang an, wenn das
Event beginnt, gibt es
hier derzeit keinen Wert, also werden wir
bald etwas hinzufügen, lass uns auf Play drücken. Es passiert nichts. Nicht wirklich. Die Lichter schauen
einfach an einen
seltsamen Ort. Also lass es uns flexibel machen. Also sollte es -90
sein, mal sehen. Unsere Lichter sind interessant. Oh, wenn Sie es nicht an Evans Startplatte
befestigt haben. ich entschuldige mich. Das ist
nicht die richtige Ich verwechsle ständig den
Lampenentwurf mit einem neuen. Lass uns gehen. Es
funktioniert immer noch nicht so, wie es sollte. Schauen wir es uns also an. Ging Play Timeline. Und in der Timeline machen
wir etwas falsch, indem direkt zu diesem Wert gehen, wir sollten die relative Rotation
einstellen. Danach gehen wir zu
diesem Wert und lassen Sie uns spielen. Okay, jetzt
schauen sie alle nach unten. Wir haben noch keine zufälligen Farben
oder was auch immer eingerichtet, also werden wir es gleich
reparieren. Und wir haben unseren
Zeitplan, unsere Verzögerung. Das ist zu unorganisiert und es macht es
komplizierter als es sollte, also werden wir das ein bisschen
organisieren Lassen Sie uns die
ganze Platzierung ändern. Fügen wir jetzt einen Kommentar
hinzu und nennen
ihn ihn Random Mover But Wir werden das kompilieren
und jetzt haben wir es organisiert Wir werden
diesen Struktur-Pin aufteilen und ihn
nach dem Zufallsprinzip sortieren Zufälliger Slot in Reichweite. Wie wir bereits herausgefunden haben,
spielt X bei
Lichtern keine allzu große Rolle. Mm. Schauen wir uns jetzt unsere Werte
an. Was? Lassen Sie uns die Werte für die
Spotlight-Pausen auswählen , nur für den
Fall, dass wir genauso gut alle Blueprints
auswählen können
,
da sie überprüfen können, ob die Aktivierung für alle
korrekt ist Und wir werden
dafür sorgen, dass unsere Scheinwerfer seltsamen Rotationen erscheinen. Lassen Sie uns sie auch reparieren. Wir
reparieren es anhand des Bauplans Ich repariere es für alle. Stellen Sie also sicher, dass wir keine seltsamen zufälligen Rotationen
haben. Klicken wir auf den Scheinwerfer, um ihn
zu testen und einen Blick darauf zu werfen. Y X ist klar, da auch das XXs
wichtig ist, und Z wird wichtig sein, wenn
wir es von Grund auf neu betrachten In
diesem Fall sind also all unsere X wichtig, und das sollte auch so sein. Nun stellt sich die Frage, wie groß die Reichweite
ist, die wir für sie haben
wollen. Nehmen wir an, ich möchte
nicht, dass die Lampe
mehr als 40 -40 oder Null hat mehr als 40 -40 oder Null Jetzt, -90 und 40. Für die Y-Achse
, also diese, sollte das
Minimum also -90 sein, MX sollte -40 sein Lass es uns wiederherstellen.
Für unseren X-Wert. Lassen Sie uns wieder 40 und -40 machen. Ich möchte nicht, dass der Bereich
zu groß ist,
da dadurch die
Lichter
ineinander verschwimmen (-40)
und was die Z-Achse angeht, ist
es so ziemlich 180 Grad Also machen wir -90,
immer noch positiv 90, es ist nur eine allmähliche Drehung, und wir wollen es nur auf einer Seite haben, also begrenzen wir Also, speichern Sie für alle
Fälle alles, spionieren Sie. Ich habe Lichter, die sich zufällig
bewegen. Sehen Sie hier, was mit
unseren Scheinwerfern los ist. Wir haben zwei. Mal
sehen, vergewissern Sie sich. Das ist momentan ein Wert von Null
, Licht, Scheinwerfer und so. Das ist Null, und es ist -90 und plus 40. Haben wir mit YXS einen Fehler gemacht? Minus oh, oh, das ist das Problem. -40 bis -90. Ich habe beim Abnehmen einen Fehler gemacht
. Ich glaube, das sollte
richtig sein. Die Zahl, die wir wollen, liegt zwischen -90 und -40. Lass uns noch einmal testen Interessant, wie sie
sich außerhalb der Radios bewegen. Z geht es gut. X. Es ist auch in Ordnung. Ich vermute, es ist
eine Kombination von drei zufälligen Werten, die dieses
Problem verursacht Also, wenn Sie X auf Null setzen auf Nein, Null, nicht Also lasst uns vielleicht sichergehen, dass wir
nicht mal auf -90 kommen. Machen wir es minus, sagen wir
Null. Null ist vielleicht zu viel. Sagen wir also Minus und
erhalten einen Wert, der okay ist. Der Grund, warum einige Lichter nach
draußen gehen , liegt in
der Art und Weise, wie Spotlight ihre Zahlen
erhält. Wenn Sie also diese
Zahl kopieren, einfügen, auf Spotlight klicken
und diese Zahl einfügen, erhalten
wir denselben Wert,
und
der X-Wert ist nicht der Grund. Der Y-Wert ist. Wie Sie sehen können, kopieren wir jetzt diesen Wert, weil
diese Akteure im Gegensatz zu
früheren
Lichtspielern die gleiche Form haben. Und die Art und Weise, wie wir
unseren Akteur dieses Mal implementiert haben macht es schwierig, nach draußen zu gehen und
dieselben Parameter zu verwenden. Was wir also tun müssen, ist
die Y-Achse zu verwalten. Lass es uns so machen. Wir haben X- und Z-Achsen
für unsere Spielereien. Wenn Sie also die Y-Achse
zum Beispiel auf 50 setzen, bin ich mir sicher, dass es nicht einmal richtig
funktionieren wird Unser Scheinwerferlicht geht auf 50, das heißt 50
ganz oben am Himmel. Also lass uns -50 draus machen. Kompilieren Sie und drücken Sie Play. Auch hier ist -50 in diesem Teil
der Szene ganz oben. Wir können
das nur ändern, indem wir uns hier
ins Rampenlicht Wir trennen uns. Wir setzen die Rotation auf Null, wir lassen sie
nach oben schauen , was
nicht das ist, was wir wollen. Und wenn Sie
es aus dem Mesh
selbst entfernen , kompilieren Sie es und setzen Sie es zurück. Da wir
es jetzt aus dem statischen Netz entfernt haben, nimmt
es die Rotation
des statischen Netzes nicht mehr auf.
Jetzt sind sie also bei Null. Also lass es uns jetzt versuchen. Jetzt haben wir das Problem,
dass sie nur noch eine
negative Richtung einschlagen, also werden wir uns wieder ins Rampenlicht stellen und
uns
die Werte ansehen, die wir jetzt brauchen. Der Wert -60 auf
dieser Seite ist innen. Und wenn wir uns
jetzt diesen Ort ansehen , ist positive 60 drin Wir wollen nicht, dass es
zu
stark randomisiert wird und
die Grenzen auf der Y-Achse Stattdessen können wir also einen Wert in der Zwei Achsen und dann
minus Zertifikat und Zertifikat. Wir werden das kompilieren und spielen. Das wird getan haben.
Es wird zwar einige Lichter , die nach draußen gehen, nur weil der Zufallsgenerator so funktioniert Das ist in Ordnung. Wir werden die Obergrenze
für alle
reduzieren , weil wir nicht
wollen, dass sie zu sehr über
die Grenzen gehen, und ich werde sie sogar auf 20
und 20 reduzieren
, da ich es vorziehen würde, wenn
sie daran erinnern, dass
das X in Ordnung ist, da es nur Rotation auf den
hundert 80 Grad Und wir werden diese
seltsamen Lichter haben, von denen
einige
ausgehen, was in Ordnung ist Wie Sie sehen können, bewegen sie sich
einfach zufällig. nicht die idealste Lösung, Natürlich nicht die idealste Lösung, aber sie ist in Ordnung. Wir könnten auch zusätzliche
Funktionen hinzufügen ,
damit sie
nur auf diese Stelle
in der Mitte abzielen , aber dafür müssten wir eine Menge komplizierter
Vektorberechnungen durchführen, was wir nicht tun werden In diesem Fall könnten wir
auch Berechnungen auf der
Grundlage des Vorwärtsvektors Wir könnten
sie zum Beispiel ihren
Vorwärtsvektor berechnen lassen und nur auf die
Stelle zielen, auf die sie schauen, aber das
werden wir in diesem Fall nicht tun. Lassen Sie uns das jetzt testen. Wir haben unseren Würfel ausgewählt und jetzt holen wir uns
Event B und spielen. Und hier, lassen Sie uns vorerst ein
Event-Häkchen hinzufügen und sehen,
wie es funktionieren würde. Und es funktioniert wie es sollte, außer diesem einen
Licht, glaube ich, und das liegt daran, dass ich die Lichteinstellungen
geändert habe
und vergessen habe, es auch bei diesem Licht
wieder einzustellen. Denken Sie daran, welche
Schauspieler Sie geändert haben. Lassen Sie diesen ändern, der
nicht richtig funktionierte, und diesen, der
nicht richtig funktionierte. Und jetzt
sollte alles so sein, wie es ist. Jetzt sind wir im Wesentlichen
mit der zufälligen Lichtplatzierung fertig, was vorerst in Ordnung ist. Wir werden hier
eine Sequenz hinzufügen, und das wird 01 sein. Für Null werden wir
unsere zufällige Farbe hinzufügen. Lass uns anfangen zu
spielen und bei Null hatten
wir diese Funktion zum zufälligen
Farbwechsel aktiviert. Also werden wir das kopieren
und wieder hierher kopieren. Wenn Sie die Funktion kopieren, werden sie Sie fragen, ob Sie etwas
erstellen möchten oder nichts tun möchten. Wir erstellen es und wir
werden das oben drauf haben. Wir werden es hier hinstellen. Entferne diese Notiz vorerst. Wir haben das zuerst und
wir haben unsere Filiale. Wir werden
diese Variable erstellen , da wir sie später benötigen
werden. Wir werden den
Namen später ändern. Und wir haben diese Funktion für zufällige
Farben eingebaut und kompilieren sie für alle
Fälle. wir sicher, dass unsere Variablen korrekt benannt
sind. Wir haben die Rotation mit relativer Rotation,
wir haben das Ziel. Pflanzen sind nicht notwendig. Kompilieren Sie und
schauen wir uns unseren zufälligen Farbknoten an. Und schauen wir uns hier unsere
Zufallspolarfunktion an. Wir haben das, was wir gerade kopieren
werden. Sie könnten wahrscheinlich
alles kopieren und wieder in
die Waage bringen. Raus, wieder rein. Wir werden
diese Variable
erstellen, eine variable Lichtfarbe erzeugen. Kompilieren. Geh zurück zum Licht, ändere
die Farbe,
stelle die Lichtfarbe ein, Poppy,
geh und sei höflich Diese Lichtänderungsfunktion,
die Lichtfarbe, Haufen, der sie einsetzen
wird Lass es uns jetzt testen.
Und es funktioniert. Und wir haben zufällige Farbwechsel alle paar Sekunden, wie
wir es zuvor getan hatten. Das Auslaufen der
Lichter ist zwar nervig beeinträchtigt aber unser Gameplay
nicht so
sehr, da wir zusätzliche
Lichtfunktionen
haben werden ,
die dafür sorgen, dass Licht bestimmten Schauspielern
folgt Diese Funktion hatten wir jetzt für
das Öffnen und
Schließen von Türen Wir werden das kopieren, aber wir werden
es später wiederverwenden Wenn wir die Funktion ändern,
konnten wir Delay nicht kopieren. Wir können es einfach selbst hinzufügen. Wir können nicht. Ich entschuldige mich Wir können nicht, weil
es in der Funktion ist. Wir müssen hier etwas hinzufügen. Und lassen Sie uns auch
diesen Abschnitt kommentieren. Zufällige Farbe. Lass es uns lila machen.
Tesaro zufällige Farbe Und wir haben jetzt eine
Veranstaltung der offenen Tür und eine Veranstaltung mit verschlossener Tür, aber ich werde sie umbenennen. Einer von ihnen
wird ins Visier genommen. Der andere ist Target Score. Und wir werden das
ändern, das sind zwei. Mal sehen, was
der richtige Name für
ein Ziel wäre , das als Ziel erzeugt wurde. Das so genannte Ziel wurde gespawnt. Und wir werden das haben. Vorerst werden wir
es dabei belassen. Wir werden das später
wiederverwenden, jetzt haben
wir unser System für Licht Wählen wir ein
Speedboard aus und drücken auf Play. Und aus der
Sicht der ersten Person sieht das gut aus. In der Szene geht etwas Licht
herum und wir haben unseren
Würfel in der Mitte. Eines der Dinge, die ich jetzt tun
möchte, ist, dass Licht auf unseren Charakter abzielt wenn er
sich bewegt. Also werden wir einen I-Knoten hinzufügen. Und wenn das Ziel in der Nähe ist, folgt
das Licht
dem Zielspieler. Und wenn das Ziel
nicht nah genug ist, werden
wir das Licht nach dem
Zufallsprinzip anordnen Wenn Sie sich also an
das Ziel erinnern, das wir hatten, lassen Sie uns diesen
Zielknoten jetzt von hier entfernen Oder um genauer zu sein, müssen
wir einen
Set-Actor-Knoten und einen Set-Target-Node hinzufügen. Lassen Sie uns also den Zielknoten festlegen. Und wir werden es so einstellen
, dass wir hier eine Eingabe benötigen. Wir werden
den Spielercharakter annehmen. Lassen Sie uns das vorerst so
machen. Wenn die Ereignisse beginnen, werden
wir das
Event Play zu unserem Ziel machen. Wenn das Event angekreuzt wird, folgt die Rotation des
Schauspielers. Oder jetzt werden wir die Zeitleiste
entfernen. Und drücken Sie Play. Also, das Spiel beginnt, wir richten alle Lichter auf den Spielercharakter.
Das wollen wir nicht. Wir wollen, dass nur die nächsten
Lichter zwischen, sagen
wir, den 500
Einheiten am nächsten sind, um dem Schauspieler zu folgen.
22. UE5 FC07 08: Nun, Sie berechnen
die Entfernung zwischen zwei Akteuren in den drei
Welten anhand von Vektoren. Also was wir dafür tun müssen ist Spielercharakter zu bekommen. Wir haben es hier. Also lass es uns vorerst
einfach kopieren. Und wir werden den Standort des Schauspielers ermitteln. Kopiere das nochmal,
platziere das und hier. Und wir subtrahieren eins vom anderen und erhalten den Vektor Oh, wir brauchen keine
Vektor-Vektor-Links. Lassen Sie uns vorerst die Zeichenfolge
mit diesem Wert drucken. Und lassen Sie uns ihn jetzt
in ein Ventiq einbauen. Kompilieren, speichern, erneut abspielen. Oh, ich entschuldige mich. Wir müssen sicherstellen, dass wir es
in die Zeichenfolge einfügen ,
nicht in die Dauer Kompilieren, Play drücken. Wie Sie sehen können, berechnen
die Lichter die Entfernung zwischen der Figur
und sich selbst. Und die nächste Einheit, die ich hier
sehen kann, ist etwa 1.400. Was wir nun tun können, ist,
diesen Wert zu haben, den wir bekommen. Und wenn dieser Wert kleiner ist
, dann sagen wir 2.500
oder sagen wir sogar 2000. Es stimmt, wenn dieser Wert auf Eventi
kleiner als 2000 ist, machen
wir es so Wenn das stimmt, folgen
die Lichter dem
Charakter, der auf Play drückt Jetzt siehst du
, dass wir Lichter haben, die uns folgen, und wenn wir uns bewegen,
folgen uns
die nächstgelegenen Lichter sofort. Und wenn wir den Bereich verlassen, nimmt die Entfernung
ab
und der Bullingwert sinkt, dann folgt uns das Licht nicht mehr Natürlich wollen wir nicht, dass
es uns sofort trifft. Wir werden gleich eine Zeitleiste
dafür verwenden. Aber im Moment ist das in Ordnung, da wir gerade
das Targeting-System testen. Auch hier fällt mir auf, dass
wir ein Licht haben , dessen
Werte ich verdrehe. Wir werden
das wiederherstellen, speichern und noch eins Ich bin mir nicht sicher, warum ich so
viele Werte angepasst habe, aber das ist es Stellen Sie sicher, dass Sie aufräumen nachdem Sie die Werte zu
Testzwecken bearbeitet haben, und machen Sie es nicht wie Nun, diese Logik funktioniert. Wir können den Standort, die Entfernung zum Geschehen ermitteln
, um sie zu verdeutlichen. Aber wir wollen nicht, dass es
auf Aventi ist. Das ist in Ordnung. Und was wir jetzt brauchen ist eine richtige
Follow-Target-Funktionalität Wir werden das ein
bisschen erweitern und alles drin haben, und lassen Sie uns etwas zusätzlichen
Platz hinzufügen, damit wir arbeiten können. Problem, das wir jetzt haben
, ist, wann wir
diesen Scheck bekommen sollten und wann wir mit der
Rotation
beginnen sollten und wie? Wir wollen das nicht mit den Eventi
machen, da sie sehr leistungsstark sind Stattdessen
können wir es statt bei jedem
Frame alle paar Sekunden
überprüfen Und so einfach wie wir das machen können, können
wir es dann in der Reihenfolge
hier machen und tatsächlich verhindern, dass
diese Zeitlinie passiert. Zweitens, lassen Sie uns das entfernen. Sicher. Also werden wir das umgehen und wir werden
es später brauchen. Wir haben diese zufälligen Farben , die wir nicht immer auslösen, also werden wir sie nicht anfassen, sondern wir wollen
nur, dass sie ausgelöst werden. Lass uns das Sekunden
draußen machen , falls es
kein Spielerziel gibt. Sie können
hier also einen Zweigknoten platzieren und ihn
durch den Zweig laufen lassen. Und wenn es falsch ist, werden
wir diese
Funktion wie zuvor haben. Und wenn es wahr ist, werden
wir
das im unteren Bereich ablegen , wo
wir
dem Spielercharakter folgen werden. Nun, wir können das
so machen, dass ich es wieder
in den Wert hier setze ,
anstatt zwei Zweige zu haben, das ist unnötig. Lassen Sie uns eine Zeitleiste hinzufügen. Und diese Zeitleiste kann
jetzt auf ähnliche Weise funktionieren. Wir werden haben einen LARP-Rotator Und wir werden unser Alpha-Set
hier
haben und schauen uns die Rotation an Die neue Rotation wird diese
und die Rotation der Schauspieler sein. In diesem Fall wollen wir, dass das
Licht vollständig eingeschaltet wird, nicht nur das Scheinwerferlicht. Lassen Sie uns daher hier
einige Parameter ändern. Wir haben nur das
Rampenlicht bewegt. Aber mit unserem neuen Licht können
wir das
gesamte Licht selbst bewegen. Wir sind nicht
auf unser Rampenlicht beschränkt, also stellen wir sicher, dass wir
das korrigieren, bevor wir weitermachen. Dieser relative Parameter ist in Ordnung, aber er sollte nur eine
Drehung sein, nicht ein relativer. Und wir
werden den Standort der Schauspieler ermitteln. Rotation der Schauspieler. Holen Sie sich Rotation Actor. Wir werden diese Schauspieler
abwechselnd einsetzen. Wir
werden uns bewerben. Sie werden es festlegen, und wir werden ganz
am Ende das Spotlight
nicht drehen, Spotlight
nicht drehen da es keinen wirklichen Grund gibt, es
nur mit Spotlight zu machen,
wir werden
das nochmal kopieren und die Rotation des Schauspielers
und des Schauspielers selbst
einstellen, wir bekommen
einen neuen Rotationswert
und wir aktualisieren ihn wir werden
das nochmal kopieren und Rotation des Schauspielers
und des Schauspielers selbst
einstellen , wir bekommen . Jetzt probieren wir es
noch einmal aus, drücken Sie Play. Die Lichter
bewegen sich so, wie sie sollten. Einige von ihnen
blieben an Ort und Stelle , weil wir den Zweigknoten hatten. Wir bewegen uns hier und die Lichter, denen wir am nächsten sind
, bewegen sich nicht. Aber die Liste
funktioniert so, wie sie sollte. Lassen Sie uns
mithilfe von Simulieren einen Blick darauf werfen und
sehen, wie die Lichter funktionieren. Ja, sie bewegen sich. Alle. Okay. Nun, wir hatten einen Fehler und
dieser Fehlermodus, weil wir versucht haben, auf den
Spielercharakter zuzugreifen, und Spielerdarsteller existierte nicht als wir simulierten,
was in Ordnung ist Wir brauchen
ihn bei Simulationen nicht wirklich. Und hier, stimmt, lass es uns auf True
versuchen. Das wird hier ausgelöst. Unser zweiter Zeitplan
wird ausgelöst. Und dieser Zeitplan
kann kürzer sein. Also lass uns eine Sekunde draus machen. Und der Wert dafür
kann auch eins sein. Wir möchten, dass die Lichter sofort
reagieren, wenn
der Spieler sich in der Nähe befindet, um
ihm zu zeigen , dass er ihn mit Licht überschütten soll. Und wir haben diesen LARP-Knoten
, der jetzt
den Standort des Schauspielers
und die Position des Ziels berechnet , und wir setzen unser Ziel
als Spielerfigur, was wir auch tun
werden Wenn also die Vektorlänge
dazwischen nahe genug ist, werden
wir unser Ziel festlegen Nachdem wir unser Ziel festgelegt
haben, werden wir von Anfang an spielen Wir werden
unsere aktuelle Rotation larpieren , was
wir der Gerechtigkeit entsprechend tun werden Indem wir es festlegen, werden
wir natürlich unsere eigene Rotation festlegen Und diese Rotation
wird verwendet, um lauern, wenn wir uns
entlang der Timeline bewegen.
Wir machen im Grunde
genau das, was wir hier getan haben, aber mit nur ein paar
geringfügigen Änderungen Also werden wir das auf diese Weise
machen. Lassen Sie es uns jetzt testen. PlesPlay und es funktioniert nicht so, wie es sollte Wir haben unsere Alphas, wir
haben von Anfang an unser Spiel. Wir haben unsere Updates nicht. Das liegt daran, dass wir diesen Knoten hier
nicht hinzugefügt haben. Wir müssen das aktualisieren, und wir sollten wahrscheinlich auch, wenn es fertig ist, go back zum
Zweigknoten oben
hinzufügen. Drücken Sie auf Play. Nun, es ist ziemlich seltsam. Wir erhalten nicht die richtigen
Werte, und wie Sie sehen können, zeigen die Lichter oben
in eine seltsame Richtung. Schauen wir uns an,
was hier passiert. Wir haben eine
Rotation der Schauspieler, womit ich mich selbst meine, und wir
ermitteln den Ort zwischen Ich und B. Aber wir aktualisieren ihn bei jedem Frame, was wir
nicht wollen. Wir wollen die
Rotation oder RB festlegen. Wir können diesen Wert einfach kopieren. Und leg ihn hier hin. Aber rekombiniere Struktur Pin. Geben Sie hier den Rhythmuswert ein. Hier der Wert für die Rotation B, von Anfang an
abspielen, den Wert auf B
setzen Lassen Sie uns das etwas genauer organisieren. Es gibt zu viele
Spaghetti-Codes. Geben Sie hier einen Wert zurück. Kompilieren, Speichern ist Abspielen. wir uns jetzt bewegen, wenn sie
nicht mehr nah genug dran sind, werden
sie sich nach dem Zufallsprinzip zusammensetzen Solange sie uns nahe sind, meine ich
mit ihnen
die Lichtquellen Sie werden anfangen zu reagieren. Das Problem ist nur, dass die Lichter
, die sich in der Mitte der
zufälligen Rotation befinden , nicht
wieder auslösen und
uns erneut ansehen werden , nicht
wieder auslösen und
uns erneut ansehen Der Grund dafür liegt
in der Art und Weise, wie wir unseren Zweigknoten
eingerichtet haben unseren Zweigknoten
eingerichtet Unser Filialknoten beginnt hier, und unsere zufälligen Lichter überprüfen ihn
nicht jede Sekunde, alle 8 Sekunden, weil unsere Zeitleiste
so eingerichtet ist Jetzt haben wir also ein kleines Problem, bei dem wir diesen Vorgang in
der Mitte unterbrechen und
diesen Zweigknoten
aktivieren müssen der Mitte unterbrechen und
diesen Zweigknoten , um zu überprüfen, ob er so
läuft, wie er sollte, oder ob
er einfach folgen sollte Das können wir tun, indem wir
das hier einen weiteren Zweig
in der Mitte nennen hier einen weiteren Zweig
in der Mitte Mir gefällt wirklich nicht, wie
dieser Paketcode aussieht, aber wir werden es vorerst belassen. Leider können wir unsere
Zeitpläne nicht in Funktionen umwandeln. Jetzt haben wir dieses
Licht, das jede Sekunde
aktualisiert wird , eigentlich in
jedem Frame Nachdem dies erledigt ist, könnten wir
nach jedem Update unsere Filiale erneut überprüfen Lassen Sie uns kompilieren und
sehen, was passiert. Es entstand eine Endlosschleife. Daher kann dies nicht angewendet werden. Infinite Loops werden Ihren PC
sofort zum Absturz bringen. Wir müssen uns also einen Weg einfallen lassen , der keine
Endlosschleife erzeugt, und der einfachste Weg, dies zu tun,
besteht darin, einen Verzögerungsknoten zu verwenden. Lassen Sie ihn
ganz am Ende alle 1 Sekunde auslösen. Wir könnten es niedriger machen,
aber das sollte in Ordnung sein. Und leg es in die Filiale. Kompilieren, spielen. Weil
es dort einen Verzögerungsknoten gibt. Dies ist keine
Endlosschleife mehr, da sie nicht
jede Sekunde unendlich ausgelöst Jetzt sind wir also im Visier und wenn wir
nicht mehr ins Visier genommen werden, randomisieren
sie sich selbst,
oder zumindest sollten sie Mal sehen, was passiert. In der Mitte der Karte sollte
es uns nicht ins Visier nehmen
können. Mal sehen, was passiert.
Die Lichter sind jetzt zufällig angeordnet. Da wir ihnen
jedoch keinen großen Bereich für die zufällige Anordnung gegeben haben, bewegen sich
die Lichter Stelle,
an der wir zuletzt gelaufen Also versuchen sie, uns zu folgen, und nachdem sie uns damit
fertig gemacht haben, versuchen
sie, nur noch in diese Richtung zu
gehen Stattdessen werden wir also die bearbeiten Werte
im Zufallsbereich Und die Art und Weise, wie wir diese
Werte haben, hier, richtig, richtig? Wir haben diese
Zufallswerte im Gleitkommabereich, in der Y- und Z-Achse. Aber was wichtiger
ist, sind zum Beispiel Achsen? Da sie
für mehr Klarheit verantwortlich ist, sind
Y und X X dafür verantwortlich, dass Lichter zu stark
aus dem Sichtfeld gehen. Aus diesem Grund
reduzieren wir ihren Random
Float Range-Wert. Jetzt müssen wir einen Weg finden,
um
sicherzustellen, dass das, was gerade passiert ist,
nicht passiert. Was hier passiert ist, war, dass wir ihre Schauspieler-Rotation
bekommen haben, und nachdem wir
ihre Schauspieler-Rotation festgelegt haben, wurde
dieses A hier zu ihrer
neuen Schauspieler-Rotation. Da es sich bei diesem A um ihre
neue Schauspielerrotation handelt, werden
sie nicht auf
ihre ursprünglichen Parameter zurückgesetzt Was wir also tun können, ist
einfach, anstatt jedes
Mal die
Akteur-Rotation vorzunehmen, oder um es klarzustellen, wenn wir
mit dieser Rotation fertig sind, können
wir
wieder einen Verzweigungsknoten auf demselben Zweig ausführen Da mir die Art und
Weise, wie das eingerichtet ist, nicht gefällt werden
wir es einfach noch einmal verwenden, wir werden es kopieren, eine Version davon hier
ablegen, wir werden einen Verzweigungsknoten hinzufügen
und
wir werden
dasselbe testen, ob es wahr ist, ob es falsch ist, und
das ist erledigt, wenn die 1 Sekunde verstrichen ist,
wenn die 1 Sekunde verstrichen ist, wenn der Charakter ins Visier genommen wird. Wenn das falsch ist, da es nicht mehr in Reichweite ist
und wenn es in Reichweite ist, wenn es in Reichweite ist, werden
wir
einfach alles hier
auf der untersten Ebene zurücksetzen. Und wenn es falsch ist, werden wir
die Rotation für A zurücksetzen,
sodass sie an die Rotation für A zurücksetzen, ihrem Anfangspunkt beginnen kann. Die anfängliche Drehung
unseres Scheinwerfers ist also Null, Null, Null. Wir können es genauso machen, also können wir einfach unsere Rotation einstellen. Hier bei 000, und das sollte alles
sein, was wir tun müssen. Danach können wir es
einfach hier einstecken. Lassen Sie uns nun sehen, wie
das funktionieren wird. Wir haben sie alle bei uns ausgelöst. Sie bewegen sich, sie
verlieren ihr Ziel. Und nachdem sie ihr Ziel
verloren
haben, funktionieren sie nicht mehr richtig. Sie sind immer noch
ziemlich weit oben. Und der Grund dafür ist, dass ich
die Rotation des Scheinwerfers
anstelle des eigentlichen Netzes gewählt habe , was wir verwenden,
es sollte -90 sein Achten Sie immer darauf, Ihre Werte zu
überprüfen und versuchen wir es erneut. Wir machen es wieder.
Sobald sie die Ziele verlieren, sollten
sie zu
ihren ursprünglichen Werten zurückkehren. Sie sollten nicht interessant sein. Auch hier machen sie dasselbe. Sie
verfolgen das Ziel richtig, aber sie sind viel zu viel. Oh, das ist ein weiteres
Problem, das wir haben , weil wir
die Werte später ändern. Anfänglich
wurde die Leuchtweite vom Scheinwerfer aus berechnet. Auch
hier habe ich nur wenige Scheinwerfer, die ich angefasst habe
und die ich nicht restauriert habe Sie nach
Ihren Tests immer auf, um nicht
in eine solche Situation zu geraten Das ist durchaus üblich,
aber
es ist trotzdem keine gute
Praxis, nicht aufzuräumen. Lass es uns restaurieren. Und wir haben unser Netz,
das tut mir leid, der Schauspieler ist es, der komplett
vertauscht ist. Wenn Sie sich also unsere
Rotation minus xs ansehen, geht
das bis in die Vergangenheit zurück. Wir wollen es nicht. -90 bis so haben wir jetzt, dass Sie es
sich auch ansehen können Du hast minus neun. T Die ursprüngliche Rotation
für diesen Schauspieler ist 180. Y. Ich Null, Null, wieder, das sind alles Probleme aus meinen Tests, die ich vorher nicht
behoben habe Dieser ist korrekter. Wir haben hier also die gleiche
Situation. Sie haben eine X-Achse, die
komplett negativ verläuft. Wir haben Null und wieder
Null. Ich bin mir nicht sicher warum. Kips öffnet. Und wir
haben dieses Problem hier. Nichts davon
ist wirklich zu wichtig. Als ob wir nur simulieren würden, erhalten wir ein ähnliches Ergebnis
wie zuvor. Das größte Problem
ist nun, wenn der Spieler nicht im Level
ist. Wir können
also einen Knoten
hinzufügen, der gültig ist. Wir können also einen Knoten hinzufügen, der gültig ist. Wenn das Ziel also gültig ist, können wir stattdessen tun,
wenn das Ziel gültig ist, es ist nicht gültig, wir fahren
einfach hier fort. Wenn es gültig ist, gehen wir zur Filiale. Dies ist vorübergehend, da ich nicht jedes Mal den gleichen
Fehler erhalten möchte. Wir werden nur noch einmal die Lichter
überprüfen, um sicherzustellen, dass wir
alles richtig machen. Die Lichter bewegen sich zu
stark in bestimmte Richtungen. Auch hier ist das größte Problem, die Zahl
Z, sehr hoch, obwohl sie
einfach bei -90 bleiben sollte Wir werden die Kontrolle verlieren. Wir brauchen das nicht
mehr. Wir haben es getestet, damit wir es
brauchen, und sichergestellt, dass
das Problem nicht aufgetreten ist. Anstatt
diese sehr hohen Werte zu haben, werden
wir also einen Mindestwert
von -90 und einen Höchstwert von -60 haben Mal sehen, was jetzt passiert. Sie bewegen sich sehr
nahe an die Reichweite heran. Also lass es uns stattdessen ein bisschen mehr
machen. Lassen Sie uns
fünf Punkte positiv bewerten. Lass uns spielen. Wir könnten auch einfach den Mittelweg
nehmen und 45 auf -45 setzen, wodurch es in
alle Richtungen gleichmäßig randomisiert wird Was in Ordnung ist. Lass uns das nochmal
spielen und
sehen, wie es funktioniert. Und nach dem Moment verlieren
sie die Direktionalität Sie sollten
zu dem zurückkehren, wie sie früher
funktionieren sollten . Mama, hm. Mal sehen, was hier
vor sich geht. Wir haben unsere Station. Sobald das erledigt ist, überprüfen
wir, ob
wir den Bereich
von 2000 überschreiten . Wenn das falsch ist, Sie uns das simulieren und uns ansehen, was hier
passiert. Wählen wir dieses Licht aus, das die Nummer 28 hat. Lass uns das erweitern
und Play drücken. Und für unser Debugging, Schauspieler, wählen Sie 26. Und was passiert jetzt Das wiederholt sich nur, legt seine eigene Rotation fest,
wenn es fertig ist, und schon ist die Verzögerung entstanden. Oh, okay, das ist das Problem. Wir erreichen nie die Zielnote da das immer den ganzen Weg zurück
geht und dieses
Problem erzeugt, bei dem es
immer ständig abgespielt wird Okay. Was wir also
tun müssen, ist, dass wir diese
Verzögerung tatsächlich tun müssen. Entschuldigung, der Ausführungs-PIN dieser Verzögerung geht nicht
ganz zurück und geht
einfach in die richtige Richtung. Also was wir tun können
ist, dass wir das haben. Wenn es fertig ist, haben wir diese Verzögerung, und
wenn wir das haben, bekommen
wir die tatsächliche Rotation gesetzt, und wenn
das alles erledigt ist, müssen wir den Verzweigungsknoten
überprüfen. Anstatt ihn einfach den ganzen Weg zurück
weiterzuleiten
, können wir diesen Verzweigungsknoten wieder
hinzufügen. Und bevor wir weitermachen, sollten wir all diese Knoten richtig organisieren. Die einzige Möglichkeit, was wir tun müssen ist, diesen
Wert zu ermitteln und ihn zu
einer Variablen
zu machen , damit wir das alles nicht
jedes Mal erneut machen müssen . Wir können das also in eine Variable umwandeln, daraus eine Variable machen, und wir müssen
diese Variable setzen. Nicht alles davon. Indem wir
all das in eine Funktion umsetzen, werden
wir es zusammenbrechen lassen, damit es funktioniert. Nennen wir es Entfernung zur Ebene. Entfernung, die gelöscht werden soll. Und wenn wir das brauchen, brauchen
wir es vor dieser Filiale. Und jedes Mal, wenn wir das brauchen, können
wir einfach diese Funktion
einbauen. Anstatt
diesen Spaghetti-Code zu haben, ist das einfach ineffizient Also was wir tun,
Entfernung zum Spieler, ziehen es rein Und wir machen es hier wieder,
Entfernung zum Spieler. Dabei wird nur die
Entfernung zum Spieler überprüft, ob es
so ist . Schauen wir uns das mal an, ob die Entfernung zum Spieler weniger als 2000 Einheiten
beträgt. Weniger als 2000. Wir legen diesen Wert fest und
geben diese Notiz zurück. Wenn die Entfernung hier also weniger als 2000 Einheiten
beträgt, passiert das
alles
wie zuvor. Und hier, nachdem dies aktualisiert wurde
, kommt es zu einer
Verzögerung, und nach der Verzögerung erhalten wir
eine Entfernung zum Spieler. Wenn die Entfernung zum
Spieler derzeit, nach dieser 1 Sekunde Verzögerung bei
der Aktualisierung dieser Zeitleiste, weniger als 2000
beträgt, gehen
wir den ganzen Weg zurück und überprüfen noch einmal, oder wir müssen nicht
einmal nachschauen, wir gehen direkt zur Filiale, wie wir es bereits eingerichtet
haben Prüft die Entfernung
zum Spieler und wir gehen, wenn es herunterfällt, passiert
nichts, und all funktioniert einfach so lange,
bis
der Vorgang abgeschlossen ist Also lass es uns jetzt noch einmal versuchen. Und lass uns sie sehen und drücken. Das passiert. Das ist geprüft. Wir warten, bis es fertig ist, was 8 Sekunden dauern wird. Nach 8 Sekunden ist es
fertig und stellt sich von selbst wieder her. Perfekt. Möglicherweise stellen
Sie beim Testen fest, dass Ihre Lichter
nicht richtig funktionieren, und das ist der Grund. So wie diese Funktionen funktionieren, erzeugen
sie diesen Wert nur wenn sie
tatsächlich ausgelöst werden. Und wenn wir hier den
wahren Wert haben und den
ganzen Weg zurückgehen, wenn wir nicht den Wert
der Entfernung zum Spieler überprüfen, funktioniert
diese Funktion
nicht richtig. Und was wir tun müssen,
ist sicherzustellen, dass nur alle Knoten, die zu diesem Punkt
kommen,
auch wirklich hierher kommen, und wir sollten sicherstellen, dass
wir das Ereignis Entfernung
zum Spieler auslösen,
bevor ein Zweig ausgelöst wird. Auf diese Weise können
wir sicherstellen, dass der Wert, der die Funktion „
Entfernung zum
Spieler“ wahr oder falsch ist ,
auch tatsächlich korrekt ist. Also werden wir kompilieren, spielen und zurück
zum Level gehen und
schauen, wie es funktioniert. Und wenn sie uns nicht finden können, kehren
sie zu ihren
zufälligen Rotationen zurück, und wenn wir näher kommen, bemerken
sie uns und
beginnen uns zu folgen Jetzt könnten wir es natürlich
anpassen, um die Lichter genauer zu machen Vielleicht möchtest du
die Reichweite nicht weiter einschränken usw., aber wir werden
es vorerst so belassen,
da wir die Lichter
ändern werden, und die Funktionalität
hängt auch vom Gameplay ab Das wird eigentlich nicht
ständig
so zufällig sein , weil Umgebungslichter sich auf
die Ziele konzentrieren , wenn sich die Ziele in der
Nähe befinden Bevor wir mit der eigentlichen Implementierung von
Gameplay-Elementen
beginnen, sollten wir unser
Licht noch einmal modifizieren Wir haben Lichter, die sich
im Level bewegen , und wir
lassen sie außerhalb des Levels leuchten. Der Grund, warum das
passiert, ist , dass wir ihnen
zufällige Zahlen geben Daher haben
sie keinen wirklichen Punkt auf der Karte, auf die sie
sich konzentrieren wollen Es ist eine einfache Lösung,
insbesondere das, was wir bereits implementiert
haben.
Stoppen Sie die Simulation. Und wir könnten ihnen einen Wert geben
und diesen Wert um
diesen zufälligen Wert modifizieren , um sicherzustellen, dass wir sie
in einem bestimmten Bereich alle Lichter auf einen bestimmten Bereich fokussieren
. Was wir auch tun können, unser bereits
festgelegtes Ziel get
target zu verwenden und es
als Platzhalter für
das Licht zu verwenden, auf das
wir uns konzentrieren können target zu verwenden und als Platzhalter für
das Licht zu verwenden, auf das
wir uns konzentrieren Wir haben diese Logik also schon hier, die wir zuvor erstellt Nehmen wir das
und wenden es hier an. Nun haben wir einen letzten
Blick auf die Rotation, und wir haben diese zufälligen
Gleitkommazahlen, die dem hier eingestellten Rotationswert
Zufallszahlen geben hier eingestellten Rotationswert
Zufallszahlen Was wir tun können, ist, diese beiden Rotatoren zu
kombinieren, wodurch wir einen Wert erhalten, der nicht völlig
zufällig ist Kombinieren wir nun die Rotatoren A und B und diesen kombinierten
Rückgabewert in P ein.
Schauen wir uns
nun unser Level an Es gibt immer noch eine gewisse
Zufälligkeit in der Ebene, aber sie werden
alle versuchen, sich auf
das Licht auf dem Ziel zu konzentrieren das Licht auf dem Und wenn sich das Ziel bewegt,
bewegen sie sich mit. Offensichtlich wollen wir nicht, dass
dieser Würfel das Ziel ist. Wir können also tun
, dies
mehr oder weniger immer noch die
Mitte des Levels ist , und wir können diesen
Wert nach unten drücken. Und was wir tun können, ist, diesen Ort zu kopieren. Gehen Sie zurück zu BP Lit, entfernen Sie Get Actor Location
aus dem Ziel und teilen Sie den Strcm auf. Schauen wir uns hier unsere Werte an X Warum? Und Z kompiliere Preblow. Sie werden sich
ähnlich verhalten,
aber sie
zielen nicht mehr auf diesen speziellen Würfel Sie drehen sich jetzt einfach in der allgemeinen Richtung um Stelle, an der sich dieser Würfel
ursprünglich befand. Du könntest auch auf
das Level selbst zielen, oder du kannst
diesen Würfel auch einfach unsichtbar machen, ihn
weglegen und Feierabend machen,
aber es gibt keinen Grund, es
zu kompliziert zu machen, wenn du die Werte fest codieren kannst, du könntest es
auf verschiedene Arten machen, aber das funktioniert einfach Lassen Sie uns nun unseren Code
so organisieren, dass wir leichter Zeit haben wir ihn
das nächste Mal
tatsächlich benötigen Lassen Sie uns einige der
Dinge hier in Funktionen umwandeln. Wir können Funktionen keine Zeitleiste
hinzufügen. Lassen Sie uns das tun, in Funktion umwandeln, speziell die
Funktion zusammenklappen. Nennen wir es Rotation, zufällige
Generierung. Das ist nur dazu da,
alles zu organisieren. Und ich werde diese
Funktion umbenennen. Richtig. Stellen Sie sicher, dass Sie Ihre
Baupläne immer testen. Und wenn es so funktioniert, wie es sollte, können
Sie einfach weitermachen Ja, die meisten Lichter
sind nach innen gerichtet. Wir können auch die
Zufallswerte reduzieren , damit sie nicht
zu weit über das hinausgehen was wir wollen. Das sollte vernünftig genug
sein Lass uns 20 bis 20 draus machen. Zufallszahlen sind zwar in Ordnung, wenn sie zu weit
nach oben gehen, ist es nicht ideal. Und jetzt haben wir diesen
Disco-Effekt. Wir ignorieren den
Fehler. Das liegt daran, dass sich
der Spieler nicht
wirklich im Level befindet. Sie können einen Knoten hinzufügen, der gültig ist, aber das wird nicht wirklich
nötig sein , wenn wir damit fertig
sind. Also nehmen wir das auch. Und dieses Mal werden
wir auch in eine Funktion
zusammenfallen, aber es ist eine andere Funktion,
da es sich um eine Funktion handelt, die den Spieler
betrachtet, und wir werden
sie alle auswählen , die Funktion reduzieren. Standort des Spielers gefunden. Ich werde es einfach
so nennen. Alles ist in Ordnung. Wir können zum Event-Diagramm zurückkehren und
sehen, ob wir noch etwas anderes
organisieren müssen. Befehlsbereiche
sind jetzt zu groß, also reduzieren wir sie. Lass uns sehen. Wir können
diese Zeitleiste nicht in die Funktion aufnehmen, da es sich
um
ein zeitbezogenes Ereignis handelt, und es gibt keinen wirklichen Grund , diese beiden
Knoten funktionsfähig zu machen, da wir sie nicht zu oft wiederverwenden werden. Wir haben sie hier auf eine
bestimmte Art und Weise, aber sie sind keine
wirklich effiziente Methode uns, sie in eine Funktion umzusetzen. Das kann so bleiben, wie es ist. Diese Verzögerungen können nicht
zu Funktionen oder Makros hinzugefügt werden. Und jetzt haben wir ein
etwas klareres. Diese
Knoten laufen immer noch bis zum Ende , aber das ist in Ordnung. Wir könnten es wahrscheinlich besser
aussehen lassen , wenn wir mehr
reorganisieren, aber ich möchte hier nicht
zu viel Zeit verschwenden Wir haben hier unsere Farbeinstellungen, und als Nächstes werden
wir sie bearbeiten, wenn wir
Gameplay-Elemente tatsächlich implementieren Also
23. UE5 FC08 01: Fangen wir jetzt an, unser Interface
zu erstellen. Klicken Sie mit der rechten Maustaste in den leeren Ordner. Ich habe bereits einen
Interface-Ordner
erstellt, Ihren eigenen erstellt und Ihre Blueprint BPI for
Blueprint-Schnittstelle aufgerufen, und ich werde ihn Underscore SCORE
nennen Kompilieren Sie ihn, speichern Sie
ihn für alle Fälle und schon kommen wir zu einer neuen Funktion
hier in Wir werden es umbenennen
und es Goal Score nennen. Warum hatte ich L? Ich weiß es nicht. Also haben wir jetzt dieses Interface. Lassen Sie uns eine weitere erstellen, und diese nächste werden wir
nicht wirklich verwenden, aber ich werde nur
demonstrieren, wie sie verwendet werden kann. Wir werden es interagiert
nennen. Und dieses Mal
werden wir
einen Ausgangsknoten und
einen Eingabeknoten hinzufügen einen Ausgangsknoten und
einen Eingabeknoten Ein Eingabeknoten wird, sagen
wir, die Ebene arctor sein.
Mal sehen, was wir können Erstens, was wir verwenden können, wir können einen solchen
Personencharakter verwenden Das dient nur
zur Demonstration. Wir werden es nicht wirklich verwenden, und für die Ausgabe fügen
wir einfach irgendwas als
Aufhebungswert Wir werden es nicht
wirklich verwenden. Ich werde es später entfernen. Also werden wir das
speichern. Und wir haben jetzt einen mit Ausgang, einen ohne Ausgang
und mal sehen. Unser Torwert hat keinen Output und unser
Interactive hat einen Output. Was wir also tun werden, gehen wir zu BP Goal und
gehen in den
Klasseneinstellungen zu den implementierten Benutzeroberflächen Detailbereich
auf der rechten Seite und BP Goal und
gehen in den
Klasseneinstellungen zu den implementierten Benutzeroberflächen
im Detailbereich
auf der rechten Seite und
klicken Sie hier, um unseren PPI-Torwert zu
finden. Wir kompilieren es und jetzt haben
wir diesen Schritt hier. Es heißt Interfaces. Erweitern Sie es, und Sie werden hier zwei neue Optionen
sehen. Gehen wir zunächst zum Ereignisdiagramm und klicken
auf Interaktiv. Wir haben diese Funktion, die Spielereingabe und
etwas Ausgabe
hat. Der Zweck besteht darin,
eine allgemein verfügbare Funktion zu erstellen eine allgemein verfügbare Funktion , die
in jedem Blueprint geändert werden kann Die interagierte Funktion, die
wir erstellt haben,
kann also verwendet werden sagen wir, wir haben unsere
Eingaben und Ausgaben, und wir können
in unseren Ereignisdiagrammen dieses Ereignis zum Beispiel
nennen, sagen
wir, wer interagiert hat,
kann dieser Akteur selbst sein Und im Player-Knoten können
wir die Referenz für den Spieler hinzufügen,
der das getan hat Oder du kannst ein
interaktives Ereignis hinzufügen, bei dem es zum Beispiel um Münzen geht Stell dir vor, du verwendest
einen Shop in einem Spiel und du hast
ein interaktives Event, und dieser Wert steht für Münzen,
womit überprüft wird, wie viele
Münzen dein Charakter an, Nehmen wir an, der Gegenstand, den Sie kaufen
möchten, kostet 100 Münzen.
Sie können also weniger als einen Knoten hinzufügen. Ich werde diesen Goldbarrenwert
hier tatsächlich auf Float
ändern , nur um das
zu demonstrieren Münzen. Kompilieren und
erneut kompilieren, kompilieren, neu kompilieren Und der Grund für diesen Fehler ist
hier wertlos. Und nehmen wir an, die Münzen, die wir haben weniger als 50 sind weniger als 50
oder entsprechen dem Gegenstand, mit dem Sie interagieren Dieser Wert wird wahr
oder falsch sein
, der dann
als „Alles falsch“ ausgegeben wird Also die Eingabe für die
Münze, die du bekommst, bleibt einfach
so weil wir sie noch nicht
gespeichert haben, also werden wir sie speichern. Das nächste Mal, wenn wir dieses
Event generieren, wird das gut funktionieren. Auf diese Weise können wir
Informationen oder Variablen usw. von anderen
Akteuren abrufen, bei denen
die Interaktivität über die
Schnittstelle aktiviert ist , und wir können ihre Variablen einfach
abrufen ohne dass wir sie
tatsächlich an
den Akteur übertragen und ihre
Werte abrufen müssen, indem wir von hier aus Münzen
holen usw. Das werden wir nicht
wirklich brauchen. Was wir brauchen, ist dieses Ziel. Sie können das nicht verschieben , sondern Sie können ein Ereignis
implementieren. Das bewirkt nun, dass, wenn der Event-Call-Score über eine Schnittstelle
aufgerufen wird, im Wesentlichen von einem
anderen Akteur, dieses Ereignis ausgelöst wird. In diesem
Fall wollen wir, dass dieser
Event-Tor erzielt wird. Lassen Sie uns das entfernen, interagieren wir
damit, da wir
es nicht im Lichtplan verwenden werden es nicht im Lichtplan Also lasst uns später nicht auf
Blueprint und Light
Blueprint Wir gehen zu den
Klasseneinstellungen an der Schnittstelle, wieder, an derselben Schnittstelle, da sie überall dieselbe Schnittstelle haben
werden, kompilieren Wir brauchen kein Event vor Ort,
an dem wir spielen können. Wir wollen in einem
Goal-Scroll-Event stattfinden. Also
holen wir uns das und fügen es
ein wir werden diesen Spielstand
kompilieren. Und hier im PPG. Lassen Sie uns diese Dinge entfernen, gehen wir zum Event Graph Wir brauchen das nicht
, um das hier auszulösen. Wir müssen es
rundum in anderen Schnittstellen auslösen. Wenn wir also zur Partitur gehen und
auf ScOrR-Nachricht aufrufen klicken, wird
dieses Ereignis im Zielbereich der
Akteure aufgerufen, die damit interagieren Jetzt
fragst du dich vielleicht , wer dieses Ereignis
auslöst In unserem Fall ist es dieser Bogen. Also, wir werden es eigentlich nur
zu
Demonstrationszwecken
tun, ich werde es einfach so formulieren, wie wir dieses Zielereignis nennen, also werden wir es einfach von hier nach hier ziehen
. Und Sie gehen vielleicht
davon aus, dass es wie beabsichtigt funktionieren wird, aber das wird es nicht, weil
wir das Ballereignis ins Visier nehmen und der Ball selbst nichts zu tun
hat. Es ist ein leerer Akteur mit nur einer statischen
Netzkomponente darüber. Aber du musst mit
diesem Lichtspawner interagieren ,
tut mir leid, mutiger Spawner Und damit das passiert, müssen
wir
direkt mit ihm interagieren, indem wir ihn als Ziel setzen Aber das würde das Casting beinhalten, was in diesem Fall in Ordnung ist, da wir bereits
festgestellt haben , dass sie auf derselben Ebene
existieren werden. Wir können das aber auch überspringen
, indem wir alle Schauspieler mit Interface beauftragen. Und das Interface, das wir auswählen
wollen, ist PPI Goal Score, und
wir werden es hier platzieren. Wenn das ausgelöst wird, werden also alle Akteure im Level überprüft, und bei allen
Akteuren in dem Level, bei
denen
diese Schnittstelle aktiviert ist, wird ihr
Torwert-Event ausgelöst. wird nicht empfohlen, dies bei zeitbasierten Operationen zu
verwenden Wenn Sie Eventing verwenden, Es wird nicht empfohlen, dies bei zeitbasierten Operationen zu
verwenden.
Wenn Sie Eventing verwenden, wird Ihr PC sehr wahrscheinlich zum Absturz gebracht, wenn Sie viele Faktoren
haben Und wenn möglich, möchten
Sie
direkt darauf abzielen, ob es
sich um eine verfügbare Option handelt Und tatsächlich
kann das Casting in Ordnung sein, wenn garantiert wird, dass sie dem gleichen Niveau sind, wie wir es hier festgelegt
haben. Nun fragen Sie sich vielleicht
, ob das der Zweck ist, warum machen wir das auf diese Weise? Warum können wir nicht einfach Casting verwenden? Das liegt daran, dass, wenn du einen Spielercharakter
hast und dein Spielercharakter ein Interface aktiviert
hat, und sagen wir, wir haben diese
Funktion namens Interact, sagen
wir, um Objekte aufzunehmen. also mit diesem Ball Wenn ich also mit diesem Ball interagiere, nehmen
wir an, ich hebe ihn einfach auf. Aber ich kann auch
mit diesem Tor interagieren und es explodieren
lassen oder mit dem MPC
interagieren, ihm
sprechen oder
mit anderen Dingen interagieren Ich kann einen Event-Call haben, bei
dem die Aufrufe interagieren. Und die Art und Weise, wie dieses Ereignis funktioniert, wird nicht
von meinem Spielercharakter bestimmt, sondern von den Schauspielern selbst, was wir jetzt tun werden. Wir haben dieses Event bereits hinzugefügt. Mal sehen, ob ich nicht
vergessen habe, etwas zu tun, das sollte einfach ausgelöst und wir sollten einen neuen Ball bekommen. Ja. Wir haben einen neuen Ball. Und wenn wir diesen
Vorgang unendlich wiederholen können, denn jedes Mal, wenn wir das tun, bekommen
wir einen neuen Ball Und wir haben eine neue Glühbirne. Lassen Sie uns unseren
Napf Spawn Rabbit modifizieren. Fügen wir einen Knoten hinzu, machen wir drei daraus. Wenn dies ausgelöst wird, gehen
wir zurück und gehen
den Prozess erneut durch. Und jedes Mal, wenn dies
ausgelöst wird, gehen wir der Reihenfolge nach vor. Wir setzen unsere Zählung hier zurück,
damit sie wieder funktioniert, und wir wiederholen sie Lass es uns testen.
Spielen Sie es erneut. Es explodiert. Wir bekommen drei neue Bälle und können genau das
Gleiche nochmal machen Sie erhalten drei weitere Bälle und können diesen
Vorgang so
oft wiederholen , wie Sie möchten. Nun, Sie haben vielleicht bemerkt, dass sie direkt
übereinander spawnen, und das ist in Ordnung, aber nicht genau das, was ich
jedes Mal gerne sehen würde Daher werde ich sie
ändern, weißt du,
ich werde nicht nur ihre Größe
ändern,
sondern ich werde auch
ihre Position von Spanne zu Spanne leicht ändern Also werde ich diesen Vektor hinzufügen. Wir werden das Z nicht zu
sehr anfassen , oder
wir könnten es auch. Machen wir es also wieder
randomisiert. Lassen Sie uns einen zufälligen Float-in-Range-Wert ermitteln. Laden. In Reichweite. Nochmals, lass uns
das dreimal kopieren. Wir wollen die
Z-Achse nicht zu sehr berühren. Wir wollen nicht, dass es nach unten geht. Daher werden wir
es zwischen Null
oder sogar Null und 200
bewegen lassen. Die Y-Achse kann -50 plus 50 sein. Und X kann dasselbe sein. Sie könnten die Zahlen erhöhen,
um mehr Variationen usw.
vorzunehmen, aber das
sollte in Ordnung sein Und vergessen wir nicht,
es einzugeben, zu kompilieren, zu drücken und abzuspielen. Wir haben unser Startspiel. Nichts passiert.
Wir haben unseren Ball. Lass es uns einmal machen. Wir bekommen drei Bälle. Und der Sound Lass uns jetzt ihre Größe nach dem Zufallsprinzip
ändern. Wir können genau
das Gleiche tun wie hier. Aber wir werden statt drei
Range-Nodes einen verwenden, und wir werden mindestens einen
und den Maximalwert
machen , lassen Sie uns
ihn dreimal so groß machen. Wir werden das hier
in alle drei Werte eingeben. Kompilieren, speichern,
Play drücken und erneut testen. Wir werden das wieder tun. Und jetzt haben wir Gehirne,
und sie haben unterschiedliche Größen Und wir sollten immer noch in der Lage sein, mit
ihnen zu interagieren. Das sind wir. Und jetzt ist unser Gang eingeschränkt, wir bekommen drei weitere Bälle, und wir können
diesen Vorgang wiederholen, um unser Feld mit Bällen zu füllen Da wir dem
keine Grenzen gesetzt haben ,
wird es unendlich gehen Wir könnten unendlich
viele Bälle hinzufügen oder wir könnten es
auf eine bestimmte Menge begrenzen ,
indem wir erneut nicken,
aber das ist nicht wirklich notwendig, da wir dieses Schema nicht wirklich
veröffentlichen
werden,
da es nur zu Demonstrationszwecken gedacht ist Jetzt werden unsere
Interfaces aufgerufen. Lass es uns auch mit Lichtern machen. Gehe zu den Klasseneinstellungen,
implementiere die Schnittstelle. Auch hier werden wir genau
dieselbe Schnittstelle implementieren. Wir haben nur einen,
kompilieren ihn, speichern. Sie fragen sich vielleicht, was die anderen
sind. Es handelt sich um von der Engine bereitgestellte
Standardschnittstellen , auf die wir
in diesem Kurs
nicht eingehen werden . Aber wie dem auch sei, wir werden diese
Interaktion hier hinzufügen wollen. Insbesondere haben wir hier die
Zielpunktzahl. Lassen Sie uns das also zunächst
verschieben. Und wir werden das an
unserer Schnittstelle entfernen und implementieren. Ich wünschte, sie würden einfach vor dir
auftauchen, aber so ist es. Wir ziehen das mit hinein
und was
passieren wird, ist, dass wir das ein wenig modifizieren werden das ein wenig modifizieren ,
da wir hier zufällige
Farben generieren
und wir das Ziel hier spawnen lassen. Wir werden dieselbe Logik beibehalten die wir im
vorherigen Level verwendet haben Wenn das Ziel
3 Sekunden lang gespawnt
wird , ist
es 3 Sekunden lang falsch gesetzt und
wenn es falsch ist, setzen
wir unsere
Operation für zufällige Farben fort Ist dies nicht der Fall, werden
wir es
auf Grün belassen . Lass es uns jetzt versuchen. Wir werden Play drücken. Und wenn wir es
einschalten, werden
alle Lichter für 3 Sekunden grün. Und wenn der Zufallsgenerator das nächste
Mal soll, sollte
alles wieder
zu den zufälligen Farben zurückkehren Aber das Problem ist, dass
wir nicht wirklich
einen Re-Trigger für diese
zufällige Farboperation haben einen Re-Trigger für diese
zufällige Farboperation Wenn es also wahr ist, kehren
wir zum
Verzögerungsknoten
zurück und wiederholen den Vorgang, bis er wahr ist und die Schleife erneut beginnt. Versuchen wir es noch einmal. Lass uns spielen. Lass uns unseren
Ball in den Kreis bringen. Eins, zwei, drei, vier und wir bekommen unsere Lichter
zurück. Zufällige Farben. Nun, es wäre langweilig, wenn
wir diese riesige Arena hätten, und dieses Ziel
wird immer an einem Ort liegen. Stattdessen
werden wir dem Ziel zusätzliche
Funktionen hinzufügen
und es durch das Level teleportieren Und jedes Mal, wenn es
sich durch das Level teleportiert, werfen
die Lichter in der Umgebung einen Blick darauf
, sodass wir quasi sofort erkennen können, wo es sich befindet Wir werden
im Wesentlichen das Interface und
das Targeting kombinieren , wir ursprünglich um Lichter erweitert Mit dem Tor selbst. Nun, wir haben dieses Tor
und wir möchten, dass es
an, sagen
wir, vier
verschiedenen Orten spawnen sagen
wir, vier
verschiedenen Orten Wir könnten unendlich viele
zufällige Orte machen
usw., aber es ist
keine gute Idee es komplett zufällig
zu haben Was wir
tun werden, wir werden ein Array
erstellen,
und in diesem Array werden
wir mögliche
Positionen für diesen Gang haben, und wir werden sie nacheinander
durchgehen, und wenn es
keine Elemente mehr im
Array-Riss gibt , setzen wir Wir könnten das auf kontrollierte
Weise tun, damit es jedes Mal
exakt gleich ist, aber wir könnten es auch randomisiert
machen Es gibt also zufällige
mögliche Variationen, und wir werden eine zufällige Auswahl aus den möglichen Variationen Gehen wir jetzt zurück zu unserem Ziel. Lassen Sie uns das zunächst jedes
Mal tun, wenn die gesamte Operation
hier abgeschlossen ist Wir werden diesen Schauspieler teleportieren Lassen Sie uns also einen benutzerdefinierten Anruf erstellen
und ein neues Ereignis erstellen. Benutzerdefiniertes Ereignis. Nennen wir es Teleport. Und was wir jetzt tun werden, wir müssen die
Transformationsform
für den Akteur selbst festlegen Transformationsform Transformationsform ,
was wiederum ein neuer
Transformationswert ist Und was wir tun werden, wir können jedes Mal die Stellen berechnen, an denen wir
es platzieren werden. Und in diesem Fall glaube
ich, dass ich es irgendwie geschafft es liegt daran, dass es einen Kompilierungsfehler
gibt,
sodass es nicht ausgelöst werden kann. Weit unten, lass uns das entfernen. So könnte ich den Platz hier,
den Platz hier, den Raum hier und den
Raum hier manuell berechnen und den Blueprint
verwenden, um ihn
direkt an
vordefinierten Orten zu platzieren Oder ich kann zu den Grundformen
gehen und
feststellen, dass es , glaube ich, einen Knoten namens Target
gibt , sofern
sie nicht in der
neuesten Version entfernt wurden Ja, wir haben ihn
hier. Zielpunkt. Was wir tun können, wir können diesen Zielpunkt
verwenden. Und ich nenne, wir haben hier
diesen einen Zielpunkt. Hier ist ein Zeichen. Es ist ziemlich klein, aber lass uns den ganzen Weg bis hierher auf der
anderen Seite des Bildschirms
gehen und noch
eins davon
nehmen und es wieder hierher legen und
es bis hierher verschieben. Wir werden ihre
Standorte danach arrangieren und wir werden den ganzen Weg gehen
und den letzten Standort hierher stellen. Jetzt haben wir vier
Zielpunkte. Wir können setzen. Wir können zu unserem Ziel zurückkehren. Wir können einen Standort erstellen. Stellen wir zunächst sicher, dass
wir eine Referenz für sie haben. Also Ziel. Auf Zielpunkt On setzen und wir werden es auf variabel hochstufen. Oder jetzt werde ich
das entfernen. Ich werde
das in ein Array umwandeln. Ich werde es kompilieren. Ich
werde vier Elemente hinzufügen. Und wenn ich mit dem
Hinzufügen von vier Elementen fertig bin, bekommen
wir dieses Array, einen Startpunkt Wir werden für
jede Schleife etwas hinzufügen. Im Moment werden
wir es nur
verwenden, um es zu testen, und wir werden es offenlegen Und was wir tun werden, wir werden ein Ziel auswählen. Und das sollten wir hier
als Zielpunkt haben. Wir werden
sie eins nach dem anderen auswählen. Wir gehen zum Zielpunkt. Eins, zwei, drei und vier. Jetzt haben wir die Ziele
eins, zwei, drei, vier. Wir speichern, gehen zurück und speichern noch einmal, nur für den
Fall, dass wir Schauspieler transformieren lassen
und es hier reinstellen wollen. Und dieser Teleport für den Moment, nur zu Testzwecken, wir werden ihn ausführen,
sobald das Event zu Beginn des Spiels beginnt Ich glaube, wir haben ihn an der Spitze, aber wir benutzen ihn nicht Daher können wir es einfach testen, kompilieren, speichern und erneut abspielen. Es sollte also
von unserem Standort verschwinden und hier auftauchen. Der Grund, warum es
in der Luft auftaucht, ist zuallererst, dass unser Ziel nicht kollidiert und wir es so
machen Lass uns jetzt nochmal spielen. Perfekt. Und wir müssen sicherstellen, dass es richtig gedreht wird. Und jetzt haben wir es. Es ist immer noch ein bisschen in der Luft. Also lass es uns einfach
das Zielstück runter auf den Boden ziehen. Mal sehen, ob es jetzt in
Ordnung ist und wenn ja, werden
wir es einfach tun, es sieht gut aus. Jetzt werden wir die
Z-Transformation dieses Ziels vornehmen. Lass uns kopieren. Und wir werden es
auf alle anderen anwenden. Das waren ungefähr 75 705, also benutze
ich das einfach direkt. Jetzt müssen wir
sicherstellen, dass auch unsere Rotationen korrekt
sind Also, was wir tun können, ist, zuerst eine bestimmte zu finden, indem
wir eine durchgehen. In diesem Fall können
wir uns wohl einfach eine Kopie besorgen Und wenn wir es so ausdrücken, wird es immer
das erste
Exemplar in der Reihe bekommen , die
wir bereits haben. Also lasst uns eins machen, was eigentlich das zweite ist, kompilieren, lasst uns spielen und
schauen, wo es entstanden ist. Es ist in dieser Richtung entstanden. Die Transformation ist
offensichtlich falsch. Lassen Sie uns also auf
diesen zweiten klicken und ihn nach links drehen. Die rote Linie ist also auf dieser Seite. Schauen wir uns auch diesen
an, und das wird
höchstwahrscheinlich dasselbe sein, also werden wir es tun. Versuchen wir es also mit dem
zweiten, kompilieren, speichern und auf Play drücken. Okay, ich habe einen Fehler gemacht.
Lass es uns nochmal versuchen. Lass uns zurückgehen. Sieht gut aus. Sie jetzt sicher, dass wir
dasselbe für diesen haben
, der Nummer drei ist. Kompilieren, Play drücken
und es funktioniert einwandfrei. Ich habe das zunächst
etwas nach hinten gestellt, damit es nicht ausgelöst wird, aber weil wir
es zu sehr bewegen, aber weil wir
es zu sehr bewegen, werden
wir es einfach in der Mitte
belassen Ja. Kompilieren Sie es,
speichern Sie es, drücken Sie Play. Lassen Sie uns nun die Logik dafür korrigieren. Und um uns nicht zu überladen,
lassen Sie uns diesen schließen und
zu BPG gehen und nach dem Zufallsprinzip suchen Interessant. Zufälliges Array-Element. Stellen wir sicher, dass es jedes Mal
randomisiert wird. Wir werden jedes Mal
ein zufälliges Element aus
diesen vier Punkten erhalten jedes Mal
ein zufälliges Element aus
diesen vier Punkten Wir haben sie bereits voreingestellt. Wir haben bereits die
Rotationen usw. Und was wir als Nächstes tun werden ,
werden wir
natürlich zuerst testen Es
verschwand an dieser Stelle, als wir Evans Baking Play hinzufügten Wir müssen das auslösen, indem wir das Teleport-Event
aufrufen, und das ist ziemlich einfach Wir werden von hier aus einfach
Teleport
Event aufrufen aus einfach
Teleport
Event Wir werden die
Funktion Telepot nennen. Wir werden das Spiel speichern und mal sehen, wir haben
es vor uns Wir haben es reingetan. B drei
Bälle und ein neues Tor. Und als Nächstes werden
wir zu unserer Oberfläche
gehen eine neue Funktion aufrufen
und sie
als neu interessant bezeichnen. Neuer Gang oder Gold. Kompiliere es, speichere es. Dadurch wird dies
automatisch allen Akteuren mit
der Schnittstelle
hinzugefügt . In diesem Fall
wollen wir sie im Licht haben, also kannst du einfach auf ein beliebiges Licht
klicken, um zu ihrem Bauplan zu
gelangen Erweitern Sie die Schnittstelle. Und anstatt das Ziel zu
lokalisieren, werden wir es verschieben und ein Ereignis
namens Neues Ziel implementieren. Und das Event „Neues Ziel“ wird
mehrere Dinge bewirken. Zuallererst werden wir
dies mit einem neuen Ziel erreichen. Und wir werden das neue Tor
ins Visier nehmen. Aber zuerst gehen wir hierher. Und wenn der Teleport abgeschlossen ist, werden
wir alle Akteure mit
dem Interface
hier auflisten und dieses
Event Neue Zielnachricht nennen Das Ziel sind alle Akteure, die dieses Interface aktiviert
haben. Lassen Sie es uns jetzt einfach testen. dem Moment, in dem wir den Ball hineinlegen, sollten
alle Lichter rot werden. Das tun sie. Jetzt wollen wir, dass sich die Lichter, die dem neuen Tor
am nächsten sind, darauf konzentrieren, damit wir
unseren Fokus sofort auf das neue Tor richten
können . Und das tun wir, indem
wir zu unserem Licht gehen. Wir brauchen L
Spanner Logic nicht mehr. Wenn du dich erinnerst, hatten
wir hier diese Funktion bei der wir Abstand zum Spieler hatten Wir werden das oder
Topcates kopieren und es
Entfernung zum Tor nennen Wir kompilieren das und
gehen zurück zu Avent Graft. Wir werden diese
Entfernung nutzen, um hier einzusteigen. So wie das funktionieren wird, brauchen
wir hier
zunächst einen
Spielercharakter, aber was wir jetzt tun
müssen, ist den Schauspieler zu finden. Wir könnten es fest programmieren, aber
wie ich bereits erwähnt habe, wollen
wir keine
harten Referenzen verwenden Also was wir stattdessen
tun werden, wir werden BPG und in der Benutzeroberfläche werden wir eine Eingabe hinzufügen, und
wir werden es
Target, Sorry, Actor Reference nennen Sorry, Actor Holen wir uns Actor Object
Ref Play und rufen Actor Ref Compile It, Save it Und wenn wir uns unser BP-Ziel
ansehen, haben
wir jetzt ein Schauspielerdach. Und in diesem Fall
wird es mein Ich sein. Da wir eine neue Referenz
bekommen wollen, ist das Gate selbst. Wir kehren zum
Bauplan des Lichts zurück, speichern oder nicht, gehen zurück
zum Ereignisdiagramm Wenn du aus irgendeinem Grund verlierst oder du zu
viele Optionen
hast, kannst du sie einfach schließen und
dein Event-Diagramm hier oben
links finden dein Event-Diagramm hier oben
links Und in der Entfernung zum Gate brauchen
wir eine Eingabe. Also werden wir Eingaben hinzufügen. Ich entschuldige mich. Wir
werden eine Eingabe benötigen, und wir werden diese Eingabe eine Akteurreferenz,
eine
Schauspielerreferenz
nennen . Und diese neue
Akteurreferenz wird das Tor sein. Und wenn Sie
hier zur Grafik zurückkehren, was wir tun werden, werden wir das
natürlich
auslösen, um sicherzustellen, dass unsere zufälligen Farben aufhören und wir für eine Sekunde die rote Farbe
erhalten. Und wenn das alles passiert, werden
wir dieses Referenzereignis als werden
wir dieses Referenzereignis Ziel festlegen und es ins Gate bringen. Derjenige, der dieses
Ereignis auslöst, ist das Gate, und das Gate wird sich selbst
referenzieren, und das Interface wird diese Information an unser
Ereignis hier im Licht Also werden wir das hier
haben. Und was wir sonst noch tun
werden, wir werden
zusätzliche Ausgabe hinzufügen,
und diese Ausgabe wird ebenfalls ein
Gate sein , oder wir könnten diesen
Teil überspringen weil wir die
Referenz bereits im Blueprint haben Es gibt keinen Grund, es
zu komplizieren. Was wir tun werden, ist ein
Stück
weit zum Gate zu gelangen Und wenn die Entfernung zum Gate
im Wesentlichen über eine Verzweigung erfolgt, stimmt das, oder es ist eine Entfernung von, wenn sie
näher als 2000 ist, oder? Wir werden das hier hinstellen. Wenn also der Abstand zwischen dem Tor und dem Tor weniger als 2000
beträgt, erhält
es diesen Wert,
Goldbarren, und dieses Goldbarren bestimmt, ob es in der Nähe
ist oder Und wenn ja, werden
wir
unseren festgelegten Zielknoten bekommen, den wir
, glaube ich hier irgendwo
im Spielerbereich
hatten Darstellerrotation oder distanzierter
Spieler einstellen, nachdem wir das festgelegt haben? Ja. Wir mussten den Standort
des Schauspielers ermitteln. Oh ja, da haben wir nicht hingesetzt. Wir haben es hier festgelegt und wir werden
unser neues Ziel festlegen . Übrigens, ich hätte einfach eine Notiz finden können, aber es ist immer besser, Ihren Plan
durchzugehen Wir werden unser neues Ziel festlegen. Wenn es nah genug
ist, werden
wir unser neues
Ziel im Grunde genommen bis zum Tor setzen und diese Veranstaltung ähnlich
wie hier veranstalten. Wir werden bekommen,
wir werden
unsere neue Rotation festlegen und
unsere eigene Rotation einrichten. Was wir ganz einfach machen können ist,
diese Funktion ebenfalls zu duplizieren und sie zu Found Gate Rotation zu machen. Und fügen Sie hier eine Eingabe oder Schauspieler oder Schauspieler, nennen Sie sie Gate, nur um sicherzugehen, dass wir hier nur
die Gangreferenz eingeben, scrollen Sie bei unserer
Gangfunktion, der Torrotation, nach oben Wir haben uns unser Ziel gesetzt. Wir nehmen es als Referenz. Wir gehen zu deinem Zug, besorgen Spielercharakter und
setzen ihn als Ziel. Du bekommst eine neue Rotation der
Ziele. Es gibt keinen Grund
mehr, es festzulegen, da wir stattdessen das bekommen
können .
Und in diesem Fall wird
das Selbst hier nicht
benutzt, weil wir es nicht gebraucht haben. Und in diesem Fall wird
das Selbst hier nicht
benutzt, weil wir es nicht gebraucht haben. Und wir können die genaue Logik, die
wir für die Zeitleiste haben, hier unten für
die Zeitleiste kopieren wir für die Zeitleiste haben . Und wir werden das kopieren Wir werden diesen Ort hier
kopieren und ihn von Anfang an
verwenden. Unsere Ausgänge werden A und B sein, und alles andere
sollte so bleiben, wie es ist. Lassen Sie es uns vorerst testen. Wir machen das. Wir legen das rein. Ich explodiere. Gates in der Nähe sollten sich darauf konzentrieren,
aber sie haben es nicht getan Mal sehen, warum das passiert. Lassen Sie uns zum Federdruck zurückkehren. Jetzt wird das ausgelöst. Dies wird
ebenfalls ausgelöst. Wir lösen das aus. Wir setzen einen Ziel-Spawn und der Grund, warum das immer wieder ausgelöst wird, ist, dass wir das
nicht wirklich verhindern Damit meine ich die
zufällige Lichtbewegung. Wir müssen diese Notiz
hier hinzufügen und sie hier hinzufügen. Und wenn das falsch ist, wie wir es hier gesagt haben, sollte es nicht ausgelöst werden, und das sollte nur
ausgelöst werden, wenn es wahr ist. Und standardmäßig
scheint es so zu sein, lass es uns für alle Fälle
überprüfen. Okay, das
passiert derzeit nicht. Okay, meine
überlegenen Spielfähigkeiten haben sich
hier nicht durchgesetzt. Wir werden rot. Und diese Schauspieler
schauen in eine andere Richtung,
als sie sollten. Mal sehen, was hier vor sich geht. Unser Ausgang A ist hier, das ist unsere aktuelle Rotation. Oh, wir brauchen die Rotation
der Ziele nicht. Das ist ein Fehler meinerseits. Versuchen wir es noch einmal. Und jetzt bekommen
wir dieses interessante
interaktive Spiel. Wir haben hier eine B-Rotation. Legen wir es beiseite und
wir haben eine Rotation, die ihre
eigene aktuelle Rotation sein sollte. Schauen wir uns unsere Veranstaltung an, wie sie hier abgespielt wurde. Wir bekommen unsere
Ausgangswerte A und B, geben sie ein und wir haben Alpha
, wir haben den Alpha-Rotator und wir erhalten die Setter-Rotation, genauso wie wir es hier tun Der einzige Unterschied
wäre , wenn wir
es aktualisieren und es fertig stellen, müssen
wir
sicherstellen, dass es wieder
auf true finished gesetzt wird . Stimmt. Und der Zeitplan
dafür ist 1 Sekunde. Lass uns 3 Sekunden draus machen. Kompilieren, speichern,
zurück zum Ereignisdiagramm.
24. UE5 FC08 02: Schauen wir uns an,
was mit
unserem Entwurf nicht stimmt . Nur
um das noch einmal zu überprüfen Wir haben diese
Zielspanne, wenn sie wahr ist, sollte aufhören zu triggern, da wir nicht topin
wollen , also sollte sie
nicht innerhalb einer Spanne ausgelöst Es sollte bei False ausgelöst werden. Und in Wahrheit
sollte nichts passieren, und wir sollten zufällige Farben
bekommen es
sei denn, sie sind bereits
für die nächsten 3 Hier machen wir genau
das Gleiche. Wir haben eine Verzögerung. Nach der Serienverzögerung fällt
sie wieder ab, sodass alles
wie zuvor funktionieren kann. Werfen wir einen Blick auf
unsere Entfernung zum Gate. Es ist so, wie es sein sollte. Schauen wir uns das an,
und hier ist das Problem. Wir müssen es auch hier
reinstellen. Probiere es, speichere es. Mal sehen, ob es jetzt funktioniert. Wir brauchen nur Lichter
, die dem Tor am nächsten sind, um es einzuschalten. Was sie auch getan haben, aber
es war ziemlich spät. Das mag hauptsächlich daran liegen, dass zu viele Zeitlinien gleichzeitig
laufen Und obwohl das Abspielen
von Anfang an in Ordnung ist, müssen
wir verhindern diese anderen Ereignisse oder Zeitlinien abgespielt werden,
wenn wir das tun, da sie pausiert oder gestoppt werden
müssen Das können wir nun
tun, indem wir
zunächst sicherstellen, dass wir eine
Möglichkeit haben, mit ihnen zu interagieren Fügen wir also eine Sequenz hinzu. Und in dieser Sequenz ziehen
wir das hinein. Wenn alles in Ordnung ist, wird
im Grunde ein
neues Ziel lokalisiert, wir beenden zuerst alle bestehenden
Zeitlinien Und das sollte nicht passieren,
sobald das Spiel beginnt. Nein. Dies sollte auf der
Veranstaltung geschehen, stattdessen mit einem neuen Ziel. Das sollte hier also nicht in mehreren Falten
passieren,
wo Sie es tun werden. Warum habe ich das entfernt? Wir können es vorerst einfach hier
raufholen. Das ist
im Moment sehr unorganisiert, aber wir sollten nicht
zu viel Zeit damit verschwenden Nehmen wir das und legen es hier hin. Wenn also ein neues Ziel ausgelöst wird, werden
diese beiden
sofort gestoppt und wir richten unsere Lichter stattdessen
auf die Lichter aus. Also lass uns das machen. Sie tauchen auf. Und lass uns sehen. Sie beginnen ihre
zufällige Bewegung. Nein, da wir keine
zusätzlichen Informationen hinzugefügt haben. wir also zunächst
sicher, dass mehr Lichter
Fox Gate erreichen können , da wir wollen, dass deutlich wird, dass
etwas vor sich geht. Als Nächstes, nachdem all dies
abgeschlossen ist und wir unser Spiel
beendet haben, müssen
wir hier ganz
zurück zur Sequenz Null gehen hier ganz
zurück zur Sequenz Null Spielen wir es und sehen
wir es uns noch einmal an. Wir machen das. Ich lass uns darauf konzentrieren. Lassen Sie uns jetzt noch einmal
einige Einstellungen ändern. Dies ist ein sehr
unorganisierter Code
, den wir später organisieren werden Schauen wir uns an,
was unser Code macht. Wir bekommen unsere Lichter, wir bekommen unsere Rotation usw.,
und denken Sie daran, dass dies pro Lichtbasis
ist, es ist
also nicht so alle Lichter
gleichzeitig betroffen sind Lichter, die nicht nah
genug sind, sollten nicht beeinträchtigt werden, also müssen wir dafür
die Platzierung ändern Node, wenn das Ziel gespawnt
wird und wenn die Entfernung zum Tor
stimmt, sollte dies ausgelöst werden Und nachdem dies
die anderen beiden gestoppt hat, wir das Objekt für einen anderen Zweck und Lichter, die sich in der Nähe
des neuen Tors befinden, sollten stattdessen
funktionieren Unser Tor wurde sofort fokussiert. In diesem Fall reagieren unsere
Tore hier. Stellen wir sicher, dass
wir es wieder tun. Wir werden es auch wieder für andere Zwecke verwenden, und wir werden sicherstellen, dass nur die Lichter rund um das Tor rot sind
und nicht alle, da es keinen
Zweck erfüllt, wenn sie alle rot Was
wir stattdessen tun werden, ist, dass
wir uns bewegen, wenn das ausgelöst wird und wenn ein
Tor geschossen wird, wenn ein Tor geschossen wird, dass
sie alle grün werden,
ist ziemlich cool Cool. Es ist wie Anfeuern Und wir werden
sicherstellen, dass wir
genug Zeit haben , damit die Ampel grün wird
, wenn wir ein Tor erzielen Gehen wir zu den Bauplänen. Gehen wir zu unserem Ziel. Und bevor der Teleport stattfindet, sollten wir ihn verzögern Verzögerung und wir haben 3
Sekunden grünes Licht. Machen wir es also auch für 3
Sekunden. Grün teleportieren. Bevor also das
Teleport-Event ausgelöst wird, das wir so nennen werden und
all das wird passieren, werden
wir 3 Sekunden
grünes Licht haben Ich bin wirklich schlecht in diesem Spiel. Wir werden die Geschwindigkeit
des Players etwas später ändern. Und wir machen das, 3
Sekunden grünes Licht. Es verschwindet, und
nachdem es verschwunden ist, sollten
sich
alle Lichter darauf konzentrieren. Ja. Lassen Sie uns nun sehen, was hier das Problem
ist. Bei diesem Ereignis, Entfernung
zum Tor, ist ein Fehler aufgetreten. Schauen wir uns an, warum
dieser Fehler aufgetreten ist. Unser Event „Entfernung zum Tor “
heißt hier ganz oben. Aber damit das funktioniert, müssen
wir nicht wirklich
viel tun. Schauen wir uns also das an. Zugangsknoten Roy Red
wahrscheinlich Gate Gate. Weniger als 2000, wir werden versteigert. Also versuchen sie,
den Knoten namens Gate zu lesen. Übrigens, das sind jetzt weniger als 3.000, aber es ist Sünde. Und statt weniger als rufen
wir einfach ss an. Dies ist der Wert
, den es zu lesen versucht. Und wenn Sie sich das Diagramm
ansehen,
das
Ziel nach dem Erstellen eines neuen Ziels, erhält
es eine Referenz
für das neue Ziel, und diese Referenz erstreckt sich
über die Entfernung bis zum Tor. Und wenn es näher
als der bestimmte Bereich ist, wir
zunächst sicherstellen, dass unsere Lichtänderungswerte
tatsächlich danach kommen. Also werden wir das vorerst speichern und sorgen, dass
dieser Verzweigungsknoten vor all dem steht. Wir haben diese Entfernung. Wenn es weniger ist, gehen
wir durch, und von da an machen
wir das, und von hier aus gehen
wir zur Reihenfolge über , und diese Reihenfolge der Operationen
sollte korrekter sein. Lass es uns testen. Wir
haben das, wir lassen das fallen. Wir haben diesen Bildschirm, eins, zwei, drei, er verschwindet. Wenn sie in der Nähe sind, sollten sie ihre Farbe
ändern und rot werden. Aber aus irgendeinem Grund haben
sie das nicht getan Lassen Sie uns
jetzt alle Probleme beheben, die wir mit diesem Licht haben,
und damit fertig. Der Grund, warum das nicht so
funktioniert, wie
wir es uns wünschen, ist, dass es hier mehrere Interaktionen
gibt hier mehrere Interaktionen
gibt einfach nicht der richtigen
Reihenfolge folgen. Lassen Sie uns also zunächst sicherstellen, dass wir nicht einfach, obwohl wir das Event starten
müssen, das Spiel beginnen müssen, wir wollen nicht, dass
diese Knoten jedes Mal von
überall
her kommen . Lassen Sie uns stattdessen
auf Constant Event klicken. Das kannst du einfach anrufen. Nennen wir Constant Event und wir können es einfach Restart nennen. Starten Sie den gesamten
Vorgang im Wesentlichen von
Anfang an neu. Dies wird jedes
Mal ausgelöst, wenn der Neustart aufgerufen wird, und wir können es hier platzieren, zum Beispiel Art, Call Function. Und wir werden
unsere Szene hier ziemlich aufräumen. Wir haben diesen Sequenz-Trigger und wir haben diesen
Sequenz-Trigger von hier, zurück zu unserem distanzierten Spieler Stellen wir sicher, dass das anstatt
zu unserem distanzierten
Spieler zu gehen , neu gestartet wird Also werden wir diese
Funktion hier noch einmal aufrufen. Wir können das einfach kopieren
und hier einfügen. Wenn also dieses ganze Alles hier endet und es fertig ist, testen
wir unseren Abstand
zum Spieler und wenn alles
so ist, wie es sein sollte, starten
wir den ganzen Vorgang neu. Schauen wir uns das nochmal an. Wir haben einen Neustart,
wir haben eine Reihenfolge , die sich hier unterscheidet, wir haben Ereignisse, die ablaufen Und wenn das alles vorbei ist, starten
wir unseren Knoten Wir beenden diese beiden Ereignisse hier. Aber anstatt dies zu verwenden, können
wir ein benutzerdefiniertes Ereignis erstellen. Nennen wir es Stopp und wir können meine Bologien
kontrollieren. Wir können
das bis hier unten durchbrechen Anstatt diesen Knoten zu haben, gehen wir bis hierher, was
wir tun können, ist ihn zu entfernen Es ist wahr, das folgt einfach. Wir verwenden den Stoppknoten,
um diesen zu stoppen, und fügen hier eine Sequenz hinzu. Wir stoppen diesen oben und wir stoppen diesen
unten. Viel sauberer. Spaghetti-Code. Wir haben hier in der untersten Reihe nichts mehr
, was
wir wirklich aufräumen müssen , und wir können
es einfach ein bisschen verschieben Und hier, lassen Sie uns einen Blick darauf werfen. Wir stoppen es
, wenn wir müssen. Wir haben diese Verzögerung, die bis zur
zufälligen Generierung zurückreicht . Rufen wir stattdessen erneut unsere
Neustartfunktion auf. Also damit es überprüft wird. Es gibt eine Verzögerung, nachdem
alles fertig ist und wir alles
neu starten und
dann alles neu starten Wir werden
diesen ganzen Prozess noch einmal durchgehen. Wir werden unsere neue zufällige Farbe bekommen. Das wird ausgelöst. Stellen wir sicher, dass sich alles hier
im Kommentarbereich befindet. Wir haben doppelte Verzweigungen
für die Entfernung zum Spieler und für die Entfernung, ob das neue Ziel
verfügbar ist oder nicht. Das ist einfach eine sauberere
Methode,
damit wir nicht in diesen Albtraum
geraten müssen. Wir könnten Funktionen usw. erstellen, um es noch
kompakter zu machen,
aber ich glaube, das ist in Ordnung Sie können übrigens
Alt-Rechtsklick und Links-Alt-Klick und Rechtsklick gedrückt halten
und mit der Maus herumbewegen, um Ihre Zoomstufen zu ändern Und hier ist alles in Ordnung. Jetzt haben wir es organisiert, aber lassen Sie uns etwas ändern. Wir sollten das vorantreiben. Und lassen Sie uns vorerst unsere Referenzen
hier und unanhängen
vernichten Ziehen wir unser gesamtes
Larp, usw., die
Rotation, alles hier, in
das Eventdiagramm, Neues Zielereignis Und lassen Sie uns unsere
Zielvariable verwenden und sie hier setzen. Auf diese Weise müssen wir nicht jedes Mal
auf die Schnittstelle verweisen. Wir haben es einmal verstanden. Und jedes Mal, wenn
wir es brauchen , holen wir es uns hier
vom Set und wir machen das auch hier. Und wenn wir spielen, wenn
wir mit dem Spielen fertig sind, legen
wir das Ziel fest
und starten neu Und bevor wir uns
um die Ampel bewegen, wollen
wir sie rot machen Daher werden wir sie hierher
verlegen. Und wenn wir die rechte Seite gefunden
haben, verschieben wir sie und wir
spielen von Anfang an. Und wenn das
erledigt ist,
setzen wir wieder auf Spin, Delay Und ich glaube, wir
müssen das nochmal ändern, nur um sicherzugehen Aber lass uns kompilieren.
Wählen Sie Play aus. Mal sehen, was passiert. Wir bewegen unseren Ball, alles wird grün. Wir bekommen neue Bälle. Alles konzentriert sich darauf. Aber jetzt sind sie dran hängengeblieben. Der Grund, warum das passiert,
ist dieser Wert hier. Mal sehen, was wieder passiert. Wir verschieben es. Ich bin ein sehr schlechter Spieler, also lass es uns einfach
direkt davor fallen lassen. Wir lassen es platzen.
Alles ist grün, es wird erneut ausgelöst. Und wir haben sie hier, aber sie haben nicht
die richtige Farbe. Das liegt zum Teil daran, dass wir viele
Neustartknoten haben. Das passiert, wenn es
fertig ist und es 3 Sekunden sind. Dieser Triggerfortschritt
und der nächste Trigger erfolgt in BPG, in bPLTE Wenn wir uns hier
unser Event-Ziel ansehen, das
Spawn des Ziels um
3 Sekunden zu verzögern, Ziels um
3 Sekunden zu verzögern wird damit eigentlich nichts erneut ausgelöst Aber das hat stattdessen eine Verzögerung. Lassen Sie uns stattdessen das entfernen. Und wir entfernen den Zweig hier. Wir fügen diese Verzögerung hinzu, aber danach fügen wir
unseren Neustartknoten Call hinzu. Und hier wollen
wir sicherstellen, dass unser Neustart nicht
aufgerufen wird, wenn wir ihn nicht benötigen. Wir haben unsere Filiale
, die bis hierher reicht. Das sollte niemals
an distanzierte Spieler gehen. T sollte zunächst in die Filiale gehen. Und wenn es wahr ist,
sollte das nicht ausgelöst werden. Oder lassen Sie uns unser Goldbarren noch einmal überprüfen. Wenn es falsch ist, sollte
es ausgelöst werden. Wenn es wahr ist,
sollte es nicht ausgelöst werden. Und wenn zufällige Strahlung
und Erzeugung an Ort und Stelle sind, also die Rotation des
Detektors, verzögern
wir das Wir haben eine Distanzrotation,
wir kommen durch. Und wenn wir das bekommen,
entfernen wir es von hier und fügen hier einen zusätzlichen Neustartknoten hinzu. Wenn es wahr ist, kompiliere. Wir haben die Sequenz, die
diese beiden Zeitlinien stoppt , und
nachdem sie gestoppt wurden, werden
sie nicht in Echtzeit
aktualisiert Daher können wir es einfach ein bisschen
verschieben. Wir bekommen eine
tatsächliche Übertragung,
und wenn das erledigt ist, wird geprüft, ob
es sich in der Nähe
des Spielers befindet oder nicht Wenn es falsch ist, setzen wir
unsere Rotation auf Standard, was wir nicht mehr tun
müssen weil wir
unser Lichtsystem geändert haben, und wenn es falsch ist, starten
wir unser Lichtsystem Versuchen wir es also noch einmal. Alles funktioniert
wie es sollte. Wenn ich in der Nähe von
Lichtern bin, zielen sie auf mich, ich setze sie ein und lassen uns
sehen, wie sie wieder reagieren. Sie reagieren auf das Tor und
fokussieren es so, wie sie sollten. Und wenn es mit dem Spielen
fertig ist, sollten
sie anfangen, sich zu bewegen Und der Grund, warum das
nicht passiert, ist, dass wir
diese Operation zu
keinem Zeitpunkt beenden werden. Also aktualisieren wir es, und wenn es fertig ist, wird
es neu gestartet Aber wir müssen Target Spawn auf False
setzen , bevor wir es beenden. Sie müssen sicherstellen, dass
es herunterfällt, damit die Lichter, die vom Tor
betroffen sind wieder betriebsbereit
sind Wir legen den Ball rein,
gib uns den Moment. Ich bin aufgetaucht. Die Lichter schauen darauf und die Lichter
funktionieren wieder, aber jetzt haben wir ein
Problem mit den Farben Lassen Sie uns jetzt auch das beheben und wir sind mit
dem Lichtsystem fertig. Wenn die Eventfarbe ausgelöst wird, bekommen
wir unseren Ziel-Spawn und die Lichter grün werden Lassen Sie uns das noch einmal bestätigen. Wir schaffen das,
eins, zwei, aber die Lichter, die auf den Spieler
abzielen,
ändern sofort ihre Farbe Nun, das passiert aus einem sehr einfachen Grund. unserer Neustartnotiz wird diese zufällige
Farbsequenz ebenfalls
wiederholt. Wenn wir das also einfach
von hier runterziehen und hier ablegen, sollte
das all
unsere verbleibenden Probleme lösen. Lassen Sie uns das erledigen und wir bekommen unser grünes Licht und unser
grünes Licht ist da, wir bekommen unsere zufälligen
Farben und Torfarben. Jetzt bekommen wir
unsere zufälligen Farben nicht zurück. Der Grund dafür ist, dass kein Ereignis erneut ausgelöst
wird, indem wir zufällige Farben
erhalten, was wir ganz einfach selbst
tun können, indem wir sicherstellen ,
wenn diese Sequenz endet und
diese Sequenz hier endet, wir,
wenn diese Sequenz endet und
diese Sequenz hier endet, ein Ereignis nennen, das zufällige Farben
startet Nennen wir also ein benutzerdefiniertes Ereignis. Nennen wir es Random Caller B Set. Nochmals, nicht der
beste Sinn für Namen, aber wir werden einfach
damit weitermachen Und wir werden
dieses Ereignis hier ganz
oben nennen , wo wir unser Licht bearbeiten. Und wenn wir hier auf
das Ziel klicken, müssen
wir das in diesem Fall nicht wirklich tun, denn
nachdem wir dieses Ereignis ausgelöst haben , bekommen
wir dieses Ereignis ganz oben, sodass Sie es hier einfach nicht
neu starten können, und es sollte gut funktionieren. Wir lösen das aus, Lichter
folgen uns, wenn wir uns nähern. Dort drehten sich Tore, die
Lichter werden rot und sie bewegen sich wieder. Das grüne Licht hier
bleibt wie es sollte denn wenn dieses grüne
Licht von selbst ausgelöst wird, werden sie nicht neu gestartet,
wenn
sie nicht in der Nähe neu gestartet,
wenn
sie nicht Also müssen wir diesen
grünen Licht-Reset hier hinzufügen. Wenn wir es jetzt direkt hinzufügen, wird es irgendwie überschrieben Deshalb ist es so wichtig,
die Sequenzierung im
Blueprint zu verstehen die Sequenzierung im
Blueprint Sie denken vielleicht: Oh,
ich habe es schon gemacht, aber die Sequenzierung
selbst könnte ein Problem sein Sie bekommen zufällige Farben
und diese wird grün. Nur um sicherzugehen, dass der
Rest
grün bleibt , während
man sich auf das grüne konzentriert. Machen wir es mit einer Verzögerung von 6 Sekunden. Das sagt 3 Sekunden und wir haben eine Verzögerung von drei Sekunden,
bevor es beginnt. Die Lichter, die
nicht geschlossen sind, werden also rot. Und nur um
sicherzugehen, dass wir auf jeden Fall Grün und Rot
sehen können. Suchen wir uns den Punkt
und stellen die Intensität ein. Wir werden es zurücksetzen. Nochmals, normalerweise haben
wir 40.000. Machen wir 80.000 draus. Und wir werden das noch einmal kopieren. Und wenn wir fertig sind und
all das machen, werden
wir es wieder auf 40.000 setzen. Wenn wir also
mit unserer Operation
und dem Gate-Event fertig sind , bringen
wir sie zurück. Lass es uns runterholen. Wir kriegen es rein. Wir bekommen unsere
Farbe, wohingegen der Gang Durch die Gangart hat die
Leuchtkraft zugenommen, und lassen wir unser Atentan
reduzieren, das ist Das Einzige, was jetzt
geändert werden muss, ist die Farbe selbst. Und lass
es uns nicht hellrot
machen, es dunkler machen,
kombinieren, spielen, speichern. Und wir haben das reingetragen. Wir holen
unsere Lichter, wo ist unser Git. Es ist unser Tor. Das ist ein Unterschied,
aber das sollte reichen. Wir könnten und ich denke,
wir sollten
die
Standard-Lumenintensität für diese 20 ändern und den
Bereich verringern, damit nicht zu viele Lichter überall
hin und her fallen Und jetzt versuchen wir es noch einmal. Wir haben diese Lichter und plötzlich bekommen wir hier rote Ampeln. Und ich denke, wir könnten dafür sorgen, dass
rote Ampeln länger bleiben ,
aber auch das ist momentan nur eine
Frage der Wahl, und ich möchte
keine Zeit mehr mit Licht verschwenden. Also werden wir jetzt damit aufhören, alles
auf der Ampel nach dem
Zufallsprinzip zu ordnen, und verwenden wir einfach Kommentare und so, um die Veranstaltung zu
organisieren Also gib grünes Licht. Und das werden sein neue Ziele
sein. Wir werden diesen rot
machen. Und dieser ist grün. Lassen Sie uns sie ändern, um zu
sehen, ob wir noch etwas anderes haben. Wir haben unser Ziel, folgen einem
Ziel oder, um genau zu sein. Folgen Sie klar, wir haben unsere zufällige Lichtbewegung und unsere zufällige Farbe
für die Lichter. Und das ist genug. Wir haben unsere neuen Veranstaltungen, wir sind unsere Eventveranstalter,
die diese Veranstaltungen ausrufen Und jetzt stellen wir sicher, dass
wir zu
Beginn
des Spiels genügend Pools in der Szene Also was wir tun können,
wir können Nein hinzufügen, wir können diesen
auf dem Spielfeld belassen. Die Fehlermeldung kam daher , dass wir standardmäßig darauf
verwiesen haben. Das
müssen wir derzeit nicht wirklich, aber wir können es
drin lassen. Das ist kein Problem. Also lass es uns einfach hier haben. Ich möchte zu Beginn des Events mehrere
Bälle spawnen . Fügen wir der Szene also einfach viel
mehr Bälle hinzu. Nur um die Szene zu haben. Und was ich
tun werde, weil ich
so viele Bolspwers hinzugefügt habe
und ich nicht wirklich
ein ausgewogenes Spiel machen
will wirklich
ein ausgewogenes Spiel machen
will Wir machen das auch zu
Demonstrationszwecken. Schließlich werde ich, anstatt
dieses Event N-mal durchzuführen, play hinzufügen und bei beginnendem Spiel werde
ich N machen, werde
ich N machen dieses
Event
im Grunde dreimal machen. Und bei der Torauswertung des Events setze
ich das Spiel zurück und mache es erneut. Ganz am
Anfang des Spiels werden
dadurch eine Menge Bälle erscheinen, die ich benutzen kann Und wenn ich ein Tor schieße, was mir aus
irgendeinem Grund ziemlich schwer fällt , probieren wir es aus Wir fügen diesen Ball und Bam hinzu.
Wir haben viel mehr Bälle Was wir auch tun können, wir können
all unsere Ballsponer hierher mitnehmen all unsere Ballsponer hierher Klicken Sie bei gedrückter Umschalttaste und heben Sie
sie in die Luft. Und ich glaube, lassen Sie uns das
ein bisschen mehr zentrieren. Und jetzt werden sie vom Himmel
fallen, und wir
fügen sie einem Ordner hinzu,
nennen wir ihn A Underscore Spooners nennen wir ihn A Underscore Spooners Ich muss in Ordnernamen keinen
Unterstrich verwenden, aber das ist nur eine Gewohnheit, und wir werden einen
grünen Ball auf
einmal haben und unser
Startdatum ist da,
also können wir einfach damit beginnen, diese beiden hier zu
platzieren, und wir können unser Spiel lexis beginnen Und wenn wir unser Spiel beginnen, haben
wir eine Menge Bälle, mit denen wir umgehen
müssen Wir können sie bewegen. Und
wenn wir einen hineinlegen, bekommen
wir noch mehr Bälle,
und Bälle können nicht aus dem
Feld gehen , weil es dort zu
Kollisionen kommt. Und jetzt haben wir ein Spiel, bei dem
unendlich viele Bälle erzeugt werden,
bis man darin ertrinkt Jetzt sind wir fertig mit Blitzen, Gangart und Gameplay-Elementen, den Interaktionen zwischen ihnen, und wir werden in diesem Kurs mit
Gameplay-Erweiterungen
aufhören in diesem Kurs mit
Gameplay-Erweiterungen
aufhören
25. UE5 FC08 03: Lassen Sie uns nun über den Charakter der dritten
Person sprechen und darüber,
was wir damit machen können. In diesem Fall ist der Charakter der dritten
Person unser unwirkliches Mannequin, das uns standardmäßig zur
Verfügung gestellt wird Ich werde einige
der Parameter erläutern
, die Sie hinzufügen können und einige nützliche Komponenten , die wir für unsere Schauspieler verwenden können, und vielleicht
fügen wir sogar einige wenige als Dekoration
in Wenn du zu
deinem Inhaltsordner, den Bauplänen für
Dritte,
zurückkehrst , wirst du
deinen
Charakter aus der dritten Person finden . Öffne ihn Und Sie werden feststellen, dass
es
hier eine Menge Dinge für Sprünge, Bewegung erweiterte Eingabeaktionen gibt, die in diesem Kurs nicht
erklärt werden, aber sie sind die unwirkliche neue
Art , Schauspielern Input zu geben Das ist ein Thema für
den nächsten Kurs. Und hier haben wir unseren
Viewport, unseren Charakter, Kollisionsbox oder Kapselkomponente
unseres Charakters
und unsere Kamera, die dem Charakter folgt, unsere
Bewegungskomponente des Charakters Darauf werden
wir uns heute konzentrieren. Wir haben hier eine Komponente zur
Charakterbewegung, und wenn Sie einen
Blick auf das Detailfenster werfen, werden
Sie viele
Dinge sehen, die Sie vielleicht nützlich finden. Wir haben also unsere Beschleunigung. Wir haben unsere Bewegungsgeschwindigkeit, Schwimmgeschwindigkeit usw. Wir werden uns nicht
auf jeden einzelnen von ihnen konzentrieren. Was wir brauchen, ist unsere Geschwindigkeit. Im Moment haben wir also eine Höchstgeschwindigkeit
von 500, was meiner Meinung nach nicht besonders
hoch genug ist , um
dieses riesige Gebiet zu befahren Es fühlt sich sehr langsam an.
Erhöhen wir es. Erhöhen wir es also, sagen
wir, um
1.500 und machen wir es auf 2000. Lass uns jetzt spielen sehen. Jetzt
bewegt sich unser Charakter viel schneller und wir können vielleicht
sogar etwas erzielen. Und wenn wir etwas treffen, sinkt
unsere Bewegungsgeschwindigkeit etwas, aber wir können unsere
Bälle fangen und sie steuern. Lass es uns noch einmal versuchen. Wir können jetzt unsere andere Gangart
finden und
es mit Ja wiederholen Und wir können das so oft wiederholen wie wir wollen und den
gesamten sichtbaren Bildschirm ausfüllen Jetzt stellen Sie vielleicht fest, dass wir jetzt eine
maximale LK-Geschwindigkeit von 20 k haben , wie
ich sie zuvor eingegeben habe. Aber wenn ich Z kontrolliere und
es wieder auf 500 setze oder
auch Y kontrolliere, sind die Unterschiede
hier riesig. Die Tatsache, dass man einfach mit
einer höheren und
höheren Geschwindigkeit fahren kann einer höheren und
höheren Geschwindigkeit , liegt daran wir ein gewisses
Maß an Beschleunigung haben, und wenn ich nicht auf etwas treffe, sinkt
es,
wir werden die Höchstgeschwindigkeit verringern , sagen wir, wir
teilen es einfach durch zwei. Ich glaube, diese Zahl war für unsere Zwecke
zu hoch. Mal sehen, und wir
haben immer noch eine Geschwindigkeit, die hoch genug ist. Aber was ist, wenn Sie
eine gewisse Beschleunigung haben eine gewisse Beschleunigung möchten,
aber nicht sofort auf hohe Geschwindigkeit
umsteigen möchten Hier kommt unsere
Beschleunigung ins Spiel. Und wenn Sie sich unsere Beschleunigung
ansehen, liegt
unsere maximale Beschleunigung derzeit bei 1.500. Wenn wir es auf eine
höhere Zahl setzen, sagen wir
5.000, kompilieren Sie und drücken Sie Play. Wir werden die Geschwindigkeit sofort erhöhen und sie wird immer höher
und
höher werden, bis wir unsere Höchstgeschwindigkeit
erreichen,
die meiner Meinung nach höher werden, bis wir unsere Höchstgeschwindigkeit
erreichen, bereits zu hoch ist. Lassen Sie uns also die Beschleunigung auf
3.000 setzen und sicherstellen, dass unsere Höchstgeschwindigkeit nicht
annähernd diese lächerliche Zahl erreicht. Wir setzen es zurück, es ist sehr langsam, also sagen wir mal, was
können wir hier tun? Standardmäßig? Ich glaube, es waren 500. Und multiplizieren wir
es mit, sagen wir, sechs. Und unsere maximale Beschleunigung
kann mit zwei multipliziert werden. Wir haben hier zusätzliche
Optionen für die Schwerkraft, wie viel Schwerkraft auf diesen Charakter
angewendet
werden soll Wir könnten sie reduzieren,
wodurch wir
höher springen könnten und unser Sturz langsamer wäre .
Wir könnten sie reduzieren,
wodurch wir
höher springen könnten und unser Sturz langsamer wäre Was wir tun können, ist unsere Sprunggeschwindigkeit zu
erhöhen. Lassen Sie uns also unsere
Sprunggeschwindigkeit verdoppeln
und sagen wir, sie verdreifachen. Kompilieren Sie es, drücken Sie auf Play, und jetzt haben wir einen Superman-Sprung ,
und wir können tatsächlich aus den Grenzen
springen, was
ich nicht möchte Also reduzieren wir unser
Springen standardmäßig um 300
und machen wir 800 Schritt. Gehen wir also zurück. Wir sind hoch, ich
hätte gerne einen Sprung
hoch genug, um über die Bälle zu
springen, aber nicht hoch genug, um das Level zu verlassen. Ich könnte immer noch einen
Laufball oben auf das Level legen, aber das werden wir nicht tun, da wir unseren Sprung bewusst
begrenzt Instanz. Wir haben eine
Luftregelung, mit der wir einstellen können,
wie sehr wir den Charakter
kontrollieren können ,
während er sich bewegt, und wir haben viel mehr
Einstellungen für das Fliegen, Schwimmen und für
physikalische Interaktionen. Und darauf
möchte ich mich konzentrieren. Wir haben ein Spiel, in dem wir Objekte
bewegen, die auf Physik basieren. Also werden wir all
diese Optionen verstecken , die wir eigentlich
nicht benötigen. Und wir werden uns
nur auf unsere Physik konzentrieren. Wie Sie sehen können, gibt es
hier viele Optionen , deren
Durchsicht ewig dauern würde. Suchen wir also einfach nach Physik. Und wir haben unsere physikalischen
Interaktionsoptionen. Wir haben
physische Interaktion ermöglicht, was stimmt, wir brauchen sie. Und was wir für Alvin haben, grenzt an
ein Physikobjekt. Wenn wir also auf
ein Objekt treffen oder
mit ihm kollidieren, üben wir eine Kraft von 500 Wenn wir den Wert auf
etwa 5.000 erhöhen , kompilieren
und abspielen, und wir interagieren mit einem Objekt, sagen
wir, wird
viel mehr Kraft
angewendet als zuvor Und wenn wir hier eine
lächerliche Menge hinzufügen, sagen
wir, es wird passieren, sie werden sofort verfliegen, sobald
wir sie berühren. Das mag lustig aussehen, aber es ist nicht ideal, wenn alles, was man berührt, explodiert und innerhalb einer Sekunde in
Vergessenheit gerät Aber ich wünsche mir eine zusätzliche Wirkung wenn wir Daher werden wir auf Play
drücken und mal sehen. Unsere Kraft reicht jetzt aus, um mehrere Bälle gleichzeitig
herunterzuziehen , und wir
können uns einfach bewegen. Und mit unserer erhöhten Geschwindigkeit können
wir das so
oft wiederholen, wie wir wollen Nun, hier könnten wir auch darauf klicken und wenn wir die
minimale Berührungskraft erhöhen
, also die
minimale Kraft, die wir auf
etwas wie sagen wir
2000 anwenden können und sagen wir,
es ist jetzt auch unser Maximum. Wenn du kompilierst und auf Play drückst, bekommen
wir diese
seltsame Interaktion. Wir
machen eigentlich nicht viel anders. Sie fragen sich vielleicht, was das in diesem Fall
ist. Ist das die
ausgeübte Kraft, nicht die Schubkraft? Als solches ist es nicht
genau dasselbe. Es ist eine Berechnung, die
auf der Höhe der Kraft basiert. Wenn Sie versuchen,
zusätzliche Kraft pro Kilogramm hinzuzufügen, was für
physikalische Simulationen nützlich ist, aber nicht hilfreich ist, wenn es darum geht, tatsächliche Objekte
zu bewegen Stellen wir sicher, dass wir
unsere Optionen immer noch
wie gewünscht aktiviert haben , und wir werden diesen Abschnitt jetzt
verlassen Und wir werden
ganz kurz über Objekte,
Komponenten und
Akteurkomponenten sprechen , um das klarzustellen. Deshalb haben wir bereits einige
Baupläne erstellt. Und lassen Sie uns noch einen erstellen. Und diesen, den
wir einfach zum Schauspieler machen werden, werden
wir
vorerst als Test bezeichnen , weil wir ihn
nicht behalten werden. Wir werden ein Netz hinzufügen,
und sagen wir, wir fügen hier
ein statisches Netz hinzu, und wir können dieses statische Netz
zu Let's do this Pyramide machen . Fügen wir auch das
Material dafür , denn warum nicht?
Wir kompilieren das. Und wenn Sie hier oben auf
Hinzufügen klicken, finden
Sie viele
Komponenten, die Sie hinzufügen können. Wir haben KI-Elemente, wir haben Audiohinweise, wir haben zusätzliche Formen, Kamera, Federarm usw. Alle von ihnen sind sehr nützlich und sie sind etwas ganz Besonderes Aber worüber wir hier
sprechen werden, ist Bewegung. Wir haben Schwebe-, Bestattungs
-, Projektilbewegungen
und rotierende Wenn die Projektilbewegung auf einen Akteur
angewendet wird, gehen
wir los und bringen sie
wieder auf die Ebene zurück Wenn du eine
Projektilbewegung bist, hier. Angewandt. Dann gehen wir
zur Projektgeschwindigkeit über, und nehmen wir an, die
Projektgeschwindigkeit beträgt 10.000. Machen wir eine
kleinere Zahl, damit wir sie ohne
Probleme sehen
können, und die Höchstgeschwindigkeit ist etwa 2000, derselbe Punkt wie zuvor, Beschleunigung und Höchstgeschwindigkeit. Und was wir tun können, ist Schwerkraft
zu
deaktivieren, wenn wir wollen , sodass es nie eine
Anziehungskraft hat oder so, aber wir lassen es so
wie es ist und drücken auf Simulieren Diese Ereignisse
werden uns eine Menge Fehler bescheren, da es keinen Spielercharakter
gibt,
aber ihr habt vielleicht bemerkt, dass er sich, anstatt an einem Ort zu verharren, von selbst vorangetrieben
hat Der Grund für diese Speicherung
liegt in der Bewegung der Projektile Dies wird
als Projektil angesehen. Und wenn wir
die Schwerkraft-Skala auf Null reduzieren ,
kompilieren, auf Play drücken Das wird sich einfach bis ins Unendliche bewegen,
da keine
Projekt-Schwerkraft
darauf angewendet wird, es
sei denn, es trifft tatsächlich auf
etwas und zerstört sich selbst als Projektil
, das du in den
Bauplan des Projektils
hinzufügen müsstest in den
Bauplan des Projektils
hinzufügen Das wird einfach unendlich
in eine Richtung gehen Das ist natürlich sehr nützlich, um Spiele zu
machen. man Projektile,
Kugeln, vielleicht eine Art
Kugel oder Objekte
haben möchte , wenn man zwei D- und
nicht zwei D-ähnliche A-Spiele macht, wo man interagierbare
Schauspieler haben möchte, die man spawnen und zerstören
kann und die sich in eine wo man interagierbare
Schauspieler haben möchte bestimmte spawnen und zerstören
kann und Richtung bewegen
müssen Ihr könnt nur die Projektilbewegung verwenden. Schauen wir uns nun
die andere Bewegungsoption an. Dies ist eine rotierende Bewegung, und was eine rotierende
Bewegung bewirkt, ist, dass sie sich mit
einer bestimmten Geschwindigkeit in eine
bestimmte Richtung dreht einer bestimmten Geschwindigkeit in eine
bestimmte Richtung Wenn wir also zum Level zurückkehren
und es größer machen, machen
wir es viel größer Und lass uns auf Play drücken. Sie werden feststellen, dass es sich in seinem Raum
bewegt. Sie können dies als
Dekoration in der Umgebung verwenden. Wenn Sie möchten, dass sich einige
Objekte einfach drehen, oder Sie können sie
als Gameplay-Element verwenden. Es liegt an dir. Aber das alles führt dazu, dass der
Schauspieler nur abwechselnd an einem Ort sitzt. Es wird am häufigsten
für Pickups wie Münzen,
Heltrops, Met-Kits und so in
Spielen verwendet , bei denen dieser Tonabnehmer einfach an einer Stelle
rotiert Das kann zu keinem
Zweck verwendet werden: Du musst
deinem Bauplan keine
weiteren Elemente hinzufügen, außer dass du sie
nur durch Drehbewegungen drehen musst deinem Bauplan keine
weiteren Elemente hinzufügen, außer ,
um sie zu drehen Und das spart Zeit
für eine sehr einfache Sache, die normalerweise viel
mehr Zeit in Anspruch nimmt, weil Sie ein Ereignis aufrufen
müssen
, das ein Objekt
in einem bestimmten Radius in eine Richtung dreht , und zwar
in jedem Frame des Spiels Du kannst das alles einfach überspringen und
das einfach hinzufügen. Wenn Sie also etwas benötigen, das sich einfach an einer Stelle
drehen soll,
verwenden Sie die Drehbewegung. Stattdessen müssen Sie keine komplizierte Vektormathematik
verwenden. Und das ist so ziemlich alles, was wir brauchen, um uns daran zu erinnern
, dass Unreal ein sehr,
sehr teures Tool
für die Spieleentwicklung ist sehr teures Tool
für die Spieleentwicklung Es hat alles. Es hat so viele Dinge, über die wir noch nicht einmal gesprochen, nicht einmal erwähnt haben. Ich habe versucht, so
viel wie möglich abzudecken, und ich werde es auf ein
Minimum beschränken, Komplexität. Aber ihr müsst alle
irgendwo anfangen, um diese Engine zu lernen. Und um voranzukommen, müssen
Sie zunächst
diese grundlegenden Fähigkeiten erlernen . Und was noch wichtiger ist , dass Sie
verstehen müssen, wie Schauspieler, wie Code, wie alles in der CD-Welt
miteinander interagiert So können Sie sich
Ihren Weg zu dem bahnen, was Sie
tatsächlich erstellen möchten Fangen Sie nicht mit
übermäßig komplexen Ideen an. Selbst die einfachsten
Dinge in Spielen sind normalerweise
kompliziert zu integrieren, und einige sehr komplizierte
Dinge können tatsächlich einfach sein In den meisten Fällen ist das nicht intuitiv. Das Schwierigste an diesem Prototyp, den wir entwickelt haben waren die
Lichtinteraktionen.
Die Tatsache, dass wir sie so
oft in so vielen Variationen durchführen
mussten , ist nur ein Beweis dafür, wie schwierig die Lichtsysteme in allen
Spielen im Allgemeinen sind Normalerweise würdest du nicht
einmal
so viele Lichter haben wollen , weil es
leistungsstark ist. Und in diesem Level war
es am einfachsten, das
Gameplay-Element selbst zu erstellen , das darin bestand, die Bälle einfach
in das Tor zu schieben und sie explodieren
zu In dem Moment,
in dem du deinem Level ein gewisses Maß
an Komplexität hinzufügst ,
in dem du deinem Level ein gewisses Maß
an Komplexität mehrere Lichter , indem mehrere Lichter mit einem
anderen Akteur
interagieren usw., wird
das Spiel plötzlich zu einer
technischen Aufgabe, bei der
du sicherstellst, dass
du nicht viele Ressourcen verbrauchst , aber
gleichzeitig versuchst,
etwas zu machen,
das gut aussieht , Spaß macht und jeder Hinsicht
und Ziele,
dein Traumspiel Es gibt noch viel mehr zu besprechen. Aus diesem Grund werden wir in Zukunft Kurse für
Fortgeschrittene und Experten
anbieten. Und wir werden auch Einzelkurse für
einige Fächer anbieten, für die die einzelnen Kurse
erforderlich ,
wie
zum Beispiel Material, Blitze an sich, Animation, über
die wir in diesem Kurs noch nicht einmal gesprochen haben, wie man Animationen erstellt, wie man Animationen anwendet, wie man KI in Unreal einsetzt Und mit KI meine ich nicht nur KI für die Bewegung der
Charaktere im Spiel,
sondern auch die KI selbst, sondern auch die KI selbst, Beispiel die künstliche Programmierung
auf Basis generativer Notizen In Unreal kann man viele
Dinge machen, außer Spielen, man
kann auch Filme produzieren Sie können Simulationen
aus wissenschaftlichen
Gründen durchführen , wenn Sie möchten Und Unreal fügt Engine immer mehr Funktionen
hinzu Es gibt also immer neue
Themen zu entdecken. Und es gibt unzählige
Möglichkeiten sich
zu verbessern Denken Sie daran, dass Sie nicht
alles im Unwirklichen wissen müssen Sie müssen Unreal so weit verstehen, dass Sie damit arbeiten
können Aber wenn Sie kein
Indie-Spieleentwickler sind
oder versuchen,
im Spieleentwickler zu sein, müssen
Sie nicht
jeden Aspekt der Engine kennen Was ich
dir empfehlen würde, um
mit dem Erlernen der Grundlagen zu beginnen Und wenn Sie sich Ihren Grundlagen vertraut gemacht haben, fangen Sie an
zu experimentieren. Versuchen Sie, etwas
Interessantes zu kreieren ,
suchen Sie nach Informationen Wenn du
etwas nicht verstehst oder eine passende
Anleitung dafür benötigst, beantworten
wir gerne deine Fragen und schau dir
gerne auch unsere
anderen neuen Kurse an. Es wird immer
mehr zu lernen geben. Und irgendwann müssen
Sie sich vielleicht entscheiden, ob Sie sich auf einen bestimmten
Bereich der Engine spezialisieren und als
Team mit anderen Leuten zusammenarbeiten ,
um Ihr Spiel zu entwickeln, oder ob Sie
Ihr Spiel eingrenzen und alleine daran arbeiten Wir haben
in diesem Kurs nicht auf die Verwendung von Marketplace-Ressourcen eingegangen, da ich so wenig
Störungen von außen wie möglich
nutzen möchte so wenig
Störungen von außen wie möglich
nutzen Denn während des Lernens ist
es wichtig, die Grundlagen zu erlernen , bevor
Sie kompliziertes
Mastermaterial
herunterladen können kompliziertes
Mastermaterial
herunterladen , das Sie selbst dann nicht
verstehen werden, wenn Sie es sehen. Auch hier gilt: Experimentieren Sie ruhig. Daran ist nichts auszusetzen, aber stellen Sie sicher, dass Ihre
Grundlagen solide sind. Mein Name ist Al Jun
Ab Lazade und ich
freue mich , dass du meinen Kurs
abgeschlossen hast. Ich freue mich, neuen Spieleentwicklern
und
vielleicht auch nur Gelegenheitsbenutzern der
Unreal Engine zu helfen vielleicht auch nur Gelegenheitsbenutzern der
Unreal Engine ihre Fähigkeiten
zu verbessern Und wenn du Fragen hast, sie
gerne
im Kommentarbereich stellen. Ich würde mich sehr freuen, deine eigenen Kreationen zu sehen und keinen
Grund, mich davor zu scheuen Alles, was du teilst, ist
besser als nichts. Vielen Dank für Ihre Zeit
und ich hoffe, dass ich Sie
alle in meinen neuen Vorlesungen wiedersehen werde. Ein paar zusätzliche Themen für alle, die sich für Spieleentwicklung
interessieren. Wenn Sie mit der
Spieleentwicklung beginnen, mag
es sehr
kompliziert erscheinen und es
mag sehr beängstigend erscheinen und
es ist kompliziert, aber Sie
müssen keine Angst davor haben. Der Spieleentwicklungsprozess ist ein sehr komplexes Zusammenspiel
verschiedener Bereiche wie Masse, Kreativität und künstlerische
Darstellung Ihres eigenen Geschmacks. Programmierkenntnisse kombiniert
mit Animation, Modellierung, Produktionsqualitäten
wie Planung Storywriting, es gibt viele
Dinge in einem einzigen Spiel, und ganz ehrlich, das Spiel
kann so komplex und
schwierig sein , wie Sie es möchten oder so einfach, wie
Sie es möchten. Man muss kein schwieriges Spiel
machen um zu lernen, wie man ein Spiel macht. Es ist besser,
mit etwas Kleinem anzufangen. Und der
Hauptgrund, warum viele Spieleentwickler viele
Probleme haben, ist schlechte Planung, ein Probleme haben, ist schlechte Planung, zu großer
Umfang und der Versuch, zu viel auf einmal
zu tun Und während dieses
Projekts,
während sie dieses Spiel
entwickeln, verlieren sie die Motivation, sie
verschwenden Zeit, sie verlieren Geld Und all das ist
Teil der Reise. Sie versuchen es zu erreichen,
um das endgültige Ziel
zu erreichen, Spieleentwickler zu werden , vielleicht ein sehr
erfolgreiches Spiel zu veröffentlichen und reich
zu werden, oder Sie versuchen einfach, selbst ein Spiel zu entwickeln oder Sie möchten es spielen oder anderen Leuten, denen Sie Ihr Spiel zeigen
möchten. Unabhängig davon was Sie zu
entwickeln versuchen, sollten Sie klein anfangen, wenn Sie anfangen, eine Game-Engine zu erlernen
, die
nicht speziell auf die Unreal
Engine beschränkt ist, sondern immer noch gilt Suchen Sie sich eine einfache Idee
aus, wählen Sie ein einfaches Spiel aus, das Sie
idealerweise in ein paar Monaten,
höchstens in einem halben Jahr, fertigstellen können , und beenden Es muss nicht gut sein. Es muss nicht perfekt sein. Sie können so viele Bugs
und Fehler haben, wie Sie möchten. Stellen Sie einfach sicher, dass das Spiel einen Start, eine Mitte
und ein Ende
hat und
alles mehr oder weniger so
funktioniert, wie es sollte. Und das allein ist
eine große Leistung , an der die meisten
Spieleentwickler scheitern. Ein Spiel zu veröffentlichen, auch ein schlechtes ist eine Leistung, wenn
man es alleine macht. Es ist ein anderes Thema, wenn
Sie Teil des Unternehmens sind und als großes Unternehmen
mit Hunderten von Mitarbeitern versuchen, ein Spiel zu entwickeln.
Das ist ein anderes Thema. Aber wenn Sie lernen und wo Sie sich in
der Spieleentwicklung befinden,
sollten Sie einfach nicht
sofort zu MMORPGs oder
Multiplayer-Spielen oder übermäßig komplizierten Mechaniken für Ihr Spiel übergehen wo Sie sich in
der Spieleentwicklung befinden,
sollten Sie einfach nicht
sofort zu MMORPGs oder
Multiplayer-Spielen oder übermäßig komplizierten Mechaniken für Ihr Spiel übergehen
.
Fangen Sie einfach an. Mach ein Horrorspiel, mach aus einem Mio einen Plattformer, was kompliziert sein kann, aber halte es einfach Der Prozess der Spieleentwicklung vielleicht einer der schwierigsten
Bereiche im Allgemeinen, weil er viele Disziplinen erfordert , die normalerweise nicht
miteinander interagieren Möglicherweise benötigen Sie
für das Spiel, das Sie sich vorstellen, sehr jazzige Musik für das Spiel, das Sie Möglicherweise verfügen Sie jedoch nicht über die
Fähigkeiten, um diese Musik zu produzieren. Sie müssen also
entweder lernen, wie man
diese Musik macht und wie
man das Spiel selbst macht, oder Sie müssen möglicherweise Vermögenswerte kaufen die nicht immer genau Ihren Vorstellungen entsprechen,
was die
vernünftigste Option ist. Suchen Sie sich in den meisten Fällen
jemanden, der
diese Musik machen kann und bereit ist, Ihnen bei Ihrem Projekt zu
helfen. Du musst es nicht alleine machen. Du kannst immer ein paar
Leute dazu bringen, dir zu helfen. Es kann dich Geld kosten, es sei
denn , es sind deine Freunde oder Familie. Und du musst dich
daran erinnern, dass
die Spiele selbst zwar Spaß machen und einfach
anzusehen sind und sich sagen,
oh, weißt du, beim nächsten großen Spiel werde
ich eine bessere Kopie des bereits existierenden Spiels des bereits existierenden Spiels machen
und es viel
besser machen als dieses. Ich nehme dieselben
Ideen, dieselben Prinzipien, mache sie etwas unterschiedlicher, komplexer
und umfassender. Jemand, der schon vor mir
war, wie schwer kann das sein? Das ist eine nette Falle, in
die man springen kann. Sie gehen davon aus, dass es einfach
ist, aber in Wirklichkeit steckt eine Menge Arbeit
im Hintergrund vieler
Spiele, die einfach zu sein scheinen Sie können sich die
einfachsten Spiele ansehen , das sind in der Regel Shooter-Spiele aus der
Implementierung und Horrorspiele. Sie haben einen Typen, der auf andere Leute
schießt, und Sie denken vielleicht: Okay, alles was ich brauche ist ein Typ
, der sich bewegt, eine Pistole, eine Kugel. Und andere Leute,
die Sie dafür schlagen müssen Und Sie gehen
vielleicht davon aus, dass das alles ist,
was Sie brauchen. In gewissem Sinne ist es das. Aber wenn du anfängst, dies in
dein Spiel zu
implementieren , während du versuchst, dein Spiel
zu verbessern, wirst
du feststellen, dass sich viele
Dinge nicht richtig anfühlen. Du hättest gehen sollen, aber es fühlt sich nicht
so beeindruckend an. Du schaust dir die Umgebung an, da
fehlt etwas. Das liegt daran, dass
viele Details in vielen Spielen auf
den ersten Blick nicht
wirklich ersichtlich sind . In dem vorherigen
kürzeren Beispiel, das ich
gerade erwähnt habe, kann
die Waffe zum Beispiel einen
Schlagrahmen haben, wenn Sie darauf schießen. Es kann das Geräusch sein.
Es könnte der VFX sein Es kann das Verwackeln der Kamera sein, wenn
Sie die Waffe abfeuern. Es kann sein, dass die Umgebung mehr Wind
braucht, vielleicht ein paar zusätzliche
Windhähne oder etwas Abwechslung KI mag dämlich erscheinen sie dich nur anbackt
und schießt, während sie an Ort und Stelle
steht,
während ein professionelles
Spiel eine KI
haben kann, die versucht, aktiv in während ein professionelles
Spiel eine KI
haben kann Deckung
zu gehen und aus
einer besseren Position auf dich zu schießen oder vor dir
davonzulaufen , wenn sie
wenig oder viele HP hat. Leider gibt es viele
Spiele, die viele
Aspekte des Spiels ignorieren , indem sie
einfach versuchen, bereits existierende Spiele zu kopieren. Aber du musst nicht
die bereits existierenden
Spielgenres oder gar Spielelemente kopieren . Fühlen Sie sich frei zu experimentieren
und zu tun, was Sie wollen. Nichts hält
dich davon ab, ein Game of
Thrones-Spiel zu machen , und es
sind alles Schauspieler, die Süßigkeiten sind,
oder Steine oder Felsen oder Donuts
für alle, wir kümmern uns darum . Und du kannst
dieses seltsame Konzept
einfach zu einem Spiel machen Du kannst daraus einen Shooter machen, du kannst ein taktisches
Rollenspiel machen und so weiter Sie sind zwar dabei, dass diese Idee ich gerade erwähnt habe,
komplex zu implementieren sein mag, es gibt keinen wirklichen
Grund, warum Sie das nicht können, außer dem
Aufwand und der Zeit, die Sie in sie investieren werden Sie haben die volle kreative Freiheit , alles zu kreieren, was Sie wollen. Sie nicht einfach beim
Kopieren einer Vorlage oder der Arbeit einer anderen
Person hängen . Werde einfach kreativ.
Werde begeistert von dem, was du zu machen
versuchst. Versuche nicht, die Arbeit
eines anderen zu kopieren. Das ist keine Schule. Das ist keine Prüfung. Sie müssen keine bestimmte Note
bestehen,
und Sie haben keine Möglichkeit, dies zu tun indem Sie
einfach die Arbeit einer
anderen Person direkt kopieren. Sie können versuchen, die Arbeit einer anderen
Person zu verbessern, indem Sie sich von
ihrer Arbeit inspirieren
lassen und
sie so weit verbessern und
sie so weit dass es
jetzt nicht mehr ihre
Arbeit ist, sondern Ihre Arbeit. Und die nächste Person, die
ein Spiel spielt wird sich deine Arbeit ansehen und
sagen: Das ist beeindruckend. Ich werde es kopieren und sie werden deine Spielelemente
kopieren. Und sie werden
höchstwahrscheinlich scheitern, weil in den meisten Fällen
nichts originell ist. Seien Sie kreativ, um es einfach und
kurz zu halten. Hab keine Angst vor Experimenten. Kein wirklicher Grund, die Arbeit anderer Leute zu
kopieren und einzufügen. Und übertreiben Sie nicht den Umfang Ihrer Projekte und beginnen Sie einfach
etwas und beenden Sie es. Und das allererste
Spiel, an dem
du fertig bist , wird sich ganz anders anfühlen und es wird
höchstwahrscheinlich nicht gut sein. Es kann sein, dass es sich nicht verkauft. Es kann schlechte Kritiken bekommen. Nimm es dir nicht zu Herzen. Nimm es mit einer professionellen
Einstellung, verbessere es. Die Kritiker kritisieren es und nutzen es als Treibstoff, um Ihr Spiel weiter zu
verbessern. Gib nicht
mitten auf dem Weg auf. Das ist eine sehr lange Reise, auf die
du dich begibst. Aber ich glaube, es lohnt sich, diesen Weg zu beschreiten und wir können Danke für deine Zeit. Ich hoffe, wir sehen uns in der nächsten Vorlesung, und ich hoffe, auch wenn es
nicht in der Vorlesung ist, werde
ich Ihre
Arbeit später sehen. Deshalb kannst du deine Projekte gerne
teilen, wenn du an
irgendwelchen oder nur an Beispielen auf
den sozialen Plattformen arbeitest . Und wenn Sie Fragen haben, können Sie
sich gerne an uns wenden. Ich helfe Ihnen gerne weiter. Als Entwicklerkollege wäre
es mir eine Ehre, wäre
es mir eine Ehre Ihnen allen dabei
zu helfen, etwas Cooles
zu entwickeln. Schau es dir hier an und hab Spaß.
26. UE5 FC09 01: Hallo und willkommen
zurück zur Vorlesung. In dieser Vorlesung werden wir unseren Spielen UI-Elemente
hinzufügen. In diesem Spiel haben
wir momentan unseren Mumm, wir haben unsere Torpfosten, aber wir
haben nicht wirklich irgendwelche Punkte
oder HP oder irgendwelche anderen
UI-Elemente auf dem Bildschirm, und wir werden sie
mit dem Widget-System von Unreal hinzufügen Um das zuerst zu tun, lassen Sie uns einen Ordner erstellen Gehen wir zum
Blueprint-Anrufordner und erstellen einen Informationsordner
und nennen ihn Widgets Oder nur ein Widget sollte in Ordnung sein. Hier klicken wir mit der rechten Maustaste und
hier gehen wir zur Benutzeroberfläche. Benutzeroberfläche und klicken Sie
auf Widget Blueprint. Ich nenne es einfach
UI Widget Underscore, UI. Das ist alles Sie erhalten dieses Widget-Menü, das Ihr
Designer-Menü für das Widget ist. Sie haben auch ein Diagramm,
das dem
Blueprint mit
geringfügigen Unterschieden sehr ähnlich ist Blueprint mit
geringfügigen Unterschieden Um zu verstehen,
wie das Widget funktioniert, müssen wir
zunächst unsere
UI-Elemente im Widget erstellen Und nachdem das
Widget erstellt wurde, werden
wir es
an unseren Viewpoint anhängen Also unser Bildschirm in einer
bestimmten Position. Lassen Sie uns nun
zunächst entscheiden, welches Widget wir haben sollen. Lassen Sie uns zum Beispiel eine Punktzahl
hinzufügen, die angibt, wie viele Punkte wir erzielen. Wir bekommen einen Punkt
für jede Kugel, wir kommen ins Tor. Wir können ein
Widget erstellen, um
unsere Geschwindigkeit zu berechnen und uns zu zeigen,
mit welcher Geschwindigkeit wir herumlaufen. Und ganz ehrlich, wir
könnten noch viel mehr Sachen machen. Vielleicht können wir auch die verstrichene
Zeit eintragen, und wir können diesem Minispiel sogar
das Endspiel hinzufügen nun zunächst Lassen Sie uns nun zunächst dieses Zeug hier hinzufügen Nun, da wir
diese Widget-Oberfläche haben, schauen wir uns die
Elemente auf der linken Seite an. Möglicherweise stellen Sie fest
, dass wir Elemente haben , die für unsere Benutzeroberfläche nützlich sein könnten. Wir haben also Schieberegler, wir haben Bilder,
Schaltflächen usw. Stellen Sie sich zum Beispiel vor, dies wäre eine
Schaltfläche, die Sie verwenden würden. Nehmen wir an, es kann einen
Text namens Start enthalten. Und wenn Sie darauf klicken , passiert
etwas usw. Moment werde
ich das löschen. Sie Im Moment werde
ich das löschen. Sie
könnten einfach das gewünschte
Element einfügen und es
an der gewünschten Stelle auf
dem Bildschirm platzieren und
in der Logik dafür programmieren Aber die bessere Verwendung von UI-Elementen ist, wenn sie sich in einem bestimmten
Panel oder Canvas befinden, wenn sie
so etwas wie eine Inventarliste haben so etwas wie eine Inventarliste oder wenn Sie möchten, dass das Widget von einem Teil
des Bildschirms in einen anderen bewegt werden kann. Stellen Sie sich zum Beispiel einige Chatboxen in
Multiplayer-Spielen vor. Und klicken Sie auf das
Chat-Feld und bewegen es,
damit das möglich ist. Damit das möglich
ist, muss es ein Widget-Panel haben , in dem Sie sich einfach bewegen können. Und natürlich
müssten Sie
einprogrammieren , wie es verschoben
werden soll, aber wir werden nicht
so tief in das Widget eindringen. Das am häufigsten verwendete Widget, das wir haben, heißt Canvas-Panel. Und das Canvas-Panel ist hier
ziemlich leistungsintensiv. Es ist wahrscheinlich nicht der beste Weg, dies zu tun, wenn Sie versuchen, Ihre Benutzeroberflächen zu
optimieren. Wenn du viele UI-Elemente
in deinem Spiel hast und alle Canvas-Panels verwenden und du sie alle ständig
aktualisierst, wird das deine CPU-Auslastung überraschend
teuer machen. Und es kann sogar sein, dass Ihr PC
hinterherhinkt usw., und Sie fragen sich
vielleicht, warum Ihr Spiel hinterherhinkt, obwohl
Sie alles andere optimiert
haben Das liegt höchstwahrscheinlich
daran, dass Sie
hier Mist gebaut haben, indem Sie zu viele
Benutzeroberflächen mit Leinwandpaneelen hier Mist gebaut haben, indem Sie zu viele
Benutzeroberflächen Auch hier sind die
Leistungskosten nicht sehr hoch, aber sie können trotzdem
sehr hoch werden , je nachdem,
wie komplex Sie es gestalten Also werden wir vorerst nur das
Canvas-Panel verwenden. Und wie Sie sehen können, haben
wir dieses Canvas-Panel, aber wir haben nichts drin. Im Moment werde ich die Größe ändern. Gehen wir zurück zu unserem Level. Stellen wir uns also vor, was
wir brauchen werden. Wir haben unseren Charakter hier und wir haben unseren Charakter,
und übrigens, wenn du F 8
drückst, bekommst du deine Maus zurück solange sich dieser Charakter noch mitten
im Spiel befindet. Und wenn du klickst,
kannst du Dinge verschieben. Es ist also simulieren, es ist eine
Art Mischung aus
Simulieren und Spielen. Sie drücken einfach F acht, nachdem
Sie die Simulation gestartet haben. Damit du Sachen testen kannst. Und auf diese Weise werden die Verweise
auf den Spielercharakter nicht kaputt gehen, weil er immer noch existiert. Es ist nur so, dass wir es im Moment nicht
kontrollieren können. Jetzt haben wir also unseren Charakter und wir hatten eine sehr gute Kameraansicht, oder? Und ich werde
einfach Fight drücken. Nur damit du meine Maus sehen kannst. Nehmen wir an, wir wollen
oben rechts einen Text haben, der angibt, wie
viele Punkte wir bekommen haben, und sagen
wir, wir wollen
unten rechts einen Wert haben anzeigt
, wie schnell
wir uns bewegen. In der Mitte des
oberen
Bildschirmrands könnten Sie auch einfach so eine Zeit verstreichen
lassen So kann ich Ihnen zeigen, wie Sie Widgets zum
zweiten Mal erstellen können. Nun, das sollten wir jetzt
eine Vorstellung davon haben, was wir brauchen. Lassen Sie uns also unser Widget erstellen. Lassen Sie uns
hier zunächst einen Textblock als Platzhalter hinzufügen . Und lass uns sehen. Alles, was wir brauchen
, sind Textfelder, aber ich werde
auch ein Bild
hinzufügen , damit ich
zeigen kann, wie man es benutzt. Wir könnten auch einen
Fortschrittsbalken erstellen. Ja, lass uns eine Mischung aus allen machen, auch wenn es
für dieses Minispiel, das wir haben, unnötig ist, nur damit ich es präsentieren kann. Und nennen wir das Textblock. Oben rechts werden wir
unsere Punktzahl haben, oder? Also lass uns Punkte haben. Das ist vorerst nur ein
Platzhalter. Und nehmen wir an, wir
haben einen Fortschrittsbalken und stattdessen platzieren
wir ihn hier. Nehmen wir an, wenn wir
je mehr Punkte erreichen, erhalten
wir einen Fortschrittsbalken. Und sagen wir, wenn wir zehn Punkte
erreichen, füllt sich
dieser Fortschrittsbalken und wir werden im Grunde das Spiel gewinnen oder die Mission
erledigen oder was auch immer. Und dieses Bild kann nur
ein UI-Element sein, das wir verwenden können, und lassen Sie es uns hier platzieren. Wir werden
es einfach in einer bestimmten Farbe
oder mit einem bestimmten Bild
mit einigen Zahlen darauf haben . Also werden wir einen Text brauchen. Und wenn ich es hierher
ziehe und dort ablege, werden
Sie feststellen, dass es
nicht an
das Bild angehängt wurde, denn
Leinwände können zwar Kinder haben, dieses Bild selbst jedoch
keine Also müsste ich es
idealerweise perfekt oben platzieren. Oder ich müsste,
aber Sie vielleicht nicht, je nach
Größe des Bildschirms kann
das an die richtige Position gebracht werden. Wenn ich also einen Text nur
hier als Platzhalter einfüge, ändert sich das
einfach. 1 Sekunde Oh ja, lass uns
die Farbe des Textes ändern ,
damit du ihn sehen kannst Wenn ich meinen Bildschirm bewege, kann
der Text leicht aus der
Position geraten, besonders wenn ich nicht das
richtige Bedienfeld in ein richtiges Bedienfeld einfüge. Also was ich tun kann, ich kann ein Feld oder ein Overlay
erstellen. Also kann ich hier ein Overlay hinzufügen. Und in diesem Overlay kann
ich dieses Bild hinzufügen, und ich kann dieses Textfeld hinzufügen Nun, dieses Overlay dient als Rahmen für unser
Lehrbuch und unser Bild,
und lassen Sie uns unser Bild vergrößern Wir werden es in
die Mitte bringen. Und lass uns sehen. Vielleicht fällt Ihnen hier etwas
Interessantes auf. Ich kann die Größe nicht
einfach
direkt ändern, weil es so klein ist Lassen Sie uns stattdessen das tun, was wir tun können, wir können hier auf
diese Schaltfläche klicken und ausfüllen Wenn Sie
es einfach zentrieren, hat dieses Bild, das
leere Bild, das wir hinzugefügt haben,
kein echtes Bild darin, also gibt es keine Referenz,
um es zu bekommen. Was Sie also tun können, Sie können es einfach im
Hintergrund betrachten und vergrößern. Dieser Textblock
kann sich in der Mitte befinden. Wir könnten ihn vergrößern, aber es macht nicht wirklich
viel für den Text, und wir platzieren ihn direkt von Mitte
zu Mitte, indem wir ihn ausrichten Wir könnten den Abstand usw. bearbeiten, um ihn zu gestalten Wenn wir das zum Beispiel
so haben und
eine Polsterung von 50 hinzufügen, es 500 verschieben. Das
wäre ungefähr so, aber dafür gibt es keinen
Grund Wenn du es nur zentrieren willst, kannst
du es einfach auf diese Weise zentrieren Und jetzt
bleibt es immer in der Mitte
dieses Overlay-Widgets, und Sie können dieses
Overlay-Widget einfach an der gewünschten Stelle platzieren Und dieses
Overlay-Widget, das wir
verwenden werden, kann ausgewählt
und genau dort platziert werden , wo
wir es haben möchten Nun, ich mag es, wenn meine
Positionen solide Werte sind, lassen Sie es uns einfach so ausdrücken Nun, unser Textblock wird immer da sein,
unabhängig von der Größe usw., dem Bildschirm oder dem Gerät, mit
dem Sie spielen, und was in Ordnung ist Das Canvas-Panel selbst besteht,
wie Sie vielleicht sehen,
darin, dass wir diese Widgets
außerhalb des
Fensters platzieren, und ich habe den Fehler gemacht, auf Ich sollte auf das Overlay
klicken,
anstatt nur auf das Bild zu klicken, und lassen Sie uns sie hineinverschieben Sie können Ihre
Bildschirmgröße
hier gezielt überprüfen , wenn Sie versuchen, eine bestimmte Bildschirmgröße
abzugleichen, oder Sie können einfach auf „Benutzerdefiniert anpassen“ klicken und zum Beispiel sagen
wir, 180,
54 als 180
eingeben , richtig? Das ist also eine
Bildschirmgröße, die ich anstrebe. Natürlich kann ich einfach
auf Bildschirm anpassen klicken, was mein Bildschirm wäre. Und hier unten wird
uns unsere DPI-Skala angezeigt, die Sie
konfigurieren können, wenn Sie möchten. Aber das ist nicht notwendig, also überspringen wir Teil und konzentrieren uns auf
das,
was wir hier tun. Kehren wir also zu dem zurück,
was wir tun. Wir haben unseren Punktestand. Wir
haben unseren Fortschrittsbalken. Wir können auch
danach Zeit hinzufügen, entschuldigen
wir uns Warum schleppe ich es von
hier? Ich brauche es von hier. Okay, lassen Sie uns hier nach Ablauf der
Zeit oder vielleicht, um es
sauber zu halten, fügen wir es hinzu Nein, nein, nein, machen wir
es einfach in der Mitte des Bildschirms Nun, wir haben Das wird
unsere Zeit sein, also werde ich den Namen vorerst
ändern,
damit ich mich daran erinnere, warum
ich ihn dort hingestellt habe. Das wird nicht sein. Sie
könnten den Inhalt für
Ihre Container hier von
hier aus eingeben Ihre Container hier von
hier aus und Sie können
sie, ihre Position, ändern. Ihre Farbe, ihr Schatten, falls sie ein Bild brauchen, hier
gibt es eine Menge Dinge, die du dir ansehen kannst. Sie können die Telefone wechseln. Sie müssten
Telefone herunterladen, wenn Sie
Ihre benutzerdefinierten Telefone haben möchten Sie könnten
Schrift usw. verwenden, z. B. kursive Buchstabengrößen,
alles, was Sie
ändern möchten, können Sie hier tun Und immer kannst du
es einfach nennen, indem du auf Inhalt in der gewünschten Größe klickst. In diesem Fall
entspricht die Größe des Widgets dem Inhalt. Dies ist wichtig
, wenn Sie
ein Widget haben , das über eine Mechanik verfügt, z. B. das Klicken auf das Element im Widget-Element
des Widgets Nehmen wir an, Sie haben ein Symbol. Und wenn Sie auf das Symbol
klicken
und es, sagen wir, im Inventar
herumziehen oder es einfach aktivieren möchten und es, sagen wir, im Inventar
herumziehen oder es oder was auch immer, möchten
Sie vielleicht einfach die Größe des Widgets
an den Inhalt anpassen. Auf diese Weise hat das Widget genau die
gleiche Größe wie das, was Sie sehen. Natürlich könntest du es
vortäuschen, indem ein transparentes Bild im
Hintergrund machst, um es größer zu machen, aber genau deswegen solltest
du diesen Unsinn machen, oder Denken Sie also daran, dies eine gute Methode ist,
um sicherzustellen, dass die Größe Ihrer Benutzeroberfläche
dem Inhalt entspricht Also, wenn ich dieses Mal zusätzliche
Buchstaben und pro Zentrum hinzufüge, ist mein Widget
jetzt größer. heißt, ich kann einfach auf
den X-Teil dieses Widgets drücken und es
löst immer noch das Ereignis , das wir erstellen,
damit es funktioniert oder was auch immer. Gehen wir jetzt zurück. Jetzt haben wir unser Widget, das im Moment
nicht wirklich funktioniert. Also lass uns das machen. Lassen Sie uns zunächst sicherstellen, dass wir hier etwas mit
diesem Image-Tag
machen. Wir haben dieses Widget, das nur ein weißer Pinsel
ist. Wir haben kein
Bild dafür eingerichtet. Wählen wir also einfach ein zufälliges
Bild oder eine Textur aus, die wir haben. Ich habe keine
Widgets hochgeladen, aber ehrlich gesagt könnte ich es mit jeder Textur
machen. Also lass uns sehen. Lassen Sie uns vorerst einfach das Unreal Widget
verwenden Nur das Re-Logo zu verwenden,
ist möglicherweise nicht die beste Wahl. Lass uns das machen, ja. Und wir können das hier verschieben. Jetzt, wo ich
darüber nachdenke, ist es vielleicht eine schlechte Idee, dieses Logo zu verwenden , weil es die Textur
schwer zu erkennen macht. Lassen Sie uns herausfinden, dass Sie
auch Materialien verwenden könnten, aber das wird nicht funktionieren. Sie müssten ein UI-Material
erstellen, das wir später sprechen werden. Also lasst uns vorerst
einfach diese Farbe wählen. Wählen Sie einfach eine zufällige Textur. Und ja, lass uns das machen. Seltsame Textur. Ich bin mir nicht mal sicher, wofür es ist. Wir werden das benutzen. Und wir haben diesen Fortschrittsbalken hier. Die Funktionsweise des Fortschrittsbalkens ähnelt dem, was Sie erwarten, aber Sie müssen die
Werte eingeben, die er benötigt, um, Sie wissen schon, den Fortschritt auszufüllen. Zuallererst haben wir
die Standardfarbe und wir haben die Füllfarbe. Und was du tun musst
, um es zu schaffen. Okay, lassen Sie uns das vorerst entfernen. Behalte
diesen Fortschrittsbalken im Auge. Wir haben einen Fortschritt von 0%. Wenn ich diesen Wert erhöhe,
werden Sie hier auf dem Bildschirm sehen, dass er zunimmt
. Aber vielleicht stellen Sie fest, dass dort
zwar Prozent steht, es aber der Wert Null,
Eins ist , wobei Null Null ist,
Eins 100% ist. Sie können also nicht einfach einen Wert von 50%
eingeben. Sie müssten Ihren Wert
in einen Prozentsatz und
diesen Prozentsatz
in einen Wert 010-1 umrechnen und den Wert hier auf diese Weise eingeben Ich werde Ihnen später zeigen
, wie Sie Werte binden. Wir haben unsere Optionen, wie sich unser
Fortschritt anfühlen soll. Nehmen wir an, die Füllung von der Mitte aus wird
ungefähr so aussehen. Voll aus der Horizontalen. Das kann nicht nur
für Personen ein gutes System sein, um Fortschritte zu erzielen, sondern auch, wie viel Lärm
Sie machen, wenn Sie
wollen . Das ist
von unten aus senkrecht. Natürlich können Sie die
Form dieses Fortschrittsbalkens ändern, Sie könnten
also einfach so etwas wie
diesen oder den unteren Stopp
machen , natürlich. Wir werden es
von links nach rechts belassen
und es
so machen, wie es vorher war. Es gibt noch weitere
Dinge, die Sie tun können, aber wir werden uns nicht zu sehr
darum kümmern. Wir könnten eine Grenze hinzufügen. Also, wie viel von dem
Fortschrittsbalken gefüllt werden kann usw. Wir werden uns keine
Sorgen um sie machen. Ich mag die
blaue Farbe dafür nicht. Lass es uns rot machen. Vorerst
sollte ich es vielleicht grün machen, aber lassen wir es so. Und hier haben wir unsere
Punktzahl und unsere Zeit, und wir haben unseren
Textblock für Geschwindigkeit Also müssen wir einige zusätzliche
Funktionen
erstellen damit sie alle im Spiel
aktualisiert werden können Die Widgets können als Menüelemente
verwendet werden, können als UI-Elemente verwendet werden. Ihr Zweck ist es,
Sie
etwas auslösen zu lassen , einen Code, den Sie
vorcodiert haben , oder einfach, um
mich auf dem Laufenden
zu halten und Ihnen als
Informationsquelle zur Verfügung zu stellen, richtig? Stellen Sie sich ein einfaches Spiel vor, in dem es darum
geht,
wie viel HP Sie haben, wie viele Leben Sie noch haben, wie Ihre
Inventargegenstände, das Start-, Pausenmenü, das
Einstellungsmenü,
alles, was
interaktiv ist oder Ihnen nur
Informationen als Benutzeroberflächenelement Informationen als Ist ein Widget in Unreal. Wir haben das also, aber wir haben keine Logik
damit verknüpft. Der Grund dafür ist, dass
wir sie nicht geschaffen haben. Wir müssen
unsere UI-Elemente erstellen. Entschuldigung, UI-Logik. Lassen Sie uns zunächst dieses Ereignis entfernen Und wir haben hier Event Pre
Construct und Event Construct. Es ist ähnlich wie
Event Begin Play, aber der Unterschied besteht darin, dass Benutzeroberflächen so konstruiert werden
müssen
, dass sie funktionieren. Du fragst dich vielleicht, wenn
ich erstellt werde, passiert
das nicht automatisch, wenn ich das Spiel starte? Nein. Dann lautet die Antwort darauf nein. Es muss gespawnt und
an den Bildschirm angehängt werden, im Wesentlichen per Blueprint an unseren
Viewport Und die gängigste Art tun, ist es, es im
Spielercharakter zu tun Wenn wir also zu unseren
Inhalten gehen und zu unserem Bauplan für Dritte gehen, ist
das unser Charakter Nur um sicherzugehen, dass ich mir den
richtigen Blaudruck ansehe, werde
ich ihn einfach vergrößern Play-Taste drücken. Ja, ich bin gigantisch Vielleicht ist das die richtige Größe. Wir schauen uns also
den richtigen Bauplan an. Hier müssten wir ein Ereignis
hinzufügen, um
unser UI-Widget zu erstellen und es an
unser Viewboard anzuhängen , was wir im nächsten
Video tun werden
27. UE5 FC09 02: Lassen Sie uns nun unser Widget erstellen. Lass es uns hier erstellen. Zuerst finden wir einen Knoten namens
Create Widget and Add To. Wir fügen es zusammen. Und hier wählen wir das
Widgit aus, das wir erstellt haben. Also haben wir es „Wir
unterstreichen UI“ genannt ,
was nicht der beste Name dafür ist,
aber wir wollen es zu Beginn des Events hinzufügen Also lass es uns schneiden. Ich
habe Event Begin Play und wir haben hier ein paar
Sachen im Gange, was völlig in Ordnung ist. Wir können es
einfach hinzufügen um sicherzugehen, dass
wir es nicht vermasseln. Wir können einen Sequenzerknoten hinzufügen. Wir können ihn hier platzieren und hier können wir unsere
Create-UI-Widget-Logik hinzufügen Das Spiel beginnt also ,
das Spiel fügt unserem Spielercharakter Standardeingaben Denken Sie nur daran, dass dies von Unreal erstellt wurde und der Kartenkontext und verbesserte Eingabesystem sein werden in Zukunft Teil
des
Fortgeschrittenenkurses Da es viele Details gibt, möchte
ich
diesen Kurs nicht zu sehr komplizieren Wisse nur, dass dieser
hier
dafür verantwortlich ist , dass deine Eingaben
registriert werden , wenn du
das Spiel spielst Also springen, sich bewegen und
so weiter, alles. Sie nehmen ihr lokales Subsystem mit erweiterten
Eingaben und fügen ihm den Mapping-Kontext hinzu, sodass Sie damit arbeiten können Also, was wir hier machen,
das Spiel beginnt, der Spieler
ist geschaffen, entschuldigt sich Und die erste Sequenz
macht die Eingabe und die zweite Sequenz
macht das Viewport Und das passiert sofort, ziemlich, sodass Sie den Unterschied bemerken
werden Lassen Sie uns also vorerst kompilieren, speichern und auf Play drücken. Unsere Benutzeroberfläche ist tatsächlich
auf dem Bildschirm. Aber Sie werden vielleicht feststellen, dass es sich in
einer seltsamen Position befindet. Und das liegt daran, dass
wir
unseren UI-Designer anpassen müssen , also stellen
wir zunächst sicher, dass wir unsere Elemente
verankern. Was Verankerung also bewirkt, stellt die
Verankerung
sicher, dass Ihre Elemente in einem bestimmten
Teil des Bildschirms
bleiben, und Sie können dies tun, indem Sie
hier klicken und oben rechts klicken Oder du kannst einfach
hier klicken und dann hier klicken. Diese Punktzahl ist jetzt also immer an diesem Punkt
verankert. Ich könnte es verschieben,
aber das hat keinen Sinn. Diese Punktzahl ist jetzt also immer an diesem Punkt
verankert. Lass es uns einfach mit unserem machen und ich möchte, dass es eine einheitliche Größe Ich werde nur die Größe des Inhalts anpassen, um die Verwaltung zu vereinfachen. Größen spielen hier also keine
Rolle mehr, da es um die Größe des Inhalts geht, und lassen Sie
uns einfach auf Z etwa 100 setzen, tut mir leid, X, und sagen wir 100. Ich möchte nicht, dass es ganz
oben auf dem Bildschirm angezeigt wird. Das hat das gleiche Problem. Wir müssen es
an einem bestimmten Punkt verankern. Klicken Sie also
auf Anker, klicken Sie oben rechts und jetzt ist es oben rechts verankert Sie fragen sich vielleicht, was der Unterschied
zwischen
dem Verankern von etwas
und dem Nichtverankern ist Der Unterschied besteht darin, dass, wenn die
Bildschirmgröße unterschiedlich ist, Notfall ein mobiler Bildschirm ist Wo sollte dieses Widget im Verhältnis
zu Ihrer Bildschirmgröße
platziert werden ? Wenn Ihre Bildschirmecke hier also in dieser rechten Linie
liegt, hätte
ein mobiler Bildschirm
eine andere. Gehen wir einfach. Nehmen wir an, die Größe des mobilen iPhones, in vielen Fällen habe ich es auf
mobile Bildschirmgröße
umgestellt, dieses UI-Widget habe
ich aus dem Viewport entfernt Wenn ich das also auf
einem Handy abspielen würde , um genauer zu sein,
ich ziehe das iPhone Five S, würde
dieses Widget nicht
gesehen werden , weil ich es sowieso
nicht verankert habe Aber dieses Widget hier
wurde zusammen mit
dem Bildschirm verschoben , weil es oben rechts
auf dem Bildschirm verankert ist oben rechts
auf dem Bildschirm Das ist der Punkt der Verankerung. Sie verankern Ihre Widgets an einem bestimmten
Teil Ihres Bildschirms Wenn Ihr Bildschirm also
verschiedene Größen hat, natürlich verschiedene Geräte, bleibt
er immer in einer relativen Position zu
diesem Teil des Bildschirms. Wenn Sie also möchten
, dass sich etwas immer
oben rechts befindet, verankern
Sie es oben rechts. Wenn Sie möchten, dass
sich etwas immer in der Mitte
des Bildschirms befindet, verankern
Sie es in der Mitte. Sie haben hier Optionen. Also tu es einfach.
Nehmen wir das zum Beispiel und was
wir tun werden, lassen Sie uns
zunächst die Bildschirmgröße
natürlich nicht
mögen, also lassen Sie uns
einfach wiederherstellen. Und was wir tun werden,
ist, dass Sie vielleicht feststellen werden, dass ich diesen Text oder
dieses Bild nicht wirklich verankern kann, weil sie sich
im Overlay-Panel befinden Dieses Overlay-Panel muss also verankert werden,
nicht die Widgets darin nicht die Also werde ich es unten rechts machen. Und wenn
ich mein Overlay verschiebe, verschiebt
es natürlich auch mein Widget Lass es uns machen -100 und minus 150. Eigentlich denke ich, dass
200 besser sein werden. Nun, lass uns das auch an den gleichen Ort verschieben
, also könnten wir
es einfach 100 machen. Vielleicht nicht. Gemessen an der Größe des Inhalts wird
es sehr klein sein , da es nicht seine tatsächliche Größe
hat. Machen wir es für 100 und Null. Nein 100. Und was Y angeht, machen
wir 200 draus. Lass uns tatsächlich 400 machen. Und Zeit, wir wollen, dass es in der Mitte,
oben,
verankert ist, oder du könntest es so
machen Aber ich will es in der
Mitte der Oberseite haben, nicht die ganze Spitze Also werde ich es so machen. Also, das gibt auch
einen guten Hinweis darauf wo sich die Mitte
des Levels befindet, also kann ich es einfach hier platzieren. Ich könnte bei Null oder Null positionieren, aber das wird auf dem oberen
Anker sein, was nicht ideal ist. Also werden wir es
so verschieben, es auf 100 machen. Wir werden den
Inhalt skalieren und
ihn um -50 bis 25 verbessern Okay, jetzt sind sie
richtig platziert. Jetzt kompilieren, speichern, auf Play drücken und unsere
Widgets sind an ihrem Platz. Möglicherweise stellen Sie jedoch fest, dass die
Widgets momentan
nichts tun , da wir ihnen noch keine Logik hinzugefügt haben . Wir haben hier
im Widget-UI-Segment alles getan, was wir brauchen, also werden wir
es vorerst speichern und beenden. Zunächst müssen wir verstehen,
wie das funktionieren wird. Diese beiden
versuchen im Wesentlichen, einen ähnlichen Wert und
ähnliche Informationen zu erhalten. Dies ist ein
überdurchschnittlicher Fortschrittsbalken. Also, was magst du, sagen
wir, du brauchst zehn Punkte. Das ist also ein
Prozentwert Ihres aktuellen Punktestands
und ein Wert von zehn. Nehmen wir an, Sie haben
vier Punkte, vier Punkte. Dieser sollte bei 40% liegen. Diese beiden benötigen also denselben Wert
, um ihre Berechnungen durchzuführen. Dieser erfordert Geschwindigkeit. Also unsere aktuelle Geschwindigkeit, die wir in einer Sekunde bekommen werden. Und das ist nur die Zeit, die seit Beginn des Spiels
vergangen ist. Das ist also ein Delta-Timing. Das ist Geschwindigkeit, und
diese beiden
suchen nur nach einem Wert, mit dem sie Ihre Ergebnisse anzeigen
können. Nun, wir haben
unsere Tore erzielt indem wir einen Ball
in dieses Tor Was wir tun können, ist wirklich etwas
ganz Einfaches. Wir könnten auf diese Benutzeroberfläche streamen. Diese Benutzeroberfläche ist immer im Level
verfügbar , weil sie Teil
Ihrer Haupt-Benutzeroberfläche ist, oder? Es gibt andere Möglichkeiten, das ganz klar zu
machen. Sie könnten es innerhalb
des Widgets selbst tun, Sie könnten die Logik hier hinzufügen. Aber die gängigste Methode , Punkte zu sammeln und zu
berechnen, ist das Casting über die Benutzeroberfläche
oder vom Spieler aus,
da wir im
Spielercharakter bereits einen Hinweis
darauf haben,
was wir tun da wir im
Spielercharakter bereits einen Hinweis
darauf haben , werden, wenn wir unser
Interface zu unserem
Spielercharakter hinzufügen . Lassen Sie uns also eine Schnittstelle hinzufügen. Und ich glaube, wir haben
es Tutorial BP Interface genannt. Oh nein, nein, nein. Ich entschuldige mich Ich habe den Namen der
Schnittstelle vergessen, die wir verwenden, also stellen wir sicher, dass ich die richtige
auswähle Es gibt viele
unwirkliche Schnittstellen. Lass uns nachschauen. Falls du es wie ich
vergessen hast, hieß
der Plan
? Ich habe gerade den Blueprint und den Namen
der Schnittstelle überprüft Okay, also BPI-Torwert. Okay. Gehen wir hierher
und fügen unser Interface hinzu. BPI-Torwert, kompilieren, speichern und schon haben wir
unseren Torwert hier. Was wir also
tun werden, ist, wenn ein Tor erzielt wird, ein Ereignis, das
als Punktestand bezeichnet wird Wir werden diese
Referenz vom Widget hier abrufen. Um das zu tun, wir einfach sicher, dass wir
diesen Wert immer zur Hand haben. Wir nennen es Widget. Unterstreichen Sie die Benutzeroberfläche. Und wir werden es
hier hinstellen. Und natürlich haben wir es auch eingestellt. Das wird also wahrscheinlich umgekehrt
gemacht. wir es ein und
nachdem wir es gesetzt haben, holen wir uns diesen Wert und
setzen ihn so ein. Wenn Sie sich bei Ihrem Code nicht
sicher sind, ist
es natürlich am besten, ihn zu testen. Lass uns zurückgehen. Wir haben
jetzt also eine Widget-Referenz, die
wir verwenden können, oder? Also Event Call Score. In diesem Fall möchten wir, sich
die Punktzahl
im UI-Widget ändert. Was wir also tun werden,
wir werden zu
unserer Benutzeroberfläche zurückkehren und in unseren
Grafikbearbeitungsmodus wechseln. Lassen Sie uns diese beiden löschen. Derzeit sind keine Veranstaltungen für GameStar
geplant Und hier werden wir
eine Variable erstellen und sie Score nennen Und wir werden daraus
einen Float-Wert oder einen
Integer-Wert machen einen Float-Wert oder einen ,
je nachdem, was wir brauchen, aber in diesem Fall werden wir
Float machen. Halte es einfach.
Und was passiert, wenn dieses Ereignis eintritt, das als
Punktestand bezeichnet wird?
Wir erhalten unseren Wert, den Punktewert und plus eins dazu. Also werden wir
diese Punktzahl ermitteln und
sie auf plus eins setzen . Wir müssen
natürlich auch einen Punktestand erreichen. Also könntest du das einfach tun. Ich glaube nicht, da gibt es direkt ein Plus. Oh nein, wir? Da wir nur plus
eins machen
werden, kannst du das machen. Was das stattdessen macht, das ist übrigens, viel
Zeit gebraucht, um darauf zu stoßen. Ich weiß nicht, warum das
mein Leben so viel einfacher gemacht hat. Also, wenn du einfach eins hinzufügst und das hier
aufstellst, richtig? Sie diesen Wert nehmen, dem
vorhandenen Wert eine Plus-Eins
hinzufügen und
ihn setzen, kann das auch von diesem Knoten
erledigt werden. Wenn Sie nur einem Gleitkommawert eine
Plus-Eins hinzufügen , behalten Sie
einfach den Überblick über etwas oder was auch immer, Sie
können das einfach verwenden. Dies fügt
dem Punktewert, den wir
bereits im Widget haben, eins hinzu und
setzt ihn auf den Wert, den er ist. Wenn es also eins ist, werden es zwei, wenn es zwei ist, werden es
drei usw. Also werden wir
diesen Teil überspringen und stattdessen diesen
Wert direkt plus eins setzen Und natürlich müssen
wir
es testen, nachdem wir
unsere Funktionalität haben. Nun, zurück zu unserem Designer, werde
ich zeigen, wie man Werte an
Nicht-Werte bindet. Ich entschuldige
mich, Variablen
an die Logik, die Sie erstellt haben
28. UE5 FC09 03: Willkommen zurück. Wir machen
weiter, wo wir aufgehört haben. Lassen Sie uns nur für den Moment den Partiturtext hier
nehmen. Und binde diesen Text
an unseren Float-Wert. Das Binden funktioniert also so, dass
Sie diesen Text hier binden,
das
heißt, anstatt diesen
Text hier manuell als solchen einzugeben, was wir stattdessen tun, werden
wir
ihn einfach durch eine Variable oder ein
anderes Ergebnis ersetzen ihn einfach durch eine Variable oder ein
anderes Ergebnis In dem Moment, in dem ich auf Binden klicke, erhalten
wir
hier eine Funktion namens Text abrufen Und Sie werden vielleicht feststellen, dass das
Ereignisdiagramm hier
nichts enthält, aber wir haben diese Funktion. Diese Funktion
soll hier nur für
diesen
speziellen Punktetext funktionieren . Und sie heißt standardmäßig Get
text. Es wird verwirrend, wenn wir mehrere Get-Texte haben, also werden wir den Namen durch
etwas wie Underscore score
ersetzen etwas wie Underscore score Nun, ich brauche hier keinen
Unterstrich. Aber wir werden Punkte bekommen, und wir brauchen einen Rückgabewert
in Form des Textes Wir haben unsere Punktzahl hier, und was wir tun
werden, ist, unsere Punktzahl zu ermitteln. Und dieser Punktewert wird automatisch in
einen Text umgewandelt und in die Benutzeroberfläche übernommen. Unser Standard-Score-Wert
ist also Null, und fangen wir an. Wir haben jetzt eine Null
oben auf unserem Bildschirm. wir also sicher, dass ich irgendwie einen Ball
ins Tor bekomme. Und es wurde eins. Unser Gang hat sich bewegt
und jetzt sind es zwei Und jetzt können wir es
wieder machen und dieses Mal werden
es drei sein Diese obere Benutzeroberfläche zeigt jetzt also
tatsächlich unseren Punktestand, aber es ist nur eine Zahl. Vielleicht möchtest du, ich füge einfach
ein weiteres Widget hinzu , das einen Text mit der Aufschrift
„Oh, Ergebnis“ hinzufügt. Es ist also wie eine Punktzahl von zwei Punkten und eine Zahl, die danach kommt. Das ist ein häufiger Fehler. Zum Beispiel Leute, die nicht wissen, dass bestimmte Knoten in
den Widgets erstellt werden. Was Sie
stattdessen tun müssen, ist anhängen. Ich entschuldige mich. Das ist dieser. Ja. Also müssen wir anhängen, aber wir müssen sicherstellen, dass das die richtige Funktion
ist Also hier ist der Text. Was wir
anhängen müssen, ist eine Zeichenfolge. Also füge eine Zeichenfolge an. Und wir setzen dieses A auf B. Entschuldigung, wir setzen diesen Wert in B, und wir setzen das hier in
unseren Rückgabewert Und hier bei A
schreiben wir den Punktestand auf und das war's. Das macht den Textwert
in einen Zeichenkettenwert, setzt ihn in B, und von hier aus fügen
wir diesen Wert und kombinieren ihn mit einem Text,
bewerten die Zeichenfolge hier, wir eingegeben haben, und sie gibt die Ausgabe als Text
zurück, nachdem sie aus der Zeichenfolge
konvertiert Ich werde den Grund erklären, warum
wir das tun, nachdem wir es getestet haben Jetzt haben wir also Scare
Underscore Null. Und wenn wir nur dann Punkte
eins bekommen. Wir können es so
oft machen, wie wir wollen, und es wird immer so
funktionieren, wie es sollte. Jetzt stellen Sie vielleicht fest, dass
wir eine SMS bekommen haben. Wir haben diesen Text genommen, ihn
in eine Zeichenfolge
umgewandelt und ihn wieder in Text umgewandelt. Der Grund, warum wir
das getan haben, ist, dass dies passieren wird, sofern Sie dies nicht
zuerst in Text ändern. Wenn Sie es in eine Zeichenfolge ändern
, in eine Zeichenfolge, und wir
geben es hier direkt so ein. Kompilieren, Play drücken. Sie werden feststellen, dass wir
jetzt Null Punkt Null haben. dem Float-Wert folgt standardmäßig Nach dem Float-Wert folgt standardmäßig
ein zusätzlicher
Nullpunkt Null
, der entfernt wird, wenn wir
ihn in Text umwandeln. Da ich keinen
Punkt-Nullwert benötigte, habe ich einfach Lexis verwendet Wir könnten natürlich auch
versuchen, dies mit
ganzzahligen Werten zu tun Wenn
Sie zum Beispiel, sagen
wir, eine
Ganzzahl-Wertvariable erstellen möchten , haben
wir eine
Score-Variable, oder? Wenn wir das nehmen und stattdessen
das duplizieren, entfernen
wir die neuere Version und erstellen einen Integer-Wert und
geben den Integer-Wert ein. Und zu Testzwecken werde
ich dafür den
Standardwert festlegen. Holen Sie sich noch einmal die Standardeinstellung. Das ist in Ordnung. Wir ändern diesen Wert in,
sagen wir, eins, kompilieren. Und wenn ich
eine Saite daraus ziehen
würde, wie Cp, Play drücken, würde
ich eine bekommen. Und das sollten wir hier vielleicht ganz ehrlich
verwenden,
aber ich möchte, dass du dich an den Unterschied
erinnerst. Die Float-Werte haben ihre Art es gibt
zusätzliche Zahlen man nach Null setzen kann, wie zum Beispiel irgendwas mit einem Nullpunkt. Integer-Werte sind
ganze Zahlen. Man kann
sie nicht einfach so haben wie Null Punkt Fünf. Oder ein Punkt fünf oder zwei
Punkt zwei oder was auch immer. In diesem Fall können wir also, da wir ein auf
Punktzahlen
basierendes System verwenden, da wir ein auf
Punktzahlen
basierendes System verwenden, einfach einen
Integer-Wert anstelle von Float und diesen Punkt überspringen. Aber wenn dein Spiel
einen Wert benötigt , der in der Lage
sein muss, ihn zu dividieren, multiplizieren usw. Wenn Sie also
zum Beispiel
Massenoperationen
daran durchführen möchten, benötigen
Sie einen Wert von Null, Punkt
zwei oder fünf Punkt Sieben
oder so etwas Ähnliches,
Sie können die Ganzzahl nicht als Ganzes verwenden Sie müssten Float verwenden. Und wenn Sie Float verwenden, müssen
Sie sicherstellen, dass
Sie es auf diese Weise tun, oder Sie können
diese Werte jederzeit überprüfen, oder? Also werde ich noch einmal eine Möglichkeit
aufzeigen, Float zu verwenden , wenn Sie Float verwenden
müssen, aber Sie möchten die Integer-Werte nicht hart
anzeigen Was Sie tun können, ist, dass Sie
das tun können , wodurch wir
die fraktalen Ziffern reduzieren Wir drücken auf Play und jetzt sehen wir unsere Fraktalziffern
nicht, aber es ist immer noch ein Gleitkommawert Wir verwenden also immer noch eine Gleitkommazahl, aber wir haben keinen
Punkt mehr, Null oder 20 oder was auch immer Und Sie können
denselben Wert für
andere Operationen verwenden und denselben Wert an einer
anderen Stelle anwenden, ohne
die visuelle
Ästhetik
Ihrer Benutzeroberfläche zu beeinträchtigen , da Sie nicht möchten, dass Nullpunkt,
Null usw. Fraktale Also werden wir
diese Ganzzahl entfernen, weil
wir sie nicht mehr benötigen. Ich werde es als Float behalten. Es gibt keinen wirklichen Grund, es nicht zu tun,
und wir haben es offensichtlich in Float usw.
umgewandelt , aber wir könnten es trotzdem auch
direkt eingeben, und es wäre immer noch okay Es gibt also keinen Punkt
eins, keinen Punkt irgendwas. Und wir können es einfach so verwenden, wie es ist, und eins hinzufügen. Und natürlich wollen wir, dass
das so ist. Und lassen Sie uns einfach ein bisschen
organisiert bleiben. Es ist eine einfache Linie. Lass uns spielen, es ausprobieren. Alles ist okay. Unsere Funktion funktioniert. Oh, ich hab's vermasselt. Nur zu Testzwecken hätte
ich die Tore wahrscheinlich größer
machen sollen Okay, ja, es
funktioniert. Nun, das ist unsere Widget-Logik
für dieses Widget, wir sehen hier nicht mehr,
dieses, den Punktestand. Sie werden vielleicht feststellen, dass es momentan
sehr klein ist weil ich darauf
geachtet habe, dass der Inhalt dimensioniert ist, was ich gerne mache, es
sei denn, ich muss es nicht, aber in unserem Fall
spielt es immer noch keine Rolle, also werde
ich es einfach lexisch halten. Einfacher für mich. Als Nächstes wollen wir uns um dieses Problem
kümmern. Fortschritt, Fortschrittsbalken. Ich bin mir nicht sicher, warum ich es
verschoben habe. Und für diesen Fortschrittsbalken werden
wir denselben Wert verwenden. Mit Wert meine ich den
Schreckenswert, den erzeugten Float. Aber hier müssen wir
den Wert nicht direkt binden , denn wie ich
im vorherigen Video erklärt habe, machen
wir das nach Fortschritt, und unser Fortschritt ist 0-1 Wenn wir also
diesen Wert an die Punktzahl binden, wie ich es gerade getan habe,
kompilieren und auf Play drücken Er ist derzeit bei Null, und sobald ich
Punkte erzielt habe, wird
er vollständig aufgefüllt, weil unser Wert von eins 100% bedeutet. Deshalb müssen wir dafür sorgen, dass wir dafür eine neue Bindung
schaffen. Und diese neue Bindung
wird unsere Punktzahl bekommen. Und nehmen wir an, wir erstellen
einen weiteren Wert für Zahnseide und nennen ihn, sagen wir, Tor schießen Das ist also der Punktestand, den wir erreichen
wollen, um das Spiel zu beenden Normalerweise würdest du
es nicht direkt im Widget tun. Du würdest diesen Wert
im Spielmodus oder an einem
anderen Ort erhalten , wo deine Logik vorgibt, wie viele
Punkte du benötigst, aber wir werden nicht
mehrere Stufen mit
mehreren Logiken anwenden , also werde ich es einfach sehr einfach
halten Wir benötigen zehn Punkte, damit dieses Spiel als
abgeschlossen gilt, also als Level abgeschlossen Deshalb werden
wir das kompilieren und
den Standardwert für „Tor
erzielen“ auf zehn setzen . Jetzt müssen wir ein
Prozent dieses Wertes ermitteln. Sie könnten versuchen, in Prozent zu
suchen, aber das ist nur ein Text. Er wird in Text umgewandelt. Stattdessen nehmen wir unseren Wert und teilen ihn durch Punkte
auf. Entschuldigung, multiplizieren Sie es mit der
Punktzahl und dividieren Sie es durch 100. Also multiplizieren wir es mit der Punktzahl, 100. Entschuldigung, wir multiplizieren mit der Punktzahl und teilen sie durch 100. Das sollte uns den Wert geben. Sofern ich nicht falsch verstanden habe,
wie Prozentsätze funktionieren, sollte uns
das
einen Wert geben, den wir brauchen Lass es uns testen. Jedes Mal, wenn ich eine andere Kugel
einfüge, erhalte
ich einen weiteren
Fortschrittsbalken. Denn jedes Mal, wenn ich eine Punktzahl
erhalte, erhalte ich jetzt 10% des Balkens, das ist genau das, was wir wollten. Und wenn ich gut in diesem Spiel wäre, würde
ich es vielleicht einfacher machen. Wie dem auch sei, jetzt funktioniert unser
zweites Widget. Und das einzige, was
wir wirklich getan haben, ist, wir einfach diese Berechnung von
Gleitkommaprozenten hinzugefügt haben
und wir fügen eine Variable hinzu
, die unser Endziel ist. Wir könnten das
aus dem Spielmodus oder der
Spielinstanz oder aus dem
Schauspieler bekommen , für den etwas passieren
muss, etwas passieren
muss oder ein Widget, das reagiert
, um spezifischer zu sein. Aber das ist
für unser Minispiel nicht notwendig , also lassen
wir ein Set Schauen wir uns als Nächstes hier um. Wir haben Zeit. Wenn Ihr Spiel
zeitbezogene Elemente hat, wir an, Sie haben
ein Rennspiel, Sie haben einen UI-Mechanismus, der Sie brauchen eine Art
Zeitticker, so werden wir es im nächsten Video
machen
29. UE5 FC09 04: Willkommen zurück. In diesem Video werden
wir
diesen Widget-Platzhalter, den
wir hier haben,
in einen echten Timer umwandeln diesen Widget-Platzhalter, den
wir hier haben , der einfach abläuft Das Problem
dabei
ist, dass der Timer bei jedem Tick passiert Im Idealfall
würden Sie also nicht viele Timer-Aktionen haben
wollen , denn wenn Sie zum
Ereignisdiagramm gehen und wir unser Häkchen bekommen, muss
dies
im Wesentlichen jede Sekunde ausgelöst werden und unseren Wert für den Timer
aktualisieren, was Sie idealerweise nicht möchten. Und wenn Sie das
trotzdem tun, ist es besser, wahrscheinlich eine
Möglichkeit haben, es zu stoppen, den Tick-Prozess, wenn
Sie ihn nicht benötigen, oder
alternative Optionen zum Ankreuzen , wenn es sich um Ereignis oder etwas anderes handelt,
sodass Sie dieses Häkchen aktivieren und
deaktivieren können . Sie können sogar eine
Zeitleiste hinzufügen, wenn es nur 10 Sekunden oder 20 Sekunden sind, sodass Sie sich keine Sorgen machen müssen. dass Evan es
jedes Mal nimmt. Evan Ts fügt hinzu,
dass viel viel kostet, wenn
es zu viele davon gibt. Lassen Sie uns nun
zu diesem Zweck gehen. Wir haben diese Zeit hier, und wir müssen sie binden. Und bevor ich es vergesse, stellen wir sicher, dass wir
den vorherigen umbenennen. G-Punktzahl, Prozent. wir schon gemacht. Lassen Sie uns also eine neue Bindung erstellen. Für dieses Mal. Und das geht
zu unserer neuen Bindung, nennen wir es Zeit verstrichene Zeit Die Zeit ist vergangen. Nun
soll uns diese Funktion
einen Textwert einer Zeit geben , die bereits vergangen ist Also werden wir eine Variable
erstellen und danach
sicherstellen, dass sie Float ist. Nennen wir es Zeit konvertieren
wir es in Float
und fügen diesen Wert hinzu. Wir müssen
unseren Zeitwert um die
Spielzeit in Millisekunden aktualisieren unseren Zeitwert um die
Spielzeit in Millisekunden Holen wir uns also Delta-Zeit. Und was Delta Time macht, ist
Delta Ts Zeit,
die vergangen ist, nachdem ein
wichtiges Spiel begonnen hat. Wenn Sie das also mit
Delta Delta Time addieren und einstellen, ist es
einfacher, es
so zu machen und
es einzustellen und wir geben das als Textwert ein.
Mal sehen, was passiert. 1 Sekunde. Kontext. Oh, das ist nicht die richtige Delta-Zeit. Wir brauchen eine Delta-Zeit,
um Welt-Delta-Sekunden zu bekommen. Was ziemlich verwirrend ist, wenn man
bedenkt , dass ihre Benennung so ähnlich ist. Aber wie dem auch sei, unser
Widget ist viel zu aktuell. Stellen wir sicher, dass Sie es tatsächlich sehen
können. Und lass uns die Position weit sehen,
lass es uns irgendwo hinstellen, Lex. Kompilieren, Play drücken. Jetzt haben wir also eine
Zeit, die tickt, und sie wird weitergehen Aber das ist nicht genau das, was
wir wollen. Was wir also tun werden, wir werden
diese Zeit in
Zeitsekunden in Zeichenketten umrechnen diese Zeit in
Zeitsekunden . Dadurch wird es automatisch
in
das Format von
Minuten usw. konvertiert . Jetzt, Sekunden, Minuten,
jetzt haben wir eine Zeit oben drauf. Sie könnten auch
einen Countdown-Timer erstellen , wenn Sie
beispielsweise
20 Sekunden haben möchten,
um einen Punkt zu erzielen, und wenn Sie innerhalb von Sekunden keinen Punkt
erzielen , verlieren Sie das Spiel usw., oder wenn Sie
nur eine maximale
Zeit haben möchten , die sie
in einem bestimmten Level verbringen können, können
Sie es machen, wie Sie wollen Wenn Sie den Countdown
drehen möchten, müssten Sie
lediglich diesen Wert subtrahieren, sich die Sekunden auszahlen lassen und stattdessen diesen Wert
anwenden. Und Sie müssten einen
Standardwert für die Zeit auf
den Wert festlegen, den Sie als maximale
Sekunde festlegen möchten Nehmen wir an, ich möchte maximal 30 Sekunden
haben. Ich schaffe es also 30 Sekunden, und jetzt läuft meine Zeit ab, ich habe nur 22 Sekunden. Offensichtlich haben wir
keine Logik darauf angewendet, das Spiel
zu beenden oder was auch immer, und wir wollen es in
diesem Fall nicht wirklich , also
werde ich es entfernen. Und was wir jetzt
tun könnten, ist, wenn Sie nicht wollen, dass es in gewisser Weise so
erschütternd ist, wenn Sie nicht wollen, dass dieser
Float-Wert ganz am Ende steht, müssen wir nur
das Gleiche tun , was ich
bereits erwähnt Wir konvertieren statt Float-Werte zu
verwenden, wir verwenden Ganzzahlen, und ich werde nur einen einfachen Wert
demonstrieren Wir werden uns
Zeit nehmen. Wir werden es
in eine Ganzzahl umwandeln. Wir werden das zeitlich festlegen. Und was
wir stattdessen tun können, ist dies in eine Ganzzahl umzuwandeln. Konvertierung. Oh, nicht so lustig. Lass uns das einfach machen.
Es wird schneller sein. Und wir setzen diesen Wert
und setzen diesen Wert als 2 Sekunden in eine Zeichenfolge. Das war ein seltsamer Fehler, aber
jetzt bekommen wir das pro Sekunde. Sie werden vielleicht feststellen, dass es
immer noch nicht das ist, was wir wollen. Wir haben immer noch Punktnullen. Also was wir stattdessen tun können, wir können das entfernen und
das auch entfernen, Tore drehen Wenn Sie sich an unsere
vorherige Funktion erinnern, so wie ich es Ihnen vorstelle: Wir
haben dieses Offensichtliche und wir
mussten den Text hier schweben lassen. Was wir stattdessen tun können, ist, wir hier sowieso eine
Textzeichenfolge eingeben müssen, aber wir wollen, dass es
von Float zu String geht. Was Sie tun könnten, ist, einen Append zu erstellen, indem wir einfach unsere Append-Knoten kopieren damit ich ihn nicht eingeben muss Was wir also tun könnten,
ist einfach anzuhängen und eine Kombination
von Anhängen zu erstellen, die so aussieht
: Oh, okay, dieser erste
Zeitwert ist Minuten, der zweite
Zeitwert Damit müssten wir es klammern
, teilen. Jedes Mal, wenn 60 Sekunden
erreicht sind, setzt
man es auf Null und gibt einen Wert ein. Sie haben mehrere Möglichkeiten. Wenn du diese Null
nicht haben willst, nur um das klarzustellen. Und wenn Sie C plus plus
kennen, können
Sie natürlich auch die
Ciplus-Plus-Funktionalität bearbeiten und eine Funktion erstellen, in der sie
genau das Gleiche tut,
aber weniger zwei Werte urnikiert Und wir könnten auch immer
nur einen Teil
der Zeichenfolge entfernen , um sie so zu gestalten , dass sie keine gebrochenen Werte haben Aber mir persönlich ist das egal. Mir macht es nichts aus, Millisekunden
zu haben, besonders wenn du ein
Speedrunner bist Stellen wir sicher, dass wir unseren
Zeitwert wieder auf Null setzen. Wir beginnen bei Null und löschen unsere Ganzzahl,
kompilieren und speichern. Jetzt haben wir ein Widget, das uns
mitteilt, wie viel Zeit vergangen ist. Wir haben unsere Fortschrittsanzeige, unsere Gesamtpunktzahl, leider sind
sie alle falsch ausgerichtet Ich werde sie also
angleichen müssen, wenn ich mehr Klarheit haben will Also lass uns 20 mal ein bisschen drauflegen. Ich möchte, dass der Endpunkt der Punktzahl entspricht. Ja, eigentlich gut genug. Nicht ideal,
muss es aber nicht sein. Wir sind nur am Prototyping von Sachen. Und jetzt haben wir unseren Zeitplan. Wir haben unseren Punktestand. Wir haben unseren Fortschrittsbalken. Lassen Sie uns jetzt
unseren Geschwindigkeitswert ändern. Nun, dieser wird
ein bisschen anders sein weil die Geschwindigkeit, die wir bekommen, vom Charakter der
dritten Person stammt. Wir versuchen also, die Geschwindigkeit des Charakters der
dritten Person zu ermitteln. Also, was wir tun müssen, sagen
wir, überprüfen, tut mir leid. Geschwindigkeit. Also was wir tun werden, wir werden die Geschwindigkeit
berechnen. Und wie Sie sehen können,
ist das nicht das, was wir brauchen. Das ist kein
Output, den wir verwenden können. Was wir stattdessen
tun werden . Für alle vorgesehenen Zwecke könnten
wir
unsere aktuelle Geschwindigkeit ganz einfach aus dem Charakter Sirt Person
innerhalb des Sternentwurfs ermitteln. Aber das ist nicht das, was
wir wirklich wollen. In einem Spiel
hättest du normalerweise in einem Spiel, in dem du
deine Geschwindigkeit sehen möchtest, normalerweise einen
gewissen Wert dafür gehabt. Wenn du
zum Beispiel ein Auto fährst
oder es sich um ein Spiel handelt, oder es sich um ein Spiel handelt in dem du
Geschwindigkeit oder was auch immer berechnest, wenn du fliegst schon ein Wert für
Zahnseide zugewiesen
, der bestimmt, wie schnell dein Charakter
fährt oder nicht In diesem Fall haben wir es nicht. Wir verwenden einfach ein unreal
Basic Movement System, und was wir tun können, ist
, unsere Geschwindigkeit zu erhöhen Wenn ich eine Sekunde brauche, verstehe ich meine Frage. Das geht als Parameter, also ist es auch nicht korrekt. Also machen wir es, wir
werden hier ein Event-Diagramm erstellen. Übrigens,
wenn Sie im Event-Diagramm bemerkt haben, dass
wir
dieses Häkchen, das wir zuvor hatten, nicht verwendet haben, werden wir
sicherstellen, dass Sie es löschen,
wenn Sie es nicht benötigen. Das erhöht die Kosten allein schon durch die Existenz. Wir werden es beschleunigen und eine neue Bindung
erstellen. Und wir werden das
als Bindung bezeichnen , wo wir schneller werden. Die Geschwindigkeit, die wir
erreichen wollen, hängt vom
Spielercharakter ab , und ich werde dir im nächsten Video zeigen, wie das
geht.
30. UE5 FC09 05: Willkommen zurück. Wenn wir weitermachen, versuchen
wir, einen Wert für unsere Geschwindigkeit zu ermitteln, den wir
hier unten
rechts oben im Widget haben werden. Wir müssen die
Bewegungsgeschwindigkeit unseres dritten Spielercharakters ermitteln. Und wie ich
im vorherigen Video gezeigt habe, gibt es keinen direkten
Weg, um zu sagen, oh, gib mir die Bewegungsgeschwindigkeit. Wir müssen ein paar
Probleme lösen,
und ich werde es vom Spielercharakter aus der
dritten Person
in das Widget selbst verschieben Spielercharakter aus der
dritten Person
in das Widget selbst Wenn ich also die
Widget-Eigenschaften ändern möchte, kann
ich das einfach vom Widget aus tun Was wir tun werden, wir
werden Spielercharakter bekommen. Und der Grund, warum wir diesen Spielercharakter
bekommen, ist , dass wir versuchen,
eine Geschwindigkeit für den
Spielercharakter zu finden . Wenn du versuchen würdest
, nach einem Feind oder Objekt im Level zu suchen ,
wäre es ideal, den wäre es ideal Wert direkt
von diesem Objekt
zu bekommen und ihn
irgendwie
über die Benutzeroberfläche oder den Spielmodus auf das Widget zu übertragen . Wenn es zum Beispiel notwendig ist, ist es
normalerweise keine gute Idee, all diese Berechnungen
ständig durchführen zu lassen , es
sei denn , sie sind integraler Bestandteil Ihres Spiels Sie sollten es wahrscheinlich nicht tun. Auch hier sind es hohe Kosten
für eine sehr geringe Rendite. Aber auch hier ist
es in einigen Spielen erforderlich, also tust du es. Wir brauchen also die Geschwindigkeit unseres Spielers, also bekommen wir unseren
Spielercharakter, und was wir brauchen,
ist seine Geschwindigkeit. Wenn wir Geschwindigkeit berechnen und das haben wir hier
ganz unten, dann bekommen wir Geschwindigkeit. Und wenn wir
es einfach in Return eingeben und die Kompilierung auf Play drücken, werden
Sie sehen, dass wir XYZ-Werte
erhalten ,
weil Geschwindigkeit normalerweise gut
ist normalerweise
nicht in XYZ
berechnet wird Wir bewegen uns mit einer
bestimmten Geschwindigkeit, X bei XY oder Z in der Drei-D-Welt. Aber
das ist nicht das, was wir brauchen. Als ob wir
unsere XYZ nicht in den Viewport stellen wollen. Was wir also tun müssen, ist ein Vektor-Link. Und jetzt ist dieser Wert unsere Geschwindigkeit. Mal sehen, Play drücken. Und jetzt ist das unser Tempo. Sie fragen sich vielleicht,
warum es bei 3.000
hängen bleibt und warum es
sich langsamer bewegt und steigt. Zuallererst haben wir ganz am Ende
einen Fraktalwert, was normal ist, aber ihr werdet vielleicht auch feststellen, dass wir eine Höchstgeschwindigkeit von 3.000
haben, und das liegt an der Blaupause,
der Charakterbewegung
und der Höchstgeschwindigkeit, die
wir zuvor gesendet haben Unsere maximale Vax-Geschwindigkeit liegt also bei 3.000. Es sind 3.000 Zentimeter. Es sind im Wesentlichen
30 Meter/Sekunde. Nun, wir wollen nicht,
dass es
direkt in einen solchen Wert gesteckt Also was wir stattdessen
tun werden, wir werden
es in Text in Text umwandeln. Wir werden sicherstellen, dass
wir keine Fraktale haben. Ich möchte sie aus Geschwindigkeitsgründen nicht
in meiner Benutzeroberfläche haben. Und für sie,
bevor wir das überhaupt tun, werde
ich diesen Wert durch
100 teilen , weil ich nicht möchte, dass meine Geschwindigkeit in Zentimetern
angezeigt wird. Ich will, dass es wichtig ist. Nun, was uns das geben wird
, ist ein Wert von eins bis 30, was unsere Geschwindigkeit ist. Manchmal geht es ein
bisschen weit nach oben, weil ich fliege und so, aber
das ist verständlich. Das ist nur die Berechnung
meiner Gesamtgeschwindigkeit. Jetzt werden wir etwas tun,
was wir bereits in der vorherigen Version
getan haben. Wir werden anhängen Wir werden den Wert anhängen und nach dem
Wert werden
wir hinzufügen, lassen Sie uns weniger machen Und ich werde dem
Abstand zusätzlichen Platz hinzufügen. Ich werde es wieder hineinlegen. Ich kompiliere es,
speichere es und drücke Play. Und jetzt habe ich ein Widget
, das mir meine Geschwindigkeit mitteilt. Mit Widgets
können Sie noch viel mehr tun. Widgets verhalten sich also auch
wie Menüelemente. Wenn du also
auf eine Schaltfläche klicken oder, du weißt schon, dein Inventar verwalten, die Karte
überprüfen,
auf die Kartenelemente klicken usw. in den Spielen möchtest, benötigst
du eine Art Interaktionsfähigkeit mit dem
Widget Und normalerweise würden wir
verschiedene Widgets erstellen und sie anwenden, sie nach Bedarf vom
Bildschirm
entfernen oder
indem wir das Widget entfernen Also haben wir zum Beispiel unser Widget hier, wir haben dieses Widget
erstellt. Wir könnten das Widget auch
entfernen. Also Widget, wenn du hier zu
den Widget-Befehlen gehst. Wenn Sie es aus dem übergeordneten Bereich entfernt haben, können
Sie es verwenden, um es einfach zu entfernen oder die Sichtbarkeit auf unsichtbar zu
setzen oder es einfach
aus dem Bildschirm zu entfernen. Wenn es sich um ein Widget
handelt, das CPU-intensiv usw. ist, möchten
Sie es idealerweise handelt, das CPU-intensiv usw. ist, einfach vollständig
entfernen Also entfernen und wenn Sie die Beschreibung lesen, wird
es im Grunde genommen aus
allem entfernt Es ist das Entfernen aus
Containern und so weiter. Sofern Sie es nicht benötigen, sollten
Sie es wahrscheinlich entfernen Und in unserem Fall sollte dieses Widget immer auf dem Bildschirm
bleiben. Wenn Sie bestimmte Elemente
des Widgets
ausblenden möchten , können
Sie dies
im Widget selbst tun, indem Sie einige Aufrufe hinzufügen usw.
, indem Sie
zum Widget gehen und
direkte Ereignisse aufrufen Wir haben hier unsere
Widget-UI-Referenz. Also, wenn ich, sagen wir, eine bestimmte Funktion haben möchte. Nehmen wir den für die Zeit. Wir haben also die
Kofunktionszeit verstrichen. Sie können also über die Referenz, die
wir hier bei der
Erstellung des Widgets haben, auf
Ihr Widget-Element zugreifen ,
z. B. auf die Funktionalität ,
z. B. auf die Sie können also immer nur Ihre Widget-Elemente
verwalten, bestimmte Teile davon oder
Elemente
hervorheben, indem Sie sie einfach in sie umwandeln Tut mir leid, nur indem ich
die Referenz daraus verwende. Wenn Sie nun hier auf „Eine Art
von Interaktivität erstellen
“
klicken möchten hier auf „Eine Art
von Interaktivität erstellen
“
klicken , müssten
wir zum Beispiel einfach
eine Unterseite hinzufügen . Ich werde hier eine Schaltfläche
hinzufügen Und auf dieser Schaltfläche würde
ich ein Ereignis
namens On clicked hinzufügen Wenn also auf diese Schaltfläche geklickt wird, sollte
etwas passieren Also werde ich einfach eine Druckzeichenfolge
erstellen. Und los geht's. Und ich möchte, dass es Hallo sagt
, wenn ich auf diese Schaltfläche klicke. Kompilieren, PrescoPlay auf Play drücken und wie Sie sehen können, kann
ich darauf klicken Aber wenn ich mit dem Spiel anfange, verliere
ich meine Mauseingabe Der Grund, warum ich
darauf klicken konnte, war, dass ich
beim Spielen
immer noch meine Maus hatte, aber du hättest diese
Maus nicht haben, wenn du
das Spiel tatsächlich startest, wenn du
mit einer Tastatur spielst usw., weil das
nur
im Unreal Editor funktioniert ,
bis ich darauf klicke Und wenn ich jetzt erneut
auf das Widget klicken möchte, brauche
ich Fight und
klicke hier Aber so
würde es im Spiel nicht funktionieren, besonders wenn es sich um ein Widget , das
mitten im Spiel erscheint Um sicherzugehen, dass du wirklich darauf
klicken kannst ,
was du tun würdest, die Widgets, die
deine Fähigkeit erfordern,
angeklickt zu werden würden
die Widgets, die
deine Fähigkeit erfordern,
angeklickt zu werden, ein Ereignis haben, über
das du darauf klicken kannst Also füge ich ein Ereignis namens Construct Me und mein unglückliches
Tipping-Event-Konstrukt Dies bewirkt, dass es
ausgelöst wird , wenn das
Widget erstellt wird Dies sollte auf
keinen Fall Teil
der UI-Widget-Elemente sein. Ich zeige es hier nur, damit
du weißt, wie es gemacht wird. Idealerweise würden Sie
dies in einem anderen Widget erstellen. Wenn also ein Event unter Vertrag genommen wird, bekommen
wir den Spieler-Controller Lass uns es bewegen. Und und stell die Maus auf Warten. Das ist es nicht. Ich entschuldige mich Wir müssen den
Player-Controller daraus ziehen, nicht aus Ausführungsbits Das ist nur eine reine Funktion. Und hier bekommen
wir den Mauszeiger. Und wir machen es und kompilieren, drücken und drücken Play. Also, während dieses Widget auf
dem Bildschirm angezeigt wird oder nicht, während das Widget erstellt wird
, habe ich immer noch meine Eingaben auf meiner Tastatur
zur Verfügung, aber ich kann auch auf
diese Schaltfläche klicken und
die Hello-Schaltfläche erstellen. Aber stellen Sie sich natürlich vor, das
wäre ein Inventar oder eine Karte usw. und Sie möchten nicht, dass usw. und Sie möchten nicht, dass
es ständig
auf dem Bildschirm angezeigt wird, richtig? Sie möchten also diese Mauseingabe
deaktivieren
und dieses Element des Widgets
vom Bildschirm entfernen Lassen Sie uns das also zunächst
so verankern, dass es sich nicht in der
Mitte des Bildschirms befindet. Ja, viel besser. Also, wenn ich jetzt auf Play drücke, ist
das jetzt unten rechts. uns zunächst dieses Widget nehmen, nachdem es fertig Lassen Sie uns zunächst dieses Widget nehmen, nachdem es fertig ist. Und wir wissen, dass dieses Widget unser Button 01
ist. Gehen wir zu unserem Button
01 und hier geht's los. Anstatt Hallo zu verkaufen, schauen
wir mal,
was wir damit machen können. Das ist nur ein Widget, also können
wir es, glaube ich, entfernen. Ja. Also schauen wir mal, was
passiert, wenn wir es jetzt anklicken, wenn wir es aus dem
übergeordneten Element entfernen und es weg ist. Aber wir haben unsere Maus immer noch
in der Mitte des Bildschirms, das ist
offensichtlich eine
ziemlich einfache Lösung. Wir bekommen diesen Mauszeiger
und setzen ihn auf fs. Und das Ziel sollte natürlich der
Spielercontroller sein. Und wenn wir jetzt auf Play drücken und auf diese Schaltfläche
klicken, verschwindet
sie jetzt. Nun, das ist nützlich, wenn
Sie, sagen wir, eine Benutzeroberfläche
haben, auf die Sie klicken möchten und die
so etwas wie, sagen
wir, wenn Sie ein bestimmtes Objekt
haben, es in Ihrer Benutzeroberfläche angezeigt wird. Du klickst darauf, du konsumierst
es und es verschwindet. Natürlich könnten Sie die
gesamte Logik dazu aufschreiben , zum Beispiel: Oh, wenn Sie dieses Objekt nicht mehr
haben, entfernen Sie es, oder wenn Sie möchten Zeit vergangen, es ist abgelaufen. Es liegt an dir. Du kannst damit kreieren,
was du willst. Aber ich persönlich benötige
diese Funktionalität in diesem Fall nicht . Und als solches habe ich alles
entfernt. Aber denk dran. So können Sie
Ihre Menüelemente erstellen. Sie können einen Text eingeben, Sie
können auf Schaltflächen klicken. Sie können ein Raster hinzufügen Wenn Sie hier
zu unserem Canvas gehen, haben
wir zum Beispiel unser
Raster-Panel. Und in diesem Rasterfeld kann
ich mehrere andere Dinge hinzufügen. Also kann ich Taste eins,
Taste zwei, Taste drei hinzufügen Taste zwei, Taste drei Es ist momentan schwer zu erkennen, aber du wirst es in einer Sekunde sehen Und ich werde sie einfach aussuchen. Ich kann sie in Reihen anordnen. Und jetzt habe ich vier Knöpfe. In einer anderen Reihe. Ich kann sie
bewegen, wenn ich will. Wie du sehen kannst. Wenn Sie nun möchten, dass Ihre Größe größer ist usw., tun Sie dies einfach
im Rasterfenster.
Wir werden die Größe des
Inhalts selbst festlegen Es wird also nur
die Größe des Inhalts sein, oder Sie können stattdessen zu
Ihren Schaltflächen gehen und
von den Schaltflächen aus ändern, wie
sie aufgepolstert sind, sie sind vorbei und so weiter Und Sie beschränken sich nicht
darauf, nur Schaltflächen hinzuzufügen. Sie könnten hier auch ein
Bild hinzufügen. Und wenn dein Bild ist, sagen
wir, warte.
Das ist kein Bild. Das ist ein HDR-Bild. Mein Biologis. Lass uns einfach
eine Textur hinzufügen, normale Textur Und diese Textur ist sehr groß, sodass sie plötzlich
das gesamte Widget bedeckt. Sie können die Größe reduzieren. Wenn du willst, und in meinem Fall will
ich keine Bilder, also überspringe ich einfach
die Knöpfe Wenn ich zum Rasterfenster gehe, wirst
du sehen, dass wir hier unsere Größe
haben Ich werde die
Größe auf so etwas erhöhen, und wir können
es an der gewünschten Stelle positionieren. Ich werde
vorerst unten links ankern und es auf
000 positionieren und es dann so verschieben wie ich will, so etwas wie
hier, was in Ordnung ist. Jetzt können wir auf die Buttons klicken. Wir können ihre
Farben ändern, wenn wir wollen. Ich verstehe, dass es
von hier
aus schwer zu sehen also haben wir unsere Kolumnen. Wir haben unsere Zeilen, in denen das platziert werden soll. Und denken Sie daran,
dies ist ein Raster. Es gibt also so etwas wie
ein gitterbasiertes System, und es gibt
Schaltflächen im Raster. Wenn Sie Menüelemente haben möchten, die eher dem entsprechen,
was Sie gewohnt sind, können Sie das innerhalb von 1 Sekunde tun. Ich glaube, es war dieser. Und wenn ich hier Buttons hinzufüge, ja. Wenn ich hier Buttons hinzufüge. Jetzt möchte ich, dass sie
horizontal sind, nicht vertikal, also tut mir leid, ich möchte, dass sie
vertikal sind, nicht horizontal. Jetzt habe ich sie horizontal. Nein, ich werde nur diesen unteren Teil
einfügen. Und jetzt habe ich fünf Bereiche für
UI-Elemente in diesem Overlay, und ich kann darüber Texte hinzufügen wenn ich jedes einzelne machen möchte Und sagen wir, das
ist das Startspiel. Ja, nicht Star Game, du hast es verstanden. Optionen, Spiel beenden wie Extras usw., was auch immer du
von deiner Spiel-Stack-Box willst Fühlen Sie sich frei zu experimentieren. Es gibt eine Menge
Dinge, die du tun kannst. Stellen Sie sich ein Spiel vor, das Sie
jemals gespielt oder gesehen haben, Ihren Augen und
versuchen Sie darüber nachzudenken, wie
sie es zustande gebracht haben. Wie haben sie es gemacht, wie würden Sie das
Widget-System in Unreal verwenden, um
dieselben Ergebnisse zu erzielen , und ob es
Sinn machen würde, wenn sie sich
im selben Widget oder Teil
eines anderen Widgets Sie auch daran, dass Sie Ihren Widgets weitere Widgets
hinzufügen können Ihren Widgets weitere Widgets
hinzufügen Also, wenn Sie ein
anderes Widget haben, das wir in einer Sekunde
erstellen werden. Nochmals, nur zu
Demonstrationszwecken, ich werde nicht wirklich klicken
und ein Widget erstellen, und wir werden das
Benutzer-Widget aufrufen und Cty aufrufen Das ist nur SS, damit
ich es leicht finden kann. Und wenn ich hier ein Widget hinzufügen
möchte, könnte
ich es einfach hier hinzufügen. Und ich habe mein SS-Widget hier. Und wenn ich jetzt mein SS-Widget öffne und hier ein Panel hinzufüge, füge ich
einfach
eine Leinwand hinzu , nur
weil es schneller ist. Und ich werde ein
Bild oder tatsächlich einen Text hinzufügen. Ich werde das
Textzentrum verankern und einfach Text eingeben, kompilieren, auf Speichern drücken und los geht's. Und du darfst nicht
oben links sein, ich habe SSSS. Ich habe es hier verankert. Du
fragst dich vielleicht, warum es nicht hier ist, und oben links
habe ich es nicht hier verankert Ich verankere es auch hier in der
Mitte und positioniere es. Sie sehen also, ich habe ein Widget in einem Widget, was nützlich ist, wenn Sie ein
Inventarsystem oder ein Menü haben Inventarsystem oder , das sich selbst überlagert, wie ein Menü mit mehreren
Ebenen und Das ist sehr nützlich. Außerdem können Sie sie
unabhängig voneinander codieren unabhängig voneinander und sie entfernen,
wenn sie nicht benötigt werden usw., oder wenn einige Widgets bestimmte Ebenen spezifisch
sind, können
Sie sie dort verwenden und anschließend
entfernen Es gibt viele Möglichkeiten, wie
Sie Ihre Widgets verwenden können, und das Widget-System ist im
Allgemeinen sehr teuer Zum Beispiel gibt es hier eine Menge
Dinge, die Sie verwenden können, die Sie
aber nur testen müssten , um zu sehen,
was Sie machen möchten. Und es gibt nicht die eine
Lösung für alle. Sie können einen Circle
Trober usw. hinzufügen, was einfach ein nettes
Widget ist. Ich benutze gerne Sie können das als
Ladebildschirm oder was auch immer verwenden. Sie können mehr
Elemente hinzufügen, weniger Elemente. Stellen Sie sich zum Beispiel vor, Sie machen ein
Spiel und die Anzahl der Punkte entspricht der
Anzahl der HP, die Sie haben Sie können
sie einfach erhöhen oder
die Menge mit der Menge an HB verringern , die
Sie haben Es gibt eine Menge, die du tun kannst.
Der Fantasie sind keine Grenzen gesetzt . Experimentieren Sie ruhig. Das ist alles für die Einführung in
das Widget in
diesem Grundlagenkurs. Fortgeschrittenenkurs, der in Zukunft veröffentlicht wird,
werden wir detailliertere Erklärungen
zu Widgets und zur Erstellung komplizierter
Spielelemente Fortgeschrittenenkurs detailliertere Erklärungen
zu Widgets und zur Erstellung komplizierter
Spielelemente geben. Ich hoffe, du hast etwas gelernt und genießt deine Zeit hier. Wenn Sie Fragen haben, können Sie
sich gerne an uns wenden. Ich werde mein Bestes tun, um Ihnen zu helfen. Vielen Dank und ich wünsche
Ihnen einen schönen Tag.