Unreal Engine 5 – Einsteigerkurs | 3D College | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


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

Unreal Engine 5 – Einsteigerkurs

teacher avatar 3D College, A perfect place to grow!

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Schau dir diesen Kurs und Tausende anderer Kurse an

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

Einheiten dieses Kurses

    • 1.

      Einführung

      2:52

    • 2.

      Herunterladen von UE5

      3:10

    • 3.

      Erstelle dein Projekt

      2:06

    • 4.

      UE5-Navigation, Hotkeys und Grundlagen

      13:43

    • 5.

      UE5-Schauspieler

      8:42

    • 6.

      Akteure und Objekte verwalten

      4:49

    • 7.

      Modellierung

      10:26

    • 8.

      Arbeiten mit Materialien

      8:45

    • 9.

      Benutzerdefinierte Materialien

      25:18

    • 10.

      Beleuchtungssystem

      18:30

    • 11.

      Blueprint-Grundlagen

      16:50

    • 12.

      Ereignisdiagramm

      22:00

    • 13.

      BP-Variablen

      23:57

    • 14.

      BP-Funktionen

      39:48

    • 15.

      Landschaft erstellen

      12:07

    • 16.

      Master-Material

      12:59

    • 17.

      Blattwerk

      31:59

    • 18.

      Szeneneinstellung

      37:19

    • 19.

      Entwürfe für Spiele 01

      34:32

    • 20.

      Entwürfe für Spiele 02

      10:32

    • 21.

      Entwürfe für Spiele 03

      26:54

    • 22.

      Schauspieler-Interaktionen

      43:28

    • 23.

      Blueprint-Schnittstelle

      44:26

    • 24.

      Gameplay

      32:20

    • 25.

      Dritte-Person-Charakter

      33:41

    • 26.

      Widget BP

      23:37

    • 27.

      Widget-Editor

      16:19

    • 28.

      Punktesystem

      15:14

    • 29.

      Timer

      12:54

    • 30.

      Zusätzliche Funktionen

      22:08

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

Von der Community generiert

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

23

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Beginne deine Reise als Spieleentwickler mit Unreal Engine 5 – der komplette Einsteigerkurs – der möglicherweise aktuellste und umfassendste Kurs, der online verfügbar ist.

Warum solltest du diesen Kurs wählen?

Als ich meine Reise mit der Unreal Engine begann, hatte ich Zugriff auf eine Vielzahl von Informationen über die Arbeit mit der Engine. Mir fiel jedoch schnell auf, dass die meisten verfügbaren Ressourcen, selbst vollständige Kurse, den gesamten Prozess nicht logisch und verständlich beschreiben konnten. Aus diesem Grund habe ich diesen Kurs erstellt – um Anfänger:innen wie dir einen klaren, schrittweisen Weg zur Beherrschung der Grundlagen zu geben.

Folgendes wirst du lernen:

  • Spielentwicklung mit Unreal Engine 5 und Blueprints lernen
  • So lädst du Unreal Engine 5 herunter und installierst
  • Lerne die UE5-Grundlagen: zögere auf der Benutzeroberfläche, verwende wichtige Tools und richte dein erstes Projekt ein.
  • Erfahre mehr über Akteure, Netze und Objekte, die für den Aufbau deines Spiels wichtig sind
  • So verwendest du Entwürfe, um Interaktionen, Events und Gameplay-Mechaniken zu erstellen – kein Programmieren erforderlich
  • Erstelle und passe Unreal Engine 5-Materialien an
  • So erstellt man eine Landschaft und besiedelt sie mit Laub mithilfe von Master-Materialien
  • Erstelle ein Minispiel, richte Charakterbewegungen, Interaktionen und Gameplay-Loops ein
  • Widget-System erstellen

Wenn du mit Unreal Engine für deine Projekte arbeiten oder sogar ein Indie-Entwickler werden möchtest, ist dieser Kurs die perfekte Wahl für dich. Egal, ob du ein/e absolute/r Anfänger:in bist oder deine Fähigkeiten verbessern möchtest, dieser Kurs vermittelt dir die wesentlichen Kenntnisse und praktischen Erfahrungen, die du benötigst, um Projekte in Unreal Engine 5 selbstbewusst auf die richtige Weise zu erstellen und zu verwalten.

Lass uns eintauchen und mit der Unreal Engine 5 beginnen!

Triff deine:n Kursleiter:in

Teacher Profile Image

3D College

A perfect place to grow!

Kursleiter:in

Hello,

3D College was created with beginner artists in mind, those who want to start their journey with Unreal Engine or become indie developers. We design courses that have helped hundreds of students gain new knowledge and skills. As 3D artists with years of professional experience, we strive to share the expertise we've gained while working on professional productions. In the coming months, new artists will join our team of instructors, currently preparing courses for both beginner and intermediate level students.

My name is Martin Grochowiak, and I am the founder of 3D College. I have been involved in photography, 2D, and 3D graphics for many years. I specialize in working with Unreal Engine 5 and, over the years, have had the privilege of creating and leading projects... Vollständiges Profil ansehen

Level: All Levels

Kursbewertung

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

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

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

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

Lerne von überall aus

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

Transkripte

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